MiInitializeProcessTopDownEntropy

VOID __fastcall MiInitializeProcessTopDownEntropy(_EPROCESS *NewProcess, _SECTION *Section, INT64 ExecutableMapped){
  _MMPTE *HighestUserAddress; 
  _MMPTE *v5; 
  unsigned __int64 v6; 
  _MMWSL_INSTANCE *VmWorkingSetList; 

  HighestUserAddress = (_MMPTE *)NewProcess->HighestUserAddress;
  if( (unsigned __int64)HighestUserAddress > 0x100000000i64 )
    HighestUserAddress = 0i64;
  v5 = HighestUserAddress;
  v6 = (-(__int64)(Section != 0i64) & 0xFFFFFFF600010000ui64) + 0x7FFFFFFF0000i64;
  if( (NewProcess->MitigationFlags & 0x40) == 0 )
  {
    if( HighestUserAddress )
      v5 = &HighestUserAddress[-8192 * (unsigned __int8)ExGenRandom(ExGenRandomDomainUserVisible)];
    v6 -= (unsigned int)ExGenRandom(ExGenRandomDomainUserVisible) << 16;
  }
  VmWorkingSetList = NewProcess->Vm.Instance.VmWorkingSetList;
  if( v5 )
    VmWorkingSetList[6].NextPteToTrim = (_MMPTE *)v6;
  else
    v5 = (_MMPTE *)v6;
  VmWorkingSetList[2].NextPteToAccessClear = v5;
  VmWorkingSetList[4].NextPteToAge = v5;
}

Referenced by:

MmInitializeProcessAddressSpace