| 756 | |
| 757 | |
| 758 | void LibraryManager::FindErrorFuncsEoCApp() |
| 759 | { |
| 760 | Pattern p; |
| 761 | p.FromString( |
| 762 | "48 8B 0D XX XX XX XX " // mov rcx, cs:ecl__gEocClient |
| 763 | "4C 8D 8D 08 04 00 00 " // lea r9, [rbp+8F8h+var_4F0] |
| 764 | "41 B0 01 " // mov r8b, 1 |
| 765 | "48 8D 95 E8 03 00 00 " // lea rdx, [rbp+8F8h+var_510] |
| 766 | "E8 XX XX XX XX " // call ecl__EocClient__HandleError |
| 767 | "48 8D 8D E8 03 00 00 " // lea rdx, [rbp+8F8h+var_510] |
| 768 | ); |
| 769 | |
| 770 | p.Scan(moduleStart_, moduleSize_, [this](const uint8_t * match) { |
| 771 | EoCClient = (ecl::EoCClient **)AsmLeaToAbsoluteAddress(match); |
| 772 | EoCClientHandleError = (ecl::EoCClient__HandleError)AsmCallToAbsoluteAddress(match + 24); |
| 773 | }, false); |
| 774 | |
| 775 | if (EoCClient == nullptr || EoCClientHandleError == nullptr) { |
| 776 | Debug("LibraryManager::FindErrorFuncsEoCApp(): Could not find ecl::EoCClient::HandleError"); |
| 777 | InitFailed = true; |
| 778 | } |
| 779 | } |
| 780 | |
| 781 | |
| 782 | void LibraryManager::FindCharacterStatFuncsEoCApp() |
nothing calls this directly
no test coverage detected