int GetDesiredTSSI(int param_1)

{
  ushort uVar1;
  undefined1 *puVar2;
  uint uVar3;
  uint uVar4;
  char cVar5;
  ushort *puVar6;
  
  puVar6 = (ushort *)(param_1 + 0x7691c);
  uVar1 = *puVar6;
  uVar3 = uVar1 & 0xc000;
  uVar4 = uVar1 & 0x7f;
  if ((uVar1 & 0xc000) == 0) {
    if (3 < uVar4) {
      if (RTDebugLevel != 0) {
        printk("%s: incorrect MCS: MCS = %d\n","GetDesiredTSSI");
      }
      uVar4 = 0;
    }
    puVar2 = &desiredTSSIOverCCK;
  }
  else {
    if (uVar3 != 0x4000) {
      if ((uVar3 == 0x8000) || (cVar5 = '\0', uVar3 == 0xc000)) {
        if ((*(byte *)(param_1 + 0xd7) - 1 & 0xff) < uVar4) {
          if (RTDebugLevel != 0) {
            printk("%s: incorrect MCS: MCS = %d\n","GetDesiredTSSI");
          }
          uVar4 = 0;
          uVar1 = *puVar6;
        }
        else {
          uVar1 = *puVar6;
        }
        if ((uVar1 & 0x600) == 0x200) {
          puVar2 = &desiredTSSIOverHT;
        }
        else {
          puVar2 = &desiredTSSIOverHTUsingSTBC;
        }
        cVar5 = puVar2[uVar4];
        if (((uVar1 & 0x80) != 0) && (uVar4 == 7)) {
          cVar5 = cVar5 + -1   //possible issue identified - semgrep
        }
      }
      goto LAB_00057ea0;
    }
    if (7 < uVar4) {
      if (RTDebugLevel != 0) {
        printk("%s: incorrect MCS: MCS = %d\n","GetDesiredTSSI");
      }
      uVar4 = 0;
    }
    puVar2 = &desiredTSSIOverOFDM;
  }
  cVar5 = puVar2[uVar4];
LAB_00057ea0:
  if (3 < RTDebugLevel) {
    uVar3 = (uint)*puVar6;
    printk("%s: desiredTSSI = %d, Latest Tx HT setting: MODE = %d, MCS = %d, STBC = %d\n",
           "GetDesiredTSSI",cVar5,(uVar3 << 0x10) >> 0x1e,uVar3 & 0x7f,(uVar3 << 0x15) >> 0x1e);
  }
  if (3 < RTDebugLevel) {
    printk("<--- %s\n","GetDesiredTSSI");
  }
  return (int)cVar5;
}