/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c * Ghidra 12.1.2 decompiler output for 0x14014a400 FUN_14014a400 * Pseudocode, not original source. */ longlong * FUN_14014a400(longlong *param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4) { int *piVar1; undefined *puVar2; char cVar3; undefined *puVar4; undefined *local_res20; undefined8 uVar5; uVar5 = 0xfffffffffffffffe; FUN_14016d8c0(); local_res20 = PTR_DAT_1403440a0; cVar3 = FUN_140199b30(param_2,&local_res20,param_3,param_4,uVar5); if (cVar3 == '\0') { FUN_14016d8c0(); puVar2 = local_res20; puVar4 = PTR_DAT_1403440a0; *param_1 = (longlong)PTR_DAT_1403440a0; if (local_res20 == (undefined *)0x0) { return param_1; } if (local_res20 == puVar4) { return param_1; } puVar4 = local_res20 + -8; if (puVar4 == (undefined *)0x0) { return param_1; } uVar5 = FUN_14016d8c0(); FUN_14016db50(uVar5); piVar1 = (int *)(puVar2 + -4); *piVar1 = *piVar1 + -1; if (*piVar1 == 0) { FUN_14016d970(puVar4); } } else { FUN_14016d8c0(); puVar4 = PTR_DAT_1403440a0; *param_1 = (longlong)PTR_DAT_1403440a0; if (puVar4 == (undefined *)0x0) { *param_1 = 0; } if (local_res20 != (undefined *)*param_1) { uVar5 = FUN_14016d8c0(); FUN_14016db50(uVar5); FUN_14004eb70(param_1); *param_1 = (longlong)local_res20; if (((local_res20 != PTR_DAT_1403440a0) && (local_res20 != (undefined *)0x0)) && (local_res20 != (undefined *)0x8)) { *(int *)(local_res20 + -4) = *(int *)(local_res20 + -4) + 1; } FUN_14016dbe0(uVar5); puVar4 = PTR_DAT_1403440a0; } puVar2 = local_res20; if (local_res20 == (undefined *)0x0) { return param_1; } if (local_res20 == puVar4) { return param_1; } puVar4 = local_res20 + -8; if (puVar4 == (undefined *)0x0) { return param_1; } uVar5 = FUN_14016d8c0(); FUN_14016db50(uVar5); piVar1 = (int *)(puVar2 + -4); *piVar1 = *piVar1 + -1; if (*piVar1 == 0) { FUN_14016d970(puVar4); } } FUN_14016dbe0(uVar5); return param_1; }