106 lines
3.3 KiB
C
106 lines
3.3 KiB
C
/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c
|
|
* Ghidra 12.1.2 decompiler output for 0x1401f4cd0 FUN_1401f4cd0
|
|
* Pseudocode, not original source. */
|
|
|
|
/* WARNING: Removing unreachable block (ram,0x0001401f4ece) */
|
|
|
|
void FUN_1401f4cd0(longlong param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)
|
|
|
|
{
|
|
longlong lVar1;
|
|
ulonglong *puVar2;
|
|
char cVar3;
|
|
ulonglong uVar4;
|
|
longlong lVar5;
|
|
ulonglong uVar6;
|
|
int iVar7;
|
|
ulonglong uVar8;
|
|
undefined8 uVar9;
|
|
longlong lVar10;
|
|
undefined1 uVar11;
|
|
undefined8 local_40;
|
|
undefined **local_38;
|
|
undefined4 local_30;
|
|
undefined2 local_2c;
|
|
undefined4 local_28;
|
|
|
|
uVar9 = 0xfffffffffffffffe;
|
|
lVar1 = param_1 + 0x10;
|
|
uVar8 = 0;
|
|
while( true ) {
|
|
lVar10 = lVar1;
|
|
FUN_14016db50(lVar1);
|
|
uVar11 = 1;
|
|
lVar5 = lVar1;
|
|
if (DAT_14034c8c0 != '\0') break;
|
|
local_38 = Proud::AddrPort::vftable;
|
|
local_28 = 0;
|
|
local_40 = 0;
|
|
local_30 = DAT_140344450;
|
|
local_2c = DAT_140344454;
|
|
uVar6 = uVar8;
|
|
lVar5 = lVar10;
|
|
while (iVar7 = (int)uVar6, iVar7 != *(int *)(param_1 + 0x118)) {
|
|
if ((iVar7 < 0) || (*(int *)(param_1 + 0x118) <= iVar7)) {
|
|
/* WARNING: Subroutine does not return */
|
|
FUN_14016d6e0();
|
|
}
|
|
puVar2 = *(ulonglong **)(*(longlong *)(param_1 + 0x110) + (longlong)iVar7 * 8);
|
|
uVar6 = uVar8;
|
|
if (puVar2 != (ulonglong *)0x0) {
|
|
uVar6 = *puVar2;
|
|
}
|
|
if ((*(longlong **)(uVar6 + 0x10) != (longlong *)0x0) &&
|
|
(lVar10 = **(longlong **)(uVar6 + 0x10), lVar10 != 0)) {
|
|
cVar3 = FUN_14019c2f0(lVar10,0,&local_40,param_4,uVar9,lVar5,uVar11);
|
|
if (cVar3 != '\0') {
|
|
*(undefined1 *)(uVar6 + 0xc0) = 0;
|
|
}
|
|
uVar4 = uVar8;
|
|
if (*(ulonglong **)(uVar6 + 0x10) != (ulonglong *)0x0) {
|
|
uVar4 = **(ulonglong **)(uVar6 + 0x10);
|
|
}
|
|
cVar3 = FUN_14019c560(uVar4,0,&local_40);
|
|
if (cVar3 != '\0') {
|
|
*(undefined1 *)(uVar6 + 0x80) = 0;
|
|
}
|
|
}
|
|
if (((*(longlong **)(uVar6 + 0x10) != (longlong *)0x0) && (**(longlong **)(uVar6 + 0x10) != 0)
|
|
) && ((cVar3 = FUN_14019c8d0(), cVar3 == '\0' ||
|
|
((*(char *)(uVar6 + 0xc0) != '\0' || (*(char *)(uVar6 + 0x80) != '\0'))))))
|
|
goto LAB_1401f4ea7;
|
|
if (*(int *)(param_1 + 0x118) <= iVar7) {
|
|
/* WARNING: Subroutine does not return */
|
|
FUN_14016d6e0();
|
|
}
|
|
uVar6 = (ulonglong)(iVar7 + 1);
|
|
}
|
|
uVar6 = uVar8;
|
|
if (*(longlong *)(param_1 + 0x70) != 0) {
|
|
uVar6 = *(ulonglong *)(param_1 + 0x60);
|
|
}
|
|
while( true ) {
|
|
uVar4 = uVar6;
|
|
if (uVar4 == 0) goto LAB_1401f4ee3;
|
|
uVar6 = uVar8;
|
|
if (*(ulonglong **)(uVar4 + 8) != (ulonglong *)0x0) {
|
|
uVar6 = **(ulonglong **)(uVar4 + 8);
|
|
}
|
|
if (((*(longlong **)(uVar6 + 0x2480) != (longlong *)0x0) &&
|
|
(**(longlong **)(uVar6 + 0x2480) != 0)) &&
|
|
((cVar3 = FUN_14019c8d0(), cVar3 == '\0' ||
|
|
((*(char *)(uVar6 + 0x2500) != '\0' || (*(char *)(uVar6 + 0x24c0) != '\0')))))) break;
|
|
uVar6 = uVar8;
|
|
if (uVar4 != 0) {
|
|
uVar6 = *(ulonglong *)(uVar4 + 0x10);
|
|
}
|
|
}
|
|
LAB_1401f4ea7:
|
|
FUN_14016dbe0(lVar5);
|
|
Sleep(10);
|
|
}
|
|
LAB_1401f4ee3:
|
|
FUN_14016dbe0(lVar5);
|
|
return;
|
|
}
|
|
|