IopInitializeReserveIrps
CHAR __fastcall IopInitializeReserveIrps(DEVICE_OBJECT *a1){
_DEVICE_OBJECT *v1;
_DEVICE_OBJECT *v2;
_DEVICE_OBJECT *v3;
int v4;
_IRP *IrpWithExtension;
CHAR result;
byte_140C45AA0 = 42;
IopReserveIrps = IopAllocateIrpWithExtension(a1, 42, 0, 0i64);
if( IopReserveIrps )
{
dword_140C459C8 = 0;
qword_140C459E0 = (__int64)&qword_140C459D8;
qword_140C459D8 = (__int64)&qword_140C459D8;
word_140C459D0 = 1;
byte_140C459D2 = 6;
dword_140C459D4 = 0;
qword_140C459E8 = IopAllocateIrpWithExtension(v1, 42, 0, 0i64);
if( qword_140C459E8 )
{
dword_140C459F0 = 0;
qword_140C45A08 = (__int64)&qword_140C45A00;
qword_140C45A00 = (__int64)&qword_140C45A00;
word_140C459F8 = 1;
byte_140C459FA = 6;
dword_140C459FC = 0;
qword_140C45A10 = IopAllocateIrpWithExtension(v2, 42, 0, 0i64);
if( qword_140C45A10 )
{
dword_140C45A18 = 0;
stru_140C45A20.Header.WaitListHead.Blink = &stru_140C45A20.Header.WaitListHead;
v4 = 0;
stru_140C45A20.Header.WaitListHead.Flink = &stru_140C45A20.Header.WaitListHead;
LOWORD(stru_140C45A20.Header.Lock) = 1;
stru_140C45A20.Header.Size = 6;
stru_140C45A20.Header.SignalState = 0;
qword_140C45A98 = 0i64;
while( 1 )
{
IrpWithExtension = IopAllocateIrpWithExtension(v3, 42, 0, 0i64);
v3 = (_DEVICE_OBJECT *)IrpWithExtension;
if( !IrpWithExtension )
break;
if( v4 )
{
if( v4 == 1 )
{
qword_140C45A68 = IrpWithExtension;
}
else
{
*(_QWORD *)IrpWithExtension = qword_140C45A98;
qword_140C45A98 = IrpWithExtension;
}
}
else
{
*(_QWORD *)Irp = IrpWithExtension;
}
if( (unsigned int)++v4 >= 8 )
{
dword_140C45A40 = 0;
qword_140C45A60 = (__int64)&qword_140C45A58;
result = 1;
qword_140C45A58 = (__int64)&qword_140C45A58;
stru_140C45A80.Header.WaitListHead.Blink = &stru_140C45A80.Header.WaitListHead;
stru_140C45A80.Header.WaitListHead.Flink = &stru_140C45A80.Header.WaitListHead;
dword_140C45A70 = 0;
qword_140C45A48 = 0i64;
qword_140C45A78 = 0i64;
word_140C45A50 = 1;
byte_140C45A52 = 6;
dword_140C45A54 = 0;
LOWORD(stru_140C45A80.Header.Lock) = 1;
stru_140C45A80.Header.Size = 6;
stru_140C45A80.Header.SignalState = 0;
return result;
}
}
}
}
}
return 0;
}Referenced by:
IoInitSystemPreDrivers