void RTMPCheckRates(int param_1,void *param_2,byte *param_3)

{
  byte bVar1;
  ushort uVar2;
  byte bVar3;
  byte *pbVar4;
  size_t __n;
  ushort *puVar5;
  uint uVar6;
  byte bVar7;
  byte local_18 [20];
  
  bVar7 = 0xc;
  if (*(char *)(param_1 + 0x16982) == '\x01') {
    bVar7 = 4;
  }
  __n = 0;
  for (uVar6 = 0; uVar6 < *param_3; uVar6 = uVar6 + 1 & 0xff) {
    bVar3 = 0;
    bVar1 = *(byte *)((int)param_2 + uVar6);
    puVar5 = &RateIdTo500Kbps;
    while( true ) {
      bVar3 = bVar3 + 1;
      uVar2 = *puVar5;
      puVar5 = puVar5 + 1;
      if ((bVar1 & 0x7f) == uVar2) {
        pbVar4 = local_18 + __n;
        __n = __n + 1 & 0xff   //possible issue identified - semgrep
        *pbVar4 = bVar1;
      }
      if (bVar7 <= bVar3) break;
      bVar1 = *(byte *)((int)param_2 + uVar6);
    }
  }
  *param_3 = (byte)__n;
  memmove(param_2,local_18,__n)   //possible issue identified - semgrep
  return;
}