MiMakeProtoTransition

VOID __fastcall MiMakeProtoTransition(INT64 a1){
  unsigned __int64 v2; 
  unsigned __int64 v3; 
  __int64 v4; 
  __int64 v5; 
  UINT64 *v6; 
  UINT64 v7; 
  UINT64 v8; 
  UINT64 TransitionPte; 
  v2 = MI_READ_PTE_LOCK_FREE(a1 + 16);
  v3 = *(_QWORD *)(a1 + 8);
  v4 = (v2 >> 5) & 0x1F;
  LODWORD(v5) = MiMapPageInHyperSpaceWorker(*(_QWORD *)(a1 + 40) & 0xFFFFFFFFFi64, 0i64, 0x80000000ui64);
  v6 = (UINT64 *)(v5 + 8 * ((v3 >> 3) & 0x1FF));
  TransitionPte = MI_READ_PTE_LOCK_FREE((INT64)v6);
  v7 = TransitionPte;
  MiPteInShadowRange((UINT64)&TransitionPte);
  TransitionPte = MiMakeTransitionPte((v7 >> 12) & 0xFFFFFFFFFi64, (unsigned int)v4, v8);
  *v6 = TransitionPte;
  MiUnmapPageInHyperSpaceWorker(v6, 0x11u, 0x80000000ui64);
}

Referenced by:

MiDeletePteList