EtwpTraceOpticalIo

VOID __stdcall EtwpTraceOpticalIo(UINT64 Key, UINT64 DiskNumber, IRP *Irp, LARGE_INTEGER ResponseTime){
  char *v5; 
  int v7; 
  char v8; 
  __int64 v9; 
  int v10; 
  UINT16 v11; 
  int *v12; 
  CDB *ScsiPassThroughCdb; 
  UCHAR OperationCode; 
  unsigned __int64 v15; 
  __int16 v16; 
  int v17; 
  __int64 v18; 
  int v19; 
  int v20; 
  UINT16 v21; 
  int v22; 
  __int64 v23; 
  __int64 v24; 
  int v25; 
  int v26; 
  __int64 v27; 
  __int64 v28; 
  int v29; 
  int v30; 
  __int64 *v31; 
  UINT64 Flag; 
  int v33; 
  int v34; 
  int v35; 
  int v36; 
  unsigned __int64 v37; 
  __int64 v38; 
  IRP *v39; 
  LARGE_INTEGER v40; 
  int v41; 
  int v42; 
  int v43[2]; 
  LARGE_INTEGER v44; 
  IRP *v45; 
  int v46; 
  int v47; 
  EVENT_DATA_DESCRIPTOR EventData; 
  v47 = 0;
  v42 = 0;
  v5 = (char *)*((_QWORD *)Irp + 23);
  v7 = DiskNumber;
  v8 = *v5;
  if( (unsigned __int8)(*v5 - 3) <= 1u )
  {
    v35 = *((_DWORD *)Irp + 14);
    v33 = DiskNumber;
    v39 = Irp;
    v21 = (v8 != 3) + 311;
    v22 = *((_DWORD *)Irp + 4);
    v34 = v22;
    v23 = *((_QWORD *)v5 + 3);
    v36 = 0;
    v37 = v23;
    v24 = *((_QWORD *)Irp + 19);
    v40 = ResponseTime;
    if( v24 )
      v25 = *(_DWORD *)(v24 + 1152);
    else
      v25 = -1;
    v41 = v25;
    if( (Key & 0xFFFF0000) == 1448280064 )
    {
      v36 = 1;
    }
    else
    {
      v26 = Key & 0xFFFFFF;
      if( v26 == 5467492 || v26 == 5460546 )
        v36 = 2;
    }
    if( (v22 & 8) != 0 )
    {
      v27 = *((_QWORD *)Irp + 3);
      if( v27 )
      {
        v28 = *(_QWORD *)(v27 + 192);
        if( v28 )
          goto LABEL_37;
        v28 = *(_QWORD *)(*(_QWORD *)(v27 + 184) + 48i64);
LABEL_36:
        if( v28 )
          goto LABEL_37;
      }
    }
    else
    {
      v28 = *((_QWORD *)Irp + 24);
      if( v28 )
      {
LABEL_37:
        v38 = *(_QWORD *)(v28 + 24);
LABEL_39:
        EventData.Size = 52;
        v11 = v21;
        goto LABEL_40;
      }
      v29 = *((unsigned __int8 *)Irp + 67);
      v30 = *((char *)Irp + 66);
      if( v29 <= v30 )
      {
        v31 = (__int64 *)(v5 + 48);
        while( 1 )
        {
          v28 = *v31;
          if( *v31 )
            goto LABEL_37;
          LOBYTE(v29) = v29 + 1;
          v31 += 9;
          if( (unsigned __int8)v29 > v30 )
            goto LABEL_36;
        }
      }
    }
    v38 = 0i64;
    goto LABEL_39;
  }
  if( v8 == 9 )
  {
LABEL_3:
    v43[1] = *((_DWORD *)Irp + 4);
    v9 = *((_QWORD *)Irp + 19);
    v43[0] = v7;
    v44 = ResponseTime;
    v45 = Irp;
    if( v9 )
      v10 = *(_DWORD *)(v9 + 1152);
    else
      v10 = -1;
    v46 = v10;
    v11 = 313;
    v12 = v43;
    EventData.Size = 28;
    goto LABEL_41;
  }
  if( v8 == 14 )
  {
    ScsiPassThroughCdb = EtwpGetScsiPassThroughCdb(Irp);
    if( ScsiPassThroughCdb )
    {
      OperationCode = ScsiPassThroughCdb->CDB6GENERIC.OperationCode;
      v15 = (ScsiPassThroughCdb->CDB6READWRITE.Control | (unsigned __int64)((ScsiPassThroughCdb->CDB6GENERIC.CommandUniqueBytes[2] | ((ScsiPassThroughCdb->CDB6GENERIC.CommandUniqueBytes[1] | (ScsiPassThroughCdb->CDB6GENERIC.CommandUniqueBytes[0] << 8)) << 8)) << 8)) << 11;
      if( ((OperationCode - 40) & 0x7F) != 0 )
      {
        if( ((OperationCode - 42) & 0x7F) != 0 )
        {
          if( OperationCode != 53 )
            return;
          goto LABEL_3;
        }
        v16 = 312;
      }
      else
      {
        v16 = 311;
      }
      v17 = *((_DWORD *)Irp + 4);
      v36 = 0;
      v38 = 0i64;
      v37 = v15;
      v18 = *((_QWORD *)Irp + 19);
      v34 = v17;
      v19 = *((_DWORD *)Irp + 14);
      v33 = v7;
      v39 = Irp;
      v35 = v19;
      v40 = ResponseTime;
      if( v18 )
        v20 = *(_DWORD *)(v18 + 1152);
      else
        v20 = -1;
      v41 = v20;
      v11 = v16;
      EventData.Size = 28;
LABEL_40:
      v12 = &v33;
LABEL_41:
      EventData.Reserved = 0;
      LODWORD(Flag) = 4200451;
      EventData.Ptr = (unsigned __int64)v12;
      EtwTraceKernelEvent(&EventData, 1ui64, 0x80000001ui64, v11, Flag);
    }
  }
}

Referenced by:

No references.