/* Agent_Release_x64.exe sha256 6f2be7b8eb799ba51b359d1958720aac5baee5b7ee0d1d36684d3cbd72d45469 * Ghidra 12.1.2 decompiler output for 0x1400da3b8 FUN_1400da3b8 * Pseudocode, not original source. */ void FUN_1400da3b8(longlong param_1,longlong param_2,int param_3) { ushort uVar1; ushort uVar2; int iVar3; int iVar4; longlong lVar5; int iVar6; longlong lVar7; iVar3 = *(int *)(param_1 + 0xba8 + (longlong)param_3 * 4); while( true ) { iVar6 = param_3 * 2; if (*(int *)(param_1 + 0x149c) < iVar6) break; if (iVar6 < *(int *)(param_1 + 0x149c)) { lVar5 = (longlong)*(int *)(param_1 + 0xbac + (longlong)iVar6 * 4); lVar7 = (longlong)*(int *)(param_1 + 0xba8 + (longlong)iVar6 * 4); uVar1 = *(ushort *)(param_2 + lVar7 * 4); uVar2 = *(ushort *)(param_2 + lVar5 * 4); if ((uVar2 < uVar1) || ((uVar2 == uVar1 && (*(byte *)(lVar5 + 0x14a4 + param_1) <= *(byte *)(lVar7 + 0x14a4 + param_1))))) { iVar6 = iVar6 + 1; } } iVar4 = *(int *)(param_1 + 0xba8 + (longlong)iVar6 * 4); uVar1 = *(ushort *)(param_2 + (longlong)iVar4 * 4); uVar2 = *(ushort *)(param_2 + (longlong)iVar3 * 4); if ((uVar2 < uVar1) || ((uVar2 == uVar1 && (*(byte *)((longlong)iVar3 + 0x14a4 + param_1) <= *(byte *)((longlong)iVar4 + 0x14a4 + param_1))))) break; *(int *)(param_1 + 0xba8 + (longlong)param_3 * 4) = iVar4; param_3 = iVar6; } *(int *)(param_1 + 0xba8 + (longlong)param_3 * 4) = iVar3; return; }