void AsicAdjustTxPower(int param_1)

{
  char cVar1;
  int iVar2;
  uint uVar3;
  uint uVar4;
  char *pcVar5;
  int iVar6;
  uint uVar7;
  int iVar8;
  uint *puVar9;
  byte bVar10;
  char cVar11;
  int iVar12;
  char local_58;
  undefined1 local_57;
  undefined1 uStack_56;
  char local_55;
  byte local_54 [4];
  undefined2 local_50 [2];
  uint local_4c [9];
  
  local_58 = '\0';
  local_57 = 0;
  local_55 = '\0';
  memset(local_54,0,0x2c)   //possible issue identified - semgrep
  if ((*(uint *)(param_1 + 0x16a58) != 0xffffffff) && (*(uint *)(param_1 + 0x16a58) < 0x5b)) {
    *(undefined1 *)(param_1 + 0x50ca) = 0;
  }
  AsicGetTxPowerOffset(param_1,local_54);
  AsicGetAutoAgcOffset(param_1,&local_58,&local_55,&uStack_56,&local_57);
  uVar3 = Status;
  uVar4 = 0;
  if (*(char *)(param_1 + 0xec) == '\0') {
    if (*(int *)(param_1 + 0x29f8) == 4) {
      uVar7 = 0;
      if (*(char *)(param_1 + 0xad) == '\x01') {
        Status = Status & 0xfffffffe;
        uVar7 = uVar3 & 1;
      }
      iVar6 = 0;
      cVar11 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
      while( true ) {
        uVar3 = 0;
        if (cVar11 == '\0') {
          uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
        }
        if ((uVar3 & 0x20000) == 0) {
          if (cVar11 == '\0') {
            *(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x101c) = 0xb0100;
          }
          iVar12 = 1;
          while( true ) {
            uVar3 = 0;
            if (*(char *)(param_1 + 0xec) == '\0') {
              uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
            }
            if (((uVar3 & 0x20000) == 0) || (iVar12 == 100)) break;
            iVar12 = iVar12 + 1;
          }
          if ((uVar3 & 0x2ff00) == 0x100) {
            uVar4 = uVar3 & 0xff;
            goto LAB_000519ac;
          }
        }
        iVar6 = iVar6 + 1;
        if (iVar6 == 100) break;
        cVar11 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
      }
      uVar4 = 0;
LAB_000519ac:
      if ((int)(uVar3 << 0xe) < 0) {
        printk("ERROR!!! ");
        printk("BBP(viaMCU=%d) read R%d fail\n",0,1);
        uVar4 = (uint)*(byte *)(param_1 + 0x4aca);
LAB_00051b40:
        cVar11 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
      }
      else {
        cVar11 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
      }
    }
    else {
      uVar7 = 0;
      if (*(char *)(param_1 + 0xad) == '\x01') {
        Status = Status & 0xfffffffe;
        uVar7 = uVar3 & 1;
      }
      iVar6 = 0;
      cVar11 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
      while( true ) {
        uVar3 = 0;
        if (cVar11 == '\0') {
          uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028);
        }
        if ((uVar3 & 0x20000) == 0) {
          if (cVar11 == '\0') {
            *(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x7028) = 0xb0100;
          }
          AsicSendCommandToMcuBBP(param_1,0x80,0xff,0,0,0);
          RTMPusecDelay(1000);
          iVar12 = 1;
          while( true ) {
            uVar3 = 0;
            if (*(char *)(param_1 + 0xec) == '\0') {
              uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028);
            }
            if (((uVar3 & 0x20000) == 0) || (iVar12 == 100)) break;
            iVar12 = iVar12 + 1;
          }
          if ((uVar3 & 0x2ff00) == 0x100) {
            uVar4 = uVar3 & 0xff;
            goto LAB_00051ae8;
          }
        }
        iVar6 = iVar6 + 1;
        if (iVar6 == 100) break;
        cVar11 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
      }
      uVar4 = 0;
LAB_00051ae8:
      if ((int)(uVar3 << 0xe) < 0) {
        printk("ERROR!!! ");
        printk("BBP(viaMCU=%d) read R%d fail\n",1,1);
        uVar4 = (uint)*(byte *)(param_1 + 0x4aca);
        if (*(char *)(param_1 + 0xec) == '\0') {
          *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) =
               *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) & 0xfffdffff;
        }
        goto LAB_00051b40;
      }
      cVar11 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
    }
    if (cVar11 == '\x01') {
      Status = Status & 0xfffffffe;
      if (uVar7 != 0) {
        Status = Status | 1;
      }
      goto LAB_00051b64;
    }
    cVar11 = *(char *)(param_1 + 0x50ca)   //possible issue identified - semgrep
  }
  else {
LAB_00051b64:
    cVar11 = *(char *)(param_1 + 0x50ca)   //possible issue identified - semgrep
  }
  uVar3 = Status;
  if (cVar11 != '\0') goto LAB_000529ec;
  uVar7 = *(uint *)(param_1 + 0x16a58);
  if (uVar7 == 0xffffffff) {
    cVar11 = '\0';
  }
  else if (uVar7 < 0x5b) {
    if (uVar7 < 0x3d) {
      if (uVar7 < 0x1f) {
        cVar11 = -6   //possible issue identified - semgrep
        if ((0xf < uVar7) || (cVar11 = -0xc, uVar7 < 10)) goto LAB_00051be8   //possible issue identified - semgrep
        cVar11 = -6   //possible issue identified - semgrep
      }
      else {
        cVar11 = '\0';
      }
      local_58 = local_58 + -3   //possible issue identified - semgrep
    }
    else {
      cVar11 = '\0';
      local_58 = local_58 + -1   //possible issue identified - semgrep
    }
  }
  else {
    cVar11 = '\0';
  }
LAB_00051be8:
  uVar4 = uVar4 & 0xfc;
  if (*(char *)(param_1 + 0xec) == '\0') {
    if (*(int *)(param_1 + 0x29f8) == 4) {
      uVar7 = 0;
      if (*(char *)(param_1 + 0xad) == '\x01') {
        Status = Status & 0xfffffffe;
        uVar7 = uVar3 & 1;
      }
      iVar6 = 1;
      cVar1 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
      while( true ) {
        uVar3 = 0;
        if (cVar1 == '\0') {
          uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
        }
        if ((uVar3 & 0x20000) == 0) break;
        iVar6 = iVar6 + 1;
        printk(&_LC28)   //possible issue identified - semgrep
        if (iVar6 == 100) goto LAB_00051cb8;
        cVar1 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
      }
      if (cVar1 == '\0') {
        *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c) = uVar4 | 0xa0100;
      }
      *(char *)(param_1 + 0x4aca) = (char)uVar4;
      if (iVar6 != 100) goto LAB_00051cd8;
LAB_00051cb8:
      printk("ERROR!!! ");
      printk("BBP write R%d fail\n",1);
LAB_00051cd8:
      cVar1 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
    }
    else {
      uVar7 = 0;
      if (*(char *)(param_1 + 0xad) == '\x01') {
        Status = Status & 0xfffffffe;
        uVar7 = uVar3 & 1;
      }
      iVar6 = 1;
      cVar1 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
      while( true ) {
        uVar3 = 0;
        if (cVar1 == '\0') {
          uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028);
        }
        if ((uVar3 & 0x20000) == 0) break;
        iVar12 = iVar6 % 0x14;
        iVar6 = iVar6 + 1;
        if ((iVar12 == 0) && (cVar1 == '\0')) {
          *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) = uVar3 & 0xfffdffff;
        }
        printk(&_LC28)   //possible issue identified - semgrep
        if (iVar6 == 100) goto LAB_00051e30;
        cVar1 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
      }
      if (cVar1 == '\0') {
        *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) = uVar4 | 0xa0100;
      }
      iVar12 = AsicSendCommandToMcuBBP(param_1,0x80,0xff,0,0,0);
      if (*(char *)(param_1 + 0x16964) == '\x01') {
        RTMPusecDelay(1000);
      }
      if ((iVar12 == 0) && (*(char *)(param_1 + 0xec) == '\0')) {
        *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) = uVar4 | 0x80100;
      }
      *(char *)(param_1 + 0x4aca) = (char)uVar4;
      if (iVar6 != 100) goto LAB_00051e78;
LAB_00051e30:
      printk("ERROR!!! ");
      printk("BBP write R%d fail\n",1);
      if (*(char *)(param_1 + 0xec) == '\0') {
        *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) =
             *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) & 0xfffdffff;
LAB_00051e78:
        cVar1 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
      }
      else {
        cVar1 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
      }
    }
    if ((cVar1 == '\x01') && (Status = Status & 0xfffffffe, uVar7 != 0)) {
      Status = Status | 1;
    }
  }
  uVar3 = Status;
  local_55 = cVar11 + local_55 + local_58;
  if (*(char *)(param_1 + 0xec) == '\0') {
    if (*(int *)(param_1 + 0x29f8) == 4) {
      uVar7 = 0;
      if (*(char *)(param_1 + 0xad) == '\x01') {
        Status = Status & 0xfffffffe;
        uVar7 = uVar3 & 1;
      }
      iVar6 = 0;
      cVar11 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
LAB_00051efc:
      uVar3 = 0;
      if (cVar11 == '\0') {
        uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
      }
      if ((uVar3 & 0x20000) != 0) {
LAB_00051f88:
        iVar6 = iVar6 + 1;
        if (iVar6 == 100) goto LAB_00051f90;
        cVar11 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
        goto LAB_00051efc;
      }
      if (cVar11 == '\0') {
        *(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x101c) = 0xb0100;
      }
      iVar12 = 1;
      while( true ) {
        uVar3 = 0;
        if (*(char *)(param_1 + 0xec) == '\0') {
          uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
        }
        if (((uVar3 & 0x20000) == 0) || (iVar12 == 100)) break;
        iVar12 = iVar12 + 1;
      }
      if ((uVar3 & 0x2ff00) != 0x100) goto LAB_00051f88;
      uVar4 = uVar3 & 0xff;
LAB_00051f90:
      if ((int)(uVar3 << 0xe) < 0) {
        printk("ERROR!!! ");
        printk("BBP(viaMCU=%d) read R%d fail\n",0,1);
        uVar4 = (uint)*(byte *)(param_1 + 0x4aca);
LAB_00052120:
        cVar11 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
      }
      else {
        cVar11 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
      }
    }
    else {
      uVar7 = 0;
      if (*(char *)(param_1 + 0xad) == '\x01') {
        Status = Status & 0xfffffffe;
        uVar7 = uVar3 & 1;
      }
      iVar6 = 0;
      cVar11 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
LAB_00052000:
      uVar3 = 0;
      if (cVar11 == '\0') {
        uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028);
      }
      if ((uVar3 & 0x20000) != 0) {
LAB_000520c0:
        iVar6 = iVar6 + 1;
        if (iVar6 == 100) goto LAB_000520c8;
        cVar11 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
        goto LAB_00052000;
      }
      if (cVar11 == '\0') {
        *(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x7028) = 0xb0100;
      }
      AsicSendCommandToMcuBBP(param_1,0x80,0xff,0,0,0);
      RTMPusecDelay(1000);
      iVar12 = 1;
      while( true ) {
        uVar3 = 0;
        if (*(char *)(param_1 + 0xec) == '\0') {
          uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028);
        }
        if (((uVar3 & 0x20000) == 0) || (iVar12 == 100)) break;
        iVar12 = iVar12 + 1;
      }
      if ((uVar3 & 0x2ff00) != 0x100) goto LAB_000520c0;
      uVar4 = uVar3 & 0xff;
LAB_000520c8:
      if ((int)(uVar3 << 0xe) < 0) {
        printk("ERROR!!! ");
        printk("BBP(viaMCU=%d) read R%d fail\n",1,1);
        uVar4 = (uint)*(byte *)(param_1 + 0x4aca);
        if (*(char *)(param_1 + 0xec) == '\0') {
          *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) =
               *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) & 0xfffdffff;
        }
        goto LAB_00052120;
      }
      cVar11 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
    }
    if ((cVar11 == '\x01') && (Status = Status & 0xfffffffe, uVar7 != 0)) {
      Status = Status | 1;
    }
  }
  uVar3 = Status;
  uVar4 = uVar4 & 0xfc;
  bVar10 = (byte)uVar4;
  if (local_55 < -0xb) {
    local_55 = local_55 + '\f';
    if (*(char *)(param_1 + 0xec) == '\0') {
      if (*(int *)(param_1 + 0x29f8) == 4) {
        uVar7 = 0;
        if (*(char *)(param_1 + 0xad) == '\x01') {
          Status = Status & 0xfffffffe;
          uVar7 = uVar3 & 1;
        }
        iVar6 = 1;
        cVar11 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
        while( true ) {
          uVar3 = 0;
          if (cVar11 == '\0') {
            uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
          }
          if ((uVar3 & 0x20000) == 0) break;
          iVar6 = iVar6 + 1;
          printk(&_LC28)   //possible issue identified - semgrep
          if (iVar6 == 100) goto LAB_0005222c;
          cVar11 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
        }
        if (cVar11 == '\0') {
          *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c) = uVar4 | 0xa0102;
        }
        *(byte *)(param_1 + 0x4aca) = bVar10 | 2;
        if (iVar6 != 100) goto LAB_0005224c;
LAB_0005222c:
        printk("ERROR!!! ");
        printk("BBP write R%d fail\n",1);
LAB_0005224c:
        cVar11 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
      }
      else {
        uVar7 = 0;
        if (*(char *)(param_1 + 0xad) == '\x01') {
          Status = Status & 0xfffffffe;
          uVar7 = uVar3 & 1;
        }
        iVar6 = 1;
        cVar11 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
        while( true ) {
          uVar3 = 0;
          if (cVar11 == '\0') {
            uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028);
          }
          if ((uVar3 & 0x20000) == 0) break;
          iVar12 = iVar6 % 0x14;
          iVar6 = iVar6 + 1;
          if ((iVar12 == 0) && (cVar11 == '\0')) {
            *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) = uVar3 & 0xfffdffff;
          }
          printk(&_LC28)   //possible issue identified - semgrep
          if (iVar6 == 100) goto LAB_000523a4;
          cVar11 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
        }
        if (cVar11 == '\0') {
          *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) = uVar4 | 0xa0102;
        }
        iVar12 = AsicSendCommandToMcuBBP(param_1,0x80,0xff,0,0,0);
        if (*(char *)(param_1 + 0x16964) == '\x01') {
          RTMPusecDelay(1000);
        }
        if ((iVar12 == 0) && (*(char *)(param_1 + 0xec) == '\0')) {
          *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) = uVar4 | 0x80102;
        }
        *(byte *)(param_1 + 0x4aca) = bVar10 | 2;
        if (iVar6 != 100) goto LAB_000523ec;
LAB_000523a4:
        printk("ERROR!!! ");
        printk("BBP write R%d fail\n",1);
        if (*(char *)(param_1 + 0xec) == '\0') {
          *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) =
               *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) & 0xfffdffff;
LAB_000523ec:
          cVar11 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
        }
        else {
          cVar11 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
        }
      }
      if ((cVar11 == '\x01') && (Status = Status & 0xfffffffe, uVar7 != 0)) {
        Status = Status | 1;
      }
    }
    if (RTDebugLevel < 4) goto LAB_000529ec;
    pcVar5 = "TPC: %s: Drop the transmit power by 12 dBm (BBP R1)\n";
  }
  else {
    if (5 < (byte)(local_55 + 0xbU)) {
      if (*(char *)(param_1 + 0xec) == '\0') {
        if (*(int *)(param_1 + 0x29f8) == 4) {
          uVar7 = 0;
          if (*(char *)(param_1 + 0xad) == '\x01') {
            Status = Status & 0xfffffffe;
            uVar7 = uVar3 & 1;
          }
          iVar6 = 1;
          cVar11 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
          while( true ) {
            uVar3 = 0;
            if (cVar11 == '\0') {
              uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
            }
            if ((uVar3 & 0x20000) == 0) break;
            iVar6 = iVar6 + 1;
            printk(&_LC28)   //possible issue identified - semgrep
            if (iVar6 == 100) goto LAB_00052804;
            cVar11 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
          }
          if (cVar11 == '\0') {
            *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c) = uVar4 | 0xa0100;
          }
          *(byte *)(param_1 + 0x4aca) = bVar10;
          if (iVar6 != 100) goto LAB_00052824;
LAB_00052804:
          printk("ERROR!!! ");
          printk("BBP write R%d fail\n",1);
LAB_00052824:
          cVar11 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
        }
        else {
          uVar7 = 0;
          if (*(char *)(param_1 + 0xad) == '\x01') {
            Status = Status & 0xfffffffe;
            uVar7 = uVar3 & 1;
          }
          iVar6 = 1;
          cVar11 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
          while( true ) {
            uVar3 = 0;
            if (cVar11 == '\0') {
              uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028);
            }
            if ((uVar3 & 0x20000) == 0) break;
            iVar12 = iVar6 % 0x14;
            iVar6 = iVar6 + 1;
            if ((iVar12 == 0) && (cVar11 == '\0')) {
              *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) = uVar3 & 0xfffdffff;
            }
            printk(&_LC28)   //possible issue identified - semgrep
            if (iVar6 == 100) goto LAB_0005297c;
            cVar11 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
          }
          if (cVar11 == '\0') {
            *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) = uVar4 | 0xa0100;
          }
          iVar12 = AsicSendCommandToMcuBBP(param_1,0x80,0xff,0,0,0);
          if (*(char *)(param_1 + 0x16964) == '\x01') {
            RTMPusecDelay(1000);
          }
          if ((iVar12 == 0) && (*(char *)(param_1 + 0xec) == '\0')) {
            *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) = uVar4 | 0x80100;
          }
          *(byte *)(param_1 + 0x4aca) = bVar10;
          if (iVar6 != 100) goto LAB_000529c4;
LAB_0005297c:
          printk("ERROR!!! ");
          printk("BBP write R%d fail\n",1);
          if (*(char *)(param_1 + 0xec) == '\0') {
            *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) =
                 *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) & 0xfffdffff;
LAB_000529c4:
            cVar11 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
          }
          else {
            cVar11 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
          }
        }
        if ((cVar11 == '\x01') && (Status = Status & 0xfffffffe, uVar7 != 0)) {
          Status = Status | 1;
        }
      }
      goto LAB_000529ec;
    }
    local_55 = local_55 + '\x06';
    if (*(char *)(param_1 + 0xec) == '\0') {
      if (*(int *)(param_1 + 0x29f8) == 4) {
        uVar7 = 0;
        if (*(char *)(param_1 + 0xad) == '\x01') {
          Status = Status & 0xfffffffe;
          uVar7 = uVar3 & 1;
        }
        iVar6 = 1;
        cVar11 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
        while( true ) {
          uVar3 = 0;
          if (cVar11 == '\0') {
            uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
          }
          if ((uVar3 & 0x20000) == 0) break;
          iVar6 = iVar6 + 1;
          printk(&_LC28)   //possible issue identified - semgrep
          if (iVar6 == 100) goto LAB_0005251c;
          cVar11 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
        }
        if (cVar11 == '\0') {
          *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c) = uVar4 | 0xa0101;
        }
        *(byte *)(param_1 + 0x4aca) = bVar10 | 1;
        if (iVar6 != 100) goto LAB_0005253c;
LAB_0005251c:
        printk("ERROR!!! ");
        printk("BBP write R%d fail\n",1);
LAB_0005253c:
        cVar11 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
      }
      else {
        uVar7 = 0;
        if (*(char *)(param_1 + 0xad) == '\x01') {
          Status = Status & 0xfffffffe;
          uVar7 = uVar3 & 1;
        }
        iVar6 = 1;
        cVar11 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
        while( true ) {
          uVar3 = 0;
          if (cVar11 == '\0') {
            uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028);
          }
          if ((uVar3 & 0x20000) == 0) break;
          iVar12 = iVar6 % 0x14;
          iVar6 = iVar6 + 1;
          if ((iVar12 == 0) && (cVar11 == '\0')) {
            *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) = uVar3 & 0xfffdffff;
          }
          printk(&_LC28)   //possible issue identified - semgrep
          if (iVar6 == 100) goto LAB_00052694;
          cVar11 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
        }
        if (cVar11 == '\0') {
          *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) = uVar4 | 0xa0101;
        }
        iVar12 = AsicSendCommandToMcuBBP(param_1,0x80,0xff,0,0,0);
        if (*(char *)(param_1 + 0x16964) == '\x01') {
          RTMPusecDelay(1000);
        }
        if ((iVar12 == 0) && (*(char *)(param_1 + 0xec) == '\0')) {
          *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) = uVar4 | 0x80101;
        }
        *(byte *)(param_1 + 0x4aca) = bVar10 | 1;
        if (iVar6 != 100) goto LAB_000526dc;
LAB_00052694:
        printk("ERROR!!! ");
        printk("BBP write R%d fail\n",1);
        if (*(char *)(param_1 + 0xec) == '\0') {
          *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) =
               *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) & 0xfffdffff;
LAB_000526dc:
          cVar11 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
        }
        else {
          cVar11 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
        }
      }
      if ((cVar11 == '\x01') && (Status = Status & 0xfffffffe, uVar7 != 0)) {
        Status = Status | 1;
      }
    }
    if (RTDebugLevel < 4) goto LAB_000529ec;
    pcVar5 = "TPC: %s: Drop the transmit power by 6 dBm (BBP R1)\n";
  }
  printk(pcVar5,"AsicAdjustTxPower");
LAB_000529ec:
  puVar9 = local_4c;
  iVar12 = 0;
  iVar6 = 0x1314;
  do {
    if ((int)(uint)local_54[0] <= iVar12) {
      if ((*(uint *)(param_1 + 0x4a94) & 0xffff0000) == 0x53500000) {
        RT5350_AsicExtraPowerOverMAC(param_1);
      }
      return;
    }
    if (*puVar9 != 0xffffffff) {
      iVar8 = 0;
      do {
        uVar4 = iVar8 << 2;
        uVar3 = *puVar9 >> (uVar4 & 0x1f) & 0xf;
        if (*(char *)(param_1 + 0x50ca) == '\x01') {
          if (iVar6 == 0x131c) {
LAB_00052ad0:
            iVar2 = uVar3 + (int)local_55;
          }
          else {
            if (0x131c < iVar6) {
              if (iVar6 == 0x1320) {
                if (iVar8 != 0) {
                  if (iVar8 == 2) {
                    iVar2 = uVar3 + (int)local_55;
                    goto LAB_00052ad4;
                  }
                  if ((iVar8 != 3) && (3 < iVar8 - 4U)) {
                    if ((int)(uVar3 + (int)local_55) < 0) goto LAB_00052b3c;
                    if ((int)(uVar3 + (int)local_55) < 0xf) {
                      uVar3 = (int)(char)((char)uVar3 + local_55);
                    }
                    else {
                      uVar3 = 0xe;
                    }
                    goto LAB_00052b44;
                  }
                }
              }
              else if (iVar6 != 0x1324) goto LAB_00052aec;
              goto LAB_00052ad0;
            }
            if (iVar6 == 0x1314) goto LAB_00052ad0;
            if (iVar6 != 0x1318) {
LAB_00052aec:
              if (RTDebugLevel != 0) {
                printk("%s: unknown register = 0x%X\n","AsicAdjustTxPower",iVar6);
              }
              goto LAB_00052b44;
            }
            iVar2 = uVar3 + (int)local_55;
          }
LAB_00052ad4:
          if (iVar2 < 0) goto LAB_00052b3c;
          uVar3 = (int)(char)iVar2;
          if (0xe < iVar2) {
            uVar3 = 0xe;
          }
        }
        else {
          iVar2 = uVar3 + (int)local_55;
          if (iVar2 < 0) {
LAB_00052b3c:
            uVar3 = 0;
          }
          else {
            uVar3 = 0xc;
            if (iVar2 < 0xd) {
              uVar3 = (int)(char)iVar2;
            }
          }
        }
LAB_00052b44:
        uVar3 = uVar3 << (uVar4 & 0x1f) | ~(0xf << (uVar4 & 0x1f)) & *puVar9;
        iVar8 = iVar8 + 1;
        *puVar9 = uVar3;
      } while (iVar8 != 8);
      if (*(char *)(param_1 + 0xec) == '\0') {
        *(uint *)(*(int *)(param_1 + 0xdc) + (uint)(ushort)puVar9[-1]) = uVar3;
      }
    }
    iVar12 = iVar12 + 1;
    puVar9 = puVar9 + 2;
    iVar6 = iVar6 + 4;
  } while( true );
}