{"type": "func", "start": 6442579628, "end": 6442579686, "name": "_onexit", "pseudocode": "// \n// _onexit from 0x18001f6ac to 0x18001f6e6 (58 bytes)\n// \n// 2 xrefs:\n// > atexit @ 0x18001f6ec\n// > <???> @ 0x18004b214\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\n_onexit_t __cdecl onexit(_onexit_t Func)\n{\n  int v2; // eax\n  int (__cdecl *v3)(); // rdx\n\n  if ( Table._first == (_PVFV *)-1LL )\n    v2 = crt_atexit((_PVFV)Func);\n  else\n    v2 = register_onexit_function(&Table, Func);\n  v3 = nullptr;\n  if ( !v2 )\n    return Func;\n  return v3;\n}", "assembly": "; \n; _onexit from 0x18001f6ac to 0x18001f6e6 (58 bytes)\n; \n; 2 xrefs:\n; > atexit @ 0x18001f6ec\n; > <???> @ 0x18004b214\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, 0x18001f6ac\nsub     rsp, 20h                                                       ; +0x2, 0x18001f6ae\ncmp     cs:Table._first, 0FFFFFFFFFFFFFFFFh                            ; +0x6, 0x18001f6b2\nmov     rbx, rcx                                                       ; +0xe, 0x18001f6ba\njnz     short loc_18001F6C6                                            ; +0x11, 0x18001f6bd\ncall    _crt_atexit                                                    ; +0x13, 0x18001f6bf\njmp     short loc_18001F6D5                                            ; +0x18, 0x18001f6c4\nmov     rdx, rbx; Function                                             ; +0x1a, 0x18001f6c6\nlea     rcx, Table; Table                                              ; +0x1d, 0x18001f6c9\ncall    _register_onexit_function                                      ; +0x24, 0x18001f6d0\nxor     edx, edx                                                       ; +0x29, 0x18001f6d5\ntest    eax, eax                                                       ; +0x2b, 0x18001f6d7\ncmovz   rdx, rbx                                                       ; +0x2d, 0x18001f6d9\nmov     rax, rdx                                                       ; +0x31, 0x18001f6dd\nadd     rsp, 20h                                                       ; +0x34, 0x18001f6e0\npop     rbx                                                            ; +0x38, 0x18001f6e4\nretn                                                                   ; +0x39, 0x18001f6e5", "xrefs": ["atexit @ 0x18001f6ec", "<???> @ 0x18004b214"], "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"}