protected static boolean isSupportedValueProducer(@Nonnull AbstractInsnNode insn) {
		// Skip if this instruction consumes a value off the stack.
		if (AsmInsnUtil.getSizeConsumed(insn) > 0)
			return false;

		// The following cases are supported:
		//  - constants
		//  - variable loads (context will determine if value in variable is constant at the given position)
		//  - dup / dup2
		//  - static field gets (context will determine if value in field is constant/known)
		//  - static method calls with 0 args (context will determine if returned value of method is constant/known)
		int op = insn.getOpcode();
		if (AsmInsnUtil.isConstValue(op))
			return true;
		if (op >= ILOAD && op <= ALOAD)
			return true;
		if (op == GETSTATIC)
			return true;
		if (op == DUP || op == DUP2)
			return true;
		return op == INVOKESTATIC
				&& insn instanceof MethodInsnNode min
				&& min.desc.startsWith("()")
				&& !min.desc.endsWith(")V");
	}
Check if the instruction is responsible for providing some value we can possibly fold.
This method doesn't tell us if the value is known though. The next frame after this
instruction should have the provided value on the stack top.

@param insn
		Instruction to check.

@return {@code true} when the instruction will produce a single value.
recaf-core/src/main/java/software/coley/recaf/services/deobfuscation/transform/generic/LinearOpaqueConstantFoldingTransformer.java