; ; sub_180004FC0 from 0x180004fc0 to 0x18000521b (603 bytes) ; ; 1 xrefs: ; > sub_180004520 @ 0x1800045a2 ; ; 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 r10d, [rsp+arg_28] ; +0x0, 0x180004fc0 mov eax, r10d ; +0x5, 0x180004fc5 sar eax, 3 ; +0x8, 0x180004fc8 test eax, eax ; +0xb, 0x180004fcb jz short loc_180004FF6 ; +0xd, 0x180004fcd nop ; +0xf, 0x180004fcf movups xmm1, xmmword ptr [r9-20h] ; +0x10, 0x180004fd0 sub r9, 20h ; ' ' ; +0x15, 0x180004fd5 shufps xmm1, xmm1, 1Bh ; +0x19, 0x180004fd9 movups xmm0, xmmword ptr [r9+10h] ; +0x1d, 0x180004fdd movups xmmword ptr [rcx+10h], xmm1 ; +0x22, 0x180004fe2 shufps xmm0, xmm0, 1Bh ; +0x26, 0x180004fe6 movups xmmword ptr [rcx], xmm0 ; +0x2a, 0x180004fea add rcx, 20h ; ' ' ; +0x2d, 0x180004fed sub eax, 1 ; +0x31, 0x180004ff1 jnz short loc_180004FD0 ; +0x34, 0x180004ff4 and r10d, 7 ; +0x36, 0x180004ff6 jz short loc_180005014 ; +0x3a, 0x180004ffa nop dword ptr [rax+00h] ; +0x3c, 0x180004ffc mov eax, [r9-4] ; +0x40, 0x180005000 sub r9, 4 ; +0x44, 0x180005004 mov [rcx], eax ; +0x48, 0x180005008 add rcx, 4 ; +0x4a, 0x18000500a sub r10d, 1 ; +0x4e, 0x18000500e jnz short loc_180005000 ; +0x52, 0x180005012 mov r10d, [rsp+arg_30] ; +0x54, 0x180005014 mov r11d, r10d ; +0x59, 0x180005019 mov rax, [rsp+arg_20] ; +0x5c, 0x18000501c sar r11d, 3 ; +0x61, 0x180005021 test r11d, r11d ; +0x65, 0x180005025 jz short loc_180005093 ; +0x68, 0x180005028 nop word ptr [rax+rax+00h] ; +0x6a, 0x18000502a movups xmm1, xmmword ptr [r8+10h] ; +0x70, 0x180005030 sub rdx, 20h ; ' ' ; +0x75, 0x180005035 sub r9, 20h ; ' ' ; +0x79, 0x180005039 movups xmm0, xmmword ptr [r9] ; +0x7d, 0x18000503d movups xmm4, xmmword ptr [rdx] ; +0x81, 0x180005041 movups xmm2, xmmword ptr [r9+10h] ; +0x84, 0x180005044 movups xmm3, xmmword ptr [rdx+10h] ; +0x89, 0x180005049 shufps xmm0, xmm0, 1Bh ; +0x8d, 0x18000504d shufps xmm4, xmm4, 1Bh ; +0x91, 0x180005051 mulps xmm4, xmm0 ; +0x95, 0x180005055 movups xmm0, xmmword ptr [rax+10h] ; +0x98, 0x180005058 shufps xmm3, xmm3, 1Bh ; +0x9c, 0x18000505c mulps xmm1, xmm0 ; +0xa0, 0x180005060 movups xmm0, xmmword ptr [rax] ; +0xa3, 0x180005063 add rax, 20h ; ' ' ; +0xa6, 0x180005066 shufps xmm2, xmm2, 1Bh ; +0xaa, 0x18000506a addps xmm4, xmm1 ; +0xae, 0x18000506e mulps xmm3, xmm2 ; +0xb1, 0x180005071 movups xmm1, xmmword ptr [r8] ; +0xb4, 0x180005074 add r8, 20h ; ' ' ; +0xb8, 0x180005078 mulps xmm1, xmm0 ; +0xbc, 0x18000507c movups xmmword ptr [rcx+10h], xmm4 ; +0xbf, 0x18000507f addps xmm3, xmm1 ; +0xc3, 0x180005083 movups xmmword ptr [rcx], xmm3 ; +0xc6, 0x180005086 add rcx, 20h ; ' ' ; +0xc9, 0x180005089 sub r11d, 1 ; +0xcd, 0x18000508d jnz short loc_180005030 ; +0xd1, 0x180005091 and r10d, 7 ; +0xd3, 0x180005093 jz short loc_1800050D4 ; +0xd7, 0x180005097 nop dword ptr [rax+00000000h] ; +0xd9, 0x180005099 movss xmm0, dword ptr [r8] ; +0xe0, 0x1800050a0 sub r9, 4 ; +0xe5, 0x1800050a5 mulss xmm0, dword ptr [rax] ; +0xe9, 0x1800050a9 sub rdx, 4 ; +0xed, 0x1800050ad add r8, 4 ; +0xf1, 0x1800050b1 add rax, 4 ; +0xf5, 0x1800050b5 movss xmm1, dword ptr [r9] ; +0xf9, 0x1800050b9 mulss xmm1, dword ptr [rdx] ; +0xfe, 0x1800050be addss xmm1, xmm0 ; +0x102, 0x1800050c2 movss dword ptr [rcx], xmm1 ; +0x106, 0x1800050c6 add rcx, 4 ; +0x10a, 0x1800050ca sub r10d, 1 ; +0x10e, 0x1800050ce jnz short loc_1800050A0 ; +0x112, 0x1800050d2 mov r10d, [rsp+arg_38] ; +0x114, 0x1800050d4 mov r11d, r10d ; +0x119, 0x1800050d9 sar r11d, 3 ; +0x11c, 0x1800050dc test r11d, r11d ; +0x120, 0x1800050e0 jz short loc_180005153 ; +0x123, 0x1800050e3 nop word ptr [rax+rax+00000000h] ; +0x125, 0x1800050e5 movups xmm0, xmmword ptr [r8+10h] ; +0x130, 0x1800050f0 sub rax, 20h ; ' ' ; +0x135, 0x1800050f5 sub rdx, 20h ; ' ' ; +0x139, 0x1800050f9 movups xmm1, xmmword ptr [rax] ; +0x13d, 0x1800050fd movups xmm4, xmmword ptr [rdx] ; +0x140, 0x180005100 movups xmm3, xmmword ptr [rdx+10h] ; +0x143, 0x180005103 movups xmm2, xmmword ptr [rax+10h] ; +0x147, 0x180005107 shufps xmm4, xmm4, 1Bh ; +0x14b, 0x18000510b shufps xmm3, xmm3, 1Bh ; +0x14f, 0x18000510f shufps xmm1, xmm1, 1Bh ; +0x153, 0x180005113 mulps xmm1, xmm0 ; +0x157, 0x180005117 movups xmm0, xmmword ptr [r9+10h] ; +0x15a, 0x18000511a shufps xmm2, xmm2, 1Bh ; +0x15f, 0x18000511f mulps xmm4, xmm0 ; +0x163, 0x180005123 movups xmm0, xmmword ptr [r9] ; +0x166, 0x180005126 add r9, 20h ; ' ' ; +0x16a, 0x18000512a mulps xmm3, xmm0 ; +0x16e, 0x18000512e subps xmm4, xmm1 ; +0x171, 0x180005131 movups xmm0, xmmword ptr [r8] ; +0x174, 0x180005134 add r8, 20h ; ' ' ; +0x178, 0x180005138 mulps xmm2, xmm0 ; +0x17c, 0x18000513c movups xmmword ptr [rcx+10h], xmm4 ; +0x17f, 0x18000513f subps xmm3, xmm2 ; +0x183, 0x180005143 movups xmmword ptr [rcx], xmm3 ; +0x186, 0x180005146 add rcx, 20h ; ' ' ; +0x189, 0x180005149 sub r11d, 1 ; +0x18d, 0x18000514d jnz short loc_1800050F0 ; +0x191, 0x180005151 and r10d, 7 ; +0x193, 0x180005153 jz short loc_18000519B ; +0x197, 0x180005157 sub r9, rcx ; +0x199, 0x180005159 sub rdx, rax ; +0x19c, 0x18000515c sub r8, rcx ; +0x19f, 0x18000515f nop dword ptr [rax+00h] ; +0x1a2, 0x180005162 nop word ptr [rax+rax+00000000h] ; +0x1a6, 0x180005166 movss xmm0, dword ptr [r8+rcx] ; +0x1b0, 0x180005170 sub rax, 4 ; +0x1b6, 0x180005176 movss xmm1, dword ptr [rdx+rax] ; +0x1ba, 0x18000517a mulss xmm1, dword ptr [r9+rcx] ; +0x1bf, 0x18000517f mulss xmm0, dword ptr [rax] ; +0x1c5, 0x180005185 subss xmm1, xmm0 ; +0x1c9, 0x180005189 movss dword ptr [rcx], xmm1 ; +0x1cd, 0x18000518d add rcx, 4 ; +0x1d1, 0x180005191 sub r10d, 1 ; +0x1d5, 0x180005195 jnz short loc_180005170 ; +0x1d9, 0x180005199 mov edx, [rsp+arg_40] ; +0x1db, 0x18000519b mov r8d, edx ; +0x1df, 0x18000519f sar r8d, 3 ; +0x1e2, 0x1800051a2 test r8d, r8d ; +0x1e6, 0x1800051a6 jz short loc_1800051E9 ; +0x1e9, 0x1800051a9 nop dword ptr [rax+rax+00h] ; +0x1eb, 0x1800051ab movdqa xmm2, cs:xmmword_180144630 ; +0x1f0, 0x1800051b0 sub rax, 20h ; ' ' ; +0x1f8, 0x1800051b8 movdqa xmm0, xmm2 ; +0x1fc, 0x1800051bc movups xmm3, xmmword ptr [rax] ; +0x200, 0x1800051c0 movups xmm1, xmmword ptr [rax+10h] ; +0x203, 0x1800051c3 shufps xmm3, xmm3, 1Bh ; +0x207, 0x1800051c7 shufps xmm1, xmm1, 1Bh ; +0x20b, 0x1800051cb pxor xmm2, xmm3 ; +0x20f, 0x1800051cf pxor xmm0, xmm1 ; +0x213, 0x1800051d3 movdqu xmmword ptr [rcx], xmm0 ; +0x217, 0x1800051d7 movups xmmword ptr [rcx+10h], xmm2 ; +0x21b, 0x1800051db add rcx, 20h ; ' ' ; +0x21f, 0x1800051df sub r8d, 1 ; +0x223, 0x1800051e3 jnz short loc_1800051B0 ; +0x227, 0x1800051e7 and edx, 7 ; +0x229, 0x1800051e9 jz short locret_18000521A ; +0x22c, 0x1800051ec movss xmm1, dword ptr cs:xmmword_180144610 ; +0x22e, 0x1800051ee nop word ptr [rax+rax+00000000h] ; +0x236, 0x1800051f6 movss xmm0, dword ptr [rax-4] ; +0x240, 0x180005200 lea rax, [rax-4] ; +0x245, 0x180005205 lea rcx, [rcx+4] ; +0x249, 0x180005209 xorps xmm0, xmm1 ; +0x24d, 0x18000520d movss dword ptr [rcx-4], xmm0 ; +0x250, 0x180005210 sub edx, 1 ; +0x255, 0x180005215 jnz short loc_180005200 ; +0x258, 0x180005218 retn ; +0x25a, 0x18000521a