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