MiUpdateSlabRangeProtectionHelper

__int64 __fastcall MiUpdateSlabRangeProtectionHelper(__int64 a1, __int64 *a2, _QWORD *a3){
  __int64 v4; 
  unsigned __int64 v5; 
  int v6; 
  int v7; 
  __int64 v8; 

  if( (a2[1] & 1) != 0 )
  {
    v4 = *a2;
    if( !*a2 )
      return 0i64;
    v5 = (unsigned __int64)a2 ^ v4;
  }
  else
  {
    v5 = *a2;
    v4 = *a2;
  }
  if( v5 )
  {
    if( (a2[1] & 1) != 0 && v4 )
      v4 ^= (unsigned __int64)a2;
    v6 = a2[1] & 1;
    if( v4 )
    {
      do
      {
        v7 = MiCompareSlabEntry(a3, v4);
        if( v7 >= 0 )
        {
          if( v7 <= 0 )
            break;
          v8 = *(_QWORD *)(v4 + 8);
        }
        else
        {
          v8 = *(_QWORD *)v4;
        }
        if( v6 && v8 )
          v4 ^= v8;
        else
          v4 = v8;
      }
      while( v4 );
      if( v4 )
      {
        a3[1] = v4;
        return 1i64;
      }
    }
  }
  return 0i64;
}

Referenced by:

No references.