{"type": "func", "start": 6442462080, "end": 6442463524, "name": "sub_180002B80", "pseudocode": "// \n// sub_180002B80 from 0x180002b80 to 0x180003124 (1444 bytes)\n// \n// 5 xrefs:\n// > sub_180009770 @ 0x180009a89\n// > <???> @ 0x18017d4e0\n// > <???> @ 0x18017d514\n// > <???> @ 0x1801a78a0\n// > <???> @ 0x1801f6144\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_180002B80(__int64 a1, __m128 *a2, __int64 a3, int a4)\n{\n  unsigned int v4; // r14d\n  __m128i v7; // xmm11\n  __m128 v9; // xmm12\n  __m128 v10; // xmm13\n  int v11; // edi\n  int i; // r15d\n  __m128i v13; // xmm0\n  __m128 v14; // xmm2\n  __m128 v15; // xmm1\n  __m128 v16; // xmm0\n  __m128 v17; // xmm2\n  int j; // edi\n  __m128i v19; // xmm6\n  int k; // r15d\n  __m128 v21; // xmm6\n  __m128 v22; // xmm7\n  __m128 v23; // xmm8\n  __m128 v24; // xmm10\n  __m128i v25; // xmm0\n  __m128 v26; // xmm2\n  __m128 v27; // xmm9\n  __m128 v28; // xmm3\n  __m128 v29; // xmm4\n  __m128 v30; // xmm9\n  __m128 v31; // xmm2\n  __m128 v32; // xmm5\n  __m128 v33; // xmm2\n  int m; // edi\n  int v35; // r15d\n  __m128i v36; // xmm0\n  __m128 v37; // xmm3\n  __m128 v38; // xmm4\n  __m128 v39; // xmm2\n  __m128 v40; // xmm9\n  __m128 v41; // xmm7\n  __m128 v42; // xmm1\n  __m128 v43; // xmm5\n  __m128 v44; // xmm8\n  __m128 v45; // xmm9\n  __m128 v46; // xmm6\n  __m128 v47; // xmm3\n  __m128 v48; // xmm7\n  __m128 v49; // xmm4\n  __m128 v50; // xmm8\n  __m128 v51; // xmm2\n  __m128 v52; // xmm6\n  __m128 v53; // xmm0\n  __m128 v54; // xmm0\n  int n; // edi\n  __m128i v56; // xmm2\n  __m128i v57; // xmm2\n  __m128i v59; // [rsp+20h] [rbp-D8h] BYREF\n  __m128i v60; // [rsp+30h] [rbp-C8h] BYREF\n  int v61; // [rsp+118h] [rbp+20h]\n\n  v4 = *(char *)(a1 + 102);\n  v7 = _mm_loadu_si128((const __m128i *)a1);\n  v9 = *(__m128 *)(a1 + 16);\n  v10 = *(__m128 *)(a1 + 32);\n  _mm_prefetch(*(const char **)(a1 + 48), 1);\n  _mm_prefetch(*(const char **)(a1 + 56), 1);\n  v11 = a4 >> 2;\n  v61 = a4 >> 2;\n  switch ( *(_BYTE *)(a1 + 100) )\n  {\n    case 0:\n    case 1:\n      for ( ; v11; --v11 )\n      {\n        *a2 = _mm_add_ps(\n                _mm_add_ps(_mm_mul_ps(_mm_cvtepi32_ps(_mm_and_si128(sub_180002960(a1, a3), v7)), v10), v9),\n                *a2);\n        ++a2;\n      }\n      break;\n    case 2:\n    case 3:\n      for ( i = a4 >> 3; i; --i )\n      {\n        v13 = sub_180002960(a1, a3);\n        v14 = _mm_add_ps(_mm_mul_ps(_mm_cvtepi32_ps(_mm_and_si128(v13, v7)), v10), v9);\n        v15 = _mm_add_ps(_mm_mul_ps(_mm_cvtepi32_ps(_mm_and_si128(_mm_srai_epi32(v13, v4), v7)), v10), v9);\n        v16 = _mm_add_ps(_mm_unpacklo_ps(v14, v15), *a2);\n        v17 = _mm_add_ps(_mm_unpackhi_ps(v14, v15), a2[1]);\n        *a2 = v16;\n        a2[1] = v17;\n        a2 += 2;\n      }\n      for ( j = v11 & 1; j; --j )\n      {\n        v19 = sub_180002760(a1, a3);\n        *a2 = _mm_add_ps(\n                _mm_shuffle_ps(\n                  _mm_add_ps(_mm_mul_ps(_mm_cvtepi32_ps(_mm_and_si128(v19, v7)), v10), v9),\n                  _mm_add_ps(_mm_mul_ps(_mm_cvtepi32_ps(_mm_and_si128(sub_180002760(a1, a3), v7)), v10), v9),\n                  68),\n                *a2);\n        ++a2;\n      }\n      break;\n    case 4:\n    case 5:\n    case 6:\n    case 7:\n      for ( k = a4 >> 4; k; --k )\n      {\n        v21 = *a2;\n        v22 = a2[1];\n        v23 = a2[2];\n        v24 = a2[3];\n        v25 = sub_180002960(a1, a3);\n        v26 = (__m128)_mm_and_si128(_mm_srai_epi32(v25, v4), v7);\n        v27 = (__m128)_mm_and_si128(v25, v7);\n        v28 = (__m128)_mm_and_si128(_mm_srai_epi32(v25, 3 * v4), v7);\n        v29 = _mm_shuffle_ps(v27, v26, 68);\n        v30 = _mm_shuffle_ps(v27, v26, 238);\n        v31 = (__m128)_mm_and_si128(_mm_srai_epi32(v25, 2 * v4), v7);\n        v32 = _mm_shuffle_ps(v31, v28, 238);\n        v33 = _mm_shuffle_ps(v31, v28, 68);\n        *a2 = _mm_add_ps(_mm_add_ps(_mm_mul_ps(_mm_cvtepi32_ps((__m128i)_mm_shuffle_ps(v29, v33, 136)), v10), v9), v21);\n        a2[1] = _mm_add_ps(\n                  _mm_add_ps(_mm_mul_ps(_mm_cvtepi32_ps((__m128i)_mm_shuffle_ps(v29, v33, 221)), v10), v9),\n                  v22);\n        a2[2] = _mm_add_ps(\n                  _mm_add_ps(_mm_mul_ps(_mm_cvtepi32_ps((__m128i)_mm_shuffle_ps(v30, v32, 136)), v10), v9),\n                  v23);\n        a2[3] = _mm_add_ps(\n                  _mm_add_ps(_mm_mul_ps(_mm_cvtepi32_ps((__m128i)_mm_shuffle_ps(v30, v32, 221)), v10), v9),\n                  v24);\n        a2 += 4;\n      }\n      for ( m = v11 & 3; m; --m )\n      {\n        *a2 = _mm_add_ps(\n                _mm_add_ps(_mm_mul_ps(_mm_cvtepi32_ps(_mm_and_si128(sub_180002760(a1, a3), v7)), v10), v9),\n                *a2);\n        ++a2;\n      }\n      break;\n    case 8:\n      v35 = a4 >> 5;\n      if ( a4 >> 5 )\n      {\n        do\n        {\n          v36 = sub_180002960(a1, a3);\n          v37 = (__m128)_mm_and_si128(_mm_srai_epi32(v36, v4), v7);\n          v38 = (__m128)_mm_and_si128(_mm_srai_epi32(v36, 3 * v4), v7);\n          v39 = (__m128)_mm_and_si128(_mm_srai_epi32(v36, 5 * v4), v7);\n          v40 = (__m128)_mm_and_si128(v36, v7);\n          v41 = (__m128)_mm_and_si128(_mm_srai_epi32(v36, 2 * v4), v7);\n          v42 = (__m128)_mm_and_si128(_mm_srai_epi32(v36, 7 * v4), v7);\n          v43 = _mm_shuffle_ps(v40, v37, 68);\n          v44 = (__m128)_mm_and_si128(_mm_srai_epi32(v36, 4 * v4), v7);\n          v45 = _mm_shuffle_ps(v40, v37, 238);\n          v46 = (__m128)_mm_and_si128(_mm_srai_epi32(v36, 6 * v4), v7);\n          v47 = _mm_shuffle_ps(v41, v38, 68);\n          v48 = _mm_shuffle_ps(v41, v38, 238);\n          v49 = _mm_shuffle_ps(v44, v39, 68);\n          v50 = _mm_shuffle_ps(v44, v39, 238);\n          v51 = _mm_shuffle_ps(v46, v42, 68);\n          v52 = _mm_shuffle_ps(v46, v42, 238);\n          *a2 = _mm_add_ps(\n                  _mm_add_ps(_mm_mul_ps(_mm_cvtepi32_ps((__m128i)_mm_shuffle_ps(v43, v47, 136)), v10), v9),\n                  *a2);\n          v53 = _mm_add_ps(\n                  _mm_add_ps(_mm_mul_ps(_mm_cvtepi32_ps((__m128i)_mm_shuffle_ps(v43, v47, 221)), v10), v9),\n                  a2[2]);\n          a2[1] = _mm_add_ps(\n                    _mm_add_ps(_mm_mul_ps(_mm_cvtepi32_ps((__m128i)_mm_shuffle_ps(v49, v51, 136)), v10), v9),\n                    a2[1]);\n          a2[2] = v53;\n          a2[3] = _mm_add_ps(\n                    _mm_add_ps(_mm_mul_ps(_mm_cvtepi32_ps((__m128i)_mm_shuffle_ps(v49, v51, 221)), v10), v9),\n                    a2[3]);\n          a2[4] = _mm_add_ps(\n                    _mm_add_ps(_mm_mul_ps(_mm_cvtepi32_ps((__m128i)_mm_shuffle_ps(v45, v48, 136)), v10), v9),\n                    a2[4]);\n          v54 = _mm_add_ps(\n                  _mm_add_ps(_mm_mul_ps(_mm_cvtepi32_ps((__m128i)_mm_shuffle_ps(v45, v48, 221)), v10), v9),\n                  a2[6]);\n          a2[5] = _mm_add_ps(\n                    _mm_add_ps(_mm_mul_ps(_mm_cvtepi32_ps((__m128i)_mm_shuffle_ps(v50, v52, 136)), v10), v9),\n                    a2[5]);\n          a2[6] = v54;\n          a2[7] = _mm_add_ps(\n                    _mm_add_ps(_mm_mul_ps(_mm_cvtepi32_ps((__m128i)_mm_shuffle_ps(v50, v52, 221)), v10), v9),\n                    a2[7]);\n          a2 += 8;\n          --v35;\n        }\n        while ( v35 );\n        v11 = v61;\n      }\n      for ( n = (v11 >> 1) & 3; n; --n )\n      {\n        sub_180002830(a1, a3, &v59, &v60);\n        v56 = _mm_load_si128(&v60);\n        v59 = _mm_and_si128(_mm_load_si128(&v59), v7);\n        v57 = _mm_and_si128(v56, v7);\n        v60 = v57;\n        *a2 = _mm_add_ps(_mm_add_ps(_mm_mul_ps(_mm_cvtepi32_ps(v59), v10), v9), *a2);\n        a2[1] = _mm_add_ps(_mm_add_ps(_mm_mul_ps(_mm_cvtepi32_ps(v57), v10), v9), a2[1]);\n        a2 += 2;\n      }\n      break;\n    default:\n      return 0;\n  }\n  return 0;\n}", "assembly": "; \n; sub_180002B80 from 0x180002b80 to 0x180003124 (1444 bytes)\n; \n; 5 xrefs:\n; > sub_180009770 @ 0x180009a89\n; > <???> @ 0x18017d4e0\n; > <???> @ 0x18017d514\n; > <???> @ 0x1801a78a0\n; > <???> @ 0x1801f6144\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\nmov     r11, rsp                                                       ; +0x0, 0x180002b80\npush    rbx                                                            ; +0x3, 0x180002b83\npush    rbp                                                            ; +0x4, 0x180002b84\npush    rsi                                                            ; +0x5, 0x180002b85\npush    rdi                                                            ; +0x6, 0x180002b86\npush    r14                                                            ; +0x7, 0x180002b87\nsub     rsp, 0D0h                                                      ; +0x9, 0x180002b89\nmovsx   r14d, byte ptr [rcx+66h]                                       ; +0x10, 0x180002b90\nmov     edi, r9d                                                       ; +0x15, 0x180002b95\nmov     rax, [rcx+30h]                                                 ; +0x18, 0x180002b98\nmov     rbp, r8                                                        ; +0x1c, 0x180002b9c\nmovaps  [rsp+0F8h+var_98], xmm11                                       ; +0x1f, 0x180002b9f\nmov     rbx, rdx                                                       ; +0x25, 0x180002ba5\nmovdqu  xmm11, xmmword ptr [rcx]                                       ; +0x28, 0x180002ba8\nmov     rsi, rcx                                                       ; +0x2d, 0x180002bad\nmovaps  [rsp+0F8h+var_A8], xmm12                                       ; +0x30, 0x180002bb0\nmovups  xmm12, xmmword ptr [rcx+10h]                                   ; +0x36, 0x180002bb6\nmovaps  [rsp+0F8h+var_B8], xmm13                                       ; +0x3b, 0x180002bbb\nmovups  xmm13, xmmword ptr [rcx+20h]                                   ; +0x41, 0x180002bc1\nprefetcht0 byte ptr [rax]                                              ; +0x46, 0x180002bc6\nmov     rax, [rcx+38h]                                                 ; +0x49, 0x180002bc9\nprefetcht0 byte ptr [rax]                                              ; +0x4d, 0x180002bcd\nmovsx   rax, byte ptr [rcx+64h]                                        ; +0x50, 0x180002bd0\nsar     edi, 2                                                         ; +0x55, 0x180002bd5\nmov     [rsp+0F8h+arg_18], edi                                         ; +0x58, 0x180002bd8\ncmp     eax, 8; switch 9 cases                                         ; +0x5f, 0x180002bdf\nja      def_180002C19; jumptable 0000000180002C19 default case         ; +0x62, 0x180002be2\nmov     [r11+10h], r12                                                 ; +0x68, 0x180002be8\nlea     rdx, cs:180000000h                                             ; +0x6c, 0x180002bec\nmov     [r11-30h], r13                                                 ; +0x73, 0x180002bf3\nmov     [r11-38h], r15                                                 ; +0x77, 0x180002bf7\nmovaps  xmmword ptr [r11-48h], xmm6                                    ; +0x7b, 0x180002bfb\nmovaps  xmmword ptr [r11-58h], xmm7                                    ; +0x80, 0x180002c00\nmovaps  xmmword ptr [r11-68h], xmm8                                    ; +0x85, 0x180002c05\nmovaps  xmmword ptr [r11-78h], xmm9                                    ; +0x8a, 0x180002c0a\nmov     ecx, ds:(jpt_180002C19 - 180000000h)[rdx+rax*4]                ; +0x8f, 0x180002c0f\nadd     rcx, rdx                                                       ; +0x96, 0x180002c16\njmp     rcx; switch jump                                               ; +0x99, 0x180002c19\ntest    edi, edi; jumptable 0000000180002C19 cases 0,1                 ; +0x9b, 0x180002c1b\njz      loc_1800030A4                                                  ; +0x9d, 0x180002c1d\nmov     rdx, rbp                                                       ; +0xa3, 0x180002c23\nmov     rcx, rsi                                                       ; +0xa6, 0x180002c26\ncall    sub_180002960                                                  ; +0xa9, 0x180002c29\npand    xmm0, xmm11                                                    ; +0xae, 0x180002c2e\ncvtdq2ps xmm1, xmm0                                                    ; +0xb3, 0x180002c33\nmulps   xmm1, xmm13                                                    ; +0xb6, 0x180002c36\naddps   xmm1, xmm12                                                    ; +0xba, 0x180002c3a\naddps   xmm1, xmmword ptr [rbx]                                        ; +0xbe, 0x180002c3e\nmovups  xmmword ptr [rbx], xmm1                                        ; +0xc1, 0x180002c41\nadd     rbx, 10h                                                       ; +0xc4, 0x180002c44\nsub     edi, 1                                                         ; +0xc8, 0x180002c48\njnz     short loc_180002C23                                            ; +0xcb, 0x180002c4b\njmp     loc_1800030A4                                                  ; +0xcd, 0x180002c4d\nmov     r15d, edi; jumptable 0000000180002C19 cases 2,3                ; +0xd2, 0x180002c52\nsar     r15d, 1                                                        ; +0xd5, 0x180002c55\njz      short loc_180002CB9                                            ; +0xd8, 0x180002c58\nnop     word ptr [rax+rax+00h]                                         ; +0xda, 0x180002c5a\nmov     rdx, rbp                                                       ; +0xe0, 0x180002c60\nmov     rcx, rsi                                                       ; +0xe3, 0x180002c63\ncall    sub_180002960                                                  ; +0xe6, 0x180002c66\nmovdqa  xmm1, xmm0                                                     ; +0xeb, 0x180002c6b\npand    xmm1, xmm11                                                    ; +0xef, 0x180002c6f\ncvtdq2ps xmm2, xmm1                                                    ; +0xf4, 0x180002c74\nmovd    xmm1, r14d                                                     ; +0xf7, 0x180002c77\npsrad   xmm0, xmm1                                                     ; +0xfc, 0x180002c7c\nmulps   xmm2, xmm13                                                    ; +0x100, 0x180002c80\npand    xmm0, xmm11                                                    ; +0x104, 0x180002c84\ncvtdq2ps xmm1, xmm0                                                    ; +0x109, 0x180002c89\naddps   xmm2, xmm12                                                    ; +0x10c, 0x180002c8c\nmulps   xmm1, xmm13                                                    ; +0x110, 0x180002c90\nmovaps  xmm0, xmm2                                                     ; +0x114, 0x180002c94\naddps   xmm1, xmm12                                                    ; +0x117, 0x180002c97\nunpcklps xmm0, xmm1                                                    ; +0x11b, 0x180002c9b\naddps   xmm0, xmmword ptr [rbx]                                        ; +0x11e, 0x180002c9e\nunpckhps xmm2, xmm1                                                    ; +0x121, 0x180002ca1\naddps   xmm2, xmmword ptr [rbx+10h]                                    ; +0x124, 0x180002ca4\nmovups  xmmword ptr [rbx], xmm0                                        ; +0x128, 0x180002ca8\nmovups  xmmword ptr [rbx+10h], xmm2                                    ; +0x12b, 0x180002cab\nadd     rbx, 20h ; ' '                                                 ; +0x12f, 0x180002caf\nsub     r15d, 1                                                        ; +0x133, 0x180002cb3\njnz     short loc_180002C60                                            ; +0x137, 0x180002cb7\nand     edi, 1                                                         ; +0x139, 0x180002cb9\njz      loc_1800030A4                                                  ; +0x13c, 0x180002cbc\nmov     rdx, rbp                                                       ; +0x142, 0x180002cc2\nmov     rcx, rsi                                                       ; +0x145, 0x180002cc5\ncall    sub_180002760                                                  ; +0x148, 0x180002cc8\nmov     rdx, rbp                                                       ; +0x14d, 0x180002ccd\nmov     rcx, rsi                                                       ; +0x150, 0x180002cd0\nmovdqa  xmm6, xmm0                                                     ; +0x153, 0x180002cd3\ncall    sub_180002760                                                  ; +0x157, 0x180002cd7\npand    xmm0, xmm11                                                    ; +0x15c, 0x180002cdc\npand    xmm6, xmm11                                                    ; +0x161, 0x180002ce1\ncvtdq2ps xmm1, xmm0                                                    ; +0x166, 0x180002ce6\ncvtdq2ps xmm0, xmm6                                                    ; +0x169, 0x180002ce9\nmulps   xmm1, xmm13                                                    ; +0x16c, 0x180002cec\nmulps   xmm0, xmm13                                                    ; +0x170, 0x180002cf0\naddps   xmm1, xmm12                                                    ; +0x174, 0x180002cf4\naddps   xmm0, xmm12                                                    ; +0x178, 0x180002cf8\nshufps  xmm0, xmm1, 44h ; 'D'                                          ; +0x17c, 0x180002cfc\naddps   xmm0, xmmword ptr [rbx]                                        ; +0x180, 0x180002d00\nmovups  xmmword ptr [rbx], xmm0                                        ; +0x183, 0x180002d03\nadd     rbx, 10h                                                       ; +0x186, 0x180002d06\nsub     edi, 1                                                         ; +0x18a, 0x180002d0a\njnz     short loc_180002CC2                                            ; +0x18d, 0x180002d0d\njmp     loc_1800030A4                                                  ; +0x18f, 0x180002d0f\nmov     r15d, edi; jumptable 0000000180002C19 cases 4-7                ; +0x194, 0x180002d14\nsar     r15d, 2                                                        ; +0x197, 0x180002d17\ntest    r15d, r15d                                                     ; +0x19b, 0x180002d1b\njz      loc_180002E1C                                                  ; +0x19e, 0x180002d1e\nmovaps  [rsp+0F8h+var_88], xmm10                                       ; +0x1a4, 0x180002d24\nlea     r12d, [r14+r14]                                                ; +0x1aa, 0x180002d2a\nlea     r13d, [r14+r14*2]                                              ; +0x1ae, 0x180002d2e\nmovups  xmm6, xmmword ptr [rbx]                                        ; +0x1b2, 0x180002d32\nmov     rdx, rbp                                                       ; +0x1b5, 0x180002d35\nmovups  xmm7, xmmword ptr [rbx+10h]                                    ; +0x1b8, 0x180002d38\nmov     rcx, rsi                                                       ; +0x1bc, 0x180002d3c\nmovups  xmm8, xmmword ptr [rbx+20h]                                    ; +0x1bf, 0x180002d3f\nmovups  xmm10, xmmword ptr [rbx+30h]                                   ; +0x1c4, 0x180002d44\ncall    sub_180002960                                                  ; +0x1c9, 0x180002d49\nmovdqa  xmm2, xmm0                                                     ; +0x1ce, 0x180002d4e\nmovd    xmm1, r14d                                                     ; +0x1d2, 0x180002d52\npsrad   xmm2, xmm1                                                     ; +0x1d7, 0x180002d57\nmovdqa  xmm5, xmm0                                                     ; +0x1db, 0x180002d5b\nmovd    xmm1, r12d                                                     ; +0x1df, 0x180002d5f\nmovdqa  xmm9, xmm0                                                     ; +0x1e4, 0x180002d64\nmovdqa  xmm3, xmm0                                                     ; +0x1e9, 0x180002d69\npsrad   xmm5, xmm1                                                     ; +0x1ed, 0x180002d6d\npand    xmm2, xmm11                                                    ; +0x1f1, 0x180002d71\nmovd    xmm1, r13d                                                     ; +0x1f6, 0x180002d76\npsrad   xmm3, xmm1                                                     ; +0x1fb, 0x180002d7b\npand    xmm9, xmm11                                                    ; +0x1ff, 0x180002d7f\npand    xmm5, xmm11                                                    ; +0x204, 0x180002d84\nmovaps  xmm4, xmm9                                                     ; +0x209, 0x180002d89\npand    xmm3, xmm11                                                    ; +0x20d, 0x180002d8d\nshufps  xmm4, xmm2, 44h ; 'D'                                          ; +0x212, 0x180002d92\nshufps  xmm9, xmm2, 0EEh                                               ; +0x216, 0x180002d96\nmovaps  xmm0, xmm4                                                     ; +0x21b, 0x180002d9b\nmovaps  xmm2, xmm5                                                     ; +0x21e, 0x180002d9e\nshufps  xmm5, xmm3, 0EEh                                               ; +0x221, 0x180002da1\nshufps  xmm2, xmm3, 44h ; 'D'                                          ; +0x225, 0x180002da5\nshufps  xmm0, xmm2, 88h                                                ; +0x229, 0x180002da9\ncvtdq2ps xmm1, xmm0                                                    ; +0x22d, 0x180002dad\nshufps  xmm4, xmm2, 0DDh                                               ; +0x230, 0x180002db0\nmulps   xmm1, xmm13                                                    ; +0x234, 0x180002db4\ncvtdq2ps xmm0, xmm4                                                    ; +0x238, 0x180002db8\naddps   xmm1, xmm12                                                    ; +0x23b, 0x180002dbb\nmulps   xmm0, xmm13                                                    ; +0x23f, 0x180002dbf\naddps   xmm1, xmm6                                                     ; +0x243, 0x180002dc3\naddps   xmm0, xmm12                                                    ; +0x246, 0x180002dc6\nmovups  xmmword ptr [rbx], xmm1                                        ; +0x24a, 0x180002dca\naddps   xmm0, xmm7                                                     ; +0x24d, 0x180002dcd\nmovups  xmmword ptr [rbx+10h], xmm0                                    ; +0x250, 0x180002dd0\nmovaps  xmm0, xmm9                                                     ; +0x254, 0x180002dd4\nshufps  xmm0, xmm5, 88h                                                ; +0x258, 0x180002dd8\ncvtdq2ps xmm1, xmm0                                                    ; +0x25c, 0x180002ddc\nshufps  xmm9, xmm5, 0DDh                                               ; +0x25f, 0x180002ddf\nmulps   xmm1, xmm13                                                    ; +0x264, 0x180002de4\ncvtdq2ps xmm0, xmm9                                                    ; +0x268, 0x180002de8\naddps   xmm1, xmm12                                                    ; +0x26c, 0x180002dec\nmulps   xmm0, xmm13                                                    ; +0x270, 0x180002df0\naddps   xmm1, xmm8                                                     ; +0x274, 0x180002df4\naddps   xmm0, xmm12                                                    ; +0x278, 0x180002df8\nmovups  xmmword ptr [rbx+20h], xmm1                                    ; +0x27c, 0x180002dfc\naddps   xmm0, xmm10                                                    ; +0x280, 0x180002e00\nmovups  xmmword ptr [rbx+30h], xmm0                                    ; +0x284, 0x180002e04\nadd     rbx, 40h ; '@'                                                 ; +0x288, 0x180002e08\nsub     r15d, 1                                                        ; +0x28c, 0x180002e0c\njnz     loc_180002D32                                                  ; +0x290, 0x180002e10\nmovaps  xmm10, [rsp+0F8h+var_88]                                       ; +0x296, 0x180002e16\nand     edi, 3                                                         ; +0x29c, 0x180002e1c\njz      loc_1800030A4                                                  ; +0x29f, 0x180002e1f\nmov     rdx, rbp                                                       ; +0x2a5, 0x180002e25\nmov     rcx, rsi                                                       ; +0x2a8, 0x180002e28\ncall    sub_180002760                                                  ; +0x2ab, 0x180002e2b\npand    xmm0, xmm11                                                    ; +0x2b0, 0x180002e30\ncvtdq2ps xmm1, xmm0                                                    ; +0x2b5, 0x180002e35\nmulps   xmm1, xmm13                                                    ; +0x2b8, 0x180002e38\naddps   xmm1, xmm12                                                    ; +0x2bc, 0x180002e3c\naddps   xmm1, xmmword ptr [rbx]                                        ; +0x2c0, 0x180002e40\nmovups  xmmword ptr [rbx], xmm1                                        ; +0x2c3, 0x180002e43\nadd     rbx, 10h                                                       ; +0x2c6, 0x180002e46\nsub     edi, 1                                                         ; +0x2ca, 0x180002e4a\njnz     short loc_180002E25                                            ; +0x2cd, 0x180002e4d\njmp     loc_1800030A4                                                  ; +0x2cf, 0x180002e4f\nmov     r15d, edi; jumptable 0000000180002C19 case 8                   ; +0x2d4, 0x180002e54\nsar     r15d, 3                                                        ; +0x2d7, 0x180002e57\ntest    r15d, r15d                                                     ; +0x2db, 0x180002e5b\njz      loc_180003032                                                  ; +0x2de, 0x180002e5e\nlea     r12d, [r14+r14*2]                                              ; +0x2e4, 0x180002e64\nadd     r12d, r12d                                                     ; +0x2e8, 0x180002e68\nlea     r13d, [r14+r14]                                                ; +0x2eb, 0x180002e6b\nimul    eax, r14d, 7                                                   ; +0x2ef, 0x180002e6f\nlea     edi, [r14+r14*2]                                               ; +0x2f3, 0x180002e73\nmov     [rsp+0F8h+arg_0], eax                                          ; +0x2f7, 0x180002e77\nxchg    ax, ax                                                         ; +0x2fe, 0x180002e7e\nmov     rdx, rbp                                                       ; +0x300, 0x180002e80\nmov     rcx, rsi                                                       ; +0x303, 0x180002e83\ncall    sub_180002960                                                  ; +0x306, 0x180002e86\nmovdqa  xmm9, xmm0                                                     ; +0x30b, 0x180002e8b\nmovd    xmm1, r14d                                                     ; +0x310, 0x180002e90\nmovdqa  xmm3, xmm0                                                     ; +0x315, 0x180002e95\nlea     eax, ds:0[r14*4]                                               ; +0x319, 0x180002e99\npsrad   xmm3, xmm1                                                     ; +0x321, 0x180002ea1\nmovdqa  xmm7, xmm0                                                     ; +0x325, 0x180002ea5\nmovd    xmm1, r13d                                                     ; +0x329, 0x180002ea9\nmovdqa  xmm4, xmm0                                                     ; +0x32e, 0x180002eae\npand    xmm3, xmm11                                                    ; +0x332, 0x180002eb2\npsrad   xmm7, xmm1                                                     ; +0x337, 0x180002eb7\nmovd    xmm0, eax                                                      ; +0x33b, 0x180002ebb\nmovdqa  xmm8, xmm9                                                     ; +0x33f, 0x180002ebf\npsrad   xmm8, xmm0                                                     ; +0x344, 0x180002ec4\nmovdqa  xmm2, xmm9                                                     ; +0x349, 0x180002ec9\nmovd    xmm1, edi                                                      ; +0x34e, 0x180002ece\npsrad   xmm4, xmm1                                                     ; +0x352, 0x180002ed2\nmovdqa  xmm1, xmm9                                                     ; +0x356, 0x180002ed6\nlea     eax, [r14+r14*4]                                               ; +0x35b, 0x180002edb\npand    xmm4, xmm11                                                    ; +0x35f, 0x180002edf\nmovd    xmm0, eax                                                      ; +0x364, 0x180002ee4\npsrad   xmm2, xmm0                                                     ; +0x368, 0x180002ee8\nmovdqa  xmm6, xmm9                                                     ; +0x36c, 0x180002eec\nmovd    xmm0, r12d                                                     ; +0x371, 0x180002ef1\npsrad   xmm6, xmm0                                                     ; +0x376, 0x180002ef6\nmovd    xmm0, [rsp+0F8h+arg_0]                                         ; +0x37a, 0x180002efa\npand    xmm2, xmm11                                                    ; +0x383, 0x180002f03\npsrad   xmm1, xmm0                                                     ; +0x388, 0x180002f08\npand    xmm9, xmm11                                                    ; +0x38c, 0x180002f0c\npand    xmm7, xmm11                                                    ; +0x391, 0x180002f11\npand    xmm1, xmm11                                                    ; +0x396, 0x180002f16\nmovaps  xmm5, xmm9                                                     ; +0x39b, 0x180002f1b\nshufps  xmm5, xmm3, 44h ; 'D'                                          ; +0x39f, 0x180002f1f\npand    xmm8, xmm11                                                    ; +0x3a3, 0x180002f23\nshufps  xmm9, xmm3, 0EEh                                               ; +0x3a8, 0x180002f28\npand    xmm6, xmm11                                                    ; +0x3ad, 0x180002f2d\nmovaps  xmm3, xmm7                                                     ; +0x3b2, 0x180002f32\nmovaps  xmm0, xmm5                                                     ; +0x3b5, 0x180002f35\nshufps  xmm3, xmm4, 44h ; 'D'                                          ; +0x3b8, 0x180002f38\nshufps  xmm0, xmm3, 88h                                                ; +0x3bc, 0x180002f3c\nshufps  xmm7, xmm4, 0EEh                                               ; +0x3c0, 0x180002f40\nmovaps  xmm4, xmm8                                                     ; +0x3c4, 0x180002f44\nshufps  xmm4, xmm2, 44h ; 'D'                                          ; +0x3c8, 0x180002f48\nshufps  xmm8, xmm2, 0EEh                                               ; +0x3cc, 0x180002f4c\nmovaps  xmm2, xmm6                                                     ; +0x3d1, 0x180002f51\nshufps  xmm2, xmm1, 44h ; 'D'                                          ; +0x3d4, 0x180002f54\nshufps  xmm6, xmm1, 0EEh                                               ; +0x3d8, 0x180002f58\ncvtdq2ps xmm1, xmm0                                                    ; +0x3dc, 0x180002f5c\nmovaps  xmm0, xmm4                                                     ; +0x3df, 0x180002f5f\nshufps  xmm5, xmm3, 0DDh                                               ; +0x3e2, 0x180002f62\nshufps  xmm0, xmm2, 88h                                                ; +0x3e6, 0x180002f66\nmulps   xmm1, xmm13                                                    ; +0x3ea, 0x180002f6a\nshufps  xmm4, xmm2, 0DDh                                               ; +0x3ee, 0x180002f6e\naddps   xmm1, xmm12                                                    ; +0x3f2, 0x180002f72\naddps   xmm1, xmmword ptr [rbx]                                        ; +0x3f6, 0x180002f76\nmovups  xmmword ptr [rbx], xmm1                                        ; +0x3f9, 0x180002f79\ncvtdq2ps xmm1, xmm0                                                    ; +0x3fc, 0x180002f7c\ncvtdq2ps xmm0, xmm5                                                    ; +0x3ff, 0x180002f7f\nmulps   xmm1, xmm13                                                    ; +0x402, 0x180002f82\nmulps   xmm0, xmm13                                                    ; +0x406, 0x180002f86\naddps   xmm1, xmm12                                                    ; +0x40a, 0x180002f8a\naddps   xmm0, xmm12                                                    ; +0x40e, 0x180002f8e\naddps   xmm1, xmmword ptr [rbx+10h]                                    ; +0x412, 0x180002f92\naddps   xmm0, xmmword ptr [rbx+20h]                                    ; +0x416, 0x180002f96\nmovups  xmmword ptr [rbx+10h], xmm1                                    ; +0x41a, 0x180002f9a\nmovups  xmmword ptr [rbx+20h], xmm0                                    ; +0x41e, 0x180002f9e\ncvtdq2ps xmm0, xmm4                                                    ; +0x422, 0x180002fa2\nmulps   xmm0, xmm13                                                    ; +0x425, 0x180002fa5\naddps   xmm0, xmm12                                                    ; +0x429, 0x180002fa9\naddps   xmm0, xmmword ptr [rbx+30h]                                    ; +0x42d, 0x180002fad\nmovups  xmmword ptr [rbx+30h], xmm0                                    ; +0x431, 0x180002fb1\nmovaps  xmm0, xmm9                                                     ; +0x435, 0x180002fb5\nshufps  xmm0, xmm7, 88h                                                ; +0x439, 0x180002fb9\ncvtdq2ps xmm1, xmm0                                                    ; +0x43d, 0x180002fbd\nmovaps  xmm0, xmm8                                                     ; +0x440, 0x180002fc0\nmulps   xmm1, xmm13                                                    ; +0x444, 0x180002fc4\naddps   xmm1, xmm12                                                    ; +0x448, 0x180002fc8\naddps   xmm1, xmmword ptr [rbx+40h]                                    ; +0x44c, 0x180002fcc\nmovups  xmmword ptr [rbx+40h], xmm1                                    ; +0x450, 0x180002fd0\nshufps  xmm0, xmm6, 88h                                                ; +0x454, 0x180002fd4\ncvtdq2ps xmm1, xmm0                                                    ; +0x458, 0x180002fd8\nshufps  xmm9, xmm7, 0DDh                                               ; +0x45b, 0x180002fdb\ncvtdq2ps xmm0, xmm9                                                    ; +0x460, 0x180002fe0\nmulps   xmm1, xmm13                                                    ; +0x464, 0x180002fe4\nmulps   xmm0, xmm13                                                    ; +0x468, 0x180002fe8\nshufps  xmm8, xmm6, 0DDh                                               ; +0x46c, 0x180002fec\naddps   xmm1, xmm12                                                    ; +0x471, 0x180002ff1\naddps   xmm0, xmm12                                                    ; +0x475, 0x180002ff5\naddps   xmm1, xmmword ptr [rbx+50h]                                    ; +0x479, 0x180002ff9\naddps   xmm0, xmmword ptr [rbx+60h]                                    ; +0x47d, 0x180002ffd\nmovups  xmmword ptr [rbx+50h], xmm1                                    ; +0x481, 0x180003001\nmovups  xmmword ptr [rbx+60h], xmm0                                    ; +0x485, 0x180003005\ncvtdq2ps xmm0, xmm8                                                    ; +0x489, 0x180003009\nmulps   xmm0, xmm13                                                    ; +0x48d, 0x18000300d\naddps   xmm0, xmm12                                                    ; +0x491, 0x180003011\naddps   xmm0, xmmword ptr [rbx+70h]                                    ; +0x495, 0x180003015\nmovups  xmmword ptr [rbx+70h], xmm0                                    ; +0x499, 0x180003019\nsub     rbx, 0FFFFFFFFFFFFFF80h                                        ; +0x49d, 0x18000301d\nsub     r15d, 1                                                        ; +0x4a1, 0x180003021\njnz     loc_180002E80                                                  ; +0x4a5, 0x180003025\nmov     edi, [rsp+0F8h+arg_18]                                         ; +0x4ab, 0x18000302b\nsar     edi, 1                                                         ; +0x4b2, 0x180003032\nand     edi, 3                                                         ; +0x4b4, 0x180003034\njz      short loc_1800030A4                                            ; +0x4b7, 0x180003037\nnop     dword ptr [rax+00000000h]                                      ; +0x4b9, 0x180003039\nlea     r9, [rsp+0F8h+var_C8]                                          ; +0x4c0, 0x180003040\nmov     rdx, rbp                                                       ; +0x4c5, 0x180003045\nlea     r8, [rsp+0F8h+var_D8]                                          ; +0x4c8, 0x180003048\nmov     rcx, rsi                                                       ; +0x4cd, 0x18000304d\ncall    sub_180002830                                                  ; +0x4d0, 0x180003050\nmovdqa  xmm0, [rsp+0F8h+var_D8]                                        ; +0x4d5, 0x180003055\nmovdqa  xmm2, [rsp+0F8h+var_C8]                                        ; +0x4db, 0x18000305b\npand    xmm0, xmm11                                                    ; +0x4e1, 0x180003061\ncvtdq2ps xmm1, xmm0                                                    ; +0x4e6, 0x180003066\nmovdqa  [rsp+0F8h+var_D8], xmm0                                        ; +0x4e9, 0x180003069\npand    xmm2, xmm11                                                    ; +0x4ef, 0x18000306f\nmulps   xmm1, xmm13                                                    ; +0x4f4, 0x180003074\ncvtdq2ps xmm0, xmm2                                                    ; +0x4f8, 0x180003078\naddps   xmm1, xmm12                                                    ; +0x4fb, 0x18000307b\nmovdqa  [rsp+0F8h+var_C8], xmm2                                        ; +0x4ff, 0x18000307f\nmulps   xmm0, xmm13                                                    ; +0x505, 0x180003085\naddps   xmm1, xmmword ptr [rbx]                                        ; +0x509, 0x180003089\naddps   xmm0, xmm12                                                    ; +0x50c, 0x18000308c\nmovups  xmmword ptr [rbx], xmm1                                        ; +0x510, 0x180003090\naddps   xmm0, xmmword ptr [rbx+10h]                                    ; +0x513, 0x180003093\nmovups  xmmword ptr [rbx+10h], xmm0                                    ; +0x517, 0x180003097\nadd     rbx, 20h ; ' '                                                 ; +0x51b, 0x18000309b\nsub     edi, 1                                                         ; +0x51f, 0x18000309f\njnz     short loc_180003040                                            ; +0x522, 0x1800030a2\nmovaps  xmm8, [rsp+0F8h+var_68]                                        ; +0x524, 0x1800030a4\nmovaps  xmm7, [rsp+0F8h+var_58]                                        ; +0x52d, 0x1800030ad\nmovaps  xmm6, [rsp+0F8h+var_48]                                        ; +0x535, 0x1800030b5\nmov     r15, [rsp+0F8h+var_38]                                         ; +0x53d, 0x1800030bd\nmov     r13, [rsp+0F8h+var_30]                                         ; +0x545, 0x1800030c5\nmov     r12, [rsp+0F8h+arg_8]                                          ; +0x54d, 0x1800030cd\nmovaps  xmm9, [rsp+0F8h+var_78]                                        ; +0x555, 0x1800030d5\nmovaps  xmm11, [rsp+0F8h+var_98]; jumptable 0000000180002C19 default case ; +0x55e, 0x1800030de\nxor     eax, eax                                                       ; +0x564, 0x1800030e4\nmovaps  xmm12, [rsp+0F8h+var_A8]                                       ; +0x566, 0x1800030e6\nmovaps  xmm13, [rsp+0F8h+var_B8]                                       ; +0x56c, 0x1800030ec\nadd     rsp, 0D0h                                                      ; +0x572, 0x1800030f2\npop     r14                                                            ; +0x579, 0x1800030f9\npop     rdi                                                            ; +0x57b, 0x1800030fb\npop     rsi                                                            ; +0x57c, 0x1800030fc\npop     rbp                                                            ; +0x57d, 0x1800030fd\npop     rbx                                                            ; +0x57e, 0x1800030fe\nretn                                                                   ; +0x57f, 0x1800030ff\ndd offset loc_180002C1B - 180000000h; jump table for switch statement  ; +0x580, 0x180003100", "xrefs": ["sub_180009770 @ 0x180009a89", "<???> @ 0x18017d4e0", "<???> @ 0x18017d514", "<???> @ 0x1801a78a0", "<???> @ 0x1801f6144"], "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"}