; ; FindHandlerForForeignException<__FrameHandler3> from 0x1801261e0 to 0x1801263f5 (533 bytes) ; ; 2 xrefs: ; > FindHandler<__FrameHandler3> @ 0x18012615f ; > @ 0x1802028dc ; ; 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, 0x1801261e0 mov [rax+20h], rbx ; +0x3, 0x1801261e3 mov [rax+18h], r8 ; +0x7, 0x1801261e7 mov [rax+10h], rdx ; +0xb, 0x1801261eb push rbp ; +0xf, 0x1801261ef push rsi ; +0x10, 0x1801261f0 push rdi ; +0x11, 0x1801261f1 push r12 ; +0x12, 0x1801261f2 push r13 ; +0x14, 0x1801261f4 push r14 ; +0x16, 0x1801261f6 push r15 ; +0x18, 0x1801261f8 lea rbp, [rax-3Fh] ; +0x1a, 0x1801261fa sub rsp, 0C0h ; +0x1e, 0x1801261fe cmp dword ptr [rcx], 80000003h ; +0x25, 0x180126205 mov rsi, r9 ; +0x2b, 0x18012620b mov r15, r8 ; +0x2e, 0x18012620e mov r14, rcx ; +0x31, 0x180126211 jz short loc_180126284 ; +0x34, 0x180126214 call __vcrt_getptd ; +0x36, 0x180126216 mov r12d, [rbp+37h+arg_28] ; +0x3b, 0x18012621b mov rdi, [rbp+37h+arg_20] ; +0x3f, 0x18012621f cmp qword ptr [rax+10h], 0 ; +0x43, 0x180126223 jz short loc_18012629F ; +0x48, 0x180126228 xor ecx, ecx; Ptr ; +0x4a, 0x18012622a call cs:EncodePointer ; +0x4c, 0x18012622c mov rbx, rax ; +0x52, 0x180126232 call __vcrt_getptd ; +0x55, 0x180126235 cmp [rax+10h], rbx ; +0x5a, 0x18012623a jz short loc_18012629F ; +0x5e, 0x18012623e cmp dword ptr [r14], 0E0434F4Dh ; +0x60, 0x180126240 jz short loc_18012629F ; +0x67, 0x180126247 cmp dword ptr [r14], 0E0434352h ; +0x69, 0x180126249 mov r13d, [rbp+37h+arg_30] ; +0x70, 0x180126250 jz short loc_1801262A3 ; +0x74, 0x180126254 mov rax, qword ptr [rbp+37h+arg_38] ; +0x76, 0x180126256 mov r9, rsi ; +0x7a, 0x18012625a mov rdx, [rbp+37h+arg_8] ; +0x7d, 0x18012625d mov r8, r15 ; +0x81, 0x180126261 mov dword ptr [rsp+0F0h+var_B8], r12d ; +0x84, 0x180126264 mov rcx, r14 ; +0x89, 0x180126269 mov [rsp+0F0h+var_C0], rax ; +0x8c, 0x18012626c mov dword ptr [rsp+0F0h+var_C8], r13d ; +0x91, 0x180126271 mov [rsp+0F0h+var_D0], rdi ; +0x96, 0x180126276 call unknown_libname_15; Microsoft VisualC v14 64bit runtime ; +0x9b, 0x18012627b test eax, eax ; +0xa0, 0x180126280 jz short loc_1801262A3 ; +0xa2, 0x180126282 mov rbx, [rsp+0F0h+arg_18] ; +0xa4, 0x180126284 add rsp, 0C0h ; +0xac, 0x18012628c pop r15 ; +0xb3, 0x180126293 pop r14 ; +0xb5, 0x180126295 pop r13 ; +0xb7, 0x180126297 pop r12 ; +0xb9, 0x180126299 pop rdi ; +0xbb, 0x18012629b pop rsi ; +0xbc, 0x18012629c pop rbp ; +0xbd, 0x18012629d retn ; +0xbe, 0x18012629e mov r13d, [rbp+37h+arg_30] ; +0xbf, 0x18012629f mov rax, [rsi+8] ; +0xc3, 0x1801262a3 mov [rbp+37h+var_88], rax ; +0xc7, 0x1801262a7 mov [rbp+37h+var_90], rdi ; +0xcb, 0x1801262ab cmp dword ptr [rdi+0Ch], 0 ; +0xcf, 0x1801262af jbe loc_1801263EF ; +0xd3, 0x1801262b3 mov dword ptr [rsp+0F0h+var_C8], r13d ; +0xd9, 0x1801262b9 lea rdx, [rbp+37h+var_90] ; +0xde, 0x1801262be mov r9, rsi ; +0xe2, 0x1801262c2 mov [rsp+0F0h+var_D0], rdi ; +0xe5, 0x1801262c5 mov r8d, r12d ; +0xea, 0x1801262ca lea rcx, [rbp+37h+var_58] ; +0xed, 0x1801262cd call ?GetRangeOfTrysToCheck@__FrameHandler3@@SA?AU?$pair@Viterator@TryBlockMap@__FrameHandler3@@V123@@std@@AEAVTryBlockMap@1@HPEAU_xDISPATCHER_CONTEXT@@PEBU_s_FuncInfo@@H@Z ; +0xf1, 0x1801262d1 movups xmm0, [rbp+37h+var_58] ; +0xf6, 0x1801262d6 movdqu [rbp+37h+var_80], xmm0 ; +0xfa, 0x1801262da psrldq xmm0, 8 ; +0xff, 0x1801262df movd eax, xmm0 ; +0x104, 0x1801262e4 cmp eax, [rbp+37h+var_40] ; +0x108, 0x1801262e8 jnb short loc_180126284 ; +0x10b, 0x1801262eb mov r9, qword ptr [rbp+37h+var_58] ; +0x10d, 0x1801262ed mov r15d, dword ptr [rbp+37h+var_80+8] ; +0x111, 0x1801262f1 mov [rbp+37h+arg_0], r9 ; +0x115, 0x1801262f5 mov rax, qword ptr [rbp+37h+var_80] ; +0x119, 0x1801262f9 mov rax, [rax] ; +0x11d, 0x1801262fd movsxd rdx, dword ptr [rax+10h] ; +0x120, 0x180126300 mov eax, r15d ; +0x124, 0x180126304 lea rcx, [rax+rax*4] ; +0x127, 0x180126307 mov rax, [r9+8] ; +0x12b, 0x18012630b lea r8, [rdx+rcx*4] ; +0x12f, 0x18012630f movups xmm0, xmmword ptr [r8+rax] ; +0x133, 0x180126313 movsxd rcx, dword ptr [r8+rax+10h] ; +0x138, 0x180126318 mov [rbp+37h+var_60], ecx ; +0x13d, 0x18012631d movd eax, xmm0 ; +0x140, 0x180126320 movups xmmword ptr [rbp+37h+var_70], xmm0 ; +0x144, 0x180126324 cmp eax, r12d ; +0x148, 0x180126328 jg loc_1801263D5 ; +0x14b, 0x18012632b mov rax, [rbp+37h+var_70] ; +0x151, 0x180126331 shr rax, 20h ; +0x155, 0x180126335 cmp r12d, eax ; +0x159, 0x180126339 jg loc_1801263D5 ; +0x15c, 0x18012633c add rcx, [rsi+8] ; +0x162, 0x180126342 mov rbx, [rbp+37h+var_70+8] ; +0x166, 0x180126346 shr rbx, 20h ; +0x16a, 0x18012634a dec rbx ; +0x16e, 0x18012634e lea rbx, [rbx+rbx*4] ; +0x171, 0x180126351 lea rbx, [rcx+rbx*4] ; +0x175, 0x180126355 cmp dword ptr [rbx+4], 0 ; +0x179, 0x180126359 jz short loc_18012638C ; +0x17d, 0x18012635d movsxd r13, dword ptr [rbx+4] ; +0x17f, 0x18012635f call _GetImageBase ; +0x183, 0x180126363 add rax, r13 ; +0x188, 0x180126368 jz short loc_180126388 ; +0x18b, 0x18012636b test r13d, r13d ; +0x18d, 0x18012636d jz short loc_180126380 ; +0x190, 0x180126370 call _GetImageBase ; +0x192, 0x180126372 movsxd rcx, dword ptr [rbx+4] ; +0x197, 0x180126377 add rax, rcx ; +0x19b, 0x18012637b jmp short loc_180126382 ; +0x19e, 0x18012637e xor eax, eax ; +0x1a0, 0x180126380 cmp byte ptr [rax+10h], 0 ; +0x1a2, 0x180126382 jnz short loc_1801263D5 ; +0x1a6, 0x180126386 mov r13d, [rbp+37h+arg_30] ; +0x1a8, 0x180126388 test byte ptr [rbx], 40h ; +0x1ac, 0x18012638c jnz short loc_1801263D5 ; +0x1af, 0x18012638f mov rax, qword ptr [rbp+37h+arg_38] ; +0x1b1, 0x180126391 mov r9, rsi ; +0x1b5, 0x180126395 mov r8, [rbp+37h+arg_10] ; +0x1b8, 0x180126398 mov rcx, r14; struct EHExceptionRecord * ; +0x1bc, 0x18012639c mov rdx, [rbp+37h+arg_8]; unsigned __int64 * ; +0x1bf, 0x18012639f mov byte ptr [rsp+58h], 0; char ; +0x1c3, 0x1801263a3 mov byte ptr [rsp+0F0h+var_A0], 1; int ; +0x1c8, 0x1801263a8 mov qword ptr [rsp+0F0h+var_A8], rax; int ; +0x1cd, 0x1801263ad lea rax, [rbp+37h+var_70] ; +0x1d2, 0x1801263b2 mov [rsp+0F0h+var_B0], r13d; int ; +0x1d6, 0x1801263b6 mov [rsp+0F0h+var_B8], rax; __int64 ; +0x1db, 0x1801263bb and [rsp+0F0h+var_C0], 0 ; +0x1e0, 0x1801263c0 mov [rsp+0F0h+var_C8], rbx; struct _s_HandlerType * ; +0x1e6, 0x1801263c6 mov [rsp+0F0h+var_D0], rdi; struct _s_FuncInfo * ; +0x1eb, 0x1801263cb call ??$CatchIt@V__FrameHandler3@@@@YAXPEAUEHExceptionRecord@@PEA_KPEAU_CONTEXT@@PEAU_xDISPATCHER_CONTEXT@@PEBU_s_FuncInfo@@PEBU_s_HandlerType@@PEBU_s_CatchableType@@PEBU_s_TryBlockMapEntry@@H1EE@Z ; +0x1f0, 0x1801263d0 mov r13d, [rbp+37h+arg_30] ; +0x1f5, 0x1801263d5 inc r15d ; +0x1f9, 0x1801263d9 mov r9, [rbp+37h+arg_0] ; +0x1fc, 0x1801263dc cmp r15d, [rbp+37h+var_40] ; +0x200, 0x1801263e0 jb loc_1801262F9 ; +0x204, 0x1801263e4 jmp loc_180126284 ; +0x20a, 0x1801263ea call abort ; +0x20f, 0x1801263ef db 0CCh ; +0x214, 0x1801263f4