CmpLockKcbStackShared

INT64 __fastcall CmpLockKcbStackShared(INT64 a1){
  __int16 i; 
  __int64 v3; 
  INT64 result; 

  for( i = 0; i <= *(__int16 *)(a1 + 2); ++i )
  {
    if( i >= 2 )
      v3 = *(_QWORD *)(*(_QWORD *)(a1 + 24) + 8i64 * i - 16);
    else
      v3 = *(_QWORD *)(a1 + 8i64 * i + 8);
    ExAcquirePushLockSharedEx((_EX_PUSH_LOCK *)(v3 + 48), 0i64);
    _InterlockedIncrement((volatile signed __int32 *)(v3 + 56));
  }
  return result;
}

Referenced by:

CmCallbackGetKeyObjectID
CmCallbackGetKeyObjectIDEx
CmEnumerateValueFromLayeredKey
CmQueryLayeredKey
CmQueryMultipleValueForLayeredKey
CmSaveKey
CmSetValueKey
CmpDoParseKey
CmpEnumerateLayeredKey
CmpGetSymbolicLinkTarget
CmpQueryKeySecurity