MiInitializeSystemPtes

NTSTATUS __stdcall MiInitializeSystemPtes(){
  VOID *v0; 
  char *PagesPerBit; 
  _MMSUPPORT_INSTANCE *AnyMultiplexedVm; 
  VOID *v3; 
  _MMSUPPORT_INSTANCE *v4; 
  unsigned int v5; 
  char *v6; 
  int v7; 
  _RTL_BITMAP *v8; 

  PagesPerBit = (char *)*(&stru_140C4DB30 + 929);
  AnyMultiplexedVm = MiGetAnyMultiplexedVm(MiWorkingSetTypeSystemPtes, v0);
  if( !MiInitializeSystemWorkingSetList(
          (ULONG_PTR *)&Irp.Core.PartitionId,
          AnyMultiplexedVm,
          WorkingSetTypeSystemPtes,
          0i64) )
    return 0;
  v4 = MiGetAnyMultiplexedVm(MiWorkingSetTypeKernelStacks, v3);
  if( !MiInitializeSystemWorkingSetList((ULONG_PTR *)&Irp.Core.PartitionId, v4, WorkingSetTypeKernelStacks, 0i64) )
    return 0;
  KeGetCurrentPrcb()->PteBitCache = -1i64;
  v5 = ((dword_140CFA17C & 2) << 8) | 0x101;
  v6 = &PagesPerBit[0x200000 * (0x800000 - (v5 + (ExGenRandom(ExGenRandomDomainUserVisible) & 0x3FFF)))];
  *(&stru_140C4DB30 + 86) = v6;
  MiInitializePteInfo(
    (_MI_SYSTEM_PTE_TYPE *)((char *)&stru_140C4DB30 + 4432),
    (VOID *)9,
    (UINT64)(v6 + 0x100000),
    9ui64,
    (UINT64)PagesPerBit);
  if( !v7 )
    return 0;
  *(&stru_140C4DB30 + 1114) |= 1u;
  *(&stru_140C4DB30 + 564) = *(&stru_140C4DB30 + 415);
  AnyMultiplexedVm->Flags._bf_0 = AnyMultiplexedVm->Flags._bf_0 & 0xF8 | 5;
  if( (dword_140CFA17C & 2) != 0
    && MiInitializeDynamicBitmap(
         (_RTL_BITMAP_EX *)((char *)&stru_140C4DB30 + 3304),
         v6 + 537919488,
         0x200000000ui64,
         9ui64) != 1 )
  {
    dword_140CFA17C &= ~2u;
  }
  v8 = (_RTL_BITMAP *)MiSystemVaToDynamicBitmap(9i64);
  if( MiBuildDynamicRegion(v8, PagesPerBit, 0x100000000000ui64)
    && (MiObtainSystemVa(v5, MiVaSystemPtesLarge),
        MiFlags |= 0x20000000u,
        *(&stru_140C4DB30 + 443) = 0i64,
        (*(&stru_140C4DB30 + 447) = MiReservePtes((_MI_SYSTEM_PTE_TYPE *)((char *)&stru_140C4DB30 + 4432), 1ui64)) != 0i64) )
  {
    return 1;
  }
  else
  {
    return 0;
  }
}

Referenced by:

MiInitNucleus