VfIoAllocateIrp2

VOID __stdcall VfIoAllocateIrp2(IRP *Irp, PVOID *StackTrace){
  __int64 v4; 
  if( !VfIoDisabled )
  {
    LODWORD(v4) = VfPacketCreateAndLock((unsigned __int64)Irp);
    if( v4 )
    {
      _InterlockedIncrement((volatile signed __int32 *)(v4 + 20));
      ++*(_DWORD *)(v4 + 24);
      *(_DWORD *)(v4 + 56) |= 0x200000u;
      *((_DWORD *)Irp + 4) |= 0x40000000u;
      if( StackTrace )
      {
        *(_OWORD *)(v4 + 120) = *(_OWORD *)StackTrace;
        *(_OWORD *)(v4 + 136) = *((_OWORD *)StackTrace + 1);
        *(_OWORD *)(v4 + 152) = *((_OWORD *)StackTrace + 2);
        *(_OWORD *)(v4 + 168) = *((_OWORD *)StackTrace + 3);
      }
      else
      {
        *(_QWORD *)(v4 + 120) = 0i64;
      }
      VfIrpDatabaseEntryReleaseLock((_QWORD *)v4);
    }
  }
}

Referenced by:

IovAllocateIrp