server-re/decomp/Agent_Release_x64/full/functions/0x1400bf560.c
2026-10-14 16:45:19 -04:00

133 lines
4.6 KiB
C

/* Agent_Release_x64.exe sha256 6f2be7b8eb799ba51b359d1958720aac5baee5b7ee0d1d36684d3cbd72d45469
* Ghidra 12.1.2 decompiler output for 0x1400bf560 FUN_1400bf560
* Pseudocode, not original source. */
ulonglong FUN_1400bf560(undefined8 param_1,uint param_2,int param_3,uint param_4,undefined4 *param_5
)
{
uint uVar1;
int iVar2;
ulonglong uVar3;
ulonglong uVar4;
undefined8 local_58;
undefined8 local_50;
longlong local_48;
longlong local_40;
longlong local_38;
if (DAT_1401632a0 == 0) {
return 0x10;
}
if (param_5 == (undefined4 *)0x0) {
return 0x10;
}
if (0x180 < param_3 - 0x80U) {
return 3;
}
if ((int)param_4 < 3) {
return 0x10;
}
if ((param_4 & 1) == 0) {
return 0x10;
}
uVar3 = FUN_1400c6ac0(param_2);
if ((int)uVar3 != 0) {
return uVar3;
}
uVar3 = FUN_1400cb9c0(&local_48);
if ((int)uVar3 != 0) {
return uVar3;
}
uVar1 = (*DAT_1401632d8)(local_38,param_4);
uVar3 = (ulonglong)uVar1;
if (uVar1 == 0) {
do {
uVar4 = FUN_1400cc280(local_48,param_3 / 2,param_1,param_2);
uVar3 = uVar4 & 0xffffffff;
if ((int)uVar4 != 0) goto LAB_1400bf892;
uVar1 = (*DAT_140163360)(local_48,1,local_58);
uVar3 = (ulonglong)uVar1;
if (uVar1 != 0) goto LAB_1400bf892;
uVar1 = (*DAT_140163398)(local_58,local_38,local_50);
uVar3 = (ulonglong)uVar1;
if (uVar1 != 0) goto LAB_1400bf892;
iVar2 = (*DAT_140163300)(local_50,1);
} while (iVar2 != 0);
do {
uVar4 = FUN_1400cc280(local_40,param_3 / 2,param_1,param_2);
uVar3 = uVar4 & 0xffffffff;
if ((int)uVar4 != 0) goto LAB_1400bf892;
uVar1 = (*DAT_140163360)(local_40,1,local_58);
uVar3 = (ulonglong)uVar1;
if (uVar1 != 0) goto LAB_1400bf892;
uVar1 = (*DAT_140163398)(local_58,local_38,local_50);
uVar3 = (ulonglong)uVar1;
if (uVar1 != 0) goto LAB_1400bf892;
iVar2 = (*DAT_140163300)(local_50,1);
} while (iVar2 != 0);
uVar1 = (*DAT_140163360)(local_48,1,local_50);
uVar3 = (ulonglong)uVar1;
if (uVar1 == 0) {
uVar1 = (*DAT_1401633a0)(local_58,local_50,local_58);
uVar3 = (ulonglong)uVar1;
if (uVar1 == 0) {
uVar4 = FUN_1400cb9c0((undefined8 *)(param_5 + 2));
uVar3 = uVar4 & 0xffffffff;
if ((int)uVar4 == 0) {
uVar1 = (*DAT_1401632d8)(*(undefined8 *)(param_5 + 2),param_4);
uVar3 = (ulonglong)uVar1;
if (uVar1 == 0) {
uVar1 = (*DAT_1401633b8)(*(undefined8 *)(param_5 + 2),local_58,
*(undefined8 *)(param_5 + 4));
uVar3 = (ulonglong)uVar1;
if (uVar1 == 0) {
uVar1 = (*DAT_140163368)(local_48,local_40,*(undefined8 *)(param_5 + 6));
uVar3 = (ulonglong)uVar1;
if (uVar1 == 0) {
uVar1 = (*DAT_140163360)(local_48,1,local_58);
uVar3 = (ulonglong)uVar1;
if (uVar1 == 0) {
uVar1 = (*DAT_140163360)(local_40,1,local_50);
uVar3 = (ulonglong)uVar1;
if (uVar1 == 0) {
uVar1 = (*DAT_140163380)(*(undefined8 *)(param_5 + 4),local_58,0,
*(undefined8 *)(param_5 + 0xe));
uVar3 = (ulonglong)uVar1;
if (uVar1 == 0) {
uVar1 = (*DAT_140163380)(*(undefined8 *)(param_5 + 4),local_50,0,
*(undefined8 *)(param_5 + 0x10));
uVar3 = (ulonglong)uVar1;
if (uVar1 == 0) {
uVar1 = (*DAT_1401633b8)(local_40,local_48,*(undefined8 *)(param_5 + 0xc));
uVar3 = (ulonglong)uVar1;
if (uVar1 == 0) {
uVar1 = (*DAT_1401632d0)(local_48,*(undefined8 *)(param_5 + 8));
uVar3 = (ulonglong)uVar1;
if (uVar1 == 0) {
uVar1 = (*DAT_1401632d0)(local_40,*(undefined8 *)(param_5 + 10));
uVar3 = (ulonglong)uVar1;
if (uVar1 == 0) {
*param_5 = 1;
goto LAB_1400bf8d4;
}
}
}
}
}
}
}
}
}
}
}
}
}
}
LAB_1400bf892:
FUN_1400cba50(*(longlong *)(param_5 + 4));
LAB_1400bf8d4:
FUN_1400cba50(local_38);
return uVar3;
}