{"type": "func", "start": 6442472736, "end": 6442475134, "name": "sub_180005520", "pseudocode": "// \n// sub_180005520 from 0x180005520 to 0x180005e7e (2398 bytes)\n// \n// 5 xrefs:\n// > sub_180003D30 @ 0x180003e52\n// > <???> @ 0x18017d730\n// > <???> @ 0x18017d75c\n// > <???> @ 0x18017d76c\n// > <???> @ 0x1801f62dc\n// \n// This function is hookable on this platform!\n// \n// Using BromaIDA 8.0.0 @ https://github.com/Stazzical/BromaIDA\n// Using bindings at commit ba9f177b at Thu Jul 16 22:52:06 2026 from https://github.com/geode-sdk/bindings\n// \n\n__int64 __fastcall sub_180005520(\n        __int64 a1,\n        float *a2,\n        __int64 a3,\n        _OWORD *a4,\n        int a5,\n        int a6,\n        int a7,\n        int a8,\n        int a9,\n        int a10,\n        int a11)\n{\n  int v20; // esi\n  __int64 v22; // r9\n  __int64 v23; // r10\n  __int64 result; // rax\n  char v26; // r14\n  int v27; // eax\n  int v28; // r15d\n  int v29; // r8d\n  __int64 v30; // rdx\n  __int64 v31; // r15\n  int v32; // r14d\n  int i; // r14d\n  int v54; // r8d\n  int *v55; // rdx\n  int v56; // eax\n  char v57; // r13\n  int v58; // r12d\n  int v59; // edx\n  __int64 v60; // rax\n  int v63; // r15d\n  __int64 v65; // rdi\n  __int64 v66; // rsi\n  __int64 v69; // r13\n  int j; // r13d\n  int v96; // r8d\n  __int64 v97; // rax\n  __int64 v98; // rdx\n  char v101; // r14\n  int v103; // r8d\n  __int64 v104; // rdx\n  int v107; // r15d\n  __int64 v108; // r8\n  __int64 v111; // r14\n  int v136; // r14d\n  __int64 v138; // r9\n  int v140; // r8d\n  char *v142; // rdx\n  int v145; // r15d\n  int v147; // edx\n  int v148; // r8d\n  __int64 v150; // rdx\n  int v171; // r14d\n  int v173; // ecx\n  __int64 v176; // [rsp+20h] [rbp-B8h]\n  __int64 v177; // [rsp+28h] [rbp-B0h]\n  __int64 v178; // [rsp+30h] [rbp-A8h]\n  __int64 v179; // [rsp+60h] [rbp-78h]\n  __int64 v180; // [rsp+60h] [rbp-78h]\n  __int64 v181; // [rsp+68h] [rbp-70h]\n  __int64 v182; // [rsp+70h] [rbp-68h]\n  int v186; // [rsp+E0h] [rbp+8h]\n  int v187; // [rsp+E0h] [rbp+8h]\n  __int64 v188; // [rsp+F0h] [rbp+18h]\n  int v189; // [rsp+100h] [rbp+28h]\n  int v190; // [rsp+100h] [rbp+28h]\n  int v191; // [rsp+100h] [rbp+28h]\n  int v192; // [rsp+108h] [rbp+30h]\n\n  _R11 = a2;\n  _RBX = a4;\n  v20 = a7;\n  _RDI = a3;\n  v22 = *(_QWORD *)(a1 + 16) + 4LL * a5;\n  v23 = *(_QWORD *)(a1 + 8) + 4LL * a6;\n  v179 = v23;\n  if ( a7 == 1 )\n  {\n    result = sub_180005E80((_DWORD)a2, a3, (_DWORD)_RBX, v22, v23, a8, a9, a10, a11);\n    __asm { vzeroupper }\n  }\n  else if ( a7 == 2 )\n  {\n    result = sub_180006070((_DWORD)a2, a3, (_DWORD)_RBX, v22, v22 + 2048, v23, v23 + 4096, a8, a9, a10, a11);\n    __asm { vzeroupper }\n  }\n  else if ( (a7 & 3) != 0 || (((unsigned __int8)(*(_BYTE *)(a1 + 16) + 4 * a5) | (unsigned __int8)v23) & 0x1F) != 0 )\n  {\n    LODWORD(v178) = a7;\n    LODWORD(v177) = a6;\n    LODWORD(v176) = a5;\n    result = sub_180004520(a1, a2, a3, _RBX, v176, v177, v178, a8, a9, a10, a11);\n    __asm { vzeroupper }\n  }\n  else\n  {\n    _RCX = a7;\n    v26 = a8;\n    v27 = a8 >> 3;\n    v28 = 8 * a7;\n    __asm { vmovaps [rsp+0D8h+var_38], xmm6 }\n    v189 = a8 >> 3;\n    v192 = 8 * a7;\n    if ( a8 >> 3 )\n    {\n      v29 = a7 >> 2;\n      v30 = 4LL * v28;\n      v181 = v30;\n      do\n      {\n        v22 -= 32;\n        v31 = 0;\n        v32 = v29;\n        if ( v29 )\n        {\n          _RDX = &_R11[3 * a7];\n          _R12 = -(__int64)a7;\n          _R8 = v22 + 4096;\n          _R13 = 2LL * a7;\n          _RSI = 3LL * a7;\n          _R10 = -12LL * a7;\n          do\n          {\n            _RAX = v31 + a7;\n            _RDX += 4;\n            v31 += 4;\n            __asm\n            {\n              vmovups ymm0, ymmword ptr [r8-800h]\n              vmovups ymm4, ymmword ptr [r8]\n              vmovups ymm3, ymmword ptr [r8+800h]\n              vmovups ymm1, ymmword ptr [r8-1000h]\n            }\n            _R8 += 0x2000;\n            __asm\n            {\n              vshufps ymm5, ymm1, ymm0, 44h ; 'D'\n              vshufps ymm1, ymm1, ymm0, 0EEh\n              vshufps ymm2, ymm4, ymm3, 44h ; 'D'\n              vshufps ymm0, ymm4, ymm3, 0EEh\n              vshufps ymm6, ymm5, ymm2, 88h\n              vshufps ymm4, ymm5, ymm2, 0DDh\n              vshufps ymm2, ymm1, ymm0, 0DDh\n              vextractf128 xmmword ptr [r10+rdx-10h], ymm2, 1\n              vshufps ymm3, ymm1, ymm0, 88h\n              vextractf128 xmm1, ymm3, 1\n              vmovups xmmword ptr [r11+rax*4], xmm1\n              vextractf128 xmmword ptr [rdx+r12*4-10h], ymm4, 1\n              vextractf128 xmmword ptr [rdx-10h], ymm6, 1\n              vmovups xmmword ptr [rdx+rcx*4-10h], xmm2\n              vmovups xmmword ptr [rdx+rcx*8-10h], xmm3\n              vmovups xmmword ptr [rdx+rsi*4-10h], xmm4\n              vmovups xmmword ptr [rdx+r13*8-10h], xmm6\n            }\n            --v32;\n          }\n          while ( v32 );\n          v27 = v189;\n          v30 = v181;\n          v29 = a7 >> 2;\n        }\n        _R11 = (float *)((char *)_R11 + v30);\n        v189 = --v27;\n      }\n      while ( v27 );\n      v23 = v179;\n      v20 = a7;\n      v26 = a8;\n      v28 = 8 * a7;\n    }\n    for ( i = v26 & 7; i; --i )\n    {\n      v22 -= 4;\n      v54 = v20;\n      if ( v20 )\n      {\n        v55 = (int *)v22;\n        do\n        {\n          v56 = *v55;\n          v55 += 512;\n          *(_DWORD *)_R11++ = v56;\n          --v54;\n        }\n        while ( v54 );\n      }\n    }\n    v57 = a9;\n    v58 = a9 >> 3;\n    __asm\n    {\n      vmovaps [rsp+0D8h+var_48], xmm7\n      vmovaps [rsp+0D8h+var_58], xmm8\n    }\n    v190 = a9 >> 3;\n    if ( a9 >> 3 )\n    {\n      v59 = v20 >> 2;\n      v60 = 4LL * v28;\n      v182 = v60;\n      v186 = v20 >> 2;\n      do\n      {\n        __asm\n        {\n          vmovups ymm6, ymmword ptr [rdi-20h]\n          vmovups ymm7, ymmword ptr [rbx]\n        }\n        _RDI -= 32;\n        v22 -= 32;\n        v188 = _RDI;\n        v63 = v59;\n        if ( v59 )\n        {\n          __asm { vmovdqu ymm8, cs:ymmword_1801446A0 }\n          v65 = 0;\n          v66 = v23 + 0x2000;\n          _RDX = &_R11[3 * a7];\n          _R8 = -(__int64)a7;\n          v69 = v22 + 4096;\n          _R14 = 2LL * a7;\n          _R10 = 3LL * a7;\n          _R12 = -12LL * a7;\n          do\n          {\n            _RAX = v65 + a7;\n            _RDX += 4;\n            v65 += 4;\n            __asm { vmulps  ymm0, ymm6, ymmword ptr [r13-1000h] }\n            v69 += 0x2000;\n            v66 += 0x4000;\n            __asm\n            {\n              vpermps ymm5, ymm8, ymm0\n              vfmadd231ps ymm5, ymm7, ymmword ptr [rsi-6000h]\n              vmulps  ymm0, ymm6, ymmword ptr [r13-2800h]\n              vpermps ymm3, ymm8, ymm0\n              vfmadd231ps ymm3, ymm7, ymmword ptr [rsi-5000h]\n              vmulps  ymm0, ymm6, ymmword ptr [r13-2000h]\n              vshufps ymm2, ymm5, ymm3, 44h ; 'D'\n              vpermps ymm4, ymm8, ymm0\n              vfmadd231ps ymm4, ymm7, ymmword ptr [rsi-4000h]\n              vmulps  ymm0, ymm6, ymmword ptr [r13-1800h]\n              vshufps ymm3, ymm5, ymm3, 0EEh\n              vpermps ymm1, ymm8, ymm0\n              vfmadd231ps ymm1, ymm7, ymmword ptr [rsi-3000h]\n              vshufps ymm0, ymm4, ymm1, 44h ; 'D'\n              vshufps ymm5, ymm2, ymm0, 88h\n              vmovups xmmword ptr [rdx+r12-10h], xmm5\n              vshufps ymm1, ymm4, ymm1, 0EEh\n              vshufps ymm4, ymm2, ymm0, 0DDh\n              vmovups xmmword ptr [r11+rax*4], xmm4\n              vshufps ymm2, ymm3, ymm1, 88h\n              vmovups xmmword ptr [rdx+r8*4-10h], xmm2\n              vshufps ymm3, ymm3, ymm1, 0DDh\n              vmovups xmmword ptr [rdx-10h], xmm3\n              vextractf128 xmmword ptr [rdx+rcx*4-10h], ymm5, 1\n              vextractf128 xmmword ptr [rdx+rcx*8-10h], ymm4, 1\n              vextractf128 xmmword ptr [rdx+r10*4-10h], ymm2, 1\n              vextractf128 xmmword ptr [rdx+r14*8-10h], ymm3, 1\n            }\n            --v63;\n          }\n          while ( v63 );\n          v23 = v179;\n          _RDI = v188;\n          v58 = v190;\n          v60 = v182;\n          v59 = v186;\n        }\n        v23 += 32;\n        _R11 = (float *)((char *)_R11 + v60);\n        _RBX += 2;\n        v179 = v23;\n        v190 = --v58;\n      }\n      while ( v58 );\n      v20 = a7;\n      v57 = a9;\n    }\n    for ( j = v57 & 7; j; --j )\n    {\n      __asm\n      {\n        vmovss  xmm1, dword ptr [rdi-4]\n        vmovss  xmm2, dword ptr [rbx]\n      }\n      _RDI -= 4;\n      v22 -= 4;\n      v96 = v20;\n      if ( v20 )\n      {\n        v97 = v22;\n        v98 = v23;\n        do\n        {\n          __asm\n          {\n            vmulss  xmm0, xmm1, dword ptr [rax]\n            vfmadd231ss xmm0, xmm2, dword ptr [rdx]\n            vmovss  dword ptr [r11], xmm0\n          }\n          ++_R11;\n          v98 += 4096;\n          v97 += 2048;\n          --v96;\n        }\n        while ( v96 );\n      }\n      v23 += 4;\n      _RBX = (_OWORD *)((char *)_RBX + 4);\n    }\n    v101 = a10;\n    result = (unsigned int)(a10 >> 3);\n    v191 = result;\n    if ( (_DWORD)result )\n    {\n      __asm { vmovdqu ymm6, cs:ymmword_1801446A0 }\n      v103 = v20 >> 2;\n      v104 = 4LL * v192;\n      v187 = v20 >> 2;\n      do\n      {\n        __asm\n        {\n          vpermps ymm7, ymm6, ymmword ptr [rdi-20h]\n          vmovups ymm8, ymmword ptr [rbx]\n        }\n        _RDI -= 32;\n        v23 -= 32;\n        v180 = v23;\n        v107 = v103;\n        if ( v103 )\n        {\n          v108 = v23 + 0x2000;\n          _RAX = &_R11[2 * a7];\n          _RDX = -(__int64)a7;\n          v111 = v22 + 4096;\n          _R12 = 2LL * a7;\n          _RSI = 3LL * a7;\n          _R10 = 5LL * a7;\n          _R13 = _RDX;\n          do\n          {\n            _RAX += 4;\n            v111 += 0x2000;\n            __asm { vpermps ymm0, ymm6, ymmword ptr [r8-2000h] }\n            v108 += 0x4000;\n            __asm\n            {\n              vmulps  ymm5, ymm0, ymm8\n              vfmsub231ps ymm5, ymm7, ymmword ptr [r14-3000h]\n              vpermps ymm0, ymm6, ymmword ptr [r8-5000h]\n              vmulps  ymm3, ymm0, ymm8\n              vfmsub231ps ymm3, ymm7, ymmword ptr [r14-2800h]\n              vpermps ymm0, ymm6, ymmword ptr [r8-4000h]\n              vshufps ymm2, ymm5, ymm3, 44h ; 'D'\n              vmulps  ymm4, ymm0, ymm8\n              vfmsub231ps ymm4, ymm7, ymmword ptr [r14-2000h]\n              vpermps ymm0, ymm6, ymmword ptr [r8-3000h]\n              vshufps ymm3, ymm5, ymm3, 0EEh\n              vmulps  ymm1, ymm0, ymm8\n              vfmsub231ps ymm1, ymm7, ymmword ptr [r14-1800h]\n              vshufps ymm0, ymm4, ymm1, 44h ; 'D'\n              vshufps ymm5, ymm2, ymm0, 88h\n              vmovups xmmword ptr [rax+r13*8-10h], xmm5\n              vshufps ymm1, ymm4, ymm1, 0EEh\n              vshufps ymm4, ymm2, ymm0, 0DDh\n              vmovups xmmword ptr [rax+rdx*4-10h], xmm4\n              vshufps ymm2, ymm3, ymm1, 88h\n              vmovups xmmword ptr [rax-10h], xmm2\n              vshufps ymm3, ymm3, ymm1, 0DDh\n              vmovups xmmword ptr [rax+rcx*4-10h], xmm3\n              vextractf128 xmmword ptr [rax+rcx*8-10h], ymm5, 1\n              vextractf128 xmmword ptr [rax+rsi*4-10h], ymm4, 1\n              vextractf128 xmmword ptr [rax+r12*8-10h], ymm2, 1\n              vextractf128 xmmword ptr [rax+r10*4-10h], ymm3, 1\n            }\n            --v107;\n          }\n          while ( v107 );\n          v23 = v180;\n          LODWORD(result) = v191;\n          v104 = 4LL * v192;\n          v103 = v187;\n        }\n        _R11 = (float *)((char *)_R11 + v104);\n        v22 += 32;\n        _RBX += 2;\n        result = (unsigned int)(result - 1);\n        v191 = result;\n      }\n      while ( (_DWORD)result );\n      v20 = a7;\n      v101 = a10;\n    }\n    v136 = v101 & 7;\n    if ( v136 )\n    {\n      _RDI = _RDI - v23;\n      v138 = v22 - (_QWORD)_RBX;\n      do\n      {\n        __asm { vmovss  xmm2, dword ptr [rbx] }\n        result = v23;\n        v140 = v20;\n        v23 -= 4;\n        __asm { vmovss  xmm1, dword ptr [rax+rdi-4] }\n        if ( v20 )\n        {\n          result = v23;\n          v142 = (char *)_RBX + v138;\n          do\n          {\n            __asm\n            {\n              vmulss  xmm0, xmm2, dword ptr [rax]\n              vfmsub231ss xmm0, xmm1, dword ptr [rdx]\n              vmovss  dword ptr [r11], xmm0\n            }\n            ++_R11;\n            v142 += 2048;\n            result += 4096;\n            --v140;\n          }\n          while ( v140 );\n        }\n        _RBX = (_OWORD *)((char *)_RBX + 4);\n        --v136;\n      }\n      while ( v136 );\n    }\n    v145 = a11 >> 3;\n    if ( a11 >> 3 )\n    {\n      __asm { vmovups ymm8, cs:ymmword_1801446E0 }\n      v147 = v20 >> 2;\n      result = 32LL * v20;\n      do\n      {\n        v23 -= 32;\n        v148 = v147;\n        if ( v147 )\n        {\n          _RAX = &_R11[2 * a7];\n          v150 = v23 + 0x2000;\n          _R9 = -(__int64)a7;\n          _R12 = 3LL * a7;\n          _RBX = 2LL * a7;\n          _R13 = 5LL * a7;\n          _RDI = _R9;\n          do\n          {\n            _RAX += 4;\n            __asm\n            {\n              vmulps  ymm4, ymm8, ymmword ptr [rdx-2000h]\n              vmulps  ymm0, ymm8, ymmword ptr [rdx-1000h]\n              vmulps  ymm2, ymm8, ymmword ptr [rdx]\n              vmulps  ymm1, ymm8, ymmword ptr [rdx+1000h]\n            }\n            v150 += 0x4000;\n            __asm\n            {\n              vshufps ymm3, ymm4, ymm0, 44h ; 'D'\n              vshufps ymm5, ymm4, ymm0, 0EEh\n              vshufps ymm0, ymm2, ymm1, 44h ; 'D'\n              vshufps ymm7, ymm3, ymm0, 88h\n              vshufps ymm6, ymm3, ymm0, 0DDh\n              vshufps ymm2, ymm2, ymm1, 0EEh\n              vshufps ymm3, ymm5, ymm2, 0DDh\n              vextractf128 xmmword ptr [rax+rdi*8-10h], ymm3, 1\n              vshufps ymm4, ymm5, ymm2, 88h\n              vextractf128 xmmword ptr [rax+r9*4-10h], ymm4, 1\n              vextractf128 xmmword ptr [rax-10h], ymm6, 1\n              vextractf128 xmmword ptr [rax+rcx*4-10h], ymm7, 1\n              vmovups xmmword ptr [rax+rcx*8-10h], xmm3\n              vmovups xmmword ptr [rax+r12*4-10h], xmm4\n              vmovups xmmword ptr [rax+rbx*8-10h], xmm6\n              vmovups xmmword ptr [rax+r13*4-10h], xmm7\n            }\n            --v148;\n          }\n          while ( v148 );\n          result = 32LL * v20;\n          v147 = v20 >> 2;\n        }\n        _R11 = (float *)((char *)_R11 + result);\n        --v145;\n      }\n      while ( v145 );\n    }\n    __asm\n    {\n      vmovaps xmm8, [rsp+0D8h+var_58]\n      vmovaps xmm7, [rsp+0D8h+var_48]\n      vmovaps xmm6, [rsp+0D8h+var_38]\n    }\n    v171 = a11 & 7;\n    if ( (a11 & 7) != 0 )\n    {\n      __asm { vmovss  xmm2, dword ptr cs:xmmword_180144610 }\n      do\n      {\n        v23 -= 4;\n        v173 = v20;\n        if ( v20 )\n        {\n          result = v23;\n          do\n          {\n            __asm\n            {\n              vmovss  xmm0, dword ptr [rax]\n              vxorps  xmm1, xmm0, xmm2\n              vmovss  dword ptr [r11], xmm1\n            }\n            ++_R11;\n            result += 4096;\n            --v173;\n          }\n          while ( v173 );\n        }\n        --v171;\n      }\n      while ( v171 );\n    }\n    __asm { vzeroupper }\n  }\n  return result;\n}", "assembly": "; \n; sub_180005520 from 0x180005520 to 0x180005e7e (2398 bytes)\n; \n; 5 xrefs:\n; > sub_180003D30 @ 0x180003e52\n; > <???> @ 0x18017d730\n; > <???> @ 0x18017d75c\n; > <???> @ 0x18017d76c\n; > <???> @ 0x1801f62dc\n; \n; This function is hookable on this platform!\n; \n; Using BromaIDA 8.0.0 @ https:;github.com/Stazzical/BromaIDA\n; Using bindings at commit ba9f177b at Thu Jul 16 22:52:06 2026 from https:;github.com/geode-sdk/bindings\n; \n\npush    rbx                                                            ; +0x0, 0x180005520\npush    rsi                                                            ; +0x2, 0x180005522\npush    rdi                                                            ; +0x3, 0x180005523\nsub     rsp, 0C0h                                                      ; +0x4, 0x180005524\nmov     rax, [rcx+10h]                                                 ; +0xb, 0x18000552b\nmov     r11, rdx                                                       ; +0xf, 0x18000552f\nmovsxd  rdx, [rsp+0D8h+arg_20]                                         ; +0x12, 0x180005532\nmov     rbx, r9                                                        ; +0x1a, 0x18000553a\nmovsxd  rsi, [rsp+0D8h+arg_30]                                         ; +0x1d, 0x18000553d\nmov     rdi, r8                                                        ; +0x25, 0x180005545\nmovsxd  r8, [rsp+0D8h+arg_28]                                          ; +0x28, 0x180005548\nlea     r9, [rax+rdx*4]                                                ; +0x30, 0x180005550\nmov     rax, [rcx+8]                                                   ; +0x34, 0x180005554\nlea     r10, [rax+r8*4]                                                ; +0x38, 0x180005558\nmov     [rsp+0D8h+var_78], r10                                         ; +0x3c, 0x18000555c\ncmp     esi, 1                                                         ; +0x41, 0x180005561\njnz     short loc_1800055B3                                            ; +0x44, 0x180005564\nmov     eax, [rsp+0D8h+arg_50]                                         ; +0x46, 0x180005566\nmov     r8, rbx                                                        ; +0x4d, 0x18000556d\nmov     [rsp+0D8h+var_98], eax                                         ; +0x50, 0x180005570\nmov     rdx, rdi                                                       ; +0x54, 0x180005574\nmov     eax, [rsp+0D8h+arg_48]                                         ; +0x57, 0x180005577\nmov     rcx, r11                                                       ; +0x5e, 0x18000557e\nmov     [rsp+0D8h+var_A0], eax                                         ; +0x61, 0x180005581\nmov     eax, [rsp+0D8h+arg_40]                                         ; +0x65, 0x180005585\nmov     dword ptr [rsp+0D8h+var_A8], eax                               ; +0x6c, 0x18000558c\nmov     eax, [rsp+0D8h+arg_38]                                         ; +0x70, 0x180005590\nmov     dword ptr [rsp+0D8h+var_B0], eax                               ; +0x77, 0x180005597\nmov     [rsp+0D8h+var_B8], r10                                         ; +0x7b, 0x18000559b\ncall    sub_180005E80                                                  ; +0x80, 0x1800055a0\nvzeroupper                                                             ; +0x85, 0x1800055a5\nadd     rsp, 0C0h                                                      ; +0x88, 0x1800055a8\npop     rdi                                                            ; +0x8f, 0x1800055af\npop     rsi                                                            ; +0x90, 0x1800055b0\npop     rbx                                                            ; +0x91, 0x1800055b1\nretn                                                                   ; +0x92, 0x1800055b2\ncmp     esi, 2                                                         ; +0x93, 0x1800055b3\njnz     short loc_18000561D                                            ; +0x96, 0x1800055b6\nmov     eax, [rsp+0D8h+arg_50]                                         ; +0x98, 0x1800055b8\nlea     rcx, [r10+1000h]                                               ; +0x9f, 0x1800055bf\nmov     [rsp+0D8h+var_88], eax                                         ; +0xa6, 0x1800055c6\nlea     rdx, [r9+800h]                                                 ; +0xaa, 0x1800055ca\nmov     eax, [rsp+0D8h+arg_48]                                         ; +0xb1, 0x1800055d1\nmov     r8, rbx                                                        ; +0xb8, 0x1800055d8\nmov     [rsp+0D8h+var_90], eax                                         ; +0xbb, 0x1800055db\nmov     eax, [rsp+0D8h+arg_40]                                         ; +0xbf, 0x1800055df\nmov     [rsp+0D8h+var_98], eax                                         ; +0xc6, 0x1800055e6\nmov     eax, [rsp+0D8h+arg_38]                                         ; +0xca, 0x1800055ea\nmov     [rsp+0D8h+var_A0], eax                                         ; +0xd1, 0x1800055f1\nmov     [rsp+0D8h+var_A8], rcx                                         ; +0xd5, 0x1800055f5\nmov     rcx, r11                                                       ; +0xda, 0x1800055fa\nmov     [rsp+0D8h+var_B0], r10                                         ; +0xdd, 0x1800055fd\nmov     [rsp+0D8h+var_B8], rdx                                         ; +0xe2, 0x180005602\nmov     rdx, rdi                                                       ; +0xe7, 0x180005607\ncall    sub_180006070                                                  ; +0xea, 0x18000560a\nvzeroupper                                                             ; +0xef, 0x18000560f\nadd     rsp, 0C0h                                                      ; +0xf2, 0x180005612\npop     rdi                                                            ; +0xf9, 0x180005619\npop     rsi                                                            ; +0xfa, 0x18000561a\npop     rbx                                                            ; +0xfb, 0x18000561b\nretn                                                                   ; +0xfc, 0x18000561c\ntest    sil, 3                                                         ; +0xfd, 0x18000561d\njnz     loc_180005E29                                                  ; +0x101, 0x180005621\nmovzx   eax, r10b                                                      ; +0x107, 0x180005627\nor      al, r9b                                                        ; +0x10b, 0x18000562b\ntest    al, 1Fh                                                        ; +0x10e, 0x18000562e\njnz     loc_180005E29                                                  ; +0x110, 0x180005630\nmov     [rsp+0D8h+arg_8], r12                                          ; +0x116, 0x180005636\nmov     rcx, rsi                                                       ; +0x11e, 0x18000563e\nmov     [rsp+0D8h+arg_18], r13                                         ; +0x121, 0x180005641\nmov     [rsp+0D8h+var_20], r14                                         ; +0x129, 0x180005649\nmov     r14d, [rsp+0D8h+arg_38]                                        ; +0x131, 0x180005651\nmov     eax, r14d                                                      ; +0x139, 0x180005659\nsar     eax, 3                                                         ; +0x13c, 0x18000565c\nmov     [rsp+0D8h+var_28], r15                                         ; +0x13f, 0x18000565f\nlea     r15d, ds:0[rsi*8]                                              ; +0x147, 0x180005667\nvmovaps [rsp+0D8h+var_38], xmm6                                        ; +0x14f, 0x18000566f\nmov     [rsp+0D8h+arg_20], eax                                         ; +0x158, 0x180005678\nmov     [rsp+0D8h+arg_28], r15d                                        ; +0x15f, 0x18000567f\ntest    eax, eax                                                       ; +0x167, 0x180005687\njz      loc_1800057D4                                                  ; +0x169, 0x180005689\nmov     r8d, esi                                                       ; +0x16f, 0x18000568f\nmovsxd  rdx, r15d                                                      ; +0x172, 0x180005692\nsar     r8d, 2                                                         ; +0x175, 0x180005695\nshl     rdx, 2                                                         ; +0x179, 0x180005699\nmov     [rsp+0D8h+var_70], rdx                                         ; +0x17d, 0x18000569d\nmov     dword ptr [rsp+0D8h+arg_0], r8d                                ; +0x182, 0x1800056a2\nnop     word ptr [rax+rax+00h]                                         ; +0x18a, 0x1800056aa\nsub     r9, 20h ; ' '                                                  ; +0x190, 0x1800056b0\nxor     r15d, r15d                                                     ; +0x194, 0x1800056b4\nmov     r14d, r8d                                                      ; +0x197, 0x1800056b7\ntest    r8d, r8d                                                       ; +0x19a, 0x1800056ba\njz      loc_1800057A5                                                  ; +0x19d, 0x1800056bd\nmov     r12, rcx                                                       ; +0x1a3, 0x1800056c3\nlea     rax, [rcx+rcx*2]                                               ; +0x1a6, 0x1800056c6\nmov     r13, rcx                                                       ; +0x1aa, 0x1800056ca\nlea     rdx, [r11+rax*4]                                               ; +0x1ad, 0x1800056cd\nneg     r12                                                            ; +0x1b1, 0x1800056d1\nlea     r8, [r9+1000h]                                                 ; +0x1b4, 0x1800056d4\nadd     r13, r13                                                       ; +0x1bb, 0x1800056db\nlea     rsi, [rcx+rcx*2]                                               ; +0x1be, 0x1800056de\nimul    r10, rcx, -0Ch                                                 ; +0x1c2, 0x1800056e2\nnop     word ptr [rax+rax+00000000h]                                   ; +0x1c6, 0x1800056e6\nlea     rax, [r15+rcx]                                                 ; +0x1d0, 0x1800056f0\nlea     rdx, [rdx+10h]                                                 ; +0x1d4, 0x1800056f4\nlea     r15, [r15+4]                                                   ; +0x1d8, 0x1800056f8\nvmovups ymm0, ymmword ptr [r8-800h]                                    ; +0x1dc, 0x1800056fc\nvmovups ymm4, ymmword ptr [r8]                                         ; +0x1e5, 0x180005705\nvmovups ymm3, ymmword ptr [r8+800h]                                    ; +0x1ea, 0x18000570a\nvmovups ymm1, ymmword ptr [r8-1000h]                                   ; +0x1f3, 0x180005713\nlea     r8, [r8+2000h]                                                 ; +0x1fc, 0x18000571c\nvshufps ymm5, ymm1, ymm0, 44h ; 'D'                                    ; +0x203, 0x180005723\nvshufps ymm1, ymm1, ymm0, 0EEh                                         ; +0x208, 0x180005728\nvshufps ymm2, ymm4, ymm3, 44h ; 'D'                                    ; +0x20d, 0x18000572d\nvshufps ymm0, ymm4, ymm3, 0EEh                                         ; +0x212, 0x180005732\nvshufps ymm6, ymm5, ymm2, 88h                                          ; +0x217, 0x180005737\nvshufps ymm4, ymm5, ymm2, 0DDh                                         ; +0x21c, 0x18000573c\nvshufps ymm2, ymm1, ymm0, 0DDh                                         ; +0x221, 0x180005741\nvextractf128 xmmword ptr [r10+rdx-10h], ymm2, 1                        ; +0x226, 0x180005746\nvshufps ymm3, ymm1, ymm0, 88h                                          ; +0x22e, 0x18000574e\nvextractf128 xmm1, ymm3, 1                                             ; +0x233, 0x180005753\nvmovups xmmword ptr [r11+rax*4], xmm1                                  ; +0x239, 0x180005759\nvextractf128 xmmword ptr [rdx+r12*4-10h], ymm4, 1                      ; +0x23f, 0x18000575f\nvextractf128 xmmword ptr [rdx-10h], ymm6, 1                            ; +0x247, 0x180005767\nvmovups xmmword ptr [rdx+rcx*4-10h], xmm2                              ; +0x24e, 0x18000576e\nvmovups xmmword ptr [rdx+rcx*8-10h], xmm3                              ; +0x254, 0x180005774\nvmovups xmmword ptr [rdx+rsi*4-10h], xmm4                              ; +0x25a, 0x18000577a\nvmovups xmmword ptr [rdx+r13*8-10h], xmm6                              ; +0x260, 0x180005780\nsub     r14d, 1                                                        ; +0x267, 0x180005787\njnz     loc_1800056F0                                                  ; +0x26b, 0x18000578b\nmov     eax, [rsp+0D8h+arg_20]                                         ; +0x271, 0x180005791\nmov     rdx, [rsp+0D8h+var_70]                                         ; +0x278, 0x180005798\nmov     r8d, dword ptr [rsp+0D8h+arg_0]                                ; +0x27d, 0x18000579d\nadd     r11, rdx                                                       ; +0x285, 0x1800057a5\nsub     eax, 1                                                         ; +0x288, 0x1800057a8\nmov     [rsp+0D8h+arg_20], eax                                         ; +0x28b, 0x1800057ab\njnz     loc_1800056B0                                                  ; +0x292, 0x1800057b2\nmov     r10, [rsp+0D8h+var_78]                                         ; +0x298, 0x1800057b8\nmov     esi, [rsp+0D8h+arg_30]                                         ; +0x29d, 0x1800057bd\nmov     r14d, [rsp+0D8h+arg_38]                                        ; +0x2a4, 0x1800057c4\nmov     r15d, [rsp+0D8h+arg_28]                                        ; +0x2ac, 0x1800057cc\nand     r14d, 7                                                        ; +0x2b4, 0x1800057d4\njz      short loc_18000580C                                            ; +0x2b8, 0x1800057d8\nnop     word ptr [rax+rax+00h]                                         ; +0x2ba, 0x1800057da\nsub     r9, 4                                                          ; +0x2c0, 0x1800057e0\nmov     r8d, esi                                                       ; +0x2c4, 0x1800057e4\ntest    esi, esi                                                       ; +0x2c7, 0x1800057e7\njz      short loc_180005806                                            ; +0x2c9, 0x1800057e9\nmov     rdx, r9                                                        ; +0x2cb, 0x1800057eb\nxchg    ax, ax                                                         ; +0x2ce, 0x1800057ee\nmov     eax, [rdx]                                                     ; +0x2d0, 0x1800057f0\nlea     rdx, [rdx+800h]                                                ; +0x2d2, 0x1800057f2\nmov     [r11], eax                                                     ; +0x2d9, 0x1800057f9\nadd     r11, 4                                                         ; +0x2dc, 0x1800057fc\nsub     r8d, 1                                                         ; +0x2e0, 0x180005800\njnz     short loc_1800057F0                                            ; +0x2e4, 0x180005804\nsub     r14d, 1                                                        ; +0x2e6, 0x180005806\njnz     short loc_1800057E0                                            ; +0x2ea, 0x18000580a\nmov     r13d, [rsp+0D8h+arg_40]                                        ; +0x2ec, 0x18000580c\nmov     r12d, r13d                                                     ; +0x2f4, 0x180005814\nsar     r12d, 3                                                        ; +0x2f7, 0x180005817\nvmovaps [rsp+0D8h+var_48], xmm7                                        ; +0x2fb, 0x18000581b\nvmovaps [rsp+0D8h+var_58], xmm8                                        ; +0x304, 0x180005824\nmov     [rsp+0D8h+arg_20], r12d                                        ; +0x30d, 0x18000582d\ntest    r12d, r12d                                                     ; +0x315, 0x180005835\njz      loc_1800059F7                                                  ; +0x318, 0x180005838\nmov     edx, esi                                                       ; +0x31e, 0x18000583e\nmovsxd  rax, r15d                                                      ; +0x320, 0x180005840\nsar     edx, 2                                                         ; +0x323, 0x180005843\nshl     rax, 2                                                         ; +0x326, 0x180005846\nmov     [rsp+0D8h+var_68], rax                                         ; +0x32a, 0x18000584a\nmov     dword ptr [rsp+0D8h+arg_0], edx                                ; +0x32f, 0x18000584f\nnop     word ptr [rax+rax+00000000h]                                   ; +0x336, 0x180005856\nvmovups ymm6, ymmword ptr [rdi-20h]                                    ; +0x340, 0x180005860\nvmovups ymm7, ymmword ptr [rbx]                                        ; +0x345, 0x180005865\nsub     rdi, 20h ; ' '                                                 ; +0x349, 0x180005869\nmov     [rsp+0D8h+var_70], 0                                           ; +0x34d, 0x18000586d\nsub     r9, 20h ; ' '                                                  ; +0x356, 0x180005876\nmov     [rsp+0D8h+arg_10], rdi                                         ; +0x35a, 0x18000587a\nmov     r15d, edx                                                      ; +0x362, 0x180005882\ntest    edx, edx                                                       ; +0x365, 0x180005885\njz      loc_1800059C6                                                  ; +0x367, 0x180005887\nvmovdqu ymm8, cs:ymmword_1801446A0                                     ; +0x36d, 0x18000588d\nmov     rdi, [rsp+0D8h+var_70]                                         ; +0x375, 0x180005895\nlea     rax, [rcx+rcx*2]                                               ; +0x37a, 0x18000589a\nmov     r8, rcx                                                        ; +0x37e, 0x18000589e\nlea     rsi, [r10+2000h]                                               ; +0x381, 0x1800058a1\nmov     r14, rcx                                                       ; +0x388, 0x1800058a8\nlea     rdx, [r11+rax*4]                                               ; +0x38b, 0x1800058ab\nneg     r8                                                             ; +0x38f, 0x1800058af\nlea     r13, [r9+1000h]                                                ; +0x392, 0x1800058b2\nadd     r14, r14                                                       ; +0x399, 0x1800058b9\nlea     r10, [rcx+rcx*2]                                               ; +0x39c, 0x1800058bc\nimul    r12, rcx, -0Ch                                                 ; +0x3a0, 0x1800058c0\nlea     rax, [rdi+rcx]                                                 ; +0x3a4, 0x1800058c4\nlea     rdx, [rdx+10h]                                                 ; +0x3a8, 0x1800058c8\nlea     rdi, [rdi+4]                                                   ; +0x3ac, 0x1800058cc\nvmulps  ymm0, ymm6, ymmword ptr [r13-1000h]                            ; +0x3b0, 0x1800058d0\nlea     r13, [r13+2000h]                                               ; +0x3b9, 0x1800058d9\nlea     rsi, [rsi+4000h]                                               ; +0x3c0, 0x1800058e0\nvpermps ymm5, ymm8, ymm0                                               ; +0x3c7, 0x1800058e7\nvfmadd231ps ymm5, ymm7, ymmword ptr [rsi-6000h]                        ; +0x3cc, 0x1800058ec\nvmulps  ymm0, ymm6, ymmword ptr [r13-2800h]                            ; +0x3d5, 0x1800058f5\nvpermps ymm3, ymm8, ymm0                                               ; +0x3de, 0x1800058fe\nvfmadd231ps ymm3, ymm7, ymmword ptr [rsi-5000h]                        ; +0x3e3, 0x180005903\nvmulps  ymm0, ymm6, ymmword ptr [r13-2000h]                            ; +0x3ec, 0x18000590c\nvshufps ymm2, ymm5, ymm3, 44h ; 'D'                                    ; +0x3f5, 0x180005915\nvpermps ymm4, ymm8, ymm0                                               ; +0x3fa, 0x18000591a\nvfmadd231ps ymm4, ymm7, ymmword ptr [rsi-4000h]                        ; +0x3ff, 0x18000591f\nvmulps  ymm0, ymm6, ymmword ptr [r13-1800h]                            ; +0x408, 0x180005928\nvshufps ymm3, ymm5, ymm3, 0EEh                                         ; +0x411, 0x180005931\nvpermps ymm1, ymm8, ymm0                                               ; +0x416, 0x180005936\nvfmadd231ps ymm1, ymm7, ymmword ptr [rsi-3000h]                        ; +0x41b, 0x18000593b\nvshufps ymm0, ymm4, ymm1, 44h ; 'D'                                    ; +0x424, 0x180005944\nvshufps ymm5, ymm2, ymm0, 88h                                          ; +0x429, 0x180005949\nvmovups xmmword ptr [rdx+r12-10h], xmm5                                ; +0x42e, 0x18000594e\nvshufps ymm1, ymm4, ymm1, 0EEh                                         ; +0x435, 0x180005955\nvshufps ymm4, ymm2, ymm0, 0DDh                                         ; +0x43a, 0x18000595a\nvmovups xmmword ptr [r11+rax*4], xmm4                                  ; +0x43f, 0x18000595f\nvshufps ymm2, ymm3, ymm1, 88h                                          ; +0x445, 0x180005965\nvmovups xmmword ptr [rdx+r8*4-10h], xmm2                               ; +0x44a, 0x18000596a\nvshufps ymm3, ymm3, ymm1, 0DDh                                         ; +0x451, 0x180005971\nvmovups xmmword ptr [rdx-10h], xmm3                                    ; +0x456, 0x180005976\nvextractf128 xmmword ptr [rdx+rcx*4-10h], ymm5, 1                      ; +0x45b, 0x18000597b\nvextractf128 xmmword ptr [rdx+rcx*8-10h], ymm4, 1                      ; +0x463, 0x180005983\nvextractf128 xmmword ptr [rdx+r10*4-10h], ymm2, 1                      ; +0x46b, 0x18000598b\nvextractf128 xmmword ptr [rdx+r14*8-10h], ymm3, 1                      ; +0x473, 0x180005993\nsub     r15d, 1                                                        ; +0x47b, 0x18000599b\njnz     loc_1800058C4                                                  ; +0x47f, 0x18000599f\nmov     r10, [rsp+0D8h+var_78]                                         ; +0x485, 0x1800059a5\nmov     rdi, [rsp+0D8h+arg_10]                                         ; +0x48a, 0x1800059aa\nmov     r12d, [rsp+0D8h+arg_20]                                        ; +0x492, 0x1800059b2\nmov     rax, [rsp+0D8h+var_68]                                         ; +0x49a, 0x1800059ba\nmov     edx, dword ptr [rsp+0D8h+arg_0]                                ; +0x49f, 0x1800059bf\nadd     r10, 20h ; ' '                                                 ; +0x4a6, 0x1800059c6\nadd     r11, rax                                                       ; +0x4aa, 0x1800059ca\nadd     rbx, 20h ; ' '                                                 ; +0x4ad, 0x1800059cd\nmov     [rsp+0D8h+var_78], r10                                         ; +0x4b1, 0x1800059d1\nsub     r12d, 1                                                        ; +0x4b6, 0x1800059d6\nmov     [rsp+0D8h+arg_20], r12d                                        ; +0x4ba, 0x1800059da\njnz     loc_180005860                                                  ; +0x4c2, 0x1800059e2\nmov     esi, [rsp+0D8h+arg_30]                                         ; +0x4c8, 0x1800059e8\nmov     r13d, [rsp+0D8h+arg_40]                                        ; +0x4cf, 0x1800059ef\nand     r13d, 7                                                        ; +0x4d7, 0x1800059f7\njz      short loc_180005A54                                            ; +0x4db, 0x1800059fb\nnop     dword ptr [rax]                                                ; +0x4dd, 0x1800059fd\nvmovss  xmm1, dword ptr [rdi-4]                                        ; +0x4e0, 0x180005a00\nvmovss  xmm2, dword ptr [rbx]                                          ; +0x4e5, 0x180005a05\nsub     rdi, 4                                                         ; +0x4e9, 0x180005a09\nsub     r9, 4                                                          ; +0x4ed, 0x180005a0d\nmov     r8d, esi                                                       ; +0x4f1, 0x180005a11\ntest    esi, esi                                                       ; +0x4f4, 0x180005a14\njz      short loc_180005A46                                            ; +0x4f6, 0x180005a16\nmov     rax, r9                                                        ; +0x4f8, 0x180005a18\nmov     rdx, r10                                                       ; +0x4fb, 0x180005a1b\nxchg    ax, ax                                                         ; +0x4fe, 0x180005a1e\nvmulss  xmm0, xmm1, dword ptr [rax]                                    ; +0x500, 0x180005a20\nvfmadd231ss xmm0, xmm2, dword ptr [rdx]                                ; +0x504, 0x180005a24\nvmovss  dword ptr [r11], xmm0                                          ; +0x509, 0x180005a29\nadd     r11, 4                                                         ; +0x50e, 0x180005a2e\nlea     rdx, [rdx+1000h]                                               ; +0x512, 0x180005a32\nlea     rax, [rax+800h]                                                ; +0x519, 0x180005a39\nsub     r8d, 1                                                         ; +0x520, 0x180005a40\njnz     short loc_180005A20                                            ; +0x524, 0x180005a44\nadd     r10, 4                                                         ; +0x526, 0x180005a46\nadd     rbx, 4                                                         ; +0x52a, 0x180005a4a\nsub     r13d, 1                                                        ; +0x52e, 0x180005a4e\njnz     short loc_180005A00                                            ; +0x532, 0x180005a52\nmov     r14d, [rsp+0D8h+arg_48]                                        ; +0x534, 0x180005a54\nmov     eax, r14d                                                      ; +0x53c, 0x180005a5c\nsar     eax, 3                                                         ; +0x53f, 0x180005a5f\nmov     [rsp+0D8h+arg_20], eax                                         ; +0x542, 0x180005a62\ntest    eax, eax                                                       ; +0x549, 0x180005a69\njz      loc_180005C0B                                                  ; +0x54b, 0x180005a6b\nmovsxd  rdx, [rsp+0D8h+arg_28]                                         ; +0x551, 0x180005a71\nmov     r8d, esi                                                       ; +0x559, 0x180005a79\nvmovdqu ymm6, cs:ymmword_1801446A0                                     ; +0x55c, 0x180005a7c\nsar     r8d, 2                                                         ; +0x564, 0x180005a84\nshl     rdx, 2                                                         ; +0x568, 0x180005a88\nmov     [rsp+0D8h+var_68], rdx                                         ; +0x56c, 0x180005a8c\nmov     dword ptr [rsp+0D8h+arg_0], r8d                                ; +0x571, 0x180005a91\nnop     dword ptr [rax+00000000h]                                      ; +0x579, 0x180005a99\nvpermps ymm7, ymm6, ymmword ptr [rdi-20h]                              ; +0x580, 0x180005aa0\nvmovups ymm8, ymmword ptr [rbx]                                        ; +0x586, 0x180005aa6\nsub     rdi, 20h ; ' '                                                 ; +0x58a, 0x180005aaa\nsub     r10, 20h ; ' '                                                 ; +0x58e, 0x180005aae\nmov     [rsp+0D8h+var_78], r10                                         ; +0x592, 0x180005ab2\nmov     r15d, r8d                                                      ; +0x597, 0x180005ab7\ntest    r8d, r8d                                                       ; +0x59a, 0x180005aba\njz      loc_180005BE1                                                  ; +0x59d, 0x180005abd\nmov     rdx, rcx                                                       ; +0x5a3, 0x180005ac3\nlea     r8, [r10+2000h]                                                ; +0x5a6, 0x180005ac6\nmov     r12, rcx                                                       ; +0x5ad, 0x180005acd\nlea     rax, [r11+rcx*8]                                               ; +0x5b0, 0x180005ad0\nneg     rdx                                                            ; +0x5b4, 0x180005ad4\nlea     r14, [r9+1000h]                                                ; +0x5b7, 0x180005ad7\nadd     r12, r12                                                       ; +0x5be, 0x180005ade\nlea     rsi, [rcx+rcx*2]                                               ; +0x5c1, 0x180005ae1\nmov     r13, rcx                                                       ; +0x5c5, 0x180005ae5\nlea     r10, [rcx+rcx*4]                                               ; +0x5c8, 0x180005ae8\nneg     r13                                                            ; +0x5cc, 0x180005aec\nnop                                                                    ; +0x5cf, 0x180005aef\nlea     rax, [rax+10h]                                                 ; +0x5d0, 0x180005af0\nlea     r14, [r14+2000h]                                               ; +0x5d4, 0x180005af4\nvpermps ymm0, ymm6, ymmword ptr [r8-2000h]                             ; +0x5db, 0x180005afb\nlea     r8, [r8+4000h]                                                 ; +0x5e4, 0x180005b04\nvmulps  ymm5, ymm0, ymm8                                               ; +0x5eb, 0x180005b0b\nvfmsub231ps ymm5, ymm7, ymmword ptr [r14-3000h]                        ; +0x5f0, 0x180005b10\nvpermps ymm0, ymm6, ymmword ptr [r8-5000h]                             ; +0x5f9, 0x180005b19\nvmulps  ymm3, ymm0, ymm8                                               ; +0x602, 0x180005b22\nvfmsub231ps ymm3, ymm7, ymmword ptr [r14-2800h]                        ; +0x607, 0x180005b27\nvpermps ymm0, ymm6, ymmword ptr [r8-4000h]                             ; +0x610, 0x180005b30\nvshufps ymm2, ymm5, ymm3, 44h ; 'D'                                    ; +0x619, 0x180005b39\nvmulps  ymm4, ymm0, ymm8                                               ; +0x61e, 0x180005b3e\nvfmsub231ps ymm4, ymm7, ymmword ptr [r14-2000h]                        ; +0x623, 0x180005b43\nvpermps ymm0, ymm6, ymmword ptr [r8-3000h]                             ; +0x62c, 0x180005b4c\nvshufps ymm3, ymm5, ymm3, 0EEh                                         ; +0x635, 0x180005b55\nvmulps  ymm1, ymm0, ymm8                                               ; +0x63a, 0x180005b5a\nvfmsub231ps ymm1, ymm7, ymmword ptr [r14-1800h]                        ; +0x63f, 0x180005b5f\nvshufps ymm0, ymm4, ymm1, 44h ; 'D'                                    ; +0x648, 0x180005b68\nvshufps ymm5, ymm2, ymm0, 88h                                          ; +0x64d, 0x180005b6d\nvmovups xmmword ptr [rax+r13*8-10h], xmm5                              ; +0x652, 0x180005b72\nvshufps ymm1, ymm4, ymm1, 0EEh                                         ; +0x659, 0x180005b79\nvshufps ymm4, ymm2, ymm0, 0DDh                                         ; +0x65e, 0x180005b7e\nvmovups xmmword ptr [rax+rdx*4-10h], xmm4                              ; +0x663, 0x180005b83\nvshufps ymm2, ymm3, ymm1, 88h                                          ; +0x669, 0x180005b89\nvmovups xmmword ptr [rax-10h], xmm2                                    ; +0x66e, 0x180005b8e\nvshufps ymm3, ymm3, ymm1, 0DDh                                         ; +0x673, 0x180005b93\nvmovups xmmword ptr [rax+rcx*4-10h], xmm3                              ; +0x678, 0x180005b98\nvextractf128 xmmword ptr [rax+rcx*8-10h], ymm5, 1                      ; +0x67e, 0x180005b9e\nvextractf128 xmmword ptr [rax+rsi*4-10h], ymm4, 1                      ; +0x686, 0x180005ba6\nvextractf128 xmmword ptr [rax+r12*8-10h], ymm2, 1                      ; +0x68e, 0x180005bae\nvextractf128 xmmword ptr [rax+r10*4-10h], ymm3, 1                      ; +0x696, 0x180005bb6\nsub     r15d, 1                                                        ; +0x69e, 0x180005bbe\njnz     loc_180005AF0                                                  ; +0x6a2, 0x180005bc2\nmov     r10, [rsp+0D8h+var_78]                                         ; +0x6a8, 0x180005bc8\nmov     eax, [rsp+0D8h+arg_20]                                         ; +0x6ad, 0x180005bcd\nmov     rdx, [rsp+0D8h+var_68]                                         ; +0x6b4, 0x180005bd4\nmov     r8d, dword ptr [rsp+0D8h+arg_0]                                ; +0x6b9, 0x180005bd9\nadd     r11, rdx                                                       ; +0x6c1, 0x180005be1\nadd     r9, 20h ; ' '                                                  ; +0x6c4, 0x180005be4\nadd     rbx, 20h ; ' '                                                 ; +0x6c8, 0x180005be8\nsub     eax, 1                                                         ; +0x6cc, 0x180005bec\nmov     [rsp+0D8h+arg_20], eax                                         ; +0x6cf, 0x180005bef\njnz     loc_180005AA0                                                  ; +0x6d6, 0x180005bf6\nmov     esi, [rsp+0D8h+arg_30]                                         ; +0x6dc, 0x180005bfc\nmov     r14d, [rsp+0D8h+arg_48]                                        ; +0x6e3, 0x180005c03\nand     r14d, 7                                                        ; +0x6eb, 0x180005c0b\njz      short loc_180005C70                                            ; +0x6ef, 0x180005c0f\nsub     rdi, r10                                                       ; +0x6f1, 0x180005c11\nsub     r9, rbx                                                        ; +0x6f4, 0x180005c14\nnop     word ptr [rax+rax+00000000h]                                   ; +0x6f7, 0x180005c17\nvmovss  xmm2, dword ptr [rbx]                                          ; +0x700, 0x180005c20\nmov     rax, r10                                                       ; +0x704, 0x180005c24\nmov     r8d, esi                                                       ; +0x707, 0x180005c27\nsub     r10, 4                                                         ; +0x70a, 0x180005c2a\nvmovss  xmm1, dword ptr [rax+rdi-4]                                    ; +0x70e, 0x180005c2e\ntest    esi, esi                                                       ; +0x714, 0x180005c34\njz      short loc_180005C66                                            ; +0x716, 0x180005c36\nmov     rax, r10                                                       ; +0x718, 0x180005c38\nlea     rdx, [r9+rbx]                                                  ; +0x71b, 0x180005c3b\nnop                                                                    ; +0x71f, 0x180005c3f\nvmulss  xmm0, xmm2, dword ptr [rax]                                    ; +0x720, 0x180005c40\nvfmsub231ss xmm0, xmm1, dword ptr [rdx]                                ; +0x724, 0x180005c44\nvmovss  dword ptr [r11], xmm0                                          ; +0x729, 0x180005c49\nadd     r11, 4                                                         ; +0x72e, 0x180005c4e\nlea     rdx, [rdx+800h]                                                ; +0x732, 0x180005c52\nlea     rax, [rax+1000h]                                               ; +0x739, 0x180005c59\nsub     r8d, 1                                                         ; +0x740, 0x180005c60\njnz     short loc_180005C40                                            ; +0x744, 0x180005c64\nadd     rbx, 4                                                         ; +0x746, 0x180005c66\nsub     r14d, 1                                                        ; +0x74a, 0x180005c6a\njnz     short loc_180005C20                                            ; +0x74e, 0x180005c6e\nmov     r14d, [rsp+0D8h+arg_50]                                        ; +0x750, 0x180005c70\nmov     r15d, r14d                                                     ; +0x758, 0x180005c78\nsar     r15d, 3                                                        ; +0x75b, 0x180005c7b\ntest    r15d, r15d                                                     ; +0x75f, 0x180005c7f\njz      loc_180005D9E                                                  ; +0x762, 0x180005c82\nvmovups ymm8, cs:ymmword_1801446E0                                     ; +0x768, 0x180005c88\nmov     edx, esi                                                       ; +0x770, 0x180005c90\nlea     eax, ds:0[rsi*8]                                               ; +0x772, 0x180005c92\nsar     edx, 2                                                         ; +0x779, 0x180005c99\ncdqe                                                                   ; +0x77c, 0x180005c9c\nshl     rax, 2                                                         ; +0x77e, 0x180005c9e\nmov     [rsp+0D8h+arg_0], rax                                          ; +0x782, 0x180005ca2\nmov     [rsp+0D8h+arg_30], edx                                         ; +0x78a, 0x180005caa\nsub     r10, 20h ; ' '                                                 ; +0x791, 0x180005cb1\nmov     r8d, edx                                                       ; +0x795, 0x180005cb5\ntest    edx, edx                                                       ; +0x798, 0x180005cb8\njz      loc_180005D91                                                  ; +0x79a, 0x180005cba\nmov     r9, rcx                                                        ; +0x7a0, 0x180005cc0\nlea     rax, [r11+rcx*8]                                               ; +0x7a3, 0x180005cc3\nmov     rbx, rcx                                                       ; +0x7a7, 0x180005cc7\nlea     rdx, [r10+2000h]                                               ; +0x7aa, 0x180005cca\nneg     r9                                                             ; +0x7b1, 0x180005cd1\nlea     r12, [rcx+rcx*2]                                               ; +0x7b4, 0x180005cd4\nadd     rbx, rbx                                                       ; +0x7b8, 0x180005cd8\nlea     r13, [rcx+rcx*4]                                               ; +0x7bb, 0x180005cdb\nmov     rdi, rcx                                                       ; +0x7bf, 0x180005cdf\nneg     rdi                                                            ; +0x7c2, 0x180005ce2\nnop     word ptr [rax+rax+00000000h]                                   ; +0x7c5, 0x180005ce5\nlea     rax, [rax+10h]                                                 ; +0x7d0, 0x180005cf0\nvmulps  ymm4, ymm8, ymmword ptr [rdx-2000h]                            ; +0x7d4, 0x180005cf4\nvmulps  ymm0, ymm8, ymmword ptr [rdx-1000h]                            ; +0x7dc, 0x180005cfc\nvmulps  ymm2, ymm8, ymmword ptr [rdx]                                  ; +0x7e4, 0x180005d04\nvmulps  ymm1, ymm8, ymmword ptr [rdx+1000h]                            ; +0x7e8, 0x180005d08\nlea     rdx, [rdx+4000h]                                               ; +0x7f0, 0x180005d10\nvshufps ymm3, ymm4, ymm0, 44h ; 'D'                                    ; +0x7f7, 0x180005d17\nvshufps ymm5, ymm4, ymm0, 0EEh                                         ; +0x7fc, 0x180005d1c\nvshufps ymm0, ymm2, ymm1, 44h ; 'D'                                    ; +0x801, 0x180005d21\nvshufps ymm7, ymm3, ymm0, 88h                                          ; +0x806, 0x180005d26\nvshufps ymm6, ymm3, ymm0, 0DDh                                         ; +0x80b, 0x180005d2b\nvshufps ymm2, ymm2, ymm1, 0EEh                                         ; +0x810, 0x180005d30\nvshufps ymm3, ymm5, ymm2, 0DDh                                         ; +0x815, 0x180005d35\nvextractf128 xmmword ptr [rax+rdi*8-10h], ymm3, 1                      ; +0x81a, 0x180005d3a\nvshufps ymm4, ymm5, ymm2, 88h                                          ; +0x822, 0x180005d42\nvextractf128 xmmword ptr [rax+r9*4-10h], ymm4, 1                       ; +0x827, 0x180005d47\nvextractf128 xmmword ptr [rax-10h], ymm6, 1                            ; +0x82f, 0x180005d4f\nvextractf128 xmmword ptr [rax+rcx*4-10h], ymm7, 1                      ; +0x836, 0x180005d56\nvmovups xmmword ptr [rax+rcx*8-10h], xmm3                              ; +0x83e, 0x180005d5e\nvmovups xmmword ptr [rax+r12*4-10h], xmm4                              ; +0x844, 0x180005d64\nvmovups xmmword ptr [rax+rbx*8-10h], xmm6                              ; +0x84b, 0x180005d6b\nvmovups xmmword ptr [rax+r13*4-10h], xmm7                              ; +0x851, 0x180005d71\nsub     r8d, 1                                                         ; +0x858, 0x180005d78\njnz     loc_180005CF0                                                  ; +0x85c, 0x180005d7c\nmov     rax, [rsp+0D8h+arg_0]                                          ; +0x862, 0x180005d82\nmov     edx, [rsp+0D8h+arg_30]                                         ; +0x86a, 0x180005d8a\nadd     r11, rax                                                       ; +0x871, 0x180005d91\nsub     r15d, 1                                                        ; +0x874, 0x180005d94\njnz     loc_180005CB1                                                  ; +0x878, 0x180005d98\nvmovaps xmm8, [rsp+0D8h+var_58]                                        ; +0x87e, 0x180005d9e\nvmovaps xmm7, [rsp+0D8h+var_48]                                        ; +0x887, 0x180005da7\nvmovaps xmm6, [rsp+0D8h+var_38]                                        ; +0x890, 0x180005db0\nmov     r15, [rsp+0D8h+var_28]                                         ; +0x899, 0x180005db9\nmov     r13, [rsp+0D8h+arg_18]                                         ; +0x8a1, 0x180005dc1\nmov     r12, [rsp+0D8h+arg_8]                                          ; +0x8a9, 0x180005dc9\nand     r14d, 7                                                        ; +0x8b1, 0x180005dd1\njz      short loc_180005E13                                            ; +0x8b5, 0x180005dd5\nvmovss  xmm2, dword ptr cs:xmmword_180144610                           ; +0x8b7, 0x180005dd7\nnop                                                                    ; +0x8bf, 0x180005ddf\nsub     r10, 4                                                         ; +0x8c0, 0x180005de0\nmov     ecx, esi                                                       ; +0x8c4, 0x180005de4\ntest    esi, esi                                                       ; +0x8c6, 0x180005de6\njz      short loc_180005E0D                                            ; +0x8c8, 0x180005de8\nmov     rax, r10                                                       ; +0x8ca, 0x180005dea\nnop     dword ptr [rax]                                                ; +0x8cd, 0x180005ded\nvmovss  xmm0, dword ptr [rax]                                          ; +0x8d0, 0x180005df0\nvxorps  xmm1, xmm0, xmm2                                               ; +0x8d4, 0x180005df4\nvmovss  dword ptr [r11], xmm1                                          ; +0x8d8, 0x180005df8\nadd     r11, 4                                                         ; +0x8dd, 0x180005dfd\nlea     rax, [rax+1000h]                                               ; +0x8e1, 0x180005e01\nsub     ecx, 1                                                         ; +0x8e8, 0x180005e08\njnz     short loc_180005DF0                                            ; +0x8eb, 0x180005e0b\nsub     r14d, 1                                                        ; +0x8ed, 0x180005e0d\njnz     short loc_180005DE0                                            ; +0x8f1, 0x180005e11\nmov     r14, [rsp+0D8h+var_20]                                         ; +0x8f3, 0x180005e13\nvzeroupper                                                             ; +0x8fb, 0x180005e1b\nadd     rsp, 0C0h                                                      ; +0x8fe, 0x180005e1e\npop     rdi                                                            ; +0x905, 0x180005e25\npop     rsi                                                            ; +0x906, 0x180005e26\npop     rbx                                                            ; +0x907, 0x180005e27\nretn                                                                   ; +0x908, 0x180005e28\nmov     eax, [rsp+0D8h+arg_50]                                         ; +0x909, 0x180005e29\nmov     r9, rbx                                                        ; +0x910, 0x180005e30\nmov     [rsp+0D8h+var_88], eax                                         ; +0x913, 0x180005e33\nmov     eax, [rsp+0D8h+arg_48]                                         ; +0x917, 0x180005e37\nmov     [rsp+0D8h+var_90], eax                                         ; +0x91e, 0x180005e3e\nmov     eax, [rsp+0D8h+arg_40]                                         ; +0x922, 0x180005e42\nmov     [rsp+0D8h+var_98], eax                                         ; +0x929, 0x180005e49\nmov     eax, [rsp+0D8h+arg_38]                                         ; +0x92d, 0x180005e4d\nmov     [rsp+0D8h+var_A0], eax                                         ; +0x934, 0x180005e54\nmov     dword ptr [rsp+0D8h+var_A8], esi                               ; +0x938, 0x180005e58\nmov     dword ptr [rsp+0D8h+var_B0], r8d                               ; +0x93c, 0x180005e5c\nmov     r8, rdi                                                        ; +0x941, 0x180005e61\nmov     dword ptr [rsp+0D8h+var_B8], edx                               ; +0x944, 0x180005e64\nmov     rdx, r11                                                       ; +0x948, 0x180005e68\ncall    sub_180004520                                                  ; +0x94b, 0x180005e6b\nvzeroupper                                                             ; +0x950, 0x180005e70\nadd     rsp, 0C0h                                                      ; +0x953, 0x180005e73\npop     rdi                                                            ; +0x95a, 0x180005e7a\npop     rsi                                                            ; +0x95b, 0x180005e7b\npop     rbx                                                            ; +0x95c, 0x180005e7c\nretn                                                                   ; +0x95d, 0x180005e7d", "xrefs": ["sub_180003D30 @ 0x180003e52", "<???> @ 0x18017d730", "<???> @ 0x18017d75c", "<???> @ 0x18017d76c", "<???> @ 0x1801f62dc"], "is_objc": false, "is_arm32": false, "is_arm64": false, "bida_info": "8.0.0 @ https://github.com/Stazzical/BromaIDA", "bindings_info": "commit ba9f177b at Thu Jul 16 22:52:06 2026 from https://github.com/geode-sdk/bindings"}