ya it is possible to reconstruct the semantics and the control flow..
its a reverse engg process..done using a decompiler..
find it on http://www.backerstreet.com/rec/rec.htm
REC is a portable reverse engineering compiler, or decompiler.
It reads an executable file, and attempts to produce a C-like representation of the code and data used to build the executable file.
It is portable because it has been designed to read files produced for many different targets, and it has been compiled on several host systems.
RecStudio offers a modern user interface to REC's interactive mode.
A command line version is still available for Linux and Solaris hosts.