; ; __scrt_fastfail from 0x180123b84 to 0x180123ccf (331 bytes) ; ; 5 xrefs: ; > __scrt_initialize_onexit_tables @ 0x1801206e1 ; > __scrt_initialize_thread_safe_statics @ 0x1801208ee ; > dllmain_crt_process_attach @ 0x180120beb ; > dllmain_crt_process_detach @ 0x180120c70 ; > @ 0x1802025e8 ; ; 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-8+arg_0], rbx ; +0x0, 0x180123b84 push rbp ; +0x5, 0x180123b89 lea rbp, [rsp-4C0h] ; +0x6, 0x180123b8a sub rsp, 5C0h ; +0xe, 0x180123b92 mov ebx, ecx ; +0x15, 0x180123b99 mov ecx, 17h; ProcessorFeature ; +0x17, 0x180123b9b call cs:IsProcessorFeaturePresent ; +0x1c, 0x180123ba0 test eax, eax ; +0x22, 0x180123ba6 jz short loc_180123BAE ; +0x24, 0x180123ba8 mov ecx, ebx ; +0x26, 0x180123baa int 29h; Win8: RtlFailFast(ecx) ; +0x28, 0x180123bac mov ecx, 3 ; +0x2a, 0x180123bae call sub_180123B7C ; +0x2f, 0x180123bb3 xor edx, edx; Val ; +0x34, 0x180123bb8 lea rcx, [rbp+4C0h+ContextRecord]; void * ; +0x36, 0x180123bba mov r8d, 4D0h; Size ; +0x3a, 0x180123bbe call memset ; +0x40, 0x180123bc4 lea rcx, [rbp+4C0h+ContextRecord]; ContextRecord ; +0x45, 0x180123bc9 call cs:RtlCaptureContext ; +0x49, 0x180123bcd mov rbx, [rbp+4C0h+ContextRecord.Rip] ; +0x4f, 0x180123bd3 lea rdx, [rbp+4C0h+ImageBase]; ImageBase ; +0x56, 0x180123bda mov rcx, rbx; ControlPc ; +0x5d, 0x180123be1 xor r8d, r8d; HistoryTable ; +0x60, 0x180123be4 call cs:RtlLookupFunctionEntry ; +0x63, 0x180123be7 test rax, rax ; +0x69, 0x180123bed jz short loc_180123C2E ; +0x6c, 0x180123bf0 and [rsp+5C0h+var_588], 0 ; +0x6e, 0x180123bf2 lea rcx, [rbp+4C0h+arg_10] ; +0x74, 0x180123bf8 mov rdx, [rbp+4C0h+ImageBase]; ImageBase ; +0x7b, 0x180123bff mov r9, rax; FunctionEntry ; +0x82, 0x180123c06 mov [rsp+5C0h+EstablisherFrame], rcx; EstablisherFrame ; +0x85, 0x180123c09 mov r8, rbx; ControlPc ; +0x8a, 0x180123c0e lea rcx, [rbp+4C0h+arg_18] ; +0x8d, 0x180123c11 mov [rsp+5C0h+HandlerData], rcx; HandlerData ; +0x94, 0x180123c18 lea rcx, [rbp+4C0h+ContextRecord] ; +0x99, 0x180123c1d mov [rsp+5C0h+var_5A0], rcx; ContextRecord ; +0x9d, 0x180123c21 xor ecx, ecx; HandlerType ; +0xa2, 0x180123c26 call cs:RtlVirtualUnwind ; +0xa4, 0x180123c28 mov rax, [rbp+4C8h] ; +0xaa, 0x180123c2e lea rcx, [rsp+5C0h+var_570]; void * ; +0xb1, 0x180123c35 mov [rbp+4C0h+ContextRecord.Rip], rax ; +0xb6, 0x180123c3a xor edx, edx; Val ; +0xbd, 0x180123c41 lea rax, [rbp+4C8h] ; +0xbf, 0x180123c43 mov r8d, 98h; Size ; +0xc6, 0x180123c4a add rax, 8 ; +0xcc, 0x180123c50 mov [rbp+4C0h+ContextRecord.Rsp], rax ; +0xd0, 0x180123c54 call memset ; +0xd7, 0x180123c5b mov rax, [rbp+4C8h] ; +0xdc, 0x180123c60 mov [rsp+5C0h+var_560], rax ; +0xe3, 0x180123c67 mov [rsp+5C0h+var_570], 40000015h ; +0xe8, 0x180123c6c mov [rsp+5C0h+var_56C], 1 ; +0xf0, 0x180123c74 call cs:IsDebuggerPresent ; +0xf8, 0x180123c7c cmp eax, 1 ; +0xfe, 0x180123c82 lea rax, [rsp+5C0h+var_570] ; +0x101, 0x180123c85 mov [rsp+5C0h+ExceptionInfo.ExceptionRecord], rax ; +0x106, 0x180123c8a lea rax, [rbp+4C0h+ContextRecord] ; +0x10b, 0x180123c8f setz bl ; +0x10f, 0x180123c93 mov [rsp+5C0h+ExceptionInfo.ContextRecord], rax ; +0x112, 0x180123c96 xor ecx, ecx; lpTopLevelExceptionFilter ; +0x117, 0x180123c9b call cs:SetUnhandledExceptionFilter ; +0x119, 0x180123c9d lea rcx, [rsp+5C0h+ExceptionInfo]; ExceptionInfo ; +0x11f, 0x180123ca3 call cs:UnhandledExceptionFilter ; +0x124, 0x180123ca8 test eax, eax ; +0x12a, 0x180123cae jnz short loc_180123CBE ; +0x12c, 0x180123cb0 test bl, bl ; +0x12e, 0x180123cb2 jnz short loc_180123CBE ; +0x130, 0x180123cb4 lea ecx, [rax+3] ; +0x132, 0x180123cb6 call sub_180123B7C ; +0x135, 0x180123cb9 mov rbx, [rsp+5C0h+arg_0] ; +0x13a, 0x180123cbe add rsp, 5C0h ; +0x142, 0x180123cc6 pop rbp ; +0x149, 0x180123ccd retn ; +0x14a, 0x180123cce