; ; sub_180007410 from 0x180007410 to 0x180007764 (852 bytes) ; ; 5 xrefs: ; > @ 0x18017d840 ; > @ 0x18017d880 ; > @ 0x1801a4210 ; > @ 0x1801a4228 ; > @ 0x1801f6360 ; ; 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_10], r8 ; +0x0, 0x180007410 mov [rsp+arg_8], rdx ; +0x5, 0x180007415 push r13 ; +0xa, 0x18000741a push r14 ; +0xc, 0x18000741c sub rsp, 58h ; +0xe, 0x18000741e movsxd r10, dword ptr [rcx+28h] ; +0x12, 0x180007422 mov r13, rdx ; +0x16, 0x180007426 mov rcx, [rcx] ; +0x19, 0x180007429 mov r14, r9 ; +0x1c, 0x18000742c mov rax, [rcx+20h] ; +0x1f, 0x18000742f mov eax, [rax+r10*4] ; +0x23, 0x180007433 cdq ; +0x27, 0x180007437 sub eax, edx ; +0x28, 0x180007438 sar eax, 1 ; +0x2a, 0x18000743a movsxd rdx, eax ; +0x2c, 0x18000743c mov [rsp+68h+arg_0], edx ; +0x2f, 0x18000743f test r8, r8 ; +0x33, 0x180007443 jz loc_180007747 ; +0x36, 0x180007446 mov r10d, [r13+38h] ; +0x3c, 0x18000744c lea r11, dword_180144700 ; +0x40, 0x180007450 imul r10d, [r8] ; +0x47, 0x180007457 xor eax, eax ; +0x4b, 0x18000745b mov [rsp+68h+var_18], rbp ; +0x4d, 0x18000745d mov ebp, 1 ; +0x52, 0x180007462 mov [rsp+68h+var_20], rsi ; +0x57, 0x180007467 mov esi, eax ; +0x5c, 0x18000746c mov [rsp+68h+var_30], r12 ; +0x5e, 0x18000746e mov r12d, eax ; +0x63, 0x180007473 cmp [r13+34h], ebp ; +0x66, 0x180007476 jle loc_180007686 ; +0x6a, 0x18000747a mov [rsp+68h+arg_18], rbx ; +0x70, 0x180007480 mov [rsp+68h+var_28], rdi ; +0x78, 0x180007488 mov [rsp+68h+var_38], r15 ; +0x7d, 0x18000748d mov r15d, ebp ; +0x82, 0x180007492 movaps [rsp+68h+var_48], xmm6 ; +0x85, 0x180007495 nop word ptr [rax+rax+00h] ; +0x8a, 0x18000749a mov rax, [r13+18h] ; +0x90, 0x1800074a0 movsx rcx, byte ptr [rax+r15] ; +0x94, 0x1800074a4 mov ebx, [r8+rcx*4] ; +0x99, 0x1800074a9 and ebx, 7FFFh ; +0x9d, 0x1800074ad cmp ebx, [r8+rcx*4] ; +0xa3, 0x1800074b3 jnz loc_180007655 ; +0xa7, 0x1800074b7 imul ebx, [r13+38h] ; +0xad, 0x1800074bd mov rax, [r13+10h] ; +0xb2, 0x1800074c2 movzx r12d, word ptr [rax+rcx*2] ; +0xb6, 0x1800074c6 mov r8d, ebx ; +0xbb, 0x1800074cb sub r8d, r10d ; +0xbe, 0x1800074ce mov ecx, r12d ; +0xc1, 0x1800074d1 sub ecx, esi ; +0xc4, 0x1800074d4 shl r10d, 14h ; +0xc6, 0x1800074d6 mov eax, r8d ; +0xca, 0x1800074da mov r11d, r12d ; +0xcd, 0x1800074dd shl eax, 14h ; +0xd0, 0x1800074e0 cdq ; +0xd3, 0x1800074e3 sar r8d, 1Fh ; +0xd4, 0x1800074e4 idiv ecx ; +0xd8, 0x1800074e8 and r8d, 0FF800h ; +0xda, 0x1800074ea lea r9d, [r10+400h] ; +0xe1, 0x1800074f1 mov edi, eax ; +0xe8, 0x1800074f8 add r9d, r8d ; +0xea, 0x1800074fa lea edx, [rax+rax] ; +0xed, 0x1800074fd lea ecx, [rax+rax*2] ; +0xf0, 0x180007500 movd xmm0, edx ; +0xf3, 0x180007503 mov edx, [rsp+68h+arg_0] ; +0xf7, 0x180007507 xor eax, eax ; +0xfb, 0x18000750b cmp edx, r12d ; +0xfd, 0x18000750d movd xmm2, edi ; +0x100, 0x180007510 movd xmm3, ecx ; +0x104, 0x180007514 cmovle r11d, edx ; +0x108, 0x180007518 punpckldq xmm3, xmm0 ; +0x10c, 0x18000751c movd xmm1, eax ; +0x110, 0x180007520 sub r11d, esi ; +0x114, 0x180007524 lea eax, ds:0[rdi*4] ; +0x117, 0x180007527 punpckldq xmm2, xmm1 ; +0x11e, 0x18000752e movd xmm6, eax ; +0x122, 0x180007532 movsxd rax, esi ; +0x126, 0x180007536 mov esi, r11d ; +0x129, 0x180007539 movd xmm5, r9d ; +0x12c, 0x18000753c sar esi, 2 ; +0x131, 0x180007541 punpcklqdq xmm3, xmm2 ; +0x134, 0x180007544 pshufd xmm5, xmm5, 0 ; +0x138, 0x180007548 lea r10, [r14+rax*4] ; +0x13d, 0x18000754d pshufd xmm6, xmm6, 0 ; +0x141, 0x180007551 paddd xmm5, xmm3 ; +0x146, 0x180007556 test esi, esi ; +0x14a, 0x18000755a jz loc_1800075FE ; +0x14c, 0x18000755c lea r13, dword_180144700 ; +0x152, 0x180007562 nop dword ptr [rax+00000000h] ; +0x159, 0x180007569 movups xmm4, xmmword ptr [r10] ; +0x160, 0x180007570 movdqa xmm1, xmm5 ; +0x164, 0x180007574 paddd xmm5, xmm6 ; +0x168, 0x180007578 psrad xmm1, 14h ; +0x16c, 0x18000757c movd eax, xmm1 ; +0x171, 0x180007581 movdqa xmm0, xmm1 ; +0x175, 0x180007585 psrldq xmm0, 4 ; +0x179, 0x180007589 movdqa cs:xmmword_1801B2390, xmm1 ; +0x17e, 0x18000758e movsxd r9, eax ; +0x186, 0x180007596 movd eax, xmm0 ; +0x189, 0x180007599 movdqa xmm0, xmm1 ; +0x18d, 0x18000759d psrldq xmm0, 8 ; +0x191, 0x1800075a1 psrldq xmm1, 0Ch ; +0x196, 0x1800075a6 movsxd r8, eax ; +0x19b, 0x1800075ab movd eax, xmm0 ; +0x19e, 0x1800075ae movss xmm2, dword ptr [r13+r8*4+0] ; +0x1a2, 0x1800075b2 movsxd rdx, eax ; +0x1a9, 0x1800075b9 movd eax, xmm1 ; +0x1ac, 0x1800075bc movss xmm1, dword ptr [r13+r9*4+0] ; +0x1b0, 0x1800075c0 unpcklps xmm2, xmm1 ; +0x1b7, 0x1800075c7 movss xmm0, dword ptr [r13+rdx*4+0] ; +0x1ba, 0x1800075ca movsxd rcx, eax ; +0x1c1, 0x1800075d1 movss xmm3, dword ptr [r13+rcx*4+0] ; +0x1c4, 0x1800075d4 unpcklps xmm3, xmm0 ; +0x1cb, 0x1800075db movlhps xmm3, xmm2 ; +0x1ce, 0x1800075de mulps xmm3, xmm4 ; +0x1d1, 0x1800075e1 movups xmmword ptr [r10], xmm3 ; +0x1d4, 0x1800075e4 add r10, 10h ; +0x1d8, 0x1800075e8 sub esi, 1 ; +0x1dc, 0x1800075ec jnz loc_180007570 ; +0x1df, 0x1800075ef mov r13, [rsp+68h+arg_8] ; +0x1e5, 0x1800075f5 mov edx, [rsp+68h+arg_0] ; +0x1ea, 0x1800075fa and r11d, 3 ; +0x1ee, 0x1800075fe jz short loc_180007645 ; +0x1f2, 0x180007602 psrldq xmm5, 0Ch ; +0x1f4, 0x180007604 lea r8, dword_180144700 ; +0x1f9, 0x180007609 movd ecx, xmm5 ; +0x200, 0x180007610 nop dword ptr [rax+00h] ; +0x204, 0x180007614 nop dword ptr [rax+rax+00000000h] ; +0x208, 0x180007618 movsxd rax, ecx ; +0x210, 0x180007620 lea r10, [r10+4] ; +0x213, 0x180007623 sar rax, 14h ; +0x217, 0x180007627 add ecx, edi ; +0x21b, 0x18000762b movss xmm0, dword ptr [r8+rax*4] ; +0x21d, 0x18000762d mulss xmm0, dword ptr [r10-4] ; +0x223, 0x180007633 movss dword ptr [r10-4], xmm0 ; +0x229, 0x180007639 sub r11d, 1 ; +0x22f, 0x18000763f jnz short loc_180007620 ; +0x233, 0x180007643 mov r8, [rsp+68h+arg_10] ; +0x235, 0x180007645 mov esi, r12d ; +0x23d, 0x18000764d mov r10d, ebx ; +0x240, 0x180007650 jmp short loc_180007659 ; +0x243, 0x180007653 mov edx, [rsp+68h+arg_0] ; +0x245, 0x180007655 inc ebp ; +0x249, 0x180007659 inc r15 ; +0x24b, 0x18000765b cmp ebp, [r13+34h] ; +0x24e, 0x18000765e jl loc_1800074A0 ; +0x252, 0x180007662 movaps xmm6, [rsp+68h+var_48] ; +0x258, 0x180007668 lea r11, dword_180144700 ; +0x25d, 0x18000766d mov r15, [rsp+68h+var_38] ; +0x264, 0x180007674 mov rdi, [rsp+68h+var_28] ; +0x269, 0x180007679 mov rbx, [rsp+68h+arg_18] ; +0x26e, 0x18000767e mov rsi, [rsp+68h+var_20] ; +0x276, 0x180007686 mov rbp, [rsp+68h+var_18] ; +0x27b, 0x18000768b movsxd rcx, r12d ; +0x280, 0x180007690 mov r12, [rsp+68h+var_30] ; +0x283, 0x180007693 movsxd r9, edx ; +0x288, 0x180007698 cmp rcx, r9 ; +0x28b, 0x18000769b jge loc_180007739 ; +0x28e, 0x18000769e mov rax, r9 ; +0x294, 0x1800076a4 movsxd rdx, r10d ; +0x297, 0x1800076a7 sub rax, rcx ; +0x29a, 0x1800076aa cmp rax, 4 ; +0x29d, 0x1800076ad jl short loc_18000771F ; +0x2a1, 0x1800076b1 mov r8, r9 ; +0x2a3, 0x1800076b3 lea rax, [r14+8] ; +0x2a6, 0x1800076b6 sub r8, rcx ; +0x2aa, 0x1800076ba lea rax, [rax+rcx*4] ; +0x2ad, 0x1800076bd sub r8, 4 ; +0x2b1, 0x1800076c1 shr r8, 2 ; +0x2b5, 0x1800076c5 inc r8 ; +0x2b9, 0x1800076c9 lea rcx, [rcx+r8*4] ; +0x2bc, 0x1800076cc movss xmm0, dword ptr [rax-8] ; +0x2c0, 0x1800076d0 lea rax, [rax+10h] ; +0x2c5, 0x1800076d5 mulss xmm0, dword ptr [r11+rdx*4] ; +0x2c9, 0x1800076d9 movss dword ptr [rax-18h], xmm0 ; +0x2cf, 0x1800076df movss xmm1, dword ptr [r11+rdx*4] ; +0x2d4, 0x1800076e4 mulss xmm1, dword ptr [rax-14h] ; +0x2da, 0x1800076ea movss xmm0, dword ptr [rax-10h] ; +0x2df, 0x1800076ef movss dword ptr [rax-14h], xmm1 ; +0x2e4, 0x1800076f4 movss xmm1, dword ptr [rax-0Ch] ; +0x2e9, 0x1800076f9 mulss xmm0, dword ptr [r11+rdx*4] ; +0x2ee, 0x1800076fe movss dword ptr [rax-10h], xmm0 ; +0x2f4, 0x180007704 mulss xmm1, dword ptr [r11+rdx*4] ; +0x2f9, 0x180007709 movss dword ptr [rax-0Ch], xmm1 ; +0x2ff, 0x18000770f sub r8, 1 ; +0x304, 0x180007714 jnz short loc_1800076D0 ; +0x308, 0x180007718 cmp rcx, r9 ; +0x30a, 0x18000771a jge short loc_180007739 ; +0x30d, 0x18000771d movss xmm0, dword ptr [r14+rcx*4] ; +0x30f, 0x18000771f mulss xmm0, dword ptr [r11+rdx*4] ; +0x315, 0x180007725 movss dword ptr [r14+rcx*4], xmm0 ; +0x31b, 0x18000772b inc rcx ; +0x321, 0x180007731 cmp rcx, r9 ; +0x324, 0x180007734 jl short loc_18000771F ; +0x327, 0x180007737 mov eax, 1 ; +0x329, 0x180007739 add rsp, 58h ; +0x32e, 0x18000773e pop r14 ; +0x332, 0x180007742 pop r13 ; +0x334, 0x180007744 retn ; +0x336, 0x180007746 lea r8, ds:0[rdx*4]; Size ; +0x337, 0x180007747 mov rcx, r14; void * ; +0x33f, 0x18000774f xor edx, edx; Val ; +0x342, 0x180007752 call memset ; +0x344, 0x180007754 xor eax, eax ; +0x349, 0x180007759 add rsp, 58h ; +0x34b, 0x18000775b pop r14 ; +0x34f, 0x18000775f pop r13 ; +0x351, 0x180007761 retn ; +0x353, 0x180007763