{"type": "func", "start": 6443632592, "end": 6443632650, "name": "_onexit", "pseudocode": "// \n// _onexit from 0x1801207d0 to 0x18012080a (58 bytes)\n// \n// 2 xrefs:\n// > atexit @ 0x180120810\n// > <???> @ 0x180202510\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 = sub_180132764(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 0x1801207d0 to 0x18012080a (58 bytes)\n; \n; 2 xrefs:\n; > atexit @ 0x180120810\n; > <???> @ 0x180202510\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, 0x1801207d0\nsub     rsp, 20h                                                       ; +0x2, 0x1801207d2\ncmp     cs:Table._first, 0FFFFFFFFFFFFFFFFh                            ; +0x6, 0x1801207d6\nmov     rbx, rcx                                                       ; +0xe, 0x1801207de\njnz     short loc_1801207EA                                            ; +0x11, 0x1801207e1\ncall    sub_180132764                                                  ; +0x13, 0x1801207e3\njmp     short loc_1801207F9                                            ; +0x18, 0x1801207e8\nmov     rdx, rbx; Function                                             ; +0x1a, 0x1801207ea\nlea     rcx, Table; Table                                              ; +0x1d, 0x1801207ed\ncall    _register_onexit_function                                      ; +0x24, 0x1801207f4\nxor     edx, edx                                                       ; +0x29, 0x1801207f9\ntest    eax, eax                                                       ; +0x2b, 0x1801207fb\ncmovz   rdx, rbx                                                       ; +0x2d, 0x1801207fd\nmov     rax, rdx                                                       ; +0x31, 0x180120801\nadd     rsp, 20h                                                       ; +0x34, 0x180120804\npop     rbx                                                            ; +0x38, 0x180120808\nretn                                                                   ; +0x39, 0x180120809", "xrefs": ["atexit @ 0x180120810", "<???> @ 0x180202510"], "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"}