CmpLockKcbStackTopExclusiveRestShared

_ETHREAD *__fastcall CmpLockKcbStackTopExclusiveRestShared(__int64 a1){
  int v1; 
  INT16 v2; 
  __int64 v4; 
  INT64 KcbAtLayerHeight; 
  v1 = *(__int16 *)(a1 + 2);
  v2 = 0;
  if( v1 - 1 >= 0 )
  {
    do
    {
      KcbAtLayerHeight = CmpGetKcbAtLayerHeight(a1, v2);
      ExAcquirePushLockSharedEx(KcbAtLayerHeight + 48, 0i64);
      _InterlockedAdd((volatile signed __int32 *)(KcbAtLayerHeight + 56), 1u);
      LOWORD(v1) = *(_WORD *)(a1 + 2);
      ++v2;
    }
    while( v2 <= (__int16)v1 - 1 );
  }
  v4 = CmpGetKcbAtLayerHeight(a1, v1);
  return CmpLockKcbExclusive(v4);
}

Referenced by:

CmDeleteLayeredKey
CmDeleteValueKey
CmSetKeyFlags
CmSetLastWriteTimeKey
CmSetValueKey
CmpDoBuildVirtualStack
CmpDoParseKey
CmpGetSymbolicLinkTarget
CmpPromoteKey
CmpSetKeySecurity