PopDiagTraceDirtyTransition

VOID __fastcall PopDiagTraceDirtyTransition(
        _LOADER_PARAMETER_BLOCK *LoaderBlock,
        _SYSTEM_POWER_STATE SleepInProgress,
        UINT64 SystemSleepTransitionsToOn,
        UINT8 ConnectedStandbyInProgress,
        UINT8 CsEntryScenarioInstanceId,
        INT64 PowerButtonTimestamp,
        UINT64 BootAppFailureStatus,
        _POP_SLEEP_CHECKPOINT SleepCheckpoint){
  __int64 v11; 
  __int64 v12; 
  __int128 v13; 
  __int128 v14; 
  __int128 v15; 
  __int128 v16; 
  __int128 v17; 
  __int128 v18; 
  __int64 v19; 
  __int128 *v20; 
  char *v21; 
  __int64 v22; 
  UINT64 UserDataCount; 
  char v24; 
  UINT8 v25; 
  char v26; 
  int v27; 
  int v28; 
  _SYSTEM_POWER_STATE v29; 
  int v30; 
  BOOL v31; 
  BOOL v32; 
  __int128 v33; 
  __int128 v34; 
  __int128 v35; 
  __int128 v36; 
  __int128 v37; 
  EVENT_DATA_DESCRIPTOR UserData; 
  char v39; 
  _SYSTEM_POWER_STATE *v40; 
  __int64 v41; 
  INT64 *p_PowerButtonTimestamp; 
  __int64 v43; 
  int *v44; 
  __int64 v45; 
  char *v46; 
  __int64 v47; 
  BOOL *v48; 
  __int64 v49; 
  int *v50; 
  __int64 v51; 
  UINT8 *v52; 
  __int64 v53; 
  int *v54; 
  __int64 v55; 
  char *v56; 
  __int64 v57; 
  UINT8 *p_CsEntryScenarioInstanceId; 
  __int64 v59; 
  BOOL *v60; 
  __int64 v61; 
  __int128 SourceString[9]; 
  __int64 v63; 
  int v64; 
  int v65; 
  char v66; 
  char v67; 
  v65 = SystemSleepTransitionsToOn;
  v30 = ExBootAppFailureStatus;
  if( PopDiagHandleRegistered
    && EtwEventEnabled(
         PopDiagHandle,
         (EVENT_DESCRIPTOR *)&POP_ETW_EVENT_DIRTY_TRANSITION,
         (EVENT_DESCRIPTOR *)SystemSleepTransitionsToOn) )
  {
    v11 = *((_QWORD *)LoaderBlock + 30);
    v27 = 0;
    v28 = 0;
    v31 = ConnectedStandbyInProgress != 0;
    v32 = v67 != 0;
    v24 = SleepCheckpoint;
    v26 = v66;
    v36 = 0i64;
    v37 = 0i64;
    if( !v11
      || (v12 = *(_QWORD *)(v11 + 280)) == 0
      || (v27 = *(_DWORD *)(v12 + 56), v36 = *(_OWORD *)(v12 + 64), v37 = *(_OWORD *)(v12 + 80), !v27) )
    {
      v13 = *(_OWORD *)L"y\\Machine\\System\\CurrentControlSet\\Control\\CrashControl\\LastCrashdump";
      v33 = 0i64;
      v34 = 0i64;
      v35 = 0i64;
      SourceString[0] = *(_OWORD *)L"\\Registry\\Machine\\System\\CurrentControlSet\\Control\\CrashControl\\LastCrashdump";
      v14 = *(_OWORD *)L"e\\System\\CurrentControlSet\\Control\\CrashControl\\LastCrashdump";
      SourceString[1] = v13;
      v15 = *(_OWORD *)L"\\CurrentControlSet\\Control\\CrashControl\\LastCrashdump";
      SourceString[2] = v14;
      v16 = *(_OWORD *)L"ControlSet\\Control\\CrashControl\\LastCrashdump";
      SourceString[3] = v15;
      v17 = *(_OWORD *)L"et\\Control\\CrashControl\\LastCrashdump";
      SourceString[4] = v16;
      v18 = *(_OWORD *)L"ol\\CrashControl\\LastCrashdump";
      SourceString[5] = v17;
      SourceString[6] = v18;
      SourceString[7] = *(_OWORD *)L"Control\\LastCrashdump";
      v19 = *(_QWORD *)L"hdump";
      SourceString[8] = *(_OWORD *)L"LastCrashdump";
      v63 = v19;
      v64 = *(_DWORD *)L"p";
      if( (int)PopReadRegKeyValue((WCHAR *)SourceString, (WCHAR *)L"Info", 0x30ui64, 0i64, &v33) >= 0 )
      {
        v27 = DWORD2(v33);
        *(_QWORD *)&v36 = v34;
        v28 = 1;
      }
    }
    v29 = SleepInProgress;
    *(_QWORD *)&UserData.Size = 4i64;
    UserData.Ptr = (unsigned __int64)&v27;
    v20 = &v36;
    v21 = &v39;
    v22 = 4i64;
    do
    {
      *(_QWORD *)(v21 - 12) = v20;
      v20 = (__int128 *)((char *)v20 + 8);
      *(_QWORD *)(v21 - 4) = 8i64;
      v21 += 16;
      --v22;
    }
    while( v22 );
    v40 = &v29;
    v41 = 4i64;
    p_PowerButtonTimestamp = &PowerButtonTimestamp;
    v44 = &v30;
    v46 = &v24;
    v48 = &v31;
    v50 = &v65;
    v25 = CsEntryScenarioInstanceId;
    v52 = &v25;
    v54 = &v28;
    v56 = &v26;
    p_CsEntryScenarioInstanceId = &CsEntryScenarioInstanceId;
    v60 = &v32;
    LODWORD(UserDataCount) = 16;
    v43 = 8i64;
    v45 = 4i64;
    v49 = 4i64;
    v51 = 4i64;
    v55 = 4i64;
    v59 = 8i64;
    v61 = 4i64;
    v47 = 1i64;
    v53 = 1i64;
    v57 = 1i64;
    EtwWriteEx(
      PopDiagHandle,
      (EVENT_DESCRIPTOR *)&POP_ETW_EVENT_DIRTY_TRANSITION,
      0i64,
      0i64,
      0i64,
      0i64,
      UserDataCount,
      &UserData);
  }
}

Referenced by:

PopCheckShutdownMarker