PnpWatchdogEtwWrite

INT64 __fastcall PnpWatchdogEtwWrite(INT64 a1, CHAR dl0){
  __int64 ElapsedTime; 
  __int64 v5; 
  __int64 v6; 
  INT64 v7; 
  INT64 v8; 
  INT64 v9; 
  INT64 result; 
  INT64 v11; 
  int v12; 
  int v13; 
  int v14; 
  int v15; 
  int v16; 
  __int64 *v17; 
  int v18; 
  int v19; 
  int v20; 
  int v21; 
  __int64 *v22; 
  __int64 v23[7]; 
  __int64 a2; 
  INT64 a5; 
  a2 = 0i64;
  a5 = 0i64;
  v23[0] = 0i64;
  ElapsedTime = (unsigned int)PnpWatchdogGetElapsedTime((_QWORD *)a1);
  v5 = 0i64;
  v6 = 0i64;
  PnpWatchdogExtractTriageInformation(v7, &a2, v23, 0i64, &a5);
  if( a2 )
    v5 = *(_QWORD *)(a2 + 48);
  result = a5;
  if( a5 && (v8 = *(_QWORD *)(a5 + 48), *(_WORD *)(v8 + 24)) )
  {
    v6 = *(_QWORD *)(v8 + 32);
  }
  else if( a2 && *(_WORD *)(a2 + 56) )
  {
    v6 = *(_QWORD *)(a2 + 64);
  }
  if( v23[0] )
  {
    v11 = *(_QWORD *)(v23[0] + 1152);
  }
  else
  {
    result = (INT64)PsGetCurrentThreadId();
    v11 = result;
  }
  v12 = *(_DWORD *)(a1 + 16);
  if( dl0 )
  {
    v13 = v12 - 1;
    if( !v13 )
    {
      if( (byte_140C130BB & 0x20) != 0 )
      {
        v17 = (__int64 *)&KMPnPEvt_Watchdog_EventWorker_Start;
        goto LABEL_28;
      }
      goto LABEL_29;
    }
    v14 = v13 - 1;
    if( !v14 )
    {
      if( (byte_140C130BB & 0x20) != 0 )
      {
        v17 = KMPnPEvt_Watchdog_CompletionQueue_Start;
        goto LABEL_28;
      }
      goto LABEL_29;
    }
    v15 = v14 - 1;
    if( !v15 )
    {
      if( (byte_140C130BB & 0x20) != 0 )
      {
        v17 = KMPnPEvt_Watchdog_DelayedRemoveWorker_Start;
        goto LABEL_28;
      }
      goto LABEL_29;
    }
    v16 = v15 - 1;
    if( !v16 )
    {
      if( (byte_140C130BB & 0x20) != 0 )
      {
        v17 = KMPnPEvt_Watchdog_AddDevice_Start;
        goto LABEL_28;
      }
LABEL_29:
      *(_BYTE *)(a1 + 32) = 1;
      return result;
    }
    if( v16 == 1 )
    {
      if( (byte_140C130BB & 0x20) != 0 )
      {
        v17 = KMPnPEvt_Watchdog_DriverEntry_Start;
LABEL_28:
        LODWORD(result) = McTemplateK0izzx_EtwWriteTransfer(v8, (EVENT_DESCRIPTOR *)v17, v9, v11, v5, v6, ElapsedTime);
        goto LABEL_29;
      }
      goto LABEL_29;
    }
LABEL_35:
    __fastfail(5u);
  }
  v18 = v12 - 1;
  if( !v18 )
  {
    if( (byte_140C130BB & 0x40) == 0 )
      return result;
    v22 = (__int64 *)&KMPnPEvt_Watchdog_EventWorker_Stop;
    goto LABEL_46;
  }
  v19 = v18 - 1;
  if( !v19 )
  {
    if( (byte_140C130BB & 0x40) == 0 )
      return result;
    v22 = KMPnPEvt_Watchdog_CompletionQueue_Stop;
    goto LABEL_46;
  }
  v20 = v19 - 1;
  if( !v20 )
  {
    if( (byte_140C130BB & 0x40) == 0 )
      return result;
    v22 = KMPnPEvt_Watchdog_DelayedRemoveWorker_Stop;
    goto LABEL_46;
  }
  v21 = v20 - 1;
  if( !v21 )
  {
    if( (byte_140C130BB & 0x40) == 0 )
      return result;
    v22 = KMPnPEvt_Watchdog_AddDevice_Stop;
    goto LABEL_46;
  }
  if( v21 != 1 )
    goto LABEL_35;
  if( (byte_140C130BB & 0x40) != 0 )
  {
    v22 = KMPnPEvt_Watchdog_DriverEntry_Stop;
LABEL_46:
    LODWORD(result) = McTemplateK0izzx_EtwWriteTransfer(v8, (EVENT_DESCRIPTOR *)v22, v9, v11, v5, v6, ElapsedTime);
  }
  return result;
}

Referenced by:

PnpCallDriverEntry
PnpDisableWatchdog
PnpWatchdogWorkItem