MiGenerateAccessViolation

BOOL __fastcall MiGenerateAccessViolation(UINT64 *a1){
  UINT64 v1; 
  __int64 *v2; 
  unsigned __int64 v3; 
  _QWORD *v4; 
  __int64 v5; 
  v1 = *a1;
  if( (unsigned int)MiDeterminePoolType(*a1) == 32 )
    return 0;
  v2 = &qword_140C4C640;
  v3 = ExAcquireSpinLockShared(&dword_140C4C638);
  while( 1 )
  {
    v4 = (_QWORD *)*v2;
    while( v4 )
    {
      if( v1 > v4[4] )
      {
        v4 = (_QWORD *)v4[1];
      }
      else
      {
        if( v1 >= v4[3] )
          goto LABEL_14;
        v4 = (_QWORD *)*v4;
      }
    }
    if( v2 != &qword_140C4C640 )
      break;
    v5 = *((_QWORD *)KeGetCurrentThread() + 23);
    if( (*(_DWORD *)(v5 + 1124) & 0x10000) == 0 )
      break;
    v2 = (__int64 *)(*(_QWORD *)(v5 + 1368) + 1008i64);
  }
LABEL_14:
  ExReleaseSpinLockSharedFromDpcLevel(&dword_140C4C638);
  __writecr8(v3);
  return v4 != 0;
}

Referenced by:

MiCheckSystemPageTables
MiRaisedIrqlFault
MiSystemFault