It also depends a lot on the language. Some languages are extremely easy (can even find online tools to do it for you) unless they are properly obfuscated.

There was one... can't remember what it was called, that was online. It could disssamble most c, c++, java, and php files. They had a pay version that was more robust and worked with more languages (I think they even had crap back in the pl1 days). Basically they were trying to sell their obfuscator software.

If it was coded properly (haha like that happens), then you wil lprobably have to use crim's idea and sandbox it, then step through the program.