void PeerHTAction(int param_1,int param_2)

{
  char cVar1;
  byte bVar2;
  uint uVar3;
  int iVar4;
  undefined4 local_38;
  undefined4 local_34;
  undefined1 auStack_30 [24];
  uint local_18;
  
  cVar1 = *(char *)(param_2 + 0x19)   //possible issue identified - semgrep
  if (*(byte *)(param_2 + 0x65d) < 0x20) {
    if (cVar1 == '\x01') {
      if (RTDebugLevel < 3) {
        bVar2 = *(byte *)(param_2 + 0x1a);
      }
      else {
        printk("ACTION - SMPS action----> \n");
        bVar2 = *(byte *)(param_2 + 0x1a);
      }
      if ((bVar2 & 1) == 0) {
        *(undefined1 *)((uint)*(byte *)(param_2 + 0x65d) * 0xa20 + param_1 + 0x5d391) = 3;
      }
      else if ((bVar2 & 2) == 0) {
        *(undefined1 *)((uint)*(byte *)(param_2 + 0x65d) * 0xa20 + param_1 + 0x5d391) = 0;
      }
      else {
        *(undefined1 *)((uint)*(byte *)(param_2 + 0x65d) * 0xa20 + param_1 + 0x5d391) = 1;
      }
      if (2 < RTDebugLevel) {
        printk("Aid(%d) MIMO PS = %d\n",(uint)*(byte *)(param_2 + 0x65d),
               *(undefined1 *)((uint)*(byte *)(param_2 + 0x65d) * 0xa20 + param_1 + 0x5d391));
      }
    }
    else if (cVar1 == '\0') {
      if (RTDebugLevel < 3) {
        cVar1 = *(char *)(param_2 + 0x1a)   //possible issue identified - semgrep
      }
      else {
        printk("ACTION - HT Notify Channel bandwidth action----> \n");
        cVar1 = *(char *)(param_2 + 0x1a)   //possible issue identified - semgrep
      }
      if (cVar1 == '\0') {
        param_1 = (uint)*(byte *)(param_2 + 0x65d) * 0xa20 + param_1;
        *(uint *)(param_1 + 0x5d350) = *(uint *)(param_1 + 0x5d350) & 0xffffff7f;
      }
      else {
        iVar4 = (uint)*(byte *)(param_2 + 0x65d) * 0xa20 + param_1;
        uVar3 = *(uint *)(iVar4 + 0x5d350);
        *(uint *)(iVar4 + 0x5d350) =
             uVar3 & 0xffffff7f | ((*(int *)(param_1 + 0x16afc) << 0xe & uVar3 << 8) >> 0x1f) << 7;
      }
    }
    else if (cVar1 == '\b') {
      if (RTDebugLevel < 3) {
        bVar2 = *(byte *)(param_2 + 0x1a);
      }
      else {
        printk("ACTION - HT Information Exchange action----> \n");
        bVar2 = *(byte *)(param_2 + 0x1a);
      }
      if ((bVar2 & 1) == 0) {
        bVar2 = *(byte *)(param_2 + 0x1a);
      }
      else {
        local_38 = 0;
        iVar4 = os_alloc_mem(param_1,&local_38,0x640);
        if (iVar4 == 0) {
          memset(auStack_30,0,0x1b)   //possible issue identified - semgrep
          iVar4 = (uint)*(byte *)((uint)*(byte *)(param_2 + 0x65d) * 0xa20 + param_1 + 0x5cf69) *
                  0x1140 + param_1 + 0x51ac;
          ActHeaderInit(param_1,auStack_30,param_2 + 10,iVar4,iVar4);
          local_18 = CONCAT22(local_18._2_2_,0x807);
          local_18 = local_18 & 0xfff8ffff |
                     ((uint)(*(int *)(param_1 + 0x16afc) << 1) >> 0x1f) << 0x11 |
                     ((uint)(*(int *)(param_1 + 0x16b18) << 0x15) >> 0x1f) << 0x12;
          MakeOutgoingFrame(local_38,&local_34,0x1b,auStack_30,0xffffffff);
          MiniportMMRequest(param_1,0,local_38,local_34);
          os_free_mem(param_1,local_38);
          bVar2 = *(byte *)(param_2 + 0x1a);
        }
        else if (RTDebugLevel < 3) {
          bVar2 = *(byte *)(param_2 + 0x1a);
        }
        else {
          printk("ACTION - respond_ht_information_exchange_action() allocate memory failed \n");
          bVar2 = *(byte *)(param_2 + 0x1a);
        }
      }
      if ((bVar2 & 2) != 0) {
        Handle_BSS_Width_Trigger_Events(param_1);
      }
    }
  }
  return;
}