/* Agent_Release_x64.exe sha256 6f2be7b8eb799ba51b359d1958720aac5baee5b7ee0d1d36684d3cbd72d45469 * Ghidra 12.1.2 decompiler output for 0x14003aaf4 _onexit * Pseudocode, not original source. */ /* Library Function - Single Match _onexit Libraries: Visual Studio 2008 Release, Visual Studio 2010 Release, Visual Studio 2012 Release */ _onexit_t __cdecl _onexit(_onexit_t _Func) { _onexit_t p_Var1; PVOID pvVar2; PVOID local_res10; PVOID local_res18 [2]; local_res10 = DecodePointer(DAT_140163448); if (local_res10 == (PVOID)0xffffffffffffffff) { p_Var1 = _onexit(_Func); } else { _lock(8); local_res10 = DecodePointer(DAT_140163448); local_res18[0] = DecodePointer(DAT_140163440); pvVar2 = EncodePointer(_Func); p_Var1 = (_onexit_t)__dllonexit(pvVar2,&local_res10,local_res18); DAT_140163448 = EncodePointer(local_res10); DAT_140163440 = EncodePointer(local_res18[0]); _unlock(8); } return p_Var1; }