MCPcopy Create free account
hub / github.com/Norbyte/ositools / FindGlobalStringTableCoreLib

Method FindGlobalStringTableCoreLib

OsiInterface/DataLibrariesEoCPlugin.cpp:231–258  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

229 }
230
231 void LibraryManager::FindGlobalStringTableCoreLib()
232 {
233 Pattern p;
234 p.FromString(
235 "B9 88 FA 5F 00 " // mov ecx, 5FFA88h
236 "41 8D 51 01 " // lea edx, [r9+1]
237 "E8 XX XX XX XX " // call alloc
238 "48 85 C0 " // test rax, rax
239 "74 1F " // jz short xxx
240 "48 8B C8 " // mov rcx, rax
241 "E8 XX XX XX XX " // call ctor
242 "48 8D 4C 24 60 " // rcx, [rsp+58h+arg_0]
243 "48 89 05 XX XX XX XX " // mov cs:xxx, rax
244 );
245
246 p.Scan((uint8_t const *)coreLibStart_, coreLibSize_, [this](const uint8_t * match) {
247 int32_t rel = *(int32_t const *)(match + 35);
248 auto refTo = match + rel + 7 + 32;
249
250 GlobalStrings = (GlobalStringTable const **)refTo;
251 GlobalStringTable::UseMurmur = true;
252 }, false);
253
254 if (GlobalStrings == nullptr) {
255 Debug("LibraryManager::FindGlobalStringTableCoreLib(): Could not find global string table");
256 CriticalInitFailed = true;
257 }
258 }
259
260 void LibraryManager::FindGameActionManagerEoCPlugin()
261 {

Callers

nothing calls this directly

Calls 3

DebugFunction · 0.85
FromStringMethod · 0.80
ScanMethod · 0.80

Tested by

no test coverage detected