/* Agent_Release_x64.exe sha256 6f2be7b8eb799ba51b359d1958720aac5baee5b7ee0d1d36684d3cbd72d45469 * Ghidra 12.1.2 decompiler output for 0x1400036c0 FUN_1400036c0 * Pseudocode, not original source. */ void FUN_1400036c0(longlong param_1) { FILE *_File; undefined8 *puVar1; longlong lVar2; puVar1 = *(undefined8 **)(param_1 + 0x50); if (puVar1 != (undefined8 *)0x0) { (**(code **)*puVar1)(puVar1,1); } puVar1 = DAT_140162d50; *(undefined8 *)(param_1 + 0x50) = 0; if (puVar1 != (undefined8 *)0x0) { (**(code **)*puVar1)(puVar1,1); } if (DAT_140162d70 != (undefined8 *)0x0) { (**(code **)*DAT_140162d70)(DAT_140162d70,1); } puVar1 = DAT_1401626e8; EnterCriticalSection(DAT_140162d80); _File = (FILE *)puVar1[0x17]; if (_File != (FILE *)0x0) { fclose(_File); } puVar1 = puVar1 + 0x19; lVar2 = 4; do { if ((FILE *)*puVar1 != (FILE *)0x0) { fclose((FILE *)*puVar1); } puVar1 = puVar1 + 1; lVar2 = lVar2 + -1; } while (lVar2 != 0); LeaveCriticalSection(DAT_140162d80); if (DAT_1401626e8 != (undefined8 *)0x0) { (**(code **)*DAT_1401626e8)(DAT_1401626e8,1); } if (DAT_140162d78 != (undefined8 *)0x0) { (**(code **)*DAT_140162d78)(DAT_140162d78,1); } return; }