/* 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; }