PiDaDispatch
NTSTATUS __stdcall PiDaDispatch(DEVICE_OBJECT *DeviceObject, IRP *Irp){
__int64 v2;
IRP *v3;
DEVICE_OBJECT *v4;
__int64 v5;
unsigned __int64 v6;
NTSTATUS v7;
__int64 v9;
unsigned __int64 v10;
wchar_t *v11;
__int64 v12;
int v13;
int v14;
v2 = *((_QWORD *)Irp + 23);
v3 = Irp;
v4 = DeviceObject;
v5 = *(_QWORD *)(v2 + 48);
if( !*(_BYTE *)v2 )
{
v9 = *(_QWORD *)(v5 + 96);
if( v9 )
{
v6 = 0i64;
v10 = 0i64;
while( 1 )
{
v11 = (&IrpHandlingTable)[v10];
v12 = v9 - (_QWORD)v11;
do
{
v13 = *(wchar_t *)((char *)v11 + v12);
v14 = *v11 - v13;
if( v14 )
break;
++v11;
}
while( v13 );
if( !v14 )
break;
++v6;
v10 += 3i64;
if( v10 >= 15 )
goto LABEL_12;
}
if( v6 != -1i64 )
{
*(_QWORD *)(v5 + 24) = v6;
Irp = v3;
DeviceObject = v4;
return((__int64(__fastcall *)(DEVICE_OBJECT *, IRP *, IRP *))*(&funcs_140630288 + 3 * v6))(
DeviceObject,
Irp,
v3);
}
}
LABEL_12:
v7 = -1073741811;
*((_DWORD *)v3 + 12) = -1073741811;
LABEL_16:
IofCompleteRequest(v3, 0);
return v7;
}
v6 = *(_QWORD *)(v5 + 24);
if( v6 >= 5 )
{
v7 = -1073741808;
*((_DWORD *)Irp + 12) = -1073741808;
goto LABEL_16;
}
return((__int64(__fastcall *)(DEVICE_OBJECT *, IRP *, IRP *))*(&funcs_140630288 + 3 * v6))(DeviceObject, Irp, v3);
}Referenced by:
No references.