PopEsWorker

VOID __stdcall PopEsWorker(PVOID Context){
  UINT8 v1; 
  signed __int32 v2; 
  signed __int32 v3; 
  unsigned int v4; 
  int v5; 
  int v6; 
  signed __int32 v7; 
  int v8; 
  int v9; 
  do
  {
    do
    {
      v1 = 0;
      _m_prefetchw(&PopEsWorkItemDue);
      v2 = PopEsWorkItemDue;
      do
      {
        v3 = v2;
        v2 = _InterlockedCompareExchange(&PopEsWorkItemDue, v2, v2);
      }
      while( v3 != v2 );
      _BitScanForward(&v4, v2);
      v5 = 1 << v4;
      v6 = v2 & ~(1 << v4);
      if( (v6 & 8) != 0 && ((v5 - 2) & 0xFFFFFFFD) == 0 )
      {
        v1 = 1;
        v6 &= ~8u;
      }
      v7 = v6 & 0xFFFFFFFB;
      if( v5 != 2 )
        v7 = v6;
    }
    while( v2 != _InterlockedCompareExchange(&PopEsWorkItemDue, v7, v2) );
    v8 = v5 - 1;
    if( v8 )
    {
      v9 = v8 - 1;
      if( v9 )
      {
        if( v9 != 2 )
          continue;
        PopAcquireRwLockExclusive(&PopEsLock);
      }
      else
      {
        PopAcquireRwLockExclusive(&PopEsLock);
        PopEsUpdateSetting();
      }
      PopEsUpdateState(v1);
      PopReleaseRwLock((UINT64)&PopEsLock);
    }
    else
    {
      PopEsPublishState();
      PopAcquireRwLockExclusive(&PopEsLock);
      PopEsStartTelemetry();
      PopReleaseRwLock((UINT64)&PopEsLock);
      ExSubscribeWnfStateChange(
        &PopEsWnfSubscriptionOverride,
        (INT64 *)&WNF_PO_ENERGY_SAVER_OVERRIDE,
        1i64,
        0i64,
        (INT64)PopEsWnfSubscriptionOverrideCallback,
        0i64);
    }
  }
  while( v7 );
}

Referenced by:

No references.