undefined4 RT30xxWriteRFRegister(int param_1,uint param_2,uint param_3)
{
char cVar1;
int iVar2;
undefined4 uVar3;
uint uVar4;
uint uVar5;
byte local_20 [8];
param_2 = param_2 & 0xff;
param_3 = param_3 & 0xff;
if ((*(char *)(param_1 + 0xec) == '\x01') || (*(char *)(param_1 + 0x3a84) == '0')) {
printk("ERROR!!! ");
printk("RT30xxWriteRFRegister. Not allow to write RF 0x%x : fail\n",param_2);
uVar3 = 1;
}
else {
if (*(uint *)(param_1 + 0xa4) < param_2) {
printk("<4>/home/eric/release/dir600b5/progs.priv/rt2860v2/build/rt2860v2_ap/../rt2860v2/common/rt_rf.c:%d assert (regID <= pAd->chipCap.MaxNumOfRfId)failed\n"
,0x43);
}
iVar2 = 0;
do {
uVar4 = 0;
if (*(char *)(param_1 + 0xec) == '\0') {
uVar4 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x500);
}
if ((uVar4 & 0x20000) == 0) {
if (iVar2 == 10) goto LAB_000b0354;
break;
}
iVar2 = iVar2 + 1;
if (iVar2 == 10) goto LAB_000b0354;
} while ((*(uint *)(param_1 + 0x76904) & 0x100) == 0);
if ((*(uint *)(param_1 + 0x76904) & 0x100) == 0) {
uVar4 = uVar4 & 0xfffc00ff | 0x30000 | param_2 << 8;
if ((*(char *)(param_1 + 0xac) == '\x01') && (param_2 == 0x11)) {
RT30xxReadRFRegister(param_1,0x11,local_20);
uVar5 = (uint)local_20[0];
if (param_3 < uVar5) {
cVar1 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
do {
uVar4 = uVar4 & 0xffffff00 | uVar5;
if (cVar1 == '\0') {
*(uint *)(*(int *)(param_1 + 0xdc) + 0x500) = uVar4;
}
RtmpOsMsDelay(1);
uVar5 = uVar5 - 1 & 0xff;
cVar1 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
} while (param_3 < uVar5);
}
else {
for (; uVar5 < param_3; uVar5 = uVar5 + 1 & 0xff) {
uVar4 = uVar4 & 0xffffff00 | uVar5;
if (*(char *)(param_1 + 0xec) == '\0') {
*(uint *)(*(int *)(param_1 + 0xdc) + 0x500) = uVar4;
}
RtmpOsMsDelay(1);
}
cVar1 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
}
if (cVar1 != '\0') {
return 0;
}
iVar2 = *(int *)(param_1 + 0xdc);
}
else {
if (*(char *)(param_1 + 0xec) != '\0') {
return 0;
}
iVar2 = *(int *)(param_1 + 0xdc);
}
*(uint *)(iVar2 + 0x500) = uVar4 & 0xffffff00 | param_3;
uVar3 = 0;
}
else {
LAB_000b0354:
uVar3 = 1;
if (RTDebugLevel != 0) {
printk("Retry count exhausted or device removed!!!\n");
uVar3 = 1;
}
}
}
return uVar3;
}