MiAssignTopLevelRanges

NTSTATUS __stdcall MiAssignTopLevelRanges(UINT64 HINTDelta){
  _QWORD *v1; 
  _QWORD *v2; 
  __int64 v3; 
  int i; 
  __int64 v5; 
  __int64 v6; 
  _DWORD *v7; 
  __int64 v8; 
  __int64 v9; 
  __int64 v10; 
  __int64 v11; 
  int v12; 
  int v13; 
  __int64 v14; 
  _DWORD *v15; 
  INT64 **v16; 
  __int64 v17; 
  unsigned __int64 v18; 
  __int64 v19; 
  INT64 **v20; 
  INT64 *v21; 
  __int64 v22; 
  __int64 v23; 
  __int64 v24; 
  INT64 *Base[40]; 

  v2 = v1;
  memset(Base, 0i64, 0x138u);
  *v2 = 0i64;
  v3 = 0i64;
  for( i = 0; i < 4; ++i )
  {
    v5 = 3 * v3;
    v3 = (unsigned int)(v3 + 1);
    LODWORD(Base[v5]) = i;
    Base[v5 + 2] = (INT64 *)0x100000000000i64;
  }
  v6 = 3 * v3;
  LODWORD(Base[v6]) = 4;
  v7 = (_DWORD *)Base + 1;
  Base[v6 + 2] = (INT64 *)0x100000000000i64;
  v8 = 5i64;
  do
  {
    *v7 = ExGenRandom(ExGenRandomDomainUserVisible);
    v7 += 6;
    --v8;
  }
  while( v8 );
  qsort((UINT64)Base, 5ui64, 0x18ui64, (INT64)MiRegionAssignmentSort, Base[0], (UINT64)Base[1], (UINT64)Base[2]);
  LODWORD(Base[15]) = 5;
  Base[17] = (INT64 *)0x38000000000i64;
  LODWORD(Base[18]) = 6;
  v9 = 7i64;
  Base[20] = (INT64 *)0x28000000000i64;
  LODWORD(Base[21]) = 7;
  LODWORD(v10) = MiHyperSpaceSize();
  LODWORD(v11) = 8;
  LODWORD(Base[24]) = 8;
  Base[23] = (INT64 *)(((v10 + 0x7FFFFFFFFFi64) & 0xFFFFFF8000000000ui64) + 0x8000000000i64);
  v12 = 0;
  Base[26] = (INT64 *)0x10000000000i64;
  do
  {
    v11 = (unsigned int)(v11 + 1);
    v13 = v12 + 9;
    ++v12;
    v14 = 3 * v11;
    LODWORD(Base[v14]) = v13;
    Base[v14 + 2] = (INT64 *)0x8000000000i64;
  }
  while( v12 < 4 );
  v15 = (_DWORD *)&Base[18] + 1;
  do
  {
    *v15 = ExGenRandom(ExGenRandomDomainUserVisible);
    v15 += 6;
    --v9;
  }
  while( v9 );
  qsort((UINT64)&Base[21], 6ui64, 0x18ui64, (INT64)MiRegionAssignmentSort, Base[0], (UINT64)Base[1], (UINT64)Base[2]);
  v16 = &Base[2];
  v17 = 13i64;
  do
  {
    if( *((_DWORD *)v16 - 4) == 12 )
    {
      v23 = (_QWORD)MmGetPteBase() << 25;
      v24 = 3i64;
      v19 = (((_QWORD)&MmGetPml4eBase()[(0x140000000ui64 >> 39) & 0x1FF] << 25) - v23) >> 16;
      do
      {
        v19 = ((v19 << 25) - v23) >> 16;
        --v24;
      }
      while( v24 );
    }
    else
    {
      v18 = ((unsigned __int64)*v16 + 0x7FFFFFFFFFi64) & 0xFFFFFF8000000000ui64;
      *v16 = (INT64 *)v18;
      LODWORD(v19) = MiAssignSystemVa(v18 >> 39);
      if( !v19 )
        return v19;
    }
    *(v16 - 1) = (INT64 *)v19;
    LODWORD(v9) = v9 + 1;
    v16 += 3;
  }
  while( (unsigned int)v9 < 0xD );
  v20 = Base;
  do
  {
    v21 = v20[1];
    v22 = *(int *)v20;
    v20 += 3;
    v22 *= 2i64;
    *((_QWORD *)&stru_140C4DB30 + v22 + 923) = v21;
    *((_QWORD *)&stru_140C4DB30 + v22 + 924) = *(v20 - 1);
    --v17;
  }
  while( v17 );
  MiAddSubRegionEntropy();
  LODWORD(v19) = 1;
  return v19;
}

Referenced by:

MiInitializeSystemVa