MiRevokeExecutePte

NTSTATUS __stdcall MiRevokeExecutePte(INT64 a1, INT64 a2){
  unsigned __int64 v4; 
  INT64 v5; 
  INT64 v6; 
  char v7; 
  INT64 v9; 

  v4 = ((a2 << 25) - ((_QWORD)MmGetPteBase() << 25)) >> 16;
  if( v4 <= 0x7FFFFFFEFFFFi64 )
  {
    LODWORD(v5) = MI_READ_PTE_LOCK_FREE(a2);
    v9 = v5;
    v6 = v5;
    if( v5 >= 0 )
    {
      MI_READ_PTE_LOCK_FREE((INT64)&v9);
      MiGetPfnProtection((_MMPFN *)0xFFFFFFFFFi64, (_MMWSLE *)v4);
      if( (v7 & 2) == 0 )
      {
        MiWriteValidPteNewProtection((INT64 *)a2, v6 | 0x8000000000000000ui64);
        MiInsertTbFlushEntry(*(_MI_TB_FLUSH_LIST **)(a1 + 168), (VOID *)v4, 1ui64, 0i64);
      }
    }
  }
  return 0;
}

Referenced by:

No references.