MiCreatePfnTemplate

NTSTATUS __stdcall MiCreatePfnTemplate(CHAR a1, INT64 a2){
  NTSTATUS v2; 
  __int64 v3; 
  __int64 v4; 
  __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);
  LODWORD(v4) = MiUpdatePageFileHighInPte(*(_QWORD *)(v3 + 16), -(__int64)(v2 != 0) & 0xFFFFFFFDi64);
  *(_QWORD *)(v5 + 16) = v4;
  return v4;
}

Referenced by:

MiInitializeUnusablePfns
MxCreateFreePfns