101 lines
3.3 KiB
C
101 lines
3.3 KiB
C
/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c
|
|
* Ghidra 12.1.2 decompiler output for 0x14015be70 FUN_14015be70
|
|
* Pseudocode, not original source. */
|
|
|
|
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
|
|
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
|
|
|
|
void FUN_14015be70(longlong param_1)
|
|
|
|
{
|
|
int *piVar1;
|
|
char cVar2;
|
|
undefined *puVar3;
|
|
undefined8 uVar4;
|
|
undefined8 uVar5;
|
|
undefined *puVar6;
|
|
undefined1 auStack_b8 [32];
|
|
undefined8 local_98;
|
|
undefined1 local_90;
|
|
undefined8 local_88;
|
|
undefined1 local_80;
|
|
undefined8 local_78;
|
|
undefined *local_68;
|
|
undefined2 local_60;
|
|
undefined4 local_5c;
|
|
undefined4 local_58;
|
|
undefined4 local_54;
|
|
undefined4 local_50;
|
|
undefined1 local_48 [48];
|
|
ulonglong local_18;
|
|
|
|
local_78 = 0xfffffffffffffffe;
|
|
local_18 = DAT_1403463c0 ^ (ulonglong)auStack_b8;
|
|
puVar3 = *(undefined **)(param_1 + 0x30);
|
|
if ((((puVar3 != (undefined *)0x0) && (puVar3 != PTR_DAT_1403440a0)) &&
|
|
(0 < *(int *)(puVar3 + -8))) &&
|
|
(((*(char *)(param_1 + 0x18) != '\0' && (*(char *)(param_1 + 0x19) == '\0')) &&
|
|
((*(char *)(param_1 + 0x1a) == '\0' && (*(longlong *)(param_1 + 0x10) != 0)))))) {
|
|
*(undefined2 *)(param_1 + 0x19) = 1;
|
|
FUN_1401bbb30(&local_68);
|
|
local_5c = DAT_1403530c0;
|
|
local_58 = _DAT_1403530c4;
|
|
local_54 = _DAT_1403530c8;
|
|
local_50 = _DAT_1403530cc;
|
|
if (local_68 == (undefined *)0x0) {
|
|
local_68 = PTR_DAT_1403440a0;
|
|
}
|
|
if (*(undefined **)(param_1 + 0x30) != local_68) {
|
|
uVar4 = FUN_14016d8c0();
|
|
local_88 = uVar4;
|
|
FUN_14016db50(uVar4);
|
|
puVar3 = local_68;
|
|
local_80 = 1;
|
|
if (((local_68 != (undefined *)0x0) && (local_68 != PTR_DAT_1403440a0)) &&
|
|
(puVar6 = local_68 + -8, puVar6 != (undefined *)0x0)) {
|
|
uVar5 = FUN_14016d8c0();
|
|
local_98 = uVar5;
|
|
FUN_14016db50(uVar5);
|
|
local_90 = 1;
|
|
piVar1 = (int *)(puVar3 + -4);
|
|
*piVar1 = *piVar1 + -1;
|
|
if (*piVar1 == 0) {
|
|
FUN_14016d970(puVar6);
|
|
}
|
|
FUN_14016dbe0(uVar5);
|
|
}
|
|
local_68 = *(undefined **)(param_1 + 0x30);
|
|
if (((local_68 != PTR_DAT_1403440a0) && (local_68 != (undefined *)0x0)) &&
|
|
(local_68 != (undefined *)0x8)) {
|
|
*(int *)(local_68 + -4) = *(int *)(local_68 + -4) + 1;
|
|
}
|
|
FUN_14016dbe0(uVar4);
|
|
}
|
|
local_60 = *(undefined2 *)(param_1 + 0x38);
|
|
(**(code **)(**(longlong **)(param_1 + 0x10) + 0x88))();
|
|
(**(code **)(**(longlong **)(param_1 + 0x10) + 0x78))(*(longlong **)(param_1 + 0x10),&local_68);
|
|
cVar2 = *(char *)(param_1 + 0x19);
|
|
while (cVar2 != '\0') {
|
|
Sleep(10);
|
|
(**(code **)(**(longlong **)(param_1 + 0x10) + 0x98))(*(longlong **)(param_1 + 0x10),0);
|
|
cVar2 = *(char *)(param_1 + 0x19);
|
|
}
|
|
FUN_14019a9e0(local_48);
|
|
puVar3 = local_68;
|
|
if (((local_68 != (undefined *)0x0) && (local_68 != PTR_DAT_1403440a0)) &&
|
|
(puVar6 = local_68 + -8, puVar6 != (undefined *)0x0)) {
|
|
uVar4 = FUN_14016d8c0();
|
|
local_98 = uVar4;
|
|
FUN_14016db50(uVar4);
|
|
local_90 = 1;
|
|
piVar1 = (int *)(puVar3 + -4);
|
|
*piVar1 = *piVar1 + -1;
|
|
if (*piVar1 == 0) {
|
|
FUN_14016d970(puVar6);
|
|
}
|
|
FUN_14016dbe0(uVar4);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|