; ; CatchIt<__FrameHandler3> from 0x180125c44 to 0x180125d15 (209 bytes) ; ; 4 xrefs: ; > FindHandler<__FrameHandler3> @ 0x18012603a ; > FindHandlerForForeignException<__FrameHandler3> @ 0x1801263d0 ; > @ 0x1802028b8 ; > @ 0x1802028c4 ; ; 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, 0x180125c44 mov [rax+8], rbx ; +0x3, 0x180125c47 mov [rax+18h], r8 ; +0x7, 0x180125c4b push rbp ; +0xb, 0x180125c4f push rsi ; +0xc, 0x180125c50 push rdi ; +0xd, 0x180125c51 push r12 ; +0xe, 0x180125c52 push r13 ; +0x10, 0x180125c54 push r14 ; +0x12, 0x180125c56 push r15 ; +0x14, 0x180125c58 sub rsp, 60h ; +0x16, 0x180125c5a mov r13, [rsp+98h+arg_20] ; +0x1a, 0x180125c5e mov r15, r9 ; +0x22, 0x180125c66 mov r12, rdx ; +0x25, 0x180125c69 lea r9, [rax+10h]; unsigned __int64 * ; +0x28, 0x180125c6c mov rbp, rcx ; +0x2c, 0x180125c70 mov r8, r13; struct _s_FuncInfo * ; +0x2f, 0x180125c73 mov rdx, r15; struct _xDISPATCHER_CONTEXT * ; +0x32, 0x180125c76 mov rcx, r12; unsigned __int64 * ; +0x35, 0x180125c79 call ?_GetEstablisherFrame@@YAPEA_KPEA_KPEAU_xDISPATCHER_CONTEXT@@PEBU_s_FuncInfo@@0@Z ; +0x38, 0x180125c7c mov r9, [rsp+98h+arg_30] ; +0x3d, 0x180125c81 mov r14, rax ; +0x45, 0x180125c89 mov rsi, [rsp+98h+arg_28] ; +0x48, 0x180125c8c test r9, r9 ; +0x50, 0x180125c94 jz short loc_180125CA7 ; +0x53, 0x180125c97 mov r8, rsi ; +0x55, 0x180125c99 mov rdx, rax ; +0x58, 0x180125c9c mov rcx, rbp ; +0x5b, 0x180125c9f call ??$BuildCatchObjectInternal@V__FrameHandler3@@@@YAXPEAUEHExceptionRecord@@PEAXPEBU_s_HandlerType@@PEBU_s_CatchableType@@@Z ; +0x5e, 0x180125ca2 mov rcx, [rsp+98h+arg_38] ; +0x63, 0x180125ca7 mov ebx, [rcx+8] ; +0x6b, 0x180125caf mov edi, [rcx] ; +0x6e, 0x180125cb2 call _GetImageBase ; +0x70, 0x180125cb4 movsxd rcx, dword ptr [rsi+0Ch] ; +0x75, 0x180125cb9 mov r9, r14; unsigned __int64 * ; +0x79, 0x180125cbd mov r8, [rsp+98h+arg_10]; struct _CONTEXT * ; +0x7c, 0x180125cc0 add rax, rcx ; +0x84, 0x180125cc8 mov cl, [rsp+98h+arg_58] ; +0x87, 0x180125ccb mov rdx, rbp; struct EHExceptionRecord * ; +0x8e, 0x180125cd2 mov [rsp+98h+var_48], cl; char ; +0x91, 0x180125cd5 mov rcx, r12; unsigned __int64 * ; +0x95, 0x180125cd9 mov [rsp+98h+var_50], r15; struct _xDISPATCHER_CONTEXT * ; +0x98, 0x180125cdc mov [rsp+98h+var_58], rsi; struct _s_HandlerType * ; +0x9d, 0x180125ce1 mov [rsp+98h+var_60], ebx; int ; +0xa2, 0x180125ce6 mov [rsp+98h+var_68], edi; int ; +0xa6, 0x180125cea mov [rsp+98h+var_70], r13; struct _s_FuncInfo * ; +0xaa, 0x180125cee mov [rsp+98h+var_78], rax; void * ; +0xaf, 0x180125cf3 call ?UnwindNestedFrames@__FrameHandler3@@SAXPEA_KPEAUEHExceptionRecord@@PEAU_CONTEXT@@0PEAXPEBU_s_FuncInfo@@HHPEBU_s_HandlerType@@PEAU_xDISPATCHER_CONTEXT@@E@Z ; +0xb4, 0x180125cf8 mov rbx, [rsp+98h+arg_0] ; +0xb9, 0x180125cfd add rsp, 60h ; +0xc1, 0x180125d05 pop r15 ; +0xc5, 0x180125d09 pop r14 ; +0xc7, 0x180125d0b pop r13 ; +0xc9, 0x180125d0d pop r12 ; +0xcb, 0x180125d0f pop rdi ; +0xcd, 0x180125d11 pop rsi ; +0xce, 0x180125d12 pop rbp ; +0xcf, 0x180125d13 retn ; +0xd0, 0x180125d14