PopDispatchQuerySetIrp
VOID __stdcall PopDispatchQuerySetIrp(IRP *Irp){
__int64 v2;
UINT64 v3;
_QWORD *v4;
_QWORD *v5;
__int64 v6;
v2 = *((_QWORD *)Irp + 23);
*(_BYTE *)(v2 + 3) |= 1u;
ObfReferenceObjectWithTag(*(PVOID *)(v2 + 40), 0x72496F50u);
v4 = (_QWORD *)((char *)Irp + 168);
if( Irp == (IRP *)PopInrushIrp )
{
v6 = PopIrpWorkerList;
if( *(__int64 **)(PopIrpWorkerList + 8) == &PopIrpWorkerList )
{
*v4 = PopIrpWorkerList;
*((_QWORD *)Irp + 22) = &PopIrpWorkerList;
*(_QWORD *)(v6 + 8) = v4;
PopIrpWorkerList = (__int64)Irp + 168;
goto LABEL_4;
}
LABEL_7:
__fastfail(3u);
}
v5 = (_QWORD *)qword_140C23228;
if( *(__int64 **)qword_140C23228 != &PopIrpWorkerList )
goto LABEL_7;
*v4 = &PopIrpWorkerList;
*((_QWORD *)Irp + 22) = v5;
*v5 = v4;
qword_140C23228 = (__int64)Irp + 168;
LABEL_4:
KeReleaseSemaphoreEx(&PopIrpWorkerSemaphore, 0i64, 1i64, v3);
}Referenced by:
PoHandleIrp