PpmIdleUpdateConcurrency

void __fastcall PpmIdleUpdateConcurrency(PKSPIN_LOCK SpinLock, KSPIN_LOCK a2, char a3, char a4){
  KSPIN_LOCK v8; 
  __int64 v9; 
  KSPIN_LOCK v10; 
  int v11; 
  __int16 v12; 
  _disable();
  KxAcquireSpinLock(SpinLock);
  v8 = SpinLock[2];
  v9 = *((unsigned int *)SpinLock + 3);
  if( a2 > v8 )
  {
    SpinLock[2] = a2;
    v10 = a2 - v8;
    if( a4 )
    {
      SpinLock[3] += v10;
      SpinLock[v9 + 4] += v10;
    }
  }
  v11 = v9 + 1;
  if( a3 )
    v11 = v9 - 1;
  *((_DWORD *)SpinLock + 3) = v11;
  KxReleaseSpinLock(SpinLock);
  if( (v12 & 0x200) != 0 )
    _enable();
}

Referenced by:

PpmIdleExecuteTransition
PpmIdleInstallConcurrency
PpmIdleRemoveConcurrency