void AsicSetAGCInitValue(int param_1,char param_2)
{
int iVar1;
byte bVar2;
char cVar3;
uint uVar4;
int iVar5;
uint uVar6;
uint uVar7;
uVar4 = Status;
bVar2 = *(byte *)(param_1 + 0x4be0);
if (bVar2 < 0xf) {
if (*(char *)(param_1 + 0xec) != '\0') {
return;
}
bVar2 = *(char *)(param_1 + 0x50e4) + 0x2e;
uVar7 = (uint)bVar2;
if (*(int *)(param_1 + 0x29f8) == 4) {
uVar6 = 0;
if (*(char *)(param_1 + 0xad) == '\x01') {
Status = Status & 0xfffffffe;
uVar6 = uVar4 & 1;
}
iVar5 = 1;
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) = uVar7 | 0xa4200;
*(byte *)(param_1 + 0x4b0b) = bVar2;
}
else {
*(byte *)(param_1 + 0x4b0b) = bVar2;
}
goto LAB_0005acc8;
}
iVar5 = iVar5 + 1;
printk(&_LC19) //possible issue identified - semgrep
if (iVar5 == 100) break;
cVar3 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
}
goto LAB_0005acd8;
}
uVar6 = 0;
if (*(char *)(param_1 + 0xad) == '\x01') {
Status = Status & 0xfffffffe;
uVar6 = uVar4 & 1;
}
iVar5 = 1;
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) break;
iVar1 = iVar5 % 0x14;
iVar5 = iVar5 + 1;
if ((iVar1 == 0) && (cVar3 == '\0')) {
*(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) = uVar4 & 0xfffdffff;
}
printk(&_LC19) //possible issue identified - semgrep
if (iVar5 == 100) goto LAB_0005aa04;
cVar3 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
}
if (cVar3 == '\0') {
*(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) = uVar7 | 0xa4200;
}
iVar1 = AsicSendCommandToMcuBBP(param_1,0x80,0xff,0,0,0);
if (*(char *)(param_1 + 0x16964) == '\x01') {
RTMPusecDelay(1000);
}
if ((iVar1 == 0) && (*(char *)(param_1 + 0xec) == '\0')) {
*(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) = uVar7 | 0x84200;
}
*(byte *)(param_1 + 0x4b0b) = bVar2;
if (iVar5 != 100) goto LAB_0005aa4c;
LAB_0005aa04:
printk("ERROR!!! ");
printk("BBP write R%d fail\n",0x42);
if (*(char *)(param_1 + 0xec) == '\0') {
*(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) =
*(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) & 0xfffdffff;
LAB_0005aa4c:
cVar3 = *(char *)(param_1 + 0xad) //possible issue identified - semgrep
}
else {
cVar3 = *(char *)(param_1 + 0xad) //possible issue identified - semgrep
}
goto joined_r0x0005aa54;
}
if (param_2 == '\0') {
if (bVar2 < 0x41) {
iVar5 = (int)*(char *)(param_1 + 0x50e5);
}
else if (bVar2 < 0x81) {
iVar5 = (int)*(char *)(param_1 + 0x50e6);
}
else {
iVar5 = (int)*(char *)(param_1 + 0x50e7);
}
uVar7 = (iVar5 * 5) / 3 + 0x32U & 0xff;
if (*(char *)(param_1 + 0xec) != '\0') {
return;
}
if (*(int *)(param_1 + 0x29f8) != 4) {
uVar6 = 0;
if (*(char *)(param_1 + 0xad) == '\x01') {
Status = Status & 0xfffffffe;
uVar6 = uVar4 & 1;
}
iVar5 = 1;
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) goto LAB_0005adac;
iVar1 = iVar5 % 0x14;
iVar5 = iVar5 + 1;
if ((iVar1 == 0) && (cVar3 == '\0')) {
*(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) = uVar4 & 0xfffdffff;
}
printk(&_LC19) //possible issue identified - semgrep
if (iVar5 == 100) break;
cVar3 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
}
LAB_0005ae54:
printk("ERROR!!! ");
printk("BBP write R%d fail\n",0x42);
if (*(char *)(param_1 + 0xec) == '\0') {
*(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) =
*(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) & 0xfffdffff;
goto LAB_0005ae9c;
}
cVar3 = *(char *)(param_1 + 0xad) //possible issue identified - semgrep
goto joined_r0x0005aa54;
}
uVar6 = 0;
if (*(char *)(param_1 + 0xad) == '\x01') {
Status = Status & 0xfffffffe;
uVar6 = uVar4 & 1;
}
iVar5 = 1;
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) goto LAB_0005ac90;
iVar5 = iVar5 + 1;
printk(&_LC19) //possible issue identified - semgrep
if (iVar5 == 100) break;
cVar3 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
}
}
else {
if (bVar2 < 0x41) {
iVar5 = (int)*(char *)(param_1 + 0x50e5);
}
else if (bVar2 < 0x81) {
iVar5 = (int)*(char *)(param_1 + 0x50e6);
}
else {
iVar5 = (int)*(char *)(param_1 + 0x50e7);
}
uVar7 = (iVar5 * 5) / 3 + 0x3aU & 0xff;
if (*(char *)(param_1 + 0xec) != '\0') {
return;
}
if (*(int *)(param_1 + 0x29f8) != 4) {
uVar6 = 0;
if (*(char *)(param_1 + 0xad) == '\x01') {
Status = Status & 0xfffffffe;
uVar6 = uVar4 & 1;
}
iVar5 = 1;
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) goto LAB_0005adac;
iVar1 = iVar5 % 0x14;
iVar5 = iVar5 + 1;
if ((iVar1 == 0) && (cVar3 == '\0')) {
*(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) = uVar4 & 0xfffdffff;
}
printk(&_LC19) //possible issue identified - semgrep
if (iVar5 == 100) break;
cVar3 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
}
goto LAB_0005ae54;
}
uVar6 = 0;
if (*(char *)(param_1 + 0xad) == '\x01') {
Status = Status & 0xfffffffe;
uVar6 = uVar4 & 1;
}
iVar5 = 1;
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) goto LAB_0005ac90;
iVar5 = iVar5 + 1;
printk(&_LC19) //possible issue identified - semgrep
if (iVar5 == 100) break;
cVar3 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
}
}
LAB_0005acd8:
printk("ERROR!!! ");
printk("BBP write R%d fail\n",0x42);
cVar3 = *(char *)(param_1 + 0xad) //possible issue identified - semgrep
goto LAB_0005acfc;
LAB_0005adac:
if (cVar3 == '\0') {
*(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) = uVar7 | 0xa4200;
}
iVar1 = AsicSendCommandToMcuBBP(param_1,0x80,0xff,0,0,0);
if (*(char *)(param_1 + 0x16964) == '\x01') {
RTMPusecDelay(1000);
}
if ((iVar1 == 0) && (*(char *)(param_1 + 0xec) == '\0')) {
*(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) = uVar7 | 0x84200;
}
*(char *)(param_1 + 0x4b0b) = (char)uVar7;
if (iVar5 == 100) goto LAB_0005ae54;
LAB_0005ae9c:
cVar3 = *(char *)(param_1 + 0xad) //possible issue identified - semgrep
joined_r0x0005aa54:
if (cVar3 != '\x01') {
return;
}
goto LAB_0005aeb0;
LAB_0005ac90:
if (cVar3 == '\0') {
*(uint *)(*(int *)(param_1 + 0xdc) + 0x101c) = uVar7 | 0xa4200;
*(char *)(param_1 + 0x4b0b) = (char)uVar7;
}
else {
*(char *)(param_1 + 0x4b0b) = (char)uVar7;
}
LAB_0005acc8:
if (iVar5 == 100) goto LAB_0005acd8;
cVar3 = *(char *)(param_1 + 0xad) //possible issue identified - semgrep
LAB_0005acfc:
if (cVar3 == '\x01') {
LAB_0005aeb0:
Status = Status & 0xfffffffe;
if (uVar6 != 0) {
Status = Status | 1;
}
}
return;
}