MiCreateTopLevelUltraMappings

NTSTATUS __stdcall MiCreateTopLevelUltraMappings(UINT64 Pool, INT64 a2){
  INT64 v2; 
  unsigned int v3; 
  char *v4; 
  char *v5; 
  __int64 v6; 
  _SLIST_HEADER *v7; 
  INT64 v9; 

  v2 = *(&stru_140C4DB30 + 931);
  v3 = 0;
  v4 = (char *)MmGetPteBase() + ((*(&stru_140C4DB30 + 931) >> 9) & 0x7FFFFFFFF8i64);
  LODWORD(v9) = 0;
  if( !MiMakeZeroedPageTablesEx((INT64)v4, (INT64)(v4 + 0x7FFFFFFF8i64), 6ui64, 9i64, v9) )
    return 0;
  if( !MiInitializeUltraSpace((INT64)&stru_140C4DB30 + 3584, v2) )
    return 0;
  v5 = (char *)MiAllocatePool(72i64, (unsigned __int64)(unsigned __int16)KeNumberNodes << 9, 0x20206D4Dui64);
  if( !v5 )
    return 0;
  if( KeNumberNodes )
  {
    do
    {
      v6 = 8i64;
      v7 = (_SLIST_HEADER *)&v5[512 * (unsigned __int64)v3];
      do
      {
        InitializeSListHead(v7);
        v7 += 4;
        --v6;
      }
      while( v6 );
      ++v3;
    }
    while( v3 < (unsigned __int16)KeNumberNodes );
  }
  *(&stru_140C4DB30 + 457) = v5;
  return 1;
}

Referenced by:

MiInitNucleus