/* WARNING: Removing unreachable block (ram,0x000a9e6c) */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

undefined4 Set_ATE_Proc(int param_1,char *param_2)

{
  bool bVar1;
  char cVar2;
  char cVar3;
  byte bVar4;
  undefined1 uVar5;
  undefined4 uVar6;
  code *pcVar7;
  char cVar8;
  char *pcVar9;
  uint uVar10;
  int iVar11;
  undefined4 *puVar12;
  uint uVar13;
  char *pcVar14;
  int iVar15;
  uint uVar16;
  int iVar17;
  uint uVar18;
  byte *pbVar19;
  undefined1 *puVar20;
  byte *pbVar21;
  undefined1 *puVar22;
  byte local_30 [8];
  
  pcVar14 = "ATEACTIVE";
  cVar8 = *param_2;
  pcVar9 = param_2;
  do {
    cVar2 = *pcVar14;
    pcVar9 = pcVar9 + 1;
    pcVar14 = pcVar14 + 1;
    cVar3 = cVar8;
    if (cVar2 != cVar8) break;
    bVar1 = cVar8 != '\0';
    cVar8 = *pcVar9;
    cVar3 = cVar2;
  } while (bVar1);
  if (cVar3 == cVar2) {
    *(undefined1 *)(param_1 + 0x76a0d) = 0;
    return 1;
  }
  pcVar14 = "ATEPASSIVE";
  cVar8 = *param_2;
  pcVar9 = param_2;
  do {
    cVar2 = *pcVar14;
    pcVar9 = pcVar9 + 1;
    pcVar14 = pcVar14 + 1;
    cVar3 = cVar8;
    if (cVar2 != cVar8) break;
    bVar1 = cVar8 != '\0';
    cVar8 = *pcVar9;
    cVar3 = cVar2;
  } while (bVar1);
  if (cVar3 == cVar2) {
    *(undefined1 *)(param_1 + 0x76a0d) = 1;
    return 1;
  }
  if (*(char *)(param_1 + 0x76a0d) != '\0') {
    return 1;
  }
  if (2 < RTDebugLevel) {
    printk("===> %s\n","ATECmdHandler");
  }
  pcVar14 = "ATESTART";
  cVar8 = *param_2;
  pcVar9 = param_2;
  do {
    cVar2 = *pcVar14;
    pcVar9 = pcVar9 + 1;
    pcVar14 = pcVar14 + 1;
    cVar3 = cVar8;
    if (cVar2 != cVar8) break;
    bVar1 = cVar8 != '\0';
    cVar8 = *pcVar9;
    cVar3 = cVar2;
  } while (bVar1);
  if (cVar3 == cVar2) {
    pcVar7 = ATESTART;
    goto LAB_000a9c3c;
  }
  pcVar14 = "ATESTOP";
  cVar8 = *param_2;
  pcVar9 = param_2;
  do {
    cVar2 = *pcVar14;
    pcVar9 = pcVar9 + 1;
    pcVar14 = pcVar14 + 1;
    cVar3 = cVar8;
    if (cVar2 != cVar8) break;
    bVar1 = cVar8 != '\0';
    cVar8 = *pcVar9;
    cVar3 = cVar2;
  } while (bVar1);
  if (cVar3 == cVar2) {
    cVar8 = *(char *)(param_1 + 0x4bd4)   //possible issue identified - semgrep
    if (2 < RTDebugLevel) {
      printk("ATE : ===> %s\n","ATESTOP");
    }
    if (*(char *)(param_1 + 0xec) == '\0') {
      *(uint *)(*(int *)(param_1 + 0xdc) + 0x1004) =
           *(uint *)(*(int *)(param_1 + 0xdc) + 0x1004) | 2;
    }
    RtmpOsMsDelay(10);
    if (*(char *)(param_1 + 0xec) == '\0') {
      *(uint *)(*(int *)(param_1 + 0xdc) + 0x1004) =
           *(uint *)(*(int *)(param_1 + 0xdc) + 0x1004) & 0xfffffffd;
    }
    pbVar19 = &restore_BBP;
    pbVar21 = (byte *)(param_1 + 0x4ac9);
    uVar18 = 0;
    do {
      iVar15 = 0;
      do {
        uVar10 = 0;
        if (*(char *)(param_1 + 0xec) == '\0') {
          uVar10 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
        }
        if ((uVar10 & 0x20000) == 0) {
          bVar4 = *pbVar19;
          if (*(char *)(param_1 + 0xec) == '\0') {
            *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c) = bVar4 | 0xa0000 | (uVar18 & 0xff) << 8;
            bVar4 = *pbVar19;
          }
          *pbVar21 = bVar4;
          if (iVar15 != 100) goto LAB_000a7c78;
          break;
        }
        iVar15 = iVar15 + 1;
      } while (iVar15 != 100);
      if (RTDebugLevel != 0) {
        printk("BBP write R%d fail\n",uVar18);
      }
LAB_000a7c78:
      uVar18 = uVar18 + 1;
      pbVar19 = pbVar19 + 1;
      pbVar21 = pbVar21 + 1;
    } while (uVar18 != 0xa8);
    if (cVar8 == '\0') {
      printk("<4>/home/eric/release/dir600b5/progs.priv/rt2860v2/build/rt2860v2_ap/../rt2860v2/common/rt_ate.c:%d assert RestoreRfICType != 0failed\n"
             ,0x1641);
      cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
    }
    else {
      cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
    }
    *(char *)(param_1 + 0x4bd4) = cVar8;
    iVar15 = 0;
    do {
      uVar18 = 0;
      if (cVar2 == '\0') {
        uVar18 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
      }
      if ((uVar18 & 0x20000) == 0) {
        if (cVar2 == '\0') {
          *(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x101c) = 0xa1600;
        }
        *(undefined1 *)(param_1 + 0x4adf) = 0;
        if (iVar15 != 100) goto LAB_000a7d58;
        break;
      }
      iVar15 = iVar15 + 1;
    } while (iVar15 != 100);
    if (RTDebugLevel == 0) {
      cVar8 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
    }
    else {
      printk("BBP write R%d fail\n",0x16);
LAB_000a7d58:
      cVar8 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
    }
    if (cVar8 == '\0') {
      *(uint *)(*(int *)(param_1 + 0xdc) + 0x1004) =
           *(uint *)(*(int *)(param_1 + 0xdc) + 0x1004) & 0xffffffef;
      cVar8 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
    }
    else {
      cVar8 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
    }
    if (cVar8 == '\0') {
      *(uint *)(*(int *)(param_1 + 0xdc) + 0x1004) =
           *(uint *)(*(int *)(param_1 + 0xdc) + 0x1004) & 0xfffffff7;
    }
    RtmpDmaEnable(param_1,0);
    if (*(char *)(param_1 + 0xec) == '\0') {
      *(uint *)(*(int *)(param_1 + 0xdc) + 0x1004) =
           *(uint *)(*(int *)(param_1 + 0xdc) + 0x1004) & 0xfffffffb;
    }
    *(undefined1 *)(param_1 + 0x76a0c) = 0x80;
    BbpSoftReset(param_1);
    if (*(char *)(param_1 + 0xec) == '\0') {
      *(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x204) = 0;
    }
    *(uint *)(param_1 + 0x76904) = *(uint *)(param_1 + 0x76904) & 0xffffdfff;
    NICInitializeAdapter(param_1,1);
    iVar15 = 0;
    do {
      iVar11 = *(int *)(param_1 + iVar15 + 0x3a8c);
      iVar15 = iVar15 + 0x20;
      *(byte *)(iVar11 + 7) = *(byte *)(iVar11 + 7) & 0x7f;
    } while (iVar15 != 0x1000);
    NICReadEEPROMParameters(param_1,0);
    NICInitAsicFromEEPROM(param_1);
    AsicSwitchChannel(param_1,*(undefined1 *)(param_1 + 0x169ec),0);
    AsicLockChannel(param_1,*(undefined1 *)(param_1 + 0x169ec));
    if ((*(char *)(param_1 + 0xec) == '\0') &&
       (*(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x200) = 0xffffffff,
       *(char *)(param_1 + 0xec) == '\0')) {
      *(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x204) = *(undefined4 *)(param_1 + 0xf0);
    }
    *(uint *)(param_1 + 0x76904) = *(uint *)(param_1 + 0x76904) | 0x2000;
    if (*(char *)(param_1 + 0xec) == '\0') {
      *(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x1400) = 0x15f97;
    }
    if (*(char *)(param_1 + 0xec) == '\0') {
      *(uint *)(*(int *)(param_1 + 0xdc) + 0x1004) =
           *(uint *)(*(int *)(param_1 + 0xdc) + 0x1004) | 4;
    }
    RtmpDmaEnable(param_1,1);
    if (*(char *)(param_1 + 0xec) == '\0') {
      *(uint *)(*(int *)(param_1 + 0xdc) + 0x1004) =
           *(uint *)(*(int *)(param_1 + 0xdc) + 0x1004) | 8;
    }
    APStartUp(param_1);
    iVar15 = *(int *)(*(int *)(param_1 + 4) + 0x194);
    if (_kill_pid << 0xf < 0) {
      *(uint *)(iVar15 + 8) = *(uint *)(iVar15 + 8) & 0xfffffffe;
    }
    else {
      uVar18 = Status & 1;
      *(uint *)(iVar15 + 8) = *(uint *)(iVar15 + 8) & 0xfffffffe;
      Status = Status & 0xfffffffe;
      if (uVar18 != 0) {
        Status = Status | 1;
      }
    }
    if (RTDebugLevel < 3) {
      iVar15 = 0;
      goto LAB_000a9d9c;
    }
    pcVar9 = "ATESTOP";
    goto LAB_000a9d58;
  }
  pcVar14 = "TXCARR";
  cVar8 = *param_2;
  pcVar9 = param_2;
  do {
    cVar2 = *pcVar14;
    pcVar9 = pcVar9 + 1;
    pcVar14 = pcVar14 + 1;
    cVar3 = cVar8;
    if (cVar2 != cVar8) break;
    bVar1 = cVar8 != '\0';
    cVar8 = *pcVar9;
    cVar3 = cVar2;
  } while (bVar1);
  if (cVar3 == cVar2) {
    ATEAsicSwitchChannel(param_1);
    AsicLockChannel(param_1,*(undefined1 *)(param_1 + 0x76a38));
    RtmpOsMsDelay(5);
    if (2 < RTDebugLevel) {
      printk("ATE : ===> %s\n","TXCARR");
    }
    *(undefined1 *)(param_1 + 0x76a0c) = 9;
    puVar12 = (undefined4 *)&restore_BBP;
    restore_BBP = 0;
    while (puVar12 = (undefined4 *)((int)puVar12 + 1), puVar12 != &Default_TX_PIN_CFG) {
      *(undefined1 *)puVar12 = 0;
    }
    puVar20 = &restore_BBP;
    puVar22 = (undefined1 *)(param_1 + 0x4ac9);
    uVar18 = 0;
    do {
      iVar15 = 0;
      cVar8 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
LAB_000a8120:
      uVar10 = 0;
      if (cVar8 == '\0') {
        uVar10 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
      }
      if ((uVar10 & 0x20000) != 0) {
LAB_000a81b8:
        iVar15 = iVar15 + 1;
        if (iVar15 == 100) goto LAB_000a81c0;
        cVar8 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
        goto LAB_000a8120;
      }
      if (cVar8 == '\0') {
        *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c) = (uVar18 & 0xff) << 8 | 0xb0000;
      }
      iVar11 = 1;
      while( true ) {
        uVar10 = 0;
        if (*(char *)(param_1 + 0xec) == '\0') {
          uVar10 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
        }
        if (((uVar10 & 0x20000) == 0) || (iVar11 == 100)) break;
        iVar11 = iVar11 + 1;
      }
      if (((uVar10 & 0x20000) != 0) || ((uVar10 << 0x10) >> 0x18 != uVar18)) goto LAB_000a81b8;
      *puVar20 = (char)uVar10;
LAB_000a81c0:
      if ((uVar10 & 0x20000) != 0) {
        if (RTDebugLevel == 0) {
          uVar5 = *puVar22;
        }
        else {
          printk("BBP read R%d fail\n",uVar18);
          uVar5 = *puVar22;
        }
        *puVar20 = uVar5;
      }
      uVar18 = uVar18 + 1;
      puVar22 = puVar22 + 1;
      puVar20 = puVar20 + 1;
    } while (uVar18 != 0xa8);
    if (*(char *)(param_1 + 0x76a52) == '\0') {
      if ((*(int *)(param_1 + 0x4a94) == 0x28720200) &&
         (((*(char *)(param_1 + 0x4bd4) == '\x05' || ((*(uint *)(param_1 + 0x4bf4) & 0xf0) == 0x20))
          || (*(char *)(param_1 + 0x4bd4) == '\v')))) {
        BbpSoftReset(param_1);
      }
      iVar15 = 0;
      cVar8 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
      do {
        uVar18 = 0;
        if (cVar8 == '\0') {
          uVar18 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
        }
        if ((uVar18 & 0x20000) == 0) {
          if (cVar8 == '\0') {
            *(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x101c) = 0xb1600;
          }
          iVar11 = 1;
          while( true ) {
            uVar18 = 0;
            if (*(char *)(param_1 + 0xec) == '\0') {
              uVar18 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
            }
            if (((uVar18 & 0x20000) == 0) || (iVar11 == 100)) break;
            iVar11 = iVar11 + 1;
          }
          if ((uVar18 & 0x2ff00) == 0x1600) goto LAB_000a8324;
        }
        iVar15 = iVar15 + 1;
        if (iVar15 == 100) goto LAB_000a8324;
        cVar8 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
      } while( true );
    }
    goto LAB_000a842c;
  }
  pcVar14 = "TXCARS";
  cVar8 = *param_2;
  pcVar9 = param_2;
  do {
    cVar2 = *pcVar14;
    pcVar9 = pcVar9 + 1;
    pcVar14 = pcVar14 + 1;
    cVar3 = cVar8;
    if (cVar2 != cVar8) break;
    bVar1 = cVar8 != '\0';
    cVar8 = *pcVar9;
    cVar3 = cVar2;
  } while (bVar1);
  if (cVar3 != cVar2) {
    pcVar14 = "TXCONT";
    cVar8 = *param_2;
    pcVar9 = param_2;
    do {
      cVar2 = *pcVar14;
      pcVar9 = pcVar9 + 1;
      pcVar14 = pcVar14 + 1;
      cVar3 = cVar8;
      if (cVar2 != cVar8) break;
      bVar1 = cVar8 != '\0';
      cVar8 = *pcVar9;
      cVar3 = cVar2;
    } while (bVar1);
    if (cVar3 == cVar2) {
      ATEAsicSwitchChannel(param_1);
      AsicLockChannel(param_1,*(undefined1 *)(param_1 + 0x76a38));
      RtmpOsMsDelay(5);
      pcVar7 = TXCONT;
    }
    else {
      pcVar14 = "TXFRAME";
      cVar8 = *param_2;
      pcVar9 = param_2;
      do {
        cVar2 = *pcVar14;
        pcVar9 = pcVar9 + 1;
        pcVar14 = pcVar14 + 1;
        cVar3 = cVar8;
        if (cVar2 != cVar8) break;
        bVar1 = cVar8 != '\0';
        cVar8 = *pcVar9;
        cVar3 = cVar2;
      } while (bVar1);
      if (cVar3 != cVar2) {
        pcVar14 = "RXFRAME";
        cVar8 = *param_2;
        pcVar9 = param_2;
        do {
          cVar2 = *pcVar14;
          pcVar9 = pcVar9 + 1;
          pcVar14 = pcVar14 + 1;
          cVar3 = cVar8;
          if (cVar2 != cVar8) break;
          bVar1 = cVar8 != '\0';
          cVar8 = *pcVar9;
          cVar3 = cVar2;
        } while (bVar1);
        if (cVar3 == cVar2) {
          *(byte *)(param_1 + 0x76a0c) = *(byte *)(param_1 + 0x76a0c) | 2;
          ATEAsicSwitchChannel(param_1);
          AsicLockChannel(param_1,*(undefined1 *)(param_1 + 0x76a38));
          RTMPusecDelay(5);
          if (RTDebugLevel < 3) {
            cVar8 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
          }
          else {
            printk("ATE : ===> %s\n","RXFRAME");
            cVar8 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
          }
          if (cVar8 == '\0') {
            *(uint *)(*(int *)(param_1 + 0xdc) + 0x1004) =
                 *(uint *)(*(int *)(param_1 + 0xdc) + 0x1004) & 0xfffffff7;
            cVar8 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
          }
          else {
            cVar8 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
          }
          iVar15 = 0;
          do {
            uVar18 = 0;
            if (cVar8 == '\0') {
              uVar18 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
            }
            if ((uVar18 & 0x20000) == 0) {
              if (cVar8 == '\0') {
                *(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x101c) = 0xa1600;
              }
              *(undefined1 *)(param_1 + 0x4adf) = 0;
              if (iVar15 != 100) goto LAB_000a8ca4;
              break;
            }
            iVar15 = iVar15 + 1;
          } while (iVar15 != 100);
          if (RTDebugLevel == 0) {
            uVar18 = *(uint *)(param_1 + 0x4a94);
          }
          else {
            printk("BBP write R%d fail\n",0x16);
LAB_000a8ca4:
            uVar18 = *(uint *)(param_1 + 0x4a94);
          }
          uVar18 = uVar18 & 0xffff0000;
          if (((uVar18 == 0x38830000) || (uVar18 == 0x33520000)) || (uVar18 == 0x53500000)) {
            cVar8 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
            iVar15 = 0;
            if ((*(uint *)(param_1 + 0x76a14) & 0x8000) == 0) {
LAB_000a8cf0:
              uVar18 = 0;
              if (cVar8 == '\0') {
                uVar18 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
              }
              if ((uVar18 & 0x20000) != 0) goto code_r0x000a8d08;
              if (cVar8 == '\0') {
                *(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x101c) = 0xa67c0;
              }
              *(undefined1 *)(param_1 + 0x4b30) = 0xc0;
LAB_000a8dc4:
              if (iVar15 == 100) goto LAB_000a8de4;
              cVar8 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
              goto LAB_000a8e08;
            }
            do {
              uVar18 = 0;
              if (cVar8 == '\0') {
                uVar18 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
              }
              if ((uVar18 & 0x20000) == 0) {
                if (cVar8 == '\0') {
                  *(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x101c) = 0xa6700;
                  *(undefined1 *)(param_1 + 0x4b30) = 0;
                }
                else {
                  *(undefined1 *)(param_1 + 0x4b30) = 0;
                }
                goto LAB_000a8dc4;
              }
              iVar15 = iVar15 + 1;
            } while (iVar15 != 100);
LAB_000a8de4:
            if (RTDebugLevel == 0) {
              cVar8 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
            }
            else {
              printk("BBP write R%d fail\n",0x67);
              cVar8 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
            }
          }
          else {
            cVar8 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
          }
LAB_000a8e08:
          if (cVar8 == '\0') {
            *(uint *)(*(int *)(param_1 + 0xdc) + 0x1004) =
                 *(uint *)(*(int *)(param_1 + 0xdc) + 0x1004) & 0xffffffef;
          }
          *(byte *)(param_1 + 0x76a0c) = *(byte *)(param_1 + 0x76a0c) | 2;
          if (*(char *)(param_1 + 0xec) == '\0') {
            *(uint *)(*(int *)(param_1 + 0xdc) + 0x1004) =
                 *(uint *)(*(int *)(param_1 + 0xdc) + 0x1004) & 0xfffffffb;
          }
          if (*(char *)(param_1 + 0xec) == '\0') {
            *(uint *)(*(int *)(param_1 + 0xdc) + 0x1004) =
                 *(uint *)(*(int *)(param_1 + 0xdc) + 0x1004) | 8;
          }
          if (RTDebugLevel < 3) {
            iVar15 = 0;
            goto LAB_000a9d9c;
          }
          pcVar9 = "RXFRAME";
        }
        else {
          pcVar14 = "ANTDIVCBA";
          cVar8 = *param_2;
          pcVar9 = param_2;
          do {
            cVar2 = *pcVar14;
            pcVar9 = pcVar9 + 1;
            pcVar14 = pcVar14 + 1;
            cVar3 = cVar8;
            if (cVar2 != cVar8) break;
            bVar1 = cVar8 != '\0';
            cVar8 = *pcVar9;
            cVar3 = cVar2;
          } while (bVar1);
          if (cVar3 == cVar2) {
            local_30[0] = 0;
            RT30xxReadRFRegister(param_1,0x1d,local_30);
            local_30[0] = local_30[0] & 0x3f | 0xc0;
            RT30xxWriteRFRegister(param_1,0x1d,local_30[0]);
            iVar15 = 0;
            cVar8 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
            while( true ) {
              uVar18 = 0;
              if (cVar8 == '\0') {
                uVar18 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
              }
              if ((uVar18 & 0x20000) == 0) {
                if (cVar8 == '\0') {
                  *(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x101c) = 0xb2f00;
                }
                iVar11 = 1;
                while( true ) {
                  uVar18 = 0;
                  if (*(char *)(param_1 + 0xec) == '\0') {
                    uVar18 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
                  }
                  if (((uVar18 & 0x20000) == 0) || (iVar11 == 100)) break;
                  iVar11 = iVar11 + 1;
                }
                if ((uVar18 & 0x2ff00) == 0x2f00) {
                  uVar10 = uVar18 & 0xff;
                  goto LAB_000a8fe0;
                }
              }
              iVar15 = iVar15 + 1;
              if (iVar15 == 100) break;
              cVar8 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
            }
            uVar10 = 0;
LAB_000a8fe0:
            if ((int)(uVar18 << 0xe) < 0) {
              if (RTDebugLevel == 0) {
                bVar4 = *(byte *)(param_1 + 0x4af8);
              }
              else {
                printk("BBP read R%d fail\n",0x2f);
                bVar4 = *(byte *)(param_1 + 0x4af8);
              }
              uVar10 = (uint)bVar4;
              cVar8 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
            }
            else {
              cVar8 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
            }
            iVar15 = 0;
            do {
              uVar18 = 0;
              if (cVar8 == '\0') {
                uVar18 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
              }
              if ((uVar18 & 0x20000) == 0) {
                if (cVar8 == '\0') {
                  *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c) = uVar10 | 0xa2f80;
                }
                *(byte *)(param_1 + 0x4af8) = (byte)uVar10 | 0x80;
                if (iVar15 != 100) goto LAB_000a90bc;
                break;
              }
              iVar15 = iVar15 + 1;
            } while (iVar15 != 100);
            if (RTDebugLevel == 0) {
              cVar8 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
            }
            else {
              printk("BBP write R%d fail\n",0x2f);
LAB_000a90bc:
              cVar8 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
            }
            iVar15 = 0;
            do {
              uVar18 = 0;
              if (cVar8 == '\0') {
                uVar18 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
              }
              if ((uVar18 & 0x20000) == 0) {
                if (cVar8 == '\0') {
                  *(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x101c) = 0xa9681;
                }
                *(undefined1 *)(param_1 + 0x4b5f) = 0x81;
                if (iVar15 != 100) goto LAB_000a9170;
                break;
              }
              iVar15 = iVar15 + 1;
            } while (iVar15 != 100);
            if (RTDebugLevel != 0) {
              printk("BBP write R%d fail\n",0x96);
            }
LAB_000a9170:
            iVar15 = 0;
            cVar8 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
            while( true ) {
              uVar18 = 0;
              if (cVar8 == '\0') {
                uVar18 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
              }
              if ((uVar18 & 0x20000) == 0) {
                if (cVar8 == '\0') {
                  *(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x101c) = 0xb9a00;
                }
                iVar11 = 1;
                while( true ) {
                  uVar18 = 0;
                  if (*(char *)(param_1 + 0xec) == '\0') {
                    uVar18 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
                  }
                  if (((uVar18 & 0x20000) == 0) || (iVar11 == 100)) break;
                  iVar11 = iVar11 + 1;
                }
                if ((uVar18 & 0x2ff00) == 0x9a00) {
                  uVar10 = uVar18 & 0xff;
                  goto LAB_000a9224;
                }
              }
              iVar15 = iVar15 + 1;
              if (iVar15 == 100) break;
              cVar8 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
            }
            uVar10 = 0x81;
LAB_000a9224:
            if ((int)(uVar18 << 0xe) < 0) {
              if (RTDebugLevel == 0) {
                bVar4 = *(byte *)(param_1 + 0x4b63);
              }
              else {
                printk("BBP read R%d fail\n",0x9a);
                bVar4 = *(byte *)(param_1 + 0x4b63);
              }
              uVar10 = (uint)bVar4;
              cVar8 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
            }
            else {
              cVar8 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
            }
            uVar10 = uVar10 & 0xef;
            iVar15 = 0;
            do {
              uVar18 = 0;
              if (cVar8 == '\0') {
                uVar18 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
              }
              if ((uVar18 & 0x20000) == 0) {
                if (cVar8 == '\0') {
                  *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c) = uVar10 | 0xa9a00;
                }
                *(char *)(param_1 + 0x4b63) = (char)uVar10;
                if (iVar15 != 100) goto LAB_000a9bbc;
                break;
              }
              iVar15 = iVar15 + 1;
            } while (iVar15 != 100);
            if (RTDebugLevel != 0) {
              printk("BBP write R%d fail\n",0x9a);
            }
LAB_000a9bbc:
            uVar16 = 3;
            uVar18 = 1;
LAB_000a9bd0:
            iVar15 = 0;
            if ((uVar18 & 0xff) < 2) {
              cVar8 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
LAB_000a931c:
              uVar18 = 0;
              if (cVar8 == '\0') {
                uVar18 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
              }
              if ((uVar18 & 0x20000) == 0) {
                if (cVar8 == '\0') {
                  *(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x101c) = 0xb9800;
                }
                iVar11 = 1;
                do {
                  uVar18 = 0;
                  if (*(char *)(param_1 + 0xec) == '\0') {
                    uVar18 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
                  }
                } while (((uVar18 & 0x20000) != 0) &&
                        (bVar1 = iVar11 != 100, iVar11 = iVar11 + 1, bVar1));
                if ((uVar18 & 0x2ff00) == 0x9800) {
                  uVar10 = uVar18 & 0xff;
LAB_000a93b8:
                  if ((uVar18 & 0x20000) == 0) {
                    cVar8 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
                  }
                  else {
                    if (RTDebugLevel == 0) {
                      bVar4 = *(byte *)(param_1 + 0x4b61);
                    }
                    else {
                      printk("BBP read R%d fail\n",0x98);
                      bVar4 = *(byte *)(param_1 + 0x4b61);
                    }
                    uVar10 = (uint)bVar4;
                    cVar8 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
                  }
                  uVar18 = uVar10 | 0x80;
                  iVar15 = 0;
                  do {
                    uVar13 = 0;
                    if (cVar8 == '\0') {
                      uVar13 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
                    }
                    if ((uVar13 & 0x20000) == 0) {
                      if (cVar8 == '\0') {
                        *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c) = uVar10 | 0xa9880;
                      }
                      *(char *)(param_1 + 0x4b61) = (char)uVar18;
                      if (iVar15 != 100) goto LAB_000a947c;
                      break;
                    }
                    iVar15 = iVar15 + 1;
                  } while (iVar15 != 100);
                  if (RTDebugLevel != 0) {
                    printk("BBP write R%d fail\n",0x98);
                  }
LAB_000a947c:
                  iVar15 = 0;
                  cVar8 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
LAB_000a9490:
                  uVar10 = 0;
                  if (cVar8 == '\0') {
                    uVar10 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
                  }
                  if ((uVar10 & 0x20000) == 0) {
                    if (cVar8 == '\0') {
                      *(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x101c) = 0xb3c00;
                    }
                    iVar11 = 1;
                    while( true ) {
                      uVar10 = 0;
                      if (*(char *)(param_1 + 0xec) == '\0') {
                        uVar10 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
                      }
                      if (((uVar10 & 0x20000) == 0) || (iVar11 == 100)) break;
                      iVar11 = iVar11 + 1;
                    }
                    if ((uVar10 & 0x2ff00) == 0x3c00) {
                      uVar18 = uVar10 & 0xff;
LAB_000a952c:
                      if ((uVar10 & 0x20000) == 0) {
                        cVar8 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
                      }
                      else {
                        if (RTDebugLevel == 0) {
                          bVar4 = *(byte *)(param_1 + 0x4b05);
                        }
                        else {
                          printk("BBP read R%d fail\n",0x3c);
                          bVar4 = *(byte *)(param_1 + 0x4b05);
                        }
                        uVar18 = (uint)bVar4;
                        cVar8 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
                      }
                      uVar10 = uVar18 | 0x40;
                      iVar15 = 0;
                      do {
                        uVar13 = 0;
                        if (cVar8 == '\0') {
                          uVar13 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
                        }
                        if ((uVar13 & 0x20000) == 0) {
                          if (cVar8 == '\0') {
                            *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c) = uVar18 | 0xa3c40;
                          }
                          *(char *)(param_1 + 0x4b05) = (char)uVar10;
                          if (iVar15 != 100) goto LAB_000a95f0;
                          break;
                        }
                        iVar15 = iVar15 + 1;
                      } while (iVar15 != 100);
                      if (RTDebugLevel != 0) {
                        printk("BBP write R%d fail\n",0x3c);
                      }
LAB_000a95f0:
                      iVar15 = 0;
                      do {
                        iVar11 = 0;
                        cVar8 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
LAB_000a9600:
                        uVar18 = 0;
                        if (cVar8 == '\0') {
                          uVar18 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
                        }
                        if ((uVar18 & 0x20000) != 0) {
LAB_000a969c:
                          iVar11 = iVar11 + 1;
                          if (iVar11 == 100) goto LAB_000a96a4;
                          cVar8 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
                          goto LAB_000a9600;
                        }
                        if (cVar8 == '\0') {
                          *(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x101c) = 0xb3c00;
                        }
                        iVar17 = 1;
                        do {
                          uVar18 = 0;
                          if (*(char *)(param_1 + 0xec) == '\0') {
                            uVar18 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
                          }
                        } while (((uVar18 & 0x20000) != 0) &&
                                (bVar1 = iVar17 != 100, iVar17 = iVar17 + 1, bVar1));
                        if ((uVar18 & 0x2ff00) != 0x3c00) goto LAB_000a969c;
                        uVar10 = uVar18 & 0xff;
LAB_000a96a4:
                        if ((uVar18 & 0x20000) != 0) {
                          if (RTDebugLevel == 0) {
                            bVar4 = *(byte *)(param_1 + 0x4b05);
                          }
                          else {
                            printk("BBP read R%d fail\n",0x3c);
                            bVar4 = *(byte *)(param_1 + 0x4b05);
                          }
                          uVar10 = (uint)bVar4;
                        }
                        uVar10 = uVar10 & 0x3f;
                        if (1 < uVar10) {
                          uVar18 = uVar16 - 1;
                          uVar16 = uVar18 & 0xff;
                          RT30xxReadRFRegister(param_1,0x1d,local_30);
                          uVar18 = (uVar18 & 3) << 6 | (uint)local_30[0];
                          local_30[0] = (byte)uVar18;
                          RT30xxWriteRFRegister(param_1,0x1d,uVar18);
                          uVar18 = uVar16 - 2;
                          if (iVar15 != 100) goto LAB_000a9bd0;
                          break;
                        }
                        iVar15 = iVar15 + 1;
                        RtmpOsMsDelay(1);
                      } while (iVar15 != 100);
                      iVar15 = 0;
                      cVar8 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
LAB_000a9774:
                      uVar18 = 0;
                      if (cVar8 == '\0') {
                        uVar18 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
                      }
                      if ((uVar18 & 0x20000) == 0) {
                        if (cVar8 == '\0') {
                          *(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x101c) = 0xb9800;
                        }
                        iVar11 = 1;
                        do {
                          uVar18 = 0;
                          if (*(char *)(param_1 + 0xec) == '\0') {
                            uVar18 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
                          }
                        } while (((uVar18 & 0x20000) != 0) &&
                                (bVar1 = iVar11 != 100, iVar11 = iVar11 + 1, bVar1));
                        if ((uVar18 & 0x2ff00) == 0x9800) {
                          uVar10 = uVar18 & 0xff;
LAB_000a9810:
                          if ((uVar18 & 0x20000) == 0) {
                            cVar8 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
                          }
                          else {
                            if (RTDebugLevel == 0) {
                              bVar4 = *(byte *)(param_1 + 0x4b61);
                            }
                            else {
                              printk("BBP read R%d fail\n",0x98);
                              bVar4 = *(byte *)(param_1 + 0x4b61);
                            }
                            uVar10 = (uint)bVar4;
                            cVar8 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
                          }
                          uVar10 = uVar10 & 0x7f;
                          iVar15 = 0;
                          do {
                            uVar18 = 0;
                            if (cVar8 == '\0') {
                              uVar18 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
                            }
                            if ((uVar18 & 0x20000) == 0) {
                              if (cVar8 == '\0') {
                                *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c) = uVar10 | 0xa9800;
                              }
                              *(char *)(param_1 + 0x4b61) = (char)uVar10;
                              if (iVar15 != 100) goto LAB_000a98d4;
                              break;
                            }
                            iVar15 = iVar15 + 1;
                          } while (iVar15 != 100);
                          if (RTDebugLevel != 0) {
                            printk("BBP write R%d fail\n",0x98);
                          }
LAB_000a98d4:
                          iVar15 = 0;
                          cVar8 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
LAB_000a98e8:
                          uVar18 = 0;
                          if (cVar8 == '\0') {
                            uVar18 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
                          }
                          if ((uVar18 & 0x20000) == 0) {
                            if (cVar8 == '\0') {
                              *(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x101c) = 0xb3c00;
                            }
                            iVar11 = 1;
                            while( true ) {
                              uVar18 = 0;
                              if (*(char *)(param_1 + 0xec) == '\0') {
                                uVar18 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
                              }
                              if (((uVar18 & 0x20000) == 0) || (iVar11 == 100)) break;
                              iVar11 = iVar11 + 1;
                            }
                            if ((uVar18 & 0x2ff00) == 0x3c00) {
                              uVar10 = uVar18 & 0xff;
LAB_000a9984:
                              if ((uVar18 & 0x20000) == 0) {
                                cVar8 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
                              }
                              else {
                                if (RTDebugLevel == 0) {
                                  bVar4 = *(byte *)(param_1 + 0x4b05);
                                }
                                else {
                                  printk("BBP read R%d fail\n",0x3c);
                                  bVar4 = *(byte *)(param_1 + 0x4b05);
                                }
                                uVar10 = (uint)bVar4;
                                cVar8 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
                              }
                              uVar10 = uVar10 & 0xbf;
                              iVar15 = 0;
                              do {
                                uVar18 = 0;
                                if (cVar8 == '\0') {
                                  uVar18 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
                                }
                                if ((uVar18 & 0x20000) == 0) {
                                  if (cVar8 == '\0') {
                                    *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c) = uVar10 | 0xa3c00;
                                  }
                                  *(char *)(param_1 + 0x4b05) = (char)uVar10;
                                  if (iVar15 != 100) goto LAB_000a9a48;
                                  break;
                                }
                                iVar15 = iVar15 + 1;
                              } while (iVar15 != 100);
                              if (RTDebugLevel != 0) {
                                printk("BBP write R%d fail\n",0x3c);
                              }
LAB_000a9a48:
                              iVar15 = 0;
                              do {
                                iVar11 = 0;
                                cVar8 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
LAB_000a9a58:
                                uVar18 = 0;
                                if (cVar8 == '\0') {
                                  uVar18 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
                                }
                                if ((uVar18 & 0x20000) != 0) {
LAB_000a9af4:
                                  iVar11 = iVar11 + 1;
                                  if (iVar11 == 100) goto LAB_000a9afc;
                                  cVar8 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
                                  goto LAB_000a9a58;
                                }
                                if (cVar8 == '\0') {
                                  *(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x101c) = 0xb3c00;
                                }
                                iVar17 = 1;
                                do {
                                  uVar18 = 0;
                                  if (*(char *)(param_1 + 0xec) == '\0') {
                                    uVar18 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
                                  }
                                } while (((uVar18 & 0x20000) != 0) &&
                                        (bVar1 = iVar17 != 100, iVar17 = iVar17 + 1, bVar1));
                                if ((uVar18 & 0x2ff00) != 0x3c00) goto LAB_000a9af4;
                                uVar10 = uVar18 & 0xff;
LAB_000a9afc:
                                if ((uVar18 & 0x20000) != 0) {
                                  if (RTDebugLevel == 0) {
                                    bVar4 = *(byte *)(param_1 + 0x4b05);
                                  }
                                  else {
                                    printk("BBP read R%d fail\n",0x3c);
                                    bVar4 = *(byte *)(param_1 + 0x4b05);
                                  }
                                  uVar10 = (uint)bVar4;
                                }
                                uVar10 = uVar10 & 0x3f;
                                if (1 < uVar10) goto code_r0x000a9b38;
                                iVar15 = iVar15 + 1;
                                RtmpOsMsDelay(1);
                                if (iVar15 == 100) {
                                  pcVar7 = *(code **)(param_1 + 0x14);
                                  goto LAB_000a9be4;
                                }
                              } while( true );
                            }
                          }
                          iVar15 = iVar15 + 1;
                          if (iVar15 == 100) goto LAB_000a9984;
                          cVar8 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
                          goto LAB_000a98e8;
                        }
                      }
                      iVar15 = iVar15 + 1;
                      if (iVar15 == 100) goto LAB_000a9810;
                      cVar8 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
                      goto LAB_000a9774;
                    }
                  }
                  iVar15 = iVar15 + 1;
                  if (iVar15 == 100) goto LAB_000a952c;
                  cVar8 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
                  goto LAB_000a9490;
                }
              }
              iVar15 = iVar15 + 1;
              if (iVar15 == 100) goto LAB_000a93b8;
              cVar8 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
              goto LAB_000a931c;
            }
            pcVar7 = *(code **)(param_1 + 0x14);
LAB_000a9be4:
            (*pcVar7)(param_1,0x120,uVar16);
            iVar15 = 0;
            goto LAB_000a9d9c;
          }
          pcVar14 = "TXSTOP";
          cVar8 = *param_2;
          pcVar9 = param_2;
          do {
            cVar2 = *pcVar14;
            pcVar9 = pcVar9 + 1;
            pcVar14 = pcVar14 + 1;
            cVar3 = cVar8;
            if (cVar2 != cVar8) break;
            bVar1 = cVar8 != '\0';
            cVar8 = *pcVar9;
            cVar3 = cVar2;
          } while (bVar1);
          if (cVar3 == cVar2) {
            pcVar7 = TXSTOP;
            goto LAB_000a9c3c;
          }
          pcVar9 = "RXSTOP";
          cVar8 = *param_2;
          do {
            cVar2 = *pcVar9;
            param_2 = param_2 + 1;
            pcVar9 = pcVar9 + 1;
            cVar3 = cVar8;
            if (cVar2 != cVar8) break;
            bVar1 = cVar8 != '\0';
            cVar8 = *param_2;
            cVar3 = cVar2;
          } while (bVar1);
          if (cVar3 != cVar2) {
            iVar15 = 2;
            if (2 < RTDebugLevel) {
              printk("ATE : Invalid arg !\n");
              iVar15 = 2;
            }
            goto LAB_000a9d9c;
          }
          if (RTDebugLevel < 3) {
            cVar8 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
          }
          else {
            printk("ATE : ===> %s\n","RXSTOP");
            cVar8 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
          }
          if (cVar8 == '\0') {
            *(uint *)(*(int *)(param_1 + 0xdc) + 0x1004) =
                 *(uint *)(*(int *)(param_1 + 0xdc) + 0x1004) & 0xfffffff7;
          }
          *(byte *)(param_1 + 0x76a0c) = *(byte *)(param_1 + 0x76a0c) & 0xfd;
          *(undefined1 *)(param_1 + 0x76a53) = 0;
          if ((*(int *)(param_1 + 0x4a94) == 0x28720200) &&
             (((*(char *)(param_1 + 0x4bd4) == '\x05' ||
               ((*(uint *)(param_1 + 0x4bf4) & 0xf0) == 0x20)) ||
              (*(char *)(param_1 + 0x4bd4) == '\v')))) {
            BbpSoftReset(param_1);
          }
          if (RTDebugLevel < 3) {
            iVar15 = 0;
            goto LAB_000a9d9c;
          }
          pcVar9 = "RXSTOP";
        }
        goto LAB_000a9d58;
      }
      ATEAsicSwitchChannel(param_1);
      AsicLockChannel(param_1,*(undefined1 *)(param_1 + 0x76a38));
      RtmpOsMsDelay(5);
      pcVar7 = TXFRAME;
    }
LAB_000a9c3c:
    iVar15 = (*pcVar7)(param_1);
    goto LAB_000a9d9c;
  }
  ATEAsicSwitchChannel(param_1);
  AsicLockChannel(param_1,*(undefined1 *)(param_1 + 0x76a38));
  RtmpOsMsDelay(5);
  if (2 < RTDebugLevel) {
    printk("ATE : ===> %s\n","TXCARS");
  }
  *(undefined1 *)(param_1 + 0x76a0c) = 0x11;
  puVar12 = (undefined4 *)&restore_BBP;
  restore_BBP = 0;
  while (puVar12 = (undefined4 *)((int)puVar12 + 1), puVar12 != &Default_TX_PIN_CFG) {
    *(undefined1 *)puVar12 = 0;
  }
  puVar20 = &restore_BBP;
  puVar22 = (undefined1 *)(param_1 + 0x4ac9);
  uVar18 = 0;
  do {
    iVar15 = 0;
    cVar8 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
LAB_000a854c:
    uVar10 = 0;
    if (cVar8 == '\0') {
      uVar10 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
    }
    if ((uVar10 & 0x20000) != 0) {
LAB_000a85e4:
      iVar15 = iVar15 + 1;
      if (iVar15 == 100) goto LAB_000a85ec;
      cVar8 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
      goto LAB_000a854c;
    }
    if (cVar8 == '\0') {
      *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c) = (uVar18 & 0xff) << 8 | 0xb0000;
    }
    iVar11 = 1;
    while( true ) {
      uVar10 = 0;
      if (*(char *)(param_1 + 0xec) == '\0') {
        uVar10 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
      }
      if (((uVar10 & 0x20000) == 0) || (iVar11 == 100)) break;
      iVar11 = iVar11 + 1;
    }
    if (((uVar10 & 0x20000) != 0) || ((uVar10 << 0x10) >> 0x18 != uVar18)) goto LAB_000a85e4;
    *puVar20 = (char)uVar10;
LAB_000a85ec:
    if ((uVar10 & 0x20000) != 0) {
      if (RTDebugLevel == 0) {
        uVar5 = *puVar22;
      }
      else {
        printk("BBP read R%d fail\n",uVar18);
        uVar5 = *puVar22;
      }
      *puVar20 = uVar5;
    }
    uVar18 = uVar18 + 1;
    puVar22 = puVar22 + 1;
    puVar20 = puVar20 + 1;
  } while (uVar18 != 0xa8);
  if (*(char *)(param_1 + 0x76a52) == '\0') {
    BbpSoftReset(param_1);
    if (*(char *)(param_1 + 0xec) == '\0') {
      Default_TX_PIN_CFG = *(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x1328);
    }
    else {
      Default_TX_PIN_CFG = 0;
    }
    if (*(byte *)(param_1 + 0x76a38) < 0xe) {
      if (*(char *)(param_1 + 0xec) == '\0') {
        iVar15 = *(int *)(param_1 + 0xdc);
        uVar6 = 0x80c00a0;
LAB_000a86d8:
        *(undefined4 *)(iVar15 + 0x1328) = uVar6;
      }
    }
    else if (*(char *)(param_1 + 0xec) == '\0') {
      iVar15 = *(int *)(param_1 + 0xdc);
      uVar6 = 0x40c0050;
      goto LAB_000a86d8;
    }
    iVar15 = 0;
    cVar8 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
    while( true ) {
      uVar18 = 0;
      if (cVar8 == '\0') {
        uVar18 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
      }
      if ((uVar18 & 0x20000) == 0) {
        if (cVar8 == '\0') {
          *(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x101c) = 0xb1600;
        }
        iVar11 = 1;
        while( true ) {
          uVar18 = 0;
          if (*(char *)(param_1 + 0xec) == '\0') {
            uVar18 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
          }
          if (((uVar18 & 0x20000) == 0) || (iVar11 == 100)) break;
          iVar11 = iVar11 + 1;
        }
        if ((uVar18 & 0x2ff00) == 0x1600) {
          uVar10 = uVar18 & 0xff;
          goto LAB_000a8794;
        }
      }
      iVar15 = iVar15 + 1;
      if (iVar15 == 100) break;
      cVar8 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
    }
    uVar10 = 0;
LAB_000a8794:
    if ((int)(uVar18 << 0xe) < 0) {
      if (RTDebugLevel == 0) {
        bVar4 = *(byte *)(param_1 + 0x4adf);
      }
      else {
        printk("BBP read R%d fail\n",0x16);
        bVar4 = *(byte *)(param_1 + 0x4adf);
      }
      uVar10 = (uint)bVar4;
      cVar8 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
    }
    else {
      cVar8 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
    }
    uVar18 = uVar10 | 0x80;
    iVar15 = 0;
    do {
      uVar16 = 0;
      if (cVar8 == '\0') {
        uVar16 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
      }
      if ((uVar16 & 0x20000) == 0) {
        if (cVar8 == '\0') {
          *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c) = uVar10 | 0xa1680;
        }
        *(char *)(param_1 + 0x4adf) = (char)uVar18;
        if (iVar15 != 100) goto LAB_000a8878;
        break;
      }
      iVar15 = iVar15 + 1;
    } while (iVar15 != 100);
    if (RTDebugLevel != 0) {
      printk("BBP write R%d fail\n",0x16);
    }
LAB_000a8878:
    iVar15 = 0;
    cVar8 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
LAB_000a8894:
    uVar10 = 0;
    if (cVar8 == '\0') {
      uVar10 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
    }
    if ((uVar10 & 0x20000) != 0) {
LAB_000a8920:
      iVar15 = iVar15 + 1;
      if (iVar15 == 100) goto LAB_000a8928;
      cVar8 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
      goto LAB_000a8894;
    }
    if (cVar8 == '\0') {
      *(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x101c) = 0xb1800;
    }
    iVar11 = 1;
    while( true ) {
      uVar10 = 0;
      if (*(char *)(param_1 + 0xec) == '\0') {
        uVar10 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
      }
      if (((uVar10 & 0x20000) == 0) || (iVar11 == 100)) break;
      iVar11 = iVar11 + 1;
    }
    if ((uVar10 & 0x2ff00) != 0x1800) goto LAB_000a8920;
    uVar18 = uVar10 & 0xff;
LAB_000a8928:
    if ((int)(uVar10 << 0xe) < 0) {
      if (RTDebugLevel == 0) {
        bVar4 = *(byte *)(param_1 + 0x4ae1);
      }
      else {
        printk("BBP read R%d fail\n",0x18);
        bVar4 = *(byte *)(param_1 + 0x4ae1);
      }
      uVar18 = (uint)bVar4;
      cVar8 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
    }
    else {
      cVar8 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
    }
    iVar15 = 0;
    do {
      uVar10 = 0;
      if (cVar8 == '\0') {
        uVar10 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
      }
      if ((uVar10 & 0x20000) == 0) {
        if (cVar8 == '\0') {
          *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c) = uVar18 | 0xa1801;
        }
        *(byte *)(param_1 + 0x4ae1) = (byte)uVar18 | 1;
        if (iVar15 != 100) goto LAB_000a8a08;
        break;
      }
      iVar15 = iVar15 + 1;
    } while (iVar15 != 100);
    if (RTDebugLevel != 0) {
      printk("BBP write R%d fail\n",0x18);
    }
  }
LAB_000a8a08:
  if (RTDebugLevel < 3) {
    iVar15 = 0;
    goto LAB_000a9d9c;
  }
  pcVar9 = "TXCARS";
  goto LAB_000a9d58;
code_r0x000a8d08:
  iVar15 = iVar15 + 1;
  if (iVar15 == 100) goto LAB_000a8de4;
  goto LAB_000a8cf0;
code_r0x000a9b38:
  uVar18 = uVar16 - 1;
  uVar16 = uVar18 & 0xff;
  RT30xxReadRFRegister(param_1,0x1d,local_30);
  uVar18 = (uVar18 & 3) << 6 | (uint)local_30[0];
  local_30[0] = (byte)uVar18;
  RT30xxWriteRFRegister(param_1,0x1d,uVar18);
  if (iVar15 == 100) {
    pcVar7 = *(code **)(param_1 + 0x14);
    goto LAB_000a9be4;
  }
  uVar18 = uVar16 - 2;
  goto LAB_000a9bd0;
LAB_000a8324:
  if ((int)(uVar18 << 0xe) < 0) {
    if (RTDebugLevel == 0) {
      cVar8 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
    }
    else {
      printk("BBP read R%d fail\n",0x16);
      cVar8 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
    }
  }
  else {
    cVar8 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
  }
  iVar15 = 0;
  do {
    uVar18 = 0;
    if (cVar8 == '\0') {
      uVar18 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
    }
    if ((uVar18 & 0x20000) == 0) {
      if (cVar8 == '\0') {
        *(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x101c) = 0xa16c1;
      }
      *(undefined1 *)(param_1 + 0x4adf) = 0xc1;
      if (iVar15 != 100) {
        cVar8 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
        goto LAB_000a8408;
      }
      break;
    }
    iVar15 = iVar15 + 1;
  } while (iVar15 != 100);
  if (RTDebugLevel == 0) {
    cVar8 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
  }
  else {
    printk("BBP write R%d fail\n",0x16);
    cVar8 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
  }
LAB_000a8408:
  if (cVar8 == '\0') {
    *(uint *)(*(int *)(param_1 + 0xdc) + 0x1004) =
         *(uint *)(*(int *)(param_1 + 0xdc) + 0x1004) | 0x10;
  }
LAB_000a842c:
  if (RTDebugLevel < 3) {
    iVar15 = 0;
    goto LAB_000a9d9c;
  }
  pcVar9 = "TXCARR";
LAB_000a9d58:
  iVar15 = 0;
  printk("ATE : <=== %s\n",pcVar9);
LAB_000a9d9c:
  RtmpOsMsDelay(5);
  if (2 < RTDebugLevel) {
    printk("<=== %s\n","ATECmdHandler");
  }
  if (iVar15 != 0) {
    if (2 < RTDebugLevel) {
      printk("Set_ATE_Proc Failed\n");
      return 0;
    }
    return 0;
  }
  if (2 < RTDebugLevel) {
    printk("Set_ATE_Proc Success\n");
    return 1;
  }
  return 1;
}