IoReuseIrp

VOID __stdcall IoReuseIrp(_IRP *Irp, INT64 Status){
  char v2; 
  int v3; 
  __int64 v5; 
  char v6; 
  __int16 v7; 
  __int64 v8; 
  char v9; 
  __int64 v10; 
  __int64 v11; 
  __int16 v12; 
  char v13; 
  UINT64 UserDataCount; 
  _GUID Guid; 
  GUID ActivityId; 
  PVOID retaddr; 
  v2 = 0;
  v3 = Status;
  Guid = 0i64;
  if( (MmVerifierData & 0x10) != 0 )
  {
    VfIoInitializeIrp(Irp, retaddr, 1u);
    IovpLogStackTrace(Irp);
  }
  v5 = *((char *)Irp + 66);
  v6 = *((_BYTE *)Irp + 71) & 0x6D;
  v7 = *((_WORD *)Irp + 1);
  v8 = *((_QWORD *)Irp + 25);
  v9 = *((_BYTE *)Irp + 71);
  if( v9 >= 0 && v8 && (*(_BYTE *)(v8 + 2) & 1) != 0 )
  {
    v10 = *((_QWORD *)Irp + 25);
    v2 = 1;
    v11 = v10;
    Guid = *(_GUID *)(v10 + 24);
  }
  else
  {
    v10 = *((_QWORD *)Irp + 25);
    v11 = v10;
    if( v9 < 0 )
    {
      *((_QWORD *)Irp + 25) = 0i64;
      *((_BYTE *)Irp + 71) = v9 & 0x7F;
      v11 = 0i64;
      goto LABEL_8;
    }
  }
  if( v10 )
  {
    if( *((char *)Irp + 71) >= 0 && (*(_BYTE *)(v10 + 2) & 0x20) != 0 )
      *(_QWORD *)(v10 + 40) = 0i64;
    *(_WORD *)(v10 + 2) = 0;
    v11 = *((_QWORD *)Irp + 25);
  }
LABEL_8:
  v12 = *((_WORD *)Irp + 2);
  memset((INT64)Irp, 0i64);
  *((_WORD *)Irp + 1) = v7;
  *(_WORD *)Irp = 6;
  *((_BYTE *)Irp + 67) = v5 + 1;
  *((_BYTE *)Irp + 66) = v5;
  v13 = *((_BYTE *)KeGetCurrentThread() + 586);
  *((_QWORD *)Irp + 5) = (char *)Irp + 32;
  *((_QWORD *)Irp + 4) = (char *)Irp + 32;
  *((_BYTE *)Irp + 70) = v13;
  *((_WORD *)Irp + 2) = v12;
  *((_BYTE *)Irp + 71) = v6;
  *((_DWORD *)Irp + 12) = v3;
  *((_QWORD *)Irp + 23) = (char *)Irp + 64 * v5 + 8 * v5 + 208;
  if( v11 )
  {
    *((_QWORD *)Irp + 25) = v11;
    if( v2 == 1 )
      IoSetActivityIdIrp(Irp, &Guid);
    if( (IopFunctionPointerMask & 4) != 0
      && (IopIrpExtensionStatus & 1) != 0
      && (!IopIrpHasExtensionType(Irp, 0i64)
       || IopIsActivityTracingEventEnabled((EVENT_DESCRIPTOR *)&IoTrace_KernelIo_ReuseIrp)) )
    {
      ActivityId = 0i64;
      EtwActivityIdControl(3u, &ActivityId);
      if( IopIsActivityTracingEventEnabled((EVENT_DESCRIPTOR *)&IoTrace_KernelIo_ReuseIrp) )
      {
        LODWORD(UserDataCount) = 0;
        EtwWriteEx(
          IoTraceHandle,
          (EVENT_DESCRIPTOR *)&IoTrace_KernelIo_ReuseIrp,
          0i64,
          0i64,
          (GUID *)(v11 + 24),
          &ActivityId,
          UserDataCount,
          0i64);
      }
      IoSetActivityIdIrp(Irp, &ActivityId);
    }
  }
}

Referenced by:

PopAllocateIrp
PopPrepareIoctl
SmKmFileInfoCleanup