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.