{"type": "func", "start": 6443702712, "end": 6443702786, "name": "exit_or_terminate_process", "pseudocode": "// \n// exit_or_terminate_process from 0x1801319b8 to 0x180131a02 (74 bytes)\n// \n// 3 xrefs:\n// > common_exit @ 0x1801319b2\n// > <???> @ 0x180202f18\n// > <???> @ 0x180202f24\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 __fastcall __noreturn exit_or_terminate_process(UINT a1)\n{\n  HANDLE CurrentProcess; // rax\n\n  if ( (unsigned int)_acrt_get_process_end_policy() != 1 && (NtCurrentPeb()->NtGlobalFlag & 0x100) == 0 )\n  {\n    CurrentProcess = GetCurrentProcess();\n    TerminateProcess(CurrentProcess, a1);\n  }\n  try_cor_exit_process(a1);\n  ExitProcess(a1);\n}", "assembly": "; \n; exit_or_terminate_process from 0x1801319b8 to 0x180131a02 (74 bytes)\n; \n; 3 xrefs:\n; > common_exit @ 0x1801319b2\n; > <???> @ 0x180202f18\n; > <???> @ 0x180202f24\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, 0x1801319b8\nsub     rsp, 20h                                                       ; +0x2, 0x1801319ba\nmov     ebx, ecx                                                       ; +0x6, 0x1801319be\ncall    __acrt_get_process_end_policy                                  ; +0x8, 0x1801319c0\ncmp     eax, 1                                                         ; +0xd, 0x1801319c5\njz      short loc_1801319F2                                            ; +0x10, 0x1801319c8\nmov     rax, gs:60h                                                    ; +0x12, 0x1801319ca\nmov     edx, [rax+0BCh]                                                ; +0x1b, 0x1801319d3\nshr     edx, 8                                                         ; +0x21, 0x1801319d9\ntest    dl, 1                                                          ; +0x24, 0x1801319dc\njnz     short loc_1801319F2                                            ; +0x27, 0x1801319df\ncall    cs:GetCurrentProcess                                           ; +0x29, 0x1801319e1\nmov     rcx, rax; hProcess                                             ; +0x2f, 0x1801319e7\nmov     edx, ebx; uExitCode                                            ; +0x32, 0x1801319ea\ncall    cs:TerminateProcess                                            ; +0x34, 0x1801319ec\nmov     ecx, ebx; unsigned int                                         ; +0x3a, 0x1801319f2\ncall    ?try_cor_exit_process@@YAXI@Z                                  ; +0x3c, 0x1801319f4\nmov     ecx, ebx; uExitCode                                            ; +0x41, 0x1801319f9\ncall    cs:ExitProcess                                                 ; +0x43, 0x1801319fb\ndb 0CCh                                                                ; +0x49, 0x180131a01", "xrefs": ["common_exit @ 0x1801319b2", "<???> @ 0x180202f18", "<???> @ 0x180202f24"], "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"}