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

90 lines
2.5 KiB
C

/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x1400d6e40 FUN_1400d6e40
* Pseudocode, not original source. */
ulonglong FUN_1400d6e40(uint *param_1,uint *param_2,uint *param_3)
{
uint uVar1;
uint uVar2;
uint uVar3;
ulonglong uVar4;
ulonglong uVar5;
undefined8 uVar6;
uint local_48 [2];
uint local_40;
uint local_30 [2];
uint local_28;
if (*param_1 == 0) {
uVar4 = FUN_1400dfe30(param_2,param_3);
return uVar4;
}
if (*param_2 == 0) {
uVar4 = FUN_1400dfe30(param_1,param_3);
return uVar4;
}
uVar4 = FUN_1400ddfa0(local_30,param_1);
if ((int)uVar4 != 0) {
return uVar4;
}
uVar1 = FUN_1400ddfa0(local_48,param_2);
uVar4 = (ulonglong)uVar1;
if (uVar1 != 0) goto LAB_1400d6fff;
local_40 = uVar1;
local_28 = uVar1;
uVar2 = FUN_1400d5e80((int *)local_30);
uVar3 = FUN_1400d5e80((int *)local_48);
uVar1 = uVar3;
if ((int)uVar2 < (int)uVar3) {
uVar1 = uVar2;
}
if ((int)uVar1 < 1) {
LAB_1400d6f1f:
if (uVar2 != uVar1) {
uVar5 = FUN_1400ddfd0(local_30,uVar2 - uVar1,local_30,(undefined8 *)0x0);
uVar4 = uVar5 & 0xffffffff;
if ((int)uVar5 != 0) goto LAB_1400d6fe4;
}
if (uVar3 != uVar1) {
uVar5 = FUN_1400ddfd0(local_48,uVar3 - uVar1,local_48,(undefined8 *)0x0);
uVar4 = uVar5 & 0xffffffff;
if ((int)uVar5 != 0) goto LAB_1400d6fe4;
}
do {
if (local_48[0] == 0) {
uVar5 = FUN_1400ddc40(local_30,uVar1,param_3);
uVar4 = uVar5 & 0xffffffff;
if ((int)uVar5 == 0) {
param_3[2] = 0;
}
break;
}
uVar6 = FUN_1400ddd70((int *)local_30,(int *)local_48);
if ((int)uVar6 == 1) {
FUN_1400dfc40((undefined8 *)local_30,(undefined8 *)local_48);
}
uVar5 = FUN_1400de150(local_48,local_30,local_48);
uVar4 = uVar5 & 0xffffffff;
if ((int)uVar5 != 0) break;
uVar2 = FUN_1400d5e80((int *)local_48);
uVar5 = FUN_1400ddfd0(local_48,uVar2,local_48,(undefined8 *)0x0);
uVar4 = uVar5 & 0xffffffff;
} while ((int)uVar5 == 0);
}
else {
uVar5 = FUN_1400ddfd0(local_30,uVar1,local_30,(undefined8 *)0x0);
uVar4 = uVar5 & 0xffffffff;
if ((int)uVar5 == 0) {
uVar5 = FUN_1400ddfd0(local_48,uVar1,local_48,(undefined8 *)0x0);
uVar4 = uVar5 & 0xffffffff;
if ((int)uVar5 == 0) goto LAB_1400d6f1f;
}
}
LAB_1400d6fe4:
FUN_1400d5c00((int *)local_30);
LAB_1400d6fff:
FUN_1400d5c00((int *)local_48);
return uVar4;
}