MmAllocateUserStack

NTSTATUS __fastcall MmAllocateUserStack(INT64 *a1, UINT64 a2, UINT64 *a3, int a4, int a5){
  INT64 v10; 
  INT64 v11; 
  INT64 v12; 
  INT64 v13; 
  INT64 v14[10]; 

  memset(v14, 0i64, 0x48u);
  LODWORD(v14[4]) = a4;
  if( ((a5 != 0 ? -1073741824 : 0x80000000) & 0x40000000) != 0 && (MiFlags & 0x2000000) == 0 )
    return -1073741637;
  LODWORD(v13) = 0;
  LODWORD(v12) = a5 != 0 ? -1073741824 : 0x80000000;
  LODWORD(v11) = a5 != 0 ? 2 : 4;
  LODWORD(v10) = 0x2000;
  return MiAllocateVirtualMemoryCommon(
           (VOID *)0xFFFFFFFFFFFFFFFFi64,
           a1,
           a2,
           a3,
           v10,
           v11,
           (INT64)v14,
           0,
           v12,
           v13,
           0i64);
}

Referenced by:

NtSetInformationProcess
PspReserveAndCommitUserShadowStack