; ; sub_180003D30 from 0x180003d30 to 0x180003eff (463 bytes) ; ; 8 xrefs: ; > sub_180017A50 @ 0x180017b87 ; > sub_180017CB0 @ 0x180017ced ; > sub_180017CB0 @ 0x180017d0e ; > sub_180017E70 @ 0x180018026 ; > sub_180017E70 @ 0x180018081 ; > @ 0x18017d5e8 ; > @ 0x18017d5f8 ; > @ 0x1801f621c ; ; 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 r11, rsp ; +0x0, 0x180003d30 push rbp ; +0x3, 0x180003d33 push rbx ; +0x4, 0x180003d34 push rdi ; +0x5, 0x180003d35 push r13 ; +0x6, 0x180003d36 push r14 ; +0x8, 0x180003d38 mov rbp, rsp ; +0xa, 0x180003d3a sub rsp, 80h ; +0xd, 0x180003d3d mov r13, [rcx] ; +0x14, 0x180003d44 mov r14, rdx ; +0x17, 0x180003d47 mov edx, [rcx+18h] ; +0x1a, 0x180003d4a mov rbx, rcx ; +0x1d, 0x180003d4d cmp edx, 0FFFFFFFFh ; +0x20, 0x180003d50 jle loc_180003EEE ; +0x23, 0x180003d53 mov edi, [rcx+1Ch] ; +0x29, 0x180003d59 cmp edx, edi ; +0x2c, 0x180003d5c jge loc_180003EEE ; +0x2e, 0x180003d5e sub edi, edx ; +0x34, 0x180003d64 test r14, r14 ; +0x36, 0x180003d66 jz loc_180003EDD ; +0x39, 0x180003d69 cmp edi, r8d ; +0x3f, 0x180003d6f mov [r11+10h], rsi ; +0x42, 0x180003d72 lea rax, [rbp+var_C] ; +0x46, 0x180003d76 mov [r11+18h], r15 ; +0x4a, 0x180003d7a mov [r11-58h], rax ; +0x4e, 0x180003d7e lea r9, [rbp+var_1C] ; +0x52, 0x180003d82 lea rax, [rbp+var_10] ; +0x56, 0x180003d86 cmovg edi, r8d ; +0x5a, 0x180003d8a mov [r11-60h], rax ; +0x5e, 0x180003d8e lea rax, [rbp+var_18] ; +0x62, 0x180003d92 mov [r11-68h], rax ; +0x66, 0x180003d96 lea rax, [rbp+var_14] ; +0x6a, 0x180003d9a mov [r11-70h], rax ; +0x6e, 0x180003d9e lea rax, [rbp+arg_0] ; +0x72, 0x180003da2 mov [r11-78h], rax ; +0x76, 0x180003da6 lea r8d, [rdx+rdi] ; +0x7a, 0x180003daa lea rax, [rbp+arg_18] ; +0x7e, 0x180003dae mov [r11-80h], rax ; +0x82, 0x180003db2 lea rax, [rbp+var_20] ; +0x86, 0x180003db6 mov [rsp+80h+var_60], rax ; +0x8a, 0x180003dba call sub_1800041D0 ; +0x8f, 0x180003dbf mov edx, [rbx+28h] ; +0x94, 0x180003dc4 lea rcx, unk_1801A3200 ; +0x97, 0x180003dc7 test edx, edx ; +0x9e, 0x180003dce jz short loc_180003DE2 ; +0xa0, 0x180003dd0 cmp dword ptr [rbx+24h], 0 ; +0xa2, 0x180003dd2 jz short loc_180003DE2 ; +0xa6, 0x180003dd6 movsxd rax, [rbp+var_10] ; +0xa8, 0x180003dd8 lea rsi, [rcx+rax*4] ; +0xac, 0x180003ddc jmp short loc_180003DFE ; +0xb0, 0x180003de0 movsxd rax, [rbp+var_10] ; +0xb2, 0x180003de2 lea r8, unk_1801A3000 ; +0xb6, 0x180003de6 lea rsi, [r8+rax*4] ; +0xbd, 0x180003ded test edx, edx ; +0xc1, 0x180003df1 jz short loc_180003DFB ; +0xc3, 0x180003df3 cmp dword ptr [rbx+24h], 0 ; +0xc5, 0x180003df5 jnz short loc_180003DFE ; +0xc9, 0x180003df9 mov rcx, r8 ; +0xcb, 0x180003dfb movsxd rax, [rbp+var_C] ; +0xce, 0x180003dfe lea r15, [rcx+rax*4] ; +0xd2, 0x180003e02 mov ecx, 2 ; +0xd6, 0x180003e06 call sub_1800C0A10 ; +0xdb, 0x180003e0b test eax, eax ; +0xe0, 0x180003e10 jz short loc_180003E59 ; +0xe2, 0x180003e12 mov eax, [rbp+arg_0] ; +0xe4, 0x180003e14 mov r9, r15 ; +0xe7, 0x180003e17 mov [rsp+80h+var_30], eax ; +0xea, 0x180003e1a mov r8, rsi ; +0xee, 0x180003e1e mov eax, [rbp+arg_18] ; +0xf1, 0x180003e21 mov rdx, r14 ; +0xf4, 0x180003e24 mov [rsp+80h+var_38], eax ; +0xf7, 0x180003e27 mov rcx, rbx ; +0xfb, 0x180003e2b mov eax, [rbp+var_20] ; +0xfe, 0x180003e2e mov [rsp+80h+var_40], eax ; +0x101, 0x180003e31 mov eax, [rbp+var_1C] ; +0x105, 0x180003e35 mov [rsp+80h+var_48], eax ; +0x108, 0x180003e38 mov eax, [r13+4] ; +0x10c, 0x180003e3c mov dword ptr [rsp+80h+var_50], eax ; +0x110, 0x180003e40 mov eax, [rbp+var_18] ; +0x114, 0x180003e44 mov dword ptr [rsp+80h+var_58], eax ; +0x117, 0x180003e47 mov eax, [rbp+var_14] ; +0x11b, 0x180003e4b mov dword ptr [rsp+80h+var_60], eax ; +0x11e, 0x180003e4e call sub_180005520 ; +0x122, 0x180003e52 jmp short loc_180003ECD ; +0x127, 0x180003e57 xor ecx, ecx ; +0x129, 0x180003e59 call sub_1800C0A10 ; +0x12b, 0x180003e5b mov edx, [r13+4] ; +0x130, 0x180003e60 test eax, eax ; +0x134, 0x180003e64 mov eax, [rbp+arg_0] ; +0x136, 0x180003e66 mov r9, r15 ; +0x139, 0x180003e69 mov [rsp+80h+var_30], eax ; +0x13c, 0x180003e6c mov r8, rsi ; +0x140, 0x180003e70 mov eax, [rbp+arg_18] ; +0x143, 0x180003e73 mov [rsp+80h+var_38], eax ; +0x146, 0x180003e76 mov eax, [rbp+var_20] ; +0x14a, 0x180003e7a mov [rsp+80h+var_40], eax ; +0x14d, 0x180003e7d jz short loc_180003EA9 ; +0x151, 0x180003e81 mov eax, [rbp+var_1C] ; +0x153, 0x180003e83 mov rcx, rbx ; +0x156, 0x180003e86 mov [rsp+80h+var_48], eax ; +0x159, 0x180003e89 mov eax, [rbp+var_18] ; +0x15d, 0x180003e8d mov dword ptr [rsp+80h+var_50], edx ; +0x160, 0x180003e90 mov rdx, r14 ; +0x164, 0x180003e94 mov dword ptr [rsp+80h+var_58], eax ; +0x167, 0x180003e97 mov eax, [rbp+var_14] ; +0x16b, 0x180003e9b mov dword ptr [rsp+80h+var_60], eax ; +0x16e, 0x180003e9e call sub_180004520 ; +0x172, 0x180003ea2 jmp short loc_180003ECD ; +0x177, 0x180003ea7 mov ecx, [rbp+var_1C] ; +0x179, 0x180003ea9 mov [rsp+80h+var_48], ecx ; +0x17c, 0x180003eac mov ecx, [rbp+var_18] ; +0x180, 0x180003eb0 mov dword ptr [rsp+80h+var_50], edx ; +0x183, 0x180003eb3 mov rdx, r14 ; +0x187, 0x180003eb7 mov dword ptr [rsp+80h+var_58], ecx ; +0x18a, 0x180003eba mov ecx, [rbp+var_14] ; +0x18e, 0x180003ebe mov dword ptr [rsp+80h+var_60], ecx ; +0x191, 0x180003ec1 mov rcx, rbx ; +0x195, 0x180003ec5 call sub_180003740 ; +0x198, 0x180003ec8 mov rsi, [rsp+80h+arg_8] ; +0x19d, 0x180003ecd mov r15, [rsp+80h+arg_10] ; +0x1a5, 0x180003ed5 mov eax, edi ; +0x1ad, 0x180003edd add rsp, 80h ; +0x1af, 0x180003edf pop r14 ; +0x1b6, 0x180003ee6 pop r13 ; +0x1b8, 0x180003ee8 pop rdi ; +0x1ba, 0x180003eea pop rbx ; +0x1bb, 0x180003eeb pop rbp ; +0x1bc, 0x180003eec retn ; +0x1bd, 0x180003eed xor eax, eax ; +0x1be, 0x180003eee add rsp, 80h ; +0x1c0, 0x180003ef0 pop r14 ; +0x1c7, 0x180003ef7 pop r13 ; +0x1c9, 0x180003ef9 pop rdi ; +0x1cb, 0x180003efb pop rbx ; +0x1cc, 0x180003efc pop rbp ; +0x1cd, 0x180003efd retn ; +0x1ce, 0x180003efe