KeClearUmsThreadKernelLock

NTSTATUS __stdcall KeClearUmsThreadKernelLock(INT64 a1){
  signed __int64 v1; 
  NTSTATUS v3; 
  signed __int64 v4; 

  v3 = 0;
  _m_prefetchw((const void *)(a1 + 1272));
  v1 = *(_QWORD *)(a1 + 1272);
  while( (v1 & 3) != 0 )
  {
    v4 = v1;
    v1 = _InterlockedCompareExchange64((volatile signed __int64 *)(a1 + 1272), v1 - 1, v1);
    if( v1 == v4 )
      return v3;
  }
  return -1073741823;
}

Referenced by:

KiResumeUmsThread
PspGetSetContextInternal
PspRundownUmsThreadForApcDelivery