void APMakeAllBssBeacon(int param_1)

{
  char cVar1;
  bool bVar2;
  undefined1 uVar3;
  char *pcVar4;
  int iVar5;
  uint uVar6;
  byte bVar7;
  uint uVar8;
  ushort *puVar9;
  uint uVar10;
  
  pcVar4 = (char *)(param_1 + 0x62e8);
  bVar7 = 0;
  iVar5 = 0;
  while (bVar2 = iVar5 < (int)(uint)*(byte *)(param_1 + 0x51aa), iVar5 = iVar5 + 1, bVar2) {
    if (*pcVar4 == '\0') {
      pcVar4 = pcVar4 + 0x1140;
    }
    else {
      pcVar4[1] = bVar7;
      bVar7 = bVar7 + 1;
      pcVar4 = pcVar4 + 0x1140;
    }
  }
  uVar10 = (uint)bVar7;
  puVar9 = (ushort *)(param_1 + 0x516c);
  uVar8 = 0;
  cVar1 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
  while( true ) {
    uVar6 = Status;
    if (cVar1 == '\x01') {
      Status = Status & 0xfffffffe;
      uVar8 = uVar6 & 1;
      *(undefined1 *)(param_1 + 0x5154) = 1;
      if (*(char *)(param_1 + 0xec) == '\0') {
        *(uint *)(*(int *)(param_1 + 0xdc) + 0x400) =
             *(uint *)(*(int *)(param_1 + 0xdc) + 0x400) | 0x80000;
      }
    }
    iVar5 = 0;
    cVar1 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
    while( true ) {
      if (cVar1 == '\0') {
        *(undefined4 *)(*(int *)(param_1 + 0xdc) + iVar5 + (uint)*puVar9) = 0;
      }
      iVar5 = iVar5 + 4;
      if (iVar5 == 0x10) break;
      cVar1 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
    }
    if (*(char *)(param_1 + 0xad) == '\x01') {
      *(undefined1 *)(param_1 + 0x5154) = 0;
      if (*(char *)(param_1 + 0xec) == '\0') {
        *(uint *)(*(int *)(param_1 + 0xdc) + 0x400) =
             *(uint *)(*(int *)(param_1 + 0xdc) + 0x400) & 0xfff7ffff;
      }
      Status = Status & 0xfffffffe;
      if (uVar8 != 0) {
        Status = Status | 1;
      }
    }
    puVar9 = puVar9 + 1;
    if (puVar9 == (ushort *)(param_1 + 0x517c)) break;
    cVar1 = *(char *)(param_1 + 0xad)   //possible issue identified - semgrep
  }
  iVar5 = 0;
  while( true ) {
    uVar8 = (uint)*(byte *)(param_1 + 0x51aa);
    if ((int)uVar8 <= iVar5) break;
    APMakeBssBeacon(param_1,iVar5);
    iVar5 = iVar5 + 1;
  }
  uVar6 = 0;
  if (*(char *)(param_1 + 0xec) == '\0') {
    uVar6 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x1014);
  }
  uVar6 = uVar6 & 0xffff;
  if (uVar8 < 2) {
    uVar3 = 0xff;
  }
  else if (uVar8 == 2) {
    if (((*(byte *)(param_1 + 0x16978) & 1) != 0) && (RTDebugLevel != 0)) {
      printk("The 2-BSSID mode is enabled, the BSSID byte5 MUST be the multiple of 2\n");
    }
    uVar6 = uVar6 | 0x10000;
    uVar3 = 0xfe;
  }
  else if (uVar8 < 5) {
    if (((*(byte *)(param_1 + 0x16978) & 3) != 0) && (RTDebugLevel != 0)) {
      printk("The 4-BSSID mode is enabled, the BSSID byte5 MUST be the multiple of 4\n");
    }
    uVar6 = uVar6 | 0x20000;
    uVar3 = 0xfc;
  }
  else if (uVar8 < 9) {
    if (((*(byte *)(param_1 + 0x16978) & 7) != 0) && (RTDebugLevel != 0)) {
      printk("The 8-BSSID mode is enabled, the BSSID byte5 MUST be the multiple of 8\n");
    }
    uVar6 = uVar6 | 0x30000;
    uVar3 = 0xf8;
  }
  else {
    if (0x10 < uVar8) goto LAB_00071480;
    uVar6 = uVar6 | 0x400000;
    uVar3 = 0xf0;
  }
  *(undefined1 *)(param_1 + 0x51ab) = uVar3;
LAB_00071480:
  if (1 < uVar10) {
    if (8 < uVar10) {
      uVar6 = uVar6 | ((int)(uVar10 - 1) >> 3) << 0x17;
    }
    uVar6 = uVar6 | (uVar10 - 1 & 7) << 0x12;
  }
  if (*(char *)(param_1 + 0xec) == '\0') {
    *(uint *)(*(int *)(param_1 + 0xdc) + 0x1014) = uVar6;
  }
  return;
}