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