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;
}