Начал было sub_5C1710 переписывать на c++. Компилятор ругался, пока я не исправил DWORD sub_5C1710 = на void* sub_5C1710 =, а лучше выполнять приведение адреса прямо в месте вызова, а то компилятор ругается матом постоянно.
Короче облом в том, что там есть структура CCamera и не известно смещения ее полей, а в коде функции идет многоуровневое обращение к полю сначала CCamera, потом к полям ее полей - до 4-х уровней.
Еще не понятно, что такое UNDEF(число). Так что тоже не простой метод.
Короче надо копаться сразу во всем коде, искать взаимосвязи, намеки на тип, искать среди аргументоы уже исследованных функций.
Кстати в Code:Blocks есть такая возможность в подсветке синтаксиса. Когда выделяешь переменную в одном месте, она выделяется во всем коде - удобно. Не знаю, есть ли это в MSVC.