MmBuildLargePages

UINT64 __fastcall MmBuildLargePages(INT64 a1, UINT64 a2){
  UINT64 v2; 
  unsigned int v3; 
  unsigned int LargestPageIndex; 
  unsigned int v5; 
  __int64 *v6; 
  _MI_PARTITION *v7; 
  v2 = 0i64;
  v3 = a2;
  if( (unsigned int)a2 < (unsigned __int16)KeNumberNodes )
  {
    LargestPageIndex = MiGetLargestPageIndex();
    v5 = LargestPageIndex;
    if( LargestPageIndex < 3 )
    {
      v6 = &MiLargePageSizes[LargestPageIndex];
      do
      {
        if( *v6 == 512 )
          break;
        ++v5;
        ++v6;
      }
      while( v5 < 3 );
    }
    if( v5 != 3 )
    {
      LODWORD(v7) = MiPartitionObjectToPartition((PVOID)0xFFFFFFFFFFFFFFFFi64);
      if( v7 )
        return MiRebuildLargePage(v7, v3) >> 9;
    }
  }
  return v2;
}

Referenced by:

VmpAccessFaultBatchResolve