MiMarkLargePagePte

INT64 __fastcall MiMarkLargePagePte(INT64 a1, INT64 a2, INT64 a3){
  int v3; 
  INT64 v4; 
  unsigned __int64 v5; 
  __int64 v7; 
  UINT64 v8; 
  __int64 v9; 
  UINT64 v10; 
  UINT64 v11; 
  v3 = a3;
  v4 = MI_READ_PTE_LOCK_FREE(a2);
  v11 = v4;
  v5 = v4;
  if( (v4 & 1) != 0 && (v4 & 0x80u) != 0i64 )
  {
    MiPteInShadowRange((UINT64)&v11);
    v7 = (v5 >> 12) & 0xFFFFFFFFFi64;
    if( ((*((_QWORD *)MmGetPfnDb() + 6 * v7 + 5) >> 50) & 1) != 0 )
    {
      v8 = 512i64;
      if( v3 > 1 )
      {
        v9 = (unsigned int)(v3 - 1);
        do
        {
          v8 <<= 9;
          --v9;
        }
        while( v9 );
      }
      LODWORD(v10) = 0;
      MiUpdateLargePageBitMap((UINT64)&MiSystemPartition, v7, v8, 1ui64, v10);
    }
  }
  return 0i64;
}

Referenced by:

No references.