156 lines
4.3 KiB
C
156 lines
4.3 KiB
C
/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c
|
|
* Ghidra 12.1.2 decompiler output for 0x14013cc80 FUN_14013cc80
|
|
* Pseudocode, not original source. */
|
|
|
|
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
|
|
|
|
int FUN_14013cc80(longlong param_1,ushort param_2,undefined4 param_3,undefined4 param_4,
|
|
undefined8 *param_5,wchar_t *param_6,undefined2 param_7,undefined2 param_8,
|
|
undefined4 *param_9,undefined4 param_10,char *param_11)
|
|
|
|
{
|
|
wchar_t wVar1;
|
|
int iVar2;
|
|
longlong lVar3;
|
|
wchar_t *pwVar4;
|
|
undefined1 auStack_f8 [32];
|
|
undefined2 local_d8;
|
|
undefined2 local_d6;
|
|
undefined4 local_d4;
|
|
undefined4 local_d0;
|
|
undefined2 local_cc;
|
|
undefined8 local_ca;
|
|
undefined8 local_c2;
|
|
char local_ba [48];
|
|
ushort local_8a;
|
|
wchar_t local_88 [12];
|
|
ulonglong local_70;
|
|
undefined4 local_68;
|
|
undefined4 local_64;
|
|
undefined4 local_60;
|
|
undefined4 local_5c;
|
|
undefined4 local_58;
|
|
undefined4 local_54;
|
|
ulonglong local_48;
|
|
|
|
local_48 = DAT_1403463c0 ^ (ulonglong)auStack_f8;
|
|
if (param_6 == (wchar_t *)0x0) {
|
|
iVar2 = 0;
|
|
}
|
|
else {
|
|
lVar3 = -1;
|
|
pwVar4 = param_6;
|
|
do {
|
|
if (lVar3 == 0) break;
|
|
lVar3 = lVar3 + -1;
|
|
wVar1 = *pwVar4;
|
|
pwVar4 = pwVar4 + 1;
|
|
} while (wVar1 != L'\0');
|
|
iVar2 = 0;
|
|
if (lVar3 != -2) {
|
|
iVar2 = 0;
|
|
local_64 = 0;
|
|
local_60 = 0;
|
|
local_5c = 0;
|
|
local_cc = 0;
|
|
local_58 = 0;
|
|
local_68 = 0;
|
|
local_ba[0] = '\0';
|
|
local_ba[1] = '\0';
|
|
local_ba[2] = '\0';
|
|
local_ba[3] = '\0';
|
|
local_ba[4] = '\0';
|
|
local_ba[5] = '\0';
|
|
local_ba[6] = '\0';
|
|
local_ba[7] = '\0';
|
|
local_ba[8] = '\0';
|
|
local_ba[9] = '\0';
|
|
local_ba[10] = '\0';
|
|
local_ba[0xb] = '\0';
|
|
local_ba[0xc] = '\0';
|
|
local_ba[0xd] = '\0';
|
|
local_ba[0xe] = '\0';
|
|
local_ba[0xf] = '\0';
|
|
local_ba[0x10] = '\0';
|
|
local_ba[0x11] = '\0';
|
|
local_ba[0x12] = '\0';
|
|
local_ba[0x13] = '\0';
|
|
local_ba[0x14] = '\0';
|
|
local_ba[0x15] = '\0';
|
|
local_ba[0x16] = '\0';
|
|
local_ba[0x17] = '\0';
|
|
local_ba[0x18] = '\0';
|
|
local_ba[0x19] = '\0';
|
|
local_ba[0x1a] = '\0';
|
|
local_ba[0x1b] = '\0';
|
|
local_ba[0x1c] = '\0';
|
|
local_ba[0x1d] = '\0';
|
|
local_ba[0x1e] = '\0';
|
|
local_ba[0x1f] = '\0';
|
|
local_ba[0x20] = '\0';
|
|
local_ba[0x21] = '\0';
|
|
local_ba[0x22] = '\0';
|
|
local_ba[0x23] = '\0';
|
|
local_ba[0x24] = '\0';
|
|
local_ba[0x25] = '\0';
|
|
local_ba[0x26] = '\0';
|
|
local_ba[0x27] = '\0';
|
|
local_ba[0x28] = '\0';
|
|
local_ba[0x29] = '\0';
|
|
local_ba[0x2a] = '\0';
|
|
local_ba[0x2b] = '\0';
|
|
local_ba[0x2c] = '\0';
|
|
local_ba[0x2d] = '\0';
|
|
local_ba[0x2e] = '\0';
|
|
local_ba[0x2f] = '\0';
|
|
local_8a = 0;
|
|
local_88[0] = L'\0';
|
|
local_88[1] = L'\0';
|
|
local_88[2] = L'\0';
|
|
local_88[3] = L'\0';
|
|
local_88[4] = L'\0';
|
|
local_88[5] = L'\0';
|
|
local_88[6] = L'\0';
|
|
local_88[7] = L'\0';
|
|
local_88[8] = L'\0';
|
|
local_88[9] = L'\0';
|
|
local_88[10] = L'\0';
|
|
local_88[0xb] = L'\0';
|
|
local_70 = 0;
|
|
local_d6 = 0x3ee;
|
|
local_54 = 0;
|
|
local_d8 = 0x88;
|
|
local_ca = *param_5;
|
|
local_c2 = param_5[1];
|
|
local_d4 = param_4;
|
|
local_d0 = param_3;
|
|
wcsncpy(local_88,param_6,0xf);
|
|
local_70 = local_70 & 0xffffffffffff;
|
|
strncpy(local_ba,param_11,0x31);
|
|
local_8a = local_8a & 0xff;
|
|
local_68 = CONCAT22(param_8,param_7);
|
|
local_64 = *param_9;
|
|
local_60 = param_9[1];
|
|
local_5c = param_9[2];
|
|
local_58 = param_9[3];
|
|
local_54 = param_10;
|
|
if (param_2 < 1000) {
|
|
lVar3 = *(longlong *)(*(longlong *)(param_1 + 200) + (longlong)(short)param_2 * 8);
|
|
iVar2 = 0;
|
|
if (lVar3 != 0) {
|
|
EnterCriticalSection((LPCRITICAL_SECTION)(lVar3 + 0x38));
|
|
iVar2 = FUN_1400a7630(*(undefined8 *)(lVar3 + 0x18),&local_d8);
|
|
if (iVar2 != 0) {
|
|
ReleaseSemaphore(*(HANDLE *)(lVar3 + 0x10),1,(LPLONG)0x0);
|
|
}
|
|
LeaveCriticalSection((LPCRITICAL_SECTION)(lVar3 + 0x38));
|
|
}
|
|
}
|
|
else {
|
|
wprintf(L"Invalid Queue Index\n");
|
|
}
|
|
}
|
|
}
|
|
return iVar2;
|
|
}
|
|
|