114 lines
3.2 KiB
C
114 lines
3.2 KiB
C
/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c
|
|
* Ghidra 12.1.2 decompiler output for 0x14004f8c0 FUN_14004f8c0
|
|
* Pseudocode, not original source. */
|
|
|
|
void FUN_14004f8c0(longlong param_1,longlong param_2)
|
|
|
|
{
|
|
int *piVar1;
|
|
undefined8 *puVar2;
|
|
longlong *plVar3;
|
|
undefined8 *puVar4;
|
|
undefined8 uVar5;
|
|
undefined8 *puVar6;
|
|
undefined *puVar7;
|
|
undefined2 local_res8 [4];
|
|
undefined8 *local_res10;
|
|
undefined *local_50 [2];
|
|
undefined8 local_40;
|
|
undefined1 local_38;
|
|
longlong local_30;
|
|
undefined1 local_28;
|
|
|
|
local_30 = param_1 + 0x150;
|
|
FUN_14016db50();
|
|
local_28 = 1;
|
|
puVar2 = operator_new(0xc);
|
|
puVar6 = (undefined8 *)0x0;
|
|
if (puVar2 == (undefined8 *)0x0) {
|
|
local_res10 = (undefined8 *)0x0;
|
|
}
|
|
else {
|
|
*puVar2 = 0;
|
|
*(undefined4 *)(puVar2 + 1) = 0;
|
|
local_res10 = (undefined8 *)FUN_14016d940(0x10);
|
|
local_res10[1] = 1;
|
|
*local_res10 = puVar2;
|
|
}
|
|
puVar2 = local_res10;
|
|
puVar4 = puVar6;
|
|
if (local_res10 != (undefined8 *)0x0) {
|
|
puVar4 = (undefined8 *)*local_res10;
|
|
}
|
|
*(undefined4 *)puVar4 = *(undefined4 *)(param_2 + 0x30);
|
|
puVar4 = puVar6;
|
|
if (local_res10 != (undefined8 *)0x0) {
|
|
puVar4 = (undefined8 *)*local_res10;
|
|
}
|
|
plVar3 = (longlong *)FUN_140055ad0(param_1 + 0xf8,puVar4);
|
|
if (puVar2 != (undefined8 *)*plVar3) {
|
|
if (puVar2 != (undefined8 *)0x0) {
|
|
puVar2[1] = puVar2[1] + 1;
|
|
puVar2 = local_res10;
|
|
}
|
|
puVar4 = puVar6;
|
|
if ((*plVar3 != 0) &&
|
|
(*(longlong *)(*plVar3 + 8) = *(longlong *)(*plVar3 + 8) + -1, puVar2 = local_res10,
|
|
*(longlong *)(*plVar3 + 8) == 0)) {
|
|
puVar4 = (undefined8 *)*plVar3;
|
|
}
|
|
*plVar3 = (longlong)puVar2;
|
|
if (puVar4 != (undefined8 *)0x0) {
|
|
if ((void *)*puVar4 != (void *)0x0) {
|
|
operator_delete((void *)*puVar4);
|
|
}
|
|
FUN_14016d970(puVar4);
|
|
}
|
|
}
|
|
FUN_140170990(local_50,param_2);
|
|
puVar7 = local_50[0];
|
|
if (local_50[0] == (undefined *)0x0) {
|
|
puVar7 = PTR_DAT_140344098;
|
|
}
|
|
puVar4 = puVar6;
|
|
if (puVar2 != (undefined8 *)0x0) {
|
|
puVar4 = (undefined8 *)*puVar2;
|
|
}
|
|
FUN_1400a6b90("Server Join [%d][%s]\n",*(undefined4 *)puVar4,puVar7);
|
|
*(int *)(param_1 + 0x62c) = *(int *)(param_1 + 0x62c) + 1;
|
|
local_res8[0] = *(undefined2 *)(param_1 + 0xd0);
|
|
if (puVar2 != (undefined8 *)0x0) {
|
|
puVar6 = (undefined8 *)*puVar2;
|
|
}
|
|
(**(code **)(*(longlong *)(param_1 + 0xa8) + 0x240))
|
|
((longlong *)(param_1 + 0xa8),*(undefined4 *)puVar6,&DAT_1403440f0,local_res8);
|
|
if (((local_50[0] != (undefined *)0x0) && (local_50[0] != PTR_DAT_140344098)) &&
|
|
(local_50[0] + -8 != (undefined *)0x0)) {
|
|
uVar5 = FUN_14016d8c0();
|
|
local_40 = uVar5;
|
|
FUN_14016db50(uVar5);
|
|
local_38 = 1;
|
|
piVar1 = (int *)(local_50[0] + -4);
|
|
*piVar1 = *piVar1 + -1;
|
|
if (*piVar1 == 0) {
|
|
FUN_14016d970(local_50[0] + -8);
|
|
}
|
|
FUN_14016dbe0(uVar5);
|
|
local_38 = 0;
|
|
}
|
|
puVar6 = local_res10;
|
|
local_50[0] = PTR_DAT_140344098;
|
|
if (puVar2 != (undefined8 *)0x0) {
|
|
plVar3 = puVar2 + 1;
|
|
*plVar3 = *plVar3 + -1;
|
|
if (*plVar3 == 0) {
|
|
if ((void *)*local_res10 != (void *)0x0) {
|
|
operator_delete((void *)*local_res10);
|
|
}
|
|
FUN_14016d970(puVar6);
|
|
}
|
|
}
|
|
FUN_14016dbe0(local_30);
|
|
return;
|
|
}
|
|
|