/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c * Ghidra 12.1.2 decompiler output for 0x14019e770 FUN_14019e770 * Pseudocode, not original source. */ longlong * FUN_14019e770(longlong *param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4) { undefined *puVar1; int *piVar2; undefined *puVar3; undefined4 uVar4; longlong lVar5; undefined8 uVar6; ulonglong uVar7; uint uVar8; undefined *local_res18; undefined *local_res20; undefined8 uVar10; ulonglong uVar9; uVar10 = 0xfffffffffffffffe; uVar7 = 0; local_res18 = (undefined *)((ulonglong)local_res18 & 0xffffffff00000000); lVar5 = Ordinal_52(param_2); if ((lVar5 == 0) || (**(longlong **)(lVar5 + 0x18) == 0)) { FUN_14016d8c0(); *param_1 = (longlong)PTR_DAT_140344098; uVar4 = FUN_14016d7e0(&DAT_14029e010); uVar6 = FUN_14013c6f0(param_1,uVar4); FUN_14016d810(uVar6,&DAT_14029e010,uVar4,param_4,uVar10); FUN_14013c7e0(param_1); } else { FUN_14016d8c0(); local_res20 = PTR_DAT_140344098; uVar9 = uVar7; if (0 < *(short *)(lVar5 + 0x12)) { do { FUN_14016d8c0(); local_res18 = PTR_DAT_140344098; if (0 < (longlong)uVar7) { FUN_14016ff10(&local_res20,&DAT_1402af584); } FUN_140170320(&local_res18,&DAT_1402778e0, *(undefined1 *)(**(longlong **)(lVar5 + 0x18) + uVar7)); FUN_14016fd80(&local_res20,&local_res18); puVar3 = local_res18; if (((local_res18 != (undefined *)0x0) && (local_res18 != PTR_DAT_140344098)) && (puVar1 = local_res18 + -8, puVar1 != (undefined *)0x0)) { uVar10 = FUN_14016d8c0(); FUN_14016db50(uVar10); piVar2 = (int *)(puVar3 + -4); *piVar2 = *piVar2 + -1; if (*piVar2 == 0) { FUN_14016d970(puVar1); } FUN_14016dbe0(uVar10); } uVar8 = (int)uVar9 + 1; uVar9 = (ulonglong)uVar8; uVar7 = uVar7 + 1; } while ((int)uVar8 < (int)*(short *)(lVar5 + 0x12)); } puVar1 = local_res20; FUN_14016d8c0(); puVar3 = PTR_DAT_140344098; *param_1 = (longlong)PTR_DAT_140344098; if (puVar3 == (undefined *)0x0) { *param_1 = (longlong)PTR_DAT_140344098; } if (puVar1 != (undefined *)*param_1) { uVar10 = FUN_14016d8c0(); FUN_14016db50(uVar10); FUN_14004f5a0(param_1); *param_1 = (longlong)puVar1; if (((puVar1 != PTR_DAT_140344098) && (puVar1 != (undefined *)0x0)) && (puVar1 != (undefined *)0x8)) { *(int *)(puVar1 + -4) = *(int *)(puVar1 + -4) + 1; } FUN_14016dbe0(uVar10); } if (((puVar1 != (undefined *)0x0) && (puVar1 != PTR_DAT_140344098)) && (puVar1 + -8 != (undefined *)0x0)) { uVar10 = FUN_14016d8c0(); FUN_14016db50(uVar10); piVar2 = (int *)(puVar1 + -4); *piVar2 = *piVar2 + -1; if (*piVar2 == 0) { FUN_14016d970(puVar1 + -8); } FUN_14016dbe0(uVar10); } } return param_1; }