MiCreateTopLevelUltraMappings

INT64 __stdcall MiCreateTopLevelUltraMappings(UINT64 Pool, INT64 a2){
  INT64 v2; 
  unsigned int v3; 
  char *v4; 
  __int64 v5; 
  __int64 v6; 
  __int64 v7; 
  _SLIST_HEADER *v8; 
  INT64 v10; 
  v2 = qword_140C4F848;
  v3 = 0;
  v4 = (char *)MmGetPteBase() + (((unsigned __int64)qword_140C4F848 >> 9) & 0x7FFFFFFFF8i64);
  LODWORD(v10) = 0;
  if( !(unsigned int)MiMakeZeroedPageTablesEx((INT64)v4, (INT64)(v4 + 0x7FFFFFFF8i64), 6ui64, 9i64, v10) )
    return 0i64;
  if( !(unsigned int)MiInitializeUltraSpace((INT64)&qword_140C4E930, v2) )
    return 0i64;
  LODWORD(v5) = MiAllocatePool((struct _SLIST_ENTRY *)0x48);
  v6 = v5;
  if( !v5 )
    return 0i64;
  if( KeNumberNodes )
  {
    do
    {
      v7 = 8i64;
      v8 = (_SLIST_HEADER *)(v6 + ((unsigned __int64)v3 << 9));
      do
      {
        InitializeSListHead(v8);
        v8 = (_SLIST_HEADER *)((char *)v8 + 64);
        --v7;
      }
      while( v7 );
      ++v3;
    }
    while( v3 < (unsigned __int16)KeNumberNodes );
  }
  qword_140C4E978 = v6;
  return 1i64;
}

Referenced by:

MiInitNucleus