undefined4 DO_RACFG_CMD_BBP_READ8(int param_1,undefined4 param_2,int param_3)
{
uint uVar1;
uint uVar2;
char cVar3;
uint uVar4;
undefined1 uVar5;
int iVar6;
int iVar7;
uint uVar8;
uVar4 = Status;
uVar1 = (uint)(*(ushort *)(param_3 + 0xc) >> 8);
uVar2 = (*(ushort *)(param_3 + 0xc) & 0xff) << 8 | uVar1;
if (*(char *)(param_1 + 0x76a0c) == -0x80) {
uVar5 = 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 = uVar4 & 1;
}
iVar7 = 0;
cVar3 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
while( true ) {
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) = uVar1 << 8 | 0xb0000;
}
iVar6 = 1;
while( true ) {
uVar4 = 0;
if (*(char *)(param_1 + 0xec) == '\0') {
uVar4 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
}
if (((uVar4 & 0x20000) == 0) || (iVar6 == 100)) break;
iVar6 = iVar6 + 1;
}
if (((uVar4 & 0x20000) == 0) && ((uVar4 << 0x10) >> 0x18 == uVar2)) {
uVar5 = (undefined1)uVar4;
goto LAB_0009a898;
}
}
iVar7 = iVar7 + 1;
if (iVar7 == 100) break;
cVar3 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
}
uVar5 = 0;
LAB_0009a898:
if ((int)(uVar4 << 0xe) < 0) {
printk("ERROR!!! ");
printk("BBP(viaMCU=%d) read R%d fail\n",0,uVar2);
uVar5 = *(undefined1 *)(param_1 + uVar2 + 0x4ac9);
LAB_0009aa38:
cVar3 = *(char *)(param_1 + 0xad) //possible issue identified - semgrep
}
else {
cVar3 = *(char *)(param_1 + 0xad) //possible issue identified - semgrep
}
}
else {
uVar8 = 0;
if (*(char *)(param_1 + 0xad) == '\x01') {
Status = Status & 0xfffffffe;
uVar8 = uVar4 & 1;
}
iVar7 = 0;
cVar3 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
while( true ) {
uVar4 = 0;
if (cVar3 == '\0') {
uVar4 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028);
}
if ((uVar4 & 0x20000) == 0) {
if (cVar3 == '\0') {
*(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) = uVar1 << 8 | 0xb0000;
}
AsicSendCommandToMcuBBP(param_1,0x80,0xff,0,0,0);
RTMPusecDelay(1000);
iVar6 = 1;
while( true ) {
uVar4 = 0;
if (*(char *)(param_1 + 0xec) == '\0') {
uVar4 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028);
}
if (((uVar4 & 0x20000) == 0) || (iVar6 == 100)) break;
iVar6 = iVar6 + 1;
}
if (((uVar4 & 0x20000) == 0) && ((uVar4 << 0x10) >> 0x18 == uVar2)) {
uVar5 = (undefined1)uVar4;
goto LAB_0009a9dc;
}
}
iVar7 = iVar7 + 1;
if (iVar7 == 100) break;
cVar3 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
}
uVar5 = 0;
LAB_0009a9dc:
if ((int)(uVar4 << 0xe) < 0) {
printk("ERROR!!! ");
printk("BBP(viaMCU=%d) read R%d fail\n",1,uVar2);
uVar5 = *(undefined1 *)(param_1 + uVar2 + 0x4ac9);
if (*(char *)(param_1 + 0xec) == '\0') {
*(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) =
*(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) & 0xfffdffff;
}
goto LAB_0009aa38;
}
cVar3 = *(char *)(param_1 + 0xad) //possible issue identified - semgrep
}
if (cVar3 != '\x01') {
*(undefined1 *)(param_3 + 0xe) = uVar5;
goto LAB_0009aa60;
}
Status = Status & 0xfffffffe;
if (uVar8 != 0) {
Status = Status | 1;
}
}
}
else {
iVar7 = 0;
cVar3 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
while( true ) {
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) = uVar1 << 8 | 0xb0000;
}
iVar6 = 1;
while( true ) {
uVar4 = 0;
if (*(char *)(param_1 + 0xec) == '\0') {
uVar4 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
}
if (((uVar4 & 0x20000) == 0) || (iVar6 == 100)) break;
iVar6 = iVar6 + 1;
}
if (((uVar4 & 0x20000) == 0) && ((uVar4 << 0x10) >> 0x18 == uVar2)) {
uVar5 = (undefined1)uVar4;
goto LAB_0009a770;
}
}
iVar7 = iVar7 + 1;
if (iVar7 == 100) break;
cVar3 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
}
uVar5 = 0;
LAB_0009a770:
if ((int)(uVar4 << 0xe) < 0) {
if (RTDebugLevel != 0) {
printk("BBP read R%d fail\n",uVar2);
}
uVar5 = *(undefined1 *)(param_1 + uVar2 + 0x4ac9);
}
}
*(undefined1 *)(param_3 + 0xe) = uVar5;
LAB_0009aa60:
ResponseToGUI(param_3,param_2,3,0);
return 0;
}