/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c * Ghidra 12.1.2 decompiler output for 0x14013a170 FUN_14013a170 * Pseudocode, not original source. */ void FUN_14013a170(longlong param_1,longlong param_2) { undefined4 uVar1; undefined8 *puVar2; uint uVar3; undefined8 *puVar5; undefined8 *puVar6; undefined8 *puVar7; undefined4 local_res10 [2]; undefined8 *local_50; undefined8 *local_48; undefined8 *local_40; undefined8 *puVar4; if (0 < *(short *)(param_2 + 0xe)) { puVar5 = (undefined8 *)(param_2 + 0x10); puVar4 = (undefined8 *)0x0; local_50 = (undefined8 *)0x0; local_48 = (undefined8 *)0x0; local_40 = (undefined8 *)0x0; puVar7 = puVar4; if (0 < *(short *)(param_2 + 0xe)) { do { if ((puVar5 < local_48) && (puVar7 <= puVar5)) { puVar6 = puVar7; if (local_48 == local_40) { FUN_14004a260(&local_50); puVar6 = local_50; } puVar2 = (undefined8 *) ((((longlong)puVar5 - (longlong)puVar7) / 0x1c) * 0x1c + (longlong)puVar6); puVar7 = puVar6; if (local_48 != (undefined8 *)0x0) { *local_48 = *puVar2; local_48[1] = puVar2[1]; local_48[2] = puVar2[2]; uVar1 = *(undefined4 *)(puVar2 + 3); LAB_14013a26b: *(undefined4 *)(local_48 + 3) = uVar1; puVar7 = local_50; } } else { if (local_48 == local_40) { FUN_14004a260(&local_50); puVar7 = local_50; } if (local_48 != (undefined8 *)0x0) { *local_48 = *puVar5; local_48[1] = puVar5[1]; local_48[2] = puVar5[2]; uVar1 = *(undefined4 *)(puVar5 + 3); goto LAB_14013a26b; } } local_48 = (undefined8 *)((longlong)local_48 + 0x1c); if (((longlong)local_48 - (longlong)puVar7) / 0x1c == 0x32) { *(int *)(param_1 + 0x5fc) = *(int *)(param_1 + 0x5fc) + 1; local_res10[0] = *(undefined4 *)(param_2 + 4); (**(code **)(*(longlong *)(param_1 + 0xa8) + 0x180)) ((longlong *)(param_1 + 0xa8),*(undefined4 *)(param_2 + 8),&DAT_1403440f0, local_res10,&local_50); puVar7 = local_50; if (local_50 != local_48) { local_48 = local_50; } } puVar5 = (undefined8 *)((longlong)puVar5 + 0x1c); uVar3 = (int)puVar4 + 1; puVar4 = (undefined8 *)(ulonglong)uVar3; } while ((int)uVar3 < (int)*(short *)(param_2 + 0xe)); puVar4 = puVar7; if (puVar7 != local_48) { *(int *)(param_1 + 0x5fc) = *(int *)(param_1 + 0x5fc) + 1; local_res10[0] = *(undefined4 *)(param_2 + 4); (**(code **)(*(longlong *)(param_1 + 0xa8) + 0x180)) ((longlong *)(param_1 + 0xa8),*(undefined4 *)(param_2 + 8),&DAT_1403440f0, local_res10,&local_50); puVar4 = local_50; if (local_50 != local_48) { local_48 = local_50; } } } if (puVar4 != (undefined8 *)0x0) { operator_delete(puVar4); } } return; }