IopfCallDriver

NTSTATUS __stdcall IopfCallDriver(_DEVICE_OBJECT *DeviceObject, _IRP *Irp){
  unsigned __int8 *v2; 
  __int64 v3; 
  if( (char)--*((_BYTE *)Irp + 67) <= 0 )
    KeBugCheckEx(0x35u, (ULONG_PTR)Irp, 0i64, 0i64, 0i64);
  v2 = (unsigned __int8 *)(*((_QWORD *)Irp + 23) - 72i64);
  *((_QWORD *)Irp + 23) = v2;
  v3 = *v2;
  *((_QWORD *)v2 + 5) = DeviceObject;
  if( (_BYTE)v3 == 22 && (unsigned __int8)(v2[1] - 2) <= 1u )
    return IopPoHandleIrp(Irp);
  else
    return(*(__int64(__fastcall **)(_DEVICE_OBJECT *))(*((_QWORD *)DeviceObject + 1) + 8 * v3 + 112))(DeviceObject);
}

Referenced by:

IofCallDriverSpecifyReturn
IopPerfCallDriver
IovCallDriver
IovpCallDriverNoIrpTracking
IovpCallDriverWithStackBuffer