{"type": "func", "start": 6443742676, "end": 6443742825, "name": "_recalloc_base", "pseudocode": "// \n// _recalloc_base from 0x18013b5d4 to 0x18013b669 (149 bytes)\n// \n// 8 xrefs:\n// > _lambda_22ebabd17bc4fa466a2aca6d8deb888d_::operator @ 0x18013252a\n// > _lambda_22ebabd17bc4fa466a2aca6d8deb888d_::operator @ 0x18013254e\n// > copy_and_add_argument_to_buffer<char> @ 0x180139d6b\n// > common_set_variable_in_environment_nolock<char> @ 0x18013af7f\n// > common_set_variable_in_environment_nolock<char> @ 0x18013afd2\n// > common_set_variable_in_environment_nolock<wchar_t> @ 0x18013b29f\n// > common_set_variable_in_environment_nolock<wchar_t> @ 0x18013b2f3\n// > <???> @ 0x1802038fc\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 recalloc_base(void *Block, size_t Count, size_t Size)\n{\n  size_t v7; // rdi\n  size_t v8; // rbx\n  char *v9; // rax\n  void *v10; // rsi\n\n  if ( Count && 0xFFFFFFFFFFFFFFE0uLL / Count < Size )\n  {\n    *errno() = 12;\n    return nullptr;\n  }\n  else\n  {\n    if ( Block )\n      v7 = msize(Block);\n    else\n      v7 = 0;\n    v8 = Size * Count;\n    v9 = (char *)realloc_base(Block, v8);\n    v10 = v9;\n    if ( v9 )\n    {\n      if ( v7 < v8 )\n        memset(&v9[v7], 0, v8 - v7);\n    }\n    return v10;\n  }\n}", "assembly": "; \n; _recalloc_base from 0x18013b5d4 to 0x18013b669 (149 bytes)\n; \n; 8 xrefs:\n; > _lambda_22ebabd17bc4fa466a2aca6d8deb888d_::operator @ 0x18013252a\n; > _lambda_22ebabd17bc4fa466a2aca6d8deb888d_::operator @ 0x18013254e\n; > copy_and_add_argument_to_buffer<char> @ 0x180139d6b\n; > common_set_variable_in_environment_nolock<char> @ 0x18013af7f\n; > common_set_variable_in_environment_nolock<char> @ 0x18013afd2\n; > common_set_variable_in_environment_nolock<wchar_t> @ 0x18013b29f\n; > common_set_variable_in_environment_nolock<wchar_t> @ 0x18013b2f3\n; > <???> @ 0x1802038fc\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, 0x18013b5d4\nmov     [rsp+arg_8], rbp                                               ; +0x5, 0x18013b5d9\nmov     [rsp+arg_10], rsi                                              ; +0xa, 0x18013b5de\npush    rdi                                                            ; +0xf, 0x18013b5e3\nsub     rsp, 20h                                                       ; +0x10, 0x18013b5e4\nmov     rbp, r8                                                        ; +0x14, 0x18013b5e8\nmov     rbx, rdx                                                       ; +0x17, 0x18013b5eb\nmov     rsi, rcx                                                       ; +0x1a, 0x18013b5ee\ntest    rdx, rdx                                                       ; +0x1d, 0x18013b5f1\njz      short loc_18013B613                                            ; +0x20, 0x18013b5f4\nxor     edx, edx                                                       ; +0x22, 0x18013b5f6\nlea     rax, [rdx-20h]                                                 ; +0x24, 0x18013b5f8\ndiv     rbx                                                            ; +0x28, 0x18013b5fc\ncmp     rax, r8                                                        ; +0x2b, 0x18013b5ff\njnb     short loc_18013B613                                            ; +0x2e, 0x18013b602\ncall    _errno                                                         ; +0x30, 0x18013b604\nmov     dword ptr [rax], 0Ch                                           ; +0x35, 0x18013b609\nxor     eax, eax                                                       ; +0x3b, 0x18013b60f\njmp     short loc_18013B654                                            ; +0x3d, 0x18013b611\ntest    rsi, rsi                                                       ; +0x3f, 0x18013b613\njz      short loc_18013B622                                            ; +0x42, 0x18013b616\ncall    _msize                                                         ; +0x44, 0x18013b618\nmov     rdi, rax                                                       ; +0x49, 0x18013b61d\njmp     short loc_18013B624                                            ; +0x4c, 0x18013b620\nxor     edi, edi                                                       ; +0x4e, 0x18013b622\nimul    rbx, rbp                                                       ; +0x50, 0x18013b624\nmov     rcx, rsi; Block                                                ; +0x54, 0x18013b628\nmov     rdx, rbx; Size                                                 ; +0x57, 0x18013b62b\ncall    _realloc_base                                                  ; +0x5a, 0x18013b62e\nmov     rsi, rax                                                       ; +0x5f, 0x18013b633\ntest    rax, rax                                                       ; +0x62, 0x18013b636\njz      short loc_18013B651                                            ; +0x65, 0x18013b639\ncmp     rdi, rbx                                                       ; +0x67, 0x18013b63b\njnb     short loc_18013B651                                            ; +0x6a, 0x18013b63e\nsub     rbx, rdi                                                       ; +0x6c, 0x18013b640\nlea     rcx, [rax+rdi]; void *                                         ; +0x6f, 0x18013b643\nmov     r8, rbx; Size                                                  ; +0x73, 0x18013b647\nxor     edx, edx; Val                                                  ; +0x76, 0x18013b64a\ncall    memset                                                         ; +0x78, 0x18013b64c\nmov     rax, rsi                                                       ; +0x7d, 0x18013b651\nmov     rbx, [rsp+28h+arg_0]                                           ; +0x80, 0x18013b654\nmov     rbp, [rsp+28h+arg_8]                                           ; +0x85, 0x18013b659\nmov     rsi, [rsp+28h+arg_10]                                          ; +0x8a, 0x18013b65e\nadd     rsp, 20h                                                       ; +0x8f, 0x18013b663\npop     rdi                                                            ; +0x93, 0x18013b667\nretn                                                                   ; +0x94, 0x18013b668", "xrefs": ["_lambda_22ebabd17bc4fa466a2aca6d8deb888d_::operator @ 0x18013252a", "_lambda_22ebabd17bc4fa466a2aca6d8deb888d_::operator @ 0x18013254e", "copy_and_add_argument_to_buffer<char> @ 0x180139d6b", "common_set_variable_in_environment_nolock<char> @ 0x18013af7f", "common_set_variable_in_environment_nolock<char> @ 0x18013afd2", "common_set_variable_in_environment_nolock<wchar_t> @ 0x18013b29f", "common_set_variable_in_environment_nolock<wchar_t> @ 0x18013b2f3", "<???> @ 0x1802038fc"], "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"}