void APMakeBssBeacon(int param_1,int param_2)

{
  byte *pbVar1;
  char cVar2;
  byte bVar3;
  int *piVar4;
  code *pcVar5;
  int iVar6;
  char *pcVar7;
  int iVar8;
  char *pcVar9;
  char *pcVar10;
  int iVar11;
  byte *pbVar12;
  undefined1 *puVar13;
  undefined4 *puVar14;
  uint uVar15;
  int iVar16;
  int iVar17;
  uint uVar18;
  uint uVar19;
  byte *pbVar20;
  uint uVar21;
  uint uVar22;
  undefined4 uVar23;
  int *piVar24;
  undefined4 uVar25;
  byte *pbVar26;
  undefined4 uVar27;
  undefined1 *puVar28;
  undefined4 uVar29;
  undefined4 uVar30;
  undefined1 *puVar31;
  undefined4 uVar32;
  undefined4 uVar33;
  undefined4 uVar34;
  undefined1 local_70;
  byte local_6f;
  byte local_6e;
  undefined4 local_6d;
  undefined1 *local_68;
  int local_64;
  uint local_60;
  char *local_5c;
  int aiStack_58 [2];
  undefined4 local_50;
  undefined4 local_4c;
  byte local_48 [32];
  
  local_70 = 1;
  local_68 = (undefined1 *)0x0;
  if (param_2 == 0) {
    cVar2 = *(char *)(param_1 + 0x62e8)   //possible issue identified - semgrep
  }
  else {
    cVar2 = *(char *)(param_2 * 0x1140 + param_1 + 0x62e8)   //possible issue identified - semgrep
  }
  if (cVar2 != '\x01') {
    return;
  }
  iVar8 = param_2 * 0x1140 + param_1;
  cVar2 = *(char *)(iVar8 + 0x62ea)   //possible issue identified - semgrep
  if (*(char *)(iVar8 + 0x5920) == '\0') {
    local_6f = *(byte *)(iVar8 + 0x51b2);
  }
  else {
    local_6f = 0;
  }
  MgtMacHeaderInit(param_1,local_48 + 8,8,0,&BROADCAST_ADDR,param_2 * 0x1140 + param_1 + 0x51ac);
  local_6e = *(byte *)(param_1 + 0x169fa);
  if (cVar2 == '\x01') {
    local_6e = 4;
  }
  iVar8 = param_1 + param_2 * 0x1140;
  pcVar7 = (char *)(iVar8 + 0x51d4);
  iVar16 = iVar8 + 0x51b3;
  pbVar20 = (byte *)(iVar8 + 0x5720);
  piVar4 = aiStack_58;
  piVar24 = (int *)&SsidIe;
  pbVar26 = &local_6f;
  puVar28 = &SupRateIe;
  pbVar12 = &local_6e;
  uVar18 = (uint)local_6f;
  uVar19 = (uint)local_6e;
  puVar14 = (undefined4 *)(param_1 + 0x169ea);
  iVar8 = param_1 + 0x169ee;
  iVar17 = param_1 + 0x169ec;
  puVar31 = &DsIe;
  puVar13 = &local_70;
  uVar22 = 2;
  uVar21 = 2;
  uVar23 = 1;
  uVar25 = 1;
  uVar27 = 1;
  uVar29 = 1;
  uVar30 = 1;
  uVar32 = 1;
  uVar33 = 1;
  uVar34 = 0xffffffff;
  MakeOutgoingFrame(pbVar20,&local_68,0x18,local_48 + 8,8,piVar4,2,puVar14,2,pcVar7,1,&SsidIe,1,
                    pbVar26,uVar18,iVar16,1,&SupRateIe,1,pbVar12,uVar19,iVar8,1,&DsIe,1,puVar13,1,
                    iVar17,0xffffffff);
  uVar15 = (uint)*(byte *)(param_1 + 0x16a07);
  if ((uVar15 != 0) && (cVar2 != '\x01')) {
    puVar14 = (undefined4 *)(param_1 + 0x169fb);
    piVar4 = (int *)(param_1 + 0x16a07);
    uVar22 = 0xffffffff;
    MakeOutgoingFrame(pbVar20 + (int)local_68,&local_64,1,&ExtRateIe,1,piVar4,uVar15,puVar14,
                      0xffffffff,pcVar7,uVar23,piVar24,uVar25,pbVar26,uVar18,iVar16,uVar27,puVar28,
                      uVar29,pbVar12,uVar19,iVar8,uVar30,puVar31,uVar32,puVar13,uVar33,iVar17,uVar34
                     );
    local_68 = local_68 + local_64;
    uVar21 = uVar15;
  }
  if (*(char *)(param_1 + 0x1697c) != '\0') {
    local_64 = CONCAT31(local_64._1_3_,7);
    local_5c = (char *)0x0;
    os_alloc_mem(0,&local_5c,0x100);
    if (local_5c == (char *)0x0) {
      if (RTDebugLevel == 0) goto LAB_00070e58;
      pcVar9 = "%s: Allocate memory fail!!!\n";
      pcVar10 = "APMakeBssBeacon";
      pcVar5 = printk;
    }
    else {
      memset(local_5c,0,4)   //possible issue identified - semgrep
      local_6d._0_1_ = GetCuntryMaxTxPwr(param_1,*(undefined1 *)(param_1 + 0x169ec));
      piVar4 = &local_6d;
      MakeOutgoingFrame(local_5c,&local_60,1,param_1 + 0x4e3e,1,param_1 + 0x5058,1,piVar4,0xffffffff
                       );
      if ((local_60 & 1) == 0) {
        local_6d._0_1_ = (char)local_60 + '\x04';
        uVar22 = local_60 + 1;
      }
      else {
        local_6d._0_1_ = (char)local_60 + '\x03';
        uVar22 = local_60;
      }
      puVar14 = (undefined4 *)(param_1 + 0x1697d);
      uVar21 = 3;
      uVar23 = 0xffffffff;
      pcVar7 = local_5c;
      MakeOutgoingFrame(pbVar20 + (int)local_68,&local_60,1,&local_64,1,piVar4,3,puVar14,uVar22,
                        local_5c,0xffffffff);
      local_68 = local_68 + local_60;
      pcVar9 = (char *)0x0;
      pcVar5 = os_free_mem;
      pcVar10 = local_5c;
    }
    (*pcVar5)(pcVar9,pcVar10);
  }
LAB_00070e58:
  local_6d._0_1_ = '3';
  local_64 = CONCAT31(local_64._1_3_,8);
  local_50 = 0x3020120;
  local_4c = 0x7060504;
  local_48[0] = 0x21;
  local_48[1] = 5;
  local_48[2] = 6;
  local_48[3] = 7;
  local_48[4] = 8;
  local_48[5] = 9;
  local_48[6] = 10;
  local_48[7] = 0xb;
  if (cVar2 == '\t') {
    puVar14 = &local_50;
    pbVar26 = local_48;
    pcVar7 = (char *)&local_6d;
    piVar4 = &local_64;
    uVar18 = 0xffffffff;
    uVar23 = 1;
    uVar22 = 1;
    uVar25 = 8;
    uVar21 = 8;
    piVar24 = piVar4;
    MakeOutgoingFrame(pbVar20 + (int)local_68,&local_5c,1,pcVar7,1,piVar4,8,puVar14,1,pcVar7,1,
                      piVar4,8,pbVar26,0xffffffff,iVar16,uVar27,puVar28,uVar29,pbVar12,uVar19,iVar8,
                      uVar30,puVar31,uVar32,puVar13,uVar33,iVar17,uVar34);
    local_68 = local_68 + (int)local_5c;
  }
  iVar6 = param_1 + param_2 * 0x1140;
  iVar11 = *(int *)(iVar6 + 0x60dc);
  if (iVar11 != 0) {
    local_5c = (char *)0x0;
    MakeOutgoingFrame(pbVar20 + (int)local_68,&local_5c,iVar11,iVar6 + 0x5fdb,0xffffffff,piVar4,
                      uVar21,puVar14,uVar22,pcVar7,uVar23,piVar24,uVar25,pbVar26,uVar18,iVar16,
                      uVar27,puVar28,uVar29,pbVar12,uVar19,iVar8,uVar30,puVar31,uVar32,puVar13,
                      uVar33,iVar17,uVar34);
    local_68 = local_68 + (int)local_5c;
  }
  local_6d._1_2_ = 0;
  RTMPWriteTxWI(param_1,(byte *)(param_1 + 0x5155),0,0,1,0,0,1,0,0,local_68,5,0,0,0,0,
                (int)&local_6d + 1);
  uVar21 = Status;
  uVar22 = 0;
  if (*(char *)(param_1 + 0xad) == '\x01') {
    Status = Status & 0xfffffffe;
    uVar22 = uVar21 & 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;
    }
  }
  iVar8 = 0;
  bVar3 = *(byte *)(param_1 + 0x5156);
  pbVar12 = (byte *)(param_1 + 0x5155);
  while( true ) {
    if (*(char *)(param_1 + 0xec) == '\0') {
      *(uint *)(*(int *)(param_1 + 0xdc) +
               iVar8 + (uint)*(ushort *)
                              (param_1 + (*(byte *)(param_2 * 0x1140 + param_1 + 0x62e9) + 0x28b4) *
                                         2 + 4)) =
           (uint)bVar3 * 0x100 + (uint)pbVar12[2] * 0x10000 + (uint)*pbVar12 +
           (uint)pbVar12[3] * 0x1000000;
    }
    iVar8 = iVar8 + 4;
    if (iVar8 == 0x10) break;
    bVar3 = pbVar12[5];
    pbVar12 = pbVar12 + 4;
  }
  for (puVar13 = (undefined1 *)0x0; puVar13 < local_68; puVar13 = puVar13 + 4) {
    pbVar1 = pbVar20 + 1;
    pbVar12 = pbVar20 + 2;
    bVar3 = *pbVar20;
    pbVar26 = pbVar20 + 3;
    pbVar20 = pbVar20 + 4;
    if (*(char *)(param_1 + 0xec) == '\0') {
      *(uint *)(puVar13 +
               *(int *)(param_1 + 0xdc) +
               *(ushort *)
                (param_1 + (*(byte *)(param_2 * 0x1140 + param_1 + 0x62e9) + 0x28b4) * 2 + 4) + 0x10
               ) = (uint)*pbVar1 * 0x100 + (uint)*pbVar12 * 0x10000 + (uint)bVar3 +
                   (uint)*pbVar26 * 0x1000000;
    }
  }
  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 (uVar22 != 0) {
      Status = Status | 1;
    }
  }
  param_1 = param_2 * 0x1140 + param_1;
  *(undefined1 *)(param_1 + 0x551b) = 0x22;
  *(char *)(param_1 + 0x551a) = (char)local_68;
  return;
}