RtlStateDurationUpdate
INT64 __fastcall RtlStateDurationUpdate(UINT64 *a1, UINT8 a2, UINT64 a3){
unsigned __int64 v3;
unsigned int v4;
int v5;
UINT64 v6;
unsigned int v7;
int v8;
int v10;
UINT64 v11;
v3 = *a1;
v4 = a3;
v5 = a2;
v6 = HIDWORD(*a1);
v7 = 0;
v11 = *a1;
if( (unsigned int)HIDWORD(*a1) >> 31 != a2 )
{
if( (HIDWORD(*a1) & 0x80000000) != 0 )
{
v10 = -1;
v7 = v4 - v11;
if( v4 - (_DWORD)v11 != -1 && ~v7 >= (v6 & 0x7FFFFFFF) )
v10 = (v6 & 0x7FFFFFFF) + v7;
v8 = v6 ^ (v10 ^ v6) & 0x7FFFFFFF;
}
else
{
v8 = HIDWORD(*a1);
}
v3 = __PAIR64__(v8 & 0x7FFFFFFF | (unsigned int)(v5 << 31), v4);
}
*a1 = v3;
return v7;
}Referenced by:
PoEnergyContextUpdateComponentPower
PopEtEnergyContextSetState