INT64 __fastcall PpmIdleUpdateSynchronizationState(UINT32 *a1, UINT8 a2, UINT8 a3){
unsigned __int32 v3;
int v4;
int v5;
unsigned __int32 v6;
_m_prefetchw(a1);
v3 = *a1;
v4 = a3;
if( HIBYTE(*a1) == a3 )
{
v5 = a2 << 24;
do
{
v6 = v3;
v3 = _InterlockedCompareExchange((volatile signed __int32 *)a1, v5 | v3 & 0xFFFFFF, v3);
}
while( v3 != v6 && HIBYTE(v3) == v4 );
}
return HIBYTE(v3);
}