// // __FrameHandler3::StateFromIp from 0x18012591c to 0x180125982 (102 bytes) // // 4 xrefs: // > __FrameHandler3::GetCurrentState @ 0x180125895 // > __FrameHandler3::StateFromControlPc @ 0x180125917 // > __InternalCxxFrameHandler<__FrameHandler3> @ 0x1801265f0 // > @ 0x1802028a0 // // This function is hookable on this platform! // // Using BromaIDA 8.0.0 @ https://github.com/Stazzical/BromaIDA // Using bindings at commit ba9f177b at Thu Jul 16 22:52:06 2026 from https://github.com/geode-sdk/bindings // __int64 __fastcall __FrameHandler3::StateFromIp( const struct _s_FuncInfo *a1, struct _xDISPATCHER_CONTEXT *a2, unsigned __int64 a3) { __int64 dispIPtoStateMap; // r11 __int64 ImageBase; // r10 unsigned int nIPMapEntries; // r8d __int64 v7; // r9 if ( !a1 || (dispIPtoStateMap = a1->dispIPtoStateMap, ImageBase = a2->ImageBase, !(dispIPtoStateMap + ImageBase)) ) abort(); nIPMapEntries = a1->nIPMapEntries; v7 = 0; if ( !nIPMapEntries ) return 0xFFFFFFFFLL; do { if ( a3 < ImageBase + *(int *)(dispIPtoStateMap + 8 * v7 + ImageBase) ) break; v7 = (unsigned int)(v7 + 1); } while ( (unsigned int)v7 < nIPMapEntries ); if ( (_DWORD)v7 ) return *(unsigned int *)(dispIPtoStateMap + 8LL * (unsigned int)(v7 - 1) + ImageBase + 4); else return 0xFFFFFFFFLL; }