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

57 lines
1.4 KiB
C

/* Agent_Release_x64.exe sha256 6f2be7b8eb799ba51b359d1958720aac5baee5b7ee0d1d36684d3cbd72d45469
* Ghidra 12.1.2 decompiler output for 0x1400c87e0 FUN_1400c87e0
* Pseudocode, not original source. */
ulonglong FUN_1400c87e0(uint *param_1,int param_2,undefined4 *param_3)
{
int iVar1;
ulonglong uVar2;
ulonglong uVar3;
longlong lVar4;
uint *puVar5;
int local_res10 [2];
uint local_48 [8];
lVar4 = 0;
*param_3 = 0;
if (0xff < param_2 - 1U) {
return 0xfffffffd;
}
puVar5 = &DAT_140116ec0;
do {
iVar1 = FUN_1400c6ff0((int *)param_1,*puVar5);
if (iVar1 == 0) {
*param_3 = 1;
goto LAB_1400c88ec;
}
puVar5 = puVar5 + 1;
} while ((longlong)puVar5 < 0x1401172c0);
uVar2 = FUN_1400d0b20(param_1,local_res10);
if ((int)uVar2 == 0) {
if (local_res10[0] == 1) {
LAB_1400c88ec:
uVar2 = 0;
}
else {
uVar2 = FUN_1400c6d70(local_48);
if ((int)uVar2 == 0) {
uVar2 = uVar2 & 0xffffffff;
if (0 < (longlong)param_2) {
do {
FUN_1400cfa90(local_48,(&DAT_140116ec0)[lVar4]);
uVar3 = FUN_1400d0960(param_1,local_48,local_res10);
uVar2 = uVar3 & 0xffffffff;
if (((int)uVar3 != 0) || (local_res10[0] == 0)) goto LAB_1400c88bc;
lVar4 = lVar4 + 1;
} while (lVar4 < param_2);
}
*param_3 = 1;
LAB_1400c88bc:
FUN_1400c6dd0((int *)local_48);
}
}
}
return uVar2;
}