PnpDeviceCompletionQueueGetCompletedRequest

_LIST_ENTRY *PnpDeviceCompletionQueueGetCompletedRequest(){
  unsigned __int8 v0; 
  __int64 v1; 
  unsigned __int64 v2; 
  __int64 v3; 

  KeWaitForSingleObject((UINT64)&PnpReplaceEvent + 5960, 0, 0, 0, 0i64);
  v0 = KeAcquireSpinLockRaiseToDpc((UINT64 *)&PnpReplaceEvent + 749);
  v1 = *(&PnpReplaceEvent + 743);
  v2 = v0;
  v3 = **(&PnpReplaceEvent + 743);
  if( *(_UNKNOWN **)(*(&PnpReplaceEvent + 743) + 8i64) != (_UNKNOWN *)((char *)&PnpReplaceEvent + 5944)
    || *(_QWORD *)(v3 + 8) != *(&PnpReplaceEvent + 743) )
  {
    __fastfail(3u);
  }
  *(&PnpReplaceEvent + 743) = **(&PnpReplaceEvent + 743);
  *(_QWORD *)(v3 + 8) = (char *)&PnpReplaceEvent + 5944;
  KxReleaseSpinLock((UINT64 *)&PnpReplaceEvent + 749);
  __writecr8(v2);
  return(_LIST_ENTRY *)v1;
}

Referenced by:

PnpDeviceCompletionProcessCompletedRequests