{"type": "func", "start": 6442457616, "end": 6442458762, "name": "sub_180001A10", "pseudocode": "// \n// sub_180001A10 from 0x180001a10 to 0x180001e8a (1146 bytes)\n// \n// 2 xrefs:\n// > sub_180007790 @ 0x1800077ff\n// > <???> @ 0x1801f60d8\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_180001A10(_QWORD *a1, __int64 a2)\n{\n  __int64 v3; // r15\n  __int16 v5; // ax\n  int v6; // eax\n  char v7; // al\n  unsigned __int64 v8; // rdx\n  char v9; // r14\n  __int64 v10; // rax\n  void *v11; // rsp\n  int v12; // ebx\n  __int64 v13; // rsi\n  int v14; // eax\n  int v15; // edx\n  unsigned int i; // eax\n  int v17; // eax\n  int j; // edx\n  char v19; // cl\n  int v20; // esi\n  int v21; // ebx\n  double v22; // xmm0_8\n  double v23; // xmm0_8\n  int v24; // ecx\n  float v25; // xmm1_4\n  int v26; // edx\n  __m128i v27; // xmm0\n  double v28; // xmm0_8\n  float v29; // xmm1_4\n  int v30; // eax\n  unsigned __int64 v31; // rax\n  __int64 v32; // rcx\n  unsigned __int64 v33; // rcx\n  void *v34; // rsp\n  void *v35; // rsp\n  int v36; // eax\n  __int16 v37; // cx\n  int v38; // esi\n  unsigned int *v39; // rbx\n  int v40; // eax\n  char v41; // cl\n  int v42; // ebx\n  unsigned int *v43; // rsi\n  int v44; // eax\n  char v45; // cl\n  __int64 v46; // rbx\n  unsigned __int64 v47; // rcx\n  __int64 v48; // rax\n  void *v49; // rsp\n  unsigned int *v50; // rsi\n  __int64 v51; // rdx\n  int v52; // eax\n  __int64 result; // rax\n  unsigned int v54; // [rsp+20h] [rbp+0h] BYREF\n  int v55; // [rsp+24h] [rbp+4h]\n\n  *(_OWORD *)a2 = 0;\n  v3 = 0;\n  *(_OWORD *)(a2 + 16) = 0;\n  v54 = 0;\n  *(_OWORD *)(a2 + 32) = 0;\n  *(_OWORD *)(a2 + 48) = 0;\n  *(_OWORD *)(a2 + 64) = 0;\n  *(_OWORD *)(a2 + 80) = 0;\n  *(_OWORD *)(a2 + 96) = 0;\n  *(_QWORD *)(a2 + 112) = 0;\n  if ( (unsigned int)sub_180001340((__int64)a1, 24) != 5653314 )\n    return 0xFFFFFFFFLL;\n  *(_BYTE *)(a2 + 100) = sub_180001340((__int64)a1, 16);\n  v5 = sub_180001340((__int64)a1, 24);\n  *(_WORD *)(a2 + 96) = v5;\n  if ( v5 == -1 )\n    return 0xFFFFFFFFLL;\n  v6 = sub_180001340((__int64)a1, 1);\n  if ( v6 )\n  {\n    if ( v6 != 1 )\n      return 0xFFFFFFFFLL;\n    v7 = sub_180001340((__int64)a1, 5);\n    v8 = *(__int16 *)(a2 + 96);\n    *(_WORD *)(a2 + 98) = v8;\n    v9 = v7 + 1;\n    v10 = v8 + 15;\n    if ( v8 + 15 < v8 )\n      v10 = 0xFFFFFFFFFFFFFF0LL;\n    v11 = alloca(v10 & 0xFFFFFFFFFFFFFFF0uLL);\n    v12 = 0;\n    if ( (__int16)v8 > 0 )\n    {\n      v13 = 0;\n      do\n      {\n        v14 = (__int16)v8;\n        v15 = 0;\n        for ( i = v14 - v12; i; i >>= 1 )\n          ++v15;\n        v17 = sub_180001340((__int64)a1, v15);\n        if ( v17 == -1 )\n          return 0xFFFFFFFFLL;\n        for ( j = 0; j < v17; ++v12 )\n        {\n          if ( v12 >= *(__int16 *)(a2 + 96) )\n            break;\n          *((_BYTE *)&v54 + v13) = v9;\n          ++j;\n          ++v13;\n        }\n        v19 = v9;\n        *(_BYTE *)(a2 + 103) = v9++;\n        *(_DWORD *)(a2 + 104) = (1 << v19) - 1;\n        LODWORD(v8) = *(__int16 *)(a2 + 96);\n      }\n      while ( v12 < (int)v8 );\n    }\n  }\n  else\n  {\n    v31 = *(__int16 *)(a2 + 96);\n    v32 = v31 + 15;\n    if ( v31 + 15 < v31 )\n      v32 = 0xFFFFFFFFFFFFFF0LL;\n    v33 = v32 & 0xFFFFFFFFFFFFFFF0uLL;\n    v34 = alloca(v33);\n    v35 = alloca(v33);\n    v36 = sub_180001340((__int64)a1, 1);\n    v37 = *(_WORD *)(a2 + 96);\n    if ( v36 )\n    {\n      v38 = 0;\n      if ( v37 > 0 )\n      {\n        v39 = &v54;\n        do\n        {\n          if ( (unsigned int)sub_180001340((__int64)a1, 1) )\n          {\n            v40 = sub_180001340((__int64)a1, 5);\n            if ( v40 == -1 )\n              return 0xFFFFFFFFLL;\n            v41 = v40 + 1;\n            *(_BYTE *)v39 = v40 + 1;\n            ++*(_WORD *)(a2 + 98);\n            if ( v40 + 1 > *(char *)(a2 + 103) )\n            {\n              *(_BYTE *)(a2 + 103) = v41;\n              *(_DWORD *)(a2 + 104) = (1 << v41) - 1;\n            }\n          }\n          else\n          {\n            *(_BYTE *)v39 = 0;\n          }\n          ++v38;\n          v39 = (unsigned int *)((char *)v39 + 1);\n        }\n        while ( v38 < *(__int16 *)(a2 + 96) );\n      }\n    }\n    else\n    {\n      *(_WORD *)(a2 + 98) = v37;\n      v42 = 0;\n      if ( v37 > 0 )\n      {\n        v43 = &v54;\n        do\n        {\n          v44 = sub_180001340((__int64)a1, 5);\n          if ( v44 == -1 )\n            return 0xFFFFFFFFLL;\n          v45 = v44 + 1;\n          *(_BYTE *)v43 = v44 + 1;\n          if ( v44 + 1 > *(char *)(a2 + 103) )\n          {\n            *(_BYTE *)(a2 + 103) = v45;\n            *(_DWORD *)(a2 + 104) = (1 << v45) - 1;\n          }\n          ++v42;\n          v43 = (unsigned int *)((char *)v43 + 1);\n        }\n        while ( v42 < *(__int16 *)(a2 + 96) );\n      }\n    }\n  }\n  v20 = sub_180001340((__int64)a1, 4);\n  if ( v20 <= 0 )\n    goto LABEL_22;\n  v21 = sub_180001340((__int64)a1, 32);\n  v55 = sub_180001340((__int64)a1, 32);\n  v22 = (double)(v21 & 0x1FFFFF);\n  if ( v21 < 0 )\n    v22 = -v22;\n  v23 = ldexp(v22, ((v21 >> 21) & 0x3FFu) - 788);\n  v24 = v55;\n  v25 = v23;\n  v26 = (v55 >> 21) & 0x3FF;\n  v27 = _mm_cvtsi32_si128(v55 & 0x1FFFFF);\n  *(float *)(a2 + 88) = v25;\n  v28 = _mm_cvtepi32_pd(v27).m128d_f64[0];\n  if ( v24 < 0 )\n    v28 = -v28;\n  v29 = ldexp(v28, v26 - 788);\n  *(float *)(a2 + 92) = v29;\n  *(_BYTE *)(a2 + 102) = sub_180001340((__int64)a1, 4) + 1;\n  if ( !(unsigned int)sub_180001340((__int64)a1, 1) )\n  {\nLABEL_22:\n    *(_BYTE *)(a2 + 101) = v20;\n    if ( !v20 )\n    {\n      v54 = 0;\n      v50 = nullptr;\n      goto LABEL_52;\n    }\n    if ( v20 == 1 )\n    {\n      v30 = sub_1800024C0((unsigned int)*(__int16 *)(a2 + 96), (unsigned int)*(char *)(a2 + 100));\n      v54 = v30;\n      goto LABEL_46;\n    }\n    if ( v20 != 2 )\n    {\n      v30 = 0;\nLABEL_46:\n      v46 = v30;\n      v47 = 2LL * v30;\n      v48 = v47 + 15;\n      if ( v47 + 15 < v47 )\n        v48 = 0xFFFFFFFFFFFFFF0LL;\n      v49 = alloca(v48 & 0xFFFFFFFFFFFFFFF0uLL);\n      v50 = &v54;\n      if ( v46 > 0 )\n      {\n        do\n          *((_WORD *)&v54 + v3++) = sub_180001340((__int64)a1, *(char *)(a2 + 102));\n        while ( v3 < v46 );\n      }\nLABEL_52:\n      v51 = v54;\n      v52 = (1 << *(_BYTE *)(a2 + 102)) - 1;\n      *(_DWORD *)a2 = v52;\n      *(_DWORD *)(a2 + 4) = v52;\n      *(_DWORD *)(a2 + 8) = v52;\n      *(_DWORD *)(a2 + 12) = v52;\n      *(__m128 *)(a2 + 16) = _mm_shuffle_ps((__m128)*(unsigned int *)(a2 + 88), (__m128)*(unsigned int *)(a2 + 88), 0);\n      *(__m128 *)(a2 + 32) = _mm_shuffle_ps((__m128)*(unsigned int *)(a2 + 92), (__m128)*(unsigned int *)(a2 + 92), 0);\n      sub_180001E90(&v54, v51, v50, a2);\n      result = sub_180001310(a1);\n      if ( !(_DWORD)result )\n        return result;\n    }\n  }\n  return 0xFFFFFFFFLL;\n}", "assembly": "; \n; sub_180001A10 from 0x180001a10 to 0x180001e8a (1146 bytes)\n; \n; 2 xrefs:\n; > sub_180007790 @ 0x1800077ff\n; > <???> @ 0x1801f60d8\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, 0x180001a10\npush    r12                                                            ; +0x2, 0x180001a12\npush    r13                                                            ; +0x4, 0x180001a14\npush    r14                                                            ; +0x6, 0x180001a16\npush    r15                                                            ; +0x8, 0x180001a18\nsub     rsp, 40h                                                       ; +0xa, 0x180001a1a\nlea     rbp, [rsp+20h]                                                 ; +0xe, 0x180001a1e\nmov     [rbp+40h+arg_0], rbx                                           ; +0x13, 0x180001a23\nmov     [rbp+40h+arg_8], rsi                                           ; +0x17, 0x180001a27\nmov     [rbp+40h+arg_10], rdi                                          ; +0x1b, 0x180001a2b\nmov     rax, cs:__security_cookie                                      ; +0x1f, 0x180001a2f\nxor     rax, rbp                                                       ; +0x26, 0x180001a36\nmov     [rbp+40h+var_30], rax                                          ; +0x29, 0x180001a39\nxorps   xmm0, xmm0                                                     ; +0x2d, 0x180001a3d\nxor     eax, eax                                                       ; +0x30, 0x180001a40\nmovups  xmmword ptr [rdx], xmm0                                        ; +0x32, 0x180001a42\nmov     rdi, rdx                                                       ; +0x35, 0x180001a45\nxor     r15d, r15d                                                     ; +0x38, 0x180001a48\nmovups  xmmword ptr [rdx+10h], xmm0                                    ; +0x3b, 0x180001a4b\nmov     r12, rcx                                                       ; +0x3f, 0x180001a4f\nmov     [rbp+40h+var_40], r15d                                         ; +0x42, 0x180001a52\nmovups  xmmword ptr [rdx+20h], xmm0                                    ; +0x46, 0x180001a56\nmovups  xmmword ptr [rdx+30h], xmm0                                    ; +0x4a, 0x180001a5a\nmovups  xmmword ptr [rdx+40h], xmm0                                    ; +0x4e, 0x180001a5e\nmovups  xmmword ptr [rdx+50h], xmm0                                    ; +0x52, 0x180001a62\nmovups  xmmword ptr [rdx+60h], xmm0                                    ; +0x56, 0x180001a66\nmov     [rdx+70h], rax                                                 ; +0x5a, 0x180001a6a\nlea     edx, [rax+18h]                                                 ; +0x5e, 0x180001a6e\ncall    sub_180001340                                                  ; +0x61, 0x180001a71\ncmp     eax, 564342h                                                   ; +0x66, 0x180001a76\njnz     loc_180001E5F                                                  ; +0x6b, 0x180001a7b\nlea     edx, [r15+10h]                                                 ; +0x71, 0x180001a81\nmov     rcx, r12                                                       ; +0x75, 0x180001a85\ncall    sub_180001340                                                  ; +0x78, 0x180001a88\nlea     edx, [r15+18h]                                                 ; +0x7d, 0x180001a8d\nmov     [rdi+64h], al                                                  ; +0x81, 0x180001a91\nmov     rcx, r12                                                       ; +0x84, 0x180001a94\ncall    sub_180001340                                                  ; +0x87, 0x180001a97\nmov     [rdi+60h], ax                                                  ; +0x8c, 0x180001a9c\ncmp     ax, 0FFFFh                                                     ; +0x90, 0x180001aa0\njz      loc_180001E5F                                                  ; +0x94, 0x180001aa4\nmov     r14d, 1                                                        ; +0x9a, 0x180001aaa\nmov     rcx, r12                                                       ; +0xa0, 0x180001ab0\nmov     edx, r14d                                                      ; +0xa3, 0x180001ab3\ncall    sub_180001340                                                  ; +0xa6, 0x180001ab6\ntest    eax, eax                                                       ; +0xab, 0x180001abb\njz      loc_180001C93                                                  ; +0xad, 0x180001abd\ncmp     eax, r14d                                                      ; +0xb3, 0x180001ac3\njnz     loc_180001E5F                                                  ; +0xb6, 0x180001ac6\nlea     edx, [r15+5]                                                   ; +0xbc, 0x180001acc\nmov     rcx, r12                                                       ; +0xc0, 0x180001ad0\ncall    sub_180001340                                                  ; +0xc3, 0x180001ad3\nmovsx   rdx, word ptr [rdi+60h]                                        ; +0xc8, 0x180001ad8\nmov     r8, 0FFFFFFFFFFFFFF0h                                          ; +0xcd, 0x180001add\nmov     [rdi+62h], dx                                                  ; +0xd7, 0x180001ae7\nlea     r14d, [rax+1]                                                  ; +0xdb, 0x180001aeb\nlea     rax, [rdx+0Fh]                                                 ; +0xdf, 0x180001aef\ncmp     rax, rdx                                                       ; +0xe3, 0x180001af3\nja      short loc_180001AFB                                            ; +0xe6, 0x180001af6\nmov     rax, r8                                                        ; +0xe8, 0x180001af8\nand     rax, 0FFFFFFFFFFFFFFF0h                                        ; +0xeb, 0x180001afb\ncall    __alloca_probe                                                 ; +0xef, 0x180001aff\nsub     rsp, rax                                                       ; +0xf4, 0x180001b04\nmov     ebx, r15d                                                      ; +0xf7, 0x180001b07\nlea     r13, [rsp+60h+var_40]                                          ; +0xfa, 0x180001b0a\ncmp     r15w, dx                                                       ; +0xff, 0x180001b0f\njge     short loc_180001B86                                            ; +0x103, 0x180001b13\nmov     rsi, r15                                                       ; +0x105, 0x180001b15\nnop     dword ptr [rax+rax+00000000h]                                  ; +0x108, 0x180001b18\nmovsx   eax, dx                                                        ; +0x110, 0x180001b20\nmov     edx, r15d                                                      ; +0x113, 0x180001b23\nsub     eax, ebx                                                       ; +0x116, 0x180001b26\njz      short loc_180001B36                                            ; +0x118, 0x180001b28\nnop     word ptr [rax+rax+00h]                                         ; +0x11a, 0x180001b2a\ninc     edx                                                            ; +0x120, 0x180001b30\nshr     eax, 1                                                         ; +0x122, 0x180001b32\njnz     short loc_180001B30                                            ; +0x124, 0x180001b34\nmov     rcx, r12                                                       ; +0x126, 0x180001b36\ncall    sub_180001340                                                  ; +0x129, 0x180001b39\ncmp     eax, 0FFFFFFFFh                                                ; +0x12e, 0x180001b3e\njz      loc_180001E5F                                                  ; +0x131, 0x180001b41\nmov     edx, r15d                                                      ; +0x137, 0x180001b47\ntest    eax, eax                                                       ; +0x13a, 0x180001b4a\njle     short loc_180001B67                                            ; +0x13c, 0x180001b4c\nxchg    ax, ax                                                         ; +0x13e, 0x180001b4e\nmovsx   ecx, word ptr [rdi+60h]                                        ; +0x140, 0x180001b50\ncmp     ebx, ecx                                                       ; +0x144, 0x180001b54\njge     short loc_180001B67                                            ; +0x146, 0x180001b56\nmov     [rsi+r13], r14b                                                ; +0x148, 0x180001b58\ninc     edx                                                            ; +0x14c, 0x180001b5c\ninc     rsi                                                            ; +0x14e, 0x180001b5e\ninc     ebx                                                            ; +0x151, 0x180001b61\ncmp     edx, eax                                                       ; +0x153, 0x180001b63\njl      short loc_180001B50                                            ; +0x155, 0x180001b65\nmovzx   ecx, r14b                                                      ; +0x157, 0x180001b67\nmov     [rdi+67h], r14b                                                ; +0x15b, 0x180001b6b\nmov     eax, 1                                                         ; +0x15f, 0x180001b6f\ninc     r14d                                                           ; +0x164, 0x180001b74\nshl     eax, cl                                                        ; +0x167, 0x180001b77\ndec     eax                                                            ; +0x169, 0x180001b79\nmov     [rdi+68h], eax                                                 ; +0x16b, 0x180001b7b\nmovsx   edx, word ptr [rdi+60h]                                        ; +0x16e, 0x180001b7e\ncmp     ebx, edx                                                       ; +0x172, 0x180001b82\njl      short loc_180001B20                                            ; +0x174, 0x180001b84\nmov     r14d, 1                                                        ; +0x176, 0x180001b86\nmov     edx, 4                                                         ; +0x17c, 0x180001b8c\nmov     rcx, r12                                                       ; +0x181, 0x180001b91\ncall    sub_180001340                                                  ; +0x184, 0x180001b94\nmov     esi, eax                                                       ; +0x189, 0x180001b99\ntest    eax, eax                                                       ; +0x18b, 0x180001b9b\njle     loc_180001C63                                                  ; +0x18d, 0x180001b9d\nmov     edx, 20h ; ' '                                                 ; +0x193, 0x180001ba3\nmov     rcx, r12                                                       ; +0x198, 0x180001ba8\ncall    sub_180001340                                                  ; +0x19b, 0x180001bab\nmov     edx, 20h ; ' '                                                 ; +0x1a0, 0x180001bb0\nmov     rcx, r12                                                       ; +0x1a5, 0x180001bb5\nmov     ebx, eax                                                       ; +0x1a8, 0x180001bb8\ncall    sub_180001340                                                  ; +0x1aa, 0x180001bba\nmov     ecx, ebx                                                       ; +0x1af, 0x180001bbf\nmov     [rbp+40h+var_3C], eax                                          ; +0x1b1, 0x180001bc1\nand     ecx, 1FFFFFh                                                   ; +0x1b4, 0x180001bc4\nmov     edx, ebx                                                       ; +0x1ba, 0x180001bca\nsar     edx, 15h                                                       ; +0x1bc, 0x180001bcc\nand     edx, 3FFh                                                      ; +0x1bf, 0x180001bcf\nmovd    xmm0, ecx                                                      ; +0x1c5, 0x180001bd5\ncvtdq2pd xmm0, xmm0                                                    ; +0x1c9, 0x180001bd9\ntest    ebx, ebx                                                       ; +0x1cd, 0x180001bdd\njns     short loc_180001BE8                                            ; +0x1cf, 0x180001bdf\nxorps   xmm0, cs:xmmword_1801445D0; X                                  ; +0x1d1, 0x180001be1\nadd     edx, 0FFFFFCECh; Y                                             ; +0x1d8, 0x180001be8\ncall    ldexp                                                          ; +0x1de, 0x180001bee\nmov     ecx, [rbp+40h+var_3C]                                          ; +0x1e3, 0x180001bf3\nxorps   xmm1, xmm1                                                     ; +0x1e6, 0x180001bf6\ncvtsd2ss xmm1, xmm0                                                    ; +0x1e9, 0x180001bf9\nmov     eax, ecx                                                       ; +0x1ed, 0x180001bfd\nmov     edx, ecx                                                       ; +0x1ef, 0x180001bff\nand     eax, 1FFFFFh                                                   ; +0x1f1, 0x180001c01\nsar     edx, 15h                                                       ; +0x1f6, 0x180001c06\nand     edx, 3FFh                                                      ; +0x1f9, 0x180001c09\nmovd    xmm0, eax                                                      ; +0x1ff, 0x180001c0f\nmovss   dword ptr [rdi+58h], xmm1                                      ; +0x203, 0x180001c13\ncvtdq2pd xmm0, xmm0                                                    ; +0x208, 0x180001c18\ntest    ecx, ecx                                                       ; +0x20c, 0x180001c1c\njns     short loc_180001C27                                            ; +0x20e, 0x180001c1e\nxorps   xmm0, cs:xmmword_1801445D0; X                                  ; +0x210, 0x180001c20\nadd     edx, 0FFFFFCECh; Y                                             ; +0x217, 0x180001c27\ncall    ldexp                                                          ; +0x21d, 0x180001c2d\nxorps   xmm1, xmm1                                                     ; +0x222, 0x180001c32\nmov     edx, 4                                                         ; +0x225, 0x180001c35\ncvtsd2ss xmm1, xmm0                                                    ; +0x22a, 0x180001c3a\nmov     rcx, r12                                                       ; +0x22e, 0x180001c3e\nmovss   dword ptr [rdi+5Ch], xmm1                                      ; +0x231, 0x180001c41\ncall    sub_180001340                                                  ; +0x236, 0x180001c46\ninc     al                                                             ; +0x23b, 0x180001c4b\nmov     edx, r14d                                                      ; +0x23d, 0x180001c4d\nmov     rcx, r12                                                       ; +0x240, 0x180001c50\nmov     [rdi+66h], al                                                  ; +0x243, 0x180001c53\ncall    sub_180001340                                                  ; +0x246, 0x180001c56\ntest    eax, eax                                                       ; +0x24b, 0x180001c5b\njnz     loc_180001E5F                                                  ; +0x24d, 0x180001c5d\nmov     [rdi+65h], sil                                                 ; +0x253, 0x180001c63\nmov     ecx, esi                                                       ; +0x257, 0x180001c67\ntest    esi, esi                                                       ; +0x259, 0x180001c69\njz      loc_180001E0B                                                  ; +0x25b, 0x180001c6b\nsub     ecx, 1                                                         ; +0x261, 0x180001c71\njz      loc_180001DA5                                                  ; +0x264, 0x180001c74\ncmp     ecx, 1                                                         ; +0x26a, 0x180001c7a\njz      loc_180001E5F                                                  ; +0x26d, 0x180001c7d\ntest    esi, esi                                                       ; +0x273, 0x180001c83\njz      loc_180001E0F                                                  ; +0x275, 0x180001c85\nmov     eax, r15d                                                      ; +0x27b, 0x180001c8b\njmp     loc_180001DB5                                                  ; +0x27e, 0x180001c8e\nmovsx   rax, word ptr [rdi+60h]                                        ; +0x283, 0x180001c93\nmov     rdx, 0FFFFFFFFFFFFFF0h                                         ; +0x288, 0x180001c98\nlea     rcx, [rax+0Fh]                                                 ; +0x292, 0x180001ca2\ncmp     rcx, rax                                                       ; +0x296, 0x180001ca6\nja      short loc_180001CAE                                            ; +0x299, 0x180001ca9\nmov     rcx, rdx                                                       ; +0x29b, 0x180001cab\nand     rcx, 0FFFFFFFFFFFFFFF0h                                        ; +0x29e, 0x180001cae\nmov     rax, rcx                                                       ; +0x2a2, 0x180001cb2\ncall    __alloca_probe                                                 ; +0x2a5, 0x180001cb5\nsub     rsp, rcx                                                       ; +0x2aa, 0x180001cba\nmov     edx, r14d                                                      ; +0x2ad, 0x180001cbd\nmov     rcx, r12                                                       ; +0x2b0, 0x180001cc0\nlea     r13, [rsp+60h+var_40]                                          ; +0x2b3, 0x180001cc3\ncall    sub_180001340                                                  ; +0x2b8, 0x180001cc8\nmovzx   ecx, word ptr [rdi+60h]                                        ; +0x2bd, 0x180001ccd\ntest    eax, eax                                                       ; +0x2c1, 0x180001cd1\njz      short loc_180001D42                                            ; +0x2c3, 0x180001cd3\nmov     esi, r15d                                                      ; +0x2c5, 0x180001cd5\ncmp     r15w, cx                                                       ; +0x2c8, 0x180001cd8\njge     loc_180001B8C                                                  ; +0x2cc, 0x180001cdc\nmov     rbx, r13                                                       ; +0x2d2, 0x180001ce2\nmov     edx, r14d                                                      ; +0x2d5, 0x180001ce5\nmov     rcx, r12                                                       ; +0x2d8, 0x180001ce8\ncall    sub_180001340                                                  ; +0x2db, 0x180001ceb\ntest    eax, eax                                                       ; +0x2e0, 0x180001cf0\njz      short loc_180001D2D                                            ; +0x2e2, 0x180001cf2\nmov     edx, 5                                                         ; +0x2e4, 0x180001cf4\nmov     rcx, r12                                                       ; +0x2e9, 0x180001cf9\ncall    sub_180001340                                                  ; +0x2ec, 0x180001cfc\ncmp     eax, 0FFFFFFFFh                                                ; +0x2f1, 0x180001d01\njz      loc_180001E5F                                                  ; +0x2f4, 0x180001d04\nlea     ecx, [rax+1]                                                   ; +0x2fa, 0x180001d0a\nmov     [rbx], cl                                                      ; +0x2fd, 0x180001d0d\nlea     edx, [rax+1]                                                   ; +0x2ff, 0x180001d0f\ninc     word ptr [rdi+62h]                                             ; +0x302, 0x180001d12\nmovsx   eax, byte ptr [rdi+67h]                                        ; +0x306, 0x180001d16\ncmp     edx, eax                                                       ; +0x30a, 0x180001d1a\njle     short loc_180001D30                                            ; +0x30c, 0x180001d1c\nmov     eax, r14d                                                      ; +0x30e, 0x180001d1e\nmov     [rdi+67h], cl                                                  ; +0x311, 0x180001d21\nshl     eax, cl                                                        ; +0x314, 0x180001d24\ndec     eax                                                            ; +0x316, 0x180001d26\nmov     [rdi+68h], eax                                                 ; +0x318, 0x180001d28\njmp     short loc_180001D30                                            ; +0x31b, 0x180001d2b\nmov     [rbx], r15b                                                    ; +0x31d, 0x180001d2d\nmovsx   eax, word ptr [rdi+60h]                                        ; +0x320, 0x180001d30\ninc     esi                                                            ; +0x324, 0x180001d34\ninc     rbx                                                            ; +0x326, 0x180001d36\ncmp     esi, eax                                                       ; +0x329, 0x180001d39\njl      short loc_180001CE5                                            ; +0x32b, 0x180001d3b\njmp     loc_180001B8C                                                  ; +0x32d, 0x180001d3d\nmov     [rdi+62h], cx                                                  ; +0x332, 0x180001d42\nmov     ebx, r15d                                                      ; +0x336, 0x180001d46\ncmp     r15w, cx                                                       ; +0x339, 0x180001d49\njge     loc_180001B8C                                                  ; +0x33d, 0x180001d4d\nmov     rsi, r13                                                       ; +0x343, 0x180001d53\nnop     word ptr [rax+rax+00000000h]                                   ; +0x346, 0x180001d56\nmov     edx, 5                                                         ; +0x350, 0x180001d60\nmov     rcx, r12                                                       ; +0x355, 0x180001d65\ncall    sub_180001340                                                  ; +0x358, 0x180001d68\ncmp     eax, 0FFFFFFFFh                                                ; +0x35d, 0x180001d6d\njz      loc_180001E5F                                                  ; +0x360, 0x180001d70\nlea     ecx, [rax+1]                                                   ; +0x366, 0x180001d76\nlea     edx, [rax+1]                                                   ; +0x369, 0x180001d79\nmov     [rsi], cl                                                      ; +0x36c, 0x180001d7c\nmovsx   eax, byte ptr [rdi+67h]                                        ; +0x36e, 0x180001d7e\ncmp     edx, eax                                                       ; +0x372, 0x180001d82\njle     short loc_180001D93                                            ; +0x374, 0x180001d84\nmov     eax, r14d                                                      ; +0x376, 0x180001d86\nmov     [rdi+67h], cl                                                  ; +0x379, 0x180001d89\nshl     eax, cl                                                        ; +0x37c, 0x180001d8c\ndec     eax                                                            ; +0x37e, 0x180001d8e\nmov     [rdi+68h], eax                                                 ; +0x380, 0x180001d90\nmovsx   eax, word ptr [rdi+60h]                                        ; +0x383, 0x180001d93\ninc     ebx                                                            ; +0x387, 0x180001d97\ninc     rsi                                                            ; +0x389, 0x180001d99\ncmp     ebx, eax                                                       ; +0x38c, 0x180001d9c\njl      short loc_180001D60                                            ; +0x38e, 0x180001d9e\njmp     loc_180001B8C                                                  ; +0x390, 0x180001da0\nmovsx   edx, byte ptr [rdi+64h]                                        ; +0x395, 0x180001da5\nmovsx   ecx, word ptr [rdi+60h]                                        ; +0x399, 0x180001da9\ncall    sub_1800024C0                                                  ; +0x39d, 0x180001dad\nmov     [rbp+40h+var_40], eax                                          ; +0x3a2, 0x180001db2\nmovsxd  rbx, eax                                                       ; +0x3a5, 0x180001db5\nlea     rcx, [rbx+rbx]                                                 ; +0x3a8, 0x180001db8\nlea     rax, [rcx+0Fh]                                                 ; +0x3ac, 0x180001dbc\ncmp     rax, rcx                                                       ; +0x3b0, 0x180001dc0\nja      short loc_180001DCF                                            ; +0x3b3, 0x180001dc3\nmov     rax, 0FFFFFFFFFFFFFF0h                                         ; +0x3b5, 0x180001dc5\nand     rax, 0FFFFFFFFFFFFFFF0h                                        ; +0x3bf, 0x180001dcf\ncall    __alloca_probe                                                 ; +0x3c3, 0x180001dd3\nsub     rsp, rax                                                       ; +0x3c8, 0x180001dd8\nlea     rsi, [rsp+60h+var_40]                                          ; +0x3cb, 0x180001ddb\ntest    rbx, rbx                                                       ; +0x3d0, 0x180001de0\njle     short loc_180001E12                                            ; +0x3d3, 0x180001de3\nnop     word ptr [rax+rax+00000000h]                                   ; +0x3d5, 0x180001de5\nmovsx   edx, byte ptr [rdi+66h]                                        ; +0x3e0, 0x180001df0\nmov     rcx, r12                                                       ; +0x3e4, 0x180001df4\ncall    sub_180001340                                                  ; +0x3e7, 0x180001df7\nmov     [rsi+r15*2], ax                                                ; +0x3ec, 0x180001dfc\ninc     r15                                                            ; +0x3f1, 0x180001e01\ncmp     r15, rbx                                                       ; +0x3f4, 0x180001e04\njl      short loc_180001DF0                                            ; +0x3f7, 0x180001e07\njmp     short loc_180001E12                                            ; +0x3f9, 0x180001e09\nmov     [rbp+40h+var_40], r15d                                         ; +0x3fb, 0x180001e0b\nmov     rsi, r15                                                       ; +0x3ff, 0x180001e0f\nmovzx   ecx, byte ptr [rdi+66h]                                        ; +0x402, 0x180001e12\nmov     r9, rdi                                                        ; +0x406, 0x180001e16\nmov     edx, [rbp+40h+var_40]                                          ; +0x409, 0x180001e19\nmov     r8, rsi                                                        ; +0x40c, 0x180001e1c\nshl     r14d, cl                                                       ; +0x40f, 0x180001e1f\nmov     rcx, r13                                                       ; +0x412, 0x180001e22\nlea     eax, [r14-1]                                                   ; +0x415, 0x180001e25\nmov     [rdi], eax                                                     ; +0x419, 0x180001e29\nmov     [rdi+4], eax                                                   ; +0x41b, 0x180001e2b\nmov     [rdi+8], eax                                                   ; +0x41e, 0x180001e2e\nmov     [rdi+0Ch], eax                                                 ; +0x421, 0x180001e31\nmovss   xmm0, dword ptr [rdi+58h]                                      ; +0x424, 0x180001e34\nshufps  xmm0, xmm0, 0                                                  ; +0x429, 0x180001e39\nmovups  xmmword ptr [rdi+10h], xmm0                                    ; +0x42d, 0x180001e3d\nmovss   xmm1, dword ptr [rdi+5Ch]                                      ; +0x431, 0x180001e41\nshufps  xmm1, xmm1, 0                                                  ; +0x436, 0x180001e46\nmovups  xmmword ptr [rdi+20h], xmm1                                    ; +0x43a, 0x180001e4a\ncall    sub_180001E90                                                  ; +0x43e, 0x180001e4e\nmov     rcx, r12                                                       ; +0x443, 0x180001e53\ncall    sub_180001310                                                  ; +0x446, 0x180001e56\ntest    eax, eax                                                       ; +0x44b, 0x180001e5b\njz      short loc_180001E64                                            ; +0x44d, 0x180001e5d\nmov     eax, 0FFFFFFFFh                                                ; +0x44f, 0x180001e5f\nmov     rcx, [rbp+40h+var_30]                                          ; +0x454, 0x180001e64\nxor     rcx, rbp; StackCookie                                          ; +0x458, 0x180001e68\ncall    __security_check_cookie                                        ; +0x45b, 0x180001e6b\nmov     rbx, [rbp+40h+arg_0]                                           ; +0x460, 0x180001e70\nmov     rsi, [rbp+40h+arg_8]                                           ; +0x464, 0x180001e74\nmov     rdi, [rbp+40h+arg_10]                                          ; +0x468, 0x180001e78\nlea     rsp, [rbp+20h]                                                 ; +0x46c, 0x180001e7c\npop     r15                                                            ; +0x470, 0x180001e80\npop     r14                                                            ; +0x472, 0x180001e82\npop     r13                                                            ; +0x474, 0x180001e84\npop     r12                                                            ; +0x476, 0x180001e86\npop     rbp                                                            ; +0x478, 0x180001e88\nretn                                                                   ; +0x479, 0x180001e89", "xrefs": ["sub_180007790 @ 0x1800077ff", "<???> @ 0x1801f60d8"], "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"}