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.