MiMarkBootGuardPage

void __fastcall MiMarkBootGuardPage(UINT64 a1){
  __int64 v2; 
  UINT64 v3; 
  unsigned __int64 PteShadow; 
  int v5; 
  _MMPFN *PfnDb; 
  _MMPFN *v7; 
  _MMPFN *v8; 
  _MI_PARTITION *v9; 
  unsigned __int64 Long; 
  _MI_PARTITION *v11; 
  int v12; 
  _MI_PAGE_DELETE_RESULT v13; 
  UINT64 v14; 

  if( (*(_BYTE *)a1 & 1) != 0 )
  {
    v2 = (__int64)((a1 << 25) - ((_QWORD)MmGetPteBase() << 25)) >> 16;
    LODWORD(v3) = MI_READ_PTE_LOCK_FREE(a1);
    v14 = v3;
    PteShadow = v3;
    LOBYTE(v5) = MiPteInShadowRange((UINT64)&v14);
    if( v5 )
      PteShadow = MiReadPteShadow((__int64)&v14, PteShadow);
    PfnDb = MmGetPfnDb();
    v7 = &PfnDb[(PteShadow >> 12) & 0xFFFFFFFFFi64];
    v8 = &PfnDb[v7->u4._bf_0 & 0xFFFFFFFFFi64];
    LODWORD(v9) = MiPartitionIdToPointer(((unsigned __int64)v7->u4._bf_0 >> 39) & 0x3FF, (UINT64)PfnDb);
    Long = ZeroPte.u.Long;
    v11 = v9;
    LOBYTE(v12) = MiPteInShadowRange(a1);
    if( v12 && (KeGetCurrentThread()->ApcState.Process->Flags3 & 0x1000) != 0 && (ZeroPte.u.Long & 1) != 0 )
      Long = ZeroPte.u.Long | 0x8000000000000000ui64;
    *(_QWORD *)a1 = Long;
    KeFlushSingleTb(v2, FlushKernel, 1i64);
    v13 = MiLockAndDecrementShareCount(v7, 1ui64);
    MiLockAndDecrementShareCount(v8, 0i64);
    MiReturnResident((INT64)v11, 1ui64);
    if( v13 != PageStillReferenced )
      MiReturnCommit(v11, 1ui64);
    if( v11 == &Irp )
    {
      if( MiGetSystemRegionType(v2) == 14 )
        _InterlockedExchangeAdd64((_QWORD *)&stru_140C4DB30 + 571, 0xFFFFFFFFFFFFFFFFui64);
      else
        --*(&stru_140C4DB30 + 568);
    }
  }
}

Referenced by:

MiInitializeKernelStacks
MmAllocateIsrStack