/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c * Ghidra 12.1.2 decompiler output for 0x1401ed570 FUN_1401ed570 * Pseudocode, not original source. */ void FUN_1401ed570(longlong param_1,char param_2,undefined8 param_3,undefined8 param_4) { longlong *plVar1; longlong *plVar2; undefined8 *puVar3; longlong *plVar4; longlong lVar5; longlong lVar6; longlong lVar7; longlong *local_res8; undefined8 uVar8; longlong lVar9; undefined1 uVar10; uVar8 = 0xfffffffffffffffe; lVar6 = param_1 + 0x10; lVar9 = lVar6; FUN_14016db50(lVar6); uVar10 = 1; plVar1 = (longlong *)(param_1 + 0x290); plVar2 = (longlong *)*plVar1; if (((plVar2 == (longlong *)0x0) || (*plVar2 == 0)) && (param_2 != '\0')) { local_res8 = operator_new(0x3c0); lVar7 = 0; lVar5 = lVar7; if (local_res8 != (longlong *)0x0) { lVar5 = FUN_140207370(local_res8,param_1 + 8,param_3,param_4,uVar8,lVar9,uVar10); } if (lVar5 == 0) { local_res8 = (longlong *)0x0; } else { local_res8 = (longlong *)FUN_14016d940(0x10); local_res8[1] = 1; *local_res8 = lVar5; } plVar2 = local_res8; FUN_1401eb200(plVar1,&local_res8); plVar4 = local_res8; if (plVar2 != (longlong *)0x0) { plVar2 = plVar2 + 1; *plVar2 = *plVar2 + -1; lVar6 = lVar9; if (*plVar2 == 0) { puVar3 = (undefined8 *)*local_res8; if (puVar3 != (undefined8 *)0x0) { (**(code **)*puVar3)(puVar3,1); lVar6 = lVar9; } FUN_14016d970(plVar4); } } if ((longlong *)*plVar1 != (longlong *)0x0) { lVar7 = *(longlong *)*plVar1; } FUN_140206f30(lVar7); } else if (((plVar2 != (longlong *)0x0) && (*plVar2 != 0)) && (param_2 == '\0')) { FUN_140206ed0(); } FUN_14016dbe0(lVar6); return; }