MiInitializeUltraSpace

NTSTATUS __stdcall MiInitializeUltraSpace(INT64 a1, INT64 a2){
  char *Pool; 
  char *v5; 
  int v6; 
  bool v7; 
  int v8; 
  int v9; 
  int v10; 

  Pool = (char *)MiAllocatePool(66i64, 0x1000ui64, 0x20206D4Dui64);
  v5 = Pool;
  if( Pool )
  {
    *(_QWORD *)(a1 + 24) = 0x4000i64;
    *(_QWORD *)(a1 + 32) = Pool;
    RtlSetAllBitsEx((_RTL_BITMAP_EX *)(a1 + 24));
    v6 = ExGenRandom(ExGenRandomDomainUserVisible);
    v7 = !_BitScanReverse((unsigned int *)&v8, 0x4000u);
    v9 = v6;
    v10 = 0x4000;
    if( !v7 )
      v10 = 1 << v8;
    *(_QWORD *)(a1 + 16) = v9 & (unsigned int)(v10 - 1);
    *(_QWORD *)(a1 + 48) = v5 + 2048;
    *(_QWORD *)(a1 + 40) = 0x4000i64;
    memset(v5 + 2048, 0i64, 0x800u);
    *(_QWORD *)(a1 + 8) = a2;
    LODWORD(Pool) = 1;
    _InterlockedExchange((volatile __int32 *)(a1 + 56), 0x4000);
  }
  return(int)Pool;
}

Referenced by:

MiCreateTopLevelUltraMappings