{"type": "func", "start": 6443736532, "end": 6443737314, "name": "_wsetlocale_set_cat", "pseudocode": "// \n// _wsetlocale_set_cat from 0x180139dd4 to 0x18013a0e2 (782 bytes)\n// \n// 2 xrefs:\n// > common_expand_argv_wildcards<char> @ 0x180139ac8\n// > <???> @ 0x180203824\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 wsetlocale_set_cat(char *a1, unsigned __int8 *a2, _QWORD *a3)\n{\n  __int64 i; // rbx\n  unsigned __int8 v6; // al\n  unsigned __int8 v8; // r8\n  unsigned int v9; // edi\n  char v10; // al\n  rsize_t v11; // r13\n  unsigned int v12; // r8d\n  int v13; // eax\n  const WCHAR *v14; // rcx\n  HANDLE FirstFile; // rbx\n  __int64 v16; // r14\n  UINT v17; // r8d\n  int v18; // eax\n  void *v19; // r15\n  char *v20; // rcx\n  char v21; // al\n  __int64 v22; // rdx\n  _QWORD v23[3]; // [rsp+30h] [rbp-D0h] BYREF\n  char v24; // [rsp+48h] [rbp-B8h]\n  _QWORD v25[3]; // [rsp+50h] [rbp-B0h] BYREF\n  char v26; // [rsp+68h] [rbp-98h]\n  _QWORD v27[2]; // [rsp+70h] [rbp-90h] BYREF\n  void *Block; // [rsp+80h] [rbp-80h]\n  __int64 v29; // [rsp+88h] [rbp-78h]\n  __int64 v30; // [rsp+90h] [rbp-70h]\n  char v31; // [rsp+98h] [rbp-68h]\n  _QWORD v32[2]; // [rsp+A0h] [rbp-60h] BYREF\n  void *v33; // [rsp+B0h] [rbp-50h]\n  __int64 v34; // [rsp+B8h] [rbp-48h]\n  __int64 v35; // [rsp+C0h] [rbp-40h]\n  char v36; // [rsp+C8h] [rbp-38h]\n  struct _WIN32_FIND_DATAW FindFileData; // [rsp+D0h] [rbp-30h] BYREF\n\n  for ( i = 0x200000000801LL; a2 != (unsigned __int8 *)a1; a2 = mbsdec((const unsigned __int8 *)a1, a2) )\n  {\n    v6 = *a2 - 47;\n    if ( v6 <= 0x2Du && _bittest64(&i, (char)v6) )\n      break;\n  }\n  if ( *a2 == 58 && a2 != (unsigned __int8 *)(a1 + 1) )\n    return copy_and_add_argument_to_buffer<char>(a1, nullptr, 0, (__int64)a3);\n  v8 = *a2 - 47;\n  v9 = 0;\n  if ( v8 > 0x2Du || (v10 = 1, !_bittest64(&i, (char)v8)) )\n    v10 = 0;\n  v32[0] = 0;\n  v32[1] = 0;\n  v33 = nullptr;\n  v34 = 0;\n  v35 = 0;\n  v11 = (a2 - (unsigned __int8 *)a1 + 1) & -(__int64)(v10 != 0);\n  v36 = 0;\n  _LocaleUpdate::_LocaleUpdate((_LocaleUpdate *)v23, nullptr);\n  if ( *(_DWORD *)(v23[1] + 12LL) == 65001 )\n  {\n    if ( v24 )\n      *(_DWORD *)(v23[0] + 936LL) &= ~2u;\n    v12 = 65001;\n  }\n  else if ( (unsigned int)_acrt_AreFileApisANSI() )\n  {\n    if ( v24 )\n      *(_DWORD *)(v23[0] + 936LL) &= ~2u;\n    v12 = 0;\n  }\n  else\n  {\n    if ( v24 )\n      *(_DWORD *)(v23[0] + 936LL) &= ~2u;\n    v12 = 1;\n  }\n  v13 = __acrt_mbs_to_wcs_cp<__crt_win32_buffer_internal_dynamic_resizing>(a1, (__int64)v32, v12);\n  v14 = (const WCHAR *)v33;\n  if ( v13 )\n    v14 = nullptr;\n  FirstFile = FindFirstFileExW(v14, FindExInfoStandard, &FindFileData, FindExSearchNameMatch, nullptr, 0);\n  if ( FirstFile == (HANDLE)-1LL )\n  {\n    v9 = copy_and_add_argument_to_buffer<char>(a1, nullptr, 0, (__int64)a3);\n    goto LABEL_54;\n  }\n  v16 = (__int64)(a3[1] - *a3) >> 3;\n  while ( 1 )\n  {\n    v27[0] = 0;\n    v27[1] = 0;\n    Block = nullptr;\n    v29 = 0;\n    v30 = 0;\n    v31 = 0;\n    _LocaleUpdate::_LocaleUpdate((_LocaleUpdate *)v25, nullptr);\n    if ( *(_DWORD *)(v25[1] + 12LL) == 65001 )\n    {\n      if ( v26 )\n        *(_DWORD *)(v25[0] + 936LL) &= ~2u;\n      v17 = 65001;\n    }\n    else if ( (unsigned int)_acrt_AreFileApisANSI() )\n    {\n      if ( v26 )\n        *(_DWORD *)(v25[0] + 936LL) &= ~2u;\n      v17 = 0;\n    }\n    else\n    {\n      if ( v26 )\n        *(_DWORD *)(v25[0] + 936LL) &= ~2u;\n      v17 = 1;\n    }\n    v18 = __acrt_wcs_to_mbs_cp<__crt_win32_buffer_internal_dynamic_resizing>(FindFileData.cFileName, (__int64)v27, v17);\n    v19 = Block;\n    v20 = (char *)Block;\n    if ( v18 )\n      v20 = nullptr;\n    if ( *v20 == 46 )\n    {\n      v21 = v20[1];\n      if ( !v21 || v21 == 46 && !v20[2] )\n        goto LABEL_46;\n    }\n    v9 = copy_and_add_argument_to_buffer<char>(v20, a1, v11, (__int64)a3);\n    if ( v9 )\n      break;\n    v9 = 0;\nLABEL_46:\n    if ( v31 )\n      free_base(v19);\n    if ( !FindNextFileW(FirstFile, &FindFileData) )\n    {\n      v22 = (__int64)(a3[1] - *a3) >> 3;\n      if ( v16 != v22 )\n        qsort((void *)(*a3 + 8 * v16), v22 - v16, 8u, (_CoreCrtNonSecureSearchSortCompareFunction)unknown_libname_71);\n      goto LABEL_53;\n    }\n  }\n  if ( v31 )\n    free_base(v19);\nLABEL_53:\n  FindClose(FirstFile);\nLABEL_54:\n  if ( v36 )\n    free_base(v33);\n  return v9;\n}", "assembly": "; \n; _wsetlocale_set_cat from 0x180139dd4 to 0x18013a0e2 (782 bytes)\n; \n; 2 xrefs:\n; > common_expand_argv_wildcards<char> @ 0x180139ac8\n; > <???> @ 0x180203824\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-8+arg_18], rbx                                            ; +0x0, 0x180139dd4\npush    rbp                                                            ; +0x5, 0x180139dd9\npush    rsi                                                            ; +0x6, 0x180139dda\npush    rdi                                                            ; +0x7, 0x180139ddb\npush    r12                                                            ; +0x8, 0x180139ddc\npush    r13                                                            ; +0xa, 0x180139dde\npush    r14                                                            ; +0xc, 0x180139de0\npush    r15                                                            ; +0xe, 0x180139de2\nlea     rbp, [rsp-230h]                                                ; +0x10, 0x180139de4\nsub     rsp, 330h                                                      ; +0x18, 0x180139dec\nmov     rax, cs:__security_cookie                                      ; +0x1f, 0x180139df3\nxor     rax, rsp                                                       ; +0x26, 0x180139dfa\nmov     [rbp+260h+var_40], rax                                         ; +0x29, 0x180139dfd\nmov     r12, r8                                                        ; +0x30, 0x180139e04\nmov     rsi, rcx                                                       ; +0x33, 0x180139e07\nmov     rbx, 200000000801h                                             ; +0x36, 0x180139e0a\ncmp     rdx, rcx                                                       ; +0x40, 0x180139e14\njz      short loc_180139E3B                                            ; +0x43, 0x180139e17\nmov     al, [rdx]                                                      ; +0x45, 0x180139e19\nsub     al, 2Fh ; '/'                                                  ; +0x47, 0x180139e1b\ncmp     al, 2Dh ; '-'                                                  ; +0x49, 0x180139e1d\nja      short loc_180139E2B                                            ; +0x4b, 0x180139e1f\nmovsx   rax, al                                                        ; +0x4d, 0x180139e21\nbt      rbx, rax                                                       ; +0x51, 0x180139e25\njb      short loc_180139E3B                                            ; +0x55, 0x180139e29\nmov     rcx, rsi; Start                                                ; +0x57, 0x180139e2b\ncall    _mbsdec                                                        ; +0x5a, 0x180139e2e\nmov     rdx, rax                                                       ; +0x5f, 0x180139e33\ncmp     rax, rsi                                                       ; +0x62, 0x180139e36\njnz     short loc_180139E19                                            ; +0x65, 0x180139e39\nmov     r8b, [rdx]                                                     ; +0x67, 0x180139e3b\ncmp     r8b, 3Ah ; ':'                                                 ; +0x6a, 0x180139e3e\njnz     short loc_180139E62                                            ; +0x6e, 0x180139e42\nlea     rax, [rsi+1]                                                   ; +0x70, 0x180139e44\ncmp     rdx, rax                                                       ; +0x74, 0x180139e48\njz      short loc_180139E62                                            ; +0x77, 0x180139e4b\nmov     r9, r12                                                        ; +0x79, 0x180139e4d\nxor     r8d, r8d; MaxCount                                             ; +0x7c, 0x180139e50\nxor     edx, edx; char *                                               ; +0x7f, 0x180139e53\nmov     rcx, rsi; Source                                               ; +0x81, 0x180139e55\ncall    ??$copy_and_add_argument_to_buffer@D@@YAHQEBD0_KAEAV?$argument_list@D@?A0x5f5c8891@@@Z ; +0x84, 0x180139e58\njmp     loc_18013A0B8                                                  ; +0x89, 0x180139e5d\nsub     r8b, 2Fh ; '/'                                                 ; +0x8e, 0x180139e62\nxor     edi, edi                                                       ; +0x92, 0x180139e66\ncmp     r8b, 2Dh ; '-'                                                 ; +0x94, 0x180139e68\nja      short loc_180139E7A                                            ; +0x98, 0x180139e6c\nmovsx   rax, r8b                                                       ; +0x9a, 0x180139e6e\nbt      rbx, rax                                                       ; +0x9e, 0x180139e72\nmov     al, 1                                                          ; +0xa2, 0x180139e76\njb      short loc_180139E7D                                            ; +0xa4, 0x180139e78\nmov     al, dil                                                        ; +0xa6, 0x180139e7a\nsub     rdx, rsi                                                       ; +0xa9, 0x180139e7d\nmov     [rbp+260h+var_2C0], rdi                                        ; +0xac, 0x180139e80\ninc     rdx                                                            ; +0xb0, 0x180139e84\nmov     [rbp+260h+var_2B8], rdi                                        ; +0xb3, 0x180139e87\nneg     al                                                             ; +0xb7, 0x180139e8b\nmov     [rbp+260h+var_2B0], rdi                                        ; +0xb9, 0x180139e8d\nlea     rcx, [rsp+360h+var_330]; this                                  ; +0xbd, 0x180139e91\nmov     [rbp+260h+var_2A8], rdi                                        ; +0xc2, 0x180139e96\nsbb     r13, r13                                                       ; +0xc6, 0x180139e9a\nmov     [rbp+260h+var_2A0], rdi                                        ; +0xc9, 0x180139e9d\nand     r13, rdx                                                       ; +0xcd, 0x180139ea1\nmov     [rbp+260h+var_298], dil                                        ; +0xd0, 0x180139ea4\nxor     edx, edx; struct __crt_locale_pointers *                       ; +0xd4, 0x180139ea8\ncall    ??0_LocaleUpdate@@QEAA@QEAU__crt_locale_pointers@@@Z           ; +0xd6, 0x180139eaa\nmov     rax, [rsp+360h+var_328]                                        ; +0xdb, 0x180139eaf\nmov     r15d, 0FDE9h                                                   ; +0xe0, 0x180139eb4\ncmp     [rax+0Ch], r15d                                                ; +0xe6, 0x180139eba\njnz     short loc_180139ED8                                            ; +0xea, 0x180139ebe\ncmp     [rsp+360h+var_318], dil                                        ; +0xec, 0x180139ec0\njz      short loc_180139ED3                                            ; +0xf1, 0x180139ec5\nmov     rax, [rsp+360h+var_330]                                        ; +0xf3, 0x180139ec7\nand     dword ptr [rax+3A8h], 0FFFFFFFDh                               ; +0xf8, 0x180139ecc\nmov     r8d, r15d                                                      ; +0xff, 0x180139ed3\njmp     short loc_180139F12                                            ; +0x102, 0x180139ed6\ncall    __acrt_AreFileApisANSI                                         ; +0x104, 0x180139ed8\ntest    eax, eax                                                       ; +0x109, 0x180139edd\njnz     short loc_180139EFC                                            ; +0x10b, 0x180139edf\ncmp     [rsp+360h+var_318], dil                                        ; +0x10d, 0x180139ee1\njz      short loc_180139EF4                                            ; +0x112, 0x180139ee6\nmov     rax, [rsp+360h+var_330]                                        ; +0x114, 0x180139ee8\nand     dword ptr [rax+3A8h], 0FFFFFFFDh                               ; +0x119, 0x180139eed\nmov     r8d, 1                                                         ; +0x120, 0x180139ef4\njmp     short loc_180139F12                                            ; +0x126, 0x180139efa\ncmp     [rsp+360h+var_318], dil                                        ; +0x128, 0x180139efc\njz      short loc_180139F0F                                            ; +0x12d, 0x180139f01\nmov     rax, [rsp+360h+var_330]                                        ; +0x12f, 0x180139f03\nand     dword ptr [rax+3A8h], 0FFFFFFFDh                               ; +0x134, 0x180139f08\nmov     r8d, edi                                                       ; +0x13b, 0x180139f0f\nlea     rdx, [rbp+260h+var_2C0]                                        ; +0x13e, 0x180139f12\nmov     rcx, rsi                                                       ; +0x142, 0x180139f16\ncall    ??$__acrt_mbs_to_wcs_cp@U__crt_win32_buffer_internal_dynamic_resizing@@@@YAHQEBDAEAV?$__crt_win32_buffer@_WU__crt_win32_buffer_internal_dynamic_resizing@@@@I@Z ; +0x145, 0x180139f19\nmov     rcx, [rbp+260h+var_2B0]                                        ; +0x14a, 0x180139f1e\nlea     r8, [rbp+260h+FindFileData]; lpFindFileData                    ; +0x14e, 0x180139f22\ntest    eax, eax                                                       ; +0x152, 0x180139f26\nmov     [rsp+360h+dwAdditionalFlags], edi; dwAdditionalFlags           ; +0x154, 0x180139f28\nmov     [rsp+360h+lpSearchFilter], rdi; lpSearchFilter                 ; +0x158, 0x180139f2c\ncmovnz  rcx, rdi; lpFileName                                           ; +0x15d, 0x180139f31\nxor     r9d, r9d; fSearchOp                                            ; +0x161, 0x180139f35\nxor     edx, edx; fInfoLevelId                                         ; +0x164, 0x180139f38\ncall    cs:FindFirstFileExW                                            ; +0x166, 0x180139f3a\nmov     rbx, rax                                                       ; +0x16c, 0x180139f40\ncmp     rax, 0FFFFFFFFFFFFFFFFh                                        ; +0x16f, 0x180139f43\njnz     short loc_180139F60                                            ; +0x173, 0x180139f47\nmov     r9, r12                                                        ; +0x175, 0x180139f49\nxor     r8d, r8d; MaxCount                                             ; +0x178, 0x180139f4c\nxor     edx, edx; char *                                               ; +0x17b, 0x180139f4f\nmov     rcx, rsi; Source                                               ; +0x17d, 0x180139f51\ncall    ??$copy_and_add_argument_to_buffer@D@@YAHQEBD0_KAEAV?$argument_list@D@?A0x5f5c8891@@@Z ; +0x180, 0x180139f54\nmov     edi, eax                                                       ; +0x185, 0x180139f59\njmp     loc_18013A0A7                                                  ; +0x187, 0x180139f5b\nmov     r14, [r12+8]                                                   ; +0x18c, 0x180139f60\nsub     r14, [r12]                                                     ; +0x191, 0x180139f65\nsar     r14, 3                                                         ; +0x195, 0x180139f69\nxor     edx, edx; struct __crt_locale_pointers *                       ; +0x199, 0x180139f6d\nmov     [rsp+360h+var_2F0], rdi                                        ; +0x19b, 0x180139f6f\nlea     rcx, [rsp+360h+var_310]; this                                  ; +0x1a0, 0x180139f74\nmov     [rsp+360h+var_2E8], rdi                                        ; +0x1a5, 0x180139f79\nmov     [rbp+260h+Block], rdi                                          ; +0x1aa, 0x180139f7e\nmov     [rbp+260h+var_2D8], rdi                                        ; +0x1ae, 0x180139f82\nmov     [rbp+260h+var_2D0], rdi                                        ; +0x1b2, 0x180139f86\nmov     [rbp+260h+var_2C8], dil                                        ; +0x1b6, 0x180139f8a\ncall    ??0_LocaleUpdate@@QEAA@QEAU__crt_locale_pointers@@@Z           ; +0x1ba, 0x180139f8e\nmov     rax, [rsp+360h+var_308]                                        ; +0x1bf, 0x180139f93\ncmp     [rax+0Ch], r15d                                                ; +0x1c4, 0x180139f98\njnz     short loc_180139FB6                                            ; +0x1c8, 0x180139f9c\ncmp     [rsp+360h+var_2F8], dil                                        ; +0x1ca, 0x180139f9e\njz      short loc_180139FB1                                            ; +0x1cf, 0x180139fa3\nmov     rax, [rsp+360h+var_310]                                        ; +0x1d1, 0x180139fa5\nand     dword ptr [rax+3A8h], 0FFFFFFFDh                               ; +0x1d6, 0x180139faa\nmov     r8d, r15d                                                      ; +0x1dd, 0x180139fb1\njmp     short loc_180139FF0                                            ; +0x1e0, 0x180139fb4\ncall    __acrt_AreFileApisANSI                                         ; +0x1e2, 0x180139fb6\ntest    eax, eax                                                       ; +0x1e7, 0x180139fbb\njnz     short loc_180139FDA                                            ; +0x1e9, 0x180139fbd\ncmp     [rsp+360h+var_2F8], dil                                        ; +0x1eb, 0x180139fbf\njz      short loc_180139FD2                                            ; +0x1f0, 0x180139fc4\nmov     rax, [rsp+360h+var_310]                                        ; +0x1f2, 0x180139fc6\nand     dword ptr [rax+3A8h], 0FFFFFFFDh                               ; +0x1f7, 0x180139fcb\nmov     r8d, 1                                                         ; +0x1fe, 0x180139fd2\njmp     short loc_180139FF0                                            ; +0x204, 0x180139fd8\ncmp     [rsp+360h+var_2F8], dil                                        ; +0x206, 0x180139fda\njz      short loc_180139FED                                            ; +0x20b, 0x180139fdf\nmov     rax, [rsp+360h+var_310]                                        ; +0x20d, 0x180139fe1\nand     dword ptr [rax+3A8h], 0FFFFFFFDh                               ; +0x212, 0x180139fe6\nmov     r8d, edi                                                       ; +0x219, 0x180139fed\nlea     rdx, [rsp+360h+var_2F0]                                        ; +0x21c, 0x180139ff0\nlea     rcx, [rbp+260h+var_264]                                        ; +0x221, 0x180139ff5\ncall    ??$__acrt_wcs_to_mbs_cp@U__crt_win32_buffer_internal_dynamic_resizing@@@@YAHQEB_WAEAV?$__crt_win32_buffer@DU__crt_win32_buffer_internal_dynamic_resizing@@@@I@Z ; +0x225, 0x180139ff9\nmov     r15, [rbp+260h+Block]                                          ; +0x22a, 0x180139ffe\ntest    eax, eax                                                       ; +0x22e, 0x18013a002\nmov     rcx, r15                                                       ; +0x230, 0x18013a004\ncmovnz  rcx, rdi; Source                                               ; +0x233, 0x18013a007\ncmp     byte ptr [rcx], 2Eh ; '.'                                      ; +0x237, 0x18013a00b\njnz     short loc_18013A021                                            ; +0x23a, 0x18013a00e\nmov     al, [rcx+1]                                                    ; +0x23c, 0x18013a010\ntest    al, al                                                         ; +0x23f, 0x18013a013\njz      short loc_18013A037                                            ; +0x241, 0x18013a015\ncmp     al, 2Eh ; '.'                                                  ; +0x243, 0x18013a017\njnz     short loc_18013A021                                            ; +0x245, 0x18013a019\ncmp     [rcx+2], dil                                                   ; +0x247, 0x18013a01b\njz      short loc_18013A037                                            ; +0x24b, 0x18013a01f\nmov     r9, r12                                                        ; +0x24d, 0x18013a021\nmov     r8, r13; MaxCount                                              ; +0x250, 0x18013a024\nmov     rdx, rsi; char *                                               ; +0x253, 0x18013a027\ncall    ??$copy_and_add_argument_to_buffer@D@@YAHQEBD0_KAEAV?$argument_list@D@?A0x5f5c8891@@@Z ; +0x256, 0x18013a02a\nmov     edi, eax                                                       ; +0x25b, 0x18013a02f\ntest    eax, eax                                                       ; +0x25d, 0x18013a031\njnz     short loc_18013A090                                            ; +0x25f, 0x18013a033\nxor     edi, edi                                                       ; +0x261, 0x18013a035\ncmp     [rbp+260h+var_2C8], dil                                        ; +0x263, 0x18013a037\njz      short loc_18013A045                                            ; +0x267, 0x18013a03b\nmov     rcx, r15; Block                                                ; +0x269, 0x18013a03d\ncall    _free_base                                                     ; +0x26c, 0x18013a040\nlea     rdx, [rbp+260h+FindFileData]; lpFindFileData                   ; +0x271, 0x18013a045\nmov     rcx, rbx; hFindFile                                            ; +0x275, 0x18013a049\ncall    cs:FindNextFileW                                               ; +0x278, 0x18013a04c\nmov     r15d, 0FDE9h                                                   ; +0x27e, 0x18013a052\ntest    eax, eax                                                       ; +0x284, 0x18013a058\njnz     loc_180139F6D                                                  ; +0x286, 0x18013a05a\nmov     rax, [r12]                                                     ; +0x28c, 0x18013a060\nmov     rdx, [r12+8]                                                   ; +0x290, 0x18013a064\nsub     rdx, rax                                                       ; +0x295, 0x18013a069\nsar     rdx, 3                                                         ; +0x298, 0x18013a06c\ncmp     r14, rdx                                                       ; +0x29c, 0x18013a070\njz      short loc_18013A09E                                            ; +0x29f, 0x18013a073\nsub     rdx, r14; NumOfElements                                        ; +0x2a1, 0x18013a075\nlea     rcx, [rax+r14*8]; Base                                         ; +0x2a4, 0x18013a078\nlea     r9, unknown_libname_71; CompareFunction                        ; +0x2a8, 0x18013a07c\nmov     r8d, 8; SizeOfElements                                         ; +0x2af, 0x18013a083\ncall    qsort                                                          ; +0x2b5, 0x18013a089\njmp     short loc_18013A09E                                            ; +0x2ba, 0x18013a08e\ncmp     [rbp+260h+var_2C8], 0                                          ; +0x2bc, 0x18013a090\njz      short loc_18013A09E                                            ; +0x2c0, 0x18013a094\nmov     rcx, r15; Block                                                ; +0x2c2, 0x18013a096\ncall    _free_base                                                     ; +0x2c5, 0x18013a099\nmov     rcx, rbx; hFindFile                                            ; +0x2ca, 0x18013a09e\ncall    cs:FindClose                                                   ; +0x2cd, 0x18013a0a1\ncmp     [rbp+260h+var_298], 0                                          ; +0x2d3, 0x18013a0a7\njz      short loc_18013A0B6                                            ; +0x2d7, 0x18013a0ab\nmov     rcx, [rbp+260h+var_2B0]; Block                                 ; +0x2d9, 0x18013a0ad\ncall    _free_base                                                     ; +0x2dd, 0x18013a0b1\nmov     eax, edi                                                       ; +0x2e2, 0x18013a0b6\nmov     rcx, [rbp+260h+var_40]                                         ; +0x2e4, 0x18013a0b8\nxor     rcx, rsp; StackCookie                                          ; +0x2eb, 0x18013a0bf\ncall    __security_check_cookie                                        ; +0x2ee, 0x18013a0c2\nmov     rbx, [rsp+360h+arg_18]                                         ; +0x2f3, 0x18013a0c7\nadd     rsp, 330h                                                      ; +0x2fb, 0x18013a0cf\npop     r15                                                            ; +0x302, 0x18013a0d6\npop     r14                                                            ; +0x304, 0x18013a0d8\npop     r13                                                            ; +0x306, 0x18013a0da\npop     r12                                                            ; +0x308, 0x18013a0dc\npop     rdi                                                            ; +0x30a, 0x18013a0de\npop     rsi                                                            ; +0x30b, 0x18013a0df\npop     rbp                                                            ; +0x30c, 0x18013a0e0\nretn                                                                   ; +0x30d, 0x18013a0e1", "xrefs": ["common_expand_argv_wildcards<char> @ 0x180139ac8", "<???> @ 0x180203824"], "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"}