; ; sub_180003740 from 0x180003740 to 0x180003d2c (1516 bytes) ; ; 4 xrefs: ; > sub_180003D30 @ 0x180003ec8 ; > @ 0x18017d624 ; > @ 0x18017d634 ; > @ 0x1801f61f8 ; ; 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 ; push r15 ; +0x0, 0x180003740 sub rsp, 10h ; +0x2, 0x180003742 movsxd r10, [rsp+18h+arg_20] ; +0x6, 0x180003746 mov rax, [rcx+10h] ; +0xb, 0x18000374b mov r15d, [rsp+18h+arg_30] ; +0xf, 0x18000374f mov [rsp+18h+arg_0], rbx ; +0x14, 0x180003754 mov [rsp+18h+arg_8], rbp ; +0x19, 0x180003759 mov rbp, r9 ; +0x1e, 0x18000375e lea r11, [rax+r10*4] ; +0x21, 0x180003761 mov [rsp+18h+arg_10], rsi ; +0x25, 0x180003765 mov rax, [rcx+8] ; +0x2a, 0x18000376a movsxd r10, [rsp+18h+arg_28] ; +0x2e, 0x18000376e mov [rsp+18h+var_10], rdi ; +0x33, 0x180003773 mov [rsp+18h+var_18], r14 ; +0x38, 0x180003778 mov r14, r8 ; +0x3c, 0x18000377c lea r10, [rax+r10*4] ; +0x3f, 0x18000377f mov eax, [rsp+18h+arg_38] ; +0x43, 0x180003783 test eax, eax ; +0x47, 0x180003787 jle loc_18000384F ; +0x49, 0x180003789 mov esi, r15d ; +0x4f, 0x18000378f mov ebx, r15d ; +0x52, 0x180003792 sar esi, 3 ; +0x55, 0x180003795 mov edi, eax ; +0x58, 0x180003798 and ebx, 7 ; +0x5a, 0x18000379a nop dword ptr [rax] ; +0x5d, 0x18000379d sub r11, 4 ; +0x60, 0x1800037a0 mov r9d, esi ; +0x64, 0x1800037a4 xor r8d, r8d ; +0x67, 0x1800037a7 test esi, esi ; +0x6a, 0x1800037aa jz short loc_180003818 ; +0x6c, 0x1800037ac mov r8d, r9d ; +0x6e, 0x1800037ae lea rcx, [r11+1000h] ; +0x71, 0x1800037b1 shl r8, 3 ; +0x78, 0x1800037b8 nop dword ptr [rax+00h] ; +0x7c, 0x1800037bc mov eax, [rcx-1000h] ; +0x80, 0x1800037c0 lea rcx, [rcx+4000h] ; +0x86, 0x1800037c6 mov [rdx], eax ; +0x8d, 0x1800037cd mov eax, [rcx-4800h] ; +0x8f, 0x1800037cf mov [rdx+4], eax ; +0x95, 0x1800037d5 mov eax, [rcx-4000h] ; +0x98, 0x1800037d8 mov [rdx+8], eax ; +0x9e, 0x1800037de mov eax, [rcx-3800h] ; +0xa1, 0x1800037e1 mov [rdx+0Ch], eax ; +0xa7, 0x1800037e7 mov eax, [rcx-3000h] ; +0xaa, 0x1800037ea mov [rdx+10h], eax ; +0xb0, 0x1800037f0 mov eax, [rcx-2800h] ; +0xb3, 0x1800037f3 mov [rdx+14h], eax ; +0xb9, 0x1800037f9 mov eax, [rcx-2000h] ; +0xbc, 0x1800037fc mov [rdx+18h], eax ; +0xc2, 0x180003802 mov eax, [rcx-1800h] ; +0xc5, 0x180003805 mov [rdx+1Ch], eax ; +0xcb, 0x18000380b add rdx, 20h ; ' ' ; +0xce, 0x18000380e sub r9d, 1 ; +0xd2, 0x180003812 jnz short loc_1800037C0 ; +0xd6, 0x180003816 mov ecx, ebx ; +0xd8, 0x180003818 test ebx, ebx ; +0xda, 0x18000381a jz short loc_180003845 ; +0xdc, 0x18000381c shl r8, 0Bh ; +0xde, 0x18000381e add r8, r11 ; +0xe2, 0x180003822 nop word ptr [rax+rax+00000000h] ; +0xe5, 0x180003825 mov eax, [r8] ; +0xf0, 0x180003830 lea r8, [r8+800h] ; +0xf3, 0x180003833 mov [rdx], eax ; +0xfa, 0x18000383a add rdx, 4 ; +0xfc, 0x18000383c sub ecx, 1 ; +0x100, 0x180003840 jnz short loc_180003830 ; +0x103, 0x180003843 sub rdi, 1 ; +0x105, 0x180003845 jnz loc_1800037A0 ; +0x109, 0x180003849 mov eax, [rsp+18h+arg_40] ; +0x10f, 0x18000384f test eax, eax ; +0x113, 0x180003853 jle loc_180003A1F ; +0x115, 0x180003855 mov esi, r15d ; +0x11b, 0x18000385b mov ebx, r15d ; +0x11e, 0x18000385e sar esi, 3 ; +0x121, 0x180003861 mov edi, eax ; +0x124, 0x180003864 and ebx, 7 ; +0x126, 0x180003866 nop dword ptr [rax+00000000h] ; +0x129, 0x180003869 movss xmm3, dword ptr [r14-4] ; +0x130, 0x180003870 sub r14, 4 ; +0x136, 0x180003876 movss xmm4, dword ptr [rbp+0] ; +0x13a, 0x18000387a sub r11, 4 ; +0x13f, 0x18000387f xor eax, eax ; +0x143, 0x180003883 mov r9d, esi ; +0x145, 0x180003885 test esi, esi ; +0x148, 0x180003888 jz loc_1800039C3 ; +0x14a, 0x18000388a mov eax, r9d ; +0x150, 0x180003890 lea rcx, [r11+1000h] ; +0x153, 0x180003893 shl rax, 3 ; +0x15a, 0x18000389a lea r8, [r10+2000h] ; +0x15e, 0x18000389e nop word ptr [rax+rax+00000000h] ; +0x165, 0x1800038a5 movaps xmm1, xmm4 ; +0x170, 0x1800038b0 movaps xmm0, xmm3 ; +0x173, 0x1800038b3 mulss xmm0, dword ptr [rcx-1000h] ; +0x176, 0x1800038b6 movaps xmm2, xmm4 ; +0x17e, 0x1800038be mulss xmm1, dword ptr [r8-2000h] ; +0x181, 0x1800038c1 addss xmm1, xmm0 ; +0x18a, 0x1800038ca movaps xmm0, xmm3 ; +0x18e, 0x1800038ce movss dword ptr [rdx], xmm1 ; +0x191, 0x1800038d1 movaps xmm1, xmm4 ; +0x195, 0x1800038d5 mulss xmm0, dword ptr [rcx-800h] ; +0x198, 0x1800038d8 mulss xmm2, dword ptr [r8-1000h] ; +0x1a0, 0x1800038e0 addss xmm2, xmm0 ; +0x1a9, 0x1800038e9 movaps xmm0, xmm3 ; +0x1ad, 0x1800038ed movss dword ptr [rdx+4], xmm2 ; +0x1b0, 0x1800038f0 movaps xmm2, xmm4 ; +0x1b5, 0x1800038f5 mulss xmm0, dword ptr [rcx] ; +0x1b8, 0x1800038f8 mulss xmm1, dword ptr [r8] ; +0x1bc, 0x1800038fc addss xmm1, xmm0 ; +0x1c1, 0x180003901 movaps xmm0, xmm3 ; +0x1c5, 0x180003905 movss dword ptr [rdx+8], xmm1 ; +0x1c8, 0x180003908 movaps xmm1, xmm4 ; +0x1cd, 0x18000390d mulss xmm0, dword ptr [rcx+800h] ; +0x1d0, 0x180003910 mulss xmm2, dword ptr [r8+1000h] ; +0x1d8, 0x180003918 addss xmm2, xmm0 ; +0x1e1, 0x180003921 movaps xmm0, xmm3 ; +0x1e5, 0x180003925 movss dword ptr [rdx+0Ch], xmm2 ; +0x1e8, 0x180003928 movaps xmm2, xmm4 ; +0x1ed, 0x18000392d mulss xmm0, dword ptr [rcx+1000h] ; +0x1f0, 0x180003930 mulss xmm1, dword ptr [r8+2000h] ; +0x1f8, 0x180003938 addss xmm1, xmm0 ; +0x201, 0x180003941 movaps xmm0, xmm3 ; +0x205, 0x180003945 movss dword ptr [rdx+10h], xmm1 ; +0x208, 0x180003948 movaps xmm1, xmm4 ; +0x20d, 0x18000394d mulss xmm0, dword ptr [rcx+1800h] ; +0x210, 0x180003950 mulss xmm2, dword ptr [r8+3000h] ; +0x218, 0x180003958 addss xmm2, xmm0 ; +0x221, 0x180003961 movaps xmm0, xmm3 ; +0x225, 0x180003965 movss dword ptr [rdx+14h], xmm2 ; +0x228, 0x180003968 movaps xmm2, xmm4 ; +0x22d, 0x18000396d mulss xmm0, dword ptr [rcx+2000h] ; +0x230, 0x180003970 mulss xmm1, dword ptr [r8+4000h] ; +0x238, 0x180003978 addss xmm1, xmm0 ; +0x241, 0x180003981 movaps xmm0, xmm3 ; +0x245, 0x180003985 movss dword ptr [rdx+18h], xmm1 ; +0x248, 0x180003988 mulss xmm2, dword ptr [r8+5000h] ; +0x24d, 0x18000398d add r8, 8000h ; +0x256, 0x180003996 mulss xmm0, dword ptr [rcx+2800h] ; +0x25d, 0x18000399d add rcx, 4000h ; +0x265, 0x1800039a5 addss xmm2, xmm0 ; +0x26c, 0x1800039ac movss dword ptr [rdx+1Ch], xmm2 ; +0x270, 0x1800039b0 add rdx, 20h ; ' ' ; +0x275, 0x1800039b5 sub r9d, 1 ; +0x279, 0x1800039b9 jnz loc_1800038B0 ; +0x27d, 0x1800039bd mov r8d, ebx ; +0x283, 0x1800039c3 test ebx, ebx ; +0x286, 0x1800039c6 jz short loc_180003A0D ; +0x288, 0x1800039c8 mov rcx, rax ; +0x28a, 0x1800039ca shl rax, 0Ch ; +0x28d, 0x1800039cd shl rcx, 0Bh ; +0x291, 0x1800039d1 add rcx, r11 ; +0x295, 0x1800039d5 add rax, r10 ; +0x298, 0x1800039d8 nop dword ptr [rax+rax+00h] ; +0x29b, 0x1800039db movaps xmm1, xmm4 ; +0x2a0, 0x1800039e0 movaps xmm0, xmm3 ; +0x2a3, 0x1800039e3 mulss xmm1, dword ptr [rax] ; +0x2a6, 0x1800039e6 add rax, 1000h ; +0x2aa, 0x1800039ea mulss xmm0, dword ptr [rcx] ; +0x2b0, 0x1800039f0 add rcx, 800h ; +0x2b4, 0x1800039f4 addss xmm1, xmm0 ; +0x2bb, 0x1800039fb movss dword ptr [rdx], xmm1 ; +0x2bf, 0x1800039ff add rdx, 4 ; +0x2c3, 0x180003a03 sub r8d, 1 ; +0x2c7, 0x180003a07 jnz short loc_1800039E0 ; +0x2cb, 0x180003a0b add r10, 4 ; +0x2cd, 0x180003a0d add rbp, 4 ; +0x2d1, 0x180003a11 sub rdi, 1 ; +0x2d5, 0x180003a15 jnz loc_180003870 ; +0x2d9, 0x180003a19 mov eax, [rsp+18h+arg_48] ; +0x2df, 0x180003a1f test eax, eax ; +0x2e3, 0x180003a23 jle loc_180003BEB ; +0x2e5, 0x180003a25 mov esi, r15d ; +0x2eb, 0x180003a2b mov ebx, r15d ; +0x2ee, 0x180003a2e sar esi, 3 ; +0x2f1, 0x180003a31 and ebx, 7 ; +0x2f4, 0x180003a34 sub r14, r10 ; +0x2f7, 0x180003a37 mov edi, eax ; +0x2fa, 0x180003a3a sub rbp, r11 ; +0x2fc, 0x180003a3c nop ; +0x2ff, 0x180003a3f movss xmm3, dword ptr [r14+r10-4] ; +0x300, 0x180003a40 sub r10, 4 ; +0x307, 0x180003a47 movss xmm4, dword ptr [r11+rbp] ; +0x30b, 0x180003a4b xor eax, eax ; +0x311, 0x180003a51 mov r9d, esi ; +0x313, 0x180003a53 test esi, esi ; +0x316, 0x180003a56 jz loc_180003B93 ; +0x318, 0x180003a58 mov eax, r9d ; +0x31e, 0x180003a5e lea rcx, [r10+2000h] ; +0x321, 0x180003a61 shl rax, 3 ; +0x328, 0x180003a68 lea r8, [r11+1000h] ; +0x32c, 0x180003a6c nop dword ptr [rax+00h] ; +0x333, 0x180003a73 nop word ptr [rax+rax+00000000h] ; +0x337, 0x180003a77 movaps xmm1, xmm3 ; +0x340, 0x180003a80 movaps xmm0, xmm4 ; +0x343, 0x180003a83 mulss xmm0, dword ptr [rcx-2000h] ; +0x346, 0x180003a86 movaps xmm2, xmm3 ; +0x34e, 0x180003a8e mulss xmm1, dword ptr [r8-1000h] ; +0x351, 0x180003a91 subss xmm1, xmm0 ; +0x35a, 0x180003a9a movaps xmm0, xmm4 ; +0x35e, 0x180003a9e movss dword ptr [rdx], xmm1 ; +0x361, 0x180003aa1 movaps xmm1, xmm3 ; +0x365, 0x180003aa5 mulss xmm0, dword ptr [rcx-1000h] ; +0x368, 0x180003aa8 mulss xmm2, dword ptr [r8-800h] ; +0x370, 0x180003ab0 subss xmm2, xmm0 ; +0x379, 0x180003ab9 movaps xmm0, xmm4 ; +0x37d, 0x180003abd movss dword ptr [rdx+4], xmm2 ; +0x380, 0x180003ac0 movaps xmm2, xmm3 ; +0x385, 0x180003ac5 mulss xmm0, dword ptr [rcx] ; +0x388, 0x180003ac8 mulss xmm1, dword ptr [r8] ; +0x38c, 0x180003acc subss xmm1, xmm0 ; +0x391, 0x180003ad1 movaps xmm0, xmm4 ; +0x395, 0x180003ad5 movss dword ptr [rdx+8], xmm1 ; +0x398, 0x180003ad8 movaps xmm1, xmm3 ; +0x39d, 0x180003add mulss xmm0, dword ptr [rcx+1000h] ; +0x3a0, 0x180003ae0 mulss xmm2, dword ptr [r8+800h] ; +0x3a8, 0x180003ae8 subss xmm2, xmm0 ; +0x3b1, 0x180003af1 movaps xmm0, xmm4 ; +0x3b5, 0x180003af5 movss dword ptr [rdx+0Ch], xmm2 ; +0x3b8, 0x180003af8 movaps xmm2, xmm3 ; +0x3bd, 0x180003afd mulss xmm0, dword ptr [rcx+2000h] ; +0x3c0, 0x180003b00 mulss xmm1, dword ptr [r8+1000h] ; +0x3c8, 0x180003b08 subss xmm1, xmm0 ; +0x3d1, 0x180003b11 movaps xmm0, xmm4 ; +0x3d5, 0x180003b15 movss dword ptr [rdx+10h], xmm1 ; +0x3d8, 0x180003b18 movaps xmm1, xmm3 ; +0x3dd, 0x180003b1d mulss xmm0, dword ptr [rcx+3000h] ; +0x3e0, 0x180003b20 mulss xmm2, dword ptr [r8+1800h] ; +0x3e8, 0x180003b28 subss xmm2, xmm0 ; +0x3f1, 0x180003b31 movaps xmm0, xmm4 ; +0x3f5, 0x180003b35 movss dword ptr [rdx+14h], xmm2 ; +0x3f8, 0x180003b38 movaps xmm2, xmm3 ; +0x3fd, 0x180003b3d mulss xmm0, dword ptr [rcx+4000h] ; +0x400, 0x180003b40 mulss xmm1, dword ptr [r8+2000h] ; +0x408, 0x180003b48 subss xmm1, xmm0 ; +0x411, 0x180003b51 movaps xmm0, xmm4 ; +0x415, 0x180003b55 movss dword ptr [rdx+18h], xmm1 ; +0x418, 0x180003b58 mulss xmm2, dword ptr [r8+2800h] ; +0x41d, 0x180003b5d add r8, 4000h ; +0x426, 0x180003b66 mulss xmm0, dword ptr [rcx+5000h] ; +0x42d, 0x180003b6d add rcx, 8000h ; +0x435, 0x180003b75 subss xmm2, xmm0 ; +0x43c, 0x180003b7c movss dword ptr [rdx+1Ch], xmm2 ; +0x440, 0x180003b80 add rdx, 20h ; ' ' ; +0x445, 0x180003b85 sub r9d, 1 ; +0x449, 0x180003b89 jnz loc_180003A80 ; +0x44d, 0x180003b8d mov r8d, ebx ; +0x453, 0x180003b93 test ebx, ebx ; +0x456, 0x180003b96 jz short loc_180003BDD ; +0x458, 0x180003b98 mov rcx, rax ; +0x45a, 0x180003b9a shl rax, 0Bh ; +0x45d, 0x180003b9d shl rcx, 0Ch ; +0x461, 0x180003ba1 add rcx, r10 ; +0x465, 0x180003ba5 add rax, r11 ; +0x468, 0x180003ba8 nop dword ptr [rax+rax+00h] ; +0x46b, 0x180003bab movaps xmm1, xmm3 ; +0x470, 0x180003bb0 movaps xmm0, xmm4 ; +0x473, 0x180003bb3 mulss xmm1, dword ptr [rax] ; +0x476, 0x180003bb6 add rax, 800h ; +0x47a, 0x180003bba mulss xmm0, dword ptr [rcx] ; +0x480, 0x180003bc0 add rcx, 1000h ; +0x484, 0x180003bc4 subss xmm1, xmm0 ; +0x48b, 0x180003bcb movss dword ptr [rdx], xmm1 ; +0x48f, 0x180003bcf add rdx, 4 ; +0x493, 0x180003bd3 sub r8d, 1 ; +0x497, 0x180003bd7 jnz short loc_180003BB0 ; +0x49b, 0x180003bdb add r11, 4 ; +0x49d, 0x180003bdd sub rdi, 1 ; +0x4a1, 0x180003be1 jnz loc_180003A40 ; +0x4a5, 0x180003be5 mov eax, [rsp+18h+arg_50] ; +0x4ab, 0x180003beb mov r14, [rsp+18h+var_18] ; +0x4af, 0x180003bef mov rdi, [rsp+18h+var_10] ; +0x4b3, 0x180003bf3 mov rsi, [rsp+18h+arg_10] ; +0x4b8, 0x180003bf8 mov rbp, [rsp+18h+arg_8] ; +0x4bd, 0x180003bfd mov rbx, [rsp+18h+arg_0] ; +0x4c2, 0x180003c02 test eax, eax ; +0x4c7, 0x180003c07 jle loc_180003D25 ; +0x4c9, 0x180003c09 movss xmm2, dword ptr cs:xmmword_180144610 ; +0x4cf, 0x180003c0f mov r11d, r15d ; +0x4d7, 0x180003c17 sar r11d, 3 ; +0x4da, 0x180003c1a mov r9d, eax ; +0x4de, 0x180003c1e and r15d, 7 ; +0x4e1, 0x180003c21 nop word ptr [rax+rax+00000000h] ; +0x4e5, 0x180003c25 sub r10, 4 ; +0x4f0, 0x180003c30 mov r8d, r11d ; +0x4f4, 0x180003c34 xor ecx, ecx ; +0x4f7, 0x180003c37 test r11d, r11d ; +0x4f9, 0x180003c39 jz loc_180003CE4 ; +0x4fc, 0x180003c3c mov ecx, r8d ; +0x502, 0x180003c42 lea rax, [r10+2000h] ; +0x505, 0x180003c45 shl rcx, 3 ; +0x50c, 0x180003c4c movss xmm0, dword ptr [rax-2000h] ; +0x510, 0x180003c50 lea rax, [rax+8000h] ; +0x518, 0x180003c58 xorps xmm0, xmm2 ; +0x51f, 0x180003c5f movss dword ptr [rdx], xmm0 ; +0x522, 0x180003c62 movss xmm1, dword ptr [rax-9000h] ; +0x526, 0x180003c66 xorps xmm1, xmm2 ; +0x52e, 0x180003c6e movss dword ptr [rdx+4], xmm1 ; +0x531, 0x180003c71 movss xmm0, dword ptr [rax-8000h] ; +0x536, 0x180003c76 xorps xmm0, xmm2 ; +0x53e, 0x180003c7e movss dword ptr [rdx+8], xmm0 ; +0x541, 0x180003c81 movss xmm1, dword ptr [rax-7000h] ; +0x546, 0x180003c86 xorps xmm1, xmm2 ; +0x54e, 0x180003c8e movss dword ptr [rdx+0Ch], xmm1 ; +0x551, 0x180003c91 movss xmm0, dword ptr [rax-6000h] ; +0x556, 0x180003c96 xorps xmm0, xmm2 ; +0x55e, 0x180003c9e movss dword ptr [rdx+10h], xmm0 ; +0x561, 0x180003ca1 movss xmm1, dword ptr [rax-5000h] ; +0x566, 0x180003ca6 xorps xmm1, xmm2 ; +0x56e, 0x180003cae movss dword ptr [rdx+14h], xmm1 ; +0x571, 0x180003cb1 movss xmm0, dword ptr [rax-4000h] ; +0x576, 0x180003cb6 xorps xmm0, xmm2 ; +0x57e, 0x180003cbe movss dword ptr [rdx+18h], xmm0 ; +0x581, 0x180003cc1 movss xmm1, dword ptr [rax-3000h] ; +0x586, 0x180003cc6 xorps xmm1, xmm2 ; +0x58e, 0x180003cce movss dword ptr [rdx+1Ch], xmm1 ; +0x591, 0x180003cd1 add rdx, 20h ; ' ' ; +0x596, 0x180003cd6 sub r8d, 1 ; +0x59a, 0x180003cda jnz loc_180003C50 ; +0x59e, 0x180003cde mov eax, r15d ; +0x5a4, 0x180003ce4 test r15d, r15d ; +0x5a7, 0x180003ce7 jz short loc_180003D1B ; +0x5aa, 0x180003cea shl rcx, 0Ch ; +0x5ac, 0x180003cec add rcx, r10 ; +0x5b0, 0x180003cf0 nop dword ptr [rax+00h] ; +0x5b3, 0x180003cf3 nop word ptr [rax+rax+00000000h] ; +0x5b7, 0x180003cf7 movss xmm0, dword ptr [rcx] ; +0x5c0, 0x180003d00 lea rcx, [rcx+1000h] ; +0x5c4, 0x180003d04 xorps xmm0, xmm2 ; +0x5cb, 0x180003d0b movss dword ptr [rdx], xmm0 ; +0x5ce, 0x180003d0e add rdx, 4 ; +0x5d2, 0x180003d12 sub eax, 1 ; +0x5d6, 0x180003d16 jnz short loc_180003D00 ; +0x5d9, 0x180003d19 sub r9, 1 ; +0x5db, 0x180003d1b jnz loc_180003C30 ; +0x5df, 0x180003d1f add rsp, 10h ; +0x5e5, 0x180003d25 pop r15 ; +0x5e9, 0x180003d29 retn ; +0x5eb, 0x180003d2b