undefined4 RT5350_ATEGetDesiredTSSI(int param_1,undefined1 *param_2)
{
char cVar1;
byte bVar2;
char cVar3;
uint uVar4;
undefined4 *puVar5;
uint uVar6;
char *pcVar7;
int iVar8;
uint uVar9;
int iVar10;
uint uVar11;
undefined4 uVar12;
uVar4 = *(uint *)(param_1 + 0x76a14);
cVar3 = '\0';
uVar11 = 0;
do {
iVar10 = 0;
cVar1 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
LAB_00096bdc:
uVar6 = 0;
if (cVar1 == '\0') {
uVar6 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
}
if ((uVar6 & 0x20000) != 0) {
LAB_00096c68:
iVar10 = iVar10 + 1;
if (iVar10 == 100) goto LAB_00096c70;
cVar1 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
goto LAB_00096bdc;
}
if (cVar1 == '\0') {
*(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x101c) = 0xb2f00;
}
iVar8 = 0;
do {
uVar6 = 0;
if (*(char *)(param_1 + 0xec) == '\0') {
uVar6 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
}
} while (((uVar6 & 0x20000) != 0) && (iVar8 = iVar8 + 1, iVar8 != 100));
if ((uVar6 & 0x2ff00) != 0x2f00) goto LAB_00096c68;
uVar11 = uVar6 & 0xff;
LAB_00096c70:
if ((uVar6 & 0x20000) != 0) {
if (RTDebugLevel == 0) {
bVar2 = *(byte *)(param_1 + 0x4af8);
}
else {
printk("BBP read R%d fail\n",0x2f);
bVar2 = *(byte *)(param_1 + 0x4af8);
}
uVar11 = (uint)bVar2;
}
cVar3 = cVar3 + '\x01';
if ((uVar11 & 4) == 0) {
iVar10 = 0;
cVar3 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
goto LAB_00096cd0;
}
} while (cVar3 != 'd');
uVar12 = 0;
goto LAB_00097644;
LAB_00096cd0:
uVar6 = 0;
if (cVar3 == '\0') {
uVar6 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
}
if ((uVar6 & 0x20000) != 0) {
LAB_00096d58:
iVar10 = iVar10 + 1;
if (iVar10 == 100) goto LAB_00096d60;
cVar3 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
goto LAB_00096cd0;
}
if (cVar3 == '\0') {
*(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x101c) = 0xb2f00;
}
iVar8 = 0;
do {
uVar6 = 0;
if (*(char *)(param_1 + 0xec) == '\0') {
uVar6 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
}
} while (((uVar6 & 0x20000) != 0) && (iVar8 = iVar8 + 1, iVar8 != 100));
if ((uVar6 & 0x2ff00) != 0x2f00) goto LAB_00096d58;
uVar11 = uVar6 & 0xff;
LAB_00096d60:
if ((int)(uVar6 << 0xe) < 0) {
if (RTDebugLevel == 0) {
bVar2 = *(byte *)(param_1 + 0x4af8);
}
else {
printk("BBP read R%d fail\n",0x2f);
bVar2 = *(byte *)(param_1 + 0x4af8);
}
uVar11 = (uint)bVar2;
cVar3 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
}
else {
cVar3 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
}
uVar6 = uVar11 & 0xfc;
iVar10 = 0;
do {
uVar11 = 0;
if (cVar3 == '\0') {
uVar11 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
}
if ((uVar11 & 0x20000) == 0) {
if (cVar3 == '\0') {
*(uint *)(*(int *)(param_1 + 0xdc) + 0x101c) = uVar6 | 0xa2f00;
}
*(char *)(param_1 + 0x4af8) = (char)uVar6;
if (iVar10 != 100) goto LAB_00096e44;
break;
}
iVar10 = iVar10 + 1;
} while (iVar10 != 100);
if (RTDebugLevel != 0) {
printk("BBP write R%d fail\n",0x2f);
}
LAB_00096e44:
iVar10 = 0;
cVar3 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
while( true ) {
uVar11 = 0;
if (cVar3 == '\0') {
uVar11 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
}
if ((uVar11 & 0x20000) == 0) {
if (cVar3 == '\0') {
*(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x101c) = 0xb3100;
}
iVar8 = 0;
do {
uVar11 = 0;
if (*(char *)(param_1 + 0xec) == '\0') {
uVar11 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
}
} while (((uVar11 & 0x20000) != 0) && (iVar8 = iVar8 + 1, iVar8 != 100));
if ((uVar11 & 0x2ff00) == 0x3100) {
uVar9 = uVar11 & 0xff;
goto LAB_00096ef4;
}
}
iVar10 = iVar10 + 1;
if (iVar10 == 100) break;
cVar3 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
}
uVar9 = 0;
LAB_00096ef4:
if ((int)(uVar11 << 0xe) < 0) {
if (RTDebugLevel == 0) {
bVar2 = *(byte *)(param_1 + 0x4afa);
}
else {
printk("BBP read R%d fail\n",0x31);
bVar2 = *(byte *)(param_1 + 0x4afa);
}
uVar9 = (uint)bVar2;
}
if (uVar9 < 0x7d) {
*param_2 = (char)uVar9;
}
else {
if (2 < RTDebugLevel) {
printk("TSSI: BBP_R49=%X is native value\n");
}
*param_2 = 0;
}
iVar10 = 0;
cVar3 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
LAB_00096f90:
uVar11 = 0;
if (cVar3 == '\0') {
uVar11 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
}
if ((uVar11 & 0x20000) != 0) {
LAB_00097018:
iVar10 = iVar10 + 1;
if (iVar10 == 100) goto LAB_00097020;
cVar3 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
goto LAB_00096f90;
}
if (cVar3 == '\0') {
*(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x101c) = 0xb2f00;
}
iVar8 = 0;
do {
uVar11 = 0;
if (*(char *)(param_1 + 0xec) == '\0') {
uVar11 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
}
} while (((uVar11 & 0x20000) != 0) && (iVar8 = iVar8 + 1, iVar8 != 100));
if ((uVar11 & 0x2ff00) != 0x2f00) goto LAB_00097018;
uVar6 = uVar11 & 0xff;
LAB_00097020:
if ((int)(uVar11 << 0xe) < 0) {
if (RTDebugLevel == 0) {
bVar2 = *(byte *)(param_1 + 0x4af8);
}
else {
printk("BBP read R%d fail\n",0x2f);
bVar2 = *(byte *)(param_1 + 0x4af8);
}
uVar6 = (uint)bVar2;
}
uVar11 = uVar6 & 0xfc | 1;
iVar10 = 0;
do {
uVar9 = 0;
if (*(char *)(param_1 + 0xec) == '\0') {
uVar9 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
}
if ((uVar9 & 0x20000) == 0) {
if (*(char *)(param_1 + 0xec) == '\0') {
*(uint *)(*(int *)(param_1 + 0xdc) + 0x101c) = uVar6 & 0xfc | 0xa2f01;
}
*(char *)(param_1 + 0x4af8) = (char)uVar11;
if (iVar10 != 100) goto LAB_00097108;
break;
}
iVar10 = iVar10 + 1;
} while (iVar10 != 100);
if (RTDebugLevel != 0) {
printk("BBP write R%d fail\n",0x2f);
}
LAB_00097108:
iVar10 = 0;
cVar3 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
while( true ) {
uVar6 = 0;
if (cVar3 == '\0') {
uVar6 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
}
if ((uVar6 & 0x20000) == 0) {
if (cVar3 == '\0') {
*(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x101c) = 0xb3100;
}
iVar8 = 0;
do {
uVar6 = 0;
if (*(char *)(param_1 + 0xec) == '\0') {
uVar6 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
}
} while (((uVar6 & 0x20000) != 0) && (iVar8 = iVar8 + 1, iVar8 != 100));
if ((uVar6 & 0x2ff00) == 0x3100) {
uVar9 = uVar6 & 0xff;
goto LAB_000971b8;
}
}
iVar10 = iVar10 + 1;
if (iVar10 == 100) break;
cVar3 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
}
uVar9 = 0;
LAB_000971b8:
if ((int)(uVar6 << 0xe) < 0) {
if (RTDebugLevel == 0) {
bVar2 = *(byte *)(param_1 + 0x4afa);
}
else {
printk("BBP read R%d fail\n",0x31);
bVar2 = *(byte *)(param_1 + 0x4afa);
}
uVar9 = (uint)bVar2;
}
uVar6 = uVar9 & 3;
if (uVar6 == 1) {
iVar10 = 6;
switch((uVar9 >> 4) - 9 & 0xff) {
case 0:
iVar10 = 4;
break;
case 1:
iVar10 = 2;
break;
case 2:
iVar10 = 0;
break;
case 3:
iVar10 = 7;
break;
case 4:
iVar10 = 5;
break;
case 5:
iVar10 = 3;
break;
case 6:
iVar10 = 1;
}
uVar12 = (&RT5350_desiredTSSIOverOFDM)[iVar10];
if (RTDebugLevel < 4) goto LAB_00097644;
pcVar7 = "OFDM: desiredTSSI = %d, MCS = %d\n";
}
else if (uVar6 == 2) {
if (3 < RTDebugLevel) {
printk("mixed mode or green-field mode\n");
}
iVar10 = 0;
cVar3 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
LAB_00097368:
uVar6 = 0;
if (cVar3 == '\0') {
uVar6 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
}
if ((uVar6 & 0x20000) != 0) {
LAB_000973f0:
iVar10 = iVar10 + 1;
if (iVar10 == 100) goto LAB_000973f8;
cVar3 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
goto LAB_00097368;
}
if (cVar3 == '\0') {
*(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x101c) = 0xb2f00;
}
iVar8 = 0;
do {
uVar6 = 0;
if (*(char *)(param_1 + 0xec) == '\0') {
uVar6 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
}
} while (((uVar6 & 0x20000) != 0) && (iVar8 = iVar8 + 1, iVar8 != 100));
if ((uVar6 & 0x2ff00) != 0x2f00) goto LAB_000973f0;
uVar11 = uVar6 & 0xff;
LAB_000973f8:
if ((int)(uVar6 << 0xe) < 0) {
if (RTDebugLevel == 0) {
bVar2 = *(byte *)(param_1 + 0x4af8);
}
else {
printk("BBP read R%d fail\n",0x2f);
bVar2 = *(byte *)(param_1 + 0x4af8);
}
uVar11 = (uint)bVar2;
}
uVar6 = uVar11 & 0xfc;
uVar11 = uVar6 | 2;
iVar10 = 0;
do {
uVar9 = 0;
if (*(char *)(param_1 + 0xec) == '\0') {
uVar9 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
}
if ((uVar9 & 0x20000) == 0) {
if (*(char *)(param_1 + 0xec) == '\0') {
*(uint *)(*(int *)(param_1 + 0xdc) + 0x101c) = uVar6 | 0xa2f02;
}
*(char *)(param_1 + 0x4af8) = (char)uVar11;
if (iVar10 != 100) goto LAB_000974e0;
break;
}
iVar10 = iVar10 + 1;
} while (iVar10 != 100);
if (RTDebugLevel != 0) {
printk("BBP write R%d fail\n",0x2f);
}
LAB_000974e0:
iVar10 = 0;
cVar3 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
while( true ) {
uVar6 = 0;
if (cVar3 == '\0') {
uVar6 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
}
if ((uVar6 & 0x20000) == 0) {
if (cVar3 == '\0') {
*(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x101c) = 0xb3100;
}
iVar8 = 0;
do {
uVar6 = 0;
if (*(char *)(param_1 + 0xec) == '\0') {
uVar6 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
}
} while (((uVar6 & 0x20000) != 0) && (iVar8 = iVar8 + 1, iVar8 != 100));
if ((uVar6 & 0x2ff00) == 0x3100) {
uVar9 = uVar6 & 0xff;
goto LAB_00097590;
}
}
iVar10 = iVar10 + 1;
if (iVar10 == 100) break;
cVar3 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
}
uVar9 = 0;
LAB_00097590:
if ((int)(uVar6 << 0xe) < 0) {
if (RTDebugLevel == 0) {
uVar9 = (uint)*(byte *)(param_1 + 0x4afa);
}
else {
printk("BBP read R%d fail\n",0x31);
uVar9 = (uint)*(byte *)(param_1 + 0x4afa);
}
}
if (((uVar4 & 0x8000) == 0) || (2 < ((uVar9 & 0x7f) - 5 & 0xff))) {
puVar5 = &RT5350_desiredTSSIOverHT;
}
else {
puVar5 = &RT5350_desiredTSSIOverHT40;
}
uVar12 = puVar5[uVar9 & 0x7f];
if (RTDebugLevel < 4) goto LAB_00097644;
pcVar7 = "HT: desiredTSSI = %d, MCS = %d\n";
}
else {
uVar12 = 0;
if (uVar6 != 0) goto LAB_00097644;
uVar9 = uVar9 >> 4;
iVar10 = 1;
if (uVar9 != 9) {
if (uVar9 < 9) {
iVar10 = 0;
}
else {
iVar10 = 2;
if ((uVar9 != 10) && (iVar10 = 3, uVar9 != 0xb)) {
iVar10 = 0;
}
}
}
uVar12 = (&RT5350_desiredTSSIOverCCK)[iVar10];
if (RTDebugLevel < 4) goto LAB_00097644;
pcVar7 = "CCK: desiredTSSI = %d, MCS = %d\n";
}
printk(pcVar7,uVar12);
LAB_00097644:
iVar10 = 0;
cVar3 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
LAB_00097660:
uVar4 = 0;
if (cVar3 == '\0') {
uVar4 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
}
if ((uVar4 & 0x20000) == 0) {
if (cVar3 == '\0') {
*(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x101c) = 0xb2f00;
}
iVar8 = 0;
do {
uVar4 = 0;
if (*(char *)(param_1 + 0xec) == '\0') {
uVar4 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
}
} while (((uVar4 & 0x20000) != 0) && (iVar8 = iVar8 + 1, iVar8 != 100));
if ((uVar4 & 0x2ff00) == 0x2f00) {
uVar11 = uVar4 & 0xff;
LAB_000976f0:
if ((int)(uVar4 << 0xe) < 0) {
if (RTDebugLevel == 0) {
bVar2 = *(byte *)(param_1 + 0x4af8);
}
else {
printk("BBP read R%d fail\n",0x2f);
bVar2 = *(byte *)(param_1 + 0x4af8);
}
uVar11 = (uint)bVar2;
cVar3 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
}
else {
cVar3 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
}
uVar11 = uVar11 & 0xf8;
iVar10 = 0;
do {
uVar4 = 0;
if (cVar3 == '\0') {
uVar4 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
}
if ((uVar4 & 0x20000) == 0) {
if (cVar3 == '\0') {
*(uint *)(*(int *)(param_1 + 0xdc) + 0x101c) = uVar11 | 0xa2f00;
}
*(char *)(param_1 + 0x4af8) = (char)uVar11;
if (iVar10 != 100) goto LAB_000977d4;
break;
}
iVar10 = iVar10 + 1;
} while (iVar10 != 100);
if (RTDebugLevel != 0) {
printk("BBP write R%d fail\n",0x2f);
}
LAB_000977d4:
iVar10 = 0;
cVar3 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
LAB_000977f0:
uVar4 = 0;
if (cVar3 == '\0') {
uVar4 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
}
if ((uVar4 & 0x20000) == 0) {
if (cVar3 == '\0') {
*(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x101c) = 0xb2f00;
}
iVar8 = 0;
do {
uVar4 = 0;
if (*(char *)(param_1 + 0xec) == '\0') {
uVar4 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
}
} while (((uVar4 & 0x20000) != 0) && (iVar8 = iVar8 + 1, iVar8 != 100));
if ((uVar4 & 0x2ff00) == 0x2f00) {
uVar11 = uVar4 & 0xff;
LAB_00097880:
if ((int)(uVar4 << 0xe) < 0) {
if (RTDebugLevel == 0) {
bVar2 = *(byte *)(param_1 + 0x4af8);
}
else {
printk("BBP read R%d fail\n",0x2f);
bVar2 = *(byte *)(param_1 + 0x4af8);
}
uVar11 = (uint)bVar2;
cVar3 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
}
else {
cVar3 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
}
iVar10 = 0;
while( true ) {
uVar4 = 0;
if (cVar3 == '\0') {
uVar4 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
}
if ((uVar4 & 0x20000) == 0) break;
iVar10 = iVar10 + 1;
if (iVar10 == 100) {
LAB_00097938:
if (RTDebugLevel != 0) {
printk("BBP write R%d fail\n",0x2f);
}
return uVar12;
}
}
if (cVar3 == '\0') {
*(uint *)(*(int *)(param_1 + 0xdc) + 0x101c) = uVar11 | 0xa2f04;
}
*(byte *)(param_1 + 0x4af8) = (byte)uVar11 | 4;
if (iVar10 != 100) {
return uVar12;
}
goto LAB_00097938;
}
}
iVar10 = iVar10 + 1;
if (iVar10 == 100) goto LAB_00097880;
cVar3 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
goto LAB_000977f0;
}
}
iVar10 = iVar10 + 1;
if (iVar10 == 100) goto LAB_000976f0;
cVar3 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
goto LAB_00097660;
}