/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c * Ghidra 12.1.2 decompiler output for 0x1401fe910 FUN_1401fe910 * Pseudocode, not original source. */ undefined8 FUN_1401fe910(longlong param_1,longlong param_2,undefined8 param_3,undefined8 param_4) { longlong *plVar1; longlong lVar2; longlong *plVar3; char cVar4; longlong lVar5; longlong lVar6; longlong lVar7; longlong *local_res8; undefined8 local_res18 [2]; undefined8 uVar8; undefined **local_40; undefined4 local_38; undefined2 local_34; uVar8 = 0xfffffffffffffffe; if (*(longlong *)(param_1 + 0x118) != 0) { (**(code **)(*(longlong *)(*(longlong *)(param_1 + 0x118) + 0x78) + 0x10))(); local_res8 = (longlong *)FUN_14016d940(0x400); lVar7 = 0; lVar5 = lVar7; if (local_res8 != (longlong *)0x0) { lVar5 = *(longlong *)(param_1 + 0x118) + 0x78; if (*(longlong *)(param_1 + 0x118) == 0) { lVar5 = lVar7; } lVar5 = FUN_14019cad0(local_res8,1,lVar5,param_4,uVar8); } if (lVar5 == 0) { local_res8 = (longlong *)0x0; } else { local_res8 = (longlong *)FUN_14016d940(0x10); local_res8[1] = 1; *local_res8 = lVar5; } plVar1 = local_res8; FUN_1401786c0(param_1 + 0x100,&local_res8); plVar3 = local_res8; if (plVar1 != (longlong *)0x0) { plVar1 = plVar1 + 1; *plVar1 = *plVar1 + -1; if (*plVar1 == 0) { lVar5 = *local_res8; if (lVar5 != 0) { FUN_14019c9e0(lVar5); FUN_14016d970(lVar5); } FUN_14016d970(plVar3); } } lVar5 = lVar7; if (*(longlong **)(param_1 + 0x100) != (longlong *)0x0) { lVar5 = **(longlong **)(param_1 + 0x100); } FUN_14019bd30(lVar5,param_1); local_40 = Proud::AddrPort::vftable; local_38 = *(undefined4 *)(param_2 + 8); local_34 = *(undefined2 *)(param_2 + 0xc); lVar5 = lVar7; if (*(longlong **)(param_1 + 0x100) != (longlong *)0x0) { lVar5 = **(longlong **)(param_1 + 0x100); } cVar4 = FUN_14019e180(lVar5,&local_40); if (cVar4 != '\0') { lVar5 = lVar7; if (*(longlong **)(param_1 + 0x100) != (longlong *)0x0) { lVar5 = **(longlong **)(param_1 + 0x100); } lVar2 = *(longlong *)(*(longlong *)(param_1 + 0x118) + 0x5d8); lVar6 = lVar7; if (lVar2 != 0) { lVar6 = *(longlong *)(lVar2 + 0x38); } FUN_1401a33f0(*(undefined8 *)(lVar6 + 0x2b8),lVar5); FUN_1401fe030(param_1); if (*(longlong **)(param_1 + 0x100) != (longlong *)0x0) { lVar7 = **(longlong **)(param_1 + 0x100); } FUN_1401bedb0(lVar7); return 1; } local_res18[0] = 0; FUN_1401786c0(param_1 + 0x100,local_res18); } return 0; }