PnpDeviceCompletionQueueDispatchedEntryCompleted

__int64 __fastcall PnpDeviceCompletionQueueDispatchedEntryCompleted(__int64 a1, _LIST_ENTRY *a2){
  unsigned __int8 v3; 
  VOID *v4; 
  _LIST_ENTRY *Flink; 
  unsigned __int64 v6; 
  _LIST_ENTRY *Blink; 
  _LIST_ENTRY *v8; 
  __int64 result; 
  UINT64 v10; 

  v3 = KeAcquireSpinLockRaiseToDpc((UINT64 *)&PnpReplaceEvent + 749);
  Flink = a2->Flink;
  v6 = v3;
  Blink = a2->Blink;
  if( a2->Flink->Blink != a2
    || Blink->Flink != a2
    || (Blink->Flink = Flink,
        Flink->Blink = Blink,
        v8 = (_LIST_ENTRY *)*(&PnpReplaceEvent + 744),
        --*(&PnpReplaceEvent + 1484),
        (_UNKNOWN *)**(&PnpReplaceEvent + 744) != (_UNKNOWN *)((char *)&PnpReplaceEvent + 5944)) )
  {
    __fastfail(3u);
  }
  LODWORD(v10) = 0;
  a2->Flink = (_LIST_ENTRY *)((char *)&PnpReplaceEvent + 5944);
  a2->Blink = v8;
  v8->Flink = a2;
  *(&PnpReplaceEvent + 744) = a2;
  KeReleaseSemaphoreEx((_KSEMAPHORE *)((char *)&PnpReplaceEvent + 5960), 0i64, 1i64, v4, v10);
  KxReleaseSpinLock((UINT64 *)&PnpReplaceEvent + 749);
  result = (unsigned int)KiIrqlFlags;
  __writecr8(v6);
  return result;
}

Referenced by:

PipEnumerateDevice
PnpDeviceCompletionRoutine