138 lines
4.9 KiB
C
138 lines
4.9 KiB
C
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
|
|
* Ghidra 12.1.2 decompiler output for 0x140023c90 FUN_140023c90
|
|
* Pseudocode, not original source. */
|
|
|
|
undefined1
|
|
FUN_140023c90(longlong *param_1,undefined8 param_2,SIZE_T param_3,undefined8 param_4,
|
|
longlong *param_5,longlong *param_6,longlong *param_7)
|
|
|
|
{
|
|
undefined1 uVar1;
|
|
undefined8 uVar2;
|
|
byte *pbVar3;
|
|
ulonglong *puVar4;
|
|
byte *pbVar5;
|
|
uint *puVar6;
|
|
ulonglong *puVar7;
|
|
undefined8 uVar8;
|
|
ulonglong uVar9;
|
|
undefined4 local_50 [2];
|
|
longlong local_48;
|
|
longlong local_40;
|
|
int local_34;
|
|
|
|
uVar9 = param_3 & 0xffffffff;
|
|
uVar2 = param_2;
|
|
uVar8 = param_4;
|
|
FUN_140074fb0(local_50);
|
|
FUN_140074a40((longlong)local_50,uVar2,param_3,uVar8);
|
|
FUN_14002a2d0((longlong)local_50,0x85fd,param_3,uVar8);
|
|
FUN_140029e60((longlong)local_50,(param_5[1] - *param_5) / 0x30,param_3,uVar8);
|
|
pbVar5 = (byte *)*param_5;
|
|
if (pbVar5 != (byte *)param_5[1]) {
|
|
do {
|
|
FUN_140029d80((longlong)local_50,(ulonglong)*pbVar5,param_3,uVar8);
|
|
if (*(ulonglong *)(pbVar5 + 0x20) < 8) {
|
|
pbVar3 = pbVar5 + 8;
|
|
}
|
|
else {
|
|
pbVar3 = *(byte **)(pbVar5 + 8);
|
|
}
|
|
FUN_1400767c0((longlong)local_50,(short *)pbVar3);
|
|
pbVar5 = pbVar5 + 0x30;
|
|
} while (pbVar5 != (byte *)param_5[1]);
|
|
}
|
|
FUN_140029e60((longlong)local_50,(param_6[1] - *param_6) / 0xa0,param_3,uVar8);
|
|
puVar6 = (uint *)*param_6;
|
|
if (puVar6 != (uint *)param_6[1]) {
|
|
puVar7 = (ulonglong *)(puVar6 + 0x1a);
|
|
do {
|
|
FUN_140029e60((longlong)local_50,(ulonglong)*puVar6,param_3,uVar8);
|
|
FUN_140029e60((longlong)local_50,(ulonglong)*(uint *)((longlong)puVar7 + -100),param_3,uVar8);
|
|
FUN_140029e60((longlong)local_50,(ulonglong)(uint)puVar7[-0xc],param_3,uVar8);
|
|
FUN_140029d80((longlong)local_50,(ulonglong)*(byte *)((longlong)puVar7 + -0x5c),param_3,uVar8)
|
|
;
|
|
FUN_140029e60((longlong)local_50,(ulonglong)(uint)puVar7[-0xb],param_3,uVar8);
|
|
FUN_140029e60((longlong)local_50,(ulonglong)*(uint *)((longlong)puVar7 + -0x54),param_3,uVar8)
|
|
;
|
|
FUN_140029e60((longlong)local_50,(ulonglong)(uint)puVar7[-10],param_3,uVar8);
|
|
FUN_140029e60((longlong)local_50,(ulonglong)*(uint *)((longlong)puVar7 + -0x4c),param_3,uVar8)
|
|
;
|
|
FUN_140029d80((longlong)local_50,(ulonglong)(byte)puVar7[-9],param_3,uVar8);
|
|
if (puVar7[-5] < 8) {
|
|
puVar4 = puVar7 + -8;
|
|
}
|
|
else {
|
|
puVar4 = (ulonglong *)puVar7[-8];
|
|
}
|
|
FUN_1400767c0((longlong)local_50,(short *)puVar4);
|
|
if (*puVar7 < 8) {
|
|
puVar4 = puVar7 + -3;
|
|
}
|
|
else {
|
|
puVar4 = (ulonglong *)puVar7[-3];
|
|
}
|
|
FUN_1400767c0((longlong)local_50,(short *)puVar4);
|
|
if (puVar7[5] < 8) {
|
|
puVar4 = puVar7 + 2;
|
|
}
|
|
else {
|
|
puVar4 = (ulonglong *)puVar7[2];
|
|
}
|
|
FUN_1400767c0((longlong)local_50,(short *)puVar4);
|
|
puVar6 = puVar6 + 0x28;
|
|
puVar7 = puVar7 + 0x14;
|
|
} while (puVar6 != (uint *)param_6[1]);
|
|
}
|
|
FUN_140029e60((longlong)local_50,(param_7[1] - *param_7) / 0xa0,param_3,uVar8);
|
|
puVar6 = (uint *)*param_7;
|
|
if (puVar6 != (uint *)param_7[1]) {
|
|
puVar7 = (ulonglong *)(puVar6 + 0x1a);
|
|
do {
|
|
FUN_140029e60((longlong)local_50,(ulonglong)*puVar6,param_3,uVar8);
|
|
FUN_140029e60((longlong)local_50,(ulonglong)*(uint *)((longlong)puVar7 + -100),param_3,uVar8);
|
|
FUN_140029e60((longlong)local_50,(ulonglong)(uint)puVar7[-0xc],param_3,uVar8);
|
|
FUN_140029d80((longlong)local_50,(ulonglong)*(byte *)((longlong)puVar7 + -0x5c),param_3,uVar8)
|
|
;
|
|
FUN_140029e60((longlong)local_50,(ulonglong)(uint)puVar7[-0xb],param_3,uVar8);
|
|
FUN_140029e60((longlong)local_50,(ulonglong)*(uint *)((longlong)puVar7 + -0x54),param_3,uVar8)
|
|
;
|
|
FUN_140029e60((longlong)local_50,(ulonglong)(uint)puVar7[-10],param_3,uVar8);
|
|
FUN_140029e60((longlong)local_50,(ulonglong)*(uint *)((longlong)puVar7 + -0x4c),param_3,uVar8)
|
|
;
|
|
FUN_140029d80((longlong)local_50,(ulonglong)(byte)puVar7[-9],param_3,uVar8);
|
|
if (puVar7[-5] < 8) {
|
|
puVar4 = puVar7 + -8;
|
|
}
|
|
else {
|
|
puVar4 = (ulonglong *)puVar7[-8];
|
|
}
|
|
FUN_1400767c0((longlong)local_50,(short *)puVar4);
|
|
if (*puVar7 < 8) {
|
|
puVar4 = puVar7 + -3;
|
|
}
|
|
else {
|
|
puVar4 = (ulonglong *)puVar7[-3];
|
|
}
|
|
FUN_1400767c0((longlong)local_50,(short *)puVar4);
|
|
if (puVar7[5] < 8) {
|
|
puVar4 = puVar7 + 2;
|
|
}
|
|
else {
|
|
puVar4 = (ulonglong *)puVar7[2];
|
|
}
|
|
FUN_1400767c0((longlong)local_50,(short *)puVar4);
|
|
puVar6 = puVar6 + 0x28;
|
|
puVar7 = puVar7 + 0x14;
|
|
} while (puVar6 != (uint *)param_7[1]);
|
|
}
|
|
uVar1 = (**(code **)(*param_1 + 0x18))
|
|
(param_1,param_2,uVar9,param_4,local_50,L"PT_AGENT_DATA",0x85fd);
|
|
FUN_14008a320(&local_48);
|
|
if ((local_40 != 0) && (local_34 < 0)) {
|
|
/* WARNING: Subroutine does not return */
|
|
FUN_14003dec0();
|
|
}
|
|
return uVar1;
|
|
}
|
|
|