void ChannelSwitchAction(int param_1,uint param_2,char param_3,char param_4)

{
  undefined1 uVar1;
  char cVar2;
  int iVar3;
  int iVar4;
  uint uVar5;
  uint uVar6;
  char *pcVar7;
  uint uVar8;
  uint uVar9;
  byte bVar10;
  
  param_2 = param_2 & 0xff;
  if (2 < RTDebugLevel) {
    printk("SPECTRUM - ChannelSwitchAction(NewChannel = %d , Secondary = %d)  \n",param_3,param_4);
  }
  iVar3 = ChannelSwitchSanityCheck(param_1,param_2,param_3,param_4);
  uVar5 = Status;
  if (iVar3 == 0) {
    return;
  }
  if (param_4 == '\0') {
    cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
    uVar6 = 0;
    if (cVar2 == '\0') {
      if (*(int *)(param_1 + 0x29f8) == 4) {
        uVar8 = 0;
        if (*(char *)(param_1 + 0xad) == '\x01') {
          Status = Status & 0xfffffffe;
          uVar8 = uVar5 & 1;
        }
        iVar3 = 0;
        cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
        while( true ) {
          uVar5 = 0;
          if (cVar2 == '\0') {
            uVar5 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
          }
          if ((uVar5 & 0x20000) == 0) {
            if (cVar2 == '\0') {
              *(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x101c) = 0xb0400;
            }
            iVar4 = 1;
            while( true ) {
              uVar5 = 0;
              if (*(char *)(param_1 + 0xec) == '\0') {
                uVar5 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
              }
              if (((uVar5 & 0x20000) == 0) || (iVar4 == 100)) break;
              iVar4 = iVar4 + 1;
            }
            if ((uVar5 & 0x2ff00) == 0x400) {
              uVar6 = uVar5 & 0xff;
              goto LAB_0001b508;
            }
          }
          iVar3 = iVar3 + 1;
          if (iVar3 == 100) break;
          cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
        }
        uVar6 = 0;
LAB_0001b508:
        if ((int)(uVar5 << 0xe) < 0) {
          printk("ERROR!!! ");
          printk("BBP(viaMCU=%d) read R%d fail\n",0,4);
          uVar6 = (uint)*(byte *)(param_1 + 0x4acd);
LAB_0001b6a0:
          cVar2 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
        }
        else {
          cVar2 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
        }
      }
      else {
        uVar8 = 0;
        if (*(char *)(param_1 + 0xad) == '\x01') {
          Status = Status & 0xfffffffe;
          uVar8 = uVar5 & 1;
        }
        iVar3 = 0;
        cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
        while( true ) {
          uVar5 = 0;
          if (cVar2 == '\0') {
            uVar5 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028);
          }
          if ((uVar5 & 0x20000) == 0) {
            if (cVar2 == '\0') {
              *(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x7028) = 0xb0400;
            }
            AsicSendCommandToMcuBBP(param_1,0x80,0xff,0,0,0);
            RTMPusecDelay(1000);
            iVar4 = 1;
            while( true ) {
              uVar5 = 0;
              if (*(char *)(param_1 + 0xec) == '\0') {
                uVar5 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028);
              }
              if (((uVar5 & 0x20000) == 0) || (iVar4 == 100)) break;
              iVar4 = iVar4 + 1;
            }
            if ((uVar5 & 0x2ff00) == 0x400) {
              uVar6 = uVar5 & 0xff;
              goto LAB_0001b648;
            }
          }
          iVar3 = iVar3 + 1;
          if (iVar3 == 100) break;
          cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
        }
        uVar6 = 0;
LAB_0001b648:
        if ((int)(uVar5 << 0xe) < 0) {
          printk("ERROR!!! ");
          printk("BBP(viaMCU=%d) read R%d fail\n",1,4);
          uVar6 = (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_0001b6a0;
        }
        cVar2 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
      }
      if (cVar2 == '\x01') {
        Status = Status & 0xfffffffe;
        if (uVar8 != 0) {
          Status = Status | 1;
        }
        cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
      }
      else {
        cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
      }
    }
    uVar5 = Status;
    if (cVar2 == '\0') {
      uVar6 = uVar6 & 0xe7;
      if (*(int *)(param_1 + 0x29f8) == 4) {
        uVar8 = 0;
        if (*(char *)(param_1 + 0xad) == '\x01') {
          Status = Status & 0xfffffffe;
          uVar8 = uVar5 & 1;
        }
        iVar3 = 1;
        cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
        while( true ) {
          uVar5 = 0;
          if (cVar2 == '\0') {
            uVar5 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
          }
          if ((uVar5 & 0x20000) == 0) break;
          iVar3 = iVar3 + 1;
          printk(&_LC15)   //possible issue identified - semgrep
          if (iVar3 == 100) goto LAB_0001b79c;
          cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
        }
        if (cVar2 == '\0') {
          *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c) = uVar6 | 0xa0400;
        }
        *(char *)(param_1 + 0x4acd) = (char)uVar6;
        if (iVar3 != 100) goto LAB_0001b7bc;
LAB_0001b79c:
        printk("ERROR!!! ");
        printk("BBP write R%d fail\n",4);
LAB_0001b7bc:
        cVar2 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
      }
      else {
        uVar8 = 0;
        if (*(char *)(param_1 + 0xad) == '\x01') {
          Status = Status & 0xfffffffe;
          uVar8 = uVar5 & 1;
        }
        iVar3 = 1;
        cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
        while( true ) {
          uVar5 = 0;
          if (cVar2 == '\0') {
            uVar5 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028);
          }
          if ((uVar5 & 0x20000) == 0) break;
          iVar4 = iVar3 % 0x14;
          iVar3 = iVar3 + 1;
          if ((iVar4 == 0) && (cVar2 == '\0')) {
            *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) = uVar5 & 0xfffdffff;
          }
          printk(&_LC15)   //possible issue identified - semgrep
          if (iVar3 == 100) goto LAB_0001b918;
          cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
        }
        if (cVar2 == '\0') {
          *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) = uVar6 | 0xa0400;
        }
        iVar4 = AsicSendCommandToMcuBBP(param_1,0x80,0xff,0,0,0);
        if (*(char *)(param_1 + 0x16964) == '\x01') {
          RTMPusecDelay(1000);
        }
        if ((iVar4 == 0) && (*(char *)(param_1 + 0xec) == '\0')) {
          *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) = uVar6 | 0x80400;
        }
        *(char *)(param_1 + 0x4acd) = (char)uVar6;
        if (iVar3 != 100) goto LAB_0001b960;
LAB_0001b918:
        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;
LAB_0001b960:
          cVar2 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
        }
        else {
          cVar2 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
        }
      }
      if ((cVar2 == '\x01') && (Status = Status & 0xfffffffe, uVar8 != 0)) {
        Status = Status | 1;
      }
    }
    uVar5 = Status;
    if (*(int *)(param_1 + 0x4a94) != 0x28600100) goto LAB_0001c24c;
    cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
    if (cVar2 == '\0') {
      if (*(int *)(param_1 + 0x29f8) == 4) {
        uVar6 = 0;
        if (*(char *)(param_1 + 0xad) == '\x01') {
          Status = Status & 0xfffffffe;
          uVar6 = uVar5 & 1;
        }
        iVar3 = 1;
        cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
        while( true ) {
          uVar5 = 0;
          if (cVar2 == '\0') {
            uVar5 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
          }
          if ((uVar5 & 0x20000) == 0) break;
          iVar3 = iVar3 + 1;
          printk(&_LC15)   //possible issue identified - semgrep
          if (iVar3 == 100) goto LAB_0001ba78;
          cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
        }
        if (cVar2 == '\0') {
          *(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x101c) = 0xa4516;
        }
        *(undefined1 *)(param_1 + 0x4b0e) = 0x16;
        if (iVar3 != 100) {
          cVar2 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
          goto LAB_0001ba9c;
        }
LAB_0001ba78:
        printk("ERROR!!! ");
        printk("BBP write R%d fail\n",0x45);
        cVar2 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
LAB_0001ba9c:
        if (cVar2 == '\x01') {
LAB_0001bc60:
          Status = Status & 0xfffffffe;
          if (uVar6 != 0) {
            Status = Status | 1;
          }
          cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
        }
        else {
          cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
        }
      }
      else {
        uVar6 = 0;
        if (*(char *)(param_1 + 0xad) == '\x01') {
          Status = Status & 0xfffffffe;
          uVar6 = uVar5 & 1;
        }
        iVar3 = 1;
        cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
        while( true ) {
          uVar5 = 0;
          if (cVar2 == '\0') {
            uVar5 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028);
          }
          if ((uVar5 & 0x20000) == 0) break;
          iVar4 = iVar3 % 0x14;
          iVar3 = iVar3 + 1;
          if ((iVar4 == 0) && (cVar2 == '\0')) {
            *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) = uVar5 & 0xfffdffff;
          }
          printk(&_LC15)   //possible issue identified - semgrep
          if (iVar3 == 100) goto LAB_0001bc04;
          cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
        }
        if (cVar2 == '\0') {
          *(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x7028) = 0xa4516;
        }
        iVar4 = AsicSendCommandToMcuBBP(param_1,0x80,0xff,0,0,0);
        if (*(char *)(param_1 + 0x16964) == '\x01') {
          RTMPusecDelay(1000);
        }
        if ((iVar4 == 0) && (*(char *)(param_1 + 0xec) == '\0')) {
          *(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x7028) = 0x84516;
        }
        *(undefined1 *)(param_1 + 0x4b0e) = 0x16;
        if (iVar3 != 100) {
          cVar2 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
          goto LAB_0001bc50;
        }
LAB_0001bc04:
        printk("ERROR!!! ");
        printk("BBP write R%d fail\n",0x45);
        if (*(char *)(param_1 + 0xec) == '\0') {
          *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) =
               *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) & 0xfffdffff;
          cVar2 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
        }
        else {
          cVar2 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
        }
LAB_0001bc50:
        if (cVar2 == '\x01') goto LAB_0001bc60;
        cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
      }
      uVar5 = Status;
      if (cVar2 == '\0') {
        if (*(int *)(param_1 + 0x29f8) == 4) {
          uVar6 = 0;
          if (*(char *)(param_1 + 0xad) == '\x01') {
            Status = Status & 0xfffffffe;
            uVar6 = uVar5 & 1;
          }
          iVar3 = 1;
          cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
          while( true ) {
            uVar5 = 0;
            if (cVar2 == '\0') {
              uVar5 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
            }
            if ((uVar5 & 0x20000) == 0) break;
            iVar3 = iVar3 + 1;
            printk(&_LC15)   //possible issue identified - semgrep
            if (iVar3 == 100) goto LAB_0001bd50;
            cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
          }
          if (cVar2 == '\0') {
            *(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x101c) = 0xa4608;
          }
          *(undefined1 *)(param_1 + 0x4b0f) = 8;
          if (iVar3 != 100) {
            cVar2 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
            goto LAB_0001bd74;
          }
LAB_0001bd50:
          printk("ERROR!!! ");
          printk("BBP write R%d fail\n",0x46);
          cVar2 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
LAB_0001bd74:
          if (cVar2 == '\x01') {
LAB_0001bf38:
            Status = Status & 0xfffffffe;
            if (uVar6 != 0) {
              Status = Status | 1;
            }
            cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
          }
          else {
            cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
          }
        }
        else {
          uVar6 = 0;
          if (*(char *)(param_1 + 0xad) == '\x01') {
            Status = Status & 0xfffffffe;
            uVar6 = uVar5 & 1;
          }
          iVar3 = 1;
          cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
          while( true ) {
            uVar5 = 0;
            if (cVar2 == '\0') {
              uVar5 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028);
            }
            if ((uVar5 & 0x20000) == 0) break;
            iVar4 = iVar3 % 0x14;
            iVar3 = iVar3 + 1;
            if ((iVar4 == 0) && (cVar2 == '\0')) {
              *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) = uVar5 & 0xfffdffff;
            }
            printk(&_LC15)   //possible issue identified - semgrep
            if (iVar3 == 100) goto LAB_0001bedc;
            cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
          }
          if (cVar2 == '\0') {
            *(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x7028) = 0xa4608;
          }
          iVar4 = AsicSendCommandToMcuBBP(param_1,0x80,0xff,0,0,0);
          if (*(char *)(param_1 + 0x16964) == '\x01') {
            RTMPusecDelay(1000);
          }
          if ((iVar4 == 0) && (*(char *)(param_1 + 0xec) == '\0')) {
            *(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x7028) = 0x84608;
          }
          *(undefined1 *)(param_1 + 0x4b0f) = 8;
          if (iVar3 != 100) {
            cVar2 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
            goto LAB_0001bf28;
          }
LAB_0001bedc:
          printk("ERROR!!! ");
          printk("BBP write R%d fail\n",0x46);
          if (*(char *)(param_1 + 0xec) == '\0') {
            *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) =
                 *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) & 0xfffdffff;
            cVar2 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
          }
          else {
            cVar2 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
          }
LAB_0001bf28:
          if (cVar2 == '\x01') goto LAB_0001bf38;
          cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
        }
      }
      else {
        cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
      }
    }
    uVar5 = Status;
    if (cVar2 == '\0') {
      if (*(int *)(param_1 + 0x29f8) == 4) {
        uVar6 = 0;
        if (*(char *)(param_1 + 0xad) == '\x01') {
          Status = Status & 0xfffffffe;
          uVar6 = uVar5 & 1;
        }
        iVar3 = 1;
        cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
        while( true ) {
          uVar5 = 0;
          if (cVar2 == '\0') {
            uVar5 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
          }
          if ((uVar5 & 0x20000) == 0) break;
          iVar3 = iVar3 + 1;
          printk(&_LC15)   //possible issue identified - semgrep
          if (iVar3 == 100) goto LAB_0001c028;
          cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
        }
        if (cVar2 == '\0') {
          *(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x101c) = 0xa4911;
        }
        *(undefined1 *)(param_1 + 0x4b12) = 0x11;
        if (iVar3 != 100) {
          cVar2 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
          goto joined_r0x0001c204;
        }
LAB_0001c028:
        printk("ERROR!!! ");
        printk("BBP write R%d fail\n",0x49);
        cVar2 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
      }
      else {
        uVar6 = 0;
        if (*(char *)(param_1 + 0xad) == '\x01') {
          Status = Status & 0xfffffffe;
          uVar6 = uVar5 & 1;
        }
        iVar3 = 1;
        cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
        while( true ) {
          uVar5 = 0;
          if (cVar2 == '\0') {
            uVar5 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028);
          }
          if ((uVar5 & 0x20000) == 0) break;
          iVar4 = iVar3 % 0x14;
          iVar3 = iVar3 + 1;
          if ((iVar4 == 0) && (cVar2 == '\0')) {
            *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) = uVar5 & 0xfffdffff;
          }
          printk(&_LC15)   //possible issue identified - semgrep
          if (iVar3 == 100) goto LAB_0001c1b4;
          cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
        }
        if (cVar2 == '\0') {
          *(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x7028) = 0xa4911;
        }
        iVar4 = AsicSendCommandToMcuBBP(param_1,0x80,0xff,0,0,0);
        if (*(char *)(param_1 + 0x16964) == '\x01') {
          RTMPusecDelay(1000);
        }
        if ((iVar4 == 0) && (*(char *)(param_1 + 0xec) == '\0')) {
          *(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x7028) = 0x84911;
        }
        *(undefined1 *)(param_1 + 0x4b12) = 0x11;
        if (iVar3 != 100) {
          cVar2 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
          goto joined_r0x0001c204;
        }
LAB_0001c1b4:
        printk("ERROR!!! ");
        printk("BBP write R%d fail\n",0x49);
        if (*(char *)(param_1 + 0xec) == '\0') {
          *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) =
               *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) & 0xfffdffff;
          cVar2 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
        }
        else {
          cVar2 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
        }
      }
joined_r0x0001c204:
      if ((cVar2 == '\x01') && (Status = Status & 0xfffffffe, uVar6 != 0)) {
        Status = Status | 1;
      }
    }
    if (2 < RTDebugLevel) {
      printk("!!!rt2860C !!! \n");
    }
LAB_0001c24c:
    *(char *)(param_1 + 0x169ec) = param_3;
    *(char *)(param_1 + 0x169ed) = param_3;
    AsicRxAntEvalTimeout[param_1 + 5] = (code)0x0;
    AsicSwitchChannel(param_1,param_3,0);
    AsicLockChannel(param_1,*(undefined1 *)(param_1 + 0x169ec));
    iVar3 = param_2 * 0xa20 + param_1;
    *(uint *)(iVar3 + 0x5d350) = *(uint *)(iVar3 + 0x5d350) & 0xffffff7f;
    *(uint *)(param_1 + 0x16b18) = *(uint *)(param_1 + 0x16b18) & 0xfffff8ff;
    if (RTDebugLevel < 3) {
      return;
    }
    printk("!!!20MHz   !!! \n");
    return;
  }
  if ((param_4 != '\x01') && (param_4 != '\x03')) {
    return;
  }
  if (-1 < *(int *)(param_1 + 0x16afc) << 0xe) {
    return;
  }
  *(char *)(param_1 + 0x169ec) = param_3;
  if (param_4 == '\x01') {
    *(char *)(param_1 + 0x169ed) = param_3 + '\x02';
    if (*(char *)(param_1 + 0xec) == '\0') {
      *(uint *)(*(int *)(param_1 + 0xdc) + 0x132c) =
           *(uint *)(*(int *)(param_1 + 0xdc) + 0x132c) & 0xfe;
    }
    uVar6 = 0;
    if (*(char *)(param_1 + 0xec) == '\0') {
      if (*(int *)(param_1 + 0x29f8) == 4) {
        uVar8 = 0;
        if (*(char *)(param_1 + 0xad) == '\x01') {
          Status = Status & 0xfffffffe;
          uVar8 = uVar5 & 1;
        }
        iVar3 = 0;
        cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
        while( true ) {
          uVar5 = 0;
          if (cVar2 == '\0') {
            uVar5 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
          }
          if ((uVar5 & 0x20000) == 0) {
            if (cVar2 == '\0') {
              *(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x101c) = 0xb0400;
            }
            iVar4 = 1;
            while( true ) {
              uVar5 = 0;
              if (*(char *)(param_1 + 0xec) == '\0') {
                uVar5 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
              }
              if (((uVar5 & 0x20000) == 0) || (iVar4 == 100)) break;
              iVar4 = iVar4 + 1;
            }
            if ((uVar5 & 0x2ff00) == 0x400) {
              uVar6 = uVar5 & 0xff;
              goto LAB_0001c458;
            }
          }
          iVar3 = iVar3 + 1;
          if (iVar3 == 100) break;
          cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
        }
        uVar6 = 0;
LAB_0001c458:
        if ((int)(uVar5 << 0xe) < 0) {
          printk("ERROR!!! ");
          printk("BBP(viaMCU=%d) read R%d fail\n",0,4);
          uVar6 = (uint)*(byte *)(param_1 + 0x4acd);
LAB_0001c5f0:
          cVar2 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
        }
        else {
          cVar2 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
        }
      }
      else {
        uVar8 = 0;
        if (*(char *)(param_1 + 0xad) == '\x01') {
          Status = Status & 0xfffffffe;
          uVar8 = uVar5 & 1;
        }
        iVar3 = 0;
        cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
        while( true ) {
          uVar5 = 0;
          if (cVar2 == '\0') {
            uVar5 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028);
          }
          if ((uVar5 & 0x20000) == 0) {
            if (cVar2 == '\0') {
              *(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x7028) = 0xb0400;
            }
            AsicSendCommandToMcuBBP(param_1,0x80,0xff,0,0,0);
            RTMPusecDelay(1000);
            iVar4 = 1;
            while( true ) {
              uVar5 = 0;
              if (*(char *)(param_1 + 0xec) == '\0') {
                uVar5 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028);
              }
              if (((uVar5 & 0x20000) == 0) || (iVar4 == 100)) break;
              iVar4 = iVar4 + 1;
            }
            if ((uVar5 & 0x2ff00) == 0x400) {
              uVar6 = uVar5 & 0xff;
              goto LAB_0001c598;
            }
          }
          iVar3 = iVar3 + 1;
          if (iVar3 == 100) break;
          cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
        }
        uVar6 = 0;
LAB_0001c598:
        if ((int)(uVar5 << 0xe) < 0) {
          printk("ERROR!!! ");
          printk("BBP(viaMCU=%d) read R%d fail\n",1,4);
          uVar6 = (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_0001c5f0;
        }
        cVar2 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
      }
      if (cVar2 == '\x01') {
        Status = Status & 0xfffffffe;
        if (uVar8 != 0) {
          Status = Status | 1;
        }
        goto LAB_0001c614;
      }
      cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
    }
    else {
LAB_0001c614:
      cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
    }
    uVar5 = Status;
    uVar6 = uVar6 & 0xe7;
    uVar8 = uVar6 | 0x10;
    if (cVar2 == '\0') {
      if (*(int *)(param_1 + 0x29f8) == 4) {
        uVar9 = 0;
        if (*(char *)(param_1 + 0xad) == '\x01') {
          Status = Status & 0xfffffffe;
          uVar9 = uVar5 & 1;
        }
        iVar3 = 1;
        cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
        while( true ) {
          uVar5 = 0;
          if (cVar2 == '\0') {
            uVar5 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
          }
          if ((uVar5 & 0x20000) == 0) break;
          iVar3 = iVar3 + 1;
          printk(&_LC15)   //possible issue identified - semgrep
          if (iVar3 == 100) goto LAB_0001c6ec;
          cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
        }
        if (cVar2 == '\0') {
          *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c) = uVar6 | 0xa0410;
        }
        *(char *)(param_1 + 0x4acd) = (char)uVar8;
        if (iVar3 != 100) goto LAB_0001c70c;
LAB_0001c6ec:
        printk("ERROR!!! ");
        printk("BBP write R%d fail\n",4);
LAB_0001c70c:
        if (*(char *)(param_1 + 0xad) == '\x01') {
LAB_0001c8c4:
          Status = Status & 0xfffffffe;
          if (uVar9 != 0) {
            Status = Status | 1;
          }
          goto LAB_0001c8d4;
        }
        cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
      }
      else {
        uVar9 = 0;
        if (*(char *)(param_1 + 0xad) == '\x01') {
          Status = Status & 0xfffffffe;
          uVar9 = uVar5 & 1;
        }
        iVar3 = 1;
        cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
        while( true ) {
          uVar5 = 0;
          if (cVar2 == '\0') {
            uVar5 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028);
          }
          if ((uVar5 & 0x20000) == 0) break;
          iVar4 = iVar3 % 0x14;
          iVar3 = iVar3 + 1;
          if ((iVar4 == 0) && (cVar2 == '\0')) {
            *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) = uVar5 & 0xfffdffff;
          }
          printk(&_LC15)   //possible issue identified - semgrep
          if (iVar3 == 100) goto LAB_0001c868;
          cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
        }
        if (cVar2 == '\0') {
          *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) = uVar6 | 0xa0410;
        }
        iVar4 = AsicSendCommandToMcuBBP(param_1,0x80,0xff,0,0,0);
        if (*(char *)(param_1 + 0x16964) == '\x01') {
          RTMPusecDelay(1000);
        }
        if ((iVar4 == 0) && (*(char *)(param_1 + 0xec) == '\0')) {
          *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) = uVar6 | 0x80410;
        }
        *(char *)(param_1 + 0x4acd) = (char)uVar8;
        if (iVar3 != 100) goto LAB_0001c8b0;
LAB_0001c868:
        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;
LAB_0001c8b0:
          cVar2 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
        }
        else {
          cVar2 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
        }
        if (cVar2 == '\x01') goto LAB_0001c8c4;
        cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
      }
    }
    else {
LAB_0001c8d4:
      cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
    }
    uVar5 = Status;
    if (cVar2 == '\0') {
      if (*(int *)(param_1 + 0x29f8) == 4) {
        uVar6 = 0;
        if (*(char *)(param_1 + 0xad) == '\x01') {
          Status = Status & 0xfffffffe;
          uVar6 = uVar5 & 1;
        }
        iVar3 = 0;
        cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
LAB_0001c928:
        uVar5 = 0;
        if (cVar2 == '\0') {
          uVar5 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
        }
        if ((uVar5 & 0x20000) != 0) {
LAB_0001c9b4:
          iVar3 = iVar3 + 1;
          if (iVar3 == 100) goto LAB_0001c9bc;
          cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
          goto LAB_0001c928;
        }
        if (cVar2 == '\0') {
          *(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x101c) = 0xb0300;
        }
        iVar4 = 1;
        while( true ) {
          uVar5 = 0;
          if (*(char *)(param_1 + 0xec) == '\0') {
            uVar5 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
          }
          if (((uVar5 & 0x20000) == 0) || (iVar4 == 100)) break;
          iVar4 = iVar4 + 1;
        }
        if ((uVar5 & 0x2ff00) != 0x300) goto LAB_0001c9b4;
        uVar8 = uVar5 & 0xff;
LAB_0001c9bc:
        if ((int)(uVar5 << 0xe) < 0) {
          printk("ERROR!!! ");
          printk("BBP(viaMCU=%d) read R%d fail\n",0,3);
          uVar8 = (uint)*(byte *)(param_1 + 0x4acc);
LAB_0001cb50:
          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 = uVar5 & 1;
        }
        iVar3 = 0;
        cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
LAB_0001ca2c:
        uVar5 = 0;
        if (cVar2 == '\0') {
          uVar5 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028);
        }
        if ((uVar5 & 0x20000) != 0) {
LAB_0001caf0:
          iVar3 = iVar3 + 1;
          if (iVar3 == 100) goto LAB_0001caf8;
          cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
          goto LAB_0001ca2c;
        }
        if (cVar2 == '\0') {
          *(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x7028) = 0xb0300;
        }
        AsicSendCommandToMcuBBP(param_1,0x80,0xff,0,0,0);
        RTMPusecDelay(1000);
        iVar4 = 1;
        while( true ) {
          uVar5 = 0;
          if (*(char *)(param_1 + 0xec) == '\0') {
            uVar5 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028);
          }
          if (((uVar5 & 0x20000) == 0) || (iVar4 == 100)) break;
          iVar4 = iVar4 + 1;
        }
        if ((uVar5 & 0x2ff00) != 0x300) goto LAB_0001caf0;
        uVar8 = uVar5 & 0xff;
LAB_0001caf8:
        if ((int)(uVar5 << 0xe) < 0) {
          printk("ERROR!!! ");
          printk("BBP(viaMCU=%d) read R%d fail\n",1,3);
          uVar8 = (uint)*(byte *)(param_1 + 0x4acc);
          if (*(char *)(param_1 + 0xec) == '\0') {
            *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) =
                 *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) & 0xfffdffff;
          }
          goto LAB_0001cb50;
        }
        cVar2 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
      }
      if (cVar2 == '\x01') {
        Status = Status & 0xfffffffe;
        if (uVar6 != 0) {
          Status = Status | 1;
        }
        cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
      }
      else {
        cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
      }
    }
    else {
      cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
    }
    uVar5 = Status;
    if (cVar2 == '\0') {
      uVar8 = uVar8 & 0xdf;
      if (*(int *)(param_1 + 0x29f8) == 4) {
        uVar6 = 0;
        if (*(char *)(param_1 + 0xad) == '\x01') {
          Status = Status & 0xfffffffe;
          uVar6 = uVar5 & 1;
        }
        iVar3 = 1;
        cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
        while( true ) {
          uVar5 = 0;
          if (cVar2 == '\0') {
            uVar5 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
          }
          if ((uVar5 & 0x20000) == 0) break;
          iVar3 = iVar3 + 1;
          printk(&_LC15)   //possible issue identified - semgrep
          if (iVar3 == 100) goto LAB_0001cc4c;
          cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
        }
        if (cVar2 == '\0') {
          *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c) = uVar8 | 0xa0300;
        }
        *(char *)(param_1 + 0x4acc) = (char)uVar8;
        if (iVar3 != 100) goto LAB_0001cc6c;
LAB_0001cc4c:
        printk("ERROR!!! ");
        printk("BBP write R%d fail\n",3);
LAB_0001cc6c:
        cVar2 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
      }
      else {
        uVar6 = 0;
        if (*(char *)(param_1 + 0xad) == '\x01') {
          Status = Status & 0xfffffffe;
          uVar6 = uVar5 & 1;
        }
        iVar3 = 1;
        cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
        while( true ) {
          uVar5 = 0;
          if (cVar2 == '\0') {
            uVar5 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028);
          }
          if ((uVar5 & 0x20000) == 0) break;
          iVar4 = iVar3 % 0x14;
          iVar3 = iVar3 + 1;
          if ((iVar4 == 0) && (cVar2 == '\0')) {
            *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) = uVar5 & 0xfffdffff;
          }
          printk(&_LC15)   //possible issue identified - semgrep
          if (iVar3 == 100) goto LAB_0001cdc8;
          cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
        }
        if (cVar2 == '\0') {
          *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) = uVar8 | 0xa0300;
        }
        iVar4 = AsicSendCommandToMcuBBP(param_1,0x80,0xff,0,0,0);
        if (*(char *)(param_1 + 0x16964) == '\x01') {
          RTMPusecDelay(1000);
        }
        if ((iVar4 == 0) && (*(char *)(param_1 + 0xec) == '\0')) {
          *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) = uVar8 | 0x80300;
        }
        *(char *)(param_1 + 0x4acc) = (char)uVar8;
        if (iVar3 != 100) goto LAB_0001ce10;
LAB_0001cdc8:
        printk("ERROR!!! ");
        printk("BBP write R%d fail\n",3);
        if (*(char *)(param_1 + 0xec) == '\0') {
          *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) =
               *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) & 0xfffdffff;
LAB_0001ce10:
          cVar2 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
        }
        else {
          cVar2 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
        }
      }
      if ((cVar2 == '\x01') && (Status = Status & 0xfffffffe, uVar6 != 0)) {
        Status = Status | 1;
      }
    }
    if (RTDebugLevel < 3) goto LAB_0001d990;
    uVar1 = *(undefined1 *)(param_1 + 0x169ed);
    pcVar7 = "!!!40MHz Lower LINK UP !!! Control Channel at Below. Central = %d \n";
  }
  else {
    *(char *)(param_1 + 0x169ed) = param_3 + -2;
    if (*(char *)(param_1 + 0xec) == '\0') {
      *(uint *)(*(int *)(param_1 + 0xdc) + 0x132c) =
           *(uint *)(*(int *)(param_1 + 0xdc) + 0x132c) & 0xfe | 1;
    }
    uVar6 = 0;
    if (*(char *)(param_1 + 0xec) == '\0') {
      if (*(int *)(param_1 + 0x29f8) == 4) {
        uVar8 = 0;
        if (*(char *)(param_1 + 0xad) == '\x01') {
          Status = Status & 0xfffffffe;
          uVar8 = uVar5 & 1;
        }
        iVar3 = 0;
        cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
        while( true ) {
          uVar5 = 0;
          if (cVar2 == '\0') {
            uVar5 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
          }
          if ((uVar5 & 0x20000) == 0) {
            if (cVar2 == '\0') {
              *(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x101c) = 0xb0400;
            }
            iVar4 = 1;
            while( true ) {
              uVar5 = 0;
              if (*(char *)(param_1 + 0xec) == '\0') {
                uVar5 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
              }
              if (((uVar5 & 0x20000) == 0) || (iVar4 == 100)) break;
              iVar4 = iVar4 + 1;
            }
            if ((uVar5 & 0x2ff00) == 0x400) {
              uVar6 = uVar5 & 0xff;
              goto LAB_0001cf78;
            }
          }
          iVar3 = iVar3 + 1;
          if (iVar3 == 100) break;
          cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
        }
        uVar6 = 0;
LAB_0001cf78:
        if ((int)(uVar5 << 0xe) < 0) {
          printk("ERROR!!! ");
          printk("BBP(viaMCU=%d) read R%d fail\n",0,4);
          uVar6 = (uint)*(byte *)(param_1 + 0x4acd);
LAB_0001d110:
          cVar2 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
        }
        else {
          cVar2 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
        }
      }
      else {
        uVar8 = 0;
        if (*(char *)(param_1 + 0xad) == '\x01') {
          Status = Status & 0xfffffffe;
          uVar8 = uVar5 & 1;
        }
        iVar3 = 0;
        cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
        while( true ) {
          uVar5 = 0;
          if (cVar2 == '\0') {
            uVar5 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028);
          }
          if ((uVar5 & 0x20000) == 0) {
            if (cVar2 == '\0') {
              *(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x7028) = 0xb0400;
            }
            AsicSendCommandToMcuBBP(param_1,0x80,0xff,0,0,0);
            RTMPusecDelay(1000);
            iVar4 = 1;
            while( true ) {
              uVar5 = 0;
              if (*(char *)(param_1 + 0xec) == '\0') {
                uVar5 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028);
              }
              if (((uVar5 & 0x20000) == 0) || (iVar4 == 100)) break;
              iVar4 = iVar4 + 1;
            }
            if ((uVar5 & 0x2ff00) == 0x400) {
              uVar6 = uVar5 & 0xff;
              goto LAB_0001d0b8;
            }
          }
          iVar3 = iVar3 + 1;
          if (iVar3 == 100) break;
          cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
        }
        uVar6 = 0;
LAB_0001d0b8:
        if ((int)(uVar5 << 0xe) < 0) {
          printk("ERROR!!! ");
          printk("BBP(viaMCU=%d) read R%d fail\n",1,4);
          uVar6 = (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_0001d110;
        }
        cVar2 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
      }
      if (cVar2 == '\x01') {
        Status = Status & 0xfffffffe;
        if (uVar8 != 0) {
          Status = Status | 1;
        }
        goto LAB_0001d134;
      }
      cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
    }
    else {
LAB_0001d134:
      cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
    }
    uVar5 = Status;
    uVar6 = uVar6 & 0xe7;
    uVar8 = uVar6 | 0x10;
    if (cVar2 == '\0') {
      if (*(int *)(param_1 + 0x29f8) == 4) {
        uVar9 = 0;
        if (*(char *)(param_1 + 0xad) == '\x01') {
          Status = Status & 0xfffffffe;
          uVar9 = uVar5 & 1;
        }
        iVar3 = 1;
        cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
        while( true ) {
          uVar5 = 0;
          if (cVar2 == '\0') {
            uVar5 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
          }
          if ((uVar5 & 0x20000) == 0) break;
          iVar3 = iVar3 + 1;
          printk(&_LC15)   //possible issue identified - semgrep
          if (iVar3 == 100) goto LAB_0001d20c;
          cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
        }
        if (cVar2 == '\0') {
          *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c) = uVar6 | 0xa0410;
        }
        *(char *)(param_1 + 0x4acd) = (char)uVar8;
        if (iVar3 != 100) goto LAB_0001d22c;
LAB_0001d20c:
        printk("ERROR!!! ");
        printk("BBP write R%d fail\n",4);
LAB_0001d22c:
        if (*(char *)(param_1 + 0xad) == '\x01') {
LAB_0001d3e4:
          Status = Status & 0xfffffffe;
          if (uVar9 != 0) {
            Status = Status | 1;
          }
          goto LAB_0001d3f4;
        }
        cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
      }
      else {
        uVar9 = 0;
        if (*(char *)(param_1 + 0xad) == '\x01') {
          Status = Status & 0xfffffffe;
          uVar9 = uVar5 & 1;
        }
        iVar3 = 1;
        cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
        while( true ) {
          uVar5 = 0;
          if (cVar2 == '\0') {
            uVar5 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028);
          }
          if ((uVar5 & 0x20000) == 0) break;
          iVar4 = iVar3 % 0x14;
          iVar3 = iVar3 + 1;
          if ((iVar4 == 0) && (cVar2 == '\0')) {
            *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) = uVar5 & 0xfffdffff;
          }
          printk(&_LC15)   //possible issue identified - semgrep
          if (iVar3 == 100) goto LAB_0001d388;
          cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
        }
        if (cVar2 == '\0') {
          *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) = uVar6 | 0xa0410;
        }
        iVar4 = AsicSendCommandToMcuBBP(param_1,0x80,0xff,0,0,0);
        if (*(char *)(param_1 + 0x16964) == '\x01') {
          RTMPusecDelay(1000);
        }
        if ((iVar4 == 0) && (*(char *)(param_1 + 0xec) == '\0')) {
          *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) = uVar6 | 0x80410;
        }
        *(char *)(param_1 + 0x4acd) = (char)uVar8;
        if (iVar3 != 100) goto LAB_0001d3d0;
LAB_0001d388:
        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;
LAB_0001d3d0:
          cVar2 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
        }
        else {
          cVar2 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
        }
        if (cVar2 == '\x01') goto LAB_0001d3e4;
        cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
      }
    }
    else {
LAB_0001d3f4:
      cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
    }
    uVar5 = Status;
    if (cVar2 == '\0') {
      if (*(int *)(param_1 + 0x29f8) == 4) {
        uVar6 = 0;
        if (*(char *)(param_1 + 0xad) == '\x01') {
          Status = Status & 0xfffffffe;
          uVar6 = uVar5 & 1;
        }
        iVar3 = 0;
        cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
LAB_0001d448:
        uVar5 = 0;
        if (cVar2 == '\0') {
          uVar5 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
        }
        if ((uVar5 & 0x20000) != 0) {
LAB_0001d4d4:
          iVar3 = iVar3 + 1;
          if (iVar3 == 100) goto LAB_0001d4dc;
          cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
          goto LAB_0001d448;
        }
        if (cVar2 == '\0') {
          *(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x101c) = 0xb0300;
        }
        iVar4 = 1;
        while( true ) {
          uVar5 = 0;
          if (*(char *)(param_1 + 0xec) == '\0') {
            uVar5 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
          }
          if (((uVar5 & 0x20000) == 0) || (iVar4 == 100)) break;
          iVar4 = iVar4 + 1;
        }
        if ((uVar5 & 0x2ff00) != 0x300) goto LAB_0001d4d4;
        uVar8 = uVar5 & 0xff;
LAB_0001d4dc:
        if ((int)(uVar5 << 0xe) < 0) {
          printk("ERROR!!! ");
          printk("BBP(viaMCU=%d) read R%d fail\n",0,3);
          uVar8 = (uint)*(byte *)(param_1 + 0x4acc);
LAB_0001d670:
          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 = uVar5 & 1;
        }
        iVar3 = 0;
        cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
LAB_0001d54c:
        uVar5 = 0;
        if (cVar2 == '\0') {
          uVar5 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028);
        }
        if ((uVar5 & 0x20000) != 0) {
LAB_0001d610:
          iVar3 = iVar3 + 1;
          if (iVar3 == 100) goto LAB_0001d618;
          cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
          goto LAB_0001d54c;
        }
        if (cVar2 == '\0') {
          *(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x7028) = 0xb0300;
        }
        AsicSendCommandToMcuBBP(param_1,0x80,0xff,0,0,0);
        RTMPusecDelay(1000);
        iVar4 = 1;
        while( true ) {
          uVar5 = 0;
          if (*(char *)(param_1 + 0xec) == '\0') {
            uVar5 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028);
          }
          if (((uVar5 & 0x20000) == 0) || (iVar4 == 100)) break;
          iVar4 = iVar4 + 1;
        }
        if ((uVar5 & 0x2ff00) != 0x300) goto LAB_0001d610;
        uVar8 = uVar5 & 0xff;
LAB_0001d618:
        if ((int)(uVar5 << 0xe) < 0) {
          printk("ERROR!!! ");
          printk("BBP(viaMCU=%d) read R%d fail\n",1,3);
          uVar8 = (uint)*(byte *)(param_1 + 0x4acc);
          if (*(char *)(param_1 + 0xec) == '\0') {
            *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) =
                 *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) & 0xfffdffff;
          }
          goto LAB_0001d670;
        }
        cVar2 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
      }
      if (cVar2 == '\x01') {
        Status = Status & 0xfffffffe;
        if (uVar6 != 0) {
          Status = Status | 1;
        }
        cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
      }
      else {
        cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
      }
    }
    else {
      cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
    }
    uVar5 = Status;
    if (cVar2 == '\0') {
      uVar8 = uVar8 & 0xdf;
      bVar10 = (byte)uVar8 | 0x20;
      if (*(int *)(param_1 + 0x29f8) == 4) {
        uVar6 = 0;
        if (*(char *)(param_1 + 0xad) == '\x01') {
          Status = Status & 0xfffffffe;
          uVar6 = uVar5 & 1;
        }
        iVar3 = 1;
        cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
        while( true ) {
          uVar5 = 0;
          if (cVar2 == '\0') {
            uVar5 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
          }
          if ((uVar5 & 0x20000) == 0) break;
          iVar3 = iVar3 + 1;
          printk(&_LC15)   //possible issue identified - semgrep
          if (iVar3 == 100) goto LAB_0001d770;
          cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
        }
        if (cVar2 == '\0') {
          *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c) = uVar8 | 0xa0320;
        }
        *(byte *)(param_1 + 0x4acc) = bVar10;
        if (iVar3 != 100) goto LAB_0001d790;
LAB_0001d770:
        printk("ERROR!!! ");
        printk("BBP write R%d fail\n",3);
LAB_0001d790:
        cVar2 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
      }
      else {
        uVar6 = 0;
        if (*(char *)(param_1 + 0xad) == '\x01') {
          Status = Status & 0xfffffffe;
          uVar6 = uVar5 & 1;
        }
        iVar3 = 1;
        cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
        while( true ) {
          uVar5 = 0;
          if (cVar2 == '\0') {
            uVar5 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028);
          }
          if ((uVar5 & 0x20000) == 0) break;
          iVar4 = iVar3 % 0x14;
          iVar3 = iVar3 + 1;
          if ((iVar4 == 0) && (cVar2 == '\0')) {
            *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) = uVar5 & 0xfffdffff;
          }
          printk(&_LC15)   //possible issue identified - semgrep
          if (iVar3 == 100) goto LAB_0001d8ec;
          cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
        }
        if (cVar2 == '\0') {
          *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) = uVar8 | 0xa0320;
        }
        iVar4 = AsicSendCommandToMcuBBP(param_1,0x80,0xff,0,0,0);
        if (*(char *)(param_1 + 0x16964) == '\x01') {
          RTMPusecDelay(1000);
        }
        if ((iVar4 == 0) && (*(char *)(param_1 + 0xec) == '\0')) {
          *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) = uVar8 | 0x80320;
        }
        *(byte *)(param_1 + 0x4acc) = bVar10;
        if (iVar3 != 100) goto LAB_0001d934;
LAB_0001d8ec:
        printk("ERROR!!! ");
        printk("BBP write R%d fail\n",3);
        if (*(char *)(param_1 + 0xec) == '\0') {
          *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) =
               *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) & 0xfffdffff;
LAB_0001d934:
          cVar2 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
        }
        else {
          cVar2 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
        }
      }
      if ((cVar2 == '\x01') && (Status = Status & 0xfffffffe, uVar6 != 0)) {
        Status = Status | 1;
      }
    }
    if (RTDebugLevel < 3) goto LAB_0001d990;
    uVar1 = *(undefined1 *)(param_1 + 0x169ed);
    pcVar7 = "!!!40MHz Upper LINK UP !!! Control Channel at UpperCentral = %d \n";
  }
  printk(pcVar7,uVar1);
LAB_0001d990:
  uVar1 = *(undefined1 *)(param_1 + 0x169ed);
  AsicRxAntEvalTimeout[param_1 + 5] = (code)0x1;
  AsicSwitchChannel(param_1,uVar1,0);
  AsicLockChannel(param_1,*(undefined1 *)(param_1 + 0x169ed));
  param_1 = param_2 * 0xa20 + param_1;
  *(uint *)(param_1 + 0x5d350) = *(uint *)(param_1 + 0x5d350) & 0xffffff7f | 0x80;
  return;
}