PopUpdatePowerRequestProcessWakeCounter

VOID __fastcall PopUpdatePowerRequestProcessWakeCounter(UINT64 Tag, CHAR a2){
  char v2; 
  __int64 v4; 
  VOID *v5; 

  v2 = *(_BYTE *)(Tag + 112);
  if( a2 )
  {
    if( !v2 )
    {
      if( qword_140C54190 )
      {
        PopStatsMarkPowerRequestActive(Tag);
        LOBYTE(v4) = 1;
        ((void(__fastcall *)(__int64))qword_140C54190)(v4);
        *(_BYTE *)(Tag + 112) = 1;
      }
    }
  }
  else
  {
    if( v2 )
    {
      ((void(__fastcall *)(_QWORD))qword_140C54190)(0i64);
      *(_BYTE *)(Tag + 112) = 0;
      PopStatsMarkPowerRequestInactive(Tag);
    }
    v5 = *(VOID **)(Tag + 128);
    if( v5 )
    {
      PsReleaseProcessWakeCounter(v5, Tag);
      *(_QWORD *)(Tag + 128) = 0i64;
    }
  }
}

Referenced by:

PopEnableExecutionRequiredPowerRequests
PopHandleConvergedPowerRequestUpdate
PopPowerRequestCleanUp