void APPeerBeaconAction(int param_1,int param_2)

{
  byte bVar1;
  char cVar2;
  undefined4 uVar3;
  undefined4 uVar4;
  undefined4 uVar5;
  int iVar6;
  int iVar7;
  int iVar8;
  byte *pbVar9;
  uint uVar10;
  undefined1 local_d0;
  undefined1 local_cf;
  undefined1 uStack_ce;
  byte local_cd;
  byte local_cc [5];
  undefined1 uStack_c7;
  undefined1 local_c6;
  undefined1 local_c5;
  undefined1 uStack_c4;
  undefined1 uStack_c3;
  char local_c2;
  char local_c1;
  undefined1 local_c0;
  undefined1 local_bf [3];
  undefined1 auStack_bc [2];
  undefined1 auStack_ba [2];
  undefined1 auStack_b8 [2];
  undefined1 auStack_b6 [2];
  undefined1 auStack_b4 [4];
  int local_b0;
  undefined1 *local_ac;
  undefined1 auStack_a8 [4];
  int local_a4;
  int local_a0;
  int local_9c;
  undefined1 auStack_98 [8];
  undefined1 auStack_90 [8];
  undefined1 auStack_88 [8];
  undefined1 auStack_80 [8];
  undefined1 auStack_78 [8];
  undefined1 auStack_70 [8];
  undefined1 auStack_68 [12];
  undefined1 auStack_5c [12];
  undefined1 auStack_50 [12];
  undefined1 auStack_44 [40];
  
  local_c0 = 0xff;
  local_b0 = 0;
  local_cf = 0;
  local_ac = (undefined1 *)0x0;
  local_cc[1] = 0;
  local_cc[2] = 0;
  local_cc[3] = 0;
  local_a4 = 0;
  local_a0 = 0;
  local_9c = 0;
  local_bf[0] = 0;
  os_alloc_mem(0,&local_a4,0x400);
  if ((((local_a4 == 0) || (os_alloc_mem(0,&local_a0,0x1a), local_a0 == 0)) ||
      (os_alloc_mem(0,&local_9c,0x16), local_9c == 0)) ||
     (os_alloc_mem(0,&local_b0,0x20), local_b0 == 0)) {
    if (RTDebugLevel != 0) {
      printk("%s: Allocate memory fail!!!\n","APPeerBeaconAction");
    }
    goto LAB_00075314;
  }
  RTMPZeroMemory(local_a0,0x1a);
  RTMPZeroMemory(local_9c,0x16);
  iVar7 = local_a4;
  local_ac = auStack_68;
  *(undefined1 *)(local_a4 + 1) = 0;
  local_cd = *(byte *)(param_2 + 0x65c);
  uVar3 = ConvertToRssi(param_1,(int)*(char *)(param_2 + 0x658),0);
  uVar4 = ConvertToRssi(param_1,(int)*(char *)(param_2 + 0x659),1);
  uVar5 = ConvertToRssi(param_1,(int)*(char *)(param_2 + 0x65a),2);
  iVar6 = RTMPMaxRssi(param_1,uVar3,uVar4,uVar5);
  iVar7 = PeerBeaconAndProbeRspSanity
                    (param_1,param_2,*(undefined4 *)(param_2 + 0x648),
                     *(undefined1 *)(param_2 + 0x65c),auStack_88,auStack_90,local_b0,&local_d0,
                     &uStack_ce,auStack_b8,&local_cd,&uStack_c7,auStack_78,auStack_80,auStack_b6,
                     auStack_ba,local_cc + 4,local_cc + 1,local_cc + 2,local_cc + 3,&local_cf,
                     auStack_5c,&local_c6,auStack_50,&local_c5,&uStack_c4,&uStack_c3,auStack_44,
                     auStack_70,auStack_98,auStack_a8,&local_c2,local_a0,auStack_bc,&local_c1,
                     local_9c,&local_c0,auStack_b4,iVar7);
  if ((iVar7 != 0) &&
     ((local_cd == *(byte *)(param_1 + 0x169ec) || (*(char *)(param_1 + 0x16e01) != '\0')))) {
    if ((-0x55 < iVar6) && ((*(byte *)(local_a0 + 1) & 0x40) != 0)) {
      Handle_BSS_Width_Trigger_Events(param_1);
    }
    if ((*(int *)(param_1 + 0x16afc) << 0xe < 0) && (*(char *)(param_1 + 0x16e01) == '\0')) {
      uVar10 = (uint)*(byte *)(param_1 + 0x169ec);
      if (((0xe < uVar10) ||
          (uVar10 = *(byte *)(param_1 + 0x169ed) - 2,
          *(byte *)(param_1 + 0x169ed) + 2 != (uint)local_cd)) && (local_cd != uVar10))
      goto LAB_00075280;
    }
    SupportRate(auStack_5c,local_c6,auStack_50,local_c5,&local_ac,local_cc,local_bf);
    if ((((local_cc[4] & 1) != 0) || (local_cc[0] < 5)) && (*(int *)(param_1 + 0x16a84) == 0)) {
      *(undefined4 *)(param_1 + 0x16634) = *(undefined4 *)(param_1 + 0x16fbc);
    }
    if (((*(char *)(param_1 + 0x16e03) != '\0') && (local_c2 == '\0')) && (-0x55 < iVar6)) {
      *(undefined4 *)(param_1 + 0x16638) = *(undefined4 *)(param_1 + 0x16fbc);
    }
    if (*(char *)(param_1 + 0x16e01) == '\x01') {
      pbVar9 = (byte *)(param_1 + 0x4e3e);
      for (iVar7 = 0; iVar7 < (int)(uint)*(byte *)(param_1 + 0x5058); iVar7 = iVar7 + 1) {
        if (*pbVar9 == local_cd) {
          if (local_c2 == '\0') {
            bVar1 = pbVar9[1];
LAB_00075250:
            pbVar9[1] = bVar1 | 4;
            cVar2 = *(char *)(param_1 + 0x16b32)   //possible issue identified - semgrep
          }
          else {
            bVar1 = pbVar9[1];
            if (local_c1 == '\0') goto LAB_00075250;
            pbVar9[1] = bVar1 | 2;
            bVar1 = *(byte *)(local_9c + 1) & 3;
            if (bVar1 == 3) {
              iVar8 = iVar7 + -4;
              if (iVar7 < 4) {
                bVar1 = *(byte *)(param_1 + 0x169ec);
              }
              else {
LAB_0007537c:
                iVar8 = iVar8 * 10 + param_1;
                *(byte *)(iVar8 + 0x4e3f) = *(byte *)(iVar8 + 0x4e3f) | 1;
LAB_00075220:
                bVar1 = *(byte *)(param_1 + 0x169ec);
              }
            }
            else {
              if (bVar1 == 1) {
                iVar8 = iVar7 + 4;
                if (iVar8 < (int)(uint)*(byte *)(param_1 + 0x5058)) goto LAB_0007537c;
                goto LAB_00075220;
              }
              bVar1 = *(byte *)(param_1 + 0x169ec);
            }
            if (bVar1 == local_cd) {
              if ((*(byte *)(local_9c + 1) & 3) ==
                  (uint)(*(int *)(param_1 + 0x16b18) << 0x16) >> 0x1e) goto LAB_00075268;
              cVar2 = *(char *)(param_1 + 0x16b32)   //possible issue identified - semgrep
            }
            else {
              cVar2 = *(char *)(param_1 + 0x16b32)   //possible issue identified - semgrep
            }
          }
          *(char *)(param_1 + 0x16b32) = cVar2 + '\x01';
        }
LAB_00075268:
        pbVar9 = pbVar9 + 10;
      }
    }
  }
LAB_00075280:
  if (*(byte *)(param_1 + 0x16624) == local_cd) {
    iVar7 = AutoChBssSearchWithSSID
                      (param_1,auStack_90,local_b0,local_d0,*(byte *)(param_1 + 0x16624));
    if (iVar7 == -1) {
      iVar7 = *(int *)(param_1 + 0x16960) + (*(byte *)(param_1 + 0x16625) + 0x36) * 4;
      *(int *)(iVar7 + 4) = *(int *)(iVar7 + 4) + 1;
    }
    AutoChBssInsertEntry(param_1,auStack_90,local_b0,local_d0,local_cd,local_c0,iVar6);
  }
LAB_00075314:
  if (local_a4 != 0) {
    os_free_mem(0);
  }
  if (local_a0 != 0) {
    os_free_mem(0);
  }
  if (local_9c != 0) {
    os_free_mem(0);
  }
  if (local_b0 != 0) {
    os_free_mem(0);
  }
  return;
}