{"type": "func", "start": 6443720644, "end": 6443720809, "name": "__acrt_lowio_create_handle_array", "pseudocode": "// \n// __acrt_lowio_create_handle_array from 0x180135fc4 to 0x180136069 (165 bytes)\n// \n// 2 xrefs:\n// > __acrt_lowio_ensure_fh_exists @ 0x18013612f\n// > <???> @ 0x1802034b8\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\nchar *_acrt_lowio_create_handle_array()\n{\n  char *v0; // rax\n  char *v1; // rsi\n  char *v2; // rbx\n  char *v3; // rbp\n  char *v4; // rdi\n  _BYTE *v5; // rcx\n  unsigned int v6; // eax\n\n  v0 = (char *)calloc_base(0x40u, 0x48u);\n  v1 = nullptr;\n  v2 = v0;\n  if ( v0 )\n  {\n    v3 = v0 + 4608;\n    v4 = v0 + 48;\n    do\n    {\n      _vcrt_InitializeCriticalSectionEx_0((LPCRITICAL_SECTION)(v4 - 48), 0xFA0u, 0);\n      *((_QWORD *)v4 - 1) = -1;\n      v5 = v4 + 14;\n      v4[13] &= 0xF8u;\n      v6 = 0;\n      *(_QWORD *)v4 = 0;\n      *((_DWORD *)v4 + 2) = 168427520;\n      v4[12] = 10;\n      do\n      {\n        *v5 = 0;\n        ++v6;\n        ++v5;\n      }\n      while ( v6 < 5 );\n      v4 += 72;\n    }\n    while ( v4 - 48 != v3 );\n    v1 = v2;\n  }\n  free_base(nullptr);\n  return v1;\n}", "assembly": "; \n; __acrt_lowio_create_handle_array from 0x180135fc4 to 0x180136069 (165 bytes)\n; \n; 2 xrefs:\n; > __acrt_lowio_ensure_fh_exists @ 0x18013612f\n; > <???> @ 0x1802034b8\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, 0x180135fc4\nmov     [rsp+arg_8], rbp                                               ; +0x5, 0x180135fc9\nmov     [rsp+arg_10], rsi                                              ; +0xa, 0x180135fce\npush    rdi                                                            ; +0xf, 0x180135fd3\nsub     rsp, 20h                                                       ; +0x10, 0x180135fd4\nmov     edx, 48h ; 'H'; Size                                           ; +0x14, 0x180135fd8\nlea     ecx, [rdx-8]; Count                                            ; +0x19, 0x180135fdd\ncall    _calloc_base                                                   ; +0x1c, 0x180135fe0\nxor     esi, esi                                                       ; +0x21, 0x180135fe5\nmov     rbx, rax                                                       ; +0x23, 0x180135fe7\ntest    rax, rax                                                       ; +0x26, 0x180135fea\njz      short loc_18013604A                                            ; +0x29, 0x180135fed\nlea     rbp, [rax+1200h]                                               ; +0x2b, 0x180135fef\ncmp     rax, rbp                                                       ; +0x32, 0x180135ff6\njz      short loc_180136047                                            ; +0x35, 0x180135ff9\nlea     rdi, [rax+30h]                                                 ; +0x37, 0x180135ffb\nlea     rcx, [rdi-30h]; lpCriticalSection                              ; +0x3b, 0x180135fff\nxor     r8d, r8d                                                       ; +0x3f, 0x180136003\nmov     edx, 0FA0h; dwSpinCount                                        ; +0x42, 0x180136006\ncall    __vcrt_InitializeCriticalSectionEx_0                           ; +0x47, 0x18013600b\nor      qword ptr [rdi-8], 0FFFFFFFFFFFFFFFFh                          ; +0x4c, 0x180136010\nlea     rcx, [rdi+0Eh]                                                 ; +0x51, 0x180136015\nand     byte ptr [rdi+0Dh], 0F8h                                       ; +0x55, 0x180136019\nmov     eax, esi                                                       ; +0x59, 0x18013601d\nmov     [rdi], rsi                                                     ; +0x5b, 0x18013601f\nmov     dword ptr [rdi+8], 0A0A0000h                                   ; +0x5e, 0x180136022\nmov     byte ptr [rdi+0Ch], 0Ah                                        ; +0x65, 0x180136029\nmov     [rcx], sil                                                     ; +0x69, 0x18013602d\ninc     eax                                                            ; +0x6c, 0x180136030\ninc     rcx                                                            ; +0x6e, 0x180136032\ncmp     eax, 5                                                         ; +0x71, 0x180136035\njb      short loc_18013602D                                            ; +0x74, 0x180136038\nadd     rdi, 48h ; 'H'                                                 ; +0x76, 0x18013603a\nlea     rax, [rdi-30h]                                                 ; +0x7a, 0x18013603e\ncmp     rax, rbp                                                       ; +0x7e, 0x180136042\njnz     short loc_180135FFF                                            ; +0x81, 0x180136045\nmov     rsi, rbx                                                       ; +0x83, 0x180136047\nxor     ecx, ecx; Block                                                ; +0x86, 0x18013604a\ncall    _free_base                                                     ; +0x88, 0x18013604c\nmov     rbx, [rsp+28h+arg_0]                                           ; +0x8d, 0x180136051\nmov     rax, rsi                                                       ; +0x92, 0x180136056\nmov     rsi, [rsp+28h+arg_10]                                          ; +0x95, 0x180136059\nmov     rbp, [rsp+28h+arg_8]                                           ; +0x9a, 0x18013605e\nadd     rsp, 20h                                                       ; +0x9f, 0x180136063\npop     rdi                                                            ; +0xa3, 0x180136067\nretn                                                                   ; +0xa4, 0x180136068", "xrefs": ["__acrt_lowio_ensure_fh_exists @ 0x18013612f", "<???> @ 0x1802034b8"], "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"}