SMKM_STORE::SmStCheckResident

__int64 __fastcall SMKM_STORE::SmStCheckResident(__int64 a1, unsigned int a2){
  unsigned int v2; 
  unsigned __int64 v3; 
  int v4; 
  __int64 *i; 
  UINT64 Flags; 
  unsigned __int64 v8; 
  __int64 v9[4]; 

  v2 = 0;
  v8 = a1 & 0xFFFFFFFFFFFFF000ui64;
  LODWORD(Flags) = 0;
  v9[1] = (a1 & 0xFFFFFFFFFFFFF000ui64) + 4096;
  v9[0] = 0i64;
  v3 = ((a1 & 0xFFF) + 4095 + (unsigned __int64)a2) >> 12;
  v9[2] = 0i64;
  if( MmQueryVirtualMemory(
         (PVOID)0xFFFFFFFFFFFFFFFFi64,
         0i64,
         MemoryWorkingSetExInformation,
         &v8,
         16i64 * (unsigned int)v3,
         0i64,
         Flags) < 0 )
  {
    return 2;
  }
  else
  {
    v4 = 0;
    if( (_DWORD)v3 )
    {
      for( i = v9; (*i & 1) != 0 || (*i & 0xC00000) == 0x400000; i += 2 )
      {
        if( ++v4 >= (unsigned int)v3 )
          return 1;
      }
    }
    else
    {
      return 1;
    }
  }
  return v2;
}

Referenced by:

No references.