void RtmpUpdateFilterCoefficientControl(int param_1,char param_2)

{
  int iVar1;
  char cVar2;
  uint uVar3;
  uint uVar4;
  int iVar5;
  uint uVar6;
  
  uVar3 = Status;
  if (param_2 != '\x0e') {
    return;
  }
  if (*(char *)(param_1 + 0x16982) != '\x01') {
    uVar4 = 0;
    if (*(char *)(param_1 + 0xec) == '\0') {
      if (*(int *)(param_1 + 0x29f8) == 4) {
        uVar6 = 0;
        if (*(char *)(param_1 + 0xad) == '\x01') {
          Status = Status & 0xfffffffe;
          uVar6 = uVar3 & 1;
        }
        iVar5 = 0;
        cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
        while( true ) {
          uVar3 = 0;
          if (cVar2 == '\0') {
            uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
          }
          if ((uVar3 & 0x20000) == 0) {
            if (cVar2 == '\0') {
              *(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x101c) = 0xb0400;
            }
            iVar1 = 1;
            while( true ) {
              uVar3 = 0;
              if (*(char *)(param_1 + 0xec) == '\0') {
                uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
              }
              if (((uVar3 & 0x20000) == 0) || (iVar1 == 100)) break;
              iVar1 = iVar1 + 1;
            }
            if ((uVar3 & 0x2ff00) == 0x400) {
              uVar4 = uVar3 & 0xff;
              goto LAB_0004ffbc;
            }
          }
          iVar5 = iVar5 + 1;
          if (iVar5 == 100) break;
          cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
        }
        uVar4 = 0;
LAB_0004ffbc:
        if ((int)(uVar3 << 0xe) < 0) {
          printk("ERROR!!! ");
          printk("BBP(viaMCU=%d) read R%d fail\n",0,4);
          uVar4 = (uint)*(byte *)(param_1 + 0x4acd);
LAB_00050150:
          cVar2 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
        }
        else {
          cVar2 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
        }
      }
      else {
        uVar6 = 0;
        if (*(char *)(param_1 + 0xad) == '\x01') {
          Status = Status & 0xfffffffe;
          uVar6 = uVar3 & 1;
        }
        iVar5 = 0;
        cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
        while( true ) {
          uVar3 = 0;
          if (cVar2 == '\0') {
            uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028);
          }
          if ((uVar3 & 0x20000) == 0) {
            if (cVar2 == '\0') {
              *(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x7028) = 0xb0400;
            }
            AsicSendCommandToMcuBBP(param_1,0x80,0xff,0,0,0);
            RTMPusecDelay(1000);
            iVar1 = 1;
            while( true ) {
              uVar3 = 0;
              if (*(char *)(param_1 + 0xec) == '\0') {
                uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028);
              }
              if (((uVar3 & 0x20000) == 0) || (iVar1 == 100)) break;
              iVar1 = iVar1 + 1;
            }
            if ((uVar3 & 0x2ff00) == 0x400) {
              uVar4 = uVar3 & 0xff;
              goto LAB_000500f8;
            }
          }
          iVar5 = iVar5 + 1;
          if (iVar5 == 100) break;
          cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
        }
        uVar4 = 0;
LAB_000500f8:
        if ((int)(uVar3 << 0xe) < 0) {
          printk("ERROR!!! ");
          printk("BBP(viaMCU=%d) read R%d fail\n",1,4);
          uVar4 = (uint)*(byte *)(param_1 + 0x4acd);
          if (*(char *)(param_1 + 0xec) == '\0') {
            *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) =
                 *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) & 0xfffdffff;
          }
          goto LAB_00050150;
        }
        cVar2 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
      }
      if (cVar2 == '\x01') {
        Status = Status & 0xfffffffe;
        if (uVar6 != 0) {
          Status = Status | 1;
        }
        goto LAB_00050174;
      }
      cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
    }
    else {
LAB_00050174:
      cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
    }
    uVar3 = Status;
    if (cVar2 != '\0') {
      return;
    }
    uVar4 = uVar4 & 0xdf;
    if (*(int *)(param_1 + 0x29f8) != 4) {
      uVar6 = 0;
      if (*(char *)(param_1 + 0xad) == '\x01') {
        Status = Status & 0xfffffffe;
        uVar6 = uVar3 & 1;
      }
      iVar5 = 1;
      cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
      while( true ) {
        uVar3 = 0;
        if (cVar2 == '\0') {
          uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028);
        }
        if ((uVar3 & 0x20000) == 0) goto LAB_0005031c;
        iVar1 = iVar5 % 0x14;
        iVar5 = iVar5 + 1;
        if ((iVar1 == 0) && (cVar2 == '\0')) {
          *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) = uVar3 & 0xfffdffff;
        }
        printk(&_LC28)   //possible issue identified - semgrep
        if (iVar5 == 100) break;
        cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
      }
      goto LAB_000503c4;
    }
    uVar6 = 0;
    if (*(char *)(param_1 + 0xad) == '\x01') {
      Status = Status & 0xfffffffe;
      uVar6 = uVar3 & 1;
    }
    iVar5 = 1;
    cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
    while( true ) {
      uVar3 = 0;
      if (cVar2 == '\0') {
        uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
      }
      if ((uVar3 & 0x20000) == 0) goto LAB_00050204;
      iVar5 = iVar5 + 1;
      printk(&_LC28)   //possible issue identified - semgrep
      if (iVar5 == 100) break;
      cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
    }
    goto LAB_00050248;
  }
  uVar4 = 0;
  if (*(char *)(param_1 + 0xec) == '\0') {
    if (*(int *)(param_1 + 0x29f8) == 4) {
      uVar6 = 0;
      if (*(char *)(param_1 + 0xad) == '\x01') {
        Status = Status & 0xfffffffe;
        uVar6 = uVar3 & 1;
      }
      iVar5 = 0;
      cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
      while( true ) {
        uVar3 = 0;
        if (cVar2 == '\0') {
          uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
        }
        if ((uVar3 & 0x20000) == 0) {
          if (cVar2 == '\0') {
            *(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x101c) = 0xb0400;
          }
          iVar1 = 1;
          while( true ) {
            uVar3 = 0;
            if (*(char *)(param_1 + 0xec) == '\0') {
              uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
            }
            if (((uVar3 & 0x20000) == 0) || (iVar1 == 100)) break;
            iVar1 = iVar1 + 1;
          }
          if ((uVar3 & 0x2ff00) == 0x400) {
            uVar4 = uVar3 & 0xff;
            goto LAB_0004fbf4;
          }
        }
        iVar5 = iVar5 + 1;
        if (iVar5 == 100) break;
        cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
      }
      uVar4 = 0;
LAB_0004fbf4:
      if ((int)(uVar3 << 0xe) < 0) {
        printk("ERROR!!! ");
        printk("BBP(viaMCU=%d) read R%d fail\n",0,4);
        uVar4 = (uint)*(byte *)(param_1 + 0x4acd);
LAB_0004fd88:
        cVar2 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
      }
      else {
        cVar2 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
      }
    }
    else {
      uVar6 = 0;
      if (*(char *)(param_1 + 0xad) == '\x01') {
        Status = Status & 0xfffffffe;
        uVar6 = uVar3 & 1;
      }
      iVar5 = 0;
      cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
      while( true ) {
        uVar3 = 0;
        if (cVar2 == '\0') {
          uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028);
        }
        if ((uVar3 & 0x20000) == 0) {
          if (cVar2 == '\0') {
            *(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x7028) = 0xb0400;
          }
          AsicSendCommandToMcuBBP(param_1,0x80,0xff,0,0,0);
          RTMPusecDelay(1000);
          iVar1 = 1;
          while( true ) {
            uVar3 = 0;
            if (*(char *)(param_1 + 0xec) == '\0') {
              uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028);
            }
            if (((uVar3 & 0x20000) == 0) || (iVar1 == 100)) break;
            iVar1 = iVar1 + 1;
          }
          if ((uVar3 & 0x2ff00) == 0x400) {
            uVar4 = uVar3 & 0xff;
            goto LAB_0004fd30;
          }
        }
        iVar5 = iVar5 + 1;
        if (iVar5 == 100) break;
        cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
      }
      uVar4 = 0;
LAB_0004fd30:
      if ((int)(uVar3 << 0xe) < 0) {
        printk("ERROR!!! ");
        printk("BBP(viaMCU=%d) read R%d fail\n",1,4);
        uVar4 = (uint)*(byte *)(param_1 + 0x4acd);
        if (*(char *)(param_1 + 0xec) == '\0') {
          *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) =
               *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) & 0xfffdffff;
        }
        goto LAB_0004fd88;
      }
      cVar2 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
    }
    if (cVar2 == '\x01') {
      Status = Status & 0xfffffffe;
      if (uVar6 != 0) {
        Status = Status | 1;
      }
      goto LAB_0004fdac;
    }
    cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
  }
  else {
LAB_0004fdac:
    cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
  }
  uVar3 = Status;
  if (cVar2 != '\0') {
    return;
  }
  uVar4 = uVar4 | 0x20;
  if (*(int *)(param_1 + 0x29f8) != 4) {
    uVar6 = 0;
    if (*(char *)(param_1 + 0xad) == '\x01') {
      Status = Status & 0xfffffffe;
      uVar6 = uVar3 & 1;
    }
    iVar5 = 1;
    cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
    while( true ) {
      uVar3 = 0;
      if (cVar2 == '\0') {
        uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028);
      }
      if ((uVar3 & 0x20000) == 0) goto LAB_0005031c;
      iVar1 = iVar5 % 0x14;
      iVar5 = iVar5 + 1;
      if ((iVar1 == 0) && (cVar2 == '\0')) {
        *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) = uVar3 & 0xfffdffff;
      }
      printk(&_LC28)   //possible issue identified - semgrep
      if (iVar5 == 100) break;
      cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
    }
    goto LAB_000503c4;
  }
  uVar6 = 0;
  if (*(char *)(param_1 + 0xad) == '\x01') {
    Status = Status & 0xfffffffe;
    uVar6 = uVar3 & 1;
  }
  iVar5 = 1;
  cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
  while( true ) {
    uVar3 = 0;
    if (cVar2 == '\0') {
      uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
    }
    if ((uVar3 & 0x20000) == 0) goto LAB_00050204;
    iVar5 = iVar5 + 1;
    printk(&_LC28)   //possible issue identified - semgrep
    if (iVar5 == 100) break;
    cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
  }
LAB_00050248:
  printk("ERROR!!! ");
  printk("BBP write R%d fail\n",4);
LAB_00050268:
  if (*(char *)(param_1 + 0xad) == '\x01') {
LAB_00050420:
    Status = Status & 0xfffffffe;
    if (uVar6 != 0) {
      Status = Status | 1;
    }
  }
  return;
LAB_0005031c:
  if (cVar2 == '\0') {
    *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) = uVar4 | 0xa0400;
  }
  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) = uVar4 | 0x80400;
  }
  *(char *)(param_1 + 0x4acd) = (char)uVar4;
  if (iVar5 == 100) {
LAB_000503c4:
    printk("ERROR!!! ");
    printk("BBP write R%d fail\n",4);
    if (*(char *)(param_1 + 0xec) == '\0') {
      *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) =
           *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) & 0xfffdffff;
      goto LAB_0005040c;
    }
    cVar2 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
  }
  else {
LAB_0005040c:
    cVar2 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
  }
  if (cVar2 != '\x01') {
    return;
  }
  goto LAB_00050420;
LAB_00050204:
  if (cVar2 == '\0') {
    *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c) = uVar4 | 0xa0400;
  }
  *(char *)(param_1 + 0x4acd) = (char)uVar4;
  if (iVar5 == 100) goto LAB_00050248;
  goto LAB_00050268;
}