PopDispatchQuerySetIrp

VOID __stdcall PopDispatchQuerySetIrp(_IRP *Irp){
  _IO_STACK_LOCATION *CurrentStackLocation; 
  VOID *v3; 
  _LIST_ENTRY *p_ListEntry; 
  _LIST_ENTRY *v5; 
  __int64 v6; 
  UINT64 v7; 

  CurrentStackLocation = Irp->Tail.CurrentStackLocation;
  CurrentStackLocation->Control |= 1u;
  ObfReferenceObjectWithTag(CurrentStackLocation->DeviceObject, 0x72496F50ui64);
  p_ListEntry = &Irp->Tail.ListEntry;
  if( Irp == (_IRP *)PopInrushIrp )
  {
    v6 = PopIrpWorkerList;
    if( *(__int64 **)(PopIrpWorkerList + 8) == &PopIrpWorkerList )
    {
      p_ListEntry->Flink = (_LIST_ENTRY *)PopIrpWorkerList;
      Irp->Tail.ListEntry.Blink = (_LIST_ENTRY *)&PopIrpWorkerList;
      *(_QWORD *)(v6 + 8) = p_ListEntry;
      PopIrpWorkerList = (__int64)&Irp->Tail.ListEntry;
      goto LABEL_4;
    }
LABEL_7:
    __fastfail(3u);
  }
  v5 = (_LIST_ENTRY *)qword_140C23228;
  if( *(__int64 **)qword_140C23228 != &PopIrpWorkerList )
    goto LABEL_7;
  p_ListEntry->Flink = (_LIST_ENTRY *)&PopIrpWorkerList;
  Irp->Tail.ListEntry.Blink = v5;
  v5->Flink = p_ListEntry;
  qword_140C23228 = (__int64)&Irp->Tail.ListEntry;
LABEL_4:
  LODWORD(v7) = 0;
  KeReleaseSemaphoreEx(&PopIrpWorkerSemaphore, 0i64, 1i64, v3, v7);
}

Referenced by:

PoHandleIrp