void EnqueueTPCReq(char *param_1,undefined4 param_2,undefined1 param_3)

{
  int iVar1;
  code *pcVar2;
  char *pcVar3;
  undefined1 local_50 [4];
  char *local_4c;
  int local_48;
  int local_44;
  int local_40;
  undefined1 auStack_3c [32];
  
  local_4c = (char *)0x0;
  MgtMacHeaderInit(param_1,auStack_3c,0xd,0,param_2,param_1 + 0x16973);
  iVar1 = os_alloc_mem(param_1,&local_4c,0x640);
  if (iVar1 == 0) {
    memmove(local_4c,auStack_3c,0x18)   //possible issue identified - semgrep
    local_48 = 0x18;
    InsertActField(param_1,local_4c + 0x18,&local_48,0,2);
    local_50[0] = param_3;
    MakeOutgoingFrame(local_4c + local_48,&local_44,1,local_50,0xffffffff);
    local_48 = local_44 + local_48;
    local_44 = CONCAT31(local_44._1_3_,0x22);
    local_50[0] = 0;
    MakeOutgoingFrame(local_4c + local_48,&local_40,1,&local_44,1,local_50,0xffffffff);
    local_48 = local_40 + local_48;
    MiniportMMRequest(param_1,0,local_4c,local_48);
    pcVar2 = os_free_mem;
    pcVar3 = local_4c;
  }
  else {
    if (RTDebugLevel < 3) {
      return;
    }
    param_1 = "%s() allocate memory failed \n";
    pcVar2 = printk;
    pcVar3 = "EnqueueTPCReq";
  }
  (*pcVar2)(param_1,pcVar3);
  return;
}