AbstractInsnNode left = null, right = null;
switch (ptr.getType()) {
case AbstractInsnNode.LOOKUPSWITCH_INSN:
{
LookupSwitchInsnNode lsi = (LookupSwitchInsnNode) ptr;
if (lsi.labels.size() <= MAX_SWITCH) break;
LookupSwitchInsnNode lsl = new LookupSwitchInsnNode(lsi.dflt, new int[0], new LabelNode[0]);
LookupSwitchInsnNode lsr = new LookupSwitchInsnNode(lsi.dflt, new int[0], new LabelNode[0]);
int lsisz = lsi.labels.size();
lsl.keys.addAll(lsi.keys.subList(0, lsisz / 2));
lsr.keys.addAll(lsi.keys.subList(lsisz / 2, lsisz));
lsl.labels.addAll(lsi.labels.subList(0, lsisz / 2));