/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c * Ghidra 12.1.2 decompiler output for 0x1400a6d80 FUN_1400a6d80 * Pseudocode, not original source. */ /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */ void FUN_1400a6d80(longlong *param_1,undefined8 param_2,char *param_3,undefined8 param_4) { int iVar1; tm *_Tm; FILE *pFVar2; undefined8 local_res20; undefined1 auStack_cf8 [32]; undefined8 local_cd8; __time64_t local_cc8 [2]; char local_cb8; undefined1 local_cb7 [127]; char local_c38; undefined1 local_c37 [127]; char local_bb8; undefined1 local_bb7 [127]; char local_b38; undefined1 local_b37 [1023]; char local_738 [768]; char local_438; undefined1 local_437 [1023]; ulonglong local_38; local_38 = DAT_1403463c0 ^ (ulonglong)auStack_cf8; local_res20 = param_4; EnterCriticalSection((LPCRITICAL_SECTION)(param_1 + 0x21)); local_438 = '\0'; memset(local_437,0,0x3ff); local_c38 = '\0'; memset(local_c37,0,0x7f); local_cb8 = '\0'; memset(local_cb7,0,0x7f); local_bb8 = '\0'; memset(local_bb7,0,0x7f); local_b38 = '\0'; memset(local_b37,0,0x3ff); _time64(local_cc8); _Tm = _localtime64(local_cc8); strftime(&local_c38,0x80,"%Y%m%d",_Tm); local_cd8 = param_2; sprintf(&local_438,"%s[%s] %s"); EnterCriticalSection((LPCRITICAL_SECTION)(param_1 + 0x21)); EnterCriticalSection((LPCRITICAL_SECTION)(param_1 + 0x21)); if ((FILE *)*param_1 != (FILE *)0x0) { fclose((FILE *)*param_1); *param_1 = 0; } LeaveCriticalSection((LPCRITICAL_SECTION)(param_1 + 0x21)); pFVar2 = fopen(&local_438,"at"); *param_1 = (longlong)pFVar2; LeaveCriticalSection((LPCRITICAL_SECTION)(param_1 + 0x21)); if (*param_1 != 0) { _vsnprintf(&local_b38,0x400,param_3,(va_list)&local_res20); printf("%s\n"); _strtime(&local_bb8); _strdate(&local_cb8); iVar1 = sprintf(local_738,"[%s %s]"); sprintf(local_738 + iVar1,"%s"); fprintf((FILE *)*param_1,"%s\r\n"); EnterCriticalSection((LPCRITICAL_SECTION)(param_1 + 0x21)); if ((FILE *)*param_1 != (FILE *)0x0) { fclose((FILE *)*param_1); *param_1 = 0; } LeaveCriticalSection((LPCRITICAL_SECTION)(param_1 + 0x21)); } LeaveCriticalSection((LPCRITICAL_SECTION)(param_1 + 0x21)); return; }