MiCaptureSparsePages

NTSTATUS __stdcall MiCaptureSparsePages(_XSTATE_CONFIGURATION *a1, INT64 a2){
  __int64 v3; 
  _XSTATE_CONFIGURATION *v4; 
  __int64 v5; 
  __int64 v6; 
  _MMPFN *PfnDb; 
  UINT64 v8; 
  unsigned __int64 PteShadow; 
  int v10; 
  __int64 v11; 
  __int64 v12; 
  UINT64 v14; 

  v3 = 0i64;
  v4 = a1;
  LODWORD(v5) = MiMakeValidPte(a1, *(&stru_140C4DB30 + 498), 1i64);
  v6 = v5;
  if( a2 )
  {
    PfnDb = MmGetPfnDb();
    do
    {
      LODWORD(v8) = MI_READ_PTE_LOCK_FREE((INT64)v4);
      v14 = v8;
      PteShadow = v8;
      if( v8 != v6 )
      {
        LOBYTE(v10) = MiPteInShadowRange((UINT64)&v14);
        if( v10 )
          PteShadow = MiReadPteShadow((__int64)&v14, PteShadow);
        MiSetPfnLink(
          &PfnDb[(PteShadow >> 12) & 0xFFFFFFFFFi64].u1.$976DF529DAC3D73085C9E386D94B91E6::$E228DCF3D8940E384DBC5EFCA756D8B6::_bf_0,
          v3);
        v3 = v11;
        MiLockAndDecrementShareCount(&PfnDb[v12], 0i64);
      }
      v4 = (_XSTATE_CONFIGURATION *)((char *)v4 + 8);
      --a2;
    }
    while( a2 );
  }
  return v3;
}

Referenced by:

MiDeleteSparseRange