{"type": "func", "start": 6443714644, "end": 6443714738, "name": "_malloc_base", "pseudocode": "// \n// _malloc_base from 0x180134854 to 0x1801348b2 (94 bytes)\n// \n// 20 xrefs:\n// > __acrt_mbs_to_wcs_cp<__crt_win32_buffer_internal_dynamic_resizing> @ 0x180128fbb\n// > __acrt_mbs_to_wcs_cp<__crt_win32_buffer_internal_dynamic_resizing> @ 0x18012904a\n// > j__malloc_base @ 0x18012b810\n// > __crt_stdio_output::formatting_buffer::ensure_buffer_is_big_enough<char> @ 0x18012bc55\n// > __crt_stdio_output::formatting_buffer::ensure_buffer_is_big_enough<wchar_t> @ 0x18012bd00\n// > __acrt_stdio_begin_temporary_buffering_nolock @ 0x1801385a5\n// > _realloc_base @ 0x180138658\n// > __acrt_wcs_to_mbs_cp<__crt_win32_buffer_internal_dynamic_resizing> @ 0x180139920\n// > __acrt_wcs_to_mbs_cp<__crt_win32_buffer_internal_dynamic_resizing> @ 0x1801399b9\n// > setmbcp_internal @ 0x18013a5eb\n// > __dcrt_get_narrow_environment_from_os @ 0x18013ac8e\n// > __dcrt_get_wide_environment_from_os @ 0x18013ad61\n// > InternalCompareStringA @ 0x18013bca2\n// > InternalCompareStringA @ 0x18013bd66\n// > tzset_from_environment_nolock @ 0x18013cdcc\n// > tzset_nolock @ 0x18013d1bc\n// > __acrt_GetStringTypeA @ 0x18013d801\n// > __acrt_LCMapStringA_stat @ 0x180140d04\n// > __acrt_LCMapStringA_stat @ 0x180140e35\n// > <???> @ 0x180203290\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\nvoid *__cdecl malloc_base(size_t Size)\n{\n  size_t v1; // rbx\n  void *result; // rax\n\n  v1 = Size;\n  if ( Size > 0xFFFFFFFFFFFFFFE0uLL )\n  {\nLABEL_9:\n    *errno() = 12;\n    return nullptr;\n  }\n  else\n  {\n    if ( !Size )\n      v1 = 1;\n    while ( 1 )\n    {\n      result = HeapAlloc(hHeap, 0, v1);\n      if ( result )\n        break;\n      if ( !(unsigned int)sub_18013BEC4() || !callnewh(v1) )\n        goto LABEL_9;\n    }\n  }\n  return result;\n}", "assembly": "; \n; _malloc_base from 0x180134854 to 0x1801348b2 (94 bytes)\n; \n; 20 xrefs:\n; > __acrt_mbs_to_wcs_cp<__crt_win32_buffer_internal_dynamic_resizing> @ 0x180128fbb\n; > __acrt_mbs_to_wcs_cp<__crt_win32_buffer_internal_dynamic_resizing> @ 0x18012904a\n; > j__malloc_base @ 0x18012b810\n; > __crt_stdio_output::formatting_buffer::ensure_buffer_is_big_enough<char> @ 0x18012bc55\n; > __crt_stdio_output::formatting_buffer::ensure_buffer_is_big_enough<wchar_t> @ 0x18012bd00\n; > __acrt_stdio_begin_temporary_buffering_nolock @ 0x1801385a5\n; > _realloc_base @ 0x180138658\n; > __acrt_wcs_to_mbs_cp<__crt_win32_buffer_internal_dynamic_resizing> @ 0x180139920\n; > __acrt_wcs_to_mbs_cp<__crt_win32_buffer_internal_dynamic_resizing> @ 0x1801399b9\n; > setmbcp_internal @ 0x18013a5eb\n; > __dcrt_get_narrow_environment_from_os @ 0x18013ac8e\n; > __dcrt_get_wide_environment_from_os @ 0x18013ad61\n; > InternalCompareStringA @ 0x18013bca2\n; > InternalCompareStringA @ 0x18013bd66\n; > tzset_from_environment_nolock @ 0x18013cdcc\n; > tzset_nolock @ 0x18013d1bc\n; > __acrt_GetStringTypeA @ 0x18013d801\n; > __acrt_LCMapStringA_stat @ 0x180140d04\n; > __acrt_LCMapStringA_stat @ 0x180140e35\n; > <???> @ 0x180203290\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    rbx                                                            ; +0x0, 0x180134854\nsub     rsp, 20h                                                       ; +0x2, 0x180134856\nmov     rbx, rcx                                                       ; +0x6, 0x18013485a\ncmp     rcx, 0FFFFFFFFFFFFFFE0h                                        ; +0x9, 0x18013485d\nja      short loc_18013489F                                            ; +0xd, 0x180134861\ntest    rcx, rcx                                                       ; +0xf, 0x180134863\nmov     eax, 1                                                         ; +0x12, 0x180134866\ncmovz   rbx, rax                                                       ; +0x17, 0x18013486b\njmp     short loc_180134886                                            ; +0x1b, 0x18013486f\ncall    sub_18013BEC4                                                  ; +0x1d, 0x180134871\ntest    eax, eax                                                       ; +0x22, 0x180134876\njz      short loc_18013489F                                            ; +0x24, 0x180134878\nmov     rcx, rbx; Size                                                 ; +0x26, 0x18013487a\ncall    _callnewh                                                      ; +0x29, 0x18013487d\ntest    eax, eax                                                       ; +0x2e, 0x180134882\njz      short loc_18013489F                                            ; +0x30, 0x180134884\nmov     rcx, cs:hHeap; hHeap                                           ; +0x32, 0x180134886\nmov     r8, rbx; dwBytes                                               ; +0x39, 0x18013488d\nxor     edx, edx; dwFlags                                              ; +0x3c, 0x180134890\ncall    cs:HeapAlloc                                                   ; +0x3e, 0x180134892\ntest    rax, rax                                                       ; +0x44, 0x180134898\njz      short loc_180134871                                            ; +0x47, 0x18013489b\njmp     short loc_1801348AC                                            ; +0x49, 0x18013489d\ncall    _errno                                                         ; +0x4b, 0x18013489f\nmov     dword ptr [rax], 0Ch                                           ; +0x50, 0x1801348a4\nxor     eax, eax                                                       ; +0x56, 0x1801348aa\nadd     rsp, 20h                                                       ; +0x58, 0x1801348ac\npop     rbx                                                            ; +0x5c, 0x1801348b0\nretn                                                                   ; +0x5d, 0x1801348b1", "xrefs": ["__acrt_mbs_to_wcs_cp<__crt_win32_buffer_internal_dynamic_resizing> @ 0x180128fbb", "__acrt_mbs_to_wcs_cp<__crt_win32_buffer_internal_dynamic_resizing> @ 0x18012904a", "j__malloc_base @ 0x18012b810", "__crt_stdio_output::formatting_buffer::ensure_buffer_is_big_enough<char> @ 0x18012bc55", "__crt_stdio_output::formatting_buffer::ensure_buffer_is_big_enough<wchar_t> @ 0x18012bd00", "__acrt_stdio_begin_temporary_buffering_nolock @ 0x1801385a5", "_realloc_base @ 0x180138658", "__acrt_wcs_to_mbs_cp<__crt_win32_buffer_internal_dynamic_resizing> @ 0x180139920", "__acrt_wcs_to_mbs_cp<__crt_win32_buffer_internal_dynamic_resizing> @ 0x1801399b9", "setmbcp_internal @ 0x18013a5eb", "__dcrt_get_narrow_environment_from_os @ 0x18013ac8e", "__dcrt_get_wide_environment_from_os @ 0x18013ad61", "InternalCompareStringA @ 0x18013bca2", "InternalCompareStringA @ 0x18013bd66", "tzset_from_environment_nolock @ 0x18013cdcc", "tzset_nolock @ 0x18013d1bc", "__acrt_GetStringTypeA @ 0x18013d801", "__acrt_LCMapStringA_stat @ 0x180140d04", "__acrt_LCMapStringA_stat @ 0x180140e35", "<???> @ 0x180203290"], "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"}