CMFGetLargePageSectionSize

NTSTATUS __stdcall CMFGetLargePageSectionSize(LARGE_INTEGER *FileSize, LARGE_INTEGER *SectionSize){
  NTSTATUS v2; 
  unsigned __int64 v5; 
  LONGLONG QuadPart; 
  unsigned __int64 v7; 
  unsigned __int64 v8; 
  unsigned __int64 v9; 
  v2 = 0;
  v5 = (unsigned __int64)KUSER_SHARED_DATA.LargePageMinimum >> 12;
  if( !v5 )
    return -1073741637;
  QuadPart = FileSize->QuadPart;
  v7 = ((unsigned __int64)FileSize->QuadPart >> 12) + ((FileSize->QuadPart & 0xFFF) != 0);
  v8 = (unsigned int)v7 % v5;
  if( v8 )
  {
    v9 = (v5 << 12) - 4095 + (v7 << 12) - (v8 << 12);
    SectionSize->QuadPart = v9;
    if( ((v9 >> 12) + ((v9 & 0xFFF) != 0)) % v5 || SectionSize->HighPart || SectionSize->LowPart < FileSize->LowPart )
      return -1073741823;
  }
  else
  {
    SectionSize->QuadPart = QuadPart;
  }
  return v2;
}

Referenced by:

CMFSystemThreadRoutine