MiAnyProtosAreMapped

__int64 __fastcall MiAnyProtosAreMapped(__int64 a1, _QWORD *a2){
  unsigned int v2; 
  unsigned __int64 v3; 
  unsigned __int64 v4; 
  _MMPFN *v5; 
  ULONG_PTR v6; 
  unsigned __int64 v7; 
  UINT8 v8; 
  UINT8 PageIrql; 

  v2 = 0;
  PageIrql = 17;
  if( a1 == a2[3] )
    v3 = a2[1];
  else
    v3 = *(_QWORD *)(a1 + 8);
  if( a1 == a2[4] )
    v4 = a2[2] + 8i64;
  else
    v4 = v3 + 8i64 * *(unsigned int *)(a1 + 44);
  if( v3 < v4 )
  {
    do
    {
      v5 = MiCheckProtoPtePageState((VOID *)v3, &PageIrql);
      v6 = (unsigned int)v5;
      if( v5 )
      {
        v7 = v4;
        if( v4 > (v3 & 0xFFFFFFFFFFFFF000ui64) + 4096 )
          v7 = (v3 & 0xFFFFFFFFFFFFF000ui64) + 4096;
        while( v3 < v7 )
        {
          if( (*(_BYTE *)v3 & 1) != 0 )
          {
            v2 = 1;
            v3 = v4;
            break;
          }
          v3 += 8i64;
        }
        v8 = PageIrql;
        if( PageIrql != 17 )
        {
          MiUnlockProtoPoolPage((ULONG_PTR)v5, PageIrql);
          v8 = 17;
          PageIrql = 17;
        }
      }
      else
      {
        v8 = PageIrql;
        v3 = (v3 & 0xFFFFFFFFFFFFF000ui64) + 4096;
      }
    }
    while( v3 < v4 );
    if( v8 != 17 )
      MiUnlockProtoPoolPage(v6, v8);
  }
  return v2;
}

Referenced by:

MiTrimSection