IoDiagTraceDirectedDripsCandidateDevices

_LIST_ENTRY *__stdcall IoDiagTraceDirectedDripsCandidateDevices(){
  _LIST_ENTRY *Flink; 
  _LIST_ENTRY *result; 
  signed __int32 Blink; 
  signed __int32 v3; 

  Flink = (_LIST_ENTRY *)*(&PnpReplaceEvent + 831);
  for( result = *(_LIST_ENTRY **)(*(&PnpReplaceEvent + 831) + 8i64); result; result = result->Blink )
    Flink = result;
  while( Flink != (_LIST_ENTRY *)*(&PnpReplaceEvent + 831) )
  {
    _m_prefetchw(&Flink[18].Blink);
    Blink = (signed __int32)Flink[18].Blink;
    do
    {
      v3 = Blink;
      Blink = _InterlockedCompareExchange((volatile signed __int32 *)&Flink[18].Blink, Blink, Blink);
    }
    while( v3 != Blink );
    if( (Blink & 0x100) != 0 )
      PoDiagTraceDirectedDripsCandidateDevice();
    result = Flink->Flink;
    if( Flink->Flink )
    {
      do
      {
        Flink = result;
        result = result->Blink;
      }
      while( result );
    }
    else
    {
      Flink = Flink[1].Flink;
    }
  }
  return result;
}

Referenced by:

PopDirectedDripsDiagTraceNotifyDevices