PopPowerAggregatorScreenOffExitStateHandler
INT64 __fastcall PopPowerAggregatorScreenOffExitStateHandler(INT64 a1){
int v1;
char v3;
char v4;
INT64 v6[2];
__int128 v7;
v1 = *(_DWORD *)(a1 + 88);
if( !v1 )
goto LABEL_7;
if( v1 == 1 )
{
LABEL_10:
*(_OWORD *)v6 = 0i64;
LODWORD(v6[0]) = 3;
v7 = 0i64;
PopPowerAggregatorSetCurrentState(a1, (INT64)v6);
return 0i64;
}
if( v1 > 1 )
{
if( v1 > 3 )
{
if( v1 != 4 )
return 0i64;
LABEL_8:
PopReleaseRwLock((UINT64)&PopPowerAggregatorLock);
PopPdcDisengagePhases();
PopPdcAreAllPhasesDisengaged();
v4 = v3;
PopAcquireRwLockExclusive((_POP_RW_LOCK *)&PopPowerAggregatorLock);
if( v4 )
{
*(_DWORD *)(a1 + 88) = 1;
goto LABEL_10;
}
return 0i64;
}
LABEL_7:
PopReleaseRwLock((UINT64)&PopPowerAggregatorLock);
PdcPoPerfOverride();
PopPdcDisengagePhases();
PopAcquireRwLockExclusive((_POP_RW_LOCK *)&PopPowerAggregatorLock);
*(_DWORD *)(a1 + 88) = 4;
goto LABEL_8;
}
return 0i64;
}Referenced by:
No references.