MiInitializeProcessTopDownEntropy

VOID __stdcall MiInitializeProcessTopDownEntropy(_EPROCESS *NewProcess, _SECTION *Section, UINT8 ExecutableMapped){
  unsigned __int64 v3; 
  unsigned __int64 v5; 
  unsigned __int64 v6; 
  _QWORD *v7; 
  v3 = *((_QWORD *)NewProcess + 187);
  if( v3 > 0x100000000i64 )
    v3 = 0i64;
  v5 = v3;
  v6 = (-(__int64)(Section != 0i64) & 0xFFFFFFF600010000ui64) + 0x7FFFFFFF0000i64;
  if( (*((_DWORD *)NewProcess + 628) & 0x40) == 0 )
  {
    if( v3 )
      v5 = v3 - ((unsigned __int8)ExGenRandom(1i64) << 16);
    v6 -= (unsigned int)ExGenRandom(1i64) << 16;
  }
  v7 = (_QWORD *)*((_QWORD *)NewProcess + 210);
  if( v5 )
    v7[30] = v6;
  else
    v5 = v6;
  v7[12] = v5;
  v7[21] = v5;
}

Referenced by:

MmInitializeProcessAddressSpace