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

Method FindErrorFuncs

OsiLoader/Utils.cpp:107–129  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

105}
106
107void ErrorUtils::FindErrorFuncs()
108{
109 uint8_t const fragment1[] = {
110 0x4C, 0x8D, 0x8D, 0x08, 0x04, 0x00, 0x00, // lea r9, [rbp+8F8h+var_4F0]
111 0x41, 0xB0, 0x01, // mov r8b, 1
112 0x48, 0x8D, 0x95, 0xE8, 0x03, 0x00, 0x00, // lea rdx, [rbp+8F8h+var_510]
113 0xE8 // call ecl__EocClient__HandleError
114 };
115
116 uint8_t const fragment2[] = {
117 0x48, 0x8D, 0x8D, 0xE8, 0x03, 0x00, 0x00 // lea rdx, [rbp+8F8h+var_510]
118 };
119
120 auto moduleEnd = moduleStart_ + moduleSize_;
121 for (auto p = moduleStart_; p < moduleEnd; p++) {
122 if (*p == 0x48 && p[1] == 0x8B && p[2] == 0x0D
123 && memcmp(p + 7, fragment1, sizeof(fragment1)) == 0
124 && memcmp(p + 29, fragment2, sizeof(fragment2)) == 0) {
125 EoCClient = (eclEoCClient **)AsmLeaToAbsoluteAddress(p);
126 EoCClientHandleError = (EoCClient__HandleError)AsmCallToAbsoluteAddress(p + 24);
127 }
128 }
129}
130
131
132[[noreturn]]

Callers

nothing calls this directly

Calls 2

AsmLeaToAbsoluteAddressFunction · 0.70
AsmCallToAbsoluteAddressFunction · 0.70

Tested by

no test coverage detected