; ; __FrameHandler3::FrameUnwindToState from 0x180126b10 to 0x180126c9a (394 bytes) ; ; 3 xrefs: ; > __FrameHandler3::FrameUnwindToEmptyState @ 0x1801253e3 ; > __InternalCxxFrameHandler<__FrameHandler3> @ 0x180126613 ; > @ 0x180202948 ; ; 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_18], r9d ; +0x0, 0x180126b10 mov [rsp+arg_10], r8 ; +0x5, 0x180126b15 mov [rsp+arg_0], rcx ; +0xa, 0x180126b1a push rbx ; +0xf, 0x180126b1f push rsi ; +0x10, 0x180126b20 push rdi ; +0x11, 0x180126b21 push r12 ; +0x12, 0x180126b22 push r13 ; +0x14, 0x180126b24 push r14 ; +0x16, 0x180126b26 push r15 ; +0x18, 0x180126b28 sub rsp, 30h ; +0x1a, 0x180126b2a mov r12d, r9d ; +0x1e, 0x180126b2e mov rsi, r8 ; +0x21, 0x180126b31 mov rbx, rdx ; +0x24, 0x180126b34 mov r15, rcx ; +0x27, 0x180126b37 call _GetImageBase ; +0x2a, 0x180126b3a mov r13, rax ; +0x2f, 0x180126b3f mov [rsp+68h+var_40], rax ; +0x32, 0x180126b42 mov r8, rsi; struct _s_FuncInfo * ; +0x37, 0x180126b47 mov rdx, rbx; struct _xDISPATCHER_CONTEXT * ; +0x3a, 0x180126b4a mov rcx, r15; unsigned __int64 * ; +0x3d, 0x180126b4d call ?GetCurrentState@__FrameHandler3@@SAHPEA_KPEAU_xDISPATCHER_CONTEXT@@PEBU_s_FuncInfo@@@Z ; +0x40, 0x180126b50 mov edi, eax ; +0x45, 0x180126b55 call __vcrt_getptd ; +0x47, 0x180126b57 inc dword ptr [rax+30h] ; +0x4c, 0x180126b5c cmp edi, 0FFFFFFFFh ; +0x4f, 0x180126b5f jz loc_180126C53 ; +0x52, 0x180126b62 cmp edi, r12d ; +0x58, 0x180126b68 jle loc_180126C53 ; +0x5b, 0x180126b6b cmp edi, 0FFFFFFFFh ; +0x61, 0x180126b71 jle loc_180126C8E ; +0x64, 0x180126b74 cmp edi, [rsi+4] ; +0x6a, 0x180126b7a jge loc_180126C8E ; +0x6d, 0x180126b7d movsxd r14, edi ; +0x73, 0x180126b83 call _GetImageBase ; +0x76, 0x180126b86 movsxd rcx, dword ptr [rsi+8] ; +0x7b, 0x180126b8b lea rax, [rax+r14*8] ; +0x7f, 0x180126b8f mov edi, [rcx+rax] ; +0x83, 0x180126b93 mov [rsp+68h+var_48], edi ; +0x86, 0x180126b96 call _GetImageBase ; +0x8a, 0x180126b9a movsxd rcx, dword ptr [rsi+8] ; +0x8f, 0x180126b9f lea rax, [rax+r14*8] ; +0x93, 0x180126ba3 cmp dword ptr [rcx+rax+4], 0 ; +0x97, 0x180126ba7 jz short loc_180126BCA ; +0x9c, 0x180126bac call _GetImageBase ; +0x9e, 0x180126bae movsxd rcx, dword ptr [rsi+8] ; +0xa3, 0x180126bb3 lea rax, [rax+r14*8] ; +0xa7, 0x180126bb7 movsxd rbx, dword ptr [rcx+rax+4] ; +0xab, 0x180126bbb call _GetImageBase ; +0xb0, 0x180126bc0 add rax, rbx ; +0xb5, 0x180126bc5 jmp short loc_180126BCC ; +0xb8, 0x180126bc8 xor eax, eax ; +0xba, 0x180126bca test rax, rax ; +0xbc, 0x180126bcc jz short loc_180126C2A ; +0xbf, 0x180126bcf mov r8d, edi; int ; +0xc1, 0x180126bd1 mov rdx, rsi; struct _s_FuncInfo * ; +0xc4, 0x180126bd4 mov rcx, r15; unsigned __int64 * ; +0xc7, 0x180126bd7 call ?SetState@__FrameHandler3@@SAXPEA_KPEBU_s_FuncInfo@@H@Z ; +0xca, 0x180126bda call _GetImageBase ; +0xcf, 0x180126bdf movsxd rcx, dword ptr [rsi+8] ; +0xd4, 0x180126be4 lea rax, [rax+r14*8] ; +0xd8, 0x180126be8 cmp dword ptr [rcx+rax+4], 0 ; +0xdc, 0x180126bec jz short loc_180126C0F ; +0xe1, 0x180126bf1 call _GetImageBase ; +0xe3, 0x180126bf3 movsxd rcx, dword ptr [rsi+8] ; +0xe8, 0x180126bf8 lea rax, [rax+r14*8] ; +0xec, 0x180126bfc movsxd rbx, dword ptr [rcx+rax+4] ; +0xf0, 0x180126c00 call _GetImageBase ; +0xf5, 0x180126c05 add rax, rbx ; +0xfa, 0x180126c0a jmp short loc_180126C11 ; +0xfd, 0x180126c0d xor eax, eax ; +0xff, 0x180126c0f mov r8d, 103h ; +0x101, 0x180126c11 mov rdx, r15 ; +0x107, 0x180126c17 mov rcx, rax ; +0x10a, 0x180126c1a call _CallSettingFrame ; +0x10d, 0x180126c1d mov rcx, r13 ; +0x112, 0x180126c22 call _SetImageBase ; +0x115, 0x180126c25 jmp short loc_180126C4A ; +0x11a, 0x180126c2a mov r12d, [rsp+68h+arg_18] ; +0x11c, 0x180126c2c mov rsi, [rsp+68h+arg_10] ; +0x124, 0x180126c34 mov r15, [rsp+68h+arg_0] ; +0x12c, 0x180126c3c mov r13, [rsp+68h+var_40] ; +0x131, 0x180126c41 mov edi, [rsp+68h+var_48] ; +0x136, 0x180126c46 mov [rsp+68h+var_44], edi ; +0x13a, 0x180126c4a jmp loc_180126B5F ; +0x13e, 0x180126c4e call __vcrt_getptd ; +0x143, 0x180126c53 cmp dword ptr [rax+30h], 0 ; +0x148, 0x180126c58 jle short loc_180126C66 ; +0x14c, 0x180126c5c call __vcrt_getptd ; +0x14e, 0x180126c5e dec dword ptr [rax+30h] ; +0x153, 0x180126c63 cmp edi, 0FFFFFFFFh ; +0x156, 0x180126c66 jz short loc_180126C70 ; +0x159, 0x180126c69 cmp edi, r12d ; +0x15b, 0x180126c6b jg short loc_180126C94 ; +0x15e, 0x180126c6e mov r8d, edi; int ; +0x160, 0x180126c70 mov rdx, rsi; struct _s_FuncInfo * ; +0x163, 0x180126c73 mov rcx, r15; unsigned __int64 * ; +0x166, 0x180126c76 call ?SetState@__FrameHandler3@@SAXPEA_KPEBU_s_FuncInfo@@H@Z ; +0x169, 0x180126c79 add rsp, 30h ; +0x16e, 0x180126c7e pop r15 ; +0x172, 0x180126c82 pop r14 ; +0x174, 0x180126c84 pop r13 ; +0x176, 0x180126c86 pop r12 ; +0x178, 0x180126c88 pop rdi ; +0x17a, 0x180126c8a pop rsi ; +0x17b, 0x180126c8b pop rbx ; +0x17c, 0x180126c8c retn ; +0x17d, 0x180126c8d call abort ; +0x17e, 0x180126c8e align 4 ; +0x183, 0x180126c93 call abort ; +0x184, 0x180126c94 align 2 ; +0x189, 0x180126c99