{"type": "func", "start": 6442456384, "end": 6442457350, "name": "sub_180001540", "pseudocode": "// \n// sub_180001540 from 0x180001540 to 0x180001906 (966 bytes)\n// \n// 2 xrefs:\n// > sub_180007A70 @ 0x180007ab3\n// > <???> @ 0x1801f60cc\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_180001540(__int64 a1)\n{\n  int v1; // r12d\n  unsigned int v3; // r13d\n  int v4; // eax\n  unsigned __int64 v5; // rdi\n  __int64 v6; // rsi\n  int v7; // eax\n  int v8; // r14d\n  __int64 v9; // rax\n  void *v10; // rsp\n  int v11; // edi\n  __int64 v12; // rbx\n  int v13; // edx\n  unsigned int v14; // eax\n  int v15; // eax\n  int i; // ecx\n  int v17; // ebx\n  __int64 v18; // rax\n  unsigned int v19; // r8d\n  int v20; // eax\n  int v21; // edx\n  int v22; // r11d\n  __int64 v23; // rax\n  void *v24; // rsp\n  _BYTE *v25; // rbx\n  int v26; // eax\n  char v27; // al\n  __int64 v28; // rbx\n  int v29; // eax\n  int v30; // ebx\n  int v31; // edi\n  unsigned int v32; // ecx\n  int j; // eax\n  int v34; // r8d\n  int k; // r9d\n  int v36; // eax\n  int v37; // ecx\n  __int64 v38; // rdx\n  int v39; // ecx\n  __int64 v40; // rdx\n  __int64 v41; // rax\n  unsigned int m; // ebx\n  int v43; // eax\n  char v44; // di\n  _BYTE v46[8]; // [rsp+20h] [rbp+0h] BYREF\n  int v47; // [rsp+28h] [rbp+8h]\n\n  v1 = 0;\n  v3 = 0;\n  if ( (unsigned int)sub_180001340(a1, 24) != 5653314 )\n    return 0xFFFFFFFFLL;\n  v47 = sub_180001340(a1, 16);\n  v4 = sub_180001340(a1, 24);\n  v5 = v4;\n  if ( v4 == -1 )\n    return 0xFFFFFFFFLL;\n  v6 = v4;\n  v7 = sub_180001340(a1, 1);\n  if ( v7 )\n  {\n    if ( v7 != 1 )\n      return 0xFFFFFFFFLL;\n    v8 = sub_180001340(a1, 5) + 1;\n    v9 = v5 + 15;\n    if ( v5 + 15 < v5 )\n      v9 = 0xFFFFFFFFFFFFFF0LL;\n    v10 = alloca(v9 & 0xFFFFFFFFFFFFFFF0uLL);\n    v11 = 0;\n    if ( v6 > 0 )\n    {\n      v12 = 0;\n      do\n      {\n        v13 = 0;\n        v14 = v6 - v11;\n        if ( (_DWORD)v6 != v11 )\n        {\n          do\n          {\n            ++v13;\n            v14 >>= 1;\n          }\n          while ( v14 );\n        }\n        v15 = sub_180001340(a1, v13);\n        if ( v15 == -1 )\n          return 0xFFFFFFFFLL;\n        for ( i = 0; i < v15; ++v11 )\n        {\n          if ( v12 >= v6 )\n            break;\n          v46[v12] = v8;\n          ++i;\n          ++v12;\n        }\n        LOBYTE(v8) = v8 + 1;\n      }\n      while ( v12 < v6 );\n    }\n    v3 = v6;\n    LODWORD(v5) = v6;\n  }\n  else\n  {\n    v23 = v5 + 15;\n    if ( v5 + 15 <= v5 )\n      v23 = 0xFFFFFFFFFFFFFF0LL;\n    v24 = alloca(v23 & 0xFFFFFFFFFFFFFFF0uLL);\n    if ( (unsigned int)sub_180001340(a1, 1) )\n    {\n      if ( (int)v5 > 0 )\n      {\n        v25 = v46;\n        do\n        {\n          if ( (unsigned int)sub_180001340(a1, 1) )\n          {\n            v26 = sub_180001340(a1, 5);\n            if ( v26 == -1 )\n              return 0xFFFFFFFFLL;\n            ++v3;\n            v27 = v26 + 1;\n          }\n          else\n          {\n            v27 = 0;\n          }\n          *v25++ = v27;\n        }\n        while ( v25 - v46 < (__int64)v5 );\n      }\n    }\n    else\n    {\n      v3 = v5;\n      if ( (int)v5 > 0 )\n      {\n        v28 = 0;\n        do\n        {\n          v29 = sub_180001340(a1, 5);\n          if ( v29 == -1 )\n            return 0xFFFFFFFFLL;\n          v46[v28] = v29 + 1;\n        }\n        while ( ++v28 < (__int64)v5 );\n      }\n    }\n  }\n  v17 = sub_180001340(a1, 4);\n  if ( v17 <= 0 )\n  {\n    v22 = 0;\n  }\n  else\n  {\n    v18 = (__int64)(*(_DWORD *)(a1 + 16) + 32) >> 3;\n    v19 = ((*(_BYTE *)(a1 + 16) + 32) & 7) + 32;\n    *(_DWORD *)(a1 + 16) = (((*(_BYTE *)(a1 + 16) + 32) & 7) + 32) & 7;\n    *(_QWORD *)a1 += v18 + ((unsigned __int64)v19 >> 3);\n    v20 = sub_180001340(a1, 4);\n    v21 = *(_DWORD *)(a1 + 16) + 1;\n    v22 = v20 + 1;\n    *(_DWORD *)(a1 + 16) = (*(_BYTE *)(a1 + 16) + 1) & 7;\n    *(_QWORD *)a1 += (__int64)v21 >> 3;\n  }\n  if ( v17 )\n  {\n    v30 = v17 - 1;\n    if ( v30 )\n    {\n      if ( v30 != 1 )\n        goto LABEL_55;\n      v31 = v47 * v5;\n    }\n    else\n    {\n      v32 = v5;\n      for ( j = 0; v32; v32 >>= 1 )\n        ++j;\n      v34 = (int)v5 >> ((v47 - 1) * (j - 1) / v47);\n      for ( k = v34 + 1; ; ++k )\n      {\n        while ( 1 )\n        {\n          v36 = 1;\n          v37 = 1;\n          if ( v47 > 0 )\n          {\n            v38 = (unsigned int)v47;\n            do\n            {\n              v36 *= v34;\n              v37 *= k;\n              --v38;\n            }\n            while ( v38 );\n          }\n          if ( v36 <= (int)v5 )\n            break;\n          --k;\n          --v34;\n        }\n        if ( v37 > (int)v5 )\n          break;\n        ++v34;\n      }\n      v31 = v34;\n    }\n    if ( v31 > 0 )\n    {\n      v39 = *(_DWORD *)(a1 + 16);\n      v40 = (unsigned int)v31;\n      do\n      {\n        v41 = (__int64)(v39 + v22) >> 3;\n        v39 = ((_BYTE)v39 + (_BYTE)v22) & 7;\n        *(_QWORD *)a1 += v41;\n        --v40;\n      }\n      while ( v40 );\n      *(_DWORD *)(a1 + 16) = v39;\n    }\n  }\nLABEL_55:\n  for ( m = (((((4 * v3 + 19) & 0xFFFFFFF0) + 2 * v3 + 15) & 0xFFFFFFF0) + v3 + 16) & 0xFFFFFFF0; v3; v3 >>= 1 )\n    ++v1;\n  v43 = 5 * v1 / 4;\n  if ( v43 >= 5 )\n  {\n    v44 = 5 * v1 / 4;\n    if ( v43 > 8 )\n      v44 = 8;\n  }\n  else\n  {\n    v44 = 5;\n  }\n  if ( !(unsigned int)sub_180001310((_QWORD *)a1) )\n    return m + (2 << v44);\n  return 0xFFFFFFFFLL;\n}", "assembly": "; \n; sub_180001540 from 0x180001540 to 0x180001906 (966 bytes)\n; \n; 2 xrefs:\n; > sub_180007A70 @ 0x180007ab3\n; > <???> @ 0x1801f60cc\n; \n; This function is hookable on this platform!\n; \n; Using BromaIDA 8.0.0 @ https:;github.com/Stazzical/BromaIDA\n; Using bindings at commit ba9f177b at Thu Jul 16 22:52:06 2026 from https:;github.com/geode-sdk/bindings\n; \n\npush    rbp                                                            ; +0x0, 0x180001540\npush    r12                                                            ; +0x2, 0x180001542\npush    r13                                                            ; +0x4, 0x180001544\npush    r14                                                            ; +0x6, 0x180001546\npush    r15                                                            ; +0x8, 0x180001548\nsub     rsp, 40h                                                       ; +0xa, 0x18000154a\nlea     rbp, [rsp+20h]                                                 ; +0xe, 0x18000154e\nmov     [rbp+40h+arg_0], rbx                                           ; +0x13, 0x180001553\nmov     [rbp+40h+arg_8], rsi                                           ; +0x17, 0x180001557\nmov     [rbp+40h+arg_10], rdi                                          ; +0x1b, 0x18000155b\nmov     rax, cs:__security_cookie                                      ; +0x1f, 0x18000155f\nxor     rax, rbp                                                       ; +0x26, 0x180001566\nmov     [rbp+40h+var_30], rax                                          ; +0x29, 0x180001569\nxor     r12d, r12d                                                     ; +0x2d, 0x18000156d\nmov     r15, rcx                                                       ; +0x30, 0x180001570\nmov     r13d, r12d                                                     ; +0x33, 0x180001573\nlea     edx, [r12+18h]                                                 ; +0x36, 0x180001576\ncall    sub_180001340                                                  ; +0x3b, 0x18000157b\ncmp     eax, 564342h                                                   ; +0x40, 0x180001580\njnz     loc_1800018DB                                                  ; +0x45, 0x180001585\nlea     edx, [r12+10h]                                                 ; +0x4b, 0x18000158b\nmov     rcx, r15                                                       ; +0x50, 0x180001590\ncall    sub_180001340                                                  ; +0x53, 0x180001593\nlea     edx, [r12+18h]                                                 ; +0x58, 0x180001598\nmov     [rbp+40h+var_38], eax                                          ; +0x5d, 0x18000159d\nmov     rcx, r15                                                       ; +0x60, 0x1800015a0\ncall    sub_180001340                                                  ; +0x63, 0x1800015a3\nmovsxd  rdi, eax                                                       ; +0x68, 0x1800015a8\ncmp     edi, 0FFFFFFFFh                                                ; +0x6b, 0x1800015ab\njz      loc_1800018DB                                                  ; +0x6e, 0x1800015ae\nlea     edx, [r12+1]                                                   ; +0x74, 0x1800015b4\nmov     rcx, r15                                                       ; +0x79, 0x1800015b9\nmov     rsi, rdi                                                       ; +0x7c, 0x1800015bc\ncall    sub_180001340                                                  ; +0x7f, 0x1800015bf\ntest    eax, eax                                                       ; +0x84, 0x1800015c4\njz      loc_1800016D8                                                  ; +0x86, 0x1800015c6\ncmp     eax, 1                                                         ; +0x8c, 0x1800015cc\njnz     loc_1800018DB                                                  ; +0x8f, 0x1800015cf\nlea     edx, [rax+4]                                                   ; +0x95, 0x1800015d5\nmov     rcx, r15                                                       ; +0x98, 0x1800015d8\ncall    sub_180001340                                                  ; +0x9b, 0x1800015db\nlea     r14d, [rax+1]                                                  ; +0xa0, 0x1800015e0\nlea     rax, [rdi+0Fh]                                                 ; +0xa4, 0x1800015e4\ncmp     rax, rdi                                                       ; +0xa8, 0x1800015e8\nja      short loc_1800015F7                                            ; +0xab, 0x1800015eb\nmov     rax, 0FFFFFFFFFFFFFF0h                                         ; +0xad, 0x1800015ed\nand     rax, 0FFFFFFFFFFFFFFF0h                                        ; +0xb7, 0x1800015f7\ncall    __alloca_probe                                                 ; +0xbb, 0x1800015fb\nsub     rsp, rax                                                       ; +0xc0, 0x180001600\nmov     edi, r12d                                                      ; +0xc3, 0x180001603\nlea     r13, [rsp+60h+var_40]                                          ; +0xc6, 0x180001606\ntest    rsi, rsi                                                       ; +0xcb, 0x18000160b\njle     short loc_18000165C                                            ; +0xce, 0x18000160e\nmov     rbx, r12                                                       ; +0xd0, 0x180001610\nmov     eax, esi                                                       ; +0xd3, 0x180001613\nmov     edx, r12d                                                      ; +0xd5, 0x180001615\nsub     eax, edi                                                       ; +0xd8, 0x180001618\njz      short loc_180001626                                            ; +0xda, 0x18000161a\nnop     dword ptr [rax+00h]                                            ; +0xdc, 0x18000161c\ninc     edx                                                            ; +0xe0, 0x180001620\nshr     eax, 1                                                         ; +0xe2, 0x180001622\njnz     short loc_180001620                                            ; +0xe4, 0x180001624\nmov     rcx, r15                                                       ; +0xe6, 0x180001626\ncall    sub_180001340                                                  ; +0xe9, 0x180001629\ncmp     eax, 0FFFFFFFFh                                                ; +0xee, 0x18000162e\njz      loc_1800018DB                                                  ; +0xf1, 0x180001631\nmov     ecx, r12d                                                      ; +0xf7, 0x180001637\ntest    eax, eax                                                       ; +0xfa, 0x18000163a\njle     short loc_180001654                                            ; +0xfc, 0x18000163c\nxchg    ax, ax                                                         ; +0xfe, 0x18000163e\ncmp     rbx, rsi                                                       ; +0x100, 0x180001640\njge     short loc_180001654                                            ; +0x103, 0x180001643\nmov     [rbx+r13], r14b                                                ; +0x105, 0x180001645\ninc     ecx                                                            ; +0x109, 0x180001649\ninc     rbx                                                            ; +0x10b, 0x18000164b\ninc     edi                                                            ; +0x10e, 0x18000164e\ncmp     ecx, eax                                                       ; +0x110, 0x180001650\njl      short loc_180001640                                            ; +0x112, 0x180001652\ninc     r14d                                                           ; +0x114, 0x180001654\ncmp     rbx, rsi                                                       ; +0x117, 0x180001657\njl      short loc_180001613                                            ; +0x11a, 0x18000165a\nmov     r13d, esi                                                      ; +0x11c, 0x18000165c\nmov     edi, esi                                                       ; +0x11f, 0x18000165f\nmov     edx, 4                                                         ; +0x121, 0x180001661\nmov     rcx, r15                                                       ; +0x126, 0x180001666\ncall    sub_180001340                                                  ; +0x129, 0x180001669\nmov     ebx, eax                                                       ; +0x12e, 0x18000166e\ntest    eax, eax                                                       ; +0x130, 0x180001670\njle     loc_1800017A9                                                  ; +0x132, 0x180001672\nmov     r9d, [r15+10h]                                                 ; +0x138, 0x180001678\nmov     edx, 4                                                         ; +0x13c, 0x18000167c\nadd     r9d, 20h ; ' '                                                 ; +0x141, 0x180001681\nmov     r8d, r9d                                                       ; +0x145, 0x180001685\nmovsxd  rax, r9d                                                       ; +0x148, 0x180001688\nand     r8d, 7                                                         ; +0x14b, 0x18000168b\nsar     rax, 3                                                         ; +0x14f, 0x18000168f\nadd     r8d, 20h ; ' '                                                 ; +0x153, 0x180001693\nmov     ecx, r8d                                                       ; +0x157, 0x180001697\nand     ecx, 7                                                         ; +0x15a, 0x18000169a\nmov     [r15+10h], ecx                                                 ; +0x15d, 0x18000169d\nmov     ecx, r8d                                                       ; +0x161, 0x1800016a1\nshr     rcx, 3                                                         ; +0x164, 0x1800016a4\nadd     rcx, rax                                                       ; +0x168, 0x1800016a8\nadd     [r15], rcx                                                     ; +0x16b, 0x1800016ab\nmov     rcx, r15                                                       ; +0x16e, 0x1800016ae\ncall    sub_180001340                                                  ; +0x171, 0x1800016b1\nmov     edx, [r15+10h]                                                 ; +0x176, 0x1800016b6\ninc     edx                                                            ; +0x17a, 0x1800016ba\nmov     ecx, edx                                                       ; +0x17c, 0x1800016bc\nand     ecx, 7                                                         ; +0x17e, 0x1800016be\nlea     r11d, [rax+1]                                                  ; +0x181, 0x1800016c1\nmov     [r15+10h], ecx                                                 ; +0x185, 0x1800016c5\nmovsxd  rcx, edx                                                       ; +0x189, 0x1800016c9\nsar     rcx, 3                                                         ; +0x18c, 0x1800016cc\nadd     [r15], rcx                                                     ; +0x190, 0x1800016d0\njmp     loc_1800017AC                                                  ; +0x193, 0x1800016d3\nlea     rax, [rdi+0Fh]                                                 ; +0x198, 0x1800016d8\ncmp     rax, rsi                                                       ; +0x19c, 0x1800016dc\nja      short loc_1800016EB                                            ; +0x19f, 0x1800016df\nmov     rax, 0FFFFFFFFFFFFFF0h                                         ; +0x1a1, 0x1800016e1\nand     rax, 0FFFFFFFFFFFFFFF0h                                        ; +0x1ab, 0x1800016eb\ncall    __alloca_probe                                                 ; +0x1af, 0x1800016ef\nsub     rsp, rax                                                       ; +0x1b4, 0x1800016f4\nmov     edx, 1                                                         ; +0x1b7, 0x1800016f7\nmov     rcx, r15                                                       ; +0x1bc, 0x1800016fc\nlea     r14, [rsp+60h+var_40]                                          ; +0x1bf, 0x1800016ff\ncall    sub_180001340                                                  ; +0x1c4, 0x180001704\ntest    eax, eax                                                       ; +0x1c9, 0x180001709\njz      short loc_180001768                                            ; +0x1cb, 0x18000170b\ntest    edi, edi                                                       ; +0x1cd, 0x18000170d\njle     loc_180001661                                                  ; +0x1cf, 0x18000170f\nmov     rbx, r14                                                       ; +0x1d5, 0x180001715\nnop     dword ptr [rax+rax+00000000h]                                  ; +0x1d8, 0x180001718\nmov     edx, 1                                                         ; +0x1e0, 0x180001720\nmov     rcx, r15                                                       ; +0x1e5, 0x180001725\ncall    sub_180001340                                                  ; +0x1e8, 0x180001728\ntest    eax, eax                                                       ; +0x1ed, 0x18000172d\njz      short loc_18000174E                                            ; +0x1ef, 0x18000172f\nmov     edx, 5                                                         ; +0x1f1, 0x180001731\nmov     rcx, r15                                                       ; +0x1f6, 0x180001736\ncall    sub_180001340                                                  ; +0x1f9, 0x180001739\ncmp     eax, 0FFFFFFFFh                                                ; +0x1fe, 0x18000173e\njz      loc_1800018DB                                                  ; +0x201, 0x180001741\ninc     r13d                                                           ; +0x207, 0x180001747\ninc     al                                                             ; +0x20a, 0x18000174a\njmp     short loc_180001750                                            ; +0x20c, 0x18000174c\nxor     al, al                                                         ; +0x20e, 0x18000174e\nmov     [rbx], al                                                      ; +0x210, 0x180001750\nmov     rcx, rbx                                                       ; +0x212, 0x180001752\ninc     rbx                                                            ; +0x215, 0x180001755\nmov     rax, rbx                                                       ; +0x218, 0x180001758\nsub     rax, r14                                                       ; +0x21b, 0x18000175b\ncmp     rax, rsi                                                       ; +0x21e, 0x18000175e\njl      short loc_180001720                                            ; +0x221, 0x180001761\njmp     loc_180001661                                                  ; +0x223, 0x180001763\nmov     r13d, edi                                                      ; +0x228, 0x180001768\ntest    edi, edi                                                       ; +0x22b, 0x18000176b\njle     loc_180001661                                                  ; +0x22d, 0x18000176d\nmov     rbx, r12                                                       ; +0x233, 0x180001773\nnop     word ptr [rax+rax+00000000h]                                   ; +0x236, 0x180001776\nmov     edx, 5                                                         ; +0x240, 0x180001780\nmov     rcx, r15                                                       ; +0x245, 0x180001785\ncall    sub_180001340                                                  ; +0x248, 0x180001788\ncmp     eax, 0FFFFFFFFh                                                ; +0x24d, 0x18000178d\njz      loc_1800018DB                                                  ; +0x250, 0x180001790\ninc     al                                                             ; +0x256, 0x180001796\nmov     [rbx+r14], al                                                  ; +0x258, 0x180001798\ninc     rbx                                                            ; +0x25c, 0x18000179c\ncmp     rbx, rsi                                                       ; +0x25f, 0x18000179f\njl      short loc_180001780                                            ; +0x262, 0x1800017a2\njmp     loc_180001661                                                  ; +0x264, 0x1800017a4\nmov     r11d, r12d                                                     ; +0x269, 0x1800017a9\ntest    ebx, ebx                                                       ; +0x26c, 0x1800017ac\njz      loc_18000186D                                                  ; +0x26e, 0x1800017ae\nsub     ebx, 1                                                         ; +0x274, 0x1800017b4\njz      short loc_1800017C8                                            ; +0x277, 0x1800017b7\ncmp     ebx, 1                                                         ; +0x279, 0x1800017b9\njnz     loc_18000186D                                                  ; +0x27c, 0x1800017bc\nimul    edi, [rbp+40h+var_38]                                          ; +0x282, 0x1800017c2\njmp     short loc_180001847                                            ; +0x286, 0x1800017c6\nmov     ecx, edi                                                       ; +0x288, 0x1800017c8\nmov     eax, r12d                                                      ; +0x28a, 0x1800017ca\ntest    edi, edi                                                       ; +0x28d, 0x1800017cd\njz      short loc_1800017D7                                            ; +0x28f, 0x1800017cf\ninc     eax                                                            ; +0x291, 0x1800017d1\nshr     ecx, 1                                                         ; +0x293, 0x1800017d3\njnz     short loc_1800017D1                                            ; +0x295, 0x1800017d5\nmov     r10d, [rbp+40h+var_38]                                         ; +0x297, 0x1800017d7\ndec     eax                                                            ; +0x29b, 0x1800017db\nmov     r8d, edi                                                       ; +0x29d, 0x1800017dd\nlea     ecx, [r10-1]                                                   ; +0x2a0, 0x1800017e0\nimul    eax, ecx                                                       ; +0x2a4, 0x1800017e4\ncdq                                                                    ; +0x2a7, 0x1800017e7\nidiv    r10d                                                           ; +0x2a8, 0x1800017e8\nmov     ecx, eax                                                       ; +0x2ab, 0x1800017eb\nsar     r8d, cl                                                        ; +0x2ad, 0x1800017ed\nlea     r9d, [r8+1]                                                    ; +0x2b0, 0x1800017f0\nmov     eax, 1                                                         ; +0x2b4, 0x1800017f4\nmov     ecx, eax                                                       ; +0x2b9, 0x1800017f9\ntest    r10d, r10d                                                     ; +0x2bb, 0x1800017fb\njle     short loc_18000181E                                            ; +0x2be, 0x1800017fe\nmov     rdx, r10                                                       ; +0x2c0, 0x180001800\nnop     dword ptr [rax+00h]                                            ; +0x2c3, 0x180001803\nnop     word ptr [rax+rax+00000000h]                                   ; +0x2c7, 0x180001807\nimul    eax, r8d                                                       ; +0x2d0, 0x180001810\nimul    ecx, r9d                                                       ; +0x2d4, 0x180001814\nsub     rdx, 1                                                         ; +0x2d8, 0x180001818\njnz     short loc_180001810                                            ; +0x2dc, 0x18000181c\ncmp     eax, edi                                                       ; +0x2de, 0x18000181e\njg      short loc_180001835                                            ; +0x2e0, 0x180001820\ncmp     ecx, edi                                                       ; +0x2e2, 0x180001822\njg      short loc_180001844                                            ; +0x2e4, 0x180001824\nmov     eax, 1                                                         ; +0x2e6, 0x180001826\nadd     r9d, eax                                                       ; +0x2eb, 0x18000182b\nmov     ecx, eax                                                       ; +0x2ee, 0x18000182e\nadd     r8d, eax                                                       ; +0x2f0, 0x180001830\njmp     short loc_1800017F4                                            ; +0x2f3, 0x180001833\nmov     eax, 0FFFFFFFFh                                                ; +0x2f5, 0x180001835\nadd     r9d, eax                                                       ; +0x2fa, 0x18000183a\nmov     ecx, eax                                                       ; +0x2fd, 0x18000183d\nadd     r8d, eax                                                       ; +0x2ff, 0x18000183f\njmp     short loc_1800017F4                                            ; +0x302, 0x180001842\nmov     edi, r8d                                                       ; +0x304, 0x180001844\ntest    edi, edi                                                       ; +0x307, 0x180001847\njle     short loc_18000186D                                            ; +0x309, 0x180001849\nmov     ecx, [r15+10h]                                                 ; +0x30b, 0x18000184b\nmov     edx, edi                                                       ; +0x30f, 0x18000184f\nlea     eax, [rcx+r11]                                                 ; +0x311, 0x180001851\nmov     ecx, eax                                                       ; +0x315, 0x180001855\ncdqe                                                                   ; +0x317, 0x180001857\nsar     rax, 3                                                         ; +0x319, 0x180001859\nand     ecx, 7                                                         ; +0x31d, 0x18000185d\nadd     [r15], rax                                                     ; +0x320, 0x180001860\nsub     rdx, 1                                                         ; +0x323, 0x180001863\njnz     short loc_180001851                                            ; +0x327, 0x180001867\nmov     [r15+10h], ecx                                                 ; +0x329, 0x180001869\nlea     eax, ds:13h[r13*4]                                             ; +0x32d, 0x18000186d\nand     eax, 0FFFFFFF0h                                                ; +0x335, 0x180001875\nlea     ecx, ds:0Fh[r13*2]                                             ; +0x338, 0x180001878\nadd     ecx, eax                                                       ; +0x340, 0x180001880\nlea     ebx, [r13+10h]                                                 ; +0x342, 0x180001882\nand     ecx, 0FFFFFFF0h                                                ; +0x346, 0x180001886\nadd     ebx, ecx                                                       ; +0x349, 0x180001889\nand     ebx, 0FFFFFFF0h                                                ; +0x34b, 0x18000188b\ntest    r13d, r13d                                                     ; +0x34e, 0x18000188e\njz      short loc_18000189B                                            ; +0x351, 0x180001891\ninc     r12d                                                           ; +0x353, 0x180001893\nshr     r13d, 1                                                        ; +0x356, 0x180001896\njnz     short loc_180001893                                            ; +0x359, 0x180001899\nlea     eax, [r12+r12*4]                                               ; +0x35b, 0x18000189b\ncdq                                                                    ; +0x35f, 0x18000189f\nand     edx, 3                                                         ; +0x360, 0x1800018a0\nadd     eax, edx                                                       ; +0x363, 0x1800018a3\nsar     eax, 2                                                         ; +0x365, 0x1800018a5\ncmp     eax, 5                                                         ; +0x368, 0x1800018a8\njge     short loc_1800018B4                                            ; +0x36b, 0x1800018ab\nmov     edi, 5                                                         ; +0x36d, 0x1800018ad\njmp     short loc_1800018C0                                            ; +0x372, 0x1800018b2\nmov     ecx, 8                                                         ; +0x374, 0x1800018b4\nmov     edi, eax                                                       ; +0x379, 0x1800018b9\ncmp     eax, ecx                                                       ; +0x37b, 0x1800018bb\ncmovg   edi, ecx                                                       ; +0x37d, 0x1800018bd\nmov     rcx, r15                                                       ; +0x380, 0x1800018c0\ncall    sub_180001310                                                  ; +0x383, 0x1800018c3\ntest    eax, eax                                                       ; +0x388, 0x1800018c8\njnz     short loc_1800018DB                                            ; +0x38a, 0x1800018ca\nmovzx   ecx, dil                                                       ; +0x38c, 0x1800018cc\nmov     eax, 2                                                         ; +0x390, 0x1800018d0\nshl     eax, cl                                                        ; +0x395, 0x1800018d5\nadd     eax, ebx                                                       ; +0x397, 0x1800018d7\njmp     short loc_1800018E0                                            ; +0x399, 0x1800018d9\nmov     eax, 0FFFFFFFFh                                                ; +0x39b, 0x1800018db\nmov     rcx, [rbp+40h+var_30]                                          ; +0x3a0, 0x1800018e0\nxor     rcx, rbp; StackCookie                                          ; +0x3a4, 0x1800018e4\ncall    __security_check_cookie                                        ; +0x3a7, 0x1800018e7\nmov     rbx, [rbp+40h+arg_0]                                           ; +0x3ac, 0x1800018ec\nmov     rsi, [rbp+40h+arg_8]                                           ; +0x3b0, 0x1800018f0\nmov     rdi, [rbp+40h+arg_10]                                          ; +0x3b4, 0x1800018f4\nlea     rsp, [rbp+20h]                                                 ; +0x3b8, 0x1800018f8\npop     r15                                                            ; +0x3bc, 0x1800018fc\npop     r14                                                            ; +0x3be, 0x1800018fe\npop     r13                                                            ; +0x3c0, 0x180001900\npop     r12                                                            ; +0x3c2, 0x180001902\npop     rbp                                                            ; +0x3c4, 0x180001904\nretn                                                                   ; +0x3c5, 0x180001905", "xrefs": ["sub_180007A70 @ 0x180007ab3", "<???> @ 0x1801f60cc"], "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"}