/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c * Ghidra 12.1.2 decompiler output for 0x14004e850 FUN_14004e850 * Pseudocode, not original source. */ void FUN_14004e850(longlong *param_1) { undefined *puVar1; undefined8 *puVar2; undefined4 *puVar3; undefined4 uVar4; undefined4 uVar5; undefined *puVar6; puVar6 = (undefined *)*param_1; if (puVar6 == (undefined *)0x0) { *param_1 = (longlong)PTR_DAT_1403440a0; } else if ((puVar6 != PTR_DAT_1403440a0) && ((int *)(puVar6 + -8) != (int *)0x0)) { if (*(int *)(puVar6 + -4) < 2) { return; } if (*(int *)(puVar6 + -8) < 0) { /* WARNING: Subroutine does not return */ FUN_14016d6b0(); } puVar3 = (undefined4 *)FUN_14016d940(); uVar4 = 0; if (puVar3 != (undefined4 *)0x0) { *puVar3 = 0; puVar3[1] = 1; } puVar1 = PTR_DAT_1403440a0; puVar6 = (undefined *)*param_1; if (puVar6 == (undefined *)0x0) { uVar5 = 0; } else { uVar5 = uVar4; if (puVar6 != PTR_DAT_1403440a0) { uVar5 = *(undefined4 *)(puVar6 + -8); } } *puVar3 = uVar5; puVar6 = (undefined *)*param_1; if ((puVar6 != (undefined *)0x0) && (puVar6 != puVar1)) { uVar4 = *(undefined4 *)(puVar6 + -8); } if (puVar6 == (undefined *)0x0) { puVar6 = puVar1; } FUN_14016d770(puVar3 + 2,puVar6,uVar4); FUN_14004eb70(param_1); *param_1 = (longlong)(puVar3 + 2); return; } puVar2 = (undefined8 *)FUN_14016d940(); *puVar2 = 0; *(undefined2 *)(puVar2 + 1) = 0; if (puVar2 != (undefined8 *)0x0) { *(undefined4 *)puVar2 = 0; *(undefined4 *)((longlong)puVar2 + 4) = 1; } *(undefined2 *)(puVar2 + 1) = 0; *param_1 = (longlong)(puVar2 + 1); return; }