void RTMPSetHT(int param_1,int param_2)

{
  bool bVar1;
  int iVar2;
  uint uVar3;
  int iVar4;
  char cVar5;
  uint uVar6;
  uint uVar7;
  code *pcVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  byte bVar12;
  
  cVar5 = *(char *)(param_1 + 0x16e14)   //possible issue identified - semgrep
  iVar2 = CHAN_PropertyCheck(param_1,*(undefined1 *)(param_1 + 0x169ec),0x30);
  if (iVar2 == 1) {
    *(undefined1 *)(param_2 + 8) = 0;
  }
  else if (*(char *)(param_2 + 6) == '\x03') {
    iVar2 = CHAN_PropertyCheck(param_1,*(undefined1 *)(param_1 + 0x169ec),0x20);
    if (iVar2 == 1) {
      *(undefined1 *)(param_2 + 6) = 1;
    }
  }
  else if ((*(char *)(param_2 + 6) == '\x01') &&
          (iVar2 = CHAN_PropertyCheck(param_1,*(undefined1 *)(param_1 + 0x169ec),0x10), iVar2 == 1))
  {
    *(undefined1 *)(param_2 + 6) = 3;
  }
  if (2 < RTDebugLevel) {
    printk("RTMPSetHT : HT_mode(%d), ExtOffset(%d), MCS(%d), BW(%d), STBC(%d), SHORTGI(%d)\n",
           *(undefined1 *)(param_2 + 5),*(undefined1 *)(param_2 + 6),*(undefined1 *)(param_2 + 7),
           *(undefined1 *)(param_2 + 8),*(undefined1 *)(param_2 + 9),*(undefined1 *)(param_2 + 10));
  }
  RTMPZeroMemory(param_1 + 0x16afe,0x1a);
  RTMPZeroMemory(param_1 + 0x16b18,0x16);
  RTMPZeroMemory(param_1 + 0x16b2e,1);
  RTMPZeroMemory(param_1 + 0x16af6,8);
  if (*(char *)(param_1 + 0x16a88) == '\0') {
    uVar3 = *(uint *)(param_1 + 0x16b10) & 0xfff3ffff;
  }
  else {
    uVar3 = *(uint *)(param_1 + 0x16b10) & 0xfff3ffff | 0xc0000;
  }
  *(uint *)(param_1 + 0x16b10) = uVar3;
  *(uint *)(param_1 + 0x16b00) = *(uint *)(param_1 + 0x16b00) & 0xfffffffc | 3;
  *(uint *)(param_1 + 0x16af8) = *(uint *)(param_1 + 0x16af8) & 0xfffffffc | 3;
  if (2 < RTDebugLevel) {
    printk("RTMPSetHT : RxBAWinLimit = %d\n",*(undefined1 *)(param_1 + 0x16a64));
  }
  iVar2 = *(int *)(param_1 + 0x16a64);
  uVar3 = (uint)(iVar2 << 8) >> 0x1f;
  uVar9 = *(uint *)(param_1 + 0x16af8);
  uVar6 = (uint)(iVar2 << 10) >> 0x1d;
  uVar7 = (uint)(iVar2 << 6) >> 0x1e;
  uVar11 = *(uint *)(RTMPCheckRates + param_1) & 0xf9f9ffff | ((uint)(iVar2 << 9) >> 0x1f) << 0x19 |
           uVar3 << 0x1a | uVar7 << 0x11;
  uVar10 = uVar9 & 0xffffffe3 | uVar6 << 2;
  *(uint *)(param_1 + 0x16b00) = *(uint *)(param_1 + 0x16b00) & 0xffffffe3 | uVar6 << 2;
  *(uint *)(param_1 + 0x16afc) =
       *(uint *)(param_1 + 0x16afc) & 0xf7f3ffff | uVar3 << 0x1b | uVar7 << 0x12;
  *(uint *)(RTMPCheckRates + param_1) = uVar11;
  *(uint *)(param_1 + 0x16af8) = uVar10;
  if (2 < RTDebugLevel) {
    printk("RTMPSetHT : AMsduSize = %d, MimoPs = %d, MpduDensity = %d, MaxRAmpduFactor = %d\n",
           (uVar11 << 5) >> 0x1f,(uVar11 << 0xd) >> 0x1e,(uVar10 << 0x1b) >> 0x1d,uVar9 & 3);
  }
  uVar3 = Status;
  if (*(char *)(param_2 + 5) == '\x01') {
    uVar6 = *(uint *)(param_1 + 0x16afc);
    *(uint *)(RTMPCheckRates + param_1) = *(uint *)(RTMPCheckRates + param_1) & 0xfff7ffff | 0x80000
    ;
    *(uint *)(param_1 + 0x16afc) = uVar6 & 0xffefffff | 0x100000;
  }
  else {
    *(uint *)(RTMPCheckRates + param_1) = *(uint *)(RTMPCheckRates + param_1) & 0xfff7ffff;
  }
  if (cVar5 == '\x02') {
    *(undefined1 *)(param_1 + 0x16b02) = 0xff;
    *(undefined1 *)(param_1 + 0x16b01) = 0xff;
  }
  else if (cVar5 == '\x03') {
    *(undefined1 *)(param_1 + 0x16b03) = 0xff;
    *(undefined1 *)(param_1 + 0x16b01) = 0xff;
    *(undefined1 *)(param_1 + 0x16b02) = 0xff;
  }
  else if (cVar5 == '\x01') {
    *(undefined1 *)(param_1 + 0x16b01) = 0xff;
    *(undefined1 *)(param_1 + 0x16b02) = 0;
  }
  if ((*(char *)(param_1 + 0x16e07) != '\0') && (*(char *)(param_2 + 8) == '\x01')) {
    *(undefined1 *)(param_2 + 8) = 0;
    *(uint *)(param_1 + 0x16afc) = *(uint *)(param_1 + 0x16afc) & 0xbfffffff | 0x40000000;
  }
  if (*(char *)(param_2 + 8) != '\x01') {
    uVar6 = *(uint *)(RTMPCheckRates + param_1);
    *(uint *)(param_1 + 0x16afc) = *(uint *)(param_1 + 0x16afc) & 0xfffdffff;
    *(uint *)(param_1 + 0x16b18) = *(uint *)(param_1 + 0x16b18) & 0xfffff8ff;
    *(uint *)(RTMPCheckRates + param_1) = uVar6 & 0xfffeffff;
    *(undefined1 *)(param_1 + 0x169ed) = *(undefined1 *)(param_1 + 0x169ec);
    uVar6 = 0;
    if (*(char *)(param_1 + 0xec) == '\0') {
      if (*(int *)(param_1 + 0x29f8) == 4) {
        uVar7 = 0;
        if (*(char *)(param_1 + 0xad) == '\x01') {
          Status = Status & 0xfffffffe;
          uVar7 = uVar3 & 1;
        }
        iVar2 = 0;
        cVar5 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
        while( true ) {
          uVar3 = 0;
          if (cVar5 == '\0') {
            uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
          }
          if ((uVar3 & 0x20000) == 0) {
            if (cVar5 == '\0') {
              *(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x101c) = 0xb0400;
            }
            iVar4 = 1;
            while( true ) {
              uVar3 = 0;
              if (*(char *)(param_1 + 0xec) == '\0') {
                uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
              }
              if (((uVar3 & 0x20000) == 0) || (iVar4 == 100)) break;
              iVar4 = iVar4 + 1;
            }
            if ((uVar3 & 0x2ff00) == 0x400) {
              uVar6 = uVar3 & 0xff;
              goto LAB_0003c2d0;
            }
          }
          iVar2 = iVar2 + 1;
          if (iVar2 == 100) break;
          cVar5 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
        }
        uVar6 = 0;
LAB_0003c2d0:
        if ((int)(uVar3 << 0xe) < 0) {
          printk("ERROR!!! ");
          printk("BBP(viaMCU=%d) read R%d fail\n",0,4);
          uVar6 = (uint)*(byte *)(param_1 + 0x4acd);
LAB_0003c464:
          cVar5 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
        }
        else {
          cVar5 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
        }
      }
      else {
        uVar7 = 0;
        if (*(char *)(param_1 + 0xad) == '\x01') {
          Status = Status & 0xfffffffe;
          uVar7 = uVar3 & 1;
        }
        iVar2 = 0;
        cVar5 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
        while( true ) {
          uVar3 = 0;
          if (cVar5 == '\0') {
            uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028);
          }
          if ((uVar3 & 0x20000) == 0) {
            if (cVar5 == '\0') {
              *(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x7028) = 0xb0400;
            }
            AsicSendCommandToMcuBBP(param_1,0x80,0xff,0,0,0);
            RTMPusecDelay(1000);
            iVar4 = 1;
            while( true ) {
              uVar3 = 0;
              if (*(char *)(param_1 + 0xec) == '\0') {
                uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028);
              }
              if (((uVar3 & 0x20000) == 0) || (iVar4 == 100)) break;
              iVar4 = iVar4 + 1;
            }
            if ((uVar3 & 0x2ff00) == 0x400) {
              uVar6 = uVar3 & 0xff;
              goto LAB_0003c40c;
            }
          }
          iVar2 = iVar2 + 1;
          if (iVar2 == 100) break;
          cVar5 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
        }
        uVar6 = 0;
LAB_0003c40c:
        if ((int)(uVar3 << 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_0003c464;
        }
        cVar5 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
      }
      if (cVar5 == '\x01') {
        Status = Status & 0xfffffffe;
        if (uVar7 != 0) {
          Status = Status | 1;
        }
        goto LAB_0003c488;
      }
      cVar5 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
    }
    else {
LAB_0003c488:
      cVar5 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
    }
    uVar3 = Status;
    if (cVar5 == '\0') {
      uVar6 = uVar6 & 0xe7;
      if (*(int *)(param_1 + 0x29f8) == 4) {
        uVar7 = 0;
        if (*(char *)(param_1 + 0xad) == '\x01') {
          Status = Status & 0xfffffffe;
          uVar7 = uVar3 & 1;
        }
        iVar2 = 1;
        cVar5 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
        while( true ) {
          uVar3 = 0;
          if (cVar5 == '\0') {
            uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
          }
          if ((uVar3 & 0x20000) == 0) break;
          iVar2 = iVar2 + 1;
          printk(&_LC49)   //possible issue identified - semgrep
          if (iVar2 == 100) goto LAB_0003c560;
          cVar5 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
        }
        if (cVar5 == '\0') {
          *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c) = uVar6 | 0xa0400;
        }
        *(char *)(param_1 + 0x4acd) = (char)uVar6;
        if (iVar2 != 100) goto LAB_0003c580;
LAB_0003c560:
        printk("ERROR!!! ");
        printk("BBP write R%d fail\n",4);
LAB_0003c580:
        cVar5 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
      }
      else {
        uVar7 = 0;
        if (*(char *)(param_1 + 0xad) == '\x01') {
          Status = Status & 0xfffffffe;
          uVar7 = uVar3 & 1;
        }
        iVar2 = 1;
        cVar5 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
        while( true ) {
          uVar3 = 0;
          if (cVar5 == '\0') {
            uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028);
          }
          if ((uVar3 & 0x20000) == 0) break;
          iVar4 = iVar2 % 0x14;
          iVar2 = iVar2 + 1;
          if ((iVar4 == 0) && (cVar5 == '\0')) {
            *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) = uVar3 & 0xfffdffff;
          }
          printk(&_LC49)   //possible issue identified - semgrep
          if (iVar2 == 100) goto LAB_0003c6dc;
          cVar5 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
        }
        if (cVar5 == '\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 (iVar2 != 100) goto LAB_0003c724;
LAB_0003c6dc:
        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_0003c724:
          cVar5 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
        }
        else {
          cVar5 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
        }
      }
      if ((cVar5 == '\x01') && (Status = Status & 0xfffffffe, uVar7 != 0)) {
        Status = Status | 1;
      }
    }
    pcVar8 = *(code **)(param_1 + 0x94);
    AsicRxAntEvalTimeout[param_1 + 5] = (code)0x0;
    if (pcVar8 != (code *)0x0) {
      (*pcVar8)(param_1,3,1,0,0);
    }
    goto LAB_0003c778;
  }
  uVar6 = *(uint *)(param_1 + 0x16afc);
  *(undefined1 *)(param_1 + 0x16b05) = 1;
  *(uint *)(param_1 + 0x16afc) = uVar6 & 0xfffdffff | 0x20000;
  if (*(byte *)(param_1 + 0x169ec) < 0xf) {
    *(uint *)(param_1 + 0x16afc) = uVar6 & 0xeffdffff | 0x10020000;
  }
  uVar7 = *(uint *)(param_1 + 0x16b18);
  uVar6 = *(uint *)(RTMPCheckRates + param_1);
  *(uint *)(param_1 + 0x16b18) = uVar7 & 0xfffffbff | 0x400;
  *(uint *)(RTMPCheckRates + param_1) = uVar6 & 0xfffeffff | 0x10000;
  iVar2 = 3;
  if (*(char *)(param_2 + 6) != '\x03') {
    iVar2 = 1;
  }
  *(uint *)(param_1 + 0x16b18) = uVar7 & 0xfffff8ff | 0x400 | iVar2 << 8;
  if (*(char *)(param_1 + 0xec) == '\0') {
    uVar6 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x132c);
    if (*(int *)(param_1 + 0x29f8) == 4) {
      uVar7 = 0;
      if (*(char *)(param_1 + 0xad) == '\x01') {
        Status = Status & 0xfffffffe;
        uVar7 = uVar3 & 1;
      }
      iVar2 = 0;
      cVar5 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
      while( true ) {
        uVar3 = 0;
        if (cVar5 == '\0') {
          uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
        }
        if ((uVar3 & 0x20000) == 0) {
          if (cVar5 == '\0') {
            *(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x101c) = 0xb0300;
          }
          iVar4 = 1;
          while( true ) {
            uVar3 = 0;
            if (*(char *)(param_1 + 0xec) == '\0') {
              uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
            }
            if (((uVar3 & 0x20000) == 0) || (iVar4 == 100)) break;
            iVar4 = iVar4 + 1;
          }
          if ((uVar3 & 0x2ff00) == 0x300) {
            uVar9 = uVar3 & 0xff;
            goto LAB_0003b720;
          }
        }
        iVar2 = iVar2 + 1;
        if (iVar2 == 100) break;
        cVar5 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
      }
      uVar9 = 0;
LAB_0003b720:
      if ((int)(uVar3 << 0xe) < 0) {
        printk("ERROR!!! ");
        printk("BBP(viaMCU=%d) read R%d fail\n",0,3);
        uVar9 = (uint)*(byte *)(param_1 + 0x4acc);
LAB_0003b8b4:
        cVar5 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
      }
      else {
        cVar5 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
      }
    }
    else {
      uVar7 = 0;
      if (*(char *)(param_1 + 0xad) == '\x01') {
        Status = Status & 0xfffffffe;
        uVar7 = uVar3 & 1;
      }
      iVar2 = 0;
      cVar5 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
      while( true ) {
        uVar3 = 0;
        if (cVar5 == '\0') {
          uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028);
        }
        if ((uVar3 & 0x20000) == 0) {
          if (cVar5 == '\0') {
            *(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x7028) = 0xb0300;
          }
          AsicSendCommandToMcuBBP(param_1,0x80,0xff,0,0,0);
          RTMPusecDelay(1000);
          iVar4 = 1;
          while( true ) {
            uVar3 = 0;
            if (*(char *)(param_1 + 0xec) == '\0') {
              uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028);
            }
            if (((uVar3 & 0x20000) == 0) || (iVar4 == 100)) break;
            iVar4 = iVar4 + 1;
          }
          if ((uVar3 & 0x2ff00) == 0x300) {
            uVar9 = uVar3 & 0xff;
            goto LAB_0003b85c;
          }
        }
        iVar2 = iVar2 + 1;
        if (iVar2 == 100) break;
        cVar5 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
      }
      uVar9 = 0;
LAB_0003b85c:
      if ((int)(uVar3 << 0xe) < 0) {
        printk("ERROR!!! ");
        printk("BBP(viaMCU=%d) read R%d fail\n",1,3);
        uVar9 = (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_0003b8b4;
      }
      cVar5 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
    }
    if ((cVar5 == '\x01') && (Status = Status & 0xfffffffe, uVar7 != 0)) {
      Status = Status | 1;
    }
  }
  else {
    uVar9 = 0;
    uVar6 = 0;
  }
  uVar3 = Status;
  if (*(char *)(param_2 + 6) == '\x03') {
    uVar9 = uVar9 | 0x20;
    if (*(char *)(param_1 + 0xec) == '\0') {
      iVar2 = *(int *)(param_1 + 0xdc);
      uVar6 = uVar6 | 1;
LAB_0003b920:
      *(uint *)(iVar2 + 0x132c) = uVar6;
    }
  }
  else if ((*(char *)(param_2 + 6) == '\x01') &&
          (uVar9 = uVar9 & 0xdf, *(char *)(param_1 + 0xec) == '\0')) {
    iVar2 = *(int *)(param_1 + 0xdc);
    uVar6 = uVar6 & 0xfe;
    goto LAB_0003b920;
  }
  if (*(char *)(param_1 + 0x16964) == '\x01') {
    cVar5 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
  }
  else {
    if ((*(uint *)(param_1 + 0x16abc) & 3) == 0) goto LAB_0003c778;
    cVar5 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
  }
  uVar6 = 0;
  if (cVar5 == '\0') {
    if (*(int *)(param_1 + 0x29f8) == 4) {
      uVar7 = 0;
      if (*(char *)(param_1 + 0xad) == '\x01') {
        Status = Status & 0xfffffffe;
        uVar7 = uVar3 & 1;
      }
      iVar2 = 0;
      cVar5 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
      while( true ) {
        uVar3 = 0;
        if (cVar5 == '\0') {
          uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
        }
        if ((uVar3 & 0x20000) == 0) {
          if (cVar5 == '\0') {
            *(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x101c) = 0xb0400;
          }
          iVar4 = 1;
          while( true ) {
            uVar3 = 0;
            if (*(char *)(param_1 + 0xec) == '\0') {
              uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
            }
            if (((uVar3 & 0x20000) == 0) || (iVar4 == 100)) break;
            iVar4 = iVar4 + 1;
          }
          if ((uVar3 & 0x2ff00) == 0x400) {
            uVar6 = uVar3 & 0xff;
            goto LAB_0003ba3c;
          }
        }
        iVar2 = iVar2 + 1;
        if (iVar2 == 100) break;
        cVar5 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
      }
      uVar6 = 0;
LAB_0003ba3c:
      if ((int)(uVar3 << 0xe) < 0) {
        printk("ERROR!!! ");
        printk("BBP(viaMCU=%d) read R%d fail\n",0,4);
        uVar6 = (uint)*(byte *)(param_1 + 0x4acd);
LAB_0003bbd4:
        cVar5 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
      }
      else {
        cVar5 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
      }
    }
    else {
      uVar7 = 0;
      if (*(char *)(param_1 + 0xad) == '\x01') {
        Status = Status & 0xfffffffe;
        uVar7 = uVar3 & 1;
      }
      iVar2 = 0;
      cVar5 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
      while( true ) {
        uVar3 = 0;
        if (cVar5 == '\0') {
          uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028);
        }
        if ((uVar3 & 0x20000) == 0) {
          if (cVar5 == '\0') {
            *(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x7028) = 0xb0400;
          }
          AsicSendCommandToMcuBBP(param_1,0x80,0xff,0,0,0);
          RTMPusecDelay(1000);
          iVar4 = 1;
          while( true ) {
            uVar3 = 0;
            if (*(char *)(param_1 + 0xec) == '\0') {
              uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028);
            }
            if (((uVar3 & 0x20000) == 0) || (iVar4 == 100)) break;
            iVar4 = iVar4 + 1;
          }
          if ((uVar3 & 0x2ff00) == 0x400) {
            uVar6 = uVar3 & 0xff;
            goto LAB_0003bb7c;
          }
        }
        iVar2 = iVar2 + 1;
        if (iVar2 == 100) break;
        cVar5 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
      }
      uVar6 = 0;
LAB_0003bb7c:
      if ((int)(uVar3 << 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_0003bbd4;
      }
      cVar5 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
    }
    if (cVar5 == '\x01') {
      Status = Status & 0xfffffffe;
      if (uVar7 != 0) {
        Status = Status | 1;
      }
      goto LAB_0003bbf8;
    }
    cVar5 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
  }
  else {
LAB_0003bbf8:
    cVar5 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
  }
  uVar3 = Status;
  if (cVar5 == '\0') {
    uVar6 = uVar6 & 0xe7;
    bVar12 = (byte)uVar6 | 0x10;
    if (*(int *)(param_1 + 0x29f8) == 4) {
      uVar7 = 0;
      if (*(char *)(param_1 + 0xad) == '\x01') {
        Status = Status & 0xfffffffe;
        uVar7 = uVar3 & 1;
      }
      iVar2 = 1;
      cVar5 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
      while( true ) {
        uVar3 = 0;
        if (cVar5 == '\0') {
          uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
        }
        if ((uVar3 & 0x20000) == 0) break;
        iVar2 = iVar2 + 1;
        printk(&_LC49)   //possible issue identified - semgrep
        if (iVar2 == 100) goto LAB_0003bcd4;
        cVar5 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
      }
      if (cVar5 == '\0') {
        *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c) = uVar6 | 0xa0410;
      }
      *(byte *)(param_1 + 0x4acd) = bVar12;
      if (iVar2 != 100) goto LAB_0003bcf4;
LAB_0003bcd4:
      printk("ERROR!!! ");
      printk("BBP write R%d fail\n",4);
LAB_0003bcf4:
      if (*(char *)(param_1 + 0xad) == '\x01') {
LAB_0003beac:
        Status = Status & 0xfffffffe;
        if (uVar7 != 0) {
          Status = Status | 1;
        }
        cVar5 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
      }
      else {
        cVar5 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
      }
    }
    else {
      uVar7 = 0;
      if (*(char *)(param_1 + 0xad) == '\x01') {
        Status = Status & 0xfffffffe;
        uVar7 = uVar3 & 1;
      }
      iVar2 = 1;
      cVar5 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
      while( true ) {
        uVar3 = 0;
        if (cVar5 == '\0') {
          uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028);
        }
        if ((uVar3 & 0x20000) == 0) break;
        iVar4 = iVar2 % 0x14;
        iVar2 = iVar2 + 1;
        if ((iVar4 == 0) && (cVar5 == '\0')) {
          *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) = uVar3 & 0xfffdffff;
        }
        printk(&_LC49)   //possible issue identified - semgrep
        if (iVar2 == 100) goto LAB_0003be50;
        cVar5 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
      }
      if (cVar5 == '\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;
      }
      *(byte *)(param_1 + 0x4acd) = bVar12;
      if (iVar2 != 100) goto LAB_0003be98;
LAB_0003be50:
      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_0003be98:
        cVar5 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
      }
      else {
        cVar5 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
      }
      if (cVar5 == '\x01') goto LAB_0003beac;
      cVar5 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
    }
  }
  else {
    cVar5 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
  }
  uVar3 = Status;
  if (cVar5 == '\0') {
    if (*(int *)(param_1 + 0x29f8) == 4) {
      uVar6 = 0;
      if (*(char *)(param_1 + 0xad) == '\x01') {
        Status = Status & 0xfffffffe;
        uVar6 = uVar3 & 1;
      }
      iVar2 = 1;
      cVar5 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
      while( true ) {
        uVar3 = 0;
        if (cVar5 == '\0') {
          uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
        }
        if ((uVar3 & 0x20000) == 0) break;
        iVar2 = iVar2 + 1;
        printk(&_LC49)   //possible issue identified - semgrep
        if (iVar2 == 100) goto LAB_0003bf90;
        cVar5 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
      }
      if (cVar5 == '\0') {
        *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c) = uVar9 | 0xa0300;
      }
      *(char *)(param_1 + 0x4acc) = (char)uVar9;
      if (iVar2 != 100) goto LAB_0003bfb0;
LAB_0003bf90:
      printk("ERROR!!! ");
      printk("BBP write R%d fail\n",3);
LAB_0003bfb0:
      cVar5 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
    }
    else {
      uVar6 = 0;
      if (*(char *)(param_1 + 0xad) == '\x01') {
        Status = Status & 0xfffffffe;
        uVar6 = uVar3 & 1;
      }
      iVar2 = 1;
      cVar5 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
      while( true ) {
        uVar3 = 0;
        if (cVar5 == '\0') {
          uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028);
        }
        if ((uVar3 & 0x20000) == 0) break;
        iVar4 = iVar2 % 0x14;
        iVar2 = iVar2 + 1;
        if ((iVar4 == 0) && (cVar5 == '\0')) {
          *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) = uVar3 & 0xfffdffff;
        }
        printk(&_LC49)   //possible issue identified - semgrep
        if (iVar2 == 100) goto LAB_0003c10c;
        cVar5 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
      }
      if (cVar5 == '\0') {
        *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) = uVar9 | 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) = uVar9 | 0x80300;
      }
      *(char *)(param_1 + 0x4acc) = (char)uVar9;
      if (iVar2 != 100) goto LAB_0003c154;
LAB_0003c10c:
      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_0003c154:
        cVar5 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
      }
      else {
        cVar5 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
      }
    }
    if ((cVar5 == '\x01') && (Status = Status & 0xfffffffe, uVar6 != 0)) {
      Status = Status | 1;
    }
  }
  pcVar8 = *(code **)(param_1 + 0x94);
  AsicRxAntEvalTimeout[param_1 + 5] = (code)0x1;
  if (pcVar8 != (code *)0x0) {
    (*pcVar8)(param_1,3,1,0,1);
  }
LAB_0003c778:
  if (*(char *)(param_2 + 9) == '\x01') {
    if ((uint)(*(int *)(param_1 + 0x4bf4) << 0x18) >> 0x1c < 2) {
      uVar3 = *(uint *)(param_1 + 0x16afc) & 0xff7fffff;
      uVar6 = *(uint *)(RTMPCheckRates + param_1) & 0xffbfffff;
    }
    else {
      uVar3 = *(uint *)(param_1 + 0x16afc) & 0xff7fffff | 0x800000;
      uVar6 = *(uint *)(RTMPCheckRates + param_1) & 0xffbfffff | 0x400000;
    }
    *(uint *)(RTMPCheckRates + param_1) = uVar6;
    *(uint *)(param_1 + 0x16afc) = uVar3;
    if ((*(uint *)(param_1 + 0x4bf4) & 0xf) == 0) {
      uVar3 = *(uint *)(param_1 + 0x16afc);
      *(uint *)(RTMPCheckRates + param_1) = *(uint *)(RTMPCheckRates + param_1) & 0xfe7fffff;
      *(uint *)(param_1 + 0x16afc) = uVar3 & 0xfcffffff;
    }
    else {
      uVar3 = *(uint *)(param_1 + 0x16afc);
      *(uint *)(RTMPCheckRates + param_1) =
           *(uint *)(RTMPCheckRates + param_1) & 0xfe7fffff | 0x800000;
      *(uint *)(param_1 + 0x16afc) = uVar3 & 0xfcffffff | 0x1000000;
    }
  }
  else {
    *(uint *)(RTMPCheckRates + param_1) = *(uint *)(RTMPCheckRates + param_1) & 0xfe3fffff;
  }
  if (*(char *)(param_2 + 10) == '\x01') {
    uVar6 = *(uint *)(RTMPCheckRates + param_1) & 0xffcfffff | 0x300000;
    uVar3 = *(uint *)(param_1 + 0x16afc) & 0xff9fffff | 0x600000;
  }
  else {
    uVar3 = *(uint *)(param_1 + 0x16afc) & 0xff9fffff;
    uVar6 = *(uint *)(RTMPCheckRates + param_1) & 0xffcfffff;
  }
  *(uint *)(RTMPCheckRates + param_1) = uVar6;
  *(uint *)(param_1 + 0x16afc) = uVar3;
  *(undefined1 *)(param_1 + 0x16b18) = *(undefined1 *)(param_1 + 0x169ec);
  if (*(char *)(param_1 + 0x16a90) == '\0') {
    *(undefined2 *)(param_1 + 0x16aaa) = 0x2f;
    *(undefined1 *)(param_1 + 0x16a98) = 7;
    *(undefined1 *)(param_1 + 0x16a9e) = 2;
    *(undefined1 *)(param_1 + 0x16a9f) = 6;
    *(undefined1 *)(param_1 + 0x16aa0) = 10;
    *(undefined1 *)(param_1 + 0x16a9a) = 1;
    *(undefined1 *)(param_1 + 0x16aa1) = 4;
    *(undefined1 *)(param_1 + 0x16aa2) = 3;
    *(undefined2 *)(param_1 + 0x16aa8) = 0x5e;
    *(undefined1 *)(param_1 + 0x16a90) = 1;
    AsicEvaluateRxAnt[param_1 + 3] = (code)0x3;
    *(undefined1 *)(param_1 + 0x16a99) = 1;
    *(undefined1 *)(param_1 + 0x16a9b) = 4;
    *(undefined1 *)(param_1 + 0x16a9c) = 4;
    *(undefined1 *)(param_1 + 0x16a9d) = 3;
    *(undefined2 *)(param_1 + 0x16aa4) = 0;
    *(undefined2 *)(param_1 + 0x16aa6) = 0;
  }
  AsicSetEdcaParm(param_1,param_1 + 0x16a90);
  uVar3 = 0;
  while( true ) {
    uVar6 = uVar3 & 0xff;
    bVar1 = (int)(uint)*(byte *)(param_1 + 0x51aa) <= (int)uVar3;
    uVar3 = uVar3 + 1;
    if (bVar1) break;
    RTMPSetIndividualHT(param_1,uVar6);
  }
  return;
}