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

128 lines
3.4 KiB
C

/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x1400e5460 FUN_1400e5460
* Pseudocode, not original source. */
ulonglong FUN_1400e5460(longlong param_1,undefined1 *param_2,uint *param_3)
{
bool bVar1;
undefined1 uVar2;
int iVar3;
uint uVar4;
int iVar5;
ulonglong uVar6;
undefined1 uVar7;
int iVar8;
undefined1 *puVar9;
uint local_res8 [2];
undefined8 local_res20;
if (((param_1 == 0) || (param_2 == (undefined1 *)0x0)) || (param_3 == (uint *)0x0)) {
return 0x10;
}
uVar6 = FUN_1400e2f30(param_1,(int *)local_res8);
if ((int)uVar6 == 0) {
if (*param_3 < local_res8[0]) {
*param_3 = local_res8[0];
return 6;
}
iVar3 = (*DAT_14017d4e0)(param_1,0);
if (iVar3 == -1) {
uVar4 = (*DAT_14017d4e8)(param_1);
uVar4 = (uVar4 - (uVar4 & 7)) + 8 >> 3;
iVar3 = (*DAT_14017d4f0)(param_1);
iVar5 = (*DAT_14017d4e8)(param_1);
bVar1 = false;
if ((iVar3 + 1 == iVar5) &&
(uVar6 = (*DAT_14017d4e8)(param_1), bVar1 = false, (uVar6 & 7) == 0)) {
uVar4 = uVar4 - 1;
}
}
else {
uVar6 = (*DAT_14017d4e8)();
if (((uVar6 & 7) == 0) || (iVar3 = (*DAT_14017d4e0)(param_1,0), iVar3 == 0)) {
iVar3 = (*DAT_14017d510)(param_1);
uVar4 = iVar3 + 1;
bVar1 = true;
}
else {
uVar4 = (*DAT_14017d510)(param_1);
bVar1 = false;
}
}
*param_2 = 2;
uVar7 = (undefined1)uVar4;
if (uVar4 < 0x80) {
param_2[1] = uVar7;
puVar9 = param_2 + 2;
}
else if (uVar4 < 0x100) {
param_2[1] = 0x81;
param_2[2] = uVar7;
puVar9 = param_2 + 3;
}
else {
uVar2 = (undefined1)(uVar4 >> 8);
if (uVar4 < 0x10000) {
param_2[1] = 0x82;
puVar9 = param_2 + 4;
param_2[2] = uVar2;
param_2[3] = uVar7;
}
else {
if (0xffffff < uVar4) {
return 0x10;
}
param_2[1] = 0x83;
param_2[2] = (char)(uVar4 >> 0x10);
puVar9 = param_2 + 5;
param_2[3] = uVar2;
param_2[4] = uVar7;
}
}
if (bVar1) {
*puVar9 = 0;
puVar9 = puVar9 + 1;
}
iVar3 = (*DAT_14017d4e0)(param_1,0);
if (iVar3 == 1) {
uVar6 = (*DAT_14017d518)(param_1,puVar9);
if ((int)uVar6 != 0) {
return uVar6;
}
}
else {
iVar3 = (*DAT_14017d4e0)(param_1,0);
if (iVar3 != 0) {
iVar3 = (*DAT_14017d490)(&local_res20);
if (iVar3 == 0) {
uVar4 = (*DAT_14017d4e8)(param_1);
iVar8 = (8 - (uVar4 & 7)) + uVar4;
iVar3 = (*DAT_14017d4f0)(param_1);
iVar5 = (*DAT_14017d4e8)(param_1);
if ((iVar3 + 1 == iVar5) && (uVar6 = (*DAT_14017d4e8)(param_1), (uVar6 & 7) == 0)) {
iVar8 = iVar8 + -8;
}
iVar3 = (*DAT_14017d4f8)(local_res20,iVar8);
if ((iVar3 == 0) &&
(iVar3 = (*DAT_14017d528)(local_res20,param_1,local_res20), iVar3 == 0)) {
uVar4 = (*DAT_14017d518)(local_res20,puVar9);
if (uVar4 != 0) {
(*DAT_14017d4a0)();
return (ulonglong)uVar4;
}
(*DAT_14017d4a0)(local_res20);
*param_3 = local_res8[0];
return 0;
}
(*DAT_14017d4a0)(local_res20);
}
return 0xd;
}
}
*param_3 = local_res8[0];
uVar6 = 0;
}
return uVar6;
}