PpmIdleUpdateSynchronizationState

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);
}

Referenced by:

PoInitiateProcessorWake