PopPowerAggregatorScreenOffExitStateHandler

NTSTATUS __stdcall PopPowerAggregatorScreenOffExitStateHandler(INT64 a1){
  int v1; 
  INT8 v3; 
  INT64 v5[2]; 
  __int128 v6; 

  v1 = *(_DWORD *)(a1 + 88);
  if( !v1 )
    goto LABEL_7;
  if( v1 == 1 )
  {
LABEL_10:
    *(_OWORD *)v5 = 0i64;
    LODWORD(v5[0]) = 3;
    v6 = 0i64;
    PopPowerAggregatorSetCurrentState(a1, (INT64)v5);
    return 0;
  }
  if( v1 > 1 )
  {
    if( v1 > 3 )
    {
      if( v1 != 4 )
        return 0;
LABEL_8:
      PopReleaseRwLock((_POP_RW_LOCK *)&PopIrpWorkerControlEvent + 187);
      PopPdcDisengagePhases();
      v3 = PopPdcAreAllPhasesDisengaged();
      PopAcquireRwLockExclusive((_POP_RW_LOCK *)&PopIrpWorkerControlEvent + 187);
      if( v3 )
      {
        *(_DWORD *)(a1 + 88) = 1;
        goto LABEL_10;
      }
      return 0;
    }
LABEL_7:
    PopReleaseRwLock((_POP_RW_LOCK *)&PopIrpWorkerControlEvent + 187);
    PdcPoPerfOverride();
    PopPdcDisengagePhases();
    PopAcquireRwLockExclusive((_POP_RW_LOCK *)&PopIrpWorkerControlEvent + 187);
    *(_DWORD *)(a1 + 88) = 4;
    goto LABEL_8;
  }
  return 0;
}

Referenced by:

No references.