{"type": "func", "start": 6442477120, "end": 6442478142, "name": "sub_180006640", "pseudocode": "// \n// sub_180006640 from 0x180006640 to 0x180006a3e (1022 bytes)\n// \n// 2 xrefs:\n// > sub_180007790 @ 0x1800078bf\n// > <???> @ 0x1801f6330\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_180006640(__int64 a1, _QWORD *a2)\n{\n  __int64 v2; // r12\n  unsigned int v4; // edi\n  int v5; // ebx\n  __int64 v6; // rsi\n  unsigned int v7; // eax\n  int v8; // ebp\n  int v9; // edi\n  int v10; // r13d\n  int v11; // ebp\n  __int64 v12; // r14\n  int v13; // edi\n  __int64 v14; // rbx\n  int v15; // eax\n  int v16; // eax\n  int v17; // ecx\n  int v18; // r13d\n  __int64 v19; // r9\n  char *v20; // r8\n  __int64 v21; // rcx\n  __int64 v22; // rax\n  bool v23; // cc\n  int v24; // edi\n  int v25; // r12d\n  __int64 v26; // rbx\n  __int64 v27; // rbp\n  __int64 v28; // rdi\n  int v29; // r14d\n  unsigned __int16 v30; // ax\n  int v32; // eax\n  int v33; // edx\n  int i; // ebp\n  unsigned __int16 *v35; // rdx\n  char v36; // bl\n  int v37; // r8d\n  __int64 v38; // r14\n  char v39; // di\n  int v40; // ecx\n  int v41; // r9d\n  unsigned int j; // r10d\n  unsigned int v43; // eax\n  int v44; // [rsp+50h] [rbp+8h]\n\n  v2 = *(_QWORD *)(a1 + 32);\n  v4 = 0;\n  v5 = -1;\n  v6 = sub_180018290(1, 64);\n  v7 = sub_180001340((__int64)a2, 5);\n  *(_DWORD *)(v6 + 48) = v7;\n  v8 = 0;\n  *(_QWORD *)(v6 + 8) = sub_1800182F0(v7);\n  if ( *(int *)(v6 + 48) <= 0 )\n  {\n    *(_QWORD *)v6 = sub_1800182F0(0);\n  }\n  else\n  {\n    do\n    {\n      v9 = v5;\n      *(_BYTE *)(v8 + *(_QWORD *)(v6 + 8)) = sub_180001340((__int64)a2, 4);\n      v5 = *(char *)(v8 + *(_QWORD *)(v6 + 8));\n      if ( v9 >= v5 )\n        v5 = v9;\n      ++v8;\n    }\n    while ( v8 < *(_DWORD *)(v6 + 48) );\n    v10 = v5 + 1;\n    *(_QWORD *)v6 = sub_1800182F0((unsigned int)(11 * (v5 + 1)));\n    v11 = 0;\n    if ( v5 + 1 > 0 )\n    {\n      while ( 1 )\n      {\n        v12 = 11LL * v11;\n        *(_BYTE *)(v12 + *(_QWORD *)v6) = sub_180001340((__int64)a2, 3) + 1;\n        *(_BYTE *)(v12 + *(_QWORD *)v6 + 1) = sub_180001340((__int64)a2, 2);\n        if ( (int)sub_180001310(a2) < 0 )\n          return 0;\n        if ( *(_BYTE *)(*(_QWORD *)v6 + v12 + 1) )\n          *(_BYTE *)(v12 + *(_QWORD *)v6 + 2) = sub_180001340((__int64)a2, 8);\n        else\n          *(_BYTE *)(*(_QWORD *)v6 + v12 + 2) = 0;\n        if ( *(unsigned __int8 *)(*(_QWORD *)v6 + v12 + 2) >= *(int *)(v2 + 24) )\n          return 0;\n        v13 = 0;\n        if ( 1 << *(_BYTE *)(*(_QWORD *)v6 + v12 + 1) > 0 )\n        {\n          v14 = 11LL * v11;\n          do\n          {\n            *(_BYTE *)(*(_QWORD *)v6 + v14 + 3) = sub_180001340((__int64)a2, 8) - 1;\n            v15 = *(unsigned __int8 *)(*(_QWORD *)v6 + v14 + 3);\n            if ( v15 >= *(_DWORD *)(v2 + 24) && (_BYTE)v15 != 0xFF )\n              return 0;\n            ++v13;\n            ++v14;\n          }\n          while ( v13 < 1 << *(_BYTE *)(v12 + *(_QWORD *)v6 + 1) );\n        }\n        if ( ++v11 >= v10 )\n        {\n          v4 = 0;\n          goto LABEL_20;\n        }\n      }\n    }\n    v4 = 0;\n  }\nLABEL_20:\n  *(_DWORD *)(v6 + 56) = sub_180001340((__int64)a2, 2) + 1;\n  v16 = sub_180001340((__int64)a2, 4);\n  v17 = *(_DWORD *)(v6 + 48);\n  v18 = v16;\n  if ( v17 > 0 )\n  {\n    v19 = (unsigned int)v17;\n    v20 = *(char **)(v6 + 8);\n    do\n    {\n      v21 = *v20++;\n      v4 += *(char *)(11 * v21 + *(_QWORD *)v6);\n      --v19;\n    }\n    while ( v19 );\n  }\n  *(_QWORD *)(v6 + 16) = sub_1800182F0(2 * (v4 + 2));\n  *(_QWORD *)(v6 + 24) = sub_1800182F0(v4 + 2);\n  *(_QWORD *)(v6 + 40) = sub_1800182F0(v4);\n  v22 = sub_1800182F0(v4);\n  v23 = *(_DWORD *)(v6 + 48) <= 0;\n  v24 = 0;\n  *(_QWORD *)(v6 + 32) = v22;\n  v25 = 0;\n  if ( !v23 )\n  {\n    v26 = 0;\n    while ( 1 )\n    {\n      v24 += *(char *)(11LL * *(char *)(v25 + *(_QWORD *)(v6 + 8)) + *(_QWORD *)v6);\n      v27 = v24;\n      v44 = v24;\n      if ( v26 < v24 )\n        break;\nLABEL_30:\n      if ( ++v25 >= *(_DWORD *)(v6 + 48) )\n        goto LABEL_31;\n    }\n    v28 = 2 * v26 + 4;\n    v29 = __ROL4__(1, v18);\n    while ( 1 )\n    {\n      v30 = sub_180001340((__int64)a2, v18);\n      *(_WORD *)(v28 + *(_QWORD *)(v6 + 16)) = v30;\n      if ( v30 >= v29 )\n        return 0;\n      ++v26;\n      v28 += 2;\n      if ( v26 >= v27 )\n      {\n        v24 = v44;\n        goto LABEL_30;\n      }\n    }\n  }\nLABEL_31:\n  if ( (unsigned int)sub_180001310(a2) )\n    return 0;\n  **(_WORD **)(v6 + 16) = 0;\n  *(_WORD *)(*(_QWORD *)(v6 + 16) + 2LL) = 1 << v18;\n  LOWORD(v32) = v24 + 2;\n  *(_DWORD *)(v6 + 52) = v24 + 2;\n  v33 = 0;\n  if ( v24 + 2 > 0 )\n  {\n    do\n    {\n      *(_BYTE *)(v33 + *(_QWORD *)(v6 + 24)) = v33;\n      ++v33;\n      v32 = *(_DWORD *)(v6 + 52);\n    }\n    while ( v33 < v32 );\n  }\n  sub_180006ED0(*(_QWORD *)(v6 + 24), *(_QWORD *)(v6 + 16), (unsigned __int16)v32);\n  for ( i = 0; i < *(_DWORD *)(v6 + 52) - 2; *(_BYTE *)(v38 + *(_QWORD *)(v6 + 32)) = v39 )\n  {\n    v35 = *(unsigned __int16 **)(v6 + 16);\n    v36 = 0;\n    v37 = 0;\n    v38 = i;\n    v39 = 1;\n    v40 = 0;\n    v41 = v35[1];\n    for ( j = v35[i + 2]; v40 < i + 2; ++v35 )\n    {\n      v43 = *v35;\n      if ( (int)v43 > v37 && v43 < j )\n      {\n        v36 = v40;\n        v37 = *v35;\n      }\n      if ( (int)v43 < v41 && v43 > j )\n      {\n        v39 = v40;\n        v41 = *v35;\n      }\n      ++v40;\n    }\n    ++i;\n    *(_BYTE *)(v38 + *(_QWORD *)(v6 + 40)) = v36;\n  }\n  return v6;\n}", "assembly": "; \n; sub_180006640 from 0x180006640 to 0x180006a3e (1022 bytes)\n; \n; 2 xrefs:\n; > sub_180007790 @ 0x1800078bf\n; > <???> @ 0x1801f6330\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, 0x180006640\nmov     [rsp+arg_10], rbp                                              ; +0x5, 0x180006645\nmov     [rsp+arg_18], rsi                                              ; +0xa, 0x18000664a\npush    rdi                                                            ; +0xf, 0x18000664f\npush    r12                                                            ; +0x10, 0x180006650\npush    r13                                                            ; +0x12, 0x180006652\npush    r14                                                            ; +0x14, 0x180006654\npush    r15                                                            ; +0x16, 0x180006656\nsub     rsp, 20h                                                       ; +0x18, 0x180006658\nmov     r12, [rcx+20h]                                                 ; +0x1c, 0x18000665c\nxor     r14d, r14d                                                     ; +0x20, 0x180006660\nmov     r15, rdx                                                       ; +0x23, 0x180006663\nmov     [rsp+48h+arg_0], r14d                                          ; +0x26, 0x180006666\nmov     edi, r14d                                                      ; +0x2b, 0x18000666b\nlea     ebx, [r14-1]                                                   ; +0x2e, 0x18000666e\nlea     edx, [rbx+41h]                                                 ; +0x32, 0x180006672\nlea     ecx, [rbx+2]                                                   ; +0x35, 0x180006675\ncall    sub_180018290                                                  ; +0x38, 0x180006678\nlea     edx, [rbx+6]                                                   ; +0x3d, 0x18000667d\nmov     rcx, r15                                                       ; +0x40, 0x180006680\nmov     rsi, rax                                                       ; +0x43, 0x180006683\ncall    sub_180001340                                                  ; +0x46, 0x180006686\nmov     ecx, eax                                                       ; +0x4b, 0x18000668b\nmov     [rsi+30h], eax                                                 ; +0x4d, 0x18000668d\ncall    sub_1800182F0                                                  ; +0x50, 0x180006690\nmov     ebp, r14d                                                      ; +0x55, 0x180006695\nmov     [rsi+8], rax                                                   ; +0x58, 0x180006698\ncmp     [rsi+30h], r14d                                                ; +0x5c, 0x18000669c\njle     loc_1800067F7                                                  ; +0x60, 0x1800066a0\nnop     word ptr [rax+rax+00000000h]                                   ; +0x66, 0x1800066a6\nmov     edi, ebx                                                       ; +0x70, 0x1800066b0\nmov     edx, 4                                                         ; +0x72, 0x1800066b2\nmov     rcx, r15                                                       ; +0x77, 0x1800066b7\nmovsxd  rbx, ebp                                                       ; +0x7a, 0x1800066ba\ncall    sub_180001340                                                  ; +0x7d, 0x1800066bd\nmov     rcx, [rsi+8]                                                   ; +0x82, 0x1800066c2\nmov     [rbx+rcx], al                                                  ; +0x86, 0x1800066c6\nmov     rax, [rsi+8]                                                   ; +0x89, 0x1800066c9\nmovsx   ebx, byte ptr [rbx+rax]                                        ; +0x8d, 0x1800066cd\ncmp     edi, ebx                                                       ; +0x91, 0x1800066d1\ncmovge  ebx, edi                                                       ; +0x93, 0x1800066d3\ninc     ebp                                                            ; +0x96, 0x1800066d6\ncmp     ebp, [rsi+30h]                                                 ; +0x98, 0x1800066d8\njl      short loc_1800066B0                                            ; +0x9b, 0x1800066db\nlea     eax, [rbx+1]                                                   ; +0x9d, 0x1800066dd\nimul    ecx, eax, 0Bh                                                  ; +0xa0, 0x1800066e0\ncall    sub_1800182F0                                                  ; +0xa3, 0x1800066e3\nlea     r13d, [rbx+1]                                                  ; +0xa8, 0x1800066e8\nmov     [rsi], rax                                                     ; +0xac, 0x1800066ec\nmov     ebp, r14d                                                      ; +0xaf, 0x1800066ef\ntest    r13d, r13d                                                     ; +0xb2, 0x1800066f2\njle     loc_180006803                                                  ; +0xb5, 0x1800066f5\nnop     dword ptr [rax+rax+00h]                                        ; +0xbb, 0x1800066fb\nmov     edx, 3                                                         ; +0xc0, 0x180006700\nmov     rcx, r15                                                       ; +0xc5, 0x180006705\ncall    sub_180001340                                                  ; +0xc8, 0x180006708\nmovsxd  rcx, ebp                                                       ; +0xcd, 0x18000670d\ninc     al                                                             ; +0xd0, 0x180006710\nimul    r14, rcx, 0Bh                                                  ; +0xd2, 0x180006712\nmov     rcx, [rsi]                                                     ; +0xd6, 0x180006716\nmov     edx, 2                                                         ; +0xd9, 0x180006719\nmov     [r14+rcx], al                                                  ; +0xde, 0x18000671e\nmov     rcx, r15                                                       ; +0xe2, 0x180006722\ncall    sub_180001340                                                  ; +0xe5, 0x180006725\nmov     rcx, [rsi]                                                     ; +0xea, 0x18000672a\nmov     [r14+rcx+1], al                                                ; +0xed, 0x18000672d\nmov     rcx, r15                                                       ; +0xf2, 0x180006732\ncall    sub_180001310                                                  ; +0xf5, 0x180006735\ntest    eax, eax                                                       ; +0xfa, 0x18000673a\njs      loc_180006923                                                  ; +0xfc, 0x18000673c\nmov     rcx, [rsi]                                                     ; +0x102, 0x180006742\ncmp     byte ptr [rcx+r14+1], 0                                        ; +0x105, 0x180006745\njz      short loc_180006764                                            ; +0x10b, 0x18000674b\nmov     edx, 8                                                         ; +0x10d, 0x18000674d\nmov     rcx, r15                                                       ; +0x112, 0x180006752\ncall    sub_180001340                                                  ; +0x115, 0x180006755\nmov     rcx, [rsi]                                                     ; +0x11a, 0x18000675a\nmov     [r14+rcx+2], al                                                ; +0x11d, 0x18000675d\njmp     short loc_18000676A                                            ; +0x122, 0x180006762\nmov     byte ptr [rcx+r14+2], 0                                        ; +0x124, 0x180006764\nmov     rcx, [rsi]                                                     ; +0x12a, 0x18000676a\nmovzx   eax, byte ptr [rcx+r14+2]                                      ; +0x12d, 0x18000676d\ncmp     eax, [r12+18h]                                                 ; +0x133, 0x180006773\njge     loc_180006923                                                  ; +0x138, 0x180006778\nmovzx   ecx, byte ptr [rcx+r14+1]                                      ; +0x13e, 0x18000677e\nmov     eax, 1                                                         ; +0x144, 0x180006784\nshl     eax, cl                                                        ; +0x149, 0x180006789\nxor     edi, edi                                                       ; +0x14b, 0x18000678b\ntest    eax, eax                                                       ; +0x14d, 0x18000678d\njle     short loc_1800067E3                                            ; +0x14f, 0x18000678f\nmov     rbx, r14                                                       ; +0x151, 0x180006791\nnop     dword ptr [rax+00h]                                            ; +0x154, 0x180006794\nnop     dword ptr [rax+rax+00000000h]                                  ; +0x158, 0x180006798\nmov     edx, 8                                                         ; +0x160, 0x1800067a0\nmov     rcx, r15                                                       ; +0x165, 0x1800067a5\ncall    sub_180001340                                                  ; +0x168, 0x1800067a8\nmov     rcx, [rsi]                                                     ; +0x16d, 0x1800067ad\ndec     al                                                             ; +0x170, 0x1800067b0\nmov     [rcx+rbx+3], al                                                ; +0x172, 0x1800067b2\nmov     rcx, [rsi]                                                     ; +0x176, 0x1800067b6\nmovzx   eax, byte ptr [rcx+rbx+3]                                      ; +0x179, 0x1800067b9\ncmp     eax, [r12+18h]                                                 ; +0x17e, 0x1800067be\njl      short loc_1800067CD                                            ; +0x183, 0x1800067c3\ncmp     al, 0FFh                                                       ; +0x185, 0x1800067c5\njnz     loc_180006923                                                  ; +0x187, 0x1800067c7\nmovzx   ecx, byte ptr [r14+rcx+1]                                      ; +0x18d, 0x1800067cd\nmov     eax, 1                                                         ; +0x193, 0x1800067d3\nshl     eax, cl                                                        ; +0x198, 0x1800067d8\ninc     edi                                                            ; +0x19a, 0x1800067da\ninc     rbx                                                            ; +0x19c, 0x1800067dc\ncmp     edi, eax                                                       ; +0x19f, 0x1800067df\njl      short loc_1800067A0                                            ; +0x1a1, 0x1800067e1\ninc     ebp                                                            ; +0x1a3, 0x1800067e3\ncmp     ebp, r13d                                                      ; +0x1a5, 0x1800067e5\njl      loc_180006700                                                  ; +0x1a8, 0x1800067e8\nmov     edi, [rsp+48h+arg_0]                                           ; +0x1ae, 0x1800067ee\nxor     r14d, r14d                                                     ; +0x1b2, 0x1800067f2\njmp     short loc_180006805                                            ; +0x1b5, 0x1800067f5\nxor     ecx, ecx                                                       ; +0x1b7, 0x1800067f7\ncall    sub_1800182F0                                                  ; +0x1b9, 0x1800067f9\nmov     [rsi], rax                                                     ; +0x1be, 0x1800067fe\njmp     short loc_180006805                                            ; +0x1c1, 0x180006801\nmov     edi, ebp                                                       ; +0x1c3, 0x180006803\nmov     edx, 2                                                         ; +0x1c5, 0x180006805\nmov     rcx, r15                                                       ; +0x1ca, 0x18000680a\ncall    sub_180001340                                                  ; +0x1cd, 0x18000680d\ninc     eax                                                            ; +0x1d2, 0x180006812\nmov     edx, 4                                                         ; +0x1d4, 0x180006814\nmov     rcx, r15                                                       ; +0x1d9, 0x180006819\nmov     [rsi+38h], eax                                                 ; +0x1dc, 0x18000681c\ncall    sub_180001340                                                  ; +0x1df, 0x18000681f\nmov     ecx, [rsi+30h]                                                 ; +0x1e4, 0x180006824\nmov     r13d, eax                                                      ; +0x1e7, 0x180006827\ntest    ecx, ecx                                                       ; +0x1ea, 0x18000682a\njle     short loc_180006858                                            ; +0x1ec, 0x18000682c\nmov     rax, [rsi]                                                     ; +0x1ee, 0x18000682e\nmov     r9d, ecx                                                       ; +0x1f1, 0x180006831\nmov     r8, [rsi+8]                                                    ; +0x1f4, 0x180006834\nnop     dword ptr [rax+rax+00000000h]                                  ; +0x1f8, 0x180006838\nmovsx   rcx, byte ptr [r8]                                             ; +0x200, 0x180006840\nlea     r8, [r8+1]                                                     ; +0x204, 0x180006844\nimul    rdx, rcx, 0Bh                                                  ; +0x208, 0x180006848\nmovsx   ecx, byte ptr [rdx+rax]                                        ; +0x20c, 0x18000684c\nadd     edi, ecx                                                       ; +0x210, 0x180006850\nsub     r9, 1                                                          ; +0x212, 0x180006852\njnz     short loc_180006840                                            ; +0x216, 0x180006856\nlea     ebx, [rdi+2]                                                   ; +0x218, 0x180006858\nlea     ecx, [rbx+rbx]                                                 ; +0x21b, 0x18000685b\ncall    sub_1800182F0                                                  ; +0x21e, 0x18000685e\nmov     ecx, ebx                                                       ; +0x223, 0x180006863\nmov     [rsi+10h], rax                                                 ; +0x225, 0x180006865\ncall    sub_1800182F0                                                  ; +0x229, 0x180006869\nmov     ecx, edi                                                       ; +0x22e, 0x18000686e\nmov     [rsi+18h], rax                                                 ; +0x230, 0x180006870\ncall    sub_1800182F0                                                  ; +0x234, 0x180006874\nmov     ecx, edi                                                       ; +0x239, 0x180006879\nmov     [rsi+28h], rax                                                 ; +0x23b, 0x18000687b\ncall    sub_1800182F0                                                  ; +0x23f, 0x18000687f\ncmp     dword ptr [rsi+30h], 0                                         ; +0x244, 0x180006884\nmov     edi, r14d                                                      ; +0x248, 0x180006888\nmov     [rsi+20h], rax                                                 ; +0x24b, 0x18000688b\nmov     r12d, r14d                                                     ; +0x24f, 0x18000688f\njle     loc_180006917                                                  ; +0x252, 0x180006892\nmov     rbx, r14                                                       ; +0x258, 0x180006898\nnop     dword ptr [rax+rax+00h]                                        ; +0x25b, 0x18000689b\nmov     rax, [rsi+8]                                                   ; +0x260, 0x1800068a0\nmovsxd  rcx, r12d                                                      ; +0x264, 0x1800068a4\nmovsx   rcx, byte ptr [rcx+rax]                                        ; +0x267, 0x1800068a7\nmov     rax, [rsi]                                                     ; +0x26c, 0x1800068ac\nimul    rdx, rcx, 0Bh                                                  ; +0x26f, 0x1800068af\nmovsx   ecx, byte ptr [rdx+rax]                                        ; +0x273, 0x1800068b3\nadd     edi, ecx                                                       ; +0x277, 0x1800068b7\nmovsxd  rbp, edi                                                       ; +0x279, 0x1800068b9\nmov     [rsp+48h+arg_0], edi                                           ; +0x27c, 0x1800068bc\ncmp     rbx, rbp                                                       ; +0x280, 0x1800068c0\njge     short loc_18000690B                                            ; +0x283, 0x1800068c3\nmov     ecx, r13d                                                      ; +0x285, 0x1800068c5\nlea     rdi, ds:4[rbx*2]                                               ; +0x288, 0x1800068c8\nmov     r14d, 1                                                        ; +0x290, 0x1800068d0\nrol     r14d, cl                                                       ; +0x296, 0x1800068d6\nnop     dword ptr [rax+00000000h]                                      ; +0x299, 0x1800068d9\nmov     edx, r13d                                                      ; +0x2a0, 0x1800068e0\nmov     rcx, r15                                                       ; +0x2a3, 0x1800068e3\ncall    sub_180001340                                                  ; +0x2a6, 0x1800068e6\nmovzx   ecx, ax                                                        ; +0x2ab, 0x1800068eb\nmov     rax, [rsi+10h]                                                 ; +0x2ae, 0x1800068ee\nmov     [rdi+rax], cx                                                  ; +0x2b2, 0x1800068f2\ncmp     ecx, r14d                                                      ; +0x2b6, 0x1800068f6\njge     short loc_180006923                                            ; +0x2b9, 0x1800068f9\ninc     rbx                                                            ; +0x2bb, 0x1800068fb\nadd     rdi, 2                                                         ; +0x2be, 0x1800068fe\ncmp     rbx, rbp                                                       ; +0x2c2, 0x180006902\njl      short loc_1800068E0                                            ; +0x2c5, 0x180006905\nmov     edi, [rsp+48h+arg_0]                                           ; +0x2c7, 0x180006907\ninc     r12d                                                           ; +0x2cb, 0x18000690b\ncmp     r12d, [rsi+30h]                                                ; +0x2ce, 0x18000690e\njl      short loc_1800068A0                                            ; +0x2d2, 0x180006912\nxor     r14d, r14d                                                     ; +0x2d4, 0x180006914\nmov     rcx, r15                                                       ; +0x2d7, 0x180006917\ncall    sub_180001310                                                  ; +0x2da, 0x18000691a\ntest    eax, eax                                                       ; +0x2df, 0x18000691f\njz      short loc_18000692A                                            ; +0x2e1, 0x180006921\nxor     eax, eax                                                       ; +0x2e3, 0x180006923\njmp     loc_180006A21                                                  ; +0x2e5, 0x180006925\nmov     rax, [rsi+10h]                                                 ; +0x2ea, 0x18000692a\nmov     edx, 1                                                         ; +0x2ee, 0x18000692e\nmov     ecx, r13d                                                      ; +0x2f3, 0x180006933\nshl     dx, cl                                                         ; +0x2f6, 0x180006936\nmov     [rax], r14w                                                    ; +0x2f9, 0x180006939\nmov     rax, [rsi+10h]                                                 ; +0x2fd, 0x18000693d\nmov     [rax+2], dx                                                    ; +0x301, 0x180006941\nlea     eax, [rdi+2]                                                   ; +0x305, 0x180006945\nmov     [rsi+34h], eax                                                 ; +0x308, 0x180006948\nmov     edx, r14d                                                      ; +0x30b, 0x18000694b\ntest    eax, eax                                                       ; +0x30e, 0x18000694e\njle     short loc_180006973                                            ; +0x310, 0x180006950\nnop     dword ptr [rax+00h]                                            ; +0x312, 0x180006952\nnop     word ptr [rax+rax+00000000h]                                   ; +0x316, 0x180006956\nmov     rax, [rsi+18h]                                                 ; +0x320, 0x180006960\nmovsxd  rcx, edx                                                       ; +0x324, 0x180006964\nmov     [rcx+rax], dl                                                  ; +0x327, 0x180006967\ninc     edx                                                            ; +0x32a, 0x18000696a\nmov     eax, [rsi+34h]                                                 ; +0x32c, 0x18000696c\ncmp     edx, eax                                                       ; +0x32f, 0x18000696f\njl      short loc_180006960                                            ; +0x331, 0x180006971\nmov     rdx, [rsi+10h]                                                 ; +0x333, 0x180006973\nmovzx   r8d, ax                                                        ; +0x337, 0x180006977\nmov     rcx, [rsi+18h]                                                 ; +0x33b, 0x18000697b\ncall    sub_180006ED0                                                  ; +0x33f, 0x18000697f\nmov     eax, [rsi+34h]                                                 ; +0x344, 0x180006984\nmov     ebp, r14d                                                      ; +0x347, 0x180006987\nsub     eax, 2                                                         ; +0x34a, 0x18000698a\ntest    eax, eax                                                       ; +0x34d, 0x18000698d\njle     loc_180006A1E                                                  ; +0x34f, 0x18000698f\nnop     word ptr [rax+rax+00000000h]                                   ; +0x355, 0x180006995\nmov     rdx, [rsi+10h]                                                 ; +0x360, 0x1800069a0\nlea     r11d, [rbp+2]                                                  ; +0x364, 0x1800069a4\nxor     eax, eax                                                       ; +0x368, 0x1800069a8\nmov     ebx, r14d                                                      ; +0x36a, 0x1800069aa\nmov     r8d, r14d                                                      ; +0x36d, 0x1800069ad\nmovsxd  r14, ebp                                                       ; +0x370, 0x1800069b0\nmov     edi, 1                                                         ; +0x373, 0x1800069b3\nmov     ecx, eax                                                       ; +0x378, 0x1800069b8\nmovzx   r9d, word ptr [rdx+2]                                          ; +0x37a, 0x1800069ba\nmovzx   r10d, word ptr [rdx+r14*2+4]                                   ; +0x37f, 0x1800069bf\ntest    r11d, r11d                                                     ; +0x385, 0x1800069c5\njle     short loc_1800069FC                                            ; +0x388, 0x1800069c8\nnop     word ptr [rax+rax+00h]                                         ; +0x38a, 0x1800069ca\nmovzx   eax, word ptr [rdx]                                            ; +0x390, 0x1800069d0\ncmp     eax, r8d                                                       ; +0x393, 0x1800069d3\njle     short loc_1800069E2                                            ; +0x396, 0x1800069d6\ncmp     eax, r10d                                                      ; +0x398, 0x1800069d8\njnb     short loc_1800069E2                                            ; +0x39b, 0x1800069db\nmov     ebx, ecx                                                       ; +0x39d, 0x1800069dd\nmov     r8d, eax                                                       ; +0x39f, 0x1800069df\ncmp     eax, r9d                                                       ; +0x3a2, 0x1800069e2\njge     short loc_1800069F1                                            ; +0x3a5, 0x1800069e5\ncmp     eax, r10d                                                      ; +0x3a7, 0x1800069e7\njbe     short loc_1800069F1                                            ; +0x3aa, 0x1800069ea\nmov     edi, ecx                                                       ; +0x3ac, 0x1800069ec\nmov     r9d, eax                                                       ; +0x3ae, 0x1800069ee\ninc     ecx                                                            ; +0x3b1, 0x1800069f1\nadd     rdx, 2                                                         ; +0x3b3, 0x1800069f3\ncmp     ecx, r11d                                                      ; +0x3b7, 0x1800069f7\njl      short loc_1800069D0                                            ; +0x3ba, 0x1800069fa\nmov     rax, [rsi+28h]                                                 ; +0x3bc, 0x1800069fc\ninc     ebp                                                            ; +0x3c0, 0x180006a00\nmov     [r14+rax], bl                                                  ; +0x3c2, 0x180006a02\nmov     rax, [rsi+20h]                                                 ; +0x3c6, 0x180006a06\nmov     [r14+rax], dil                                                 ; +0x3ca, 0x180006a0a\nmov     r14d, 0                                                        ; +0x3ce, 0x180006a0e\nmov     eax, [rsi+34h]                                                 ; +0x3d4, 0x180006a14\nsub     eax, 2                                                         ; +0x3d7, 0x180006a17\ncmp     ebp, eax                                                       ; +0x3da, 0x180006a1a\njl      short loc_1800069A0                                            ; +0x3dc, 0x180006a1c\nmov     rax, rsi                                                       ; +0x3de, 0x180006a1e\nmov     rbx, [rsp+48h+arg_8]                                           ; +0x3e1, 0x180006a21\nmov     rbp, [rsp+48h+arg_10]                                          ; +0x3e6, 0x180006a26\nmov     rsi, [rsp+48h+arg_18]                                          ; +0x3eb, 0x180006a2b\nadd     rsp, 20h                                                       ; +0x3f0, 0x180006a30\npop     r15                                                            ; +0x3f4, 0x180006a34\npop     r14                                                            ; +0x3f6, 0x180006a36\npop     r13                                                            ; +0x3f8, 0x180006a38\npop     r12                                                            ; +0x3fa, 0x180006a3a\npop     rdi                                                            ; +0x3fc, 0x180006a3c\nretn                                                                   ; +0x3fd, 0x180006a3d", "xrefs": ["sub_180007790 @ 0x1800078bf", "<???> @ 0x1801f6330"], "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"}