void APAsicRxAntEvalTimeout(int param_1)
{
char cVar1;
int iVar2;
char cVar3;
undefined1 uVar4;
char cVar5;
uint uVar6;
uint uVar7;
int iVar8;
uint uVar9;
uVar6 = Status;
if (*(char *)(param_1 + 0x76a0c) != -0x80) {
return;
}
if (*(char *)(param_1 + 0x1f0fd) == '\x01') {
cVar5 = *(char *)(param_1 + 0x165f6) //possible issue identified - semgrep
cVar1 = *(char *)(param_1 + 0x165f4) //possible issue identified - semgrep
cVar3 = *(char *)(param_1 + 0x165f5) //possible issue identified - semgrep
}
else {
cVar5 = *(char *)(param_1 + 0x165f9) //possible issue identified - semgrep
cVar1 = *(char *)(param_1 + 0x165f7) //possible issue identified - semgrep
cVar3 = *(char *)(param_1 + 0x165f8) //possible issue identified - semgrep
}
if ((*(uint *)(param_1 + 0x4bf4) & 0xf) == 3) {
if (cVar3 < cVar1) {
cVar3 = cVar1;
}
if (cVar5 + 0x14 < (int)cVar3) {
uVar4 = 2;
}
else {
uVar4 = 3;
}
*(undefined1 *)(param_1 + 0x1f0fc) = uVar4;
cVar5 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
}
else {
cVar5 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
}
uVar7 = 0;
if (cVar5 != '\0') goto LAB_00071a0c;
if (*(int *)(param_1 + 0x29f8) == 4) {
uVar9 = 0;
if (*(char *)(param_1 + 0xad) == '\x01') {
Status = Status & 0xfffffffe;
uVar9 = uVar6 & 1;
}
iVar8 = 0;
cVar5 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
while( true ) {
uVar6 = 0;
if (cVar5 == '\0') {
uVar6 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
}
if ((uVar6 & 0x20000) == 0) {
if (cVar5 == '\0') {
*(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x101c) = 0xb0300;
}
iVar2 = 1;
while( true ) {
uVar6 = 0;
if (*(char *)(param_1 + 0xec) == '\0') {
uVar6 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
}
if (((uVar6 & 0x20000) == 0) || (iVar2 == 100)) break;
iVar2 = iVar2 + 1;
}
if ((uVar6 & 0x2ff00) == 0x300) {
uVar7 = uVar6 & 0xff;
goto LAB_0007184c;
}
}
iVar8 = iVar8 + 1;
if (iVar8 == 100) break;
cVar5 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
}
uVar7 = 0;
LAB_0007184c:
if ((int)(uVar6 << 0xe) < 0) {
printk("ERROR!!! ");
printk("BBP(viaMCU=%d) read R%d fail\n",0,3);
uVar7 = (uint)*(byte *)(param_1 + 0x4acc);
LAB_000719e4:
cVar5 = *(char *)(param_1 + 0xad) //possible issue identified - semgrep
}
else {
cVar5 = *(char *)(param_1 + 0xad) //possible issue identified - semgrep
}
}
else {
uVar9 = 0;
if (*(char *)(param_1 + 0xad) == '\x01') {
Status = Status & 0xfffffffe;
uVar9 = uVar6 & 1;
}
iVar8 = 0;
cVar5 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
while( true ) {
uVar6 = 0;
if (cVar5 == '\0') {
uVar6 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028);
}
if ((uVar6 & 0x20000) == 0) {
if (cVar5 == '\0') {
*(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x7028) = 0xb0300;
}
AsicSendCommandToMcuBBP(param_1,0x80,0xff,0,0,0);
RTMPusecDelay(1000);
iVar2 = 1;
while( true ) {
uVar6 = 0;
if (*(char *)(param_1 + 0xec) == '\0') {
uVar6 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028);
}
if (((uVar6 & 0x20000) == 0) || (iVar2 == 100)) break;
iVar2 = iVar2 + 1;
}
if ((uVar6 & 0x2ff00) == 0x300) {
uVar7 = uVar6 & 0xff;
goto LAB_0007198c;
}
}
iVar8 = iVar8 + 1;
if (iVar8 == 100) break;
cVar5 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
}
uVar7 = 0;
LAB_0007198c:
if ((int)(uVar6 << 0xe) < 0) {
printk("ERROR!!! ");
printk("BBP(viaMCU=%d) read R%d fail\n",1,3);
uVar7 = (uint)*(byte *)(param_1 + 0x4acc);
if (*(char *)(param_1 + 0xec) == '\0') {
*(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) =
*(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) & 0xfffdffff;
}
goto LAB_000719e4;
}
cVar5 = *(char *)(param_1 + 0xad) //possible issue identified - semgrep
}
if ((cVar5 == '\x01') && (Status = Status & 0xfffffffe, uVar9 != 0)) {
Status = Status | 1;
}
LAB_00071a0c:
uVar6 = Status;
uVar7 = uVar7 & 0xe7;
if (*(char *)(param_1 + 0x1f0fc) == '\x03') {
uVar7 = uVar7 | 0x10;
}
else if (*(char *)(param_1 + 0x1f0fc) == '\x02') {
uVar7 = uVar7 | 8;
}
if (*(char *)(param_1 + 0xec) == '\0') {
if (*(int *)(param_1 + 0x29f8) == 4) {
uVar9 = 0;
if (*(char *)(param_1 + 0xad) == '\x01') {
Status = Status & 0xfffffffe;
uVar9 = uVar6 & 1;
}
iVar8 = 1;
cVar5 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
while( true ) {
uVar6 = 0;
if (cVar5 == '\0') {
uVar6 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
}
if ((uVar6 & 0x20000) == 0) break;
iVar8 = iVar8 + 1;
printk(&_LC2) //possible issue identified - semgrep
if (iVar8 == 100) goto LAB_00071b04;
cVar5 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
}
if (cVar5 == '\0') {
*(uint *)(*(int *)(param_1 + 0xdc) + 0x101c) = uVar7 | 0xa0300;
}
*(char *)(param_1 + 0x4acc) = (char)uVar7;
if (iVar8 != 100) goto LAB_00071b24;
LAB_00071b04:
printk("ERROR!!! ");
printk("BBP write R%d fail\n",3);
LAB_00071b24:
cVar5 = *(char *)(param_1 + 0xad) //possible issue identified - semgrep
}
else {
uVar9 = 0;
if (*(char *)(param_1 + 0xad) == '\x01') {
Status = Status & 0xfffffffe;
uVar9 = uVar6 & 1;
}
iVar8 = 1;
cVar5 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
while( true ) {
uVar6 = 0;
if (cVar5 == '\0') {
uVar6 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028);
}
if ((uVar6 & 0x20000) == 0) break;
iVar2 = iVar8 % 0x14;
iVar8 = iVar8 + 1;
if ((iVar2 == 0) && (cVar5 == '\0')) {
*(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) = uVar6 & 0xfffdffff;
}
printk(&_LC2) //possible issue identified - semgrep
if (iVar8 == 100) goto LAB_00071c80;
cVar5 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
}
if (cVar5 == '\0') {
*(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) = uVar7 | 0xa0300;
}
iVar2 = AsicSendCommandToMcuBBP(param_1,0x80,0xff,0,0,0);
if (*(char *)(param_1 + 0x16964) == '\x01') {
RTMPusecDelay(1000);
}
if ((iVar2 == 0) && (*(char *)(param_1 + 0xec) == '\0')) {
*(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) = uVar7 | 0x80300;
}
*(char *)(param_1 + 0x4acc) = (char)uVar7;
if (iVar8 != 100) goto LAB_00071cc8;
LAB_00071c80:
printk("ERROR!!! ");
printk("BBP write R%d fail\n",3);
if (*(char *)(param_1 + 0xec) == '\0') {
*(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) =
*(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) & 0xfffdffff;
LAB_00071cc8:
cVar5 = *(char *)(param_1 + 0xad) //possible issue identified - semgrep
}
else {
cVar5 = *(char *)(param_1 + 0xad) //possible issue identified - semgrep
}
}
if ((cVar5 == '\x01') && (Status = Status & 0xfffffffe, uVar9 != 0)) {
Status = Status | 1;
}
}
return;
}