PopEsUpdateState
VOID __stdcall PopEsUpdateState(UINT8 ForceTrace){
int v2;
int v3;
int v4;
int v5;
UINT64 v6;
unsigned __int8 v7;
unsigned __int64 v8;
__int64 v9;
__int64 v10;
EVENT_DESCRIPTOR *v11;
SYSTEM_BATTERY_STATE BatteryState;
memset(&BatteryState, 0, sizeof(BatteryState));
PopCurrentPowerState(&BatteryState);
v2 = 0;
v3 = PopEsState;
v4 = 0;
v5 = PopEsReason;
if( PopEsMode == 1 )
{
v4 = 1;
LABEL_19:
v2 = 1;
goto LABEL_6;
}
if( PopEsMode == 2
&& *(_DWORD *)&EsUserAwaySetting
&& BatteryState.BatteryPresent
&& BatteryState.MaxCapacity
&& (BatteryState.MaxCapacity + 100 * BatteryState.RemainingCapacity - 1) / BatteryState.MaxCapacity <= *(_DWORD *)&EsUserAwaySetting )
{
v4 = 2;
goto LABEL_19;
}
if( byte_140C23D54 && *(_DWORD *)&EsUserAwaySetting && (_DWORD)PopEsBgActivityPolicy == 1 )
{
v4 = 8;
goto LABEL_19;
}
if( PopEsEnabledOnHost )
{
v4 = 16;
goto LABEL_19;
}
LABEL_6:
if( ForceTrace || v2 != PopEsState || v4 != PopEsReason )
{
PopEsSnapTelemetry(&BatteryState);
KeAcquireSpinLockRaiseToDpc(&PopCsResiliencyStatsLock, v6);
v8 = v7;
PopEsState = v2;
PopEsReason = v4;
if( (_BYTE)PopCsResiliencyStats && (v2 != v3 || v4 != v5) )
++dword_140C22F68;
KxReleaseSpinLock(&PopCsResiliencyStatsLock);
__writecr8(v8);
if( v2 != v3 )
PopEsPublishState();
PopDiagTraceEsState(v10, v9, v11);
}
}Referenced by:
PopEsWorker