PopPowerAggregatorNotifySuspendResume

VOID __fastcall PopPowerAggregatorNotifySuspendResume(_WORD *a1){
  int v1; 
  __int64 v2; 
  int v3; 
  int v4; 
  struct _EVENT_DATA_DESCRIPTOR UserData; 
  int *v6; 
  int v7; 
  int v8; 
  v1 = (unsigned __int8)a1;
  PopAcquireRwLockExclusive((_POP_RW_LOCK *)&PopPowerAggregatorLock);
  UserData.Reserved = 0;
  v8 = 0;
  v4 = dword_140C216D0;
  UserData.Ptr = (unsigned __int64)&v3;
  UserData.Size = 4;
  v7 = 4;
  v6 = &v4;
  v3 = v1;
  PopPowerAggregatorDiagTraceEvent(&POP_ETW_EVENT_POWER_AGGREGATOR_SUSPEND_RESUME, 2u, &UserData);
  if( (_BYTE)v1 )
  {
    if( ++dword_140C216D0 != 1 )
      goto LABEL_5;
    v2 = 7i64;
    goto LABEL_4;
  }
  if( !--dword_140C216D0 )
  {
    v2 = 8i64;
LABEL_4:
    PopPowerAggregatorHandleIntentUnsafe((_QWORD *)v2, 0i64, 0x14ui64);
  }
LABEL_5:
  PopReleaseRwLock((UINT64)&PopPowerAggregatorLock);
  if( (_BYTE)v1 )
    KeWaitForSingleObject(&word_140C216B8, Executive, 0, 0, 0i64);
}

Referenced by:

PopIssueActionRequest