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;
}