/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186 * Ghidra 12.1.2 decompiler output for 0x1400e06f0 FUN_1400e06f0 * Pseudocode, not original source. */ undefined8 FUN_1400e06f0(int *param_1,int *param_2) { int iVar1; uint uVar2; undefined8 uVar3; uint *puVar4; uint *puVar5; uint *puVar6; int iVar7; uint uVar8; if ((param_2[1] < (int)(*param_1 + 1U)) && (uVar3 = FUN_1400ddb60((longlong)param_2,*param_1 + 1U), (int)uVar3 != 0)) { return uVar3; } iVar1 = *param_2; *param_2 = *param_1; puVar6 = *(uint **)(param_1 + 4); iVar7 = 0; puVar4 = *(uint **)(param_2 + 4); uVar8 = 0; if (0 < *param_1) { do { uVar2 = *puVar6; iVar7 = iVar7 + 1; puVar5 = puVar4 + 1; puVar6 = puVar6 + 1; *puVar4 = uVar2 * 2 & 0xfffffff | uVar8; puVar4 = puVar5; uVar8 = uVar2 >> 0x1b; } while (iVar7 < *param_1); if (uVar2 >> 0x1b != 0) { *puVar5 = 1; *param_2 = *param_2 + 1; } } iVar7 = *param_2; if (iVar7 < iVar1) { memset((void *)(*(longlong *)(param_2 + 4) + (longlong)iVar7 * 4),0, (ulonglong)(uint)(iVar1 - iVar7) << 2); } param_2[2] = param_1[2]; return 0; }