{"type": "func", "start": 6442478144, "end": 6442479289, "name": "sub_180006A40", "pseudocode": "// \n// sub_180006A40 from 0x180006a40 to 0x180006eb9 (1145 bytes)\n// \n// 2 xrefs:\n// > sub_180008050 @ 0x18000824e\n// > <???> @ 0x1801f633c\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_DWORD *__fastcall sub_180006A40(__int64 a1, __int64 a2, __int64 *a3, _DWORD *a4)\n{\n  int *v6; // rsi\n  __int64 v7; // r15\n  int v8; // r13d\n  unsigned int v9; // ebx\n  int v10; // edx\n  unsigned int v11; // eax\n  int v12; // edx\n  int v13; // eax\n  int v14; // r10d\n  int v15; // r12d\n  __int64 v16; // r8\n  __int64 v17; // rcx\n  int v18; // edi\n  __int64 v19; // rax\n  __int64 v20; // rdx\n  __int64 v21; // r9\n  char v22; // r12\n  __int64 v23; // r13\n  int v24; // esi\n  __int64 v25; // r8\n  __int64 v26; // r10\n  __int64 v27; // rdx\n  __int64 v28; // rdi\n  __int64 v29; // rsi\n  __int64 v30; // r12\n  int v31; // eax\n  int v32; // eax\n  int v33; // eax\n  __int64 v34; // rdx\n  __int64 v35; // r10\n  __int64 v36; // rax\n  __int64 v37; // rdi\n  __int64 v38; // rsi\n  int v39; // eax\n  int v40; // eax\n  __int64 v41; // rbx\n  __int64 v42; // rcx\n  __int64 v43; // rax\n  __int64 v44; // rdx\n  _DWORD *v45; // rsi\n  int v46; // eax\n  __int64 v47; // rdi\n  __int64 v48; // rcx\n  __int64 v49; // r8\n  int v50; // ebx\n  int v51; // r11d\n  int v52; // eax\n  int v53; // ecx\n  int v54; // ebx\n  int v55; // eax\n  int v56; // edx\n  int v57; // ecx\n  int v58; // eax\n  __int64 v59; // rcx\n  __int64 v60; // rcx\n  int v62; // [rsp+20h] [rbp-68h]\n  int v63; // [rsp+28h] [rbp-60h]\n  __int64 v64; // [rsp+30h] [rbp-58h]\n  __int64 v65; // [rsp+38h] [rbp-50h]\n  __int64 v66; // [rsp+40h] [rbp-48h]\n  __int64 v67; // [rsp+48h] [rbp-40h]\n  int v68; // [rsp+90h] [rbp+8h]\n\n  v6 = (int *)a3;\n  v7 = *(_QWORD *)(*(_QWORD *)(*(_QWORD *)a1 + 32LL) + 72LL);\n  v8 = dword_1801A4200[*((int *)a3 + 14) - 1];\n  v63 = v8;\n  if ( (unsigned int)sub_180001340(a2, 1) != 1 )\n    return nullptr;\n  v9 = v8 - 1;\n  v10 = 0;\n  v11 = v8 - 1;\n  if ( v8 == 1 )\n  {\n    *a4 = sub_180001340(a2, 0);\n    v12 = 0;\n  }\n  else\n  {\n    do\n    {\n      ++v10;\n      v11 >>= 1;\n    }\n    while ( v11 );\n    *a4 = sub_180001340(a2, v10);\n    v12 = 0;\n    do\n    {\n      ++v12;\n      v9 >>= 1;\n    }\n    while ( v9 );\n  }\n  v13 = sub_180001340(a2, v12);\n  v14 = 0;\n  a4[1] = v13;\n  v15 = 2;\n  v62 = 0;\n  LODWORD(v16) = 2;\n  v68 = 2;\n  if ( v6[12] > 0 )\n  {\n    v17 = 0;\n    v65 = 0;\n    while ( 1 )\n    {\n      v18 = 0;\n      v19 = *(_QWORD *)v6;\n      v20 = 11LL * *(char *)(*((_QWORD *)v6 + 1) + v17);\n      v21 = v20 + *(_QWORD *)v6 + 3LL;\n      v64 = v21;\n      v22 = *(_BYTE *)(v20 + *(_QWORD *)v6 + 1);\n      v23 = *(char *)(v20 + *(_QWORD *)v6);\n      v24 = 1 << v22;\n      if ( *(_BYTE *)(v20 + v19 + 1) )\n      {\n        v18 = sub_1800013B0(v7 + 120LL * *(unsigned __int8 *)(v20 + v19 + 2), a2);\n        if ( v18 == -1 )\n          return nullptr;\n        v21 = v64;\n        LODWORD(v16) = v68;\n        v14 = v62;\n      }\n      if ( (_DWORD)v23 == 4 )\n        break;\n      if ( (_DWORD)v23 == 3 )\n      {\n        v34 = v24 - 1LL;\n        v35 = *(unsigned __int8 *)((v18 & (unsigned __int64)v34) + v21);\n        v36 = (__int64)v18 >> v22;\n        v37 = *(unsigned __int8 *)((v34 & v36) + v21);\n        v38 = *(unsigned __int8 *)((v34 & (v36 >> v22)) + v21);\n        if ( (_BYTE)v35 == 0xFF )\n          v39 = 0;\n        else\n          v39 = sub_1800013B0(v7 + 120 * v35, a2);\n        a4[v68] = v39;\n        if ( (_BYTE)v37 == 0xFF )\n          v40 = 0;\n        else\n          v40 = sub_1800013B0(v7 + 120 * v37, a2);\n        a4[v68 + 1] = v40;\n        if ( (_BYTE)v38 == 0xFF )\n          a4[v68 + 2] = 0;\n        else\n          a4[v68 + 2] = sub_1800013B0(v7 + 120 * v38, a2);\n        goto LABEL_43;\n      }\n      if ( v23 > 0 )\n      {\n        v41 = 0;\n        v42 = v24 - 1LL;\n        v16 = (int)v16;\n        v67 = v42;\n        v66 = (int)v16;\n        do\n        {\n          v43 = v42 & v18;\n          v18 >>= v22;\n          v44 = *(unsigned __int8 *)(v43 + v21);\n          v45 = &a4[v16 + v41];\n          if ( (_BYTE)v44 == 0xFF )\n          {\n            *v45 = 0;\n          }\n          else\n          {\n            v46 = sub_1800013B0(v7 + 120 * v44, a2);\n            *v45 = v46;\n            if ( v46 == -1 )\n              return nullptr;\n            v21 = v64;\n            v16 = v66;\n          }\n          v42 = v67;\n          ++v41;\n        }\n        while ( v41 < v23 );\n        goto LABEL_43;\n      }\nLABEL_44:\n      LODWORD(v16) = v23 + v16;\n      v6 = (int *)a3;\n      ++v14;\n      v17 = v65 + 1;\n      v68 = v16;\n      v62 = v14;\n      ++v65;\n      if ( v14 >= *((_DWORD *)a3 + 12) )\n      {\n        v8 = v63;\n        v15 = 2;\n        goto LABEL_46;\n      }\n    }\n    v25 = v24 - 1LL;\n    v26 = *(unsigned __int8 *)((v25 & v18) + v21);\n    v27 = v18 >> v22;\n    v28 = *(unsigned __int8 *)((v27 & v25) + v21);\n    v29 = *(unsigned __int8 *)((v25 & (v27 >> v22)) + v21);\n    v30 = *(unsigned __int8 *)((v25 & (v27 >> v22 >> v22)) + v21);\n    if ( (_BYTE)v26 == 0xFF )\n      v31 = 0;\n    else\n      v31 = sub_1800013B0(v7 + 120 * v26, a2);\n    a4[v68] = v31;\n    if ( (_BYTE)v28 == 0xFF )\n      v32 = 0;\n    else\n      v32 = sub_1800013B0(v7 + 120 * v28, a2);\n    a4[v68 + 1] = v32;\n    if ( (_BYTE)v29 == 0xFF )\n      v33 = 0;\n    else\n      v33 = sub_1800013B0(v7 + 120 * v29, a2);\n    a4[v68 + 2] = v33;\n    if ( (_DWORD)v30 == 255 )\n      a4[v68 + 3] = 0;\n    else\n      a4[v68 + 3] = sub_1800013B0(v7 + 120 * v30, a2);\nLABEL_43:\n    LODWORD(v16) = v68;\n    v14 = v62;\n    goto LABEL_44;\n  }\nLABEL_46:\n  if ( v6[13] > 2 )\n  {\n    v47 = 2;\n    do\n    {\n      v48 = *(char *)(v47 + *((_QWORD *)v6 + 5) - 2);\n      v49 = *(char *)(*((_QWORD *)v6 + 4) + v47 - 2);\n      v50 = a4[v48] & 0x7FFF;\n      v51 = (a4[v49] & 0x7FFF) - v50;\n      v52 = (int)((*(unsigned __int16 *)(*((_QWORD *)v6 + 2) + 2 * v47)\n                 - *(unsigned __int16 *)(*((_QWORD *)v6 + 2) + 2 * v48))\n                * abs32(v51))\n          / (*(unsigned __int16 *)(*((_QWORD *)v6 + 2) + 2 * v49) - *(unsigned __int16 *)(*((_QWORD *)v6 + 2) + 2 * v48));\n      v53 = v52 + v50;\n      v54 = v50 - v52;\n      v55 = a4[v47];\n      if ( v51 >= 0 )\n        v54 = v53;\n      v56 = v8 - v54;\n      if ( v55 )\n      {\n        v57 = v54;\n        if ( v56 < v54 )\n          v57 = v8 - v54;\n        if ( v55 < 2 * v57 )\n        {\n          if ( (v55 & 1) != 0 )\n            v58 = -((v55 + 1) >> 1);\n          else\n            v58 = v55 >> 1;\n        }\n        else if ( v56 <= v54 )\n        {\n          v58 = v56 - v55 - 1;\n        }\n        else\n        {\n          v58 = v55 - v54;\n        }\n        a4[v47] = v54 + v58;\n        v59 = *(char *)(v47 + *((_QWORD *)v6 + 5) - 2);\n        a4[v59] &= 0x7FFFu;\n        v60 = *(char *)(*((_QWORD *)v6 + 4) + v47 - 2);\n        a4[v60] &= 0x7FFFu;\n      }\n      else\n      {\n        a4[v47] = v54 | 0x8000;\n      }\n      ++v15;\n      ++v47;\n    }\n    while ( v15 < v6[13] );\n  }\n  return a4;\n}", "assembly": "; \n; sub_180006A40 from 0x180006a40 to 0x180006eb9 (1145 bytes)\n; \n; 2 xrefs:\n; > sub_180008050 @ 0x18000824e\n; > <???> @ 0x1801f633c\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     [rsp+arg_8], rbx                                               ; +0x0, 0x180006a40\nmov     [rsp+arg_10], r8                                               ; +0x5, 0x180006a45\npush    rbp                                                            ; +0xa, 0x180006a4a\npush    rsi                                                            ; +0xb, 0x180006a4b\npush    rdi                                                            ; +0xc, 0x180006a4c\npush    r12                                                            ; +0xd, 0x180006a4d\npush    r13                                                            ; +0xf, 0x180006a4f\npush    r14                                                            ; +0x11, 0x180006a51\npush    r15                                                            ; +0x13, 0x180006a53\nsub     rsp, 50h                                                       ; +0x15, 0x180006a55\nmov     rax, [rcx]                                                     ; +0x19, 0x180006a59\nmov     rbp, rdx                                                       ; +0x1c, 0x180006a5c\nmov     edx, 1                                                         ; +0x1f, 0x180006a5f\nmov     r14, r9                                                        ; +0x24, 0x180006a64\nmov     rsi, r8                                                        ; +0x27, 0x180006a67\nmov     rcx, [rax+20h]                                                 ; +0x2a, 0x180006a6a\nmovsxd  rax, dword ptr [r8+38h]                                        ; +0x2e, 0x180006a6e\nmov     r15, [rcx+48h]                                                 ; +0x32, 0x180006a72\nlea     rcx, dword_1801A4200                                           ; +0x36, 0x180006a76\nmov     r13d, [rcx+rax*4-4]                                            ; +0x3d, 0x180006a7d\nmov     rcx, rbp                                                       ; +0x42, 0x180006a82\nmov     [rsp+88h+var_60], r13d                                         ; +0x45, 0x180006a85\ncall    sub_180001340                                                  ; +0x4a, 0x180006a8a\ncmp     eax, 1                                                         ; +0x4f, 0x180006a8f\njnz     loc_180006E9F                                                  ; +0x52, 0x180006a92\nlea     ebx, [r13-1]                                                   ; +0x58, 0x180006a98\nxor     edx, edx                                                       ; +0x5c, 0x180006a9c\nmov     eax, ebx                                                       ; +0x5e, 0x180006a9e\ntest    ebx, ebx                                                       ; +0x60, 0x180006aa0\njz      short loc_180006ABF                                            ; +0x62, 0x180006aa2\ninc     edx                                                            ; +0x64, 0x180006aa4\nshr     eax, 1                                                         ; +0x66, 0x180006aa6\njnz     short loc_180006AA4                                            ; +0x68, 0x180006aa8\nmov     rcx, rbp                                                       ; +0x6a, 0x180006aaa\ncall    sub_180001340                                                  ; +0x6d, 0x180006aad\nmov     [r14], eax                                                     ; +0x72, 0x180006ab2\nxor     edx, edx                                                       ; +0x75, 0x180006ab5\ninc     edx                                                            ; +0x77, 0x180006ab7\nshr     ebx, 1                                                         ; +0x79, 0x180006ab9\njnz     short loc_180006AB7                                            ; +0x7b, 0x180006abb\njmp     short loc_180006ACC                                            ; +0x7d, 0x180006abd\nmov     rcx, rbp                                                       ; +0x7f, 0x180006abf\ncall    sub_180001340                                                  ; +0x82, 0x180006ac2\nmov     [r14], eax                                                     ; +0x87, 0x180006ac7\nxor     edx, edx                                                       ; +0x8a, 0x180006aca\nmov     rcx, rbp                                                       ; +0x8c, 0x180006acc\ncall    sub_180001340                                                  ; +0x8f, 0x180006acf\nxor     r10d, r10d                                                     ; +0x94, 0x180006ad4\nmov     [r14+4], eax                                                   ; +0x97, 0x180006ad7\nmov     r12d, 2                                                        ; +0x9b, 0x180006adb\nmov     [rsp+88h+var_68], r10d                                         ; +0xa1, 0x180006ae1\nmov     r8d, r12d                                                      ; +0xa6, 0x180006ae6\nmov     [rsp+88h+arg_0], r12d                                          ; +0xa9, 0x180006ae9\ncmp     [rsi+30h], r10d                                                ; +0xb1, 0x180006af1\njle     loc_180006DB0                                                  ; +0xb5, 0x180006af5\nxor     ecx, ecx                                                       ; +0xbb, 0x180006afb\nmov     [rsp+88h+var_50], rcx                                          ; +0xbd, 0x180006afd\nmov     rax, [rsi+8]                                                   ; +0xc2, 0x180006b02\nxor     edi, edi                                                       ; +0xc6, 0x180006b06\nmovsx   rcx, byte ptr [rax+rcx]                                        ; +0xc8, 0x180006b08\nmov     rax, [rsi]                                                     ; +0xcd, 0x180006b0d\nmov     esi, 1                                                         ; +0xd0, 0x180006b10\nimul    rdx, rcx, 0Bh                                                  ; +0xd5, 0x180006b15\nlea     r9, [rax+3]                                                    ; +0xd9, 0x180006b19\nadd     r9, rdx                                                        ; +0xdd, 0x180006b1d\nmov     [rsp+88h+var_58], r9                                           ; +0xe0, 0x180006b20\nmovsx   r12, byte ptr [rdx+rax+1]                                      ; +0xe5, 0x180006b25\nmovsx   r13, byte ptr [rdx+rax]                                        ; +0xeb, 0x180006b2b\nmov     ecx, r12d                                                      ; +0xf0, 0x180006b30\nshl     esi, cl                                                        ; +0xf3, 0x180006b33\ntest    r12d, r12d                                                     ; +0xf5, 0x180006b35\njz      short loc_180006B6B                                            ; +0xf8, 0x180006b38\nmovzx   eax, byte ptr [rdx+rax+2]                                      ; +0xfa, 0x180006b3a\nmov     rdx, rbp                                                       ; +0xff, 0x180006b3f\nimul    rcx, rax, 78h ; 'x'                                            ; +0x102, 0x180006b42\nadd     rcx, r15                                                       ; +0x106, 0x180006b46\ncall    sub_1800013B0                                                  ; +0x109, 0x180006b49\nmov     edi, eax                                                       ; +0x10e, 0x180006b4e\ncmp     eax, 0FFFFFFFFh                                                ; +0x110, 0x180006b50\njz      loc_180006E9F                                                  ; +0x113, 0x180006b53\nmov     r9, [rsp+88h+var_58]                                           ; +0x119, 0x180006b59\nmov     r8d, [rsp+88h+arg_0]                                           ; +0x11e, 0x180006b5e\nmov     r10d, [rsp+88h+var_68]                                         ; +0x126, 0x180006b66\ncmp     r13d, 4                                                        ; +0x12b, 0x180006b6b\njnz     loc_180006C44                                                  ; +0x12f, 0x180006b6f\nmovsxd  rcx, edi                                                       ; +0x135, 0x180006b75\nmovsxd  r8, esi                                                        ; +0x138, 0x180006b78\ndec     r8                                                             ; +0x13b, 0x180006b7b\nand     rcx, r8                                                        ; +0x13e, 0x180006b7e\nmov     rax, r8                                                        ; +0x141, 0x180006b81\nmovzx   r10d, byte ptr [rcx+r9]                                        ; +0x144, 0x180006b84\nmov     ecx, r12d                                                      ; +0x149, 0x180006b89\nsar     edi, cl                                                        ; +0x14c, 0x180006b8c\nmov     rcx, r12                                                       ; +0x14e, 0x180006b8e\nmovsxd  rdx, edi                                                       ; +0x151, 0x180006b91\nand     rax, rdx                                                       ; +0x154, 0x180006b94\nsar     rdx, cl                                                        ; +0x157, 0x180006b97\nmovzx   edi, byte ptr [rax+r9]                                         ; +0x15a, 0x180006b9a\nmov     rax, rdx                                                       ; +0x15f, 0x180006b9f\nsar     rdx, cl                                                        ; +0x162, 0x180006ba2\nand     rax, r8                                                        ; +0x165, 0x180006ba5\nand     rdx, r8                                                        ; +0x168, 0x180006ba8\nmovzx   esi, byte ptr [rax+r9]                                         ; +0x16b, 0x180006bab\nmovzx   r12d, byte ptr [rdx+r9]                                        ; +0x170, 0x180006bb0\ncmp     r10b, 0FFh                                                     ; +0x175, 0x180006bb5\njnz     short loc_180006BBF                                            ; +0x179, 0x180006bb9\nxor     eax, eax                                                       ; +0x17b, 0x180006bbb\njmp     short loc_180006BCE                                            ; +0x17d, 0x180006bbd\nimul    rcx, r10, 78h ; 'x'                                            ; +0x17f, 0x180006bbf\nmov     rdx, rbp                                                       ; +0x183, 0x180006bc3\nadd     rcx, r15                                                       ; +0x186, 0x180006bc6\ncall    sub_1800013B0                                                  ; +0x189, 0x180006bc9\nmovsxd  rbx, [rsp+88h+arg_0]                                           ; +0x18e, 0x180006bce\nmov     [r14+rbx*4], eax                                               ; +0x196, 0x180006bd6\ncmp     dil, 0FFh                                                      ; +0x19a, 0x180006bda\njnz     short loc_180006BE4                                            ; +0x19e, 0x180006bde\nxor     eax, eax                                                       ; +0x1a0, 0x180006be0\njmp     short loc_180006BF3                                            ; +0x1a2, 0x180006be2\nimul    rcx, rdi, 78h ; 'x'                                            ; +0x1a4, 0x180006be4\nmov     rdx, rbp                                                       ; +0x1a8, 0x180006be8\nadd     rcx, r15                                                       ; +0x1ab, 0x180006beb\ncall    sub_1800013B0                                                  ; +0x1ae, 0x180006bee\nmov     [r14+rbx*4+4], eax                                             ; +0x1b3, 0x180006bf3\ncmp     sil, 0FFh                                                      ; +0x1b8, 0x180006bf8\njnz     short loc_180006C02                                            ; +0x1bc, 0x180006bfc\nxor     eax, eax                                                       ; +0x1be, 0x180006bfe\njmp     short loc_180006C11                                            ; +0x1c0, 0x180006c00\nimul    rcx, rsi, 78h ; 'x'                                            ; +0x1c2, 0x180006c02\nmov     rdx, rbp                                                       ; +0x1c6, 0x180006c06\nadd     rcx, r15                                                       ; +0x1c9, 0x180006c09\ncall    sub_1800013B0                                                  ; +0x1cc, 0x180006c0c\nmov     [r14+rbx*4+8], eax                                             ; +0x1d1, 0x180006c11\ncmp     r12d, 0FFh                                                     ; +0x1d6, 0x180006c16\njnz     short loc_180006C2B                                            ; +0x1dd, 0x180006c1d\nxor     eax, eax                                                       ; +0x1df, 0x180006c1f\nmov     [r14+rbx*4+0Ch], eax                                           ; +0x1e1, 0x180006c21\njmp     loc_180006D66                                                  ; +0x1e6, 0x180006c26\nimul    rcx, r12, 78h ; 'x'                                            ; +0x1eb, 0x180006c2b\nmov     rdx, rbp                                                       ; +0x1ef, 0x180006c2f\nadd     rcx, r15                                                       ; +0x1f2, 0x180006c32\ncall    sub_1800013B0                                                  ; +0x1f5, 0x180006c35\nmov     [r14+rbx*4+0Ch], eax                                           ; +0x1fa, 0x180006c3a\njmp     loc_180006D66                                                  ; +0x1ff, 0x180006c3f\ncmp     r13d, 3                                                        ; +0x204, 0x180006c44\njnz     loc_180006CE9                                                  ; +0x208, 0x180006c48\nmovsxd  r8, edi                                                        ; +0x20e, 0x180006c4e\nmov     rcx, r12                                                       ; +0x211, 0x180006c51\nmovsxd  rdx, esi                                                       ; +0x214, 0x180006c54\ndec     rdx                                                            ; +0x217, 0x180006c57\nmov     rax, rdx                                                       ; +0x21a, 0x180006c5a\nand     rax, r8                                                        ; +0x21d, 0x180006c5d\nsar     r8, cl                                                         ; +0x220, 0x180006c60\nmovzx   r10d, byte ptr [rax+r9]                                        ; +0x223, 0x180006c63\nmov     rax, r8                                                        ; +0x228, 0x180006c68\nsar     r8, cl                                                         ; +0x22b, 0x180006c6b\nand     rax, rdx                                                       ; +0x22e, 0x180006c6e\nand     r8, rdx                                                        ; +0x231, 0x180006c71\nmovzx   edi, byte ptr [rax+r9]                                         ; +0x234, 0x180006c74\nmovzx   esi, byte ptr [r8+r9]                                          ; +0x239, 0x180006c79\ncmp     r10b, 0FFh                                                     ; +0x23e, 0x180006c7e\njnz     short loc_180006C88                                            ; +0x242, 0x180006c82\nxor     eax, eax                                                       ; +0x244, 0x180006c84\njmp     short loc_180006C97                                            ; +0x246, 0x180006c86\nimul    rcx, r10, 78h ; 'x'                                            ; +0x248, 0x180006c88\nmov     rdx, rbp                                                       ; +0x24c, 0x180006c8c\nadd     rcx, r15                                                       ; +0x24f, 0x180006c8f\ncall    sub_1800013B0                                                  ; +0x252, 0x180006c92\nmovsxd  rbx, [rsp+88h+arg_0]                                           ; +0x257, 0x180006c97\nmov     [r14+rbx*4], eax                                               ; +0x25f, 0x180006c9f\ncmp     dil, 0FFh                                                      ; +0x263, 0x180006ca3\njnz     short loc_180006CAD                                            ; +0x267, 0x180006ca7\nxor     eax, eax                                                       ; +0x269, 0x180006ca9\njmp     short loc_180006CBC                                            ; +0x26b, 0x180006cab\nimul    rcx, rdi, 78h ; 'x'                                            ; +0x26d, 0x180006cad\nmov     rdx, rbp                                                       ; +0x271, 0x180006cb1\nadd     rcx, r15                                                       ; +0x274, 0x180006cb4\ncall    sub_1800013B0                                                  ; +0x277, 0x180006cb7\nmov     [r14+rbx*4+4], eax                                             ; +0x27c, 0x180006cbc\ncmp     sil, 0FFh                                                      ; +0x281, 0x180006cc1\njnz     short loc_180006CD3                                            ; +0x285, 0x180006cc5\nxor     eax, eax                                                       ; +0x287, 0x180006cc7\nmov     [r14+rbx*4+8], eax                                             ; +0x289, 0x180006cc9\njmp     loc_180006D66                                                  ; +0x28e, 0x180006cce\nimul    rcx, rsi, 78h ; 'x'                                            ; +0x293, 0x180006cd3\nmov     rdx, rbp                                                       ; +0x297, 0x180006cd7\nadd     rcx, r15                                                       ; +0x29a, 0x180006cda\ncall    sub_1800013B0                                                  ; +0x29d, 0x180006cdd\nmov     [r14+rbx*4+8], eax                                             ; +0x2a2, 0x180006ce2\njmp     short loc_180006D66                                            ; +0x2a7, 0x180006ce7\ntest    r13, r13                                                       ; +0x2a9, 0x180006ce9\njle     loc_180006D73                                                  ; +0x2ac, 0x180006cec\nxor     ebx, ebx                                                       ; +0x2b2, 0x180006cf2\nmovsxd  rcx, esi                                                       ; +0x2b4, 0x180006cf4\ndec     rcx                                                            ; +0x2b7, 0x180006cf7\nmovsxd  r8, r8d                                                        ; +0x2ba, 0x180006cfa\nmov     [rsp+88h+var_40], rcx                                          ; +0x2bd, 0x180006cfd\nmov     [rsp+88h+var_48], r8                                           ; +0x2c2, 0x180006d02\nnop     word ptr [rax+rax+00000000h]                                   ; +0x2c7, 0x180006d07\nmovsxd  rax, edi                                                       ; +0x2d0, 0x180006d10\nand     rax, rcx                                                       ; +0x2d3, 0x180006d13\nmov     ecx, r12d                                                      ; +0x2d6, 0x180006d16\nsar     edi, cl                                                        ; +0x2d9, 0x180006d19\nmovzx   edx, byte ptr [rax+r9]                                         ; +0x2db, 0x180006d1b\nlea     rax, [r8+rbx]                                                  ; +0x2e0, 0x180006d20\nlea     rsi, [r14+rax*4]                                               ; +0x2e4, 0x180006d24\ncmp     dl, 0FFh                                                       ; +0x2e8, 0x180006d28\njz      short loc_180006D53                                            ; +0x2eb, 0x180006d2b\nimul    rcx, rdx, 78h ; 'x'                                            ; +0x2ed, 0x180006d2d\nmov     rdx, rbp                                                       ; +0x2f1, 0x180006d31\nadd     rcx, r15                                                       ; +0x2f4, 0x180006d34\ncall    sub_1800013B0                                                  ; +0x2f7, 0x180006d37\nmov     [rsi], eax                                                     ; +0x2fc, 0x180006d3c\ncmp     eax, 0FFFFFFFFh                                                ; +0x2fe, 0x180006d3e\njz      loc_180006E9F                                                  ; +0x301, 0x180006d41\nmov     r9, [rsp+88h+var_58]                                           ; +0x307, 0x180006d47\nmov     r8, [rsp+88h+var_48]                                           ; +0x30c, 0x180006d4c\njmp     short loc_180006D59                                            ; +0x311, 0x180006d51\nmov     dword ptr [rsi], 0                                             ; +0x313, 0x180006d53\nmov     rcx, [rsp+88h+var_40]                                          ; +0x319, 0x180006d59\ninc     rbx                                                            ; +0x31e, 0x180006d5e\ncmp     rbx, r13                                                       ; +0x321, 0x180006d61\njl      short loc_180006D10                                            ; +0x324, 0x180006d64\nmov     r8d, [rsp+88h+arg_0]                                           ; +0x326, 0x180006d66\nmov     r10d, [rsp+88h+var_68]                                         ; +0x32e, 0x180006d6e\nmov     rcx, [rsp+88h+var_50]                                          ; +0x333, 0x180006d73\nadd     r8d, r13d                                                      ; +0x338, 0x180006d78\nmov     rsi, [rsp+88h+arg_10]                                          ; +0x33b, 0x180006d7b\ninc     r10d                                                           ; +0x343, 0x180006d83\ninc     rcx                                                            ; +0x346, 0x180006d86\nmov     [rsp+88h+arg_0], r8d                                           ; +0x349, 0x180006d89\nmov     [rsp+88h+var_68], r10d                                         ; +0x351, 0x180006d91\nmov     [rsp+88h+var_50], rcx                                          ; +0x356, 0x180006d96\ncmp     r10d, [rsi+30h]                                                ; +0x35b, 0x180006d9b\njl      loc_180006B02                                                  ; +0x35f, 0x180006d9f\nmov     r13d, [rsp+88h+var_60]                                         ; +0x365, 0x180006da5\nmov     r12d, 2                                                        ; +0x36a, 0x180006daa\ncmp     dword ptr [rsi+34h], 2                                         ; +0x370, 0x180006db0\njle     loc_180006E9A                                                  ; +0x374, 0x180006db4\nmov     rdi, r12                                                       ; +0x37a, 0x180006dba\nnop     dword ptr [rax]                                                ; +0x37d, 0x180006dbd\nmov     r9, [rsi+10h]                                                  ; +0x380, 0x180006dc0\nmov     rax, [rsi+28h]                                                 ; +0x384, 0x180006dc4\nmovsx   rcx, byte ptr [rdi+rax-2]                                      ; +0x388, 0x180006dc8\nmov     rax, [rsi+20h]                                                 ; +0x38e, 0x180006dce\nmov     ebx, [r14+rcx*4]                                               ; +0x392, 0x180006dd2\nmovsx   r8, byte ptr [rax+rdi-2]                                       ; +0x396, 0x180006dd6\nand     ebx, 7FFFh                                                     ; +0x39c, 0x180006ddc\nmovzx   r10d, word ptr [r9+rcx*2]                                      ; +0x3a2, 0x180006de2\nmovzx   ecx, word ptr [r9+rdi*2]                                       ; +0x3a7, 0x180006de7\nsub     ecx, r10d                                                      ; +0x3ac, 0x180006dec\nmov     r11d, [r14+r8*4]                                               ; +0x3af, 0x180006def\nand     r11d, 7FFFh                                                    ; +0x3b3, 0x180006df3\nsub     r11d, ebx                                                      ; +0x3ba, 0x180006dfa\nmov     eax, r11d                                                      ; +0x3bd, 0x180006dfd\ncdq                                                                    ; +0x3c0, 0x180006e00\nxor     eax, edx                                                       ; +0x3c1, 0x180006e01\nsub     eax, edx                                                       ; +0x3c3, 0x180006e03\nimul    eax, ecx                                                       ; +0x3c5, 0x180006e05\nmovzx   ecx, word ptr [r9+r8*2]                                        ; +0x3c8, 0x180006e08\nsub     ecx, r10d                                                      ; +0x3cd, 0x180006e0d\ncdq                                                                    ; +0x3d0, 0x180006e10\nidiv    ecx                                                            ; +0x3d1, 0x180006e11\nmov     edx, r13d                                                      ; +0x3d3, 0x180006e13\nlea     ecx, [rax+rbx]                                                 ; +0x3d6, 0x180006e16\nsub     ebx, eax                                                       ; +0x3d9, 0x180006e19\nmov     eax, [r14+rdi*4]                                               ; +0x3db, 0x180006e1b\ntest    r11d, r11d                                                     ; +0x3df, 0x180006e1f\ncmovns  ebx, ecx                                                       ; +0x3e2, 0x180006e22\nsub     edx, ebx                                                       ; +0x3e5, 0x180006e25\ntest    eax, eax                                                       ; +0x3e7, 0x180006e27\njz      short loc_180006E82                                            ; +0x3e9, 0x180006e29\ncmp     edx, ebx                                                       ; +0x3eb, 0x180006e2b\nmov     ecx, ebx                                                       ; +0x3ed, 0x180006e2d\ncmovl   ecx, edx                                                       ; +0x3ef, 0x180006e2f\nadd     ecx, ecx                                                       ; +0x3f2, 0x180006e32\ncmp     eax, ecx                                                       ; +0x3f4, 0x180006e34\njl      short loc_180006E47                                            ; +0x3f6, 0x180006e36\ncmp     edx, ebx                                                       ; +0x3f8, 0x180006e38\njle     short loc_180006E40                                            ; +0x3fa, 0x180006e3a\nsub     eax, ebx                                                       ; +0x3fc, 0x180006e3c\njmp     short loc_180006E55                                            ; +0x3fe, 0x180006e3e\nsub     edx, eax                                                       ; +0x400, 0x180006e40\nlea     eax, [rdx-1]                                                   ; +0x402, 0x180006e42\njmp     short loc_180006E55                                            ; +0x405, 0x180006e45\ntest    al, 1                                                          ; +0x407, 0x180006e47\njz      short loc_180006E53                                            ; +0x409, 0x180006e49\ninc     eax                                                            ; +0x40b, 0x180006e4b\nsar     eax, 1                                                         ; +0x40d, 0x180006e4d\nneg     eax                                                            ; +0x40f, 0x180006e4f\njmp     short loc_180006E55                                            ; +0x411, 0x180006e51\nsar     eax, 1                                                         ; +0x413, 0x180006e53\nlea     ecx, [rbx+rax]                                                 ; +0x415, 0x180006e55\nmov     [r14+rdi*4], ecx                                               ; +0x418, 0x180006e58\nmov     rax, [rsi+28h]                                                 ; +0x41c, 0x180006e5c\nmovsx   rcx, byte ptr [rdi+rax-2]                                      ; +0x420, 0x180006e60\nand     dword ptr [r14+rcx*4], 7FFFh                                   ; +0x426, 0x180006e66\nmov     rax, [rsi+20h]                                                 ; +0x42e, 0x180006e6e\nmovsx   rcx, byte ptr [rax+rdi-2]                                      ; +0x432, 0x180006e72\nand     dword ptr [r14+rcx*4], 7FFFh                                   ; +0x438, 0x180006e78\njmp     short loc_180006E8A                                            ; +0x440, 0x180006e80\nbts     ebx, 0Fh                                                       ; +0x442, 0x180006e82\nmov     [r14+rdi*4], ebx                                               ; +0x446, 0x180006e86\ninc     r12d                                                           ; +0x44a, 0x180006e8a\ninc     rdi                                                            ; +0x44d, 0x180006e8d\ncmp     r12d, [rsi+34h]                                                ; +0x450, 0x180006e90\njl      loc_180006DC0                                                  ; +0x454, 0x180006e94\nmov     rax, r14                                                       ; +0x45a, 0x180006e9a\njmp     short loc_180006EA1                                            ; +0x45d, 0x180006e9d\nxor     eax, eax                                                       ; +0x45f, 0x180006e9f\nmov     rbx, [rsp+88h+arg_8]                                           ; +0x461, 0x180006ea1\nadd     rsp, 50h                                                       ; +0x469, 0x180006ea9\npop     r15                                                            ; +0x46d, 0x180006ead\npop     r14                                                            ; +0x46f, 0x180006eaf\npop     r13                                                            ; +0x471, 0x180006eb1\npop     r12                                                            ; +0x473, 0x180006eb3\npop     rdi                                                            ; +0x475, 0x180006eb5\npop     rsi                                                            ; +0x476, 0x180006eb6\npop     rbp                                                            ; +0x477, 0x180006eb7\nretn                                                                   ; +0x478, 0x180006eb8", "xrefs": ["sub_180008050 @ 0x18000824e", "<???> @ 0x1801f633c"], "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"}