/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c * Ghidra 12.1.2 decompiler output for 0x14015d9f0 FUN_14015d9f0 * Pseudocode, not original source. */ void FUN_14015d9f0(longlong param_1,longlong *param_2,undefined8 param_3,undefined8 param_4) { longlong lVar1; undefined4 *puVar2; undefined4 *puVar3; undefined8 *puVar4; undefined4 uVar5; undefined4 *puVar6; undefined8 uVar7; undefined8 *puVar8; undefined8 *puVar9; undefined8 *puVar10; longlong lVar11; undefined1 uVar12; uVar7 = 0xfffffffffffffffe; lVar1 = param_1 + 0x48; lVar11 = lVar1; FUN_14016db50(lVar1); uVar12 = 1; if (*(longlong *)(param_1 + 0x28) == 0) { puVar8 = (undefined8 *)0x0; } else { puVar8 = *(undefined8 **)(param_1 + 0x38); if (puVar8 != (undefined8 *)0x0) { puVar10 = (undefined8 *)*puVar8; puVar9 = puVar8; puVar4 = puVar10; goto joined_r0x00014015da66; } } puVar10 = (undefined8 *)0x0; puVar9 = puVar8; puVar4 = puVar10; joined_r0x00014015da66: do { if (puVar4 == (undefined8 *)0x0) { FUN_14016dbe0(lVar1); return; } puVar2 = (undefined4 *)((longlong)puVar4 + 0xc); puVar6 = (undefined4 *)param_2[1]; if ((puVar2 < puVar6) && (puVar3 = (undefined4 *)*param_2, puVar3 <= puVar2)) { if (puVar6 == (undefined4 *)param_2[2]) { FUN_1400497b0(param_2,1,param_3,param_4,uVar7,puVar9,puVar10,lVar11,uVar12); } puVar6 = (undefined4 *)param_2[1]; if (puVar6 != (undefined4 *)0x0) { uVar5 = *(undefined4 *)(*param_2 + ((longlong)puVar2 - (longlong)puVar3 >> 2) * 4); LAB_14015dacf: *puVar6 = uVar5; } } else { if (puVar6 == (undefined4 *)param_2[2]) { FUN_1400497b0(param_2,1,param_3,param_4,uVar7,puVar9,puVar10,lVar11,uVar12); } puVar6 = (undefined4 *)param_2[1]; if (puVar6 != (undefined4 *)0x0) { uVar5 = *puVar2; goto LAB_14015dacf; } } param_2[1] = param_2[1] + 4; puVar4 = (undefined8 *)*puVar4; while (puVar4 == (undefined8 *)0x0) { puVar8 = puVar8 + 1; puVar4 = (undefined8 *)*puVar8; } if (puVar8 == puVar4) { puVar4 = (undefined8 *)0x0; } } while( true ); }