Давайте начнём с очень короткой и простой функции:
Мы декомпилируем её путём выполнения команды меню View, Open subviews, Pseudocode (рус. Вид, Открыть представления, Псевдокод) (вызывающая клавиша F5):
Так как нужен сгенерированный код на Си, то такой результат не симпатичен. В тексте имеет место много операций приведения, что приводит его в беспорядок. Причиной тому является временное невыполнение декомпилятором восстановление типов. Очевидно, что параметр a1 указывает на структуру, но декомпилятор пропустил её. Давайте добавим немного информации о типе в базу данных и посмотрим, что получится. Для этого мы откроем окно Structure1 (рус. Структура) (Shift-F9) и добавим новый тип - структуру:
После этого мы переключимся на окно псевдокода и укажем тип a1. Мы можем сделать это, поместив курсор на любое вхождение a1 и нажав Y:
Когда мы нажмём на клавишу Ввод, вывод декомпилятора станет намного лучше:
Но возможности для усовершенствования всё ещё существуют. Мы можем переименовать поля структуры и определить их типы. Например, field_6B1, кажется, используется как счётчик, а field_6B5 - очевидно, указатель на функцию. Мы можем сделать всё это без переключения между окнами. Потребуется только окно Structure2 для начального определения структуры. Вот как мы определяем тип поля для указателя на функцию:
Конечный результат выглядит следующим образом:
Пожалуйста, обратите внимание, что в тексте больше нет никаких операций приведения, и он выглядит намного лучше чем его начальная версия.