/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c * Ghidra 12.1.2 decompiler output for 0x1401f5120 FUN_1401f5120 * Pseudocode, not original source. */ void FUN_1401f5120(longlong *param_1,longlong param_2,longlong param_3) { undefined8 *puVar1; uint uVar2; longlong *plVar4; longlong *plVar5; longlong *plVar3; if (0 < param_3) { plVar5 = (longlong *)0x0; param_2 = param_2 - (longlong)param_1; plVar3 = plVar5; do { if (param_1 != (longlong *)0x0) { *param_1 = 0; if (*(longlong *)((longlong)param_1 + param_2) != 0) { *(longlong *)(*(longlong *)((longlong)param_1 + param_2) + 8) = *(longlong *)(*(longlong *)((longlong)param_1 + param_2) + 8) + 1; plVar4 = plVar5; if ((*param_1 != 0) && (*(longlong *)(*param_1 + 8) = *(longlong *)(*param_1 + 8) + -1, *(longlong *)(*param_1 + 8) == 0)) { plVar4 = (longlong *)*param_1; } *param_1 = *(longlong *)((longlong)param_1 + param_2); if (plVar4 != (longlong *)0x0) { puVar1 = (undefined8 *)*plVar4; if (puVar1 != (undefined8 *)0x0) { (**(code **)*puVar1)(puVar1,1); } FUN_14016d970(plVar4); } } } uVar2 = (int)plVar3 + 1; plVar3 = (longlong *)(ulonglong)uVar2; param_1 = param_1 + 1; } while ((int)uVar2 < param_3); } return; }