133 lines
4.6 KiB
C
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;
|
|
}
|
|
|