; ; __InternalCxxFrameHandler<__FrameHandler3> from 0x180126538 to 0x18012676f (567 bytes) ; ; 3 xrefs: ; > __CxxFrameHandler3 @ 0x18012585c ; > unknown_libname_15 @ 0x180142c26 ; > @ 0x1802028f4 ; ; 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 rax, rsp ; +0x0, 0x180126538 mov [rax+8], rbx ; +0x3, 0x18012653b mov [rax+10h], rbp ; +0x7, 0x18012653f mov [rax+18h], rsi ; +0xb, 0x180126543 mov [rax+20h], rdi ; +0xf, 0x180126547 push r14 ; +0x13, 0x18012654b sub rsp, 50h ; +0x15, 0x18012654d mov rdi, rcx ; +0x19, 0x180126551 mov rsi, r9 ; +0x1c, 0x180126554 mov rcx, r8 ; +0x1f, 0x180126557 mov r14, r8 ; +0x22, 0x18012655a mov rbp, rdx ; +0x25, 0x18012655d call __except_validate_context_record ; +0x28, 0x180126560 call __vcrt_getptd ; +0x2d, 0x180126565 mov rbx, [rsp+58h+arg_20] ; +0x32, 0x18012656a mov ecx, 80000029h ; +0x3a, 0x180126572 mov edx, 80000026h ; +0x3f, 0x180126577 cmp dword ptr [rax+40h], 0 ; +0x44, 0x18012657c jnz short loc_1801265BA ; +0x48, 0x180126580 cmp dword ptr [rdi], 0E06D7363h ; +0x4a, 0x180126582 jz short loc_1801265BA ; +0x50, 0x180126588 cmp [rdi], ecx ; +0x52, 0x18012658a jnz short loc_18012659E ; +0x54, 0x18012658c cmp dword ptr [rdi+18h], 0Fh ; +0x56, 0x18012658e jnz short loc_1801265A2 ; +0x5a, 0x180126592 cmp qword ptr [rdi+60h], 19930520h ; +0x5c, 0x180126594 jmp short loc_1801265A0 ; +0x64, 0x18012659c cmp [rdi], edx ; +0x66, 0x18012659e jz short loc_1801265BA ; +0x68, 0x1801265a0 mov eax, [rbx] ; +0x6a, 0x1801265a2 and eax, 1FFFFFFFh ; +0x6c, 0x1801265a4 cmp eax, 19930522h ; +0x71, 0x1801265a9 jb short loc_1801265BA ; +0x76, 0x1801265ae test byte ptr [rbx+24h], 1 ; +0x78, 0x1801265b0 jnz loc_180126749 ; +0x7c, 0x1801265b4 test byte ptr [rdi+4], 66h ; +0x82, 0x1801265ba jz loc_180126652 ; +0x86, 0x1801265be cmp dword ptr [rbx+4], 0 ; +0x8c, 0x1801265c4 jz loc_180126749 ; +0x90, 0x1801265c8 cmp [rsp+58h+arg_28], 0 ; +0x96, 0x1801265ce jnz loc_180126749 ; +0x9e, 0x1801265d6 test byte ptr [rdi+4], 20h ; +0xa4, 0x1801265dc jz short loc_18012663F ; +0xa8, 0x1801265e0 cmp [rdi], edx ; +0xaa, 0x1801265e2 jnz short loc_18012661D ; +0xac, 0x1801265e4 mov r8, [rsi+20h]; unsigned __int64 ; +0xae, 0x1801265e6 mov rdx, rsi; struct _xDISPATCHER_CONTEXT * ; +0xb2, 0x1801265ea mov rcx, rbx; struct _s_FuncInfo * ; +0xb5, 0x1801265ed call ?StateFromIp@__FrameHandler3@@SAHPEBU_s_FuncInfo@@PEAU_xDISPATCHER_CONTEXT@@_K@Z ; +0xb8, 0x1801265f0 cmp eax, 0FFFFFFFFh ; +0xbd, 0x1801265f5 jl loc_180126769 ; +0xc0, 0x1801265f8 cmp eax, [rbx+4] ; +0xc6, 0x1801265fe jge loc_180126769 ; +0xc9, 0x180126601 mov r9d, eax; int ; +0xcf, 0x180126607 mov rcx, rbp; unsigned __int64 * ; +0xd2, 0x18012660a mov rdx, rsi; struct _xDISPATCHER_CONTEXT * ; +0xd5, 0x18012660d mov r8, rbx; struct _s_FuncInfo * ; +0xd8, 0x180126610 call ?FrameUnwindToState@__FrameHandler3@@SAXPEA_KPEAU_xDISPATCHER_CONTEXT@@PEBU_s_FuncInfo@@H@Z ; +0xdb, 0x180126613 jmp loc_180126749 ; +0xe0, 0x180126618 cmp [rdi], ecx ; +0xe5, 0x18012661d jnz short loc_18012663F ; +0xe7, 0x18012661f mov r9d, [rdi+38h] ; +0xe9, 0x180126621 cmp r9d, 0FFFFFFFFh ; +0xed, 0x180126625 jl loc_180126769 ; +0xf1, 0x180126629 cmp r9d, [rbx+4] ; +0xf7, 0x18012662f jge loc_180126769 ; +0xfb, 0x180126633 mov rcx, [rdi+28h] ; +0x101, 0x180126639 jmp short loc_18012660D ; +0x105, 0x18012663d mov r8, rbx; struct _s_FuncInfo * ; +0x107, 0x18012663f mov rdx, rsi; struct _xDISPATCHER_CONTEXT * ; +0x10a, 0x180126642 mov rcx, rbp; unsigned __int64 * ; +0x10d, 0x180126645 call ?FrameUnwindToEmptyState@__FrameHandler3@@SAXPEA_KPEAU_xDISPATCHER_CONTEXT@@PEBU_s_FuncInfo@@@Z ; +0x110, 0x180126648 jmp loc_180126749 ; +0x115, 0x18012664d cmp dword ptr [rbx+0Ch], 0 ; +0x11a, 0x180126652 jnz short loc_18012669A ; +0x11e, 0x180126656 mov eax, [rbx] ; +0x120, 0x180126658 and eax, 1FFFFFFFh ; +0x122, 0x18012665a cmp eax, 19930521h ; +0x127, 0x18012665f jb short loc_18012667A ; +0x12c, 0x180126664 cmp dword ptr [rbx+20h], 0 ; +0x12e, 0x180126666 jz short loc_18012667A ; +0x132, 0x18012666a call _GetImageBase ; +0x134, 0x18012666c movsxd rcx, dword ptr [rbx+20h] ; +0x139, 0x180126671 add rax, rcx ; +0x13d, 0x180126675 jnz short loc_18012669A ; +0x140, 0x180126678 mov eax, [rbx] ; +0x142, 0x18012667a and eax, 1FFFFFFFh ; +0x144, 0x18012667c cmp eax, 19930522h ; +0x149, 0x180126681 jb loc_180126749 ; +0x14e, 0x180126686 mov eax, [rbx+24h] ; +0x154, 0x18012668c shr eax, 2 ; +0x157, 0x18012668f test al, 1 ; +0x15a, 0x180126692 jz loc_180126749 ; +0x15c, 0x180126694 cmp dword ptr [rdi], 0E06D7363h ; +0x162, 0x18012669a jnz short loc_180126710 ; +0x168, 0x1801266a0 cmp dword ptr [rdi+18h], 3 ; +0x16a, 0x1801266a2 jb short loc_180126710 ; +0x16e, 0x1801266a6 cmp dword ptr [rdi+20h], 19930522h ; +0x170, 0x1801266a8 jbe short loc_180126710 ; +0x177, 0x1801266af mov rax, [rdi+30h] ; +0x179, 0x1801266b1 cmp dword ptr [rax+8], 0 ; +0x17d, 0x1801266b5 jz short loc_180126710 ; +0x181, 0x1801266b9 call _GetThrowImageBase ; +0x183, 0x1801266bb mov r10, rax ; +0x188, 0x1801266c0 mov rax, [rdi+30h] ; +0x18b, 0x1801266c3 movsxd rcx, dword ptr [rax+8] ; +0x18f, 0x1801266c7 add r10, rcx ; +0x193, 0x1801266cb jz short loc_180126710 ; +0x196, 0x1801266ce movzx ecx, [rsp+58h+arg_38] ; +0x198, 0x1801266d0 mov r9, rsi ; +0x1a0, 0x1801266d8 mov dword ptr [rsp+58h+var_20], ecx ; +0x1a3, 0x1801266db mov r8, r14 ; +0x1a7, 0x1801266df mov rcx, [rsp+58h+arg_30] ; +0x1aa, 0x1801266e2 mov rdx, rbp ; +0x1b2, 0x1801266ea mov qword ptr [rsp+58h+var_28], rcx ; +0x1b5, 0x1801266ed mov rax, r10 ; +0x1ba, 0x1801266f2 mov ecx, [rsp+58h+arg_28] ; +0x1bd, 0x1801266f5 mov dword ptr [rsp+58h+var_30], ecx ; +0x1c4, 0x1801266fc mov rcx, rdi ; +0x1c8, 0x180126700 mov [rsp+58h+var_38], rbx ; +0x1cb, 0x180126703 call cs:__guard_dispatch_icall_fptr ; +0x1d0, 0x180126708 jmp short loc_18012674E ; +0x1d6, 0x18012670e mov rax, [rsp+58h+arg_30] ; +0x1d8, 0x180126710 mov r9, rsi ; +0x1e0, 0x180126718 mov [rsp+58h+var_20], rax; __int64 ; +0x1e3, 0x18012671b mov r8, r14 ; +0x1e8, 0x180126720 mov eax, [rsp+58h+arg_28] ; +0x1eb, 0x180126723 mov rdx, rbp; unsigned __int64 * ; +0x1f2, 0x18012672a mov [rsp+58h+var_28], eax; int ; +0x1f5, 0x18012672d mov rcx, rdi; struct EHExceptionRecord * ; +0x1f9, 0x180126731 mov al, [rsp+58h+arg_38] ; +0x1fc, 0x180126734 mov [rsp+58h+var_30], al; char ; +0x203, 0x18012673b mov [rsp+58h+var_38], rbx; struct _s_FuncInfo * ; +0x207, 0x18012673f call ??$FindHandler@V__FrameHandler3@@@@YAXPEAUEHExceptionRecord@@PEA_KPEAU_CONTEXT@@PEAU_xDISPATCHER_CONTEXT@@PEBU_s_FuncInfo@@EH1@Z ; +0x20c, 0x180126744 mov eax, 1 ; +0x211, 0x180126749 mov rbx, [rsp+58h+arg_0] ; +0x216, 0x18012674e mov rbp, [rsp+58h+arg_8] ; +0x21b, 0x180126753 mov rsi, [rsp+58h+arg_10] ; +0x220, 0x180126758 mov rdi, [rsp+58h+arg_18] ; +0x225, 0x18012675d add rsp, 50h ; +0x22a, 0x180126762 pop r14 ; +0x22e, 0x180126766 retn ; +0x230, 0x180126768 call abort ; +0x231, 0x180126769 db 0CCh ; +0x236, 0x18012676e