; ; sub_180005E80 from 0x180005e80 to 0x18000606e (494 bytes) ; ; 1 xrefs: ; > sub_180005520 @ 0x1800055a0 ; ; 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, 0x180005e80 mov eax, r10d ; +0x5, 0x180005e85 sar eax, 3 ; +0x8, 0x180005e88 test eax, eax ; +0xb, 0x180005e8b jz short loc_180005EB7 ; +0xd, 0x180005e8d vmovdqu ymm1, cs:ymmword_1801446A0 ; +0xf, 0x180005e8f nop word ptr [rax+rax+00000000h] ; +0x17, 0x180005e97 vpermps ymm0, ymm1, ymmword ptr [r9-20h] ; +0x20, 0x180005ea0 sub r9, 20h ; ' ' ; +0x26, 0x180005ea6 vmovups ymmword ptr [rcx], ymm0 ; +0x2a, 0x180005eaa add rcx, 20h ; ' ' ; +0x2e, 0x180005eae sub eax, 1 ; +0x32, 0x180005eb2 jnz short loc_180005EA0 ; +0x35, 0x180005eb5 and r10d, 7 ; +0x37, 0x180005eb7 jz short loc_180005ED4 ; +0x3b, 0x180005ebb nop dword ptr [rax] ; +0x3d, 0x180005ebd mov eax, [r9-4] ; +0x40, 0x180005ec0 sub r9, 4 ; +0x44, 0x180005ec4 mov [rcx], eax ; +0x48, 0x180005ec8 add rcx, 4 ; +0x4a, 0x180005eca sub r10d, 1 ; +0x4e, 0x180005ece jnz short loc_180005EC0 ; +0x52, 0x180005ed2 mov r10d, [rsp+arg_30] ; +0x54, 0x180005ed4 mov r11d, r10d ; +0x59, 0x180005ed9 mov rax, [rsp+arg_20] ; +0x5c, 0x180005edc sar r11d, 3 ; +0x61, 0x180005ee1 test r11d, r11d ; +0x65, 0x180005ee5 jz short loc_180005F38 ; +0x68, 0x180005ee8 vmovdqu ymm4, cs:ymmword_1801446A0 ; +0x6a, 0x180005eea nop dword ptr [rax+00h] ; +0x72, 0x180005ef2 nop word ptr [rax+rax+00000000h] ; +0x76, 0x180005ef6 vmovups ymm2, ymmword ptr [r8] ; +0x80, 0x180005f00 vmovups ymm0, ymmword ptr [r9-20h] ; +0x85, 0x180005f05 vmulps ymm1, ymm0, ymmword ptr [rdx-20h] ; +0x8b, 0x180005f0b sub r9, 20h ; ' ' ; +0x90, 0x180005f10 sub rdx, 20h ; ' ' ; +0x94, 0x180005f14 vpermps ymm3, ymm4, ymm1 ; +0x98, 0x180005f18 vfmadd231ps ymm3, ymm2, ymmword ptr [rax] ; +0x9d, 0x180005f1d vmovups ymmword ptr [rcx], ymm3 ; +0xa2, 0x180005f22 add rcx, 20h ; ' ' ; +0xa6, 0x180005f26 add r8, 20h ; ' ' ; +0xaa, 0x180005f2a add rax, 20h ; ' ' ; +0xae, 0x180005f2e sub r11d, 1 ; +0xb2, 0x180005f32 jnz short loc_180005F00 ; +0xb6, 0x180005f36 and r10d, 7 ; +0xb8, 0x180005f38 jz short loc_180005F72 ; +0xbc, 0x180005f3c xchg ax, ax ; +0xbe, 0x180005f3e vmovss xmm0, dword ptr [r8] ; +0xc0, 0x180005f40 vmulss xmm2, xmm0, dword ptr [rax] ; +0xc5, 0x180005f45 vmovss xmm1, dword ptr [rdx-4] ; +0xc9, 0x180005f49 vfmadd231ss xmm2, xmm1, dword ptr [r9-4] ; +0xce, 0x180005f4e sub rdx, 4 ; +0xd4, 0x180005f54 sub r9, 4 ; +0xd8, 0x180005f58 vmovss dword ptr [rcx], xmm2 ; +0xdc, 0x180005f5c add rcx, 4 ; +0xe0, 0x180005f60 add r8, 4 ; +0xe4, 0x180005f64 add rax, 4 ; +0xe8, 0x180005f68 sub r10d, 1 ; +0xec, 0x180005f6c jnz short loc_180005F40 ; +0xf0, 0x180005f70 mov r10d, [rsp+arg_38] ; +0xf2, 0x180005f72 mov r11d, r10d ; +0xf7, 0x180005f77 sar r11d, 3 ; +0xfa, 0x180005f7a test r11d, r11d ; +0xfe, 0x180005f7e jz short loc_180005FC4 ; +0x101, 0x180005f81 vmovdqu ymm3, cs:ymmword_1801446A0 ; +0x103, 0x180005f83 nop dword ptr [rax+rax+00h] ; +0x10b, 0x180005f8b vpermps ymm0, ymm3, ymmword ptr [rax-20h] ; +0x110, 0x180005f90 vmulps ymm2, ymm0, ymmword ptr [r8] ; +0x116, 0x180005f96 vpermps ymm1, ymm3, ymmword ptr [rdx-20h] ; +0x11b, 0x180005f9b vfmsub231ps ymm2, ymm1, ymmword ptr [r9] ; +0x121, 0x180005fa1 sub rax, 20h ; ' ' ; +0x126, 0x180005fa6 sub rdx, 20h ; ' ' ; +0x12a, 0x180005faa vmovups ymmword ptr [rcx], ymm2 ; +0x12e, 0x180005fae add rcx, 20h ; ' ' ; +0x132, 0x180005fb2 add r8, 20h ; ' ' ; +0x136, 0x180005fb6 add r9, 20h ; ' ' ; +0x13a, 0x180005fba sub r11d, 1 ; +0x13e, 0x180005fbe jnz short loc_180005F90 ; +0x142, 0x180005fc2 and r10d, 7 ; +0x144, 0x180005fc4 jz short loc_180005FFC ; +0x148, 0x180005fc8 sub r9, rcx ; +0x14a, 0x180005fca sub rdx, rax ; +0x14d, 0x180005fcd sub r8, rcx ; +0x150, 0x180005fd0 vmovss xmm0, dword ptr [r8+rcx] ; +0x153, 0x180005fd3 vmulss xmm2, xmm0, dword ptr [rax-4] ; +0x159, 0x180005fd9 vmovss xmm1, dword ptr [rdx+rax-4] ; +0x15e, 0x180005fde vfmsub231ss xmm2, xmm1, dword ptr [r9+rcx] ; +0x164, 0x180005fe4 sub rax, 4 ; +0x16a, 0x180005fea vmovss dword ptr [rcx], xmm2 ; +0x16e, 0x180005fee add rcx, 4 ; +0x172, 0x180005ff2 sub r10d, 1 ; +0x176, 0x180005ff6 jnz short loc_180005FD3 ; +0x17a, 0x180005ffa mov edx, [rsp+arg_40] ; +0x17c, 0x180005ffc mov r8d, edx ; +0x180, 0x180006000 sar r8d, 3 ; +0x183, 0x180006003 test r8d, r8d ; +0x187, 0x180006007 jz short loc_18000603C ; +0x18a, 0x18000600a vmovdqu ymm2, cs:ymmword_1801446A0 ; +0x18c, 0x18000600c vmovups ymm3, cs:ymmword_1801446C0 ; +0x194, 0x180006014 nop dword ptr [rax+00h] ; +0x19c, 0x18000601c vpermps ymm0, ymm2, ymmword ptr [rax-20h] ; +0x1a0, 0x180006020 sub rax, 20h ; ' ' ; +0x1a6, 0x180006026 vxorps ymm1, ymm0, ymm3 ; +0x1aa, 0x18000602a vmovups ymmword ptr [rcx], ymm1 ; +0x1ae, 0x18000602e add rcx, 20h ; ' ' ; +0x1b2, 0x180006032 sub r8d, 1 ; +0x1b6, 0x180006036 jnz short loc_180006020 ; +0x1ba, 0x18000603a and edx, 7 ; +0x1bc, 0x18000603c jz short loc_18000606A ; +0x1bf, 0x18000603f vmovss xmm2, dword ptr cs:xmmword_180144610 ; +0x1c1, 0x180006041 nop dword ptr [rax+00000000h] ; +0x1c9, 0x180006049 lea rax, [rax-4] ; +0x1d0, 0x180006050 lea rcx, [rcx+4] ; +0x1d4, 0x180006054 vmovss xmm0, dword ptr [rax] ; +0x1d8, 0x180006058 vxorps xmm1, xmm0, xmm2 ; +0x1dc, 0x18000605c vmovss dword ptr [rcx-4], xmm1 ; +0x1e0, 0x180006060 sub edx, 1 ; +0x1e5, 0x180006065 jnz short loc_180006050 ; +0x1e8, 0x180006068 vzeroupper ; +0x1ea, 0x18000606a retn ; +0x1ed, 0x18000606d