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