PopPowerAggregatorNotifyPdcSleepTransition

__int64 __fastcall PopPowerAggregatorNotifyPdcSleepTransition(UINT8 a1, unsigned int a2){
  unsigned int v4; 

  PopAcquireRwLockExclusive((_POP_RW_LOCK *)&PopIrpWorkerControlEvent + 187);
  if( *(&PopIrpWorkerControlEvent + 770) == 1 )
  {
    v4 = 0;
    if( a1 )
    {
      *(&PopIrpWorkerControlEvent + 3104) = 0;
      *(&PopIrpWorkerControlEvent + 777) = 0;
      goto LABEL_13;
    }
    *(&PopIrpWorkerControlEvent + 3104) = 1;
    v4 = 259;
    *(&PopIrpWorkerControlEvent + 777) = a2;
  }
  else
  {
    if( *(&PopIrpWorkerControlEvent + 770) != 4 )
    {
      v4 = -1073741811;
      goto LABEL_13;
    }
    if( a1 )
    {
      *(&PopIrpWorkerControlEvent + 3104) = 1;
      *(&PopIrpWorkerControlEvent + 777) = a2;
    }
    else
    {
      *(&PopIrpWorkerControlEvent + 3104) = 0;
      *(&PopIrpWorkerControlEvent + 777) = 0;
    }
    v4 = a1 != 0 ? 0x103 : 0;
  }
  if( v4 == 259 )
    PopPowerAggregatorScheduleWorker((INT64)&PopIrpWorkerControlEvent + 3008);
LABEL_13:
  PopPowerAggregatorDiagTracePdcSleepTransition(
    a1,
    a2,
    (INT64)&PopIrpWorkerControlEvent + 3032,
    (INT64)&PopIrpWorkerControlEvent + 3080,
    v4);
  PopReleaseRwLock((_POP_RW_LOCK *)&PopIrpWorkerControlEvent + 187);
  return v4;
}

Referenced by:

PdcPoCurrentPdcPhase