void AsicAdjustTxPower(int param_1)
{
char cVar1;
int iVar2;
uint uVar3;
uint uVar4;
char *pcVar5;
int iVar6;
uint uVar7;
int iVar8;
uint *puVar9;
byte bVar10;
char cVar11;
int iVar12;
char local_58;
undefined1 local_57;
undefined1 uStack_56;
char local_55;
byte local_54 [4];
undefined2 local_50 [2];
uint local_4c [9];
local_58 = '\0';
local_57 = 0;
local_55 = '\0';
memset(local_54,0,0x2c) //possible issue identified - semgrep
if ((*(uint *)(param_1 + 0x16a58) != 0xffffffff) && (*(uint *)(param_1 + 0x16a58) < 0x5b)) {
*(undefined1 *)(param_1 + 0x50ca) = 0;
}
AsicGetTxPowerOffset(param_1,local_54);
AsicGetAutoAgcOffset(param_1,&local_58,&local_55,&uStack_56,&local_57);
uVar3 = Status;
uVar4 = 0;
if (*(char *)(param_1 + 0xec) == '\0') {
if (*(int *)(param_1 + 0x29f8) == 4) {
uVar7 = 0;
if (*(char *)(param_1 + 0xad) == '\x01') {
Status = Status & 0xfffffffe;
uVar7 = uVar3 & 1;
}
iVar6 = 0;
cVar11 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
while( true ) {
uVar3 = 0;
if (cVar11 == '\0') {
uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
}
if ((uVar3 & 0x20000) == 0) {
if (cVar11 == '\0') {
*(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x101c) = 0xb0100;
}
iVar12 = 1;
while( true ) {
uVar3 = 0;
if (*(char *)(param_1 + 0xec) == '\0') {
uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
}
if (((uVar3 & 0x20000) == 0) || (iVar12 == 100)) break;
iVar12 = iVar12 + 1;
}
if ((uVar3 & 0x2ff00) == 0x100) {
uVar4 = uVar3 & 0xff;
goto LAB_000519ac;
}
}
iVar6 = iVar6 + 1;
if (iVar6 == 100) break;
cVar11 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
}
uVar4 = 0;
LAB_000519ac:
if ((int)(uVar3 << 0xe) < 0) {
printk("ERROR!!! ");
printk("BBP(viaMCU=%d) read R%d fail\n",0,1);
uVar4 = (uint)*(byte *)(param_1 + 0x4aca);
LAB_00051b40:
cVar11 = *(char *)(param_1 + 0xad) //possible issue identified - semgrep
}
else {
cVar11 = *(char *)(param_1 + 0xad) //possible issue identified - semgrep
}
}
else {
uVar7 = 0;
if (*(char *)(param_1 + 0xad) == '\x01') {
Status = Status & 0xfffffffe;
uVar7 = uVar3 & 1;
}
iVar6 = 0;
cVar11 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
while( true ) {
uVar3 = 0;
if (cVar11 == '\0') {
uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028);
}
if ((uVar3 & 0x20000) == 0) {
if (cVar11 == '\0') {
*(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x7028) = 0xb0100;
}
AsicSendCommandToMcuBBP(param_1,0x80,0xff,0,0,0);
RTMPusecDelay(1000);
iVar12 = 1;
while( true ) {
uVar3 = 0;
if (*(char *)(param_1 + 0xec) == '\0') {
uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028);
}
if (((uVar3 & 0x20000) == 0) || (iVar12 == 100)) break;
iVar12 = iVar12 + 1;
}
if ((uVar3 & 0x2ff00) == 0x100) {
uVar4 = uVar3 & 0xff;
goto LAB_00051ae8;
}
}
iVar6 = iVar6 + 1;
if (iVar6 == 100) break;
cVar11 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
}
uVar4 = 0;
LAB_00051ae8:
if ((int)(uVar3 << 0xe) < 0) {
printk("ERROR!!! ");
printk("BBP(viaMCU=%d) read R%d fail\n",1,1);
uVar4 = (uint)*(byte *)(param_1 + 0x4aca);
if (*(char *)(param_1 + 0xec) == '\0') {
*(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) =
*(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) & 0xfffdffff;
}
goto LAB_00051b40;
}
cVar11 = *(char *)(param_1 + 0xad) //possible issue identified - semgrep
}
if (cVar11 == '\x01') {
Status = Status & 0xfffffffe;
if (uVar7 != 0) {
Status = Status | 1;
}
goto LAB_00051b64;
}
cVar11 = *(char *)(param_1 + 0x50ca) //possible issue identified - semgrep
}
else {
LAB_00051b64:
cVar11 = *(char *)(param_1 + 0x50ca) //possible issue identified - semgrep
}
uVar3 = Status;
if (cVar11 != '\0') goto LAB_000529ec;
uVar7 = *(uint *)(param_1 + 0x16a58);
if (uVar7 == 0xffffffff) {
cVar11 = '\0';
}
else if (uVar7 < 0x5b) {
if (uVar7 < 0x3d) {
if (uVar7 < 0x1f) {
cVar11 = -6 //possible issue identified - semgrep
if ((0xf < uVar7) || (cVar11 = -0xc, uVar7 < 10)) goto LAB_00051be8 //possible issue identified - semgrep
cVar11 = -6 //possible issue identified - semgrep
}
else {
cVar11 = '\0';
}
local_58 = local_58 + -3 //possible issue identified - semgrep
}
else {
cVar11 = '\0';
local_58 = local_58 + -1 //possible issue identified - semgrep
}
}
else {
cVar11 = '\0';
}
LAB_00051be8:
uVar4 = uVar4 & 0xfc;
if (*(char *)(param_1 + 0xec) == '\0') {
if (*(int *)(param_1 + 0x29f8) == 4) {
uVar7 = 0;
if (*(char *)(param_1 + 0xad) == '\x01') {
Status = Status & 0xfffffffe;
uVar7 = uVar3 & 1;
}
iVar6 = 1;
cVar1 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
while( true ) {
uVar3 = 0;
if (cVar1 == '\0') {
uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
}
if ((uVar3 & 0x20000) == 0) break;
iVar6 = iVar6 + 1;
printk(&_LC28) //possible issue identified - semgrep
if (iVar6 == 100) goto LAB_00051cb8;
cVar1 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
}
if (cVar1 == '\0') {
*(uint *)(*(int *)(param_1 + 0xdc) + 0x101c) = uVar4 | 0xa0100;
}
*(char *)(param_1 + 0x4aca) = (char)uVar4;
if (iVar6 != 100) goto LAB_00051cd8;
LAB_00051cb8:
printk("ERROR!!! ");
printk("BBP write R%d fail\n",1);
LAB_00051cd8:
cVar1 = *(char *)(param_1 + 0xad) //possible issue identified - semgrep
}
else {
uVar7 = 0;
if (*(char *)(param_1 + 0xad) == '\x01') {
Status = Status & 0xfffffffe;
uVar7 = uVar3 & 1;
}
iVar6 = 1;
cVar1 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
while( true ) {
uVar3 = 0;
if (cVar1 == '\0') {
uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028);
}
if ((uVar3 & 0x20000) == 0) break;
iVar12 = iVar6 % 0x14;
iVar6 = iVar6 + 1;
if ((iVar12 == 0) && (cVar1 == '\0')) {
*(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) = uVar3 & 0xfffdffff;
}
printk(&_LC28) //possible issue identified - semgrep
if (iVar6 == 100) goto LAB_00051e30;
cVar1 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
}
if (cVar1 == '\0') {
*(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) = uVar4 | 0xa0100;
}
iVar12 = AsicSendCommandToMcuBBP(param_1,0x80,0xff,0,0,0);
if (*(char *)(param_1 + 0x16964) == '\x01') {
RTMPusecDelay(1000);
}
if ((iVar12 == 0) && (*(char *)(param_1 + 0xec) == '\0')) {
*(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) = uVar4 | 0x80100;
}
*(char *)(param_1 + 0x4aca) = (char)uVar4;
if (iVar6 != 100) goto LAB_00051e78;
LAB_00051e30:
printk("ERROR!!! ");
printk("BBP write R%d fail\n",1);
if (*(char *)(param_1 + 0xec) == '\0') {
*(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) =
*(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) & 0xfffdffff;
LAB_00051e78:
cVar1 = *(char *)(param_1 + 0xad) //possible issue identified - semgrep
}
else {
cVar1 = *(char *)(param_1 + 0xad) //possible issue identified - semgrep
}
}
if ((cVar1 == '\x01') && (Status = Status & 0xfffffffe, uVar7 != 0)) {
Status = Status | 1;
}
}
uVar3 = Status;
local_55 = cVar11 + local_55 + local_58;
if (*(char *)(param_1 + 0xec) == '\0') {
if (*(int *)(param_1 + 0x29f8) == 4) {
uVar7 = 0;
if (*(char *)(param_1 + 0xad) == '\x01') {
Status = Status & 0xfffffffe;
uVar7 = uVar3 & 1;
}
iVar6 = 0;
cVar11 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
LAB_00051efc:
uVar3 = 0;
if (cVar11 == '\0') {
uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
}
if ((uVar3 & 0x20000) != 0) {
LAB_00051f88:
iVar6 = iVar6 + 1;
if (iVar6 == 100) goto LAB_00051f90;
cVar11 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
goto LAB_00051efc;
}
if (cVar11 == '\0') {
*(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x101c) = 0xb0100;
}
iVar12 = 1;
while( true ) {
uVar3 = 0;
if (*(char *)(param_1 + 0xec) == '\0') {
uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
}
if (((uVar3 & 0x20000) == 0) || (iVar12 == 100)) break;
iVar12 = iVar12 + 1;
}
if ((uVar3 & 0x2ff00) != 0x100) goto LAB_00051f88;
uVar4 = uVar3 & 0xff;
LAB_00051f90:
if ((int)(uVar3 << 0xe) < 0) {
printk("ERROR!!! ");
printk("BBP(viaMCU=%d) read R%d fail\n",0,1);
uVar4 = (uint)*(byte *)(param_1 + 0x4aca);
LAB_00052120:
cVar11 = *(char *)(param_1 + 0xad) //possible issue identified - semgrep
}
else {
cVar11 = *(char *)(param_1 + 0xad) //possible issue identified - semgrep
}
}
else {
uVar7 = 0;
if (*(char *)(param_1 + 0xad) == '\x01') {
Status = Status & 0xfffffffe;
uVar7 = uVar3 & 1;
}
iVar6 = 0;
cVar11 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
LAB_00052000:
uVar3 = 0;
if (cVar11 == '\0') {
uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028);
}
if ((uVar3 & 0x20000) != 0) {
LAB_000520c0:
iVar6 = iVar6 + 1;
if (iVar6 == 100) goto LAB_000520c8;
cVar11 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
goto LAB_00052000;
}
if (cVar11 == '\0') {
*(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x7028) = 0xb0100;
}
AsicSendCommandToMcuBBP(param_1,0x80,0xff,0,0,0);
RTMPusecDelay(1000);
iVar12 = 1;
while( true ) {
uVar3 = 0;
if (*(char *)(param_1 + 0xec) == '\0') {
uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028);
}
if (((uVar3 & 0x20000) == 0) || (iVar12 == 100)) break;
iVar12 = iVar12 + 1;
}
if ((uVar3 & 0x2ff00) != 0x100) goto LAB_000520c0;
uVar4 = uVar3 & 0xff;
LAB_000520c8:
if ((int)(uVar3 << 0xe) < 0) {
printk("ERROR!!! ");
printk("BBP(viaMCU=%d) read R%d fail\n",1,1);
uVar4 = (uint)*(byte *)(param_1 + 0x4aca);
if (*(char *)(param_1 + 0xec) == '\0') {
*(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) =
*(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) & 0xfffdffff;
}
goto LAB_00052120;
}
cVar11 = *(char *)(param_1 + 0xad) //possible issue identified - semgrep
}
if ((cVar11 == '\x01') && (Status = Status & 0xfffffffe, uVar7 != 0)) {
Status = Status | 1;
}
}
uVar3 = Status;
uVar4 = uVar4 & 0xfc;
bVar10 = (byte)uVar4;
if (local_55 < -0xb) {
local_55 = local_55 + '\f';
if (*(char *)(param_1 + 0xec) == '\0') {
if (*(int *)(param_1 + 0x29f8) == 4) {
uVar7 = 0;
if (*(char *)(param_1 + 0xad) == '\x01') {
Status = Status & 0xfffffffe;
uVar7 = uVar3 & 1;
}
iVar6 = 1;
cVar11 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
while( true ) {
uVar3 = 0;
if (cVar11 == '\0') {
uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
}
if ((uVar3 & 0x20000) == 0) break;
iVar6 = iVar6 + 1;
printk(&_LC28) //possible issue identified - semgrep
if (iVar6 == 100) goto LAB_0005222c;
cVar11 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
}
if (cVar11 == '\0') {
*(uint *)(*(int *)(param_1 + 0xdc) + 0x101c) = uVar4 | 0xa0102;
}
*(byte *)(param_1 + 0x4aca) = bVar10 | 2;
if (iVar6 != 100) goto LAB_0005224c;
LAB_0005222c:
printk("ERROR!!! ");
printk("BBP write R%d fail\n",1);
LAB_0005224c:
cVar11 = *(char *)(param_1 + 0xad) //possible issue identified - semgrep
}
else {
uVar7 = 0;
if (*(char *)(param_1 + 0xad) == '\x01') {
Status = Status & 0xfffffffe;
uVar7 = uVar3 & 1;
}
iVar6 = 1;
cVar11 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
while( true ) {
uVar3 = 0;
if (cVar11 == '\0') {
uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028);
}
if ((uVar3 & 0x20000) == 0) break;
iVar12 = iVar6 % 0x14;
iVar6 = iVar6 + 1;
if ((iVar12 == 0) && (cVar11 == '\0')) {
*(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) = uVar3 & 0xfffdffff;
}
printk(&_LC28) //possible issue identified - semgrep
if (iVar6 == 100) goto LAB_000523a4;
cVar11 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
}
if (cVar11 == '\0') {
*(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) = uVar4 | 0xa0102;
}
iVar12 = AsicSendCommandToMcuBBP(param_1,0x80,0xff,0,0,0);
if (*(char *)(param_1 + 0x16964) == '\x01') {
RTMPusecDelay(1000);
}
if ((iVar12 == 0) && (*(char *)(param_1 + 0xec) == '\0')) {
*(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) = uVar4 | 0x80102;
}
*(byte *)(param_1 + 0x4aca) = bVar10 | 2;
if (iVar6 != 100) goto LAB_000523ec;
LAB_000523a4:
printk("ERROR!!! ");
printk("BBP write R%d fail\n",1);
if (*(char *)(param_1 + 0xec) == '\0') {
*(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) =
*(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) & 0xfffdffff;
LAB_000523ec:
cVar11 = *(char *)(param_1 + 0xad) //possible issue identified - semgrep
}
else {
cVar11 = *(char *)(param_1 + 0xad) //possible issue identified - semgrep
}
}
if ((cVar11 == '\x01') && (Status = Status & 0xfffffffe, uVar7 != 0)) {
Status = Status | 1;
}
}
if (RTDebugLevel < 4) goto LAB_000529ec;
pcVar5 = "TPC: %s: Drop the transmit power by 12 dBm (BBP R1)\n";
}
else {
if (5 < (byte)(local_55 + 0xbU)) {
if (*(char *)(param_1 + 0xec) == '\0') {
if (*(int *)(param_1 + 0x29f8) == 4) {
uVar7 = 0;
if (*(char *)(param_1 + 0xad) == '\x01') {
Status = Status & 0xfffffffe;
uVar7 = uVar3 & 1;
}
iVar6 = 1;
cVar11 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
while( true ) {
uVar3 = 0;
if (cVar11 == '\0') {
uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
}
if ((uVar3 & 0x20000) == 0) break;
iVar6 = iVar6 + 1;
printk(&_LC28) //possible issue identified - semgrep
if (iVar6 == 100) goto LAB_00052804;
cVar11 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
}
if (cVar11 == '\0') {
*(uint *)(*(int *)(param_1 + 0xdc) + 0x101c) = uVar4 | 0xa0100;
}
*(byte *)(param_1 + 0x4aca) = bVar10;
if (iVar6 != 100) goto LAB_00052824;
LAB_00052804:
printk("ERROR!!! ");
printk("BBP write R%d fail\n",1);
LAB_00052824:
cVar11 = *(char *)(param_1 + 0xad) //possible issue identified - semgrep
}
else {
uVar7 = 0;
if (*(char *)(param_1 + 0xad) == '\x01') {
Status = Status & 0xfffffffe;
uVar7 = uVar3 & 1;
}
iVar6 = 1;
cVar11 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
while( true ) {
uVar3 = 0;
if (cVar11 == '\0') {
uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028);
}
if ((uVar3 & 0x20000) == 0) break;
iVar12 = iVar6 % 0x14;
iVar6 = iVar6 + 1;
if ((iVar12 == 0) && (cVar11 == '\0')) {
*(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) = uVar3 & 0xfffdffff;
}
printk(&_LC28) //possible issue identified - semgrep
if (iVar6 == 100) goto LAB_0005297c;
cVar11 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
}
if (cVar11 == '\0') {
*(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) = uVar4 | 0xa0100;
}
iVar12 = AsicSendCommandToMcuBBP(param_1,0x80,0xff,0,0,0);
if (*(char *)(param_1 + 0x16964) == '\x01') {
RTMPusecDelay(1000);
}
if ((iVar12 == 0) && (*(char *)(param_1 + 0xec) == '\0')) {
*(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) = uVar4 | 0x80100;
}
*(byte *)(param_1 + 0x4aca) = bVar10;
if (iVar6 != 100) goto LAB_000529c4;
LAB_0005297c:
printk("ERROR!!! ");
printk("BBP write R%d fail\n",1);
if (*(char *)(param_1 + 0xec) == '\0') {
*(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) =
*(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) & 0xfffdffff;
LAB_000529c4:
cVar11 = *(char *)(param_1 + 0xad) //possible issue identified - semgrep
}
else {
cVar11 = *(char *)(param_1 + 0xad) //possible issue identified - semgrep
}
}
if ((cVar11 == '\x01') && (Status = Status & 0xfffffffe, uVar7 != 0)) {
Status = Status | 1;
}
}
goto LAB_000529ec;
}
local_55 = local_55 + '\x06';
if (*(char *)(param_1 + 0xec) == '\0') {
if (*(int *)(param_1 + 0x29f8) == 4) {
uVar7 = 0;
if (*(char *)(param_1 + 0xad) == '\x01') {
Status = Status & 0xfffffffe;
uVar7 = uVar3 & 1;
}
iVar6 = 1;
cVar11 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
while( true ) {
uVar3 = 0;
if (cVar11 == '\0') {
uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
}
if ((uVar3 & 0x20000) == 0) break;
iVar6 = iVar6 + 1;
printk(&_LC28) //possible issue identified - semgrep
if (iVar6 == 100) goto LAB_0005251c;
cVar11 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
}
if (cVar11 == '\0') {
*(uint *)(*(int *)(param_1 + 0xdc) + 0x101c) = uVar4 | 0xa0101;
}
*(byte *)(param_1 + 0x4aca) = bVar10 | 1;
if (iVar6 != 100) goto LAB_0005253c;
LAB_0005251c:
printk("ERROR!!! ");
printk("BBP write R%d fail\n",1);
LAB_0005253c:
cVar11 = *(char *)(param_1 + 0xad) //possible issue identified - semgrep
}
else {
uVar7 = 0;
if (*(char *)(param_1 + 0xad) == '\x01') {
Status = Status & 0xfffffffe;
uVar7 = uVar3 & 1;
}
iVar6 = 1;
cVar11 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
while( true ) {
uVar3 = 0;
if (cVar11 == '\0') {
uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028);
}
if ((uVar3 & 0x20000) == 0) break;
iVar12 = iVar6 % 0x14;
iVar6 = iVar6 + 1;
if ((iVar12 == 0) && (cVar11 == '\0')) {
*(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) = uVar3 & 0xfffdffff;
}
printk(&_LC28) //possible issue identified - semgrep
if (iVar6 == 100) goto LAB_00052694;
cVar11 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
}
if (cVar11 == '\0') {
*(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) = uVar4 | 0xa0101;
}
iVar12 = AsicSendCommandToMcuBBP(param_1,0x80,0xff,0,0,0);
if (*(char *)(param_1 + 0x16964) == '\x01') {
RTMPusecDelay(1000);
}
if ((iVar12 == 0) && (*(char *)(param_1 + 0xec) == '\0')) {
*(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) = uVar4 | 0x80101;
}
*(byte *)(param_1 + 0x4aca) = bVar10 | 1;
if (iVar6 != 100) goto LAB_000526dc;
LAB_00052694:
printk("ERROR!!! ");
printk("BBP write R%d fail\n",1);
if (*(char *)(param_1 + 0xec) == '\0') {
*(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) =
*(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) & 0xfffdffff;
LAB_000526dc:
cVar11 = *(char *)(param_1 + 0xad) //possible issue identified - semgrep
}
else {
cVar11 = *(char *)(param_1 + 0xad) //possible issue identified - semgrep
}
}
if ((cVar11 == '\x01') && (Status = Status & 0xfffffffe, uVar7 != 0)) {
Status = Status | 1;
}
}
if (RTDebugLevel < 4) goto LAB_000529ec;
pcVar5 = "TPC: %s: Drop the transmit power by 6 dBm (BBP R1)\n";
}
printk(pcVar5,"AsicAdjustTxPower");
LAB_000529ec:
puVar9 = local_4c;
iVar12 = 0;
iVar6 = 0x1314;
do {
if ((int)(uint)local_54[0] <= iVar12) {
if ((*(uint *)(param_1 + 0x4a94) & 0xffff0000) == 0x53500000) {
RT5350_AsicExtraPowerOverMAC(param_1);
}
return;
}
if (*puVar9 != 0xffffffff) {
iVar8 = 0;
do {
uVar4 = iVar8 << 2;
uVar3 = *puVar9 >> (uVar4 & 0x1f) & 0xf;
if (*(char *)(param_1 + 0x50ca) == '\x01') {
if (iVar6 == 0x131c) {
LAB_00052ad0:
iVar2 = uVar3 + (int)local_55;
}
else {
if (0x131c < iVar6) {
if (iVar6 == 0x1320) {
if (iVar8 != 0) {
if (iVar8 == 2) {
iVar2 = uVar3 + (int)local_55;
goto LAB_00052ad4;
}
if ((iVar8 != 3) && (3 < iVar8 - 4U)) {
if ((int)(uVar3 + (int)local_55) < 0) goto LAB_00052b3c;
if ((int)(uVar3 + (int)local_55) < 0xf) {
uVar3 = (int)(char)((char)uVar3 + local_55);
}
else {
uVar3 = 0xe;
}
goto LAB_00052b44;
}
}
}
else if (iVar6 != 0x1324) goto LAB_00052aec;
goto LAB_00052ad0;
}
if (iVar6 == 0x1314) goto LAB_00052ad0;
if (iVar6 != 0x1318) {
LAB_00052aec:
if (RTDebugLevel != 0) {
printk("%s: unknown register = 0x%X\n","AsicAdjustTxPower",iVar6);
}
goto LAB_00052b44;
}
iVar2 = uVar3 + (int)local_55;
}
LAB_00052ad4:
if (iVar2 < 0) goto LAB_00052b3c;
uVar3 = (int)(char)iVar2;
if (0xe < iVar2) {
uVar3 = 0xe;
}
}
else {
iVar2 = uVar3 + (int)local_55;
if (iVar2 < 0) {
LAB_00052b3c:
uVar3 = 0;
}
else {
uVar3 = 0xc;
if (iVar2 < 0xd) {
uVar3 = (int)(char)iVar2;
}
}
}
LAB_00052b44:
uVar3 = uVar3 << (uVar4 & 0x1f) | ~(0xf << (uVar4 & 0x1f)) & *puVar9;
iVar8 = iVar8 + 1;
*puVar9 = uVar3;
} while (iVar8 != 8);
if (*(char *)(param_1 + 0xec) == '\0') {
*(uint *)(*(int *)(param_1 + 0xdc) + (uint)(ushort)puVar9[-1]) = uVar3;
}
}
iVar12 = iVar12 + 1;
puVar9 = puVar9 + 2;
iVar6 = iVar6 + 4;
} while( true );
}