PopFxUpdateAccountingActiveTime

VOID __stdcall PopFxUpdateAccountingActiveTime(INT64 a1, UINT64 a2, UINT64 a3){
  __int64 v3; 
  unsigned __int64 v4; 
  UINT64 v5; 
  __int64 *i; 

  v3 = 0i64;
  if( *(_BYTE *)(a1 + 8) )
  {
    v4 = *(_QWORD *)(a1 + 24);
    if( a2 > v4 )
    {
      v5 = a2 - v4;
      *(_QWORD *)(a1 + 128) += v5;
      if( v5 < a3 )
      {
        *(_QWORD *)(a1 + 136) += v5;
      }
      else
      {
        for( i = PopFxAccountingBucketLimits; v5 < *i || v5 >= PopFxAccountingBucketLimits[(unsigned int)(v3 + 1)]; ++i )
        {
          v3 = (unsigned int)(v3 + 1);
          if( (unsigned int)v3 >= 5 )
            return;
        }
        ++*(_QWORD *)(a1 + 8 * v3 + 144);
        *(_QWORD *)(a1 + 8 * v3 + 184) += v5;
      }
    }
  }
}

Referenced by:

PopFxIdleWorkerTail
PopFxPauseDeviceAccounting
PopFxStopDeviceAccounting
PopFxUpdateComponentAccountingEnhanced
PopFxUpdateDeviceAccountingEnhanced