67 lines
1.9 KiB
C
67 lines
1.9 KiB
C
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
|
|
* Ghidra 12.1.2 decompiler output for 0x1400e7638 FUN_1400e7638
|
|
* Pseudocode, not original source. */
|
|
|
|
undefined8 FUN_1400e7638(longlong *param_1)
|
|
|
|
{
|
|
int *piVar1;
|
|
undefined8 uVar2;
|
|
uint uVar3;
|
|
uint uVar4;
|
|
uint uVar5;
|
|
undefined4 uVar6;
|
|
undefined4 uVar7;
|
|
byte *pbVar8;
|
|
byte local_res8 [8];
|
|
|
|
if ((param_1 == (longlong *)0x0) || (piVar1 = (int *)param_1[5], piVar1 == (int *)0x0)) {
|
|
uVar2 = 0xfffffffe;
|
|
}
|
|
else if (((int)param_1[1] == 0) && ((uint)piVar1[0x11] < 8)) {
|
|
uVar2 = 0xfffffffb;
|
|
}
|
|
else {
|
|
if (*piVar1 != 0x1d) {
|
|
uVar5 = 0;
|
|
*piVar1 = 0x1d;
|
|
uVar3 = piVar1[0x11] & 7;
|
|
piVar1[0x10] = piVar1[0x10] << (sbyte)uVar3;
|
|
uVar3 = piVar1[0x11] - uVar3;
|
|
piVar1[0x11] = uVar3;
|
|
if (7 < uVar3) {
|
|
uVar4 = piVar1[0x10];
|
|
pbVar8 = local_res8;
|
|
do {
|
|
uVar3 = uVar3 - 8;
|
|
uVar4 = uVar4 >> 8;
|
|
*pbVar8 = *(byte *)(piVar1 + 0x10);
|
|
pbVar8 = pbVar8 + 1;
|
|
uVar5 = uVar5 + 1;
|
|
piVar1[0x10] = uVar4;
|
|
piVar1[0x11] = uVar3;
|
|
} while (7 < uVar3);
|
|
}
|
|
piVar1[0x1f] = 0;
|
|
FUN_1400e75d8((uint *)(piVar1 + 0x1f),local_res8,uVar5);
|
|
}
|
|
uVar3 = FUN_1400e75d8((uint *)(piVar1 + 0x1f),(byte *)*param_1,*(uint *)(param_1 + 1));
|
|
*(int *)((longlong)param_1 + 0xc) = *(int *)((longlong)param_1 + 0xc) + uVar3;
|
|
*(uint *)(param_1 + 1) = (int)param_1[1] - uVar3;
|
|
uVar7 = *(undefined4 *)((longlong)param_1 + 0xc);
|
|
*param_1 = *param_1 + (ulonglong)uVar3;
|
|
if (piVar1[0x1f] == 4) {
|
|
uVar6 = *(undefined4 *)((longlong)param_1 + 0x1c);
|
|
FUN_1400e5bd8((longlong)param_1);
|
|
*(undefined4 *)((longlong)param_1 + 0xc) = uVar7;
|
|
*(undefined4 *)((longlong)param_1 + 0x1c) = uVar6;
|
|
*piVar1 = 0xb;
|
|
uVar2 = 0;
|
|
}
|
|
else {
|
|
uVar2 = 0xfffffffd;
|
|
}
|
|
}
|
|
return uVar2;
|
|
}
|
|
|