/* Agent_Release_x64.exe sha256 6f2be7b8eb799ba51b359d1958720aac5baee5b7ee0d1d36684d3cbd72d45469 * Ghidra 12.1.2 decompiler output for 0x1400ccf30 FUN_1400ccf30 * Pseudocode, not original source. */ undefined8 FUN_1400ccf30(uint *param_1,int param_2,uint *param_3) { undefined8 uVar1; byte bVar2; uint uVar3; uint uVar4; uint *puVar5; uint uVar6; if ((param_1 == param_3) || (uVar1 = FUN_1400c6e70(param_1,param_3), (int)uVar1 == 0)) { uVar4 = param_2 / 0x1c + 1U + *param_3; if ((((int)uVar4 <= (int)param_3[1]) || (uVar1 = FUN_1400cce50((longlong)param_3,uVar4), (int)uVar1 == 0)) && ((param_2 < 0x1c || (uVar1 = FUN_1400cefe0((int *)param_3,param_2 / 0x1c), (int)uVar1 == 0))) ) { if (param_2 % 0x1c != 0) { puVar5 = *(uint **)(param_3 + 4); uVar4 = 0; bVar2 = (byte)(param_2 % 0x1c); uVar6 = uVar4; if (0 < (int)*param_3) { do { uVar6 = uVar6 + 1; uVar3 = *puVar5 >> (0x1c - bVar2 & 0x1f) & (1 << (bVar2 & 0x1f)) - 1U; *puVar5 = (*puVar5 << (bVar2 & 0x1f) | uVar4) & 0xfffffff; puVar5 = puVar5 + 1; uVar4 = uVar3; } while ((int)uVar6 < (int)*param_3); if (uVar3 != 0) { *(uint *)(*(longlong *)(param_3 + 4) + (longlong)(int)*param_3 * 4) = uVar3; *param_3 = *param_3 + 1; } } } FUN_1400ccef0((int *)param_3); uVar1 = 0; } } return uVar1; }