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

179 lines
4.6 KiB
C

/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c
* Ghidra 12.1.2 decompiler output for 0x14013a6e0 FUN_14013a6e0
* Pseudocode, not original source. */
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
int FUN_14013a6e0(longlong param_1,short param_2,char *param_3,wchar_t *param_4,undefined4 param_5,
char *param_6,char *param_7,char *param_8)
{
int iVar1;
longlong lVar2;
undefined1 auStack_118 [32];
undefined2 local_f8;
undefined2 local_f6;
undefined8 local_f4;
undefined2 local_ec;
char local_ea [105];
wchar_t local_81 [16];
undefined4 local_61;
ulonglong local_58;
local_58 = DAT_1403463c0 ^ (ulonglong)auStack_118;
iVar1 = 0;
local_ea[0] = '\0';
local_ea[1] = '\0';
local_ea[2] = '\0';
local_ea[3] = '\0';
local_ea[4] = '\0';
local_ea[5] = '\0';
local_ea[6] = '\0';
local_ea[7] = '\0';
local_ea[8] = '\0';
local_ea[9] = '\0';
local_ea[10] = '\0';
local_ea[0xb] = '\0';
local_ea[0xc] = '\0';
local_ea[0xd] = '\0';
local_ea[0xe] = '\0';
local_ea[0xf] = '\0';
local_ea[0x10] = '\0';
local_ea[0x11] = '\0';
local_ea[0x12] = '\0';
local_ea[0x13] = '\0';
local_ea[0x14] = '\0';
local_ea[0x15] = '\0';
local_ea[0x16] = '\0';
local_ea[0x17] = '\0';
local_ea[0x18] = '\0';
local_ea[0x19] = '\0';
local_ea[0x1a] = '\0';
local_ea[0x1b] = '\0';
local_ea[0x1c] = '\0';
local_ea[0x1d] = '\0';
local_ea[0x1e] = '\0';
local_ea[0x1f] = '\0';
local_ea[0x20] = '\0';
local_ea[0x21] = '\0';
local_ea[0x22] = '\0';
local_ea[0x23] = '\0';
local_ea[0x24] = '\0';
local_ea[0x25] = '\0';
local_ea[0x26] = '\0';
local_ea[0x27] = '\0';
local_ea[0x28] = '\0';
local_ea[0x29] = '\0';
local_ea[0x2a] = '\0';
local_ea[0x2b] = '\0';
local_ea[0x2c] = '\0';
local_ea[0x2d] = '\0';
local_ea[0x2e] = '\0';
local_ea[0x2f] = '\0';
local_ea[0x30] = '\0';
local_ea[0x31] = '\0';
local_ea[0x32] = 0;
local_ea[0x33] = '\0';
local_ea[0x34] = '\0';
local_ea[0x35] = '\0';
local_ea[0x36] = '\0';
local_ea[0x37] = '\0';
local_ea[0x38] = '\0';
local_ea[0x39] = '\0';
local_ea[0x3a] = '\0';
local_ea[0x3b] = '\0';
local_ea[0x3c] = '\0';
local_ea[0x3d] = '\0';
local_ea[0x3e] = '\0';
local_ea[0x3f] = '\0';
local_ea[0x40] = '\0';
local_ea[0x41] = '\0';
local_ea[0x42] = '\0';
local_ea[0x43] = '\0';
local_ea[0x44] = '\0';
local_ea[0x45] = '\0';
local_ea[0x46] = '\0';
local_ea[0x47] = '\0';
local_ea[0x48] = '\0';
local_ea[0x49] = '\0';
local_ea[0x4a] = '\0';
local_ea[0x4b] = '\0';
local_ea[0x4c] = '\0';
local_ea[0x4d] = '\0';
local_ea[0x4e] = '\0';
local_ea[0x4f] = '\0';
local_ea[0x50] = '\0';
local_ea[0x51] = '\0';
local_ea[0x52] = '\0';
local_ea[0x53] = '\0';
local_ea[0x54] = '\0';
local_ea[0x55] = '\0';
local_ea[0x56] = '\0';
local_ea[0x57] = '\0';
local_ea[0x58] = '\0';
local_ea[0x59] = '\0';
local_ea[0x5a] = '\0';
local_ea[0x5b] = '\0';
local_ea[0x5c] = '\0';
local_ea[0x5d] = '\0';
local_ea[0x5e] = '\0';
local_ea[0x5f] = '\0';
local_ea[0x60] = '\0';
local_ea[0x61] = '\0';
local_ea[0x62] = '\0';
local_ea[99] = '\0';
local_ea[100] = '\0';
local_ea[0x65] = '\0';
local_ea[0x66] = '\0';
local_ea[0x67] = '\0';
local_ea[0x68] = '\0';
local_81[0] = L'\0';
local_81[1] = L'\0';
local_81[2] = L'\0';
local_81[3] = L'\0';
local_81[4] = L'\0';
local_81[5] = L'\0';
local_81[6] = L'\0';
local_81[7] = L'\0';
local_81[8] = L'\0';
local_81[9] = L'\0';
local_81[10] = L'\0';
local_81[0xb] = L'\0';
local_81[0xc] = L'\0';
local_81[0xd] = L'\0';
local_81[0xe] = L'\0';
local_81[0xf] = L'\0';
local_f6 = 0x523;
local_f8 = 0x9b;
local_ec = 0;
local_61 = 0;
local_f4 = 0;
strncpy(local_ea,param_3,0x32);
strncpy(local_ea + 0x33,param_6,0x12);
strncpy(local_ea + 0x45,param_7,0x12);
strncpy(local_ea + 0x57,param_8,0x12);
wcsncpy(local_81,param_4,0x10);
local_61 = param_5;
if (*(longlong *)(DAT_140353190 + 0x118) == 0) {
lVar2 = *(longlong *)(param_1 + 200);
}
else {
lVar2 = *(longlong *)(param_1 + 0xd8);
}
if ((param_2 < 0) || (999 < param_2)) {
wprintf(L"Invalid Queue Index\n");
}
else {
lVar2 = *(longlong *)(lVar2 + (longlong)param_2 * 8);
if (lVar2 != 0) {
EnterCriticalSection((LPCRITICAL_SECTION)(lVar2 + 0x38));
iVar1 = FUN_1400a7630(*(undefined8 *)(lVar2 + 0x18),&local_f8);
if (iVar1 != 0) {
ReleaseSemaphore(*(HANDLE *)(lVar2 + 0x10),1,(LPLONG)0x0);
}
LeaveCriticalSection((LPCRITICAL_SECTION)(lVar2 + 0x38));
}
}
return iVar1;
}