Which of the following statements best describes the role of reverse engineering in dealing with legacy code?
- It analyzes legacy code to extract useful info and make modifications.
- It converts legacy code directly into a new programming language.
- It is used to create new software without examining old code.
- It relies on manual coding to replace outdated software components.