PnpDisableUserModeNotifications

void __fastcall PnpDisableUserModeNotifications(_LIST_ENTRY *a1, __int64 a2){
  char **v4; 
  __int64 v5; 
  char *v6; 
  char *i; 

  ExAcquireFastMutex((PFAST_MUTEX)((char *)&PnpReplaceEvent + 7040));
  v4 = (char **)((char *)&PnpReplaceEvent + 7328);
  v5 = 14i64;
  v6 = (char *)&PnpReplaceEvent + 7328;
  do
  {
    for( i = *v4; i != v6; i = *(char **)i )
    {
      ExAcquireFastMutex(*((PFAST_MUTEX *)i + 2));
      if( *((_QWORD *)i + 6) == *(_QWORD *)(a2 + 1088) && *((_LIST_ENTRY **)i + 4) == a1 )
        i[40] = 1;
      KeReleaseGuardedMutex(*((PKGUARDED_MUTEX *)i + 2));
    }
    v6 += 16;
    v4 += 2;
    --v5;
  }
  while( v5 );
  KeReleaseGuardedMutex((PKGUARDED_MUTEX)((char *)&PnpReplaceEvent + 7040));
}

Referenced by:

IoRevokeHandlesForProcess