46 lines
1.5 KiB
C
46 lines
1.5 KiB
C
/* 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;
|
|
}
|
|
|