MiLegitimatePageForDriversToMap

INT64 __fastcall MiLegitimatePageForDriversToMap(INT64 a1){
  UNICODE_STRING *v1; 
  UINT8 v2; 
  WCHAR *v3; 
  int v4; 
  INT64 v5; 
  __int64 v6; 
  bool v7; 
  unsigned __int64 PteBase; 
  unsigned __int64 v10; 
  char v11; 
  INT64 v12; 
  INT64 v13; 
  LOBYTE(v4) = MI_PFN_IS_PROTO((UNICODE_STRING *)a1, v1, v2, v3);
  if( !v4 )
  {
    v6 = *(_QWORD *)(v5 + 40);
    if( (v6 & 0x1000000000i64) != 0 )
    {
      LODWORD(v12) = 0;
      LODWORD(v13) = 0;
      if( (unsigned int)MiGetPfnPageSizeIndexUnsynchronized(v5, &v12, &v13) == 3 )
        return 3221225496i64;
      v7 = (_DWORD)v12 == 6;
    }
    else
    {
      PteBase = (unsigned __int64)MmGetPteBase();
      v10 = (__int64)((*(_QWORD *)(v5 + 8) << 25) - (PteBase << 25)) >> 16;
      if( v10 < PteBase )
        return 0i64;
      if( v10 > (unsigned __int64)MmGetPteLimit() )
        return 0i64;
      if( (v6 & 0xFFFFFFFFFi64) == 0xFFFFFFFFDi64 )
        return 0i64;
      v11 = *(_BYTE *)(v5 + 34);
      if( (v11 & 0x20) != 0 && (*(_QWORD *)(v5 + 24) & 0x3FFFFFFFFFFFFFFFi64) == 0 && *(_WORD *)(v5 + 32) )
        return 0i64;
      if( (v11 & 8) != 0 )
        return 0i64;
      v7 = ((*(_QWORD *)v5 >> 13) & 0x7FFFFFFFFFF0i64 | 0xFFFF800000000000ui64) == 0xFFFF800000000030ui64;
    }
    if( !v7 )
      return 3221225496i64;
  }
  return 0i64;
}

Referenced by:

MiMapLockedPagesInUserSpace
MiSetProbePagesAhead
MmMapLockedPagesWithReservedMapping
MmRotatePhysicalView