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

60 lines
1.9 KiB
C

/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x1400bd030 FUN_1400bd030
* Pseudocode, not original source. */
void FUN_1400bd030(longlong param_1,longlong param_2,int param_3)
{
ushort uVar1;
ushort uVar2;
int iVar3;
int iVar4;
longlong lVar5;
int iVar6;
int iVar7;
longlong lVar8;
longlong lVar9;
bool bVar10;
iVar3 = *(int *)(param_1 + 0x149c);
lVar8 = (longlong)param_3;
iVar4 = *(int *)(param_1 + 0xba8 + lVar8 * 4);
iVar6 = param_3 * 2;
bVar10 = SBORROW4(iVar6,iVar3);
iVar7 = iVar6 - iVar3;
if (iVar6 <= iVar3) {
do {
if (bVar10 != iVar7 < 0) {
lVar9 = (longlong)*(int *)(param_1 + 0xba8 + (longlong)iVar6 * 4);
lVar5 = (longlong)*(int *)(param_1 + 0xbac + (longlong)iVar6 * 4);
uVar1 = *(ushort *)(param_2 + lVar5 * 4);
uVar2 = *(ushort *)(param_2 + lVar9 * 4);
if ((uVar1 < uVar2) ||
((uVar1 == uVar2 &&
(*(byte *)(lVar5 + 0x14a4 + param_1) <= *(byte *)(lVar9 + 0x14a4 + param_1))))) {
iVar6 = iVar6 + 1;
}
}
iVar3 = *(int *)(param_1 + 0xba8 + (longlong)iVar6 * 4);
uVar1 = *(ushort *)(param_2 + (longlong)iVar4 * 4);
uVar2 = *(ushort *)(param_2 + (longlong)iVar3 * 4);
iVar7 = (int)lVar8;
if ((uVar1 < uVar2) ||
((uVar1 == uVar2 &&
(*(byte *)((longlong)iVar4 + 0x14a4 + param_1) <=
*(byte *)((longlong)iVar3 + 0x14a4 + param_1))))) {
*(int *)(param_1 + 0xba8 + (longlong)iVar7 * 4) = iVar4;
return;
}
lVar8 = (longlong)iVar6;
iVar6 = iVar6 * 2;
*(int *)(param_1 + 0xba8 + (longlong)iVar7 * 4) = iVar3;
iVar3 = *(int *)(param_1 + 0x149c);
bVar10 = SBORROW4(iVar6,iVar3);
iVar7 = iVar6 - iVar3;
} while (iVar6 <= iVar3);
}
*(int *)(param_1 + 0xba8 + lVar8 * 4) = iVar4;
return;
}