Why would you need reverse engineering?
There can be several reasons. When your software has done something bad -- something that's supposed to be impossible -- reverse engineering the code is one approach to locating the source of the fault. When your company acquires an experimental technology with a valuable, but safety-critical function, reverse engineering can help to determine initial requirements for a formalized development effort. When you need to maintain poorly documented legacy software, reverse engineering can extract design to make maintenance less error-prone.
SafeCode consultants have experience with all of these uses of reverse engineering. Let us help you.