PopInternalUpdateActiveStopWatchesCollectionState

CHAR __stdcall PopInternalUpdateActiveStopWatchesCollectionState(INT64 a1){
  bool v2; 
  __int64 v3; 
  CHAR result; 
  unsigned __int64 v5; 

  v2 = _InterlockedExchangeAdd((volatile signed __int32 *)(a1 + 48), 0) > 0 && *(_QWORD *)(a1 + 16);
  v3 = *(_QWORD *)(a1 + 32);
  result = v3 != 0;
  if( v2 != (v3 != 0) )
  {
    result = KUSER_SHARED_DATA.InterruptTime.LowPart;
    if( v2 )
    {
      *(_QWORD *)(a1 + 32) = *(_QWORD *)&KUSER_SHARED_DATA.InterruptTime.LowPart;
    }
    else
    {
      v5 = *(_QWORD *)(a1 + 40) - v3 + *(_QWORD *)&KUSER_SHARED_DATA.InterruptTime.LowPart;
      result = -1;
      if( v5 < *(_QWORD *)(a1 + 40) )
        v5 = -1i64;
      *(_QWORD *)(a1 + 32) = 0i64;
      *(_QWORD *)(a1 + 40) = v5;
    }
  }
  return result;
}

Referenced by:

PoArmStopWatchCollection
PoPauseStopWatch
PoStartStopWatch
PoUnarmStopWatchCollection