uint RandomByte2(int param_1)

{
  bool bVar1;
  char cVar2;
  uint uVar3;
  int iVar4;
  int iVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint local_30;
  uint local_2c;
  
  uVar3 = Status;
  if (*(char *)(param_1 + 0xec) == '\0') {
    local_2c = *(uint *)(*(int *)(param_1 + 0xdc) + 0x1700);
    if (*(int *)(param_1 + 0x29f8) == 4) {
      uVar10 = 0;
      if (*(char *)(param_1 + 0xad) == '\x01') {
        Status = Status & 0xfffffffe;
        uVar10 = uVar3 & 1;
      }
      iVar5 = 0;
      cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
      while( true ) {
        uVar3 = 0;
        if (cVar2 == '\0') {
          uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
        }
        if ((uVar3 & 0x20000) == 0) {
          if (cVar2 == '\0') {
            *(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x101c) = 0xb3200;
          }
          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) == 0x3200) {
            local_30 = uVar3 & 0xff;
            goto LAB_00016cf4;
          }
        }
        iVar5 = iVar5 + 1;
        if (iVar5 == 100) break;
        cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
      }
      local_30 = 0;
LAB_00016cf4:
      if ((int)(uVar3 << 0xe) < 0) {
        printk("ERROR!!! ");
        printk("BBP(viaMCU=%d) read R%d fail\n",0,0x32);
        local_30 = (uint)*(byte *)(param_1 + 0x4afb);
LAB_00016e98:
        cVar2 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
      }
      else {
        cVar2 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
      }
    }
    else {
      uVar10 = 0;
      if (*(char *)(param_1 + 0xad) == '\x01') {
        Status = Status & 0xfffffffe;
        uVar10 = uVar3 & 1;
      }
      iVar5 = 0;
      cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
      while( true ) {
        uVar3 = 0;
        if (cVar2 == '\0') {
          uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028);
        }
        if ((uVar3 & 0x20000) == 0) {
          if (cVar2 == '\0') {
            *(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x7028) = 0xb3200;
          }
          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) == 0x3200) {
            local_30 = uVar3 & 0xff;
            goto LAB_00016e3c;
          }
        }
        iVar5 = iVar5 + 1;
        if (iVar5 == 100) break;
        cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
      }
      local_30 = 0;
LAB_00016e3c:
      if ((int)(uVar3 << 0xe) < 0) {
        printk("ERROR!!! ");
        printk("BBP(viaMCU=%d) read R%d fail\n",1,0x32);
        local_30 = (uint)*(byte *)(param_1 + 0x4afb);
        if (*(char *)(param_1 + 0xec) == '\0') {
          *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) =
               *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) & 0xfffdffff;
        }
        goto LAB_00016e98;
      }
      cVar2 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
    }
    if (cVar2 == '\x01') {
      Status = Status & 0xfffffffe;
      if (uVar10 != 0) {
        Status = Status | 1;
      }
      goto LAB_00016ebc;
    }
    cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
  }
  else {
    local_30 = 0;
    local_2c = 0;
LAB_00016ebc:
    cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
  }
  uVar3 = Status;
  uVar10 = 0;
  if (cVar2 == '\0') {
    if (*(int *)(param_1 + 0x29f8) == 4) {
      uVar6 = 0;
      if (*(char *)(param_1 + 0xad) == '\x01') {
        Status = Status & 0xfffffffe;
        uVar6 = uVar3 & 1;
      }
      iVar5 = 0;
      cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
      while( true ) {
        uVar3 = 0;
        if (cVar2 == '\0') {
          uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
        }
        if ((uVar3 & 0x20000) == 0) {
          if (cVar2 == '\0') {
            *(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x101c) = 0xb3300;
          }
          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) == 0x3300) {
            uVar10 = uVar3 & 0xff;
            goto LAB_00016fa8;
          }
        }
        iVar5 = iVar5 + 1;
        if (iVar5 == 100) break;
        cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
      }
      uVar10 = 0;
LAB_00016fa8:
      if ((int)(uVar3 << 0xe) < 0) {
        printk("ERROR!!! ");
        printk("BBP(viaMCU=%d) read R%d fail\n",0,0x33);
        uVar10 = (uint)*(byte *)(param_1 + 0x4afc);
LAB_00017140:
        cVar2 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
      }
      else {
        cVar2 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
      }
    }
    else {
      uVar6 = 0;
      if (*(char *)(param_1 + 0xad) == '\x01') {
        Status = Status & 0xfffffffe;
        uVar6 = uVar3 & 1;
      }
      iVar5 = 0;
      cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
      while( true ) {
        uVar3 = 0;
        if (cVar2 == '\0') {
          uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028);
        }
        if ((uVar3 & 0x20000) == 0) {
          if (cVar2 == '\0') {
            *(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x7028) = 0xb3300;
          }
          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) == 0x3300) {
            uVar10 = uVar3 & 0xff;
            goto LAB_000170e8;
          }
        }
        iVar5 = iVar5 + 1;
        if (iVar5 == 100) break;
        cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
      }
      uVar10 = 0;
LAB_000170e8:
      if ((int)(uVar3 << 0xe) < 0) {
        printk("ERROR!!! ");
        printk("BBP(viaMCU=%d) read R%d fail\n",1,0x33);
        uVar10 = (uint)*(byte *)(param_1 + 0x4afc);
        if (*(char *)(param_1 + 0xec) == '\0') {
          *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) =
               *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) & 0xfffdffff;
        }
        goto LAB_00017140;
      }
      cVar2 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
    }
    if (cVar2 == '\x01') {
      Status = Status & 0xfffffffe;
      if (uVar6 != 0) {
        Status = Status | 1;
      }
      goto LAB_00017164;
    }
    cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
  }
  else {
LAB_00017164:
    cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
  }
  uVar3 = Status;
  uVar6 = 0;
  if (cVar2 == '\0') {
    if (*(int *)(param_1 + 0x29f8) == 4) {
      uVar7 = 0;
      if (*(char *)(param_1 + 0xad) == '\x01') {
        Status = Status & 0xfffffffe;
        uVar7 = uVar3 & 1;
      }
      iVar5 = 0;
      cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
      while( true ) {
        uVar3 = 0;
        if (cVar2 == '\0') {
          uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
        }
        if ((uVar3 & 0x20000) == 0) {
          if (cVar2 == '\0') {
            *(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x101c) = 0xb3400;
          }
          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) == 0x3400) {
            uVar6 = uVar3 & 0xff;
            goto LAB_00017250;
          }
        }
        iVar5 = iVar5 + 1;
        if (iVar5 == 100) break;
        cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
      }
      uVar6 = 0;
LAB_00017250:
      if ((int)(uVar3 << 0xe) < 0) {
        printk("ERROR!!! ");
        printk("BBP(viaMCU=%d) read R%d fail\n",0,0x34);
        uVar6 = (uint)*(byte *)(param_1 + 0x4afd);
LAB_000173e8:
        cVar2 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
      }
      else {
        cVar2 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
      }
    }
    else {
      uVar7 = 0;
      if (*(char *)(param_1 + 0xad) == '\x01') {
        Status = Status & 0xfffffffe;
        uVar7 = uVar3 & 1;
      }
      iVar5 = 0;
      cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
      while( true ) {
        uVar3 = 0;
        if (cVar2 == '\0') {
          uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028);
        }
        if ((uVar3 & 0x20000) == 0) {
          if (cVar2 == '\0') {
            *(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x7028) = 0xb3400;
          }
          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) == 0x3400) {
            uVar6 = uVar3 & 0xff;
            goto LAB_00017390;
          }
        }
        iVar5 = iVar5 + 1;
        if (iVar5 == 100) break;
        cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
      }
      uVar6 = 0;
LAB_00017390:
      if ((int)(uVar3 << 0xe) < 0) {
        printk("ERROR!!! ");
        printk("BBP(viaMCU=%d) read R%d fail\n",1,0x34);
        uVar6 = (uint)*(byte *)(param_1 + 0x4afd);
        if (*(char *)(param_1 + 0xec) == '\0') {
          *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) =
               *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) & 0xfffdffff;
        }
        goto LAB_000173e8;
      }
      cVar2 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
    }
    if (cVar2 == '\x01') {
      Status = Status & 0xfffffffe;
      if (uVar7 != 0) {
        Status = Status | 1;
      }
      goto LAB_0001740c;
    }
    cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
  }
  else {
LAB_0001740c:
    cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
  }
  uVar3 = Status;
  uVar7 = 0;
  if (cVar2 == '\0') {
    if (*(int *)(param_1 + 0x29f8) == 4) {
      uVar8 = 0;
      if (*(char *)(param_1 + 0xad) == '\x01') {
        Status = Status & 0xfffffffe;
        uVar8 = uVar3 & 1;
      }
      iVar5 = 0;
      cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
      while( true ) {
        uVar3 = 0;
        if (cVar2 == '\0') {
          uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
        }
        if ((uVar3 & 0x20000) == 0) {
          if (cVar2 == '\0') {
            *(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x101c) = 0xb3500;
          }
          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) == 0x3500) {
            uVar7 = uVar3 & 0xff;
            goto LAB_000174f8;
          }
        }
        iVar5 = iVar5 + 1;
        if (iVar5 == 100) break;
        cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
      }
      uVar7 = 0;
LAB_000174f8:
      if ((int)(uVar3 << 0xe) < 0) {
        printk("ERROR!!! ");
        printk("BBP(viaMCU=%d) read R%d fail\n",0,0x35);
        uVar7 = (uint)*(byte *)(param_1 + 0x4afe);
LAB_00017694:
        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 = uVar3 & 1;
      }
      iVar5 = 0;
      cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
      while( true ) {
        uVar3 = 0;
        if (cVar2 == '\0') {
          uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028);
        }
        if ((uVar3 & 0x20000) == 0) {
          if (cVar2 == '\0') {
            *(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x7028) = 0xb3500;
          }
          AsicSendCommandToMcuBBP(param_1,0x80,0xff,0,0,0);
          RTMPusecDelay(1000);
          iVar4 = 1;
          do {
            uVar3 = 0;
            if (*(char *)(param_1 + 0xec) == '\0') {
              uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028);
            }
          } while (((uVar3 & 0x20000) != 0) && (bVar1 = iVar4 != 100, iVar4 = iVar4 + 1, bVar1));
          if ((uVar3 & 0x2ff00) == 0x3500) {
            uVar7 = uVar3 & 0xff;
            goto LAB_0001763c;
          }
        }
        iVar5 = iVar5 + 1;
        if (iVar5 == 100) break;
        cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
      }
      uVar7 = 0;
LAB_0001763c:
      if ((int)(uVar3 << 0xe) < 0) {
        printk("ERROR!!! ");
        printk("BBP(viaMCU=%d) read R%d fail\n",1,0x35);
        uVar7 = (uint)*(byte *)(param_1 + 0x4afe);
        if (*(char *)(param_1 + 0xec) == '\0') {
          *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) =
               *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) & 0xfffdffff;
        }
        goto LAB_00017694;
      }
      cVar2 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
    }
    if (cVar2 == '\x01') {
      Status = Status & 0xfffffffe;
      if (uVar8 != 0) {
        Status = Status | 1;
      }
      goto LAB_000176b8;
    }
    cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
  }
  else {
LAB_000176b8:
    cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
  }
  uVar3 = Status;
  uVar8 = 0;
  if (cVar2 != '\0') goto LAB_00017968;
  if (*(int *)(param_1 + 0x29f8) == 4) {
    uVar9 = 0;
    if (*(char *)(param_1 + 0xad) == '\x01') {
      Status = Status & 0xfffffffe;
      uVar9 = uVar3 & 1;
    }
    iVar5 = 0;
    cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
    while( true ) {
      uVar3 = 0;
      if (cVar2 == '\0') {
        uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
      }
      if ((uVar3 & 0x20000) == 0) {
        if (cVar2 == '\0') {
          *(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x101c) = 0xb3600;
        }
        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) == 0x3600) {
          uVar8 = uVar3 & 0xff;
          goto LAB_000177a4;
        }
      }
      iVar5 = iVar5 + 1;
      if (iVar5 == 100) break;
      cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
    }
    uVar8 = 0;
LAB_000177a4:
    if ((int)(uVar3 << 0xe) < 0) {
      printk("ERROR!!! ");
      printk("BBP(viaMCU=%d) read R%d fail\n",0,0x36);
      uVar8 = (uint)*(byte *)(param_1 + 0x4aff);
LAB_00017940:
      cVar2 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
    }
    else {
      cVar2 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
    }
  }
  else {
    uVar9 = 0;
    if (*(char *)(param_1 + 0xad) == '\x01') {
      Status = Status & 0xfffffffe;
      uVar9 = uVar3 & 1;
    }
    iVar5 = 0;
    cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
    while( true ) {
      uVar3 = 0;
      if (cVar2 == '\0') {
        uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028);
      }
      if ((uVar3 & 0x20000) == 0) {
        if (cVar2 == '\0') {
          *(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x7028) = 0xb3600;
        }
        AsicSendCommandToMcuBBP(param_1,0x80,0xff,0,0,0);
        RTMPusecDelay(1000);
        iVar4 = 1;
        do {
          uVar3 = 0;
          if (*(char *)(param_1 + 0xec) == '\0') {
            uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028);
          }
        } while (((uVar3 & 0x20000) != 0) && (bVar1 = iVar4 != 100, iVar4 = iVar4 + 1, bVar1));
        if ((uVar3 & 0x2ff00) == 0x3600) {
          uVar8 = uVar3 & 0xff;
          goto LAB_000178e8;
        }
      }
      iVar5 = iVar5 + 1;
      if (iVar5 == 100) break;
      cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
    }
    uVar8 = 0;
LAB_000178e8:
    if ((int)(uVar3 << 0xe) < 0) {
      printk("ERROR!!! ");
      printk("BBP(viaMCU=%d) read R%d fail\n",1,0x36);
      uVar8 = (uint)*(byte *)(param_1 + 0x4aff);
      if (*(char *)(param_1 + 0xec) == '\0') {
        *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) =
             *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) & 0xfffdffff;
      }
      goto LAB_00017940;
    }
    cVar2 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
  }
  if ((cVar2 == '\x01') && (Status = Status & 0xfffffffe, uVar9 != 0)) {
    Status = Status | 1;
  }
LAB_00017968:
  uVar3 = RandomByte(param_1);
  return (uVar8 ^ uVar3 ^ uVar7 ^ uVar6 ^ uVar10 ^ local_30 ^ local_2c & 0xffff) & 0xff;
}