MiCreatePfnTemplate

INT64 __fastcall MiCreatePfnTemplate(CHAR a1, INT64 a2){
  int v2; 
  __int64 v3; 
  INT64 result; 
  __int64 v5; 
  *(_OWORD *)a2 = 0i64;
  *(_OWORD *)(a2 + 16) = 0i64;
  *(_OWORD *)(a2 + 32) = 0i64;
  *(_BYTE *)(a2 + 34) ^= (a1 ^ *(_BYTE *)(a2 + 34)) & 7;
  *(_BYTE *)(a2 + 34) = *(_BYTE *)(a2 + 34) & 0x3F | 0x40;
  *(_QWORD *)(a2 + 40) |= 0x4000000000000ui64;
  v2 = MiDetermineNewPfnHeatState(0i64);
  result = MiUpdatePageFileHighInPte(*(_QWORD *)(v3 + 16), -(__int64)(v2 != 0) & 0xFFFFFFFDi64);
  *(_QWORD *)(v5 + 16) = result;
  return result;
}

Referenced by:

MiInitializeUnusablePfns
MxCreateFreePfns