PpmIdleLockProcessor

NTSTATUS __stdcall PpmIdleLockProcessor(PPM_IDLE_SYNCHRONIZATION_STATE *IdleSynchronization){
  NTSTATUS v1; 
  unsigned int AsLong; 
  unsigned int v3; 

  v1 = -1073741782;
  _m_prefetchw(IdleSynchronization);
  AsLong = IdleSynchronization->AsLong;
  while( HIBYTE(AsLong) - 4 <= 1u )
  {
    v3 = AsLong;
    AsLong = _InterlockedCompareExchange(
               &IdleSynchronization->AsLong,
               ((AsLong & 0xFFFFFF | 0x5000000) ^ ((AsLong & 0xFFFFFF | 0x5000000) + 1)) & 0xFFFFFF ^ (AsLong & 0xFFFFFF | 0x5000000),
               AsLong);
    if( AsLong == v3 )
      return 0;
  }
  return v1;
}

Referenced by:

PpmTestAndLockProcessor