/* WARNING: Type propagation algorithm not settling */

void APUpdateBeaconFrame(int param_1,int param_2)

{
  byte bVar1;
  char cVar2;
  undefined1 uVar3;
  undefined2 uVar4;
  bool bVar5;
  byte bVar6;
  int iVar7;
  undefined1 *puVar8;
  int iVar9;
  undefined1 *puVar10;
  undefined1 *puVar11;
  char *pcVar12;
  int iVar13;
  byte *pbVar14;
  uint uVar15;
  uint uVar16;
  char *pcVar17;
  uint uVar18;
  undefined2 *puVar19;
  int iVar20;
  undefined1 local_60;
  undefined1 local_5f;
  undefined1 local_5e;
  byte local_5d;
  undefined2 local_5c [2];
  uint local_58 [4];
  uint local_48;
  char acStack_46 [2];
  undefined4 local_44;
  undefined4 local_40;
  undefined4 local_3c;
  undefined2 local_38;
  uint local_30;
  
  local_60 = 0xdd;
  iVar7 = param_2 * 0x1140 + param_1;
  local_5f = 0x30;
  local_30 = (uint)*(byte *)(iVar7 + 0x551a);
  bVar1 = *(byte *)(iVar7 + 0x62ea);
  if (param_2 == 0) {
    cVar2 = *(char *)(param_1 + 0x62e8)   //possible issue identified - semgrep
  }
  else {
    cVar2 = *(char *)(iVar7 + 0x62e8)   //possible issue identified - semgrep
  }
  if (cVar2 != '\x01') {
    return;
  }
  uVar16 = 0;
  iVar7 = param_1 + param_2 * 0x1140;
  iVar20 = iVar7 + 0x5720;
  puVar10 = (undefined1 *)(iVar20 + (uint)*(byte *)(iVar7 + 0x551b));
  *puVar10 = (char)*(undefined2 *)(iVar7 + 0x51d4);
  pbVar14 = (byte *)(iVar7 + 0x5250);
  puVar10[1] = (char)((ushort)*(undefined2 *)(iVar7 + 0x51d4) >> 8);
  puVar10 = (undefined1 *)(iVar20 + (uint)*(byte *)(iVar7 + 0x551a));
  *puVar10 = 5;
  uVar15 = 0;
  puVar10[2] = *(undefined1 *)(param_1 + 0x16631);
  uVar18 = 0;
  puVar10[3] = *(undefined1 *)(param_1 + 0x16632);
  bVar6 = *pbVar14;
  while( true ) {
    if (uVar15 == 0) {
      bVar6 = bVar6 & 0xfe;
    }
    pbVar14 = pbVar14 + 1;
    if ((bVar6 != 0) && (uVar18 = uVar15, uVar16 == 0)) {
      uVar16 = uVar15;
    }
    uVar15 = uVar15 + 1 & 0xff;
    if (uVar15 == 5) break;
    bVar6 = *pbVar14;
  }
  if ((uVar16 & 1) != 0) {
    uVar16 = uVar16 - 1 & 0xff;
  }
  puVar10[1] = ((char)uVar18 + '\x04') - (char)uVar16;
  puVar10[4] = (char)uVar16;
  puVar8 = (undefined1 *)(param_1 + param_2 * 0x1140 + uVar16 + 0x5250);
  puVar11 = puVar10;
  while( true ) {
    bVar5 = uVar18 < uVar16;
    uVar16 = uVar16 + 1;
    if (bVar5) break;
    uVar3 = *puVar8;
    puVar8 = puVar8 + 1;
    puVar11[5] = uVar3;
    puVar11 = puVar11 + 1;
  }
  if (*(char *)(param_1 + 0x16631) == '\0') {
    puVar10[4] = puVar10[4] | *(byte *)(param_2 * 0x1140 + param_1 + 0x5250) & 1;
  }
  iVar7 = local_30 + 2 + (uint)(byte)puVar10[1];
  if (*(char *)(param_1 + 0x16a07) == '\0') {
LAB_00070094:
    if (4 < bVar1) {
      if (*(char *)(param_2 * 0x1140 + param_1 + 0x520a) != '\0') {
        local_5d = 0x1a;
        local_5e = 0x16;
        MakeOutgoingFrame(iVar20 + iVar7,local_58 + 1,1,&HtCapIe,1,&local_5d,0x1a,param_1 + 0x16afe,
                          1,&AddHtInfoIe,1,&local_5e,0x16,param_1 + 0x16b18,0xffffffff);
        iVar7 = iVar7 + local_58[1];
      }
      if (((*(byte *)(param_1 + 0x169ec) < 0xf) &&
          (*(char *)(param_2 * 0x1140 + param_1 + 0x520a) != '\0')) &&
         (*(int *)(param_1 + 0x16afc) << 0xe < 0)) {
        local_58[2] = *(undefined4 *)(param_1 + 0x16b5e);
        local_58[3] = *(undefined4 *)(param_1 + 0x16b62);
        local_48 = *(uint *)(param_1 + 0x16b66);
        local_5e = 0x4a;
        local_5d = 0xe;
        local_44 = CONCAT22(local_44._2_2_,*(undefined2 *)(param_1 + 0x16b6a));
        MakeOutgoingFrame(iVar20 + iVar7,local_58 + 1,1,&local_5e,1,&local_5d,0xe,local_58 + 2,
                          0xffffffff);
        iVar7 = iVar7 + local_58[1];
      }
    }
  }
  else {
    puVar10 = (undefined1 *)(iVar20 + iVar7);
    if (bVar1 != 1) {
      *puVar10 = 0x2a;
      puVar10[1] = 1;
      iVar7 = iVar7 + 3;
      puVar10[2] = *(undefined1 *)(param_1 + 0x16633);
      goto LAB_00070094;
    }
  }
  local_5d = 1;
  memset(local_58,0,1)   //possible issue identified - semgrep
  if (((4 < bVar1) && (*(byte *)(param_1 + 0x169ec) < 0xf)) &&
     ((*(char *)(param_2 * 0x1140 + param_1 + 0x520a) != '\0' &&
      (*(char *)(param_1 + 0x16b30) == '\x01')))) {
    local_58[0] = local_58[0] & 0xfffffffe | 1;
  }
  uVar16 = 0;
  do {
    bVar5 = local_5d <= uVar16;
    pcVar12 = (char *)((int)local_58 + uVar16);
    uVar16 = uVar16 + 1;
    if (bVar5) goto LAB_000702fc;
  } while (*pcVar12 == '\0');
  MakeOutgoingFrame(iVar20 + iVar7,local_58 + 1,1,&ExtCapIe,1,&local_5d,(uint)local_5d,local_58,
                    0xffffffff);
  iVar7 = iVar7 + local_58[1];
LAB_000702fc:
  iVar9 = *(int *)(param_2 * 0x1140 + param_1 + 0x51dc);
  if (iVar9 - 3U < 2) {
    local_60 = 0xdd;
  }
  else if (iVar9 - 6U < 2) {
    local_60 = 0x30;
  }
  iVar9 = param_2 * 0x1140;
  iVar13 = param_1 + iVar9;
  if (*(uint *)(iVar13 + 0x51dc) - 8 < 2) {
    iVar9 = param_1 + iVar9 + 0x52e0;
    MakeOutgoingFrame(iVar20 + iVar7,local_58 + 1,1,&local_60,1,iVar9 + 4,
                      *(undefined1 *)(iVar13 + 0x52e4),iVar9 + 6,1,&local_5f,1,iVar13 + 0x52e5,
                      *(undefined1 *)(iVar13 + 0x52e5),iVar13 + 0x53e5,0xffffffff);
  }
  else {
    if (*(uint *)(iVar13 + 0x51dc) < 3) goto LAB_00070430;
    iVar9 = param_1 + iVar9 + 0x52e0;
    MakeOutgoingFrame(iVar20 + iVar7,local_58 + 1,1,&local_60,1,iVar9 + 4,
                      *(undefined1 *)(iVar13 + 0x52e4),iVar9 + 6,0xffffffff);
  }
  iVar7 = iVar7 + local_58[1];
LAB_00070430:
  if (*(char *)(param_2 * 0x1140 + param_1 + 0x5b30) != '\0') {
    bVar6 = 0x80;
    if (*(char *)(param_1 + 0x16a2c) == '\0') {
      bVar6 = 0;
    }
    local_58[2] = 0x500018dd;
    local_48 = (uint)(bVar6 | *(byte *)(param_1 + 0x1687a) & 0xf);
    local_44 = 0;
    local_40 = 0;
    local_3c = 0;
    local_38 = 0;
    local_58[3] = 0x10102f2;
    memmove(local_58,(void *)(param_1 + 0x1687b),4)   //possible issue identified - semgrep
    pcVar17 = (char *)(param_1 + 0x16883);
    puVar19 = (undefined2 *)(param_1 + 0x16888);
    pcVar12 = acStack_46;
    iVar9 = 0;
    do {
      *pcVar12 = (*(byte *)((int)local_58 + iVar9) & 0xf) + pcVar17[0xd] * '\x10' +
                 (char)iVar9 * ' ';
      uVar4 = *puVar19;
      iVar9 = iVar9 + 1;
      pcVar12[1] = (pcVar17[-4] & 0xfU) + *pcVar17 * '\x10';
      pcVar12[2] = (char)uVar4;
      pcVar12[3] = (char)((ushort)uVar4 >> 8);
      pcVar17 = pcVar17 + 1;
      pcVar12 = pcVar12 + 4;
      puVar19 = puVar19 + 1;
    } while (iVar9 != 4);
    MakeOutgoingFrame(iVar20 + iVar7,local_58 + 1,0x1a,local_58 + 2,0xffffffff);
    iVar7 = iVar7 + local_58[1];
  }
  if (*(char *)(param_1 + 0x76b44) != '\0') {
    iVar9 = QBSS_LoadElementAppend(param_1,iVar20 + iVar7);
    iVar7 = iVar7 + iVar9;
  }
  if (((4 < bVar1) && (*(char *)(param_2 * 0x1140 + param_1 + 0x520a) != '\0')) &&
     (*(char *)(param_1 + 0x769e8) == '\x01')) {
    local_58[0] = 0x334c9000;
    local_58[2] = 0x344c9000;
    local_5d = 0x1e;
    MakeOutgoingFrame(iVar20 + iVar7,local_58 + 1,1,&WpaIe,1,&local_5d,4,local_58,0x1a,
                      param_1 + 0x16afe,0xffffffff);
    iVar7 = iVar7 + local_58[1];
    local_5d = 0x1a;
    MakeOutgoingFrame(iVar20 + iVar7,local_58 + 1,1,&WpaIe,1,&local_5d,4,local_58 + 2,0x16,
                      param_1 + 0x16b18,0xffffffff);
    iVar7 = iVar7 + local_58[1];
  }
  local_58[2] = 0xc0007dd;
  local_58[3] = 0x43;
  local_48 = local_48 & 0xffffff00;
  if (*(char *)(param_1 + 0x16a7e) != '\0') {
    local_58[3] = 0x143;
  }
  if (*(char *)(param_1 + 0x16a7f) != '\0') {
    local_58[3] = local_58[3] | 0x200;
  }
  if (*(char *)(param_1 + 0x16a88) != '\0') {
    local_58[3] = local_58[3] | 0x400;
  }
  MakeOutgoingFrame(iVar20 + iVar7,local_58 + 1,9,local_58 + 2,0xffffffff);
  local_5c[0] = 0;
  RTMPWriteTxWI(param_1,param_1 + 0x5155,0,0,1,0,0,1,0,0xff,iVar7 + local_58[1],5,0xd,0,0,0,local_5c
               );
  RT28xx_UpdateBeaconToAsic(param_1,param_2,iVar7 + local_58[1],local_30);
  return;
}