void MlmeDELBAAction(int param_1,byte *param_2)

{
  byte bVar1;
  int iVar2;
  char *pcVar3;
  undefined4 local_58;
  undefined4 local_54;
  undefined4 local_50;
  undefined1 auStack_4c [16];
  uint local_3c;
  undefined1 auStack_38 [24];
  uint local_20;
  undefined2 local_1c;
  
  local_58 = 0;
  local_54 = 0;
  memset(auStack_38,0,0x1e)   //possible issue identified - semgrep
  if (2 < RTDebugLevel) {
    printk("==> MlmeDELBAAction(), Initiator(%d) \n",param_2[8]);
  }
  iVar2 = MlmeDelBAReqSanity(param_1,param_2,*(undefined4 *)(param_2 + 0x648));
  if (iVar2 == 0) {
    return;
  }
  if (0x1e < (byte)(*param_2 - 1)) {
    return;
  }
  iVar2 = os_alloc_mem(param_1,&local_58,0x640);
  if (iVar2 == 0) {
    iVar2 = os_alloc_mem(param_1,&local_54,0x640);
    if (iVar2 == 0) {
      BarHeaderInit(param_1,auStack_4c,param_1 + (uint)*param_2 * 0xa20 + 0x5d190,
                    (uint)*(byte *)(param_1 + (uint)*param_2 * 0xa20 + 0x5cf69) * 0x1140 + param_1 +
                    0x51ac);
      local_3c = local_3c & 0xffd |
                 (uint)*(ushort *)
                        (param_1 + ((uint)*param_2 * 0x510 + (uint)param_2[7] + 0x2e9d8) * 2 + 4) <<
                 0x14 | (param_2[7] & 0xf) << 0xc | 5;
      MakeOutgoingFrame(local_54,&local_50,0x14,auStack_4c,0xffffffff);
      MiniportMMRequest(param_1,0,local_54,local_50);
      os_free_mem(param_1,local_54);
      if (RTDebugLevel < 3) {
        bVar1 = *param_2;
      }
      else {
        printk("BA - MlmeDELBAAction() . Send BAR to refresh peer reordering buffer \n");
        bVar1 = *param_2;
      }
      local_50 = 0;
      iVar2 = (uint)*(byte *)(param_1 + (uint)bVar1 * 0xa20 + 0x5cf69) * 0x1140 + param_1 + 0x51ac;
      ActHeaderInit(param_1,auStack_38,param_1 + (uint)bVar1 * 0xa20 + 0x5d190,iVar2,iVar2);
      local_20 = CONCAT22(local_20._2_2_,0x203);
      local_20 = local_20 & 0x7ffffff | (param_2[8] & 1) << 0x1b | (uint)param_2[7] << 0x1c;
      local_1c = 0x27;
      MakeOutgoingFrame(local_58,&local_50,0x1e,auStack_38,0xffffffff);
      MiniportMMRequest(param_1,0,local_58,local_50);
      os_free_mem(param_1,local_58);
      if (RTDebugLevel < 3) {
        return;
      }
      printk("BA - MlmeDELBAAction() . 3 DELBA sent. Initiator(%d)\n",param_2[8]);
      return;
    }
    os_free_mem(param_1,local_58);
    if (RTDebugLevel == 0) {
      return;
    }
    pcVar3 = "BA - MlmeDELBAAction() allocate memory failed 2. \n";
  }
  else {
    if (RTDebugLevel == 0) {
      return;
    }
    pcVar3 = "BA - MlmeDELBAAction() allocate memory failed 1. \n";
  }
  printk(pcVar3);
  return;
}