/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c * Ghidra 12.1.2 decompiler output for 0x14015bb10 FUN_14015bb10 * Pseudocode, not original source. */ void FUN_14015bb10(longlong param_1,undefined8 param_2) { undefined *puVar1; int *piVar2; int iVar3; int iVar4; undefined8 uVar5; int iVar6; undefined *puVar7; undefined *local_res8; undefined4 local_28 [2]; undefined8 local_20; undefined8 local_18; undefined1 local_10; local_20 = 0xfffffffffffffffe; local_28[0] = 0; FUN_14016d8c0(); local_res8 = PTR_DAT_1403440a0; iVar3 = FUN_14016d740(param_2); iVar6 = 0; if ((local_res8 != (undefined *)0x0) && (iVar6 = 0, local_res8 != PTR_DAT_1403440a0)) { iVar6 = *(int *)(local_res8 + -8); } iVar4 = iVar3; if (iVar3 <= iVar6) { iVar4 = 0; if ((local_res8 != (undefined *)0x0) && (iVar4 = 0, local_res8 != PTR_DAT_1403440a0)) { iVar4 = *(int *)(local_res8 + -8); } } iVar6 = 1; if (1 < iVar4) { iVar6 = iVar4; } iVar4 = 0; if ((local_res8 != (undefined *)0x0) && (local_res8 != PTR_DAT_1403440a0)) { iVar4 = *(int *)(local_res8 + -8); } if (iVar4 < iVar6) { FUN_14004e770(&local_res8); } FUN_14004e850(&local_res8); puVar7 = local_res8; if (local_res8 == (undefined *)0x0) { puVar7 = PTR_DAT_1403440a0; } FUN_14016d770(puVar7,param_2,iVar3); puVar7 = local_res8; if (local_res8 == (undefined *)0x0) { puVar7 = PTR_DAT_1403440a0; } iVar3 = FUN_14016d740(puVar7); iVar6 = 0; if (0 < iVar3) { iVar6 = iVar3; } iVar3 = 0; if ((local_res8 != (undefined *)0x0) && (local_res8 != PTR_DAT_1403440a0)) { iVar3 = *(int *)(local_res8 + -8); } if ((iVar3 <= iVar6) && (iVar6 = 0, local_res8 != (undefined *)0x0)) { if (local_res8 == PTR_DAT_1403440a0) goto LAB_14015bc3b; iVar6 = *(int *)(local_res8 + -8); } if (((local_res8 != PTR_DAT_1403440a0) && (local_res8 != (undefined *)0x0)) && ((int *)(local_res8 + -8) != (int *)0x0)) { *(int *)(local_res8 + -8) = iVar6; *(undefined2 *)(local_res8 + (longlong)iVar6 * 2) = 0; } LAB_14015bc3b: (**(code **)(*(longlong *)(param_1 + 0x68) + 0xc0)) ((longlong *)(param_1 + 0x68),1,&DAT_1403440f0,local_28,&local_res8); puVar7 = local_res8; if (((local_res8 != (undefined *)0x0) && (local_res8 != PTR_DAT_1403440a0)) && (puVar1 = local_res8 + -8, puVar1 != (undefined *)0x0)) { uVar5 = FUN_14016d8c0(); local_18 = uVar5; FUN_14016db50(uVar5); local_10 = 1; piVar2 = (int *)(puVar7 + -4); *piVar2 = *piVar2 + -1; if (*piVar2 == 0) { FUN_14016d970(puVar1); } FUN_14016dbe0(uVar5); } return; }