MiInitializeMdlPfn

VOID __stdcall MiInitializeMdlPfn(_MMPFN *Pfn1, UINT64 Flags){
  int v2; 
  char v4; 
  _MMPTE *PteBase; 
  unsigned __int64 v6; 

  v2 = Flags;
  if( (Flags & 0x100) != 0 )
  {
    v4 = *((_BYTE *)&Pfn1->u3 + 2);
    if( (v4 & 7) != 5 )
      *((_BYTE *)&Pfn1->u3 + 2) = v4 & 0xF8 | 5;
    Pfn1->u2._bf_0 &= 0xC000000000000000ui64;
  }
  else
  {
    Pfn1->u2._bf_0 = Pfn1->u2._bf_0 & 0xC000000000000000ui64 | 1;
    Pfn1->u3.ReferenceCount = 2;
    PteBase = MmGetPteBase();
    v6 = 0i64;
    if( (Flags & 0x80000200) == 0 )
      v6 = (unsigned __int64)PteBase;
    Pfn1->PteLong = v6;
    if( (Flags & 0x80000000) != 0i64 )
      Pfn1->u2._bf_0 &= ~0x4000000000000000ui64;
    if( (Flags & 0x200) != 0 )
    {
      MiAbortCombineScan(Pfn1);
      Pfn1->u4._bf_0 = Pfn1->u4._bf_0 & 0x8FFFFFFFFFFFFFFFui64 | 0x3000000000000000i64;
      if( (v2 & 0x20000) == 0 )
        _InterlockedIncrement64((_QWORD *)&stru_140C4DB30 + 66);
    }
    *((_BYTE *)&Pfn1->u3 + 2) = *(_BYTE *)(&Pfn1->u3 + 1) & 0xF8 | 6;
    if( v2 < 0 )
      Pfn1->u4._bf_0 = Pfn1->u4._bf_0 & 0x8FFFFFFFFFFFFFFFui64 | 0x1000000000000000i64;
  }
  *((_BYTE *)&Pfn1->u3 + 3) &= 0xF8u;
  *(_DWORD *)&Pfn1->NodeBlinkLow = 0;
}

Referenced by:

MiCreateEnclaveRegions
MiInitializeMdlLeafPfns
MmAllocateNonChargedSecurePages
MmAllocateSecureKernelPages