void SendBSS2040CoexistMgmtAction(int param_1,uint param_2,uint param_3,uint param_4)

{
  undefined4 uVar1;
  undefined2 uVar2;
  int iVar3;
  undefined6 *puVar4;
  undefined4 local_48;
  undefined1 local_44;
  undefined1 local_43;
  undefined1 local_42;
  undefined4 local_40;
  undefined4 local_3c;
  undefined1 auStack_38 [24];
  undefined1 local_20;
  undefined1 local_1f;
  
  param_2 = param_2 & 0xff;
  local_40 = 0;
  if (2 < RTDebugLevel) {
    printk("SendBSS2040CoexistMgmtAction(): Wcid=%d, apidx=%d, InfoReq=%d!\n",param_2,param_3 & 0xff
           ,param_4 & 0xff);
  }
  memset(&local_48,0,3)   //possible issue identified - semgrep
  memset(&local_44,0,3)   //possible issue identified - semgrep
  uVar2 = local_48._2_2_;
  local_48 = CONCAT22(local_48._2_2_,0x100);
  local_48 = CONCAT31(local_48._1_3_,0x48);
  uVar1 = local_48;
  local_48._3_1_ = SUB21(uVar2,1);
  local_48._0_3_ = CONCAT12(*(undefined1 *)(param_1 + 0x16b74),(short)uVar1);
  local_48 = local_48 & 0xfffeffff | (param_4 & 1) << 0x10;
  local_44 = 0x49;
  local_43 = 1;
  local_42 = get_regulatory_class(param_1);
  iVar3 = os_alloc_mem(param_1,&local_40,0x640);
  if (iVar3 == 0) {
    if (param_2 == 0) {
      puVar4 = &BROADCAST_ADDR;
    }
    else {
      puVar4 = (undefined6 *)(param_1 + param_2 * 0xa20 + 0x5d190);
    }
    iVar3 = (param_3 & 0xff) * 0x1140 + param_1 + 0x51ac;
    ActHeaderInit(param_1,auStack_38,puVar4,iVar3,iVar3);
    local_20 = 4;
    local_1f = 0;
    MakeOutgoingFrame(local_40,&local_3c,0x1a,auStack_38,3,&local_48,3,&local_44,0xffffffff);
    MiniportMMRequest(param_1,0,local_40,local_3c);
    os_free_mem(param_1,local_40);
    if (RTDebugLevel != 0) {
      printk("ACT - SendBSS2040CoexistMgmtAction( BSSCoexist2040 = 0x%x )  \n",local_48._2_1_);
    }
  }
  else if (RTDebugLevel != 0) {
    printk("ACT - SendBSS2040CoexistMgmtAction() allocate memory failed \n");
  }
  return;
}