; ; _GetEstablisherFrame from 0x1801253f8 to 0x1801254c1 (201 bytes) ; ; 8 xrefs: ; > __FrameHandler3::FrameUnwindToEmptyState @ 0x1801253ae ; > __GetUnwindTryBlock @ 0x1801258ae ; > __SetUnwindTryBlock @ 0x1801258ed ; > CatchIt<__FrameHandler3> @ 0x180125c7c ; > FindHandler<__FrameHandler3> @ 0x1801260e4 ; > __FrameHandler3::GetHandlerSearchState @ 0x180126cd1 ; > @ 0x1802027f8 ; > @ 0x180202804 ; ; 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 ; mov [rsp+arg_8], rbx ; +0x0, 0x1801253f8 mov [rsp+arg_10], rbp ; +0x5, 0x1801253fd push rsi ; +0xa, 0x180125402 push rdi ; +0xb, 0x180125403 push r12 ; +0xc, 0x180125404 push r14 ; +0xe, 0x180125406 push r15 ; +0x10, 0x180125408 sub rsp, 20h ; +0x12, 0x18012540a mov edi, [r8+0Ch] ; +0x16, 0x18012540e mov r12, rcx ; +0x1a, 0x180125412 mov rcx, r8; struct _s_FuncInfo * ; +0x1d, 0x180125415 mov rsi, r9 ; +0x20, 0x180125418 mov r14, r8 ; +0x23, 0x18012541b mov r15, rdx ; +0x26, 0x18012541e call ?StateFromControlPc@__FrameHandler3@@SAHPEBU_s_FuncInfo@@PEAU_xDISPATCHER_CONTEXT@@@Z ; +0x29, 0x180125421 mov r10, [r12] ; +0x2e, 0x180125426 mov ebp, eax ; +0x32, 0x18012542a mov [rsi], r10 ; +0x34, 0x18012542c test edi, edi ; +0x37, 0x18012542f jz short loc_1801254A7 ; +0x39, 0x180125431 movsxd rax, dword ptr [r14+10h] ; +0x3b, 0x180125433 dec edi ; +0x3f, 0x180125437 lea rdx, [rdi+rdi*4] ; +0x41, 0x180125439 lea rbx, [rax+rdx*4] ; +0x45, 0x18012543d add rbx, [r15+8] ; +0x49, 0x180125441 cmp ebp, [rbx+4] ; +0x4d, 0x180125445 jle short loc_18012542F ; +0x50, 0x180125448 cmp ebp, [rbx+8] ; +0x52, 0x18012544a jg short loc_18012542F ; +0x55, 0x18012544d mov rcx, [r15]; ControlPc ; +0x57, 0x18012544f lea rdx, [rsp+48h+ImageBase]; ImageBase ; +0x5a, 0x180125452 xor r8d, r8d; HistoryTable ; +0x5f, 0x180125457 call cs:RtlLookupFunctionEntry ; +0x62, 0x18012545a movsxd r8, dword ptr [rbx+10h] ; +0x68, 0x180125460 xor ecx, ecx ; +0x6c, 0x180125464 add r8, [rsp+48h+ImageBase] ; +0x6e, 0x180125466 mov r9d, [rbx+0Ch] ; +0x73, 0x18012546b mov r10d, [rax] ; +0x77, 0x18012546f test r9d, r9d ; +0x7a, 0x180125472 jz short loc_18012548E ; +0x7d, 0x180125475 lea rdx, [r8+0Ch] ; +0x7f, 0x180125477 movsxd rax, dword ptr [rdx] ; +0x83, 0x18012547b cmp rax, r10 ; +0x86, 0x18012547e jz short loc_180125493 ; +0x89, 0x180125481 inc ecx ; +0x8b, 0x180125483 add rdx, 14h ; +0x8d, 0x180125485 cmp ecx, r9d ; +0x91, 0x180125489 jb short loc_18012547B ; +0x94, 0x18012548c cmp ecx, r9d ; +0x96, 0x18012548e jnb short loc_18012542F ; +0x99, 0x180125491 mov rax, [r12] ; +0x9b, 0x180125493 lea rcx, [rcx+rcx*4] ; +0x9f, 0x180125497 movsxd rcx, dword ptr [r8+rcx*4+10h] ; +0xa3, 0x18012549b mov rcx, [rcx+rax] ; +0xa8, 0x1801254a0 mov [rsi], rcx ; +0xac, 0x1801254a4 mov rbx, [rsp+48h+arg_8] ; +0xaf, 0x1801254a7 mov rax, rsi ; +0xb4, 0x1801254ac mov rbp, [rsp+48h+arg_10] ; +0xb7, 0x1801254af add rsp, 20h ; +0xbc, 0x1801254b4 pop r15 ; +0xc0, 0x1801254b8 pop r14 ; +0xc2, 0x1801254ba pop r12 ; +0xc4, 0x1801254bc pop rdi ; +0xc6, 0x1801254be pop rsi ; +0xc7, 0x1801254bf retn ; +0xc8, 0x1801254c0