; ; sub_180005220 from 0x180005220 to 0x180005515 (757 bytes) ; ; 2 xrefs: ; > sub_180004520 @ 0x1800045fa ; > @ 0x1801f62d0 ; ; 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, 0x180005220 mov [rsp+arg_8], rdi ; +0x5, 0x180005225 mov r10, [rsp+arg_20] ; +0xa, 0x18000522a mov r11, rdx ; +0xf, 0x18000522f mov edx, [rsp+arg_38] ; +0x12, 0x180005232 mov eax, edx ; +0x16, 0x180005236 sar eax, 2 ; +0x18, 0x180005238 test eax, eax ; +0x1b, 0x18000523b jz short loc_180005272 ; +0x1d, 0x18000523d nop ; +0x1f, 0x18000523f movups xmm2, xmmword ptr [r9-10h] ; +0x20, 0x180005240 sub r9, 10h ; +0x25, 0x180005245 sub r10, 10h ; +0x29, 0x180005249 shufps xmm2, xmm2, 1Bh ; +0x2d, 0x18000524d movaps xmm0, xmm2 ; +0x31, 0x180005251 movups xmm1, xmmword ptr [r10] ; +0x34, 0x180005254 shufps xmm1, xmm1, 1Bh ; +0x38, 0x180005258 unpcklps xmm0, xmm1 ; +0x3c, 0x18000525c movups xmmword ptr [rcx], xmm0 ; +0x3f, 0x18000525f unpckhps xmm2, xmm1 ; +0x42, 0x180005262 movups xmmword ptr [rcx+10h], xmm2 ; +0x45, 0x180005265 add rcx, 20h ; ' ' ; +0x49, 0x180005269 sub eax, 1 ; +0x4d, 0x18000526d jnz short loc_180005240 ; +0x50, 0x180005270 and edx, 3 ; +0x52, 0x180005272 jz short loc_18000529D ; +0x55, 0x180005275 nop word ptr [rax+rax+00000000h] ; +0x57, 0x180005277 mov eax, [r9-4] ; +0x60, 0x180005280 sub r9, 4 ; +0x64, 0x180005284 sub r10, 4 ; +0x68, 0x180005288 mov [rcx], eax ; +0x6c, 0x18000528c mov eax, [r10] ; +0x6e, 0x18000528e mov [rcx+4], eax ; +0x71, 0x180005291 add rcx, 8 ; +0x74, 0x180005294 sub edx, 1 ; +0x78, 0x180005298 jnz short loc_180005280 ; +0x7b, 0x18000529b mov ebx, [rsp+arg_40] ; +0x7d, 0x18000529d mov edi, ebx ; +0x81, 0x1800052a1 mov rax, [rsp+arg_30] ; +0x83, 0x1800052a3 mov rdx, [rsp+arg_28] ; +0x88, 0x1800052a8 sar edi, 2 ; +0x8d, 0x1800052ad test edi, edi ; +0x90, 0x1800052b0 jz short loc_180005325 ; +0x92, 0x1800052b2 nop dword ptr [rax+00h] ; +0x94, 0x1800052b4 nop dword ptr [rax+rax+00000000h] ; +0x98, 0x1800052b8 movups xmm1, xmmword ptr [r8] ; +0xa0, 0x1800052c0 sub r9, 10h ; +0xa4, 0x1800052c4 sub r11, 10h ; +0xa8, 0x1800052c8 movups xmm0, xmmword ptr [rdx] ; +0xac, 0x1800052cc sub r10, 10h ; +0xaf, 0x1800052cf add r8, 10h ; +0xb3, 0x1800052d3 add rdx, 10h ; +0xb7, 0x1800052d7 movups xmm4, xmmword ptr [r9] ; +0xbb, 0x1800052db movups xmm2, xmmword ptr [r11] ; +0xbf, 0x1800052df movups xmm3, xmmword ptr [r10] ; +0xc3, 0x1800052e3 mulps xmm0, xmm1 ; +0xc7, 0x1800052e7 shufps xmm4, xmm4, 1Bh ; +0xca, 0x1800052ea shufps xmm2, xmm2, 1Bh ; +0xce, 0x1800052ee mulps xmm4, xmm2 ; +0xd2, 0x1800052f2 shufps xmm3, xmm3, 1Bh ; +0xd5, 0x1800052f5 mulps xmm3, xmm2 ; +0xd9, 0x1800052f9 addps xmm4, xmm0 ; +0xdc, 0x1800052fc movups xmm0, xmmword ptr [rax] ; +0xdf, 0x1800052ff add rax, 10h ; +0xe2, 0x180005302 mulps xmm0, xmm1 ; +0xe6, 0x180005306 addps xmm3, xmm0 ; +0xe9, 0x180005309 movaps xmm0, xmm4 ; +0xec, 0x18000530c unpcklps xmm0, xmm3 ; +0xef, 0x18000530f movups xmmword ptr [rcx], xmm0 ; +0xf2, 0x180005312 unpckhps xmm4, xmm3 ; +0xf5, 0x180005315 movups xmmword ptr [rcx+10h], xmm4 ; +0xf8, 0x180005318 add rcx, 20h ; ' ' ; +0xfc, 0x18000531c sub edi, 1 ; +0x100, 0x180005320 jnz short loc_1800052C0 ; +0x103, 0x180005323 and ebx, 3 ; +0x105, 0x180005325 jz short loc_180005388 ; +0x108, 0x180005328 nop word ptr [rax+rax+00h] ; +0x10a, 0x18000532a movss xmm0, dword ptr [rdx] ; +0x110, 0x180005330 sub r11, 4 ; +0x114, 0x180005334 mulss xmm0, dword ptr [r8] ; +0x118, 0x180005338 sub r9, 4 ; +0x11d, 0x18000533d sub r10, 4 ; +0x121, 0x180005341 add rdx, 4 ; +0x125, 0x180005345 movss xmm1, dword ptr [r11] ; +0x129, 0x180005349 mulss xmm1, dword ptr [r9] ; +0x12e, 0x18000534e addss xmm1, xmm0 ; +0x133, 0x180005353 movss dword ptr [rcx], xmm1 ; +0x137, 0x180005357 movss xmm2, dword ptr [rax] ; +0x13b, 0x18000535b add rax, 4 ; +0x13f, 0x18000535f mulss xmm2, dword ptr [r8] ; +0x143, 0x180005363 add r8, 4 ; +0x148, 0x180005368 movss xmm0, dword ptr [r10] ; +0x14c, 0x18000536c mulss xmm0, dword ptr [r11] ; +0x151, 0x180005371 addss xmm2, xmm0 ; +0x156, 0x180005376 movss dword ptr [rcx+4], xmm2 ; +0x15a, 0x18000537a add rcx, 8 ; +0x15f, 0x18000537f sub ebx, 1 ; +0x163, 0x180005383 jnz short loc_180005330 ; +0x166, 0x180005386 mov ebx, [rsp+arg_48] ; +0x168, 0x180005388 mov edi, ebx ; +0x16c, 0x18000538c sar edi, 2 ; +0x16e, 0x18000538e test edi, edi ; +0x171, 0x180005391 jz short loc_180005408 ; +0x173, 0x180005393 nop word ptr [rax+rax+00000000h] ; +0x175, 0x180005395 movups xmm2, xmmword ptr [r8] ; +0x180, 0x1800053a0 sub r11, 10h ; +0x184, 0x1800053a4 sub rdx, 10h ; +0x188, 0x1800053a8 movups xmm0, xmmword ptr [r9] ; +0x18c, 0x1800053ac sub rax, 10h ; +0x190, 0x1800053b0 add r8, 10h ; +0x194, 0x1800053b4 add r9, 10h ; +0x198, 0x1800053b8 movups xmm5, xmmword ptr [r11] ; +0x19c, 0x1800053bc movups xmm1, xmmword ptr [rdx] ; +0x1a0, 0x1800053c0 movups xmm3, xmmword ptr [rax] ; +0x1a3, 0x1800053c3 shufps xmm1, xmm1, 1Bh ; +0x1a6, 0x1800053c6 mulps xmm1, xmm2 ; +0x1aa, 0x1800053ca shufps xmm5, xmm5, 1Bh ; +0x1ad, 0x1800053cd movaps xmm4, xmm5 ; +0x1b1, 0x1800053d1 shufps xmm3, xmm3, 1Bh ; +0x1b4, 0x1800053d4 mulps xmm4, xmm0 ; +0x1b8, 0x1800053d8 mulps xmm3, xmm2 ; +0x1bb, 0x1800053db subps xmm4, xmm1 ; +0x1be, 0x1800053de movups xmm1, xmmword ptr [r10] ; +0x1c1, 0x1800053e1 add r10, 10h ; +0x1c5, 0x1800053e5 mulps xmm1, xmm5 ; +0x1c9, 0x1800053e9 movaps xmm0, xmm4 ; +0x1cc, 0x1800053ec subps xmm1, xmm3 ; +0x1cf, 0x1800053ef unpcklps xmm0, xmm1 ; +0x1d2, 0x1800053f2 movups xmmword ptr [rcx], xmm0 ; +0x1d5, 0x1800053f5 unpckhps xmm4, xmm1 ; +0x1d8, 0x1800053f8 movups xmmword ptr [rcx+10h], xmm4 ; +0x1db, 0x1800053fb add rcx, 20h ; ' ' ; +0x1df, 0x1800053ff sub edi, 1 ; +0x1e3, 0x180005403 jnz short loc_1800053A0 ; +0x1e6, 0x180005406 and ebx, 3 ; +0x1e8, 0x180005408 jz short loc_180005473 ; +0x1eb, 0x18000540b sub r9, r8 ; +0x1ed, 0x18000540d sub r10, r8 ; +0x1f0, 0x180005410 nop dword ptr [rax+00h] ; +0x1f3, 0x180005413 nop word ptr [rax+rax+00000000h] ; +0x1f7, 0x180005417 movss xmm0, dword ptr [rdx-4] ; +0x200, 0x180005420 sub r11, 4 ; +0x205, 0x180005425 mulss xmm0, dword ptr [r8] ; +0x209, 0x180005429 sub rdx, 4 ; +0x20e, 0x18000542e sub rax, 4 ; +0x212, 0x180005432 movss xmm1, dword ptr [r9+r8] ; +0x216, 0x180005436 mulss xmm1, dword ptr [r11] ; +0x21c, 0x18000543c subss xmm1, xmm0 ; +0x221, 0x180005441 movss dword ptr [rcx], xmm1 ; +0x225, 0x180005445 movss xmm2, dword ptr [r10+r8] ; +0x229, 0x180005449 movss xmm0, dword ptr [rax] ; +0x22f, 0x18000544f mulss xmm0, dword ptr [r8] ; +0x233, 0x180005453 add r8, 4 ; +0x238, 0x180005458 mulss xmm2, dword ptr [r11] ; +0x23c, 0x18000545c subss xmm2, xmm0 ; +0x241, 0x180005461 movss dword ptr [rcx+4], xmm2 ; +0x245, 0x180005465 add rcx, 8 ; +0x24a, 0x18000546a sub ebx, 1 ; +0x24e, 0x18000546e jnz short loc_180005420 ; +0x251, 0x180005471 mov r8d, [rsp+arg_50] ; +0x253, 0x180005473 mov r9d, r8d ; +0x258, 0x180005478 sar r9d, 2 ; +0x25b, 0x18000547b test r9d, r9d ; +0x25f, 0x18000547f jz short loc_1800054D1 ; +0x262, 0x180005482 nop dword ptr [rax+00h] ; +0x264, 0x180005484 nop dword ptr [rax+rax+00000000h] ; +0x268, 0x180005488 movups xmm2, xmmword ptr [rdx-10h] ; +0x270, 0x180005490 sub rdx, 10h ; +0x274, 0x180005494 sub rax, 10h ; +0x278, 0x180005498 shufps xmm2, xmm2, 1Bh ; +0x27c, 0x18000549c pxor xmm2, cs:xmmword_180144630 ; +0x280, 0x1800054a0 movups xmm1, xmmword ptr [rax] ; +0x288, 0x1800054a8 movaps xmm0, xmm2 ; +0x28b, 0x1800054ab shufps xmm1, xmm1, 1Bh ; +0x28e, 0x1800054ae pxor xmm1, cs:xmmword_180144630 ; +0x292, 0x1800054b2 unpcklps xmm0, xmm1 ; +0x29a, 0x1800054ba movups xmmword ptr [rcx], xmm0 ; +0x29d, 0x1800054bd unpckhps xmm2, xmm1 ; +0x2a0, 0x1800054c0 movups xmmword ptr [rcx+10h], xmm2 ; +0x2a3, 0x1800054c3 add rcx, 20h ; ' ' ; +0x2a7, 0x1800054c7 sub r9d, 1 ; +0x2ab, 0x1800054cb jnz short loc_180005490 ; +0x2af, 0x1800054cf and r8d, 3 ; +0x2b1, 0x1800054d1 jz short loc_18000550A ; +0x2b5, 0x1800054d5 movss xmm2, dword ptr cs:xmmword_180144610 ; +0x2b7, 0x1800054d7 sub rdx, rax ; +0x2bf, 0x1800054df movss xmm0, dword ptr [rdx+rax-4] ; +0x2c2, 0x1800054e2 lea rax, [rax-4] ; +0x2c8, 0x1800054e8 lea rcx, [rcx+8] ; +0x2cc, 0x1800054ec xorps xmm0, xmm2 ; +0x2d0, 0x1800054f0 movss dword ptr [rcx-8], xmm0 ; +0x2d3, 0x1800054f3 movss xmm1, dword ptr [rax] ; +0x2d8, 0x1800054f8 xorps xmm1, xmm2 ; +0x2dc, 0x1800054fc movss dword ptr [rcx-4], xmm1 ; +0x2df, 0x1800054ff sub r8d, 1 ; +0x2e4, 0x180005504 jnz short loc_1800054E2 ; +0x2e8, 0x180005508 mov rbx, [rsp+arg_0] ; +0x2ea, 0x18000550a mov rdi, [rsp+arg_8] ; +0x2ef, 0x18000550f retn ; +0x2f4, 0x180005514