diff --git a/ghidra/make_symboltable.sh b/ghidra/make_symboltable.sh new file mode 100755 index 0000000..d105d3c --- /dev/null +++ b/ghidra/make_symboltable.sh @@ -0,0 +1,50 @@ +#!/bin/sh -eu +# Script to convert Ghidra symbol table CSV export data to the format used by +# the Ghidra script ImportSymbolsScript.py + +main() { + if [ $# -ne 1 ]; then usage; fi + + printf 'Writing symbol table to symboltable.tsv...' + + >symboltable.tsv # Create/truncate output file + + while IFS=, read -r location namespace name type; do # Iterate rows + # Determine symbol type (skip if unrecognized, e.g. header row) + if [ "$type" = '"Function"' ]; then type_out=f + elif [ "$type" = '"Data Label"' ]; then type_out=l + else continue + fi + + # Add namespace prefix if not in global namespace + if [ "$namespace" = '"Global"' ]; then namespace_out= + else + namespace_out=${namespace#'"'} + namespace_out=${namespace_out%'"'}:: + fi + + # Strip quotes from other columns + name_out=${name#'"'} ; name_out=${name_out%'"'} + location_out=${location#'"'}; location_out=${location_out%'"'} + + # Output row + printf '%s\t%s\t%s\n'\ + "$namespace_out$name_out" "$location_out" "$type_out"\ + >> symboltable.tsv + done < $1 + + printf ' done.\n' +} + +usage() { + printf '%s\n'\ + 'Usage: make_symboltable.sh CSVFILE'\ + ' CSVFILE is the path of a symbol table CSV from Ghidra'\ + ''\ + 'The CSV file should have columns Name, Location, and Type. The output file'\ + 'will be named "symboltable.tsv".' >&2 + exit 2 +} + + +main "$@" diff --git a/ghidra/symboltable.tsv b/ghidra/symboltable.tsv index c2bca53..efe3e38 100644 --- a/ghidra/symboltable.tsv +++ b/ghidra/symboltable.tsv @@ -142,37 +142,37 @@ 0x00024700 func void __thiscall notinline nofixup UnknownObj_0x6::exec 0x00024ae0 func void __thiscall notinline nofixup UnknownStatic06::calledDuringExec0Default 0x00024c70 func void __thiscall notinline nofixup UnknownStatic06::`scalar_deleting_destructor' bool free -0x00024c90 func CCacheBuilder * __thiscall notinline nofixup CCacheBuilder::CacheBuilder_MAYBE CActBase * parent eACTID index eACTFLAG flags -0x00024cf0 func void __thiscall notinline nofixup CCacheBuilder::~CacheBuilder_MAYBE -0x00024e10 func BOOL __thiscall notinline nofixup CCacheBuilder::cacheTablePathExists uint index -0x00024e70 func BOOL __thiscall notinline nofixup CCacheBuilder::writeCacheCheckpoint +0x00024c90 func CacheBuilder_MAYBE * __thiscall notinline nofixup CacheBuilder_MAYBE::CacheBuilder_MAYBE CActBase * parent eACTID index eACTFLAG flags +0x00024cf0 func void __thiscall notinline nofixup CacheBuilder_MAYBE::~CacheBuilder_MAYBE +0x00024e10 func BOOL __thiscall notinline nofixup CacheBuilder_MAYBE::cacheTablePathExists uint index +0x00024e70 func BOOL __thiscall notinline nofixup CacheBuilder_MAYBE::writeCacheCheckpoint 0x00024ef0 func BOOL __stdcall notinline nofixup checkCacheCheckpoint uint checkpointId -0x00024f50 func void default notinline nofixup StartBuildCacheIfNeeded CActSequence * lpSeq +0x00024f50 func void default notinline nofixup buildCacheIfNeeded CActSequence * dir 0x00024fd0 func void default notinline nofixup activateCacheBuilder uint cacheCounter 0x00025000 func void __stdcall notinline nofixup deactivateCacheBuilder -0x00025020 func CCacheBuilder * __thiscall notinline nofixup CCacheBuilder::`scalar_deleting_destructor' uint param_1 -0x00025040 func void __thiscall notinline nofixup CCacheBuilder::execDefault -0x00025310 func void __thiscall notinline nofixup FileManager::Exec0Default -0x00025390 func BOOL __thiscall notinline nofixup FileManager::QueueFile eFILETYPE FileType uint dwFileId -0x00025400 func BOOL __thiscall notinline nofixup FileManager::CacheHeldFile -0x00025640 func BOOL __thiscall notinline nofixup FileManager::CacheCreateDirectory char * lpcPath -0x00025680 func BOOL __cdecl notinline nofixup IsReadPending -0x000256a0 func BOOL __cdecl notinline nofixup FileQueue eFILETYPE type uint id -0x000256c0 func BOOL __cdecl notinline nofixup FileCheck eFILETYPE fileType uint id -0x00025700 func void * __cdecl notinline nofixup FileGet eFILETYPE fileType uint id undefined4 param_3 undefined4 param_4 -0x00025740 func void __stdcall notinline nofixup FileFree eFILETYPE fileType uint id -0x00025770 func BOOL default notinline nofixup FileExists char * path +0x00025020 func CacheBuilder_MAYBE * __thiscall notinline nofixup CacheBuilder_MAYBE::`scalar_deleting_destructor' uint param_1 +0x00025040 func void __thiscall notinline nofixup CacheBuilder_MAYBE::execDefault +0x00025310 func void __thiscall notinline nofixup FileManager::execDefault +0x00025390 func BOOL __thiscall notinline nofixup FileManager::initFile FileType fileType uint fileId +0x00025400 func BOOL __thiscall notinline nofixup FileManager::someCreatingAndWritingFile_MAYBE +0x00025640 func BOOL __thiscall notinline nofixup FileManager::createDirectoryInCache char * pathName +0x00025680 func BOOL __cdecl notinline nofixup readPending_MAYBE +0x000256a0 func BOOL __cdecl notinline nofixup initFile FileType type uint id +0x000256c0 func BOOL __cdecl notinline nofixup checkFile FileType fileType uint id +0x00025700 func void * __cdecl notinline nofixup getFile FileType fileType uint id undefined4 param_3 undefined4 param_4 +0x00025740 func void __stdcall notinline nofixup freeFile FileType fileType uint id +0x00025770 func BOOL default notinline nofixup fileExists char * path 0x000257b0 func uint default notinline nofixup getSomeFileManagerField 0x000257d0 func void __thiscall notinline nofixup FileManager::FileManager CActBase * parent eACTID index uint bitfieldValue -0x00025dd0 func BOOL __thiscall notinline nofixup FileManager::BeginReadFromPath char * filePath void * * buf +0x00025dd0 func BOOL __thiscall notinline nofixup FileManager::readFromPath char * filePath void * * buf 0x00026010 func void __cdecl notinline nofixup initFileManager CActRoot * parent 0x00026080 func void __stdcall notinline nofixup freeCurrentFile 0x000260d0 func void __thiscall notinline nofixup FileManager::~FileManager 0x00026150 func FileManager * __thiscall notinline nofixup FileManager::`scalar_deleting_destructor' UINT param_1 -0x00026170 func BOOL __thiscall notinline nofixup FileManager::readCacheTableEntry -0x00026200 func BOOL __thiscall notinline nofixup FileManager::checkCacheTableEntry char * id -0x00026210 func undefined4 __thiscall notinline nofixup FileManager::getCacheTableEntry char * id undefined4 param_2 undefined4 param_3 -0x00026230 func BOOL __thiscall notinline nofixup FileManager::initCacheTableEntry char * path +0x00026170 func BOOL __thiscall notinline nofixup FileManager::readUnknown +0x00026200 func BOOL __thiscall notinline nofixup FileManager::checkUnknown char * id +0x00026210 func undefined4 __thiscall notinline nofixup FileManager::getUnknown char * id undefined4 param_2 undefined4 param_3 +0x00026230 func BOOL __thiscall notinline nofixup FileManager::initUnknown char * path 0x000262b0 func BOOL __thiscall notinline nofixup FileManager::readCacheTable 0x00026390 func BOOL __thiscall notinline nofixup FileManager::checkCacheTable int param_1 0x000263a0 func undefined4 __thiscall notinline nofixup FileManager::getCacheTable int param_1 @@ -331,7 +331,7 @@ 0x00042b00 func GraffitiSoulSpawnView_MAYBE * __thiscall notinline nofixup GraffitiSoulSpawnView_MAYBE::GraffitiSoulSpawnView_MAYBE CActBase * parent eACTID index eACTFLAG flags GraffitiSoul * soul 0x00042c20 func void * __thiscall notinline nofixup GraffitiSoulSpawnView_MAYBE::`scalar_deleting_destructor' byte param_1 0x000432e0 func void __thiscall notinline nofixup PickupList::~PickupList -0x00043700 func LanguageId __thiscall notinline nofixup Language::Get +0x00043700 func LanguageId __thiscall notinline nofixup Language::get 0x00043c00 func PickupList * __thiscall notinline nofixup PickupList::PickupList CActBase * parent eACTID index uint bitfieldValue OffCnt * pickupList 0x00043ea0 func void * __thiscall notinline nofixup PickupList::`scalar_deleting_destructor' byte param_1 0x00044740 func eACTID default notinline nofixup spawnPickupList CActBase * parent OffCnt * pickupList @@ -363,16 +363,15 @@ 0x0004d5f0 func undefined __stdcall notinline nofixup populateSomeCharIdArray ePLAYERCHARID * buf 0x0004d880 func void __thiscall notinline nofixup Mission::setManyPlayerStateFieldsToOne 0x0004db30 func void default notinline nofixup resolveMissionBinPtrs MissionBin * mssn -0x0004e930 func void __stdcall notinline nofixup MissionCreate uint chapter uint idDigits34 BOOL alwaysFalse +0x0004e930 func void __stdcall notinline nofixup newMission uint chapter uint idDigits34 BOOL param_3 0x0004eac0 func undefined unknown notinline nofixup getSmthFromInactiveMssnStg undefined4 param_1 0x0004eaf0 func void __cdecl notinline nofixup resetSomeGlobals 0x0004eb80 func BOOL default notinline nofixup getProfKModeSetting uint indexMajor undefined4 indexMinor -0x0004ec30 func BOOL __cdecl notinline nofixup getSomeController_MAYBE undefined4 out -0x0004ecd0 func CMissionManager * __thiscall notinline nofixup CMissionManager::CMissionManager CActBase * parent eACTID index eACTFLAG flags -0x0004ef00 func void __thiscall notinline nofixup CMissionManager::~CMissionManager -0x0004ef90 func void __thiscall notinline nofixup CMissionManager::Exec0Default -0x0004f0b0 func void __fastcall notinline nofixup switchD_0004ef98::caseD_5 CMissionManager * param_1 -0x0004f9a0 func void __thiscall notinline nofixup CMissionManager::DrawListDefault +0x0004ec30 func BOOL default notinline nofixup getSomeController_MAYBE undefined4 out +0x0004ecd0 func MissionManager * __thiscall notinline nofixup MissionManager::MissionManager CActBase * parent eACTID index eACTFLAG flags +0x0004ef00 func void __thiscall notinline nofixup MissionManager::~MissionManager +0x0004ef90 func void __thiscall notinline nofixup MissionManager::execDefault +0x0004f9a0 func void __thiscall notinline nofixup MissionManager::drawDefault 0x0004fbc0 func void __thiscall notinline nofixup CharacterSelect::~CharacterSelect 0x00051630 func void __thiscall notinline nofixup Mission::~Mission 0x00051780 func void __thiscall notinline nofixup Mission::setupFromBin BOOL param_1 @@ -389,7 +388,7 @@ 0x00053b40 func void __thiscall notinline nofixup Mission::advanceChapter Mission * param_1 0x00053fb0 func void __thiscall notinline nofixup Mission::handleMssnExit uint exitIndex 0x00055530 func BOOL default notinline nofixup setupMssnFromBin BOOL param_1 -0x00055570 func void * __thiscall notinline nofixup CMissionManager::`scalar_deleting_destructor' byte param_1 +0x00055570 func void * __thiscall notinline nofixup MissionManager::`scalar_deleting_destructor' byte param_1 0x00055800 func void * __thiscall notinline nofixup CharacterSelect::_~CharacterSelect uint param_1 0x000564a0 func Mission * __thiscall notinline nofixup Mission::`scalar_deleting_destructor' uint param_1 0x00056990 func void __thiscall notinline nofixup Mission::runListenerCalls Call * listeners uint count @@ -422,15 +421,15 @@ 0x00065c80 func void __cdecl notinline nofixup setStartButtonStatesToZero 0x00066110 func void __thiscall notinline nofixup UnknownStatic17::calledDuringExec0Default 0x000663c0 func void __thiscall notinline nofixup UnknownStatic17::`scalar_deleting_destructor' byte param_1 -0x000663e0 func void __thiscall notinline nofixup CProgress::~CProgress -0x00066440 func void __thiscall notinline nofixup CProgress::execDefault -0x00066550 func void __thiscall notinline nofixup CProgress::drawDefault undefined4 param_1 -0x000665f0 func void __thiscall notinline nofixup CProgress::execUncoveredPause -0x00066660 func void __thiscall notinline nofixup CProgress::drawUncoveredPause undefined4 param_1 -0x000666f0 func void __thiscall notinline nofixup CProgress::Show BOOL param_1 BOOL pauseMusic -0x000667d0 func void __thiscall notinline nofixup CProgress::hide -0x00066870 func CProgress * __thiscall notinline nofixup CProgress::CProgress CActBase * parent eACTID index eACTFLAG flags -0x00066900 func void * __thiscall notinline nofixup CProgress::`scalar_deleting_destructor' byte param_1 +0x000663e0 func void __thiscall notinline nofixup LoadingScreen::~LoadingScreen +0x00066440 func void __thiscall notinline nofixup LoadingScreen::execDefault +0x00066550 func void __thiscall notinline nofixup LoadingScreen::drawDefault undefined4 param_1 +0x000665f0 func void __thiscall notinline nofixup LoadingScreen::execUncoveredPause +0x00066660 func void __thiscall notinline nofixup LoadingScreen::drawUncoveredPause undefined4 param_1 +0x000666f0 func void __thiscall notinline nofixup LoadingScreen::show BOOL param_1 BOOL pauseMusic +0x000667d0 func void __thiscall notinline nofixup LoadingScreen::hide +0x00066870 func LoadingScreen * __thiscall notinline nofixup LoadingScreen::LoadingScreen CActBase * parent eACTID index eACTFLAG flags +0x00066900 func void * __thiscall notinline nofixup LoadingScreen::l`scalar_deleting_destructor' byte param_1 0x00066950 func float __thiscall notinline nofixup FRNG::get 0x00066980 func void __thiscall notinline nofixup FRNG::seed uint seed 0x00066ad0 func void __thiscall notinline nofixup UnknownStatic18::calledDuringExec0Default @@ -475,7 +474,7 @@ 0x0006f200 func UnknownObj_0x12B0 * __thiscall notinline nofixup UnknownObj_0x12B0::UnknownAllocated_0x12B0 CActBase * parent eACTID index eACTFLAG flags char * message int param_5 uint otherFlags undefined4 controllerThatCanDismiss 0x0006f380 func UnknownObj_0x12B0 * __thiscall notinline nofixup UnknownObj_0x12B0::ll`scalar_deleting_destructor' byte param_1 0x0006f3a0 func void __thiscall notinline nofixup UnknownObj_0x12B0::execDefault -0x0006f450 func void __cdecl notinline nofixup ShowMessage char * msg int param_2 undefined4 param_3 int controllerThatCanDismiss +0x0006f450 func void __cdecl notinline nofixup showMessage char * msg int param_2 undefined4 param_3 int controllerThatCanDismiss 0x0006f520 func void __stdcall notinline nofixup showInsufficientMemory int controller 0x0006f580 func void __stdcall notinline nofixup showUnableToLoadGraffiti int controller 0x0006f5b0 func undefined __cdecl notinline nofixup showReconnectNMessage uint controllerId @@ -483,7 +482,7 @@ 0x0006f650 func undefined __cdecl notinline nofixup showReconnectNAndStartMessage2 uint controllerId 0x0006f6a0 func void __cdecl notinline nofixup showReconnectControllerMessage 0x0006f6d0 func void default notinline nofixup showCharacterJoinMessage ePLAYERCHARID character undefined4 controller -0x0006f730 func undefined unknown notinline nofixup ShowProblemWithDisc +0x0006f730 func undefined unknown notinline nofixup showProblemWithDisc 0x0006f760 func undefined unknown notinline nofixup showSaveLoadErr 0x0006f8c0 func void __thiscall notinline nofixup UnknownStatic27::calledDuringExec0Default 0x0006f9c0 func undefined4 * __thiscall notinline nofixup UnknownStatic27::`scalar_deleting_destructor' byte param_1 @@ -506,8 +505,8 @@ 0x0007be30 func void __thiscall notinline nofixup CActSequence::Init 0x0007bfd0 func void __thiscall notinline nofixup CActSequence::LoadSprNorm 0x0007c020 func void __thiscall notinline nofixup CActSequence::WaitLoadSprNorm -0x0007c050 func void __thiscall notinline nofixup CActSequence::StartBuildCache -0x0007c070 func void __thiscall notinline nofixup CActSequence::WaitDestructAct0x1 +0x0007c050 func void __thiscall notinline nofixup CActSequence::BuildCache +0x0007c070 func void __thiscall notinline nofixup CActSequence::waitDestructGameObj0x1 0x0007c090 func void __thiscall notinline nofixup CActSequence::LoadLogos 0x0007c0d0 func void __thiscall notinline nofixup CActSequence::StartLogos 0x0007c110 func void __thiscall notinline nofixup CActSequence::WaitDestructLogos @@ -550,10 +549,10 @@ 0x0007d080 func void __thiscall notinline nofixup CActSequence::WaitLoadVsMenu 0x0007d100 func void __thiscall notinline nofixup CActSequence::WaitEndVsMenu 0x0007d120 func void __thiscall notinline nofixup CActSequence::ReturnFromVsMenu -0x0007d1a0 func void __thiscall notinline nofixup CActSequence::PrepareEndingSaveMenu -0x0007d210 func void __thiscall notinline nofixup CActSequence::StartEndingSaveMenu -0x0007d270 func void __thiscall notinline nofixup CActSequence::WaitEndEndingSaveMenu -0x0007d290 func void __thiscall notinline nofixup CActSequence::ReturnFromEndingSaveMenu +0x0007d1a0 func void __thiscall notinline nofixup CActSequence::PrepareChap9SaveMenu +0x0007d210 func void __thiscall notinline nofixup CActSequence::StartChap9SaveMenu +0x0007d270 func void __thiscall notinline nofixup CActSequence::WaitEndChap9SaveMenu +0x0007d290 func void __thiscall notinline nofixup CActSequence::ReturnFromChap9SaveMenu 0x0007d2d0 func void __thiscall notinline nofixup CActSequence::PrepareEnding 0x0007d320 func void __thiscall notinline nofixup CActSequence::WaitLoadEnding 0x0007d3d0 func void __thiscall notinline nofixup CActSequence::WaitEndEnding @@ -984,16 +983,16 @@ 0x00186950 func D3DVECTOR * __fastcall notinline nofixup elementMul D3DVECTOR * out D3DVECTOR * u D3DVECTOR * v 0x001869e0 func void __fastcall notinline nofixup unpack3 D3DVECTOR * out uint packed 0x00186a30 func void __fastcall notinline nofixup unpack4 D3DVECTOR4 * out uint packed -0x00186ba0 func void __cdecl notinline nofixup CActMan__CActMan_handler_unwind1 -0x00186bab func void __cdecl notinline nofixup CActMan__CActMan_handler ExceptionRecord * param_1 EHRegistrationNode * param_2 void * param_3 EHDispatcherContext * param_4 -0x00186bc0 func void __cdecl notinline nofixup CActRoot__CActRoot_handler_unwind1 -0x00186bc8 func void __cdecl notinline nofixup CActRoot__CActRoot_handler_unwind2 -0x00186bd3 func void __cdecl notinline nofixup CActRoot__CActRoot_handler_unwind3 -0x00186bde func void __cdecl notinline nofixup CActRoot__CActRoot_handler_unwind4 -0x00186be9 func void __cdecl notinline nofixup CActRoot__CActRoot_handler_unwind5 -0x00186bf4 func void __cdecl notinline nofixup CActRoot__CActRoot_handler ExceptionRecord * param_1 EHRegistrationNode * param_2 void * param_3 EHDispatcherContext * param_4 -0x00186c00 func void __cdecl notinline nofixup CActMan__Init_handler_unwind1 -0x00186c0b func void __cdecl notinline nofixup CActMan__Init_handler ExceptionRecord * param_1 EHRegistrationNode * param_2 void * param_3 EHDispatcherContext * param_4 +0x00186ba0 func void __cdecl notinline nofixup Game_handler_unwind1 +0x00186bab func void __cdecl notinline nofixup Game_handler ExceptionRecord * param_1 EHRegistrationNode * param_2 void * param_3 EHDispatcherContext * param_4 +0x00186bc0 func void __cdecl notinline nofixup RootExecObj_handler_unwind1 +0x00186bc8 func void __cdecl notinline nofixup RootExecObj_handler_unwind2 +0x00186bd3 func void __cdecl notinline nofixup RootExecObj_handler_unwind3 +0x00186bde func void __cdecl notinline nofixup RootExecObj_handler_unwind4 +0x00186be9 func void __cdecl notinline nofixup RootExecObj_handler_unwind5 +0x00186bf4 func void __cdecl notinline nofixup RootExecObj_handler ExceptionRecord * param_1 EHRegistrationNode * param_2 void * param_3 EHDispatcherContext * param_4 +0x00186c00 func void __cdecl notinline nofixup initRootExecObj_handler_unwind1 +0x00186c0b func void __cdecl notinline nofixup initRootExecObj_handler ExceptionRecord * param_1 EHRegistrationNode * param_2 void * param_3 EHDispatcherContext * param_4 0x00186cc0 func void __stdcall notinline nofixup createCopSpawnView_unwind1 0x00186ccb func void __stdcall notinline nofixup createCopSpawnView_handler ExceptionRecord * param_1 EHRegistrationNode * param_2 void * param_3 EHDispatcherContext * param_4 0x00186db0 func void __stdcall notinline nofixup ~CacheBuilder_MAYBE_handler_unwind1 @@ -1121,8 +1120,8 @@ 0x001c4cd0 data CActBaseVtbl Event::`vftable' 0x001c4d10 data CActBaseVtbl UnknownObj_0x6::`vftable' 0x001c4d50 data pointer UnknownStatic06::`vftable' -0x001c4d58 data CActBaseVtbl CCacheBuilder::`vftable' -0x001c4f68 data CActBaseVtbl FileManager::`vftable' +0x001c4d58 data CActBaseVtbl CacheBuilder_MAYBE::`vftable' +0x001c4f68 data undefined * FileManager::`vftable' 0x001ca168 data pointer UnknownStatic07::vtable 0x001ca3d8 data pointer CSaveData::`vftable' 0x001ca440 data CActBaseVtbl TextRenderer_MAYBE::`vftable' @@ -1133,13 +1132,13 @@ 0x001ca7d8 data undefined * EventChild1Child::vtable 0x001caa8c data ProgressVtbl Progress::`vftable' 0x001caab0 data CActBaseVtbl Mission::`vftable' -0x001caaf8 data CActBaseVtbl CMissionManager::`vftable' +0x001caaf8 data CActBaseVtbl MissionManager::`vftable' 0x001cab98 data undefined * CharacterSelect::vtable 0x001caf70 data pointer CMusashi::vtable 0x001cb000 data undefined * MissionManagerChild_0xE8::vtable 0x001cb094 data pointer UnknownStatic16::vtable 0x001cb0a0 data pointer UnknownStatic17::vtable -0x001cb0a8 data CActBaseVtbl CProgress::`vftable` +0x001cb0a8 data undefined * LoadingScreen::vtable 0x001cb0e8 data float g_cameraSpeed 0x001cb0ec data float 1/2^15 0x001cb0f0 data pointer UnknownStatic18::vtable @@ -1194,12 +1193,12 @@ 0x001e3828 data undefined *[33] Controller::vtable 0x001e38fc data IID g_directSound8 0x001e4284 data pointer exception::vtable -0x001e4d20 data EHUnwindMapEntry[1] CActMan__CActMan_unwindmap -0x001e4d28 data EHFuncInfo CActMan__CActMan_funcinfo -0x001e4d44 data EHUnwindMapEntry[5] CActRoot__CActRoot_unwindmap -0x001e4d6c data EHFuncInfo CActRoot__CActRoot_funcinfo -0x001e4d88 data EHUnwindMapEntry CActMan__Init_unwindmap -0x001e4d90 data EHFuncInfo CActMan__Init_funcinfo +0x001e4d20 data EHUnwindMapEntry[1] Game_unwindmap +0x001e4d28 data EHFuncInfo Game_funcinfo +0x001e4d44 data EHUnwindMapEntry[5] RootExecObj_unwindmap +0x001e4d6c data EHFuncInfo RootExecObj_funcinfo +0x001e4d88 data EHUnwindMapEntry initRootExecObj_unwindmap +0x001e4d90 data EHFuncInfo initRootExecObj_funcinfo 0x001e4ea8 data EHUnwindMapEntry createCopSpawnView_unwindmap 0x001e4eb0 data EHFuncInfo createCopSpawnView_funcinfo 0x001e501c data EHUnwindMapEntry ~CacheBuilder_MAYBE_unwindmap @@ -1352,7 +1351,7 @@ 0x00251d44 data DWORD g_textureOps 0x00251d54 data int[4] g_texIndexPerStage 0x00251d64 data ControllerCOM_MAYBE * g_controllerCOM_MAYBE -0x00251d68 data CMGameGLFont * g_lpTimesNewRoman +0x00251d68 data CMGameGLFont * g_timesNewRoman 0x00251d6c data CMGameGL * g_pMGameGLInterface 0x00251d70 data GraphicsCOMChild * g_graphicsCOMChild 0x00251d74 data UnknownCOM * g_unknownCOM @@ -1364,7 +1363,7 @@ 0x00251de0 data Inputs[4] g_inputs 0x00251ee0 data Inputs g_activeControllerInput_MAYBE 0x00251f20 data uint g_activeController_MAYBE -0x00251f24 data CProgress * g_lpProgress +0x00251f24 data undefined4 g_loadingScreen 0x00251f28 data FRNG g_fRng 0x00251f5c data SGraphicsSettings g_graphicsSettings 0x00251f78 data UnknownStatic24 g_unknownStatic24