I thought that we were pretty secure in that I can barely figure out some of our code with the source, but my boss has asked me to look into making sure that competitors can't reverse engineer our code. We have some numerical stuff that is kind of special.
With a dis-assembler, you get C code back? C++ code? How far back can you reverse engineer an *.exe? What are techniques that people use to hack somebody's code? I'm not sure this is worth worrying about - for myself, I think it would always be easier to start with publicly available information and techniques, and develop towards what a program produced, rather than to work backwards from that program and attempt to induce how it worked.