PopStatsScenarioStateChange

CHAR __stdcall PopStatsScenarioStateChange(INT64 a1, CHAR a2){
  CHAR *StatsForScenarioType; 
  volatile signed __int32 *v4; 
  signed __int32 v5; 

  StatsForScenarioType = PopAvlFindOrMakeStatsForScenarioType(a1);
  v4 = (volatile signed __int32 *)StatsForScenarioType;
  if( StatsForScenarioType )
  {
    LODWORD(StatsForScenarioType) = PopGetStopWatchByRequestType((INT64)StatsForScenarioType, 3i64);
    if( StatsForScenarioType )
    {
      v5 = _InterlockedExchangeAdd(v4, 0);
      if( a2 )
      {
        if( !v5 )
        {
          _InterlockedIncrement(v4);
          LOBYTE(StatsForScenarioType) = PoStartStopWatch((INT64)StatsForScenarioType);
        }
      }
      else if( v5 == 1 )
      {
        _InterlockedDecrement(v4);
        LOBYTE(StatsForScenarioType) = PoPauseStopWatch((INT64)StatsForScenarioType);
      }
    }
  }
  return(char)StatsForScenarioType;
}

Referenced by:

PopPowerRequestNotifyMobileHotspotChanged
PopWnfAudioCallback