// // common_exit from 0x1801318fc to 0x1801319b7 (187 bytes) // // 3 xrefs: // > _cexit @ 0x180131a70 // > _exit @ 0x180131a7f // > @ 0x180202f18 // // This function is hookable on this platform! // // Using BromaIDA 8.0.0 @ https://github.com/Stazzical/BromaIDA // Using bindings at commit ba9f177b at Thu Jul 16 22:52:06 2026 from https://github.com/geode-sdk/bindings // void __fastcall common_exit(unsigned int a1, enum _crt_exit_cleanup_mode a2, enum _crt_exit_return_mode a3) { HMODULE ModuleHandleW; // rax char *v5; // rcx _BYTE v6[4]; // [rsp+20h] [rbp-30h] BYREF unsigned int v7; // [rsp+24h] [rbp-2Ch] BYREF unsigned int v8; // [rsp+28h] [rbp-28h] BYREF _QWORD v9[4]; // [rsp+30h] [rbp-20h] BYREF enum _crt_exit_cleanup_mode v10; // [rsp+68h] [rbp+18h] BYREF enum _crt_exit_return_mode v11; // [rsp+70h] [rbp+20h] BYREF char v12; // [rsp+78h] [rbp+28h] BYREF v11 = a3; v10 = a2; if ( a3 == _crt_exit_terminate_process ) { ModuleHandleW = GetModuleHandleW(nullptr); if ( ModuleHandleW ) { if ( *(_WORD *)ModuleHandleW == 23117 ) { v5 = (char *)ModuleHandleW + *((int *)ModuleHandleW + 15); if ( *(_DWORD *)v5 == 17744 && *((_WORD *)v5 + 12) == 523 && *((_DWORD *)v5 + 33) > 0xEu && *((_DWORD *)v5 + 62) ) try_cor_exit_process(a1); } } } v12 = 0; v9[0] = &v10; v9[1] = &v11; v9[2] = &v12; v7 = 2; v8 = 2; __crt_seh_guarded_call::operator()<_lambda_99476a1ad63dd22509b5d3e65b0ffc95_,_lambda_ad1ced32f4ac17aa236e5ef05d6b3b7c_ &,_lambda_f7424dd8d45958661754dc4f2697e9c3_>( (__int64)v6, &v8, (__int64)v9, &v7); if ( v11 == _crt_exit_terminate_process ) exit_or_terminate_process(a1); }