82 lines
2.7 KiB
C
82 lines
2.7 KiB
C
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
|
|
* Ghidra 12.1.2 decompiler output for 0x1400e884c FUN_1400e884c
|
|
* Pseudocode, not original source. */
|
|
|
|
uint FUN_1400e884c(longlong param_1,uint param_2)
|
|
|
|
{
|
|
char *pcVar1;
|
|
uint uVar2;
|
|
char *pcVar3;
|
|
int iVar4;
|
|
uint uVar5;
|
|
ulonglong uVar6;
|
|
uint uVar7;
|
|
uint uVar8;
|
|
char *pcVar9;
|
|
char *pcVar10;
|
|
uint uVar11;
|
|
char cVar12;
|
|
char cVar13;
|
|
|
|
uVar11 = *(uint *)(param_1 + 0x94);
|
|
uVar8 = *(uint *)(param_1 + 0xa4);
|
|
uVar6 = (ulonglong)(int)*(uint *)(param_1 + 0xa0);
|
|
pcVar1 = (char *)((ulonglong)uVar11 + *(longlong *)(param_1 + 0x50));
|
|
if (*(int *)(param_1 + 0x44) - 0x106U < uVar11) {
|
|
uVar11 = (uVar11 - *(int *)(param_1 + 0x44)) + 0x106;
|
|
}
|
|
else {
|
|
uVar11 = 0;
|
|
}
|
|
cVar12 = pcVar1[uVar6 - 1];
|
|
cVar13 = pcVar1[uVar6];
|
|
if (*(uint *)(param_1 + 0xb4) <= *(uint *)(param_1 + 0xa0)) {
|
|
uVar8 = uVar8 >> 2;
|
|
}
|
|
uVar2 = *(uint *)(param_1 + 0x9c);
|
|
uVar7 = *(uint *)(param_1 + 0xb8);
|
|
if (uVar2 < *(uint *)(param_1 + 0xb8)) {
|
|
uVar7 = uVar2;
|
|
}
|
|
do {
|
|
iVar4 = (int)uVar6;
|
|
pcVar3 = (char *)((ulonglong)param_2 + *(longlong *)(param_1 + 0x50));
|
|
if ((((pcVar3[iVar4] == cVar13) && (pcVar3[(longlong)iVar4 + -1] == cVar12)) &&
|
|
(*pcVar3 == *pcVar1)) && (pcVar3[1] == pcVar1[1])) {
|
|
pcVar3 = pcVar3 + 2;
|
|
pcVar9 = pcVar1 + 2;
|
|
while (((((pcVar10 = pcVar9 + 1, *pcVar10 == pcVar3[1] &&
|
|
(pcVar10 = pcVar9 + 2, *pcVar10 == pcVar3[2])) &&
|
|
((pcVar10 = pcVar9 + 3, *pcVar10 == pcVar3[3] &&
|
|
((pcVar10 = pcVar9 + 4, *pcVar10 == pcVar3[4] &&
|
|
(pcVar10 = pcVar9 + 5, *pcVar10 == pcVar3[5])))))) &&
|
|
(pcVar10 = pcVar9 + 6, *pcVar10 == pcVar3[6])) &&
|
|
(pcVar10 = pcVar9 + 7, *pcVar10 == pcVar3[7]))) {
|
|
pcVar3 = pcVar3 + 8;
|
|
pcVar10 = pcVar9 + 8;
|
|
if ((*pcVar10 != *pcVar3) || (pcVar9 = pcVar10, pcVar1 + 0x102 <= pcVar10)) break;
|
|
}
|
|
uVar5 = ((int)pcVar10 - (int)(pcVar1 + 0x102)) + 0x102;
|
|
if (iVar4 < (int)uVar5) {
|
|
*(uint *)(param_1 + 0x98) = param_2;
|
|
uVar6 = (ulonglong)uVar5;
|
|
if ((int)uVar7 <= (int)uVar5) {
|
|
LAB_1400e89bb:
|
|
if (uVar5 <= uVar2) {
|
|
uVar2 = uVar5;
|
|
}
|
|
return uVar2;
|
|
}
|
|
cVar12 = pcVar1[(longlong)(int)uVar5 + -1];
|
|
cVar13 = pcVar1[(int)uVar5];
|
|
}
|
|
}
|
|
uVar5 = (uint)uVar6;
|
|
param_2 = (uint)*(ushort *)
|
|
(*(longlong *)(param_1 + 0x60) +
|
|
(ulonglong)(*(uint *)(param_1 + 0x4c) & param_2) * 2);
|
|
if ((param_2 <= uVar11) || (uVar8 = uVar8 - 1, uVar8 == 0)) goto LAB_1400e89bb;
|
|
} while( true );
|
|
}
|
|
|