MiAssignTopLevelRanges

UINT64 __stdcall MiAssignTopLevelRanges(UINT64 HINTDelta){
  _QWORD *v1; 
  _QWORD *v2; 
  __int64 v3; 
  int i; 
  __int64 v5; 
  __int64 v6; 
  char *v7; 
  __int64 v8; 
  __int64 v9; 
  UINT64 v10; 
  __int64 v11; 
  int v12; 
  int v13; 
  __int64 v14; 
  char *v15; 
  __int64 *v16; 
  __int64 v17; 
  unsigned __int64 v18; 
  UINT64 result; 
  int *p_Base; 
  __int64 v21; 
  __int64 v22; 
  __int64 v23; 
  __int64 v24; 
  int Base; 
  char v26; 
  __int64 v27[13]; 
  int v28; 
  __int64 v29; 
  int v30; 
  char v31; 
  __int64 v32; 
  WCHAR Dest[2]; 
  unsigned __int64 v34; 
  int v35; 
  __int64 v36; 
  v2 = v1;
  memset((INT64)&Base, 0i64);
  *v2 = 0i64;
  v3 = 0i64;
  for( i = 0; i < 4; ++i )
  {
    v5 = 3 * v3;
    v3 = (unsigned int)(v3 + 1);
    *(&Base + 2 * v5) = i;
    v27[v5] = 0x100000000000i64;
  }
  v6 = 3 * v3;
  *(&Base + 2 * v6) = 4;
  v7 = &v26;
  v27[v6] = 0x100000000000i64;
  v8 = 5i64;
  do
  {
    *(_DWORD *)v7 = ExGenRandom(1i64);
    v7 += 24;
    --v8;
  }
  while( v8 );
  qsort((WCHAR *)&Base, 5ui64, (const WCHAR *)0x18, MiRegionAssignmentSort);
  v28 = 5;
  v29 = 0x38000000000i64;
  v30 = 6;
  v9 = 7i64;
  v32 = 0x28000000000i64;
  *(_DWORD *)Dest = 7;
  v10 = MiHyperSpaceSize();
  LODWORD(v11) = 8;
  v35 = 8;
  v34 = ((v10 + 0x7FFFFFFFFFi64) & 0xFFFFFF8000000000ui64) + 0x8000000000i64;
  v12 = 0;
  v36 = 0x10000000000i64;
  do
  {
    v11 = (unsigned int)(v11 + 1);
    v13 = v12 + 9;
    ++v12;
    v14 = 3 * v11;
    *(&Base + 2 * v14) = v13;
    v27[v14] = 0x8000000000i64;
  }
  while( v12 < 4 );
  v15 = &v31;
  do
  {
    *(_DWORD *)v15 = ExGenRandom(1i64);
    v15 += 24;
    --v9;
  }
  while( v9 );
  qsort(Dest, 6ui64, (const WCHAR *)0x18, MiRegionAssignmentSort);
  v16 = v27;
  v17 = 13i64;
  do
  {
    if( *((_DWORD *)v16 - 4) == 12 )
    {
      v23 = (_QWORD)MmGetPteBase() << 25;
      v24 = 3i64;
      result = (((_QWORD)((_QWORD)MmGetPml4eBase() + 8 * ((0x140000000ui64 >> 39) & 0x1FF)) << 25) - v23) >> 16;
      do
      {
        result = (__int64)((result << 25) - v23) >> 16;
        --v24;
      }
      while( v24 );
    }
    else
    {
      v18 = (*v16 + 0x7FFFFFFFFFi64) & 0xFFFFFF8000000000ui64;
      *v16 = v18;
      LODWORD(result) = MiAssignSystemVa(v18 >> 39);
      if( !result )
        return result;
    }
    *(v16 - 1) = result;
    LODWORD(v9) = v9 + 1;
    v16 += 3;
  }
  while( (unsigned int)v9 < 0xD );
  p_Base = &Base;
  do
  {
    v21 = *((_QWORD *)p_Base + 1);
    v22 = *p_Base;
    p_Base += 6;
    v22 *= 2i64;
    qword_140C4F808[v22] = v21;
    qword_140C4F810[v22] = *((_QWORD *)p_Base - 1);
    --v17;
  }
  while( v17 );
  MiAddSubRegionEntropy();
  return 1i64;
}

Referenced by:

MiInitializeSystemVa