An Overview of the State-ofThe-Art Reverse Engineering Techniques