I'm surprised the Movfuscator hasn't been mentioned yet. It compiles C code into unconditional MOVs, and if you watch the author's Derbycon 2015 video there are ways you can scramble the MOV instructions, truely making it a decompilation nightmare.
1. Movfuscator page https://github.com/xoreaxeaxeax/movfuscator
2. Derbycon 2015 video https://www.youtube.com/watch?v=R7EEoWg6Ekk