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