code: public static boolean insnEqual(AbstractInsnNode node1, AbstractInsnNode node2)
  	{
  		if (node1 == null || node2 == null || node1.getOpcode() != node2.getOpcode())
  			return false;
  
  		switch (node2.getType())
  		{
  			case VAR_INSN:
  				return varInsnEqual((VarInsnNode) node1, (VarInsnNode) node2);
  			case TYPE_INSN:
  				return typeInsnEqual((TypeInsnNode) node1, (TypeInsnNode) node2);
  			case FIELD_INSN:
  				return fieldInsnEqual((FieldInsnNode) node1, (FieldInsnNode) node2);
  			case METHOD_INSN:
  				return methodInsnEqual((MethodInsnNode) node1, (MethodInsnNode) node2);
  			case LDC_INSN:
  				return ldcInsnEqual((LdcInsnNode) node1, (LdcInsnNode) node2);
  			case IINC_INSN:
  				return iincInsnEqual((IincInsnNode) node1, (IincInsnNode) node2);
  			case INT_INSN:
  				return intInsnEqual((IntInsnNode) node1, (IntInsnNode) node2);
  			default:
  				return true;
  		}
  	}
docs: Checks if two {@link AbstractInsnNode} are equals.
  
  @param node1 the node1
  @param node2 the node2
  @return true, if equal