{"type": "func", "start": 6442579256, "end": 6442579395, "name": "__scrt_initialize_onexit_tables", "pseudocode": "// \n// __scrt_initialize_onexit_tables from 0x18001f538 to 0x18001f5c3 (139 bytes)\n// \n// 2 xrefs:\n// > __scrt_dllmain_before_initialize_c @ 0x18001f406\n// > <???> @ 0x18004b1e4\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\nchar __fastcall _scrt_initialize_onexit_tables(unsigned int a1)\n{\n  int v2; // eax\n\n  if ( !byte_180048001 )\n  {\n    if ( a1 > 1 )\n    {\n      _scrt_fastfail(5);\n      JUMPOUT(0x18001F5C2LL);\n    }\n    LOBYTE(v2) = __uncaught_exception();\n    if ( !v2 || a1 )\n    {\n      *(__m128i *)&Table._first = _mm_load_si128((const __m128i *)&xmmword_180023300);\n      Table._end = (_PVFV *)-1LL;\n      *(_OWORD *)&stru_180048020._first = *(_OWORD *)&Table._first;\n      stru_180048020._end = (_PVFV *)-1LL;\n    }\n    else if ( initialize_onexit_table(&Table) || initialize_onexit_table(&stru_180048020) )\n    {\n      return 0;\n    }\n    byte_180048001 = 1;\n  }\n  return 1;\n}", "assembly": "; \n; __scrt_initialize_onexit_tables from 0x18001f538 to 0x18001f5c3 (139 bytes)\n; \n; 2 xrefs:\n; > __scrt_dllmain_before_initialize_c @ 0x18001f406\n; > <???> @ 0x18004b1e4\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, 0x18001f538\nsub     rsp, 20h                                                       ; +0x2, 0x18001f53a\ncmp     cs:byte_180048001, 0                                           ; +0x6, 0x18001f53e\nmov     ebx, ecx                                                       ; +0xd, 0x18001f545\njnz     short loc_18001F5B0                                            ; +0xf, 0x18001f547\ncmp     ecx, 1                                                         ; +0x11, 0x18001f549\nja      short loc_18001F5B8                                            ; +0x14, 0x18001f54c\ncall    ?__uncaught_exception@@YA_NXZ                                  ; +0x16, 0x18001f54e\ntest    eax, eax                                                       ; +0x1b, 0x18001f553\njz      short loc_18001F57F                                            ; +0x1d, 0x18001f555\ntest    ebx, ebx                                                       ; +0x1f, 0x18001f557\njnz     short loc_18001F57F                                            ; +0x21, 0x18001f559\nlea     rcx, Table; Table                                              ; +0x23, 0x18001f55b\ncall    _initialize_onexit_table                                       ; +0x2a, 0x18001f562\ntest    eax, eax                                                       ; +0x2f, 0x18001f567\njnz     short loc_18001F57B                                            ; +0x31, 0x18001f569\nlea     rcx, stru_180048020; Table                                     ; +0x33, 0x18001f56b\ncall    _initialize_onexit_table                                       ; +0x3a, 0x18001f572\ntest    eax, eax                                                       ; +0x3f, 0x18001f577\njz      short loc_18001F5A9                                            ; +0x41, 0x18001f579\nxor     al, al                                                         ; +0x43, 0x18001f57b\njmp     short loc_18001F5B2                                            ; +0x45, 0x18001f57d\nmovdqa  xmm0, cs:xmmword_180023300                                     ; +0x47, 0x18001f57f\nor      rax, 0FFFFFFFFFFFFFFFFh                                        ; +0x4f, 0x18001f587\nmovdqu  xmmword ptr cs:Table._first, xmm0                              ; +0x53, 0x18001f58b\nmov     cs:Table._end, rax                                             ; +0x5b, 0x18001f593\nmovdqu  xmmword ptr cs:stru_180048020._first, xmm0                     ; +0x62, 0x18001f59a\nmov     cs:stru_180048020._end, rax                                    ; +0x6a, 0x18001f5a2\nmov     cs:byte_180048001, 1                                           ; +0x71, 0x18001f5a9\nmov     al, 1                                                          ; +0x78, 0x18001f5b0\nadd     rsp, 20h                                                       ; +0x7a, 0x18001f5b2\npop     rbx                                                            ; +0x7e, 0x18001f5b6\nretn                                                                   ; +0x7f, 0x18001f5b7\nmov     ecx, 5                                                         ; +0x80, 0x18001f5b8\ncall    __scrt_fastfail                                                ; +0x85, 0x18001f5bd\ndb 0CCh                                                                ; +0x8a, 0x18001f5c2", "xrefs": ["__scrt_dllmain_before_initialize_c @ 0x18001f406", "<???> @ 0x18004b1e4"], "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"}