@Nullable
	protected static KotlinMetadata extractMetadata(@Nonnull ClassReader reader) {
		KotlinMetadata[] wrapper = new KotlinMetadata[1];
		reader.accept(new ClassVisitor(RecafConstants.getAsmVersion()) {
			@Override
			public AnnotationVisitor visitAnnotation(String descriptor, boolean visible) {
				AnnotationVisitor visitor = super.visitAnnotation(descriptor, visible);
				if (METADATA_DESC.equals(descriptor))
					visitor = new KotlinMetadataVisitor(visitor, v -> wrapper[0] = extractMetadata(v));
				return visitor;
			}
		}, ClassReader.SKIP_CODE | ClassReader.SKIP_DEBUG);
		return wrapper[0];
	}
@param reader
		Reader wrapper of class to extract Metadata from.

@return Data extracted from visitor.
recaf-core/src/main/java/software/coley/recaf/util/kotlin/KotlinMetadata.java