If you are looking for a software that will take the .exe file (which is know as byte code or machine native code) and reverse it into something that resembles C or C++ code, what you need is a de-compiler. Unfortunately, de-compilers in certain countries (mostly European) are actually illegal along the lines of intentional copyright infringement.
Even if you can find a de-compiler, using it will more than likely yield C or C++ code that is mostly unreadable (unless the .exe file has a companion file known as the symbol table, something that is very unlikely with commercially released software). If you compile:
int main(void)
{
int number = 0;
sprintf("Zero plus one is %2d", ++number);
return 0;
}
into an .exe file, you get the .exe file with symbol table. Now, discard the symbol table and ask the de-complier to reverse engineer the .exe file. Without the symbol table, the de-compiler will not know the names of the original variables. One possible output of the above C code's .exe file put through a de-compiler without the symbol table is a C code file like:
int _main (void)
{
int _a1 = 0;
printf("Zero plus one equals");
sprintf("%2d", _a1);
return 0;
}
Notice that the name of "number" changed to "_a1"? Not quite a meaningful variable name, right?
De-compiling software has it's perils and challenges, but I know of a few people who are quite intrepid in their endeavors into reverse engineering.