Bah. It's an extremely difficult task to decompile applications. Which is why most people just disassemble a program rather than decompile - the resulting assembly tends to be much easier to analyze than the convoluted decompiled output. A good disassembler will also detect what compiler was used and remove library functions from the code to give you less code to analyze.
As for the ethics of cheating - I personally believe that any game where I get stuck, and can't find my way out is a failure. I'm not going to spend a week replaying the same spot just to progress (unless I was really bored). I don't have time to "work" at a game - I want to progress through the game, and if I get stuck, well, I'll be disappointed. I may have an hour to play a game one day, 20 minutes the next. etc., and I'd make sure that time is used productively. If I have to cheat, so be it. Maybe I'll replay it again later now that I've gone through it. But my pile of games I haven't completed because I've gotten bored getting stuck is huge.