for (int i = 0, e = m.instructions.size(); i < e; ++i) {
AbstractInsnNode n = m.instructions.get(i);
if (n.getType() == AbstractInsnNode.METHOD_INSN) {
MethodInsnNode mn = (MethodInsnNode)n;
if (n.getOpcode() == INVOKEINTERFACE && n.getNext().getOpcode() == INVOKEVIRTUAL) {
if (names[2].equals(remapper.mapMethodName(mn.owner, mn.name, mn.desc))) {
if (Csig.equals(remapper.mapMethodDesc(mn.desc)) &&
Ssig.equals(remapper.mapMethodDesc(((MethodInsnNode)mn.getNext()).desc))) {
m.instructions.insertBefore(n, new FieldInsnNode(GETSTATIC, fd, dirs[di++], 'L'+fd+';'));
m.instructions.insertBefore(n, new MethodInsnNode(INVOKEVIRTUAL, cc, "canPaneConnectTo", Rsig, false));
m.instructions.remove(n.getNext());