PopDiagTraceIrpStart

VOID __stdcall PopDiagTraceIrpStart(IRP *Irp, IRP *a2){
  EVENT_DESCRIPTOR *v2; 
  __int64 v3; 
  __int64 v4; 
  char v5; 
  int v6; 
  __int64 v7; 
  INT64 v8; 
  __int16 v9; 
  UINT64 v10; 
  unsigned int v11; 
  __int64 v12; 
  __int64 v13; 
  UINT64 UserDataCount; 
  char v15; 
  char v16; 
  __int16 v17; 
  int v18; 
  IRP *v19; 
  INT64 v20; 
  struct _UNICODE_STRING DestinationString; 
  EVENT_DATA_DESCRIPTOR UserData; 
  int *v23; 
  __int64 v24; 
  char *v25; 
  __int64 v26; 
  __int64 *v27; 
  __int64 v28; 
  __int16 *v29; 
  __int64 v30; 
  __int64 v31; 
  int v32; 
  int v33; 
  v19 = a2;
  v3 = *((char *)a2 + 66);
  DestinationString = 0i64;
  v4 = *((_QWORD *)a2 + 9 * v3 + 25);
  v5 = *(_BYTE *)(v4 + 184);
  v15 = v5;
  v6 = *(_DWORD *)(v4 + 188);
  v18 = v6;
  v16 = *(_BYTE *)(v4 + 192) - 1;
  v7 = *(_QWORD *)(v4 + 24);
  if( v7 )
    v8 = *(_QWORD *)(*(_QWORD *)(v7 + 312) + 40i64);
  else
    v8 = 0i64;
  v20 = v8;
  v9 = *(_WORD *)(v8 + 40) >> 1;
  v17 = v9;
  if( !*(_QWORD *)(v8 + 16) )
    RtlInitUnicodeString(&DestinationString, &ppszDestEnd, (WCHAR)v2);
  if( v6 == 1 && v5 == 2 )
  {
    PopFxAddLogEntry(v8, 0, 22, *(int *)(v4 + 192));
    v9 = v17;
  }
  if( PopDiagHandleRegistered )
  {
    v10 = PopDiagHandle;
    if( EtwEventEnabled(PopDiagHandle, (EVENT_DESCRIPTOR *)&POP_ETW_EVENT_IRPSTART, v2) )
    {
      *(_QWORD *)&UserData.Size = 8i64;
      UserData.Ptr = (unsigned __int64)&v19;
      v23 = &v18;
      v25 = &v15;
      v27 = &v20;
      v29 = &v17;
      v11 = 5;
      v24 = 4i64;
      v26 = 1i64;
      v28 = 8i64;
      v30 = 2i64;
      if( v9 )
      {
        v12 = *(_QWORD *)(v8 + 48);
        v32 = *(unsigned __int16 *)(v8 + 40);
        v11 = 6;
        v31 = v12;
        v33 = 0;
      }
      v13 = 2i64 * v11;
      *(&UserData.Ptr + v13) = (unsigned __int64)&v16;
      *((_QWORD *)&UserData.Size + v13) = 1i64;
      LODWORD(UserDataCount) = v11 + 1;
      EtwWriteEx(v10, (EVENT_DESCRIPTOR *)&POP_ETW_EVENT_IRPSTART, 0i64, 0i64, 0i64, 0i64, UserDataCount, &UserData);
    }
  }
}

Referenced by:

PopDequeueQuerySetIrp
PopQueueQuerySetIrp
PopRequestPowerIrp