{"type": "func", "start": 6443743960, "end": 6443744821, "name": "InternalCompareStringA", "pseudocode": "// \n// InternalCompareStringA from 0x18013bad8 to 0x18013be35 (861 bytes)\n// \n// 2 xrefs:\n// > __acrt_CompareStringA @ 0x18013be99\n// > <???> @ 0x180203974\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 InternalCompareStringA(\n        struct __crt_locale_pointers *a1,\n        const wchar_t *a2,\n        DWORD a3,\n        const char *a4,\n        int a5,\n        char *String,\n        int a7,\n        UINT CodePage)\n{\n  int v8; // ebx\n  int v11; // esi\n  UINT v12; // r14d\n  BYTE *LeadByte; // rax\n  BYTE *v15; // rax\n  int v16; // eax\n  unsigned int v17; // r12d\n  size_t v18; // rcx\n  __int64 v19; // rax\n  void *v20; // rsp\n  WCHAR *v21; // rdi\n  WCHAR *v22; // rax\n  int v23; // eax\n  int v24; // r15d\n  unsigned __int64 v25; // rcx\n  unsigned __int64 v26; // rdx\n  __int64 v27; // rax\n  void *v28; // rsp\n  WCHAR *v29; // rbx\n  WCHAR *v30; // rax\n  unsigned int v31; // esi\n  _BYTE v32[32]; // [rsp+0h] [rbp-50h] BYREF\n  DWORD v33; // [rsp+50h] [rbp+0h] BYREF\n  const wchar_t *v34; // [rsp+58h] [rbp+8h]\n  struct _cpinfo CPInfo; // [rsp+60h] [rbp+10h] BYREF\n\n  v8 = a5;\n  v33 = a3;\n  v34 = a2;\n  if ( a5 <= 0 )\n  {\n    if ( a5 < -1 )\n      return 0;\n  }\n  else\n  {\n    v8 = _strncnt(a4, a5);\n  }\n  v11 = a7;\n  if ( a7 <= 0 )\n  {\n    if ( a7 < -1 )\n      return 0;\n  }\n  else\n  {\n    v11 = _strncnt(String, a7);\n  }\n  v12 = CodePage;\n  if ( !CodePage )\n    v12 = *((_DWORD *)a1->locinfo + 3);\n  if ( !v8 || !v11 )\n  {\n    if ( v8 == v11 )\n      return 2;\n    if ( v11 > 1 )\n      return 1;\n    if ( v8 > 1 )\n      return 3;\n    if ( !GetCPInfo(v12, &CPInfo) )\n      return 0;\n    if ( v8 > 0 )\n    {\n      if ( CPInfo.MaxCharSize >= 2 )\n      {\n        LeadByte = CPInfo.LeadByte;\n        if ( CPInfo.LeadByte[0] )\n        {\n          while ( LeadByte[1] )\n          {\n            if ( (unsigned int)*a4 >= *LeadByte && (unsigned int)*a4 <= LeadByte[1] )\n              return 2;\n            LeadByte += 2;\n            if ( !*LeadByte )\n              return 3;\n          }\n        }\n      }\n      return 3;\n    }\n    if ( v11 > 0 )\n    {\n      if ( CPInfo.MaxCharSize >= 2 )\n      {\n        v15 = CPInfo.LeadByte;\n        if ( CPInfo.LeadByte[0] )\n        {\n          while ( v15[1] )\n          {\n            if ( (unsigned __int8)*String >= *v15 && (unsigned __int8)*String <= v15[1] )\n              return 2;\n            v15 += 2;\n            if ( !*v15 )\n              return 1;\n          }\n        }\n      }\n      return 1;\n    }\n  }\n  v16 = _acrt_MultiByteToWideChar(v12, 9, a4, v8, nullptr, 0);\n  v17 = v16;\n  if ( !v16 )\n    return 0;\n  v18 = (2LL * v16 + 16) & -(__int64)(2LL * v16 < (unsigned __int64)(2LL * v16 + 16));\n  if ( !v18 )\n  {\n    v21 = nullptr;\n    goto LABEL_42;\n  }\n  if ( v18 <= 0x400 )\n  {\n    v19 = v18 + 15;\n    if ( v18 + 15 < v18 )\n      v19 = 0xFFFFFFFFFFFFFF0LL;\n    v20 = alloca(v19 & 0xFFFFFFFFFFFFFFF0uLL);\n    v21 = (WCHAR *)&v33;\n    if ( v32 == (_BYTE *)-80LL )\n      goto LABEL_62;\n    v33 = 52428;\n    goto LABEL_40;\n  }\n  v22 = (WCHAR *)malloc_base(v18);\n  v21 = v22;\n  if ( v22 )\n  {\n    *(_DWORD *)v22 = 56797;\nLABEL_40:\n    v21 += 8;\n  }\nLABEL_42:\n  if ( v21 )\n  {\n    if ( _acrt_MultiByteToWideChar(v12, 1, a4, v8, v21, v17) )\n    {\n      v23 = _acrt_MultiByteToWideChar(v12, 9, String, v11, nullptr, 0);\n      v24 = v23;\n      if ( v23 )\n      {\n        v25 = 2LL * v23 + 16;\n        v26 = v25 & -(__int64)(2LL * v23 < v25);\n        if ( !v26 )\n        {\n          v29 = nullptr;\n          goto LABEL_55;\n        }\n        if ( v26 > 0x400 )\n        {\n          v30 = (WCHAR *)malloc_base(v25 & -(__int64)(2LL * v23 < v25));\n          v29 = v30;\n          if ( !v30 )\n          {\nLABEL_55:\n            if ( v29 && _acrt_MultiByteToWideChar(v12, 1, String, v11, v29, v24) )\n            {\n              v31 = _acrt_CompareStringEx((__int64)v34, v33, v21, v17, v29, v24, 0, 0, 0);\nLABEL_59:\n              if ( v29 && *((_DWORD *)v29 - 4) == 56797 )\n                free_base(v29 - 8);\n              goto LABEL_63;\n            }\nLABEL_58:\n            v31 = 0;\n            goto LABEL_59;\n          }\n          *(_DWORD *)v30 = 56797;\n        }\n        else\n        {\n          v27 = v26 + 15;\n          if ( v26 + 15 < v26 )\n            v27 = 0xFFFFFFFFFFFFFF0LL;\n          v28 = alloca(v27 & 0xFFFFFFFFFFFFFFF0uLL);\n          v29 = (WCHAR *)&v33;\n          if ( v32 == (_BYTE *)-80LL )\n            goto LABEL_58;\n          v33 = 52428;\n        }\n        v29 += 8;\n        goto LABEL_55;\n      }\n    }\n  }\nLABEL_62:\n  v31 = 0;\nLABEL_63:\n  if ( v21 && *((_DWORD *)v21 - 4) == 56797 )\n    free_base(v21 - 8);\n  return v31;\n}", "assembly": "; \n; InternalCompareStringA from 0x18013bad8 to 0x18013be35 (861 bytes)\n; \n; 2 xrefs:\n; > __acrt_CompareStringA @ 0x18013be99\n; > <???> @ 0x180203974\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, 0x18013bad8\npush    rbx                                                            ; +0x2, 0x18013bada\npush    rsi                                                            ; +0x3, 0x18013badb\npush    rdi                                                            ; +0x4, 0x18013badc\npush    r12                                                            ; +0x5, 0x18013badd\npush    r13                                                            ; +0x7, 0x18013badf\npush    r14                                                            ; +0x9, 0x18013bae1\npush    r15                                                            ; +0xb, 0x18013bae3\nsub     rsp, 88h                                                       ; +0xd, 0x18013bae5\nlea     rbp, [rsp+50h]                                                 ; +0x14, 0x18013baec\nmov     rax, cs:__security_cookie                                      ; +0x19, 0x18013baf1\nxor     rax, rbp                                                       ; +0x20, 0x18013baf8\nmov     [rbp+70h+var_48], rax                                          ; +0x23, 0x18013bafb\nmovsxd  rbx, [rbp+70h+arg_20]                                          ; +0x27, 0x18013baff\nxor     r12d, r12d                                                     ; +0x2e, 0x18013bb06\nmov     r13, [rbp+70h+String]                                          ; +0x31, 0x18013bb09\nmov     r15, r9                                                        ; +0x38, 0x18013bb10\nmov     [rbp+70h+var_70], r8d                                          ; +0x3b, 0x18013bb13\nmov     rdi, rcx                                                       ; +0x3f, 0x18013bb17\nmov     [rbp+70h+var_68], rdx                                          ; +0x42, 0x18013bb1a\ntest    ebx, ebx                                                       ; +0x46, 0x18013bb1e\njle     short loc_18013BB32                                            ; +0x48, 0x18013bb20\nmov     rdx, rbx; Count                                                ; +0x4a, 0x18013bb22\nmov     rcx, r9; String                                                ; +0x4d, 0x18013bb25\ncall    __strncnt                                                      ; +0x50, 0x18013bb28\nmov     rbx, rax                                                       ; +0x55, 0x18013bb2d\njmp     short loc_18013BB3B                                            ; +0x58, 0x18013bb30\ncmp     ebx, 0FFFFFFFFh                                                ; +0x5a, 0x18013bb32\njl      loc_18013BE16                                                  ; +0x5d, 0x18013bb35\nmovsxd  rsi, [rbp+70h+arg_30]                                          ; +0x63, 0x18013bb3b\ntest    esi, esi                                                       ; +0x6a, 0x18013bb42\njle     short loc_18013BB56                                            ; +0x6c, 0x18013bb44\nmov     rdx, rsi; Count                                                ; +0x6e, 0x18013bb46\nmov     rcx, r13; String                                               ; +0x71, 0x18013bb49\ncall    __strncnt                                                      ; +0x74, 0x18013bb4c\nmov     rsi, rax                                                       ; +0x79, 0x18013bb51\njmp     short loc_18013BB5F                                            ; +0x7c, 0x18013bb54\ncmp     esi, 0FFFFFFFFh                                                ; +0x7e, 0x18013bb56\njl      loc_18013BE16                                                  ; +0x81, 0x18013bb59\nmov     r14d, [rbp+70h+CodePage]                                       ; +0x87, 0x18013bb5f\ntest    r14d, r14d                                                     ; +0x8e, 0x18013bb66\njnz     short loc_18013BB72                                            ; +0x91, 0x18013bb69\nmov     rax, [rdi]                                                     ; +0x93, 0x18013bb6b\nmov     r14d, [rax+0Ch]                                                ; +0x96, 0x18013bb6e\ntest    ebx, ebx                                                       ; +0x9a, 0x18013bb72\njz      short loc_18013BB7E                                            ; +0x9c, 0x18013bb74\ntest    esi, esi                                                       ; +0x9e, 0x18013bb76\njnz     loc_18013BC24                                                  ; +0xa0, 0x18013bb78\ncmp     ebx, esi                                                       ; +0xa6, 0x18013bb7e\njz      loc_18013BE0F                                                  ; +0xa8, 0x18013bb80\ncmp     esi, 1                                                         ; +0xae, 0x18013bb86\njg      loc_18013BC1A                                                  ; +0xb1, 0x18013bb89\ncmp     ebx, 1                                                         ; +0xb7, 0x18013bb8f\njg      short loc_18013BBDC                                            ; +0xba, 0x18013bb92\nlea     rdx, [rbp+70h+CPInfo]; lpCPInfo                                ; +0xbc, 0x18013bb94\nmov     ecx, r14d; CodePage                                            ; +0xc0, 0x18013bb98\ncall    cs:GetCPInfo                                                   ; +0xc3, 0x18013bb9b\ntest    eax, eax                                                       ; +0xc9, 0x18013bba1\njz      loc_18013BE16                                                  ; +0xcb, 0x18013bba3\ntest    ebx, ebx                                                       ; +0xd1, 0x18013bba9\njle     short loc_18013BBE6                                            ; +0xd3, 0x18013bbab\ncmp     [rbp+70h+CPInfo.MaxCharSize], 2                                ; +0xd5, 0x18013bbad\njb      short loc_18013BBDC                                            ; +0xd9, 0x18013bbb1\nlea     rax, [rbp+70h+CPInfo.LeadByte]                                 ; +0xdb, 0x18013bbb3\ncmp     [rbp+70h+CPInfo.LeadByte], r12b                                ; +0xdf, 0x18013bbb7\njz      short loc_18013BBDC                                            ; +0xe3, 0x18013bbbb\ncmp     [rax+1], r12b                                                  ; +0xe5, 0x18013bbbd\njz      short loc_18013BBDC                                            ; +0xe9, 0x18013bbc1\nmov     cl, [r15]                                                      ; +0xeb, 0x18013bbc3\ncmp     cl, [rax]                                                      ; +0xee, 0x18013bbc6\njb      short loc_18013BBD3                                            ; +0xf0, 0x18013bbc8\ncmp     cl, [rax+1]                                                    ; +0xf2, 0x18013bbca\njbe     loc_18013BE0F                                                  ; +0xf5, 0x18013bbcd\nadd     rax, 2                                                         ; +0xfb, 0x18013bbd3\ncmp     [rax], r12b                                                    ; +0xff, 0x18013bbd7\njnz     short loc_18013BBBD                                            ; +0x102, 0x18013bbda\nmov     eax, 3                                                         ; +0x104, 0x18013bbdc\njmp     loc_18013BE18                                                  ; +0x109, 0x18013bbe1\ntest    esi, esi                                                       ; +0x10e, 0x18013bbe6\njle     short loc_18013BC24                                            ; +0x110, 0x18013bbe8\ncmp     [rbp+70h+CPInfo.MaxCharSize], 2                                ; +0x112, 0x18013bbea\njb      short loc_18013BC1A                                            ; +0x116, 0x18013bbee\nlea     rax, [rbp+70h+CPInfo.LeadByte]                                 ; +0x118, 0x18013bbf0\ncmp     [rbp+70h+CPInfo.LeadByte], r12b                                ; +0x11c, 0x18013bbf4\njz      short loc_18013BC1A                                            ; +0x120, 0x18013bbf8\ncmp     [rax+1], r12b                                                  ; +0x122, 0x18013bbfa\njz      short loc_18013BC1A                                            ; +0x126, 0x18013bbfe\nmov     cl, [r13+0]                                                    ; +0x128, 0x18013bc00\ncmp     cl, [rax]                                                      ; +0x12c, 0x18013bc04\njb      short loc_18013BC11                                            ; +0x12e, 0x18013bc06\ncmp     cl, [rax+1]                                                    ; +0x130, 0x18013bc08\njbe     loc_18013BE0F                                                  ; +0x133, 0x18013bc0b\nadd     rax, 2                                                         ; +0x139, 0x18013bc11\ncmp     [rax], r12b                                                    ; +0x13d, 0x18013bc15\njnz     short loc_18013BBFA                                            ; +0x140, 0x18013bc18\nmov     eax, 1                                                         ; +0x142, 0x18013bc1a\njmp     loc_18013BE18                                                  ; +0x147, 0x18013bc1f\nmov     [rsp+0C0h+var_98], r12d                                        ; +0x14c, 0x18013bc24\nmov     r9d, ebx                                                       ; +0x151, 0x18013bc29\nmov     r8, r15                                                        ; +0x154, 0x18013bc2c\nmov     [rsp+0C0h+var_A0], r12                                         ; +0x157, 0x18013bc2f\nmov     edx, 9                                                         ; +0x15c, 0x18013bc34\nmov     ecx, r14d                                                      ; +0x161, 0x18013bc39\ncall    __acrt_MultiByteToWideChar                                     ; +0x164, 0x18013bc3c\nmovsxd  r12, eax                                                       ; +0x169, 0x18013bc41\ntest    eax, eax                                                       ; +0x16c, 0x18013bc44\njz      loc_18013BE16                                                  ; +0x16e, 0x18013bc46\nmov     rcx, r12                                                       ; +0x174, 0x18013bc4c\nmov     r8, 0FFFFFFFFFFFFFF0h                                          ; +0x177, 0x18013bc4f\nadd     rcx, rcx                                                       ; +0x181, 0x18013bc59\nlea     rdx, [rcx+10h]                                                 ; +0x184, 0x18013bc5c\ncmp     rcx, rdx                                                       ; +0x188, 0x18013bc60\nsbb     rcx, rcx                                                       ; +0x18b, 0x18013bc63\nand     rcx, rdx; Size                                                 ; +0x18e, 0x18013bc66\njz      short loc_18013BCBB                                            ; +0x191, 0x18013bc69\ncmp     rcx, 400h                                                      ; +0x193, 0x18013bc6b\nja      short loc_18013BCA2                                            ; +0x19a, 0x18013bc72\nlea     rax, [rcx+0Fh]                                                 ; +0x19c, 0x18013bc74\ncmp     rax, rcx                                                       ; +0x1a0, 0x18013bc78\nja      short loc_18013BC80                                            ; +0x1a3, 0x18013bc7b\nmov     rax, r8                                                        ; +0x1a5, 0x18013bc7d\nand     rax, 0FFFFFFFFFFFFFFF0h                                        ; +0x1a8, 0x18013bc80\ncall    __alloca_probe                                                 ; +0x1ac, 0x18013bc84\nsub     rsp, rax                                                       ; +0x1b1, 0x18013bc89\nlea     rdi, [rsp+0C0h+var_70]                                         ; +0x1b4, 0x18013bc8c\ntest    rdi, rdi                                                       ; +0x1b9, 0x18013bc91\njz      loc_18013BDF3                                                  ; +0x1bc, 0x18013bc94\nmov     dword ptr [rdi], 0CCCCh                                        ; +0x1c2, 0x18013bc9a\njmp     short loc_18013BCB5                                            ; +0x1c8, 0x18013bca0\ncall    _malloc_base                                                   ; +0x1ca, 0x18013bca2\nmov     rdi, rax                                                       ; +0x1cf, 0x18013bca7\ntest    rax, rax                                                       ; +0x1d2, 0x18013bcaa\njz      short loc_18013BCBD                                            ; +0x1d5, 0x18013bcad\nmov     dword ptr [rax], 0DDDDh                                        ; +0x1d7, 0x18013bcaf\nadd     rdi, 10h                                                       ; +0x1dd, 0x18013bcb5\njmp     short loc_18013BCBD                                            ; +0x1e1, 0x18013bcb9\nxor     edi, edi                                                       ; +0x1e3, 0x18013bcbb\ntest    rdi, rdi                                                       ; +0x1e5, 0x18013bcbd\njz      loc_18013BDF3                                                  ; +0x1e8, 0x18013bcc0\nmov     [rsp+0C0h+var_98], r12d                                        ; +0x1ee, 0x18013bcc6\nmov     r9d, ebx                                                       ; +0x1f3, 0x18013bccb\nmov     r8, r15                                                        ; +0x1f6, 0x18013bcce\nmov     [rsp+0C0h+var_A0], rdi                                         ; +0x1f9, 0x18013bcd1\nmov     edx, 1                                                         ; +0x1fe, 0x18013bcd6\nmov     ecx, r14d                                                      ; +0x203, 0x18013bcdb\ncall    __acrt_MultiByteToWideChar                                     ; +0x206, 0x18013bcde\ntest    eax, eax                                                       ; +0x20b, 0x18013bce3\njz      loc_18013BDF3                                                  ; +0x20d, 0x18013bce5\nand     [rsp+0C0h+var_98], 0                                           ; +0x213, 0x18013bceb\nmov     r9d, esi                                                       ; +0x218, 0x18013bcf0\nand     [rsp+0C0h+var_A0], 0                                           ; +0x21b, 0x18013bcf3\nmov     r8, r13                                                        ; +0x221, 0x18013bcf9\nmov     edx, 9                                                         ; +0x224, 0x18013bcfc\nmov     ecx, r14d                                                      ; +0x229, 0x18013bd01\ncall    __acrt_MultiByteToWideChar                                     ; +0x22c, 0x18013bd04\nmovsxd  r15, eax                                                       ; +0x231, 0x18013bd09\ntest    eax, eax                                                       ; +0x234, 0x18013bd0c\njz      loc_18013BDF3                                                  ; +0x236, 0x18013bd0e\nmov     rdx, r15                                                       ; +0x23c, 0x18013bd14\nadd     rdx, rdx                                                       ; +0x23f, 0x18013bd17\nlea     rcx, [rdx+10h]                                                 ; +0x242, 0x18013bd1a\ncmp     rdx, rcx                                                       ; +0x246, 0x18013bd1e\nsbb     rdx, rdx                                                       ; +0x249, 0x18013bd21\nand     rdx, rcx                                                       ; +0x24c, 0x18013bd24\njz      short loc_18013BD7F                                            ; +0x24f, 0x18013bd27\ncmp     rdx, 400h                                                      ; +0x251, 0x18013bd29\nja      short loc_18013BD63                                            ; +0x258, 0x18013bd30\nlea     rax, [rdx+0Fh]                                                 ; +0x25a, 0x18013bd32\ncmp     rax, rdx                                                       ; +0x25e, 0x18013bd36\nja      short loc_18013BD45                                            ; +0x261, 0x18013bd39\nmov     rax, 0FFFFFFFFFFFFFF0h                                         ; +0x263, 0x18013bd3b\nand     rax, 0FFFFFFFFFFFFFFF0h                                        ; +0x26d, 0x18013bd45\ncall    __alloca_probe                                                 ; +0x271, 0x18013bd49\nsub     rsp, rax                                                       ; +0x276, 0x18013bd4e\nlea     rbx, [rsp+0C0h+var_70]                                         ; +0x279, 0x18013bd51\ntest    rbx, rbx                                                       ; +0x27e, 0x18013bd56\njz      short loc_18013BDD9                                            ; +0x281, 0x18013bd59\nmov     dword ptr [rbx], 0CCCCh                                        ; +0x283, 0x18013bd5b\njmp     short loc_18013BD79                                            ; +0x289, 0x18013bd61\nmov     rcx, rdx; Size                                                 ; +0x28b, 0x18013bd63\ncall    _malloc_base                                                   ; +0x28e, 0x18013bd66\nmov     rbx, rax                                                       ; +0x293, 0x18013bd6b\ntest    rax, rax                                                       ; +0x296, 0x18013bd6e\njz      short loc_18013BD81                                            ; +0x299, 0x18013bd71\nmov     dword ptr [rax], 0DDDDh                                        ; +0x29b, 0x18013bd73\nadd     rbx, 10h                                                       ; +0x2a1, 0x18013bd79\njmp     short loc_18013BD81                                            ; +0x2a5, 0x18013bd7d\nxor     ebx, ebx                                                       ; +0x2a7, 0x18013bd7f\ntest    rbx, rbx                                                       ; +0x2a9, 0x18013bd81\njz      short loc_18013BDD9                                            ; +0x2ac, 0x18013bd84\nmov     [rsp+0C0h+var_98], r15d                                        ; +0x2ae, 0x18013bd86\nmov     r9d, esi                                                       ; +0x2b3, 0x18013bd8b\nmov     r8, r13                                                        ; +0x2b6, 0x18013bd8e\nmov     [rsp+0C0h+var_A0], rbx                                         ; +0x2b9, 0x18013bd91\nmov     edx, 1                                                         ; +0x2be, 0x18013bd96\nmov     ecx, r14d                                                      ; +0x2c3, 0x18013bd9b\ncall    __acrt_MultiByteToWideChar                                     ; +0x2c6, 0x18013bd9e\ntest    eax, eax                                                       ; +0x2cb, 0x18013bda3\njz      short loc_18013BDD9                                            ; +0x2cd, 0x18013bda5\nand     [rsp+0C0h+var_80], 0                                           ; +0x2cf, 0x18013bda7\nmov     r9d, r12d                                                      ; +0x2d5, 0x18013bdad\nand     [rsp+0C0h+var_88], 0                                           ; +0x2d8, 0x18013bdb0\nmov     r8, rdi                                                        ; +0x2de, 0x18013bdb6\nand     [rsp+0C0h+var_90], 0                                           ; +0x2e1, 0x18013bdb9\nmov     edx, [rbp+70h+var_70]                                          ; +0x2e7, 0x18013bdbf\nmov     rcx, [rbp+70h+var_68]                                          ; +0x2ea, 0x18013bdc2\nmov     [rsp+0C0h+var_98], r15d                                        ; +0x2ee, 0x18013bdc6\nmov     [rsp+0C0h+var_A0], rbx                                         ; +0x2f3, 0x18013bdcb\ncall    __acrt_CompareStringEx                                         ; +0x2f8, 0x18013bdd0\nmov     esi, eax                                                       ; +0x2fd, 0x18013bdd5\njmp     short loc_18013BDDB                                            ; +0x2ff, 0x18013bdd7\nxor     esi, esi                                                       ; +0x301, 0x18013bdd9\ntest    rbx, rbx                                                       ; +0x303, 0x18013bddb\njz      short loc_18013BDF5                                            ; +0x306, 0x18013bdde\nlea     rcx, [rbx-10h]; Block                                          ; +0x308, 0x18013bde0\ncmp     dword ptr [rcx], 0DDDDh                                        ; +0x30c, 0x18013bde4\njnz     short loc_18013BDF5                                            ; +0x312, 0x18013bdea\ncall    _free_base                                                     ; +0x314, 0x18013bdec\njmp     short loc_18013BDF5                                            ; +0x319, 0x18013bdf1\nxor     esi, esi                                                       ; +0x31b, 0x18013bdf3\ntest    rdi, rdi                                                       ; +0x31d, 0x18013bdf5\njz      short loc_18013BE0B                                            ; +0x320, 0x18013bdf8\nlea     rcx, [rdi-10h]; Block                                          ; +0x322, 0x18013bdfa\ncmp     dword ptr [rcx], 0DDDDh                                        ; +0x326, 0x18013bdfe\njnz     short loc_18013BE0B                                            ; +0x32c, 0x18013be04\ncall    _free_base                                                     ; +0x32e, 0x18013be06\nmov     eax, esi                                                       ; +0x333, 0x18013be0b\njmp     short loc_18013BE18                                            ; +0x335, 0x18013be0d\nmov     eax, 2                                                         ; +0x337, 0x18013be0f\njmp     short loc_18013BE18                                            ; +0x33c, 0x18013be14\nxor     eax, eax                                                       ; +0x33e, 0x18013be16\nmov     rcx, [rbp+70h+var_48]                                          ; +0x340, 0x18013be18\nxor     rcx, rbp; StackCookie                                          ; +0x344, 0x18013be1c\ncall    __security_check_cookie                                        ; +0x347, 0x18013be1f\nlea     rsp, [rbp+38h]                                                 ; +0x34c, 0x18013be24\npop     r15                                                            ; +0x350, 0x18013be28\npop     r14                                                            ; +0x352, 0x18013be2a\npop     r13                                                            ; +0x354, 0x18013be2c\npop     r12                                                            ; +0x356, 0x18013be2e\npop     rdi                                                            ; +0x358, 0x18013be30\npop     rsi                                                            ; +0x359, 0x18013be31\npop     rbx                                                            ; +0x35a, 0x18013be32\npop     rbp                                                            ; +0x35b, 0x18013be33\nretn                                                                   ; +0x35c, 0x18013be34", "xrefs": ["__acrt_CompareStringA @ 0x18013be99", "<???> @ 0x180203974"], "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"}