{"type": "func", "start": 6443666864, "end": 6443667016, "name": "common_getenv_nolock<wchar_t>", "pseudocode": "// \n// common_getenv_nolock<wchar_t> from 0x180128db0 to 0x180128e48 (152 bytes)\n// \n// 2 xrefs:\n// > common_getenv_s<wchar_t> @ 0x180128ec1\n// > <???> @ 0x180202a44\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\nconst wchar_t *__fastcall common_getenv_nolock<wchar_t>(wchar_t *String2)\n{\n  const wchar_t **v2; // rax\n  const wchar_t **v3; // rdi\n  size_t v4; // rbx\n  const wchar_t *i; // rax\n  unsigned __int64 v6; // rcx\n\n  v2 = (const wchar_t **)unknown_libname_65();\n  v3 = v2;\n  if ( v2 && String2 )\n  {\n    v4 = -1;\n    do\n      ++v4;\n    while ( String2[v4] );\n    for ( i = *v2; i; i = *v3 )\n    {\n      v6 = -1;\n      do\n        ++v6;\n      while ( i[v6] );\n      if ( v6 > v4 && i[v4] == 61 && !wcsnicoll(i, String2, v4) )\n        return &(*v3)[v4 + 1];\n      ++v3;\n    }\n  }\n  return nullptr;\n}", "assembly": "; \n; common_getenv_nolock<wchar_t> from 0x180128db0 to 0x180128e48 (152 bytes)\n; \n; 2 xrefs:\n; > common_getenv_s<wchar_t> @ 0x180128ec1\n; > <???> @ 0x180202a44\n; \n; This function is hookable on this platform!\n; \n; Using BromaIDA 8.0.0 @ https:;github.com/Stazzical/BromaIDA\n; Using bindings at commit ba9f177b at Thu Jul 16 22:52:06 2026 from https:;github.com/geode-sdk/bindings\n; \n\nmov     [rsp+arg_0], rbx                                               ; +0x0, 0x180128db0\nmov     [rsp+arg_8], rbp                                               ; +0x5, 0x180128db5\nmov     [rsp+arg_10], rsi                                              ; +0xa, 0x180128dba\npush    rdi                                                            ; +0xf, 0x180128dbf\nsub     rsp, 20h                                                       ; +0x10, 0x180128dc0\nmov     rsi, rcx                                                       ; +0x14, 0x180128dc4\ncall    unknown_libname_65; Microsoft VisualC 64bit universal runtime  ; +0x17, 0x180128dc7\nxor     ebp, ebp                                                       ; +0x1c, 0x180128dcc\nmov     rdi, rax                                                       ; +0x1e, 0x180128dce\ntest    rax, rax                                                       ; +0x21, 0x180128dd1\njz      short loc_180128E31                                            ; +0x24, 0x180128dd4\ntest    rsi, rsi                                                       ; +0x26, 0x180128dd6\njz      short loc_180128E31                                            ; +0x29, 0x180128dd9\nor      rbx, 0FFFFFFFFFFFFFFFFh                                        ; +0x2b, 0x180128ddb\ninc     rbx                                                            ; +0x2f, 0x180128ddf\ncmp     [rsi+rbx*2], bp                                                ; +0x32, 0x180128de2\njnz     short loc_180128DDF                                            ; +0x36, 0x180128de6\nmov     rax, [rax]                                                     ; +0x38, 0x180128de8\ntest    rax, rax                                                       ; +0x3b, 0x180128deb\njz      short loc_180128E31                                            ; +0x3e, 0x180128dee\nor      rcx, 0FFFFFFFFFFFFFFFFh                                        ; +0x40, 0x180128df0\ninc     rcx                                                            ; +0x44, 0x180128df4\ncmp     [rax+rcx*2], bp                                                ; +0x47, 0x180128df7\njnz     short loc_180128DF4                                            ; +0x4b, 0x180128dfb\ncmp     rcx, rbx                                                       ; +0x4d, 0x180128dfd\njbe     short loc_180128E1B                                            ; +0x50, 0x180128e00\ncmp     word ptr [rax+rbx*2], 3Dh ; '='                                ; +0x52, 0x180128e02\njnz     short loc_180128E1B                                            ; +0x57, 0x180128e07\nmov     r8, rbx; MaxCount                                              ; +0x59, 0x180128e09\nmov     rdx, rsi; String2                                              ; +0x5c, 0x180128e0c\nmov     rcx, rax; String1                                              ; +0x5f, 0x180128e0f\ncall    _wcsnicoll                                                     ; +0x62, 0x180128e12\ntest    eax, eax                                                       ; +0x67, 0x180128e17\njz      short loc_180128E24                                            ; +0x69, 0x180128e19\nadd     rdi, 8                                                         ; +0x6b, 0x180128e1b\nmov     rax, [rdi]                                                     ; +0x6f, 0x180128e1f\njmp     short loc_180128DEB                                            ; +0x72, 0x180128e22\nmov     rax, [rdi]                                                     ; +0x74, 0x180128e24\nlea     rax, [rax+rbx*2]                                               ; +0x77, 0x180128e27\nadd     rax, 2                                                         ; +0x7b, 0x180128e2b\njmp     short loc_180128E33                                            ; +0x7f, 0x180128e2f\nxor     eax, eax                                                       ; +0x81, 0x180128e31\nmov     rbx, [rsp+28h+arg_0]                                           ; +0x83, 0x180128e33\nmov     rbp, [rsp+28h+arg_8]                                           ; +0x88, 0x180128e38\nmov     rsi, [rsp+28h+arg_10]                                          ; +0x8d, 0x180128e3d\nadd     rsp, 20h                                                       ; +0x92, 0x180128e42\npop     rdi                                                            ; +0x96, 0x180128e46\nretn                                                                   ; +0x97, 0x180128e47", "xrefs": ["common_getenv_s<wchar_t> @ 0x180128ec1", "<???> @ 0x180202a44"], "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"}