undefined4 SyncTxRxConfig(int param_1,uint param_2,uint param_3)
{
char cVar1;
uint uVar2;
int iVar3;
char *pcVar4;
int iVar5;
uint uVar6;
uint uVar7;
uint uVar8;
uVar2 = Status;
uVar7 = param_2 & 0xffff;
if (*(char *)(param_1 + 0x76a0c) == -0x80) {
uVar6 = 0;
if (*(char *)(param_1 + 0xec) == '\0') {
if (*(int *)(param_1 + 0x29f8) == 4) {
uVar8 = 0;
if (*(char *)(param_1 + 0xad) == '\x01') {
Status = Status & 0xfffffffe;
uVar8 = uVar2 & 1;
}
iVar5 = 0;
cVar1 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
while( true ) {
uVar2 = 0;
if (cVar1 == '\0') {
uVar2 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
}
if ((uVar2 & 0x20000) == 0) {
if (cVar1 == '\0') {
*(uint *)(*(int *)(param_1 + 0xdc) + 0x101c) = (param_2 & 0xff) << 8 | 0xb0000;
}
iVar3 = 1;
while( true ) {
uVar2 = 0;
if (*(char *)(param_1 + 0xec) == '\0') {
uVar2 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
}
if (((uVar2 & 0x20000) == 0) || (iVar3 == 100)) break;
iVar3 = iVar3 + 1;
}
if (((uVar2 & 0x20000) == 0) && ((uVar2 << 0x10) >> 0x18 == uVar7)) {
uVar6 = uVar2 & 0xff;
goto LAB_0009b6ec;
}
}
iVar5 = iVar5 + 1;
if (iVar5 == 100) break;
cVar1 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
}
uVar6 = 0;
LAB_0009b6ec:
if ((int)(uVar2 << 0xe) < 0) {
printk("ERROR!!! ");
printk("BBP(viaMCU=%d) read R%d fail\n",0,uVar7);
uVar6 = (uint)*(byte *)(param_1 + uVar7 + 0x4ac9);
LAB_0009b88c:
cVar1 = *(char *)(param_1 + 0xad) //possible issue identified - semgrep
}
else {
cVar1 = *(char *)(param_1 + 0xad) //possible issue identified - semgrep
}
}
else {
uVar8 = 0;
if (*(char *)(param_1 + 0xad) == '\x01') {
Status = Status & 0xfffffffe;
uVar8 = uVar2 & 1;
}
iVar5 = 0;
cVar1 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
while( true ) {
uVar2 = 0;
if (cVar1 == '\0') {
uVar2 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028);
}
if ((uVar2 & 0x20000) == 0) {
if (cVar1 == '\0') {
*(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) = (param_2 & 0xff) << 8 | 0xb0000;
}
AsicSendCommandToMcuBBP(param_1,0x80,0xff,0,0,0);
RTMPusecDelay(1000);
iVar3 = 1;
while( true ) {
uVar2 = 0;
if (*(char *)(param_1 + 0xec) == '\0') {
uVar2 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028);
}
if (((uVar2 & 0x20000) == 0) || (iVar3 == 100)) break;
iVar3 = iVar3 + 1;
}
if (((uVar2 & 0x20000) == 0) && ((uVar2 << 0x10) >> 0x18 == uVar7)) {
uVar6 = uVar2 & 0xff;
goto LAB_0009b830;
}
}
iVar5 = iVar5 + 1;
if (iVar5 == 100) break;
cVar1 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
}
uVar6 = 0;
LAB_0009b830:
if ((int)(uVar2 << 0xe) < 0) {
printk("ERROR!!! ");
printk("BBP(viaMCU=%d) read R%d fail\n",1,uVar7);
uVar6 = (uint)*(byte *)(param_1 + uVar7 + 0x4ac9);
if (*(char *)(param_1 + 0xec) == '\0') {
*(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) =
*(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) & 0xfffdffff;
}
goto LAB_0009b88c;
}
cVar1 = *(char *)(param_1 + 0xad) //possible issue identified - semgrep
}
if ((cVar1 == '\x01') && (Status = Status & 0xfffffffe, uVar8 != 0)) {
Status = Status | 1;
}
}
}
else {
iVar5 = 0;
cVar1 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
while( true ) {
uVar2 = 0;
if (cVar1 == '\0') {
uVar2 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
}
if ((uVar2 & 0x20000) == 0) {
if (cVar1 == '\0') {
*(uint *)(*(int *)(param_1 + 0xdc) + 0x101c) = (param_2 & 0xff) << 8 | 0xb0000;
}
iVar3 = 1;
while( true ) {
uVar2 = 0;
if (*(char *)(param_1 + 0xec) == '\0') {
uVar2 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
}
if (((uVar2 & 0x20000) == 0) || (iVar3 == 100)) break;
iVar3 = iVar3 + 1;
}
if (((uVar2 & 0x20000) == 0) && ((uVar2 << 0x10) >> 0x18 == uVar7)) {
uVar6 = uVar2 & 0xff;
goto LAB_0009b5c0;
}
}
iVar5 = iVar5 + 1;
if (iVar5 == 100) break;
cVar1 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
}
uVar6 = 0;
LAB_0009b5c0:
if ((int)(uVar2 << 0xe) < 0) {
if (RTDebugLevel != 0) {
printk("BBP read R%d fail\n",uVar7);
}
uVar6 = (uint)*(byte *)(param_1 + uVar7 + 0x4ac9);
}
}
if (uVar6 != (param_3 & 0xff)) {
printk("<4>/home/eric/release/dir600b5/progs.priv/rt2860v2/build/rt2860v2_ap/../rt2860v2/common/rt_ate.c:%d assert bbp_data == valuefailed\n"
,0x97a);
}
if (uVar7 == 1) {
uVar2 = (uVar6 << 0x1b) >> 0x1e;
if (uVar2 == 1) {
*(undefined1 *)(param_1 + 0x76a11) = 2;
return 1;
}
if (uVar2 == 0) {
*(char *)(param_1 + 0x76a11) = (char)uVar7;
return 1;
}
if (uVar2 == 2) {
*(undefined1 *)(param_1 + 0x76a11) = 0;
return 1;
}
if (RTDebugLevel < 3) {
return 0;
}
}
else {
if (uVar7 == 3) {
uVar2 = uVar6 & 3;
if (uVar2 == 1) {
*(undefined1 *)(param_1 + 0x76a12) = 2;
return 1;
}
if (uVar2 == 0) {
*(undefined1 *)(param_1 + 0x76a12) = 1;
if ((uVar6 << 0x1b) >> 0x1e == 2) {
*(undefined1 *)(param_1 + 0x76a12) = 0;
return 1;
}
return 1;
}
if (uVar2 == 2) {
*(char *)(param_1 + 0x76a12) = (char)uVar7;
return 1;
}
if (uVar2 == 3) {
*(undefined1 *)(param_1 + 0x76a12) = 0;
return 1;
}
if (RTDebugLevel == 0) {
return 0;
}
pcVar4 = "%s -- Impossible! : return FALSE; \n";
goto LAB_0009b9ec;
}
if (RTDebugLevel == 0) {
return 0;
}
}
pcVar4 = "%s -- Sth. wrong! : return FALSE; \n";
LAB_0009b9ec:
printk(pcVar4,"SyncTxRxConfig");
return 0;
}