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

99 lines
2.8 KiB
C

/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x1400cb8e0 FUN_1400cb8e0
* Pseudocode, not original source. */
void FUN_1400cb8e0(undefined8 param_1,longlong *param_2,longlong *param_3,undefined8 param_4)
{
longlong *plVar1;
char *pcVar2;
undefined8 *puVar3;
uint uVar4;
undefined4 uVar5;
undefined8 *puVar6;
undefined8 uVar7;
undefined8 **ppuVar8;
undefined8 *puVar9;
undefined8 *local_res10;
longlong local_res18 [2];
longlong local_38 [2];
local_38[1] = 0xfffffffffffffffe;
local_res10 = (undefined8 *)FUN_14003e840(0x400);
puVar9 = (undefined8 *)0x0;
puVar6 = puVar9;
if (local_res10 != (undefined8 *)0x0) {
param_3 = param_2;
puVar6 = FUN_140043f50(local_res10,1,param_2,param_4);
}
if (puVar6 == (undefined8 *)0x0) {
local_res10 = (undefined8 *)0x0;
}
else {
local_res10 = (undefined8 *)FUN_14003e840(0x10);
local_res10[1] = 1;
*local_res10 = puVar6;
}
puVar6 = local_res10;
ppuVar8 = &local_res10;
FUN_140040510(param_2 + 2,(longlong *)ppuVar8);
puVar3 = local_res10;
if (puVar6 != (undefined8 *)0x0) {
plVar1 = puVar6 + 1;
*plVar1 = *plVar1 + -1;
if (*plVar1 == 0) {
plVar1 = (longlong *)*local_res10;
if (plVar1 != (longlong *)0x0) {
FUN_140043e60(plVar1,ppuVar8,param_3,param_4);
FUN_14003e8b0(plVar1);
}
FUN_14003e8b0(puVar3);
}
}
puVar6 = puVar9;
if ((undefined8 *)param_2[2] != (undefined8 *)0x0) {
puVar6 = *(undefined8 **)param_2[2];
}
uVar4 = FUN_1400451d0((longlong)puVar6,'\x01');
if (uVar4 == 0) {
pcVar2 = (char *)param_2[1];
if (((pcVar2 == (char *)0x0) || (pcVar2 == PTR_DAT_14016f008)) || (*(int *)(pcVar2 + -8) < 1)) {
puVar6 = puVar9;
if ((undefined8 *)param_2[2] != (undefined8 *)0x0) {
puVar6 = *(undefined8 **)param_2[2];
}
uVar5 = FUN_140045ad0((longlong)puVar6,pcVar2,param_3,param_4);
if ((char)uVar5 == '\0') {
local_38[0] = 0;
FUN_140040510(param_2 + 2,local_38);
*(undefined4 *)(param_2 + 3) = 3;
return;
}
}
else {
puVar6 = puVar9;
if ((undefined8 *)param_2[2] != (undefined8 *)0x0) {
puVar6 = *(undefined8 **)param_2[2];
}
uVar7 = FUN_140045590((longlong)puVar6,pcVar2,0,param_4);
if ((char)uVar7 == '\0') {
local_res18[1] = 0;
FUN_140040510(param_2 + 2,local_res18 + 1);
*(undefined4 *)(param_2 + 3) = 3;
return;
}
}
if ((undefined8 *)param_2[2] != (undefined8 *)0x0) {
puVar9 = *(undefined8 **)param_2[2];
}
FUN_140043230((longlong)puVar9,'\0');
FUN_1400cb1b0(param_1,(longlong)param_2);
}
else {
local_res18[0] = 0;
FUN_140040510(param_2 + 2,local_res18);
*(undefined4 *)(param_2 + 3) = 3;
}
return;
}