One thing to keep in mind -- Reverse Engineering is legal if it's for the purpose of maintaining compatibility. This is very typical when getting code to work on one system to another or implementing a product feature. I do this at my job, I know people who have worked at other places (such as star dock) who have done the same for the same reason.