/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186 * Ghidra 12.1.2 decompiler output for 0x1400bd340 FUN_1400bd340 * Pseudocode, not original source. */ void FUN_1400bd340(longlong param_1,longlong param_2,int param_3) { short *psVar1; ushort uVar2; int iVar3; longlong lVar4; uint uVar5; uint uVar6; uint uVar7; int iVar8; int iVar9; ushort *puVar10; uVar2 = *(ushort *)(param_2 + 2); uVar5 = 0xffffffff; iVar9 = 0; iVar3 = 7; iVar8 = 4; if (uVar2 == 0) { iVar3 = 0x8a; iVar8 = 3; } lVar4 = (longlong)param_3; *(undefined2 *)(param_2 + 6 + lVar4 * 4) = 0xffff; if (-1 < lVar4) { puVar10 = (ushort *)(param_2 + 6); lVar4 = lVar4 + 1; uVar6 = (uint)uVar2; do { iVar9 = iVar9 + 1; uVar2 = *puVar10; uVar7 = (uint)uVar2; if ((iVar3 <= iVar9) || (uVar6 != uVar7)) { if (iVar9 < iVar8) { psVar1 = (short *)(param_1 + 0xaa4 + (longlong)(int)uVar6 * 4); *psVar1 = *psVar1 + (short)iVar9; } else if (uVar6 == 0) { if (iVar9 < 0xb) { *(short *)(param_1 + 0xae8) = *(short *)(param_1 + 0xae8) + 1; } else { *(short *)(param_1 + 0xaec) = *(short *)(param_1 + 0xaec) + 1; } } else { if (uVar6 != uVar5) { psVar1 = (short *)(param_1 + 0xaa4 + (longlong)(int)uVar6 * 4); *psVar1 = *psVar1 + 1; } *(short *)(param_1 + 0xae4) = *(short *)(param_1 + 0xae4) + 1; } iVar9 = 0; uVar5 = uVar6; if (uVar2 == 0) { iVar3 = 0x8a; iVar8 = 3; iVar9 = 0; } else if (uVar6 == uVar7) { iVar3 = 6; iVar8 = 3; iVar9 = 0; } else { iVar3 = 7; iVar8 = 4; } } puVar10 = puVar10 + 2; lVar4 = lVar4 + -1; uVar6 = uVar7; } while (lVar4 != 0); } return; }