; ; __C_specific_handler from 0x180124928 to 0x180124b33 (523 bytes) ; ; 51 xrefs: ; > @ 0x180190430 ; > @ 0x18019046c ; > @ 0x1801904a0 ; > @ 0x180191cfc ; > @ 0x180191dd0 ; > @ 0x180191e0c ; > @ 0x180191e7c ; > @ 0x1801920a4 ; > @ 0x180192234 ; > @ 0x180192290 ; > @ 0x180192300 ; > @ 0x1801923e4 ; > @ 0x180192420 ; > @ 0x18019256c ; > @ 0x1801925a4 ; > @ 0x180192ae8 ; > @ 0x180192b40 ; > @ 0x180192c10 ; > @ 0x180192d0c ; > @ 0x180192d38 ; > @ 0x180192e84 ; > @ 0x180192eb0 ; > @ 0x180192f40 ; > @ 0x180193038 ; > @ 0x180193274 ; > @ 0x1801932a0 ; > @ 0x1801932cc ; > @ 0x1801932f8 ; > @ 0x180193484 ; > @ 0x1801934dc ; > @ 0x180193504 ; > @ 0x180193724 ; > @ 0x180193778 ; > @ 0x1801937a8 ; > @ 0x1801937d4 ; > @ 0x18019381c ; > @ 0x180193900 ; > @ 0x18019393c ; > @ 0x180193978 ; > @ 0x180193a64 ; > @ 0x180193abc ; > @ 0x180193bc8 ; > @ 0x180193cbc ; > @ 0x180193d20 ; > @ 0x180193d48 ; > @ 0x180193f8c ; > @ 0x180193fc4 ; > @ 0x1801941a4 ; > @ 0x180194204 ; > @ 0x180194254 ; > @ 0x180202690 ; ; 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_0], rbx ; +0x0, 0x180124928 mov [rsp+arg_8], rbp ; +0x5, 0x18012492d mov [rsp+arg_10], rsi ; +0xa, 0x180124932 push rdi ; +0xf, 0x180124937 push r12 ; +0x10, 0x180124938 push r13 ; +0x12, 0x18012493a push r14 ; +0x14, 0x18012493c push r15 ; +0x16, 0x18012493e sub rsp, 40h ; +0x18, 0x180124940 mov rbp, rcx ; +0x1c, 0x180124944 mov r15, r9 ; +0x1f, 0x180124947 mov rcx, r8 ; +0x22, 0x18012494a mov rdi, r8 ; +0x25, 0x18012494d mov r13, rdx ; +0x28, 0x180124950 call __except_validate_context_record ; +0x2b, 0x180124953 mov r12, [r15+8] ; +0x30, 0x180124958 mov r14, [r15] ; +0x34, 0x18012495c mov rbx, [r15+38h] ; +0x37, 0x18012495f sub r14, r12 ; +0x3b, 0x180124963 test byte ptr [rbp+4], 66h ; +0x3e, 0x180124966 mov esi, [r15+48h] ; +0x42, 0x18012496a jnz loc_180124A50 ; +0x46, 0x18012496e mov [rsp+68h+var_38], rbp ; +0x4c, 0x180124974 mov [rsp+68h+var_30], rdi ; +0x51, 0x180124979 cmp esi, [rbx] ; +0x56, 0x18012497e jnb loc_180124B10 ; +0x58, 0x180124980 mov edi, esi ; +0x5e, 0x180124986 add rdi, rdi ; +0x60, 0x180124988 mov eax, [rbx+rdi*8+4] ; +0x63, 0x18012498b cmp r14, rax ; +0x67, 0x18012498f jb loc_180124A42 ; +0x6a, 0x180124992 mov eax, [rbx+rdi*8+8] ; +0x70, 0x180124998 cmp r14, rax ; +0x74, 0x18012499c jnb loc_180124A42 ; +0x77, 0x18012499f cmp dword ptr [rbx+rdi*8+10h], 0 ; +0x7d, 0x1801249a5 jz loc_180124A42 ; +0x82, 0x1801249aa cmp dword ptr [rbx+rdi*8+0Ch], 1 ; +0x88, 0x1801249b0 jz short loc_1801249CE ; +0x8d, 0x1801249b5 mov eax, [rbx+rdi*8+0Ch] ; +0x8f, 0x1801249b7 lea rcx, [rsp+68h+var_38] ; +0x93, 0x1801249bb add rax, r12 ; +0x98, 0x1801249c0 mov rdx, r13 ; +0x9b, 0x1801249c3 call rax ; +0x9e, 0x1801249c6 test eax, eax ; +0xa0, 0x1801249c8 js short loc_180124A49 ; +0xa2, 0x1801249ca jle short loc_180124A42 ; +0xa4, 0x1801249cc cmp dword ptr [rbp+0], 0E06D7363h ; +0xa6, 0x1801249ce jnz short loc_1801249FF ; +0xad, 0x1801249d5 cmp cs:off_18016FC30, 0 ; +0xaf, 0x1801249d7 jz short loc_1801249FF ; +0xb7, 0x1801249df lea rcx, off_18016FC30 ; +0xb9, 0x1801249e1 call _IsNonwritableInCurrentImage ; +0xc0, 0x1801249e8 test eax, eax ; +0xc5, 0x1801249ed jz short loc_1801249FF ; +0xc7, 0x1801249ef mov edx, 1 ; +0xc9, 0x1801249f1 mov rcx, rbp ; +0xce, 0x1801249f6 call cs:off_18016FC30 ; +0xd1, 0x1801249f9 mov ecx, [rbx+rdi*8+10h] ; +0xd7, 0x1801249ff mov r8d, 1 ; +0xdb, 0x180124a03 add rcx, r12 ; +0xe1, 0x180124a09 mov rdx, r13 ; +0xe4, 0x180124a0c call _NLG_Notify ; +0xe7, 0x180124a0f mov rax, [r15+40h] ; +0xec, 0x180124a14 mov r8, rbp; ExceptionRecord ; +0xf0, 0x180124a18 mov edx, [rbx+rdi*8+10h] ; +0xf3, 0x180124a1b mov rcx, r13; TargetFrame ; +0xf7, 0x180124a1f mov r9d, [rbp+0]; ReturnValue ; +0xfa, 0x180124a22 add rdx, r12; TargetIp ; +0xfe, 0x180124a26 mov [rsp+68h+HistoryTable], rax; HistoryTable ; +0x101, 0x180124a29 mov rax, [r15+28h] ; +0x106, 0x180124a2e mov [rsp+68h+ContextRecord], rax; ContextRecord ; +0x10a, 0x180124a32 call cs:RtlUnwindEx ; +0x10f, 0x180124a37 call nullsub_4 ; +0x115, 0x180124a3d inc esi ; +0x11a, 0x180124a42 jmp loc_18012497E ; +0x11c, 0x180124a44 xor eax, eax ; +0x121, 0x180124a49 jmp loc_180124B15 ; +0x123, 0x180124a4b mov rdi, [r15+20h] ; +0x128, 0x180124a50 mov r9d, [rbx] ; +0x12c, 0x180124a54 sub rdi, r12 ; +0x12f, 0x180124a57 cmp esi, r9d ; +0x132, 0x180124a5a jnb loc_180124B10 ; +0x135, 0x180124a5d mov r8d, r9d ; +0x13b, 0x180124a63 mov edx, esi ; +0x13e, 0x180124a66 mov ecx, r8d ; +0x140, 0x180124a68 add rdx, rdx ; +0x143, 0x180124a6b mov eax, [rbx+rdx*8+4] ; +0x146, 0x180124a6e cmp r14, rax ; +0x14a, 0x180124a72 jb loc_180124B03 ; +0x14d, 0x180124a75 mov eax, [rbx+rdx*8+8] ; +0x153, 0x180124a7b cmp r14, rax ; +0x157, 0x180124a7f jnb short loc_180124B03 ; +0x15a, 0x180124a82 mov r11d, [rbp+4] ; +0x15c, 0x180124a84 and r11d, 20h ; +0x160, 0x180124a88 jz short loc_180124AD2 ; +0x164, 0x180124a8c xor r10d, r10d ; +0x166, 0x180124a8e test r8d, r8d ; +0x169, 0x180124a91 jz short loc_180124ACA ; +0x16c, 0x180124a94 mov ecx, r10d ; +0x16e, 0x180124a96 add rcx, rcx ; +0x171, 0x180124a99 mov eax, [rbx+rcx*8+4] ; +0x174, 0x180124a9c cmp rdi, rax ; +0x178, 0x180124aa0 jb short loc_180124AC2 ; +0x17b, 0x180124aa3 mov eax, [rbx+rcx*8+8] ; +0x17d, 0x180124aa5 cmp rdi, rax ; +0x181, 0x180124aa9 jnb short loc_180124AC2 ; +0x184, 0x180124aac mov eax, [rbx+rdx*8+10h] ; +0x186, 0x180124aae cmp [rbx+rcx*8+10h], eax ; +0x18a, 0x180124ab2 jnz short loc_180124AC2 ; +0x18e, 0x180124ab6 mov eax, [rbx+rdx*8+0Ch] ; +0x190, 0x180124ab8 cmp [rbx+rcx*8+0Ch], eax ; +0x194, 0x180124abc jz short loc_180124ACA ; +0x198, 0x180124ac0 inc r10d ; +0x19a, 0x180124ac2 cmp r10d, r8d ; +0x19d, 0x180124ac5 jb short loc_180124A96 ; +0x1a0, 0x180124ac8 mov ecx, r9d ; +0x1a2, 0x180124aca cmp r10d, r9d ; +0x1a5, 0x180124acd jnz short loc_180124B10 ; +0x1a8, 0x180124ad0 mov eax, [rbx+rdx*8+10h] ; +0x1aa, 0x180124ad2 test eax, eax ; +0x1ae, 0x180124ad6 jz short loc_180124AE6 ; +0x1b0, 0x180124ad8 cmp rdi, rax ; +0x1b2, 0x180124ada jnz short loc_180124B03 ; +0x1b5, 0x180124add test r11d, r11d ; +0x1b7, 0x180124adf jnz short loc_180124B10 ; +0x1ba, 0x180124ae2 jmp short loc_180124B03 ; +0x1bc, 0x180124ae4 lea eax, [rsi+1] ; +0x1be, 0x180124ae6 mov cl, 1 ; +0x1c1, 0x180124ae9 mov [r15+48h], eax ; +0x1c3, 0x180124aeb mov r8d, [rbx+rdx*8+0Ch] ; +0x1c7, 0x180124aef mov rdx, r13 ; +0x1cc, 0x180124af4 add r8, r12 ; +0x1cf, 0x180124af7 call r8 ; +0x1d2, 0x180124afa mov r9d, [rbx] ; +0x1d5, 0x180124afd mov ecx, r9d ; +0x1d8, 0x180124b00 inc esi ; +0x1db, 0x180124b03 mov r8d, ecx ; +0x1dd, 0x180124b05 cmp esi, ecx ; +0x1e0, 0x180124b08 jb loc_180124A66 ; +0x1e2, 0x180124b0a mov eax, 1 ; +0x1e8, 0x180124b10 lea r11, [rsp+68h+var_28] ; +0x1ed, 0x180124b15 mov rbx, [r11+30h] ; +0x1f2, 0x180124b1a mov rbp, [r11+38h] ; +0x1f6, 0x180124b1e mov rsi, [r11+40h] ; +0x1fa, 0x180124b22 mov rsp, r11 ; +0x1fe, 0x180124b26 pop r15 ; +0x201, 0x180124b29 pop r14 ; +0x203, 0x180124b2b pop r13 ; +0x205, 0x180124b2d pop r12 ; +0x207, 0x180124b2f pop rdi ; +0x209, 0x180124b31 retn ; +0x20a, 0x180124b32