KeSetUmsThreadKernelLock

NTSTATUS __stdcall KeSetUmsThreadKernelLock(INT64 a1, UINT64 *a2){
  signed __int64 v2; 
  NTSTATUS v4; 
  signed __int64 v5; 

  v4 = 0;
  _m_prefetchw((const void *)(a1 + 1272));
  v2 = *(_QWORD *)(a1 + 1272);
  while( (v2 & 3) != 3 )
  {
    v5 = v2;
    v2 = _InterlockedCompareExchange64((volatile signed __int64 *)(a1 + 1272), v2 + 1, v2);
    if( v2 == v5 )
      goto LABEL_6;
  }
  v4 = -1073741823;
LABEL_6:
  if( a2 )
    *a2 = v2 & 0xFFFFFFFFFFFFFFFCui64;
  return v4;
}

Referenced by:

PspInsertThread
PspRundownUmsThreadForApcDelivery
PspUmsInitThread
PspUmsUnInitThread