public static boolean createAssignExpression(InstructionContainer ic,
			StructuredBlock last) {
		/*
		 * Situation: sequBlock: dup_X(lvalue_count) store(POP) = POP
		 */
		SequentialBlock sequBlock = (SequentialBlock) last.outer;
		StoreInstruction store = (StoreInstruction) ic.getInstruction();

		if (sequBlock.subBlocks[0] instanceof SpecialBlock
				&& store.isFreeOperator()) {

			Expression lvalue = store.getSubExpressions()[0];
			SpecialBlock dup = (SpecialBlock) sequBlock.subBlocks[0];
			if (dup.type != SpecialBlock.DUP
					|| dup.depth != lvalue.getFreeOperandCount()
					|| dup.count != lvalue.getType().stackSize())
				return false;

			dup.removeBlock();
			store.makeNonVoid();
			return true;
		}
		return false;
	}