server-re/decomp/DBCServer_Release_x64/full/functions/0x1400a6d80.c

76 lines
2.3 KiB
C

/* 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;
}