PopDiagTraceDirtyTransition
VOID __stdcall PopDiagTraceDirtyTransition(
_LOADER_PARAMETER_BLOCK *LoaderBlock,
_SYSTEM_POWER_STATE SleepInProgress,
UINT64 SystemSleepTransitionsToOn,
UINT8 ConnectedStandbyInProgress,
UINT8 CsEntryScenarioInstanceId,
INT64 PowerButtonTimestamp,
_POP_SLEEP_CHECKPOINT SleepCheckpoint){
_LOADER_PARAMETER_EXTENSION *Extension;
_DWORD *DumpHeader;
__int128 v12;
__int128 v13;
__int128 v14;
__int128 v15;
__int128 v16;
__int128 v17;
__int64 v18;
__int128 *v19;
char *v20;
__int64 v21;
char v22;
UINT8 v23;
char v24;
int v25;
int v26;
_SYSTEM_POWER_STATE v27;
int v28;
_BOOL4 v29;
_BOOL4 v30;
__int128 a5;
__int128 v32;
__int128 v33;
__int128 v34;
__int128 v35;
_EVENT_DATA_DESCRIPTOR UserData;
char v37;
_SYSTEM_POWER_STATE *v38;
__int64 v39;
INT64 *p_PowerButtonTimestamp;
__int64 v41;
int *v42;
__int64 v43;
char *v44;
__int64 v45;
_BOOL4 *v46;
__int64 v47;
int *v48;
__int64 v49;
UINT8 *v50;
__int64 v51;
int *v52;
__int64 v53;
char *v54;
__int64 v55;
UINT8 *p_CsEntryScenarioInstanceId;
__int64 v57;
_BOOL4 *v58;
__int64 v59;
__int128 SourceString[9];
__int64 v61;
int v62;
int v63;
char v64;
char v65;
char v66;
v63 = SystemSleepTransitionsToOn;
v28 = ExBootAppFailureStatus;
if( PopDiagHandleRegistered && EtwEventEnabled(PopDiagHandle, &POP_ETW_EVENT_DIRTY_TRANSITION) )
{
Extension = LoaderBlock->Extension;
v25 = 0;
v26 = 0;
v29 = ConnectedStandbyInProgress != 0;
v30 = v66 != 0;
v22 = v64;
v24 = v65;
v34 = 0i64;
v35 = 0i64;
if( !Extension
|| (DumpHeader = Extension->DumpHeader) == 0i64
|| (v25 = DumpHeader[14], v34 = *((_OWORD *)DumpHeader + 4), v35 = *((_OWORD *)DumpHeader + 5), !v25) )
{
v12 = *(_OWORD *)L"y\\Machine\\System\\CurrentControlSet\\Control\\CrashControl\\LastCrashdump";
a5 = 0i64;
v32 = 0i64;
v33 = 0i64;
SourceString[0] = *(_OWORD *)L"\\Registry\\Machine\\System\\CurrentControlSet\\Control\\CrashControl\\LastCrashdump";
v13 = *(_OWORD *)L"e\\System\\CurrentControlSet\\Control\\CrashControl\\LastCrashdump";
SourceString[1] = v12;
v14 = *(_OWORD *)L"\\CurrentControlSet\\Control\\CrashControl\\LastCrashdump";
SourceString[2] = v13;
v15 = *(_OWORD *)L"ControlSet\\Control\\CrashControl\\LastCrashdump";
SourceString[3] = v14;
v16 = *(_OWORD *)L"et\\Control\\CrashControl\\LastCrashdump";
SourceString[4] = v15;
v17 = *(_OWORD *)L"ol\\CrashControl\\LastCrashdump";
SourceString[5] = v16;
SourceString[6] = v17;
SourceString[7] = *(_OWORD *)L"Control\\LastCrashdump";
v18 = *(_QWORD *)L"hdump";
SourceString[8] = *(_OWORD *)L"LastCrashdump";
v61 = v18;
v62 = *(_DWORD *)L"p";
if( PopReadRegKeyValue((WCHAR *)SourceString, (WCHAR *)L"Info", 48i64, 0i64, &a5) >= 0 )
{
v25 = DWORD2(a5);
*(_QWORD *)&v34 = v32;
v26 = 1;
}
}
v27 = SleepInProgress;
*(_QWORD *)&UserData.Size = 4i64;
UserData.Ptr = (unsigned __int64)&v25;
v19 = &v34;
v20 = &v37;
v21 = 4i64;
do
{
*(_QWORD *)(v20 - 12) = v19;
v19 = (__int128 *)((char *)v19 + 8);
*(_QWORD *)(v20 - 4) = 8i64;
v20 += 16;
--v21;
}
while( v21 );
v38 = &v27;
v39 = 4i64;
p_PowerButtonTimestamp = &PowerButtonTimestamp;
v42 = &v28;
v44 = &v22;
v46 = &v29;
v48 = &v63;
v23 = CsEntryScenarioInstanceId;
v50 = &v23;
v52 = &v26;
v54 = &v24;
p_CsEntryScenarioInstanceId = &CsEntryScenarioInstanceId;
v58 = &v30;
v41 = 8i64;
v43 = 4i64;
v47 = 4i64;
v49 = 4i64;
v53 = 4i64;
v57 = 8i64;
v59 = 4i64;
v45 = 1i64;
v51 = 1i64;
v55 = 1i64;
EtwWriteEx(PopDiagHandle, &POP_ETW_EVENT_DIRTY_TRANSITION, 0i64, 0, 0, 0, 0x10u, &UserData);
}
}Referenced by:
PopCheckShutdownMarker