server-re/decomp/AgentManager_Release_x64/full/functions/0x140023c90.c
2026-10-15 09:58:24 -04:00

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;
}