From d12018049a05bff072f6d9a282dc8ebe6c542a9e Mon Sep 17 00:00:00 2001 From: Dawid <50593784+Animowany@users.noreply.github.com> Date: Thu, 11 Sep 2025 16:12:11 +0200 Subject: [PATCH 01/13] Add todo to salting --- .../other/impl/branchlock/BranchlockSaltingTransformer.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/deobfuscator-transformers/src/main/java/uwu/narumi/deobfuscator/core/other/impl/branchlock/BranchlockSaltingTransformer.java b/deobfuscator-transformers/src/main/java/uwu/narumi/deobfuscator/core/other/impl/branchlock/BranchlockSaltingTransformer.java index 95bffc40..9743bf7c 100644 --- a/deobfuscator-transformers/src/main/java/uwu/narumi/deobfuscator/core/other/impl/branchlock/BranchlockSaltingTransformer.java +++ b/deobfuscator-transformers/src/main/java/uwu/narumi/deobfuscator/core/other/impl/branchlock/BranchlockSaltingTransformer.java @@ -22,6 +22,8 @@ public class BranchlockSaltingTransformer extends Transformer { private final Map salts = new WeakHashMap<>(); + //TODO: Fix superClass`s / interface`s overridden methods not being deobfuscated + @Override protected void transform() throws Exception { scopedClasses().forEach(classWrapper -> { From 97d67829a6a97ee5508b80034cdae10ff5c32bea Mon Sep 17 00:00:00 2001 From: Dawid <50593784+Animowany@users.noreply.github.com> Date: Thu, 11 Sep 2025 16:12:22 +0200 Subject: [PATCH 02/13] Flow transformer --- .../branchlock/BranchlockFlowTransformer.java | 213 ++++++++++++++++++ 1 file changed, 213 insertions(+) create mode 100644 deobfuscator-transformers/src/main/java/uwu/narumi/deobfuscator/core/other/impl/branchlock/BranchlockFlowTransformer.java diff --git a/deobfuscator-transformers/src/main/java/uwu/narumi/deobfuscator/core/other/impl/branchlock/BranchlockFlowTransformer.java b/deobfuscator-transformers/src/main/java/uwu/narumi/deobfuscator/core/other/impl/branchlock/BranchlockFlowTransformer.java new file mode 100644 index 00000000..6ca9f8ff --- /dev/null +++ b/deobfuscator-transformers/src/main/java/uwu/narumi/deobfuscator/core/other/impl/branchlock/BranchlockFlowTransformer.java @@ -0,0 +1,213 @@ +package uwu.narumi.deobfuscator.core.other.impl.branchlock; + +import org.objectweb.asm.tree.*; +import uwu.narumi.deobfuscator.api.asm.MethodContext; +import uwu.narumi.deobfuscator.api.asm.matcher.Match; +import uwu.narumi.deobfuscator.api.asm.matcher.group.SequenceMatch; +import uwu.narumi.deobfuscator.api.asm.matcher.impl.JumpMatch; +import uwu.narumi.deobfuscator.api.asm.matcher.impl.NumberMatch; +import uwu.narumi.deobfuscator.api.asm.matcher.impl.OpcodeMatch; +import uwu.narumi.deobfuscator.api.transformer.Transformer; + +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +public class BranchlockFlowTransformer extends Transformer { + + Match[] flowDupEquationMatches = new Match[] { + SequenceMatch.of( + OpcodeMatch.of(DUP), + JumpMatch.of().capture("fake-jump"), + JumpMatch.of().capture("correct-jump"), + NumberMatch.of() + ), + SequenceMatch.of( + OpcodeMatch.of(DUP), + OpcodeMatch.of(SWAP), + JumpMatch.of().capture("fake-jump"), + JumpMatch.of().capture("correct-jump"), + NumberMatch.of() + ) + }; + + Match flowDupJumpMatch = SequenceMatch.of( + OpcodeMatch.of(DUP), + JumpMatch.of().capture("fake-jump"), + OpcodeMatch.of(ASTORE).capture("correct-store"), + OpcodeMatch.of(ALOAD), + JumpMatch.of() + ); + + Match flowDupJumpMatch2 = SequenceMatch.of( + OpcodeMatch.of(DUP), + JumpMatch.of().capture("fake-jump"), + OpcodeMatch.of(ASTORE).capture("correct-store") + ); + + Match flowFakeLoop = SequenceMatch.of( + OpcodeMatch.of(ASTORE).capture("correct-store"), + OpcodeMatch.of(ALOAD).capture("fake-load"), + JumpMatch.of() + ); + + Match errorJump = SequenceMatch.of( + OpcodeMatch.of(ALOAD).capture("loaded-var"), + JumpMatch.of() + ); + + Match trashHandlers = SequenceMatch.of( + Match.of(ctx -> (ctx.insn().getOpcode() >= IRETURN && ctx.insn().getOpcode() <= RETURN) || ctx.insn().getOpcode() == ATHROW), + Match.of(ctx -> (ctx.insn().getOpcode() >= ACONST_NULL && ctx.insn().getOpcode() <= DCONST_1) || ctx.insn().getOpcode() == ALOAD || ctx.insn() instanceof LabelNode) + ).doNotSkipLabels(); + + @Override + protected void transform() throws Exception { + scopedClasses().forEach(classWrapper -> classWrapper.methods().forEach(methodNode -> { + if (methodNode.name.equals("")) return; + MethodContext methodContext = MethodContext.of(classWrapper, methodNode); + List tryCatchBlocks = methodNode.tryCatchBlocks; + if (tryCatchBlocks != null && !tryCatchBlocks.isEmpty()) { + Set toRemove = new HashSet<>(); + Set trashLabels = new HashSet<>(); + for (Match flowDupEquationMatch : flowDupEquationMatches) { + flowDupEquationMatch.findAllMatches(methodContext).forEach(matchContext -> { + if (matchContext.captures().containsKey("swap")) System.out.println(matchContext.captures().containsKey("swap")); + LabelNode labelNode = matchContext.captures().get("fake-jump").insn().asJump().label; + if (labelNode != null && labelNode.getNext() != null && labelNode.getNext() instanceof FrameNode && labelNode.getNext(2) != null && labelNode.getNext(2).getOpcode() == POP) { + toRemove.add(labelNode); + trashLabels.add(labelNode); + toRemove.add(labelNode.getNext()); + toRemove.add(labelNode.getNext(2)); + markChange(); + } else if (labelNode != null && labelNode.getNext() != null && labelNode.getNext().getOpcode() == POP) { + toRemove.add(labelNode); + trashLabels.add(labelNode); + toRemove.add(labelNode.getNext()); + markChange(); + } + toRemove.addAll(matchContext.collectedInsns()); + toRemove.remove(matchContext.captures().get("correct-jump").insn()); + markChange(); + }); + } + flowFakeLoop.findAllMatches(methodContext).forEach(matchContext -> { + VarInsnNode varInsnNode = (VarInsnNode) matchContext.captures().get("correct-store").insn(); + VarInsnNode varInsnNode1 = (VarInsnNode) matchContext.captures().get("fake-load").insn(); + if (varInsnNode.var != varInsnNode1.var) { + toRemove.addAll(matchContext.collectedInsns()); + toRemove.remove(matchContext.captures().get("correct-store").insn()); + markChange(); + } + }); + JumpInsnNode jumpInsnNode = null; + try { + if ((methodNode.instructions.get(0) instanceof LabelNode && methodNode.instructions.get(1) instanceof JumpInsnNode)) { + jumpInsnNode = methodNode.instructions.get(1).asJump(); + trashLabels.add((LabelNode) methodNode.instructions.get(0)); + } else if (methodNode.instructions.get(0) instanceof JumpInsnNode) { + jumpInsnNode = methodNode.instructions.get(0).asJump(); + } + if (jumpInsnNode != null) { + int i = 0; + if ((jumpInsnNode.label.getNext().isVarLoad() && ((VarInsnNode)jumpInsnNode.label.getNext()).var == 0 || (jumpInsnNode.label.getNext().getOpcode() >= ACONST_NULL && jumpInsnNode.label.getNext().getOpcode() <= DCONST_1))) { + while (jumpInsnNode.label.getNext(i) != null && !jumpInsnNode.label.getNext(i).isVarStore()) { + i++; + } + VarInsnNode flowVarIndex = (VarInsnNode) jumpInsnNode.label.getNext(i); + if (flowVarIndex != null) { + errorJump.findAllMatches(methodContext).forEach(matchContext -> { + if (((VarInsnNode) matchContext.captures().get("loaded-var").insn()).var == flowVarIndex.var) { + toRemove.addAll(matchContext.collectedInsns()); + } + markChange(); + }); + } + toRemove.add(jumpInsnNode); + jumpInsnNode = null; + } + } + } catch (Exception exception) { + exception.printStackTrace(); + } + flowDupJumpMatch.findAllMatches(methodContext).forEach(matchContext -> { + LabelNode labelNode = matchContext.captures().get("fake-jump").insn().asJump().label; + if (labelNode != null && labelNode.getNext() != null && labelNode.getNext() instanceof FrameNode && labelNode.getNext(2) != null && labelNode.getNext(2).getOpcode() == GOTO) { + toRemove.add(labelNode); + trashLabels.add(labelNode); + toRemove.add(labelNode.getNext()); + toRemove.add(labelNode.getNext(2)); + markChange(); + } + toRemove.addAll(matchContext.collectedInsns()); + toRemove.remove(matchContext.captures().get("correct-store").insn()); + markChange(); + }); + flowDupJumpMatch2.findAllMatches(methodContext).forEach(matchContext -> { + LabelNode labelNode = matchContext.captures().get("fake-jump").insn().asJump().label; + if (labelNode != null && labelNode.getNext() != null && labelNode.getNext().getOpcode() == GOTO) { + toRemove.add(labelNode); + trashLabels.add(labelNode); + toRemove.add(labelNode.getNext()); + markChange(); + } + toRemove.addAll(matchContext.collectedInsns()); + toRemove.remove(matchContext.captures().get("correct-store").insn()); + markChange(); + }); + + try { + AbstractInsnNode returnNode = trashHandlers.findFirstMatch(methodContext).insn(); + + AbstractInsnNode next = returnNode.getNext(); + while (next != null) { + if (next instanceof LabelNode label) { + trashLabels.add(label); + } + next = next.getNext(); + + } + } catch (Exception ignored) {} + + toRemove.forEach( + methodNode.instructions::remove + ); + + if (jumpInsnNode != null) { + AbstractInsnNode next = jumpInsnNode.label; + while (next != null) { + if (next instanceof LabelNode label) { + trashLabels.add(label); + } + next = next.getNext(); + + } + while (jumpInsnNode.label.getNext() != null && !(jumpInsnNode.label.getNext() instanceof JumpInsnNode)) { + AbstractInsnNode abstractInsnNode = jumpInsnNode.label.getNext(); + if (abstractInsnNode instanceof LabelNode) { + methodNode.instructions.remove(abstractInsnNode); + continue; + } + methodNode.instructions.remove(abstractInsnNode); + methodNode.instructions.insertBefore(jumpInsnNode, abstractInsnNode); + } + + methodNode.instructions.remove(jumpInsnNode); + } + + Set tryCatchBlockNodes = new HashSet<>(); + + for (TryCatchBlockNode tryCatchBlock : tryCatchBlocks) { + if (trashLabels.contains(tryCatchBlock.start) || trashLabels.contains(tryCatchBlock.handler) || trashLabels.contains(tryCatchBlock.end)) { + tryCatchBlockNodes.add(tryCatchBlock); + markChange(); + } + } + + tryCatchBlockNodes.forEach( + methodNode.tryCatchBlocks::remove + ); + } + })); + } +} From 28f1e53b2d71f156d802016fecad37ee7ad10260 Mon Sep 17 00:00:00 2001 From: Dawid <50593784+Animowany@users.noreply.github.com> Date: Thu, 11 Sep 2025 16:12:33 +0200 Subject: [PATCH 03/13] Quicker static cache for Strings --- ...ranchlockCompabilityStringTransformer.java | 252 +++++++++--------- 1 file changed, 129 insertions(+), 123 deletions(-) diff --git a/deobfuscator-transformers/src/main/java/uwu/narumi/deobfuscator/core/other/impl/branchlock/BranchlockCompabilityStringTransformer.java b/deobfuscator-transformers/src/main/java/uwu/narumi/deobfuscator/core/other/impl/branchlock/BranchlockCompabilityStringTransformer.java index 17e7011a..d43836f4 100644 --- a/deobfuscator-transformers/src/main/java/uwu/narumi/deobfuscator/core/other/impl/branchlock/BranchlockCompabilityStringTransformer.java +++ b/deobfuscator-transformers/src/main/java/uwu/narumi/deobfuscator/core/other/impl/branchlock/BranchlockCompabilityStringTransformer.java @@ -1,166 +1,140 @@ package uwu.narumi.deobfuscator.core.other.impl.branchlock; import org.objectweb.asm.tree.*; +import uwu.narumi.deobfuscator.api.asm.ClassWrapper; import uwu.narumi.deobfuscator.api.asm.MethodContext; import uwu.narumi.deobfuscator.api.asm.matcher.Match; import uwu.narumi.deobfuscator.api.asm.matcher.MatchContext; import uwu.narumi.deobfuscator.api.asm.matcher.group.SequenceMatch; -import uwu.narumi.deobfuscator.api.asm.matcher.impl.*; +import uwu.narumi.deobfuscator.api.asm.matcher.impl.FieldMatch; +import uwu.narumi.deobfuscator.api.asm.matcher.impl.NumberMatch; +import uwu.narumi.deobfuscator.api.asm.matcher.impl.OpcodeMatch; import uwu.narumi.deobfuscator.api.transformer.Transformer; import java.util.Arrays; +import java.util.HashMap; +import java.util.Map; import java.util.concurrent.atomic.AtomicInteger; public class BranchlockCompabilityStringTransformer extends Transformer { - private final boolean deleteClinit; private String[] decryptedStrings; private FieldInsnNode stringArray; - public BranchlockCompabilityStringTransformer(boolean deleteClinit) { - this.deleteClinit = deleteClinit; - } + private record DecryptedStringData(FieldInsnNode fieldInsnNode, String[] decryptedStrings) {} + + private static final Map decryptedDataMap = new HashMap<>(); @Override protected void transform() throws Exception { scopedClasses().forEach(classWrapper -> { decryptedStrings = null; stringArray = null; - classWrapper.findClInit().ifPresent(clinit -> { - MethodContext methodContext = MethodContext.of(classWrapper, clinit); - String className = classWrapper.name().replace("/", "."); - String methodName = clinit.name; - Arrays.stream(clinit.instructions.toArray()) - .filter(ain -> ain instanceof LdcInsnNode) - .map(LdcInsnNode.class::cast) - .filter(ldc -> ldc.cst instanceof String) - .findFirst().ifPresent(ldc -> { - Match stringArr = OpcodeMatch.of(PUTSTATIC).capture("string-arr"); - stringArray = stringArr.findFirstMatch(methodContext).insn().asFieldInsn(); - - String encryptedString = (String) ldc.cst; - char[] encryptedStringArray = encryptedString.toCharArray(); - Match match = SequenceMatch.of(OpcodeMatch.of(DUP), NumberMatch.numInteger().capture("array-to"), OpcodeMatch.of(SWAP), NumberMatch.numInteger().capture("array-from"), OpcodeMatch.of(CALOAD), OpcodeMatch.of(CASTORE), OpcodeMatch.of(CASTORE)); - - /* First "char swapper" salting */ - for (MatchContext allMatch : match.findAllMatches(methodContext)) { - int arrayFrom = allMatch.captures().get("array-from").insn().asInteger(); - int arrayTo = allMatch.captures().get("array-to").insn().asInteger(); - try { - char store = encryptedStringArray[arrayFrom]; - encryptedStringArray[arrayFrom] = encryptedStringArray[arrayTo]; - encryptedStringArray[arrayTo] = store; - } catch (Exception e) { - break; + if (decryptedDataMap.containsKey(classWrapper)) { + decryptedStrings = decryptedDataMap.get(classWrapper).decryptedStrings(); + stringArray = decryptedDataMap.get(classWrapper).fieldInsnNode(); + } else { + classWrapper.findClInit().ifPresent(clinit -> { + MethodContext methodContext = MethodContext.of(classWrapper, clinit); + String className = classWrapper.name().replace("/", "."); + String methodName = clinit.name; + Arrays.stream(clinit.instructions.toArray()) + .filter(ain -> ain instanceof LdcInsnNode) + .map(LdcInsnNode.class::cast) + .filter(ldc -> ldc.cst instanceof String) + .findFirst().ifPresent(ldc -> { + Match stringArr = OpcodeMatch.of(PUTSTATIC).capture("string-arr"); + stringArray = stringArr.findFirstMatch(methodContext).insn().asFieldInsn(); + + String encryptedString = (String) ldc.cst; + char[] encryptedStringArray = encryptedString.toCharArray(); + Match match = SequenceMatch.of(OpcodeMatch.of(DUP), NumberMatch.numInteger().capture("array-to"), OpcodeMatch.of(SWAP), NumberMatch.numInteger().capture("array-from"), OpcodeMatch.of(CALOAD), OpcodeMatch.of(CASTORE), OpcodeMatch.of(CASTORE)); + + /* First "char swapper" salting */ + for (MatchContext allMatch : match.findAllMatches(methodContext)) { + int arrayFrom = allMatch.captures().get("array-from").insn().asInteger(); + int arrayTo = allMatch.captures().get("array-to").insn().asInteger(); + try { + char store = encryptedStringArray[arrayFrom]; + encryptedStringArray[arrayFrom] = encryptedStringArray[arrayTo]; + encryptedStringArray[arrayTo] = store; + } catch (Exception e) { + break; + } } - } - - int encCharIndex = 0; // Under LDC - int decStrIndex = 0; // Under new StringArr + int encCharIndex = 0; // Under LDC - /* Finding new String Array creator for decrypted Strings */ - Match newArray = SequenceMatch.of(NumberMatch.numInteger().capture("salt"), OpcodeMatch.of(IXOR), OpcodeMatch.of(ILOAD), OpcodeMatch.of(IXOR), OpcodeMatch.of(ANEWARRAY)); - int salt = newArray.findFirstMatch(methodContext).captures().get("salt").insn().asInteger(); - int methodSalt = (methodName.hashCode() & 0xFFFF); + int decStrIndex = 0; // Under new StringArr - char[] classNameArray = className.toCharArray(); + /* Finding new String Array creator for decrypted Strings */ + Match newArray = SequenceMatch.of(NumberMatch.numInteger().capture("salt"), OpcodeMatch.of(IXOR), OpcodeMatch.of(ILOAD), OpcodeMatch.of(IXOR), OpcodeMatch.of(ANEWARRAY)); + int salt = newArray.findFirstMatch(methodContext).captures().get("salt").insn().asInteger(); + int methodSalt = (methodName.hashCode() & 0xFFFF); - decryptedStrings = new String[encryptedStringArray[encCharIndex++] ^ salt ^ methodSalt]; + char[] classNameArray = className.toCharArray(); - Match saltOfStrLen = SequenceMatch.of(OpcodeMatch.of(IINC), OpcodeMatch.of(CALOAD), NumberMatch.numInteger().capture("salt"), OpcodeMatch.of(IXOR), OpcodeMatch.of(ILOAD), OpcodeMatch.of(IXOR), OpcodeMatch.of(ISTORE)); - int salt2 = saltOfStrLen.findFirstMatch(methodContext).captures().get("salt").insn().asInteger(); + decryptedStrings = new String[encryptedStringArray[encCharIndex++] ^ salt ^ methodSalt]; - Match switchMatch = SequenceMatch.of(NumberMatch.numInteger().capture("switch-salt"), OpcodeMatch.of(IXOR), OpcodeMatch.of(LOOKUPSWITCH).capture("switch-table")); - MatchContext switchContext = switchMatch.findFirstMatch(methodContext); - int switchSalt = switchContext.captures().get("switch-salt").insn().asInteger(); - LookupSwitchInsnNode switchInsnNode = (LookupSwitchInsnNode) switchContext.captures().get("switch-table").insn(); + Match saltOfStrLen = SequenceMatch.of(OpcodeMatch.of(IINC), OpcodeMatch.of(CALOAD), NumberMatch.numInteger().capture("salt"), OpcodeMatch.of(IXOR), OpcodeMatch.of(ILOAD), OpcodeMatch.of(IXOR), OpcodeMatch.of(ISTORE)); + int salt2 = saltOfStrLen.findFirstMatch(methodContext).captures().get("salt").insn().asInteger(); - Match switch2Match = SequenceMatch.of(OpcodeMatch.of(ILOAD), OpcodeMatch.of(TABLESWITCH).capture("switch-table")); - MatchContext switch2Context = switch2Match.findFirstMatch(methodContext); - TableSwitchInsnNode tableSwitchInsnNode = (TableSwitchInsnNode) switch2Context.captures().get("switch-table").insn(); + Match switchMatch = SequenceMatch.of(NumberMatch.numInteger().capture("switch-salt"), OpcodeMatch.of(IXOR), OpcodeMatch.of(LOOKUPSWITCH).capture("switch-table")); + MatchContext switchContext = switchMatch.findFirstMatch(methodContext); + int switchSalt = switchContext.captures().get("switch-salt").insn().asInteger(); + LookupSwitchInsnNode switchInsnNode = (LookupSwitchInsnNode) switchContext.captures().get("switch-table").insn(); + Match switch2Match = SequenceMatch.of(OpcodeMatch.of(ILOAD), OpcodeMatch.of(TABLESWITCH).capture("switch-table")); + MatchContext switch2Context = switch2Match.findFirstMatch(methodContext); + TableSwitchInsnNode tableSwitchInsnNode = (TableSwitchInsnNode) switch2Context.captures().get("switch-table").insn(); - /* Creating same simulation */ - while (encCharIndex < encryptedStringArray.length) { - int strLength = encryptedStringArray[encCharIndex++] ^ salt2 ^ methodSalt; - char[] toDecrypt = new char[strLength]; - int decCharIndex = 0; // Under var9_8 = new char[var2_2]; - while (strLength > 0) { - char nowDecrypted = encryptedStringArray[encCharIndex]; - int switch2Value = 0; + /* Creating same simulation */ + while (encCharIndex < encryptedStringArray.length) { + int strLength = encryptedStringArray[encCharIndex++] ^ salt2 ^ methodSalt; + char[] toDecrypt = new char[strLength]; + int decCharIndex = 0; // Under var9_8 = new char[var2_2]; - Match swapKey = SequenceMatch.of(NumberMatch.numInteger().capture("swap-key"), OpcodeMatch.of(ISTORE), OpcodeMatch.of(GOTO)); - Match xorKey = SequenceMatch.of(OpcodeMatch.of(ILOAD), NumberMatch.numInteger().capture("xor-key"), OpcodeMatch.of(IXOR)); - - int switchValue = classNameArray[encCharIndex % classNameArray.length] ^ switchSalt; - LabelNode switchCase = getLabelByKey(switchInsnNode, switchValue); - AtomicInteger s2v = new AtomicInteger(-1337); - swapKey.findAllMatches(methodContext).forEach(matchContext -> { - MatchContext capturedSwapKey = matchContext.captures().get("swap-key"); - if (isInsnInLabelRange(clinit, switchCase, capturedSwapKey.insn())) { - s2v.set(capturedSwapKey.insn().asInteger()); - } - }); - - if (s2v.get() != -1337) { - switch2Value = s2v.get(); - } - - AtomicInteger xor = new AtomicInteger(-1337); - xorKey.findAllMatches(methodContext).forEach(matchContext -> { - MatchContext capturedXorKey = matchContext.captures().get("xor-key"); - if (isInsnInLabelRange(clinit, switchCase, capturedXorKey.insn())) { - xor.set(capturedXorKey.insn().asInteger()); - } - }); - - if (xor.get() != -1337) { - nowDecrypted ^= xor.get(); - } - - if (switch2Value == 0 && xor.get() == -1337) { - toDecrypt[decCharIndex] = nowDecrypted; - ++decCharIndex; - ++encCharIndex; - --strLength; - switch2Value = 0; - continue; - } - - if (switch2Value == 1) { - toDecrypt[decCharIndex] = nowDecrypted; - ++decCharIndex; - ++encCharIndex; - --strLength; - switch2Value = 0; - continue; - } + while (strLength > 0) { + char nowDecrypted = encryptedStringArray[encCharIndex]; + int switch2Value = 0; - while (true) { - LabelNode tableCase = getLabelByKey(tableSwitchInsnNode, switch2Value); + Match swapKey = SequenceMatch.of(NumberMatch.numInteger().capture("swap-key"), OpcodeMatch.of(ISTORE), OpcodeMatch.of(GOTO)); + Match xorKey = SequenceMatch.of(OpcodeMatch.of(ILOAD), NumberMatch.numInteger().capture("xor-key"), OpcodeMatch.of(IXOR)); - AtomicInteger s2v2 = new AtomicInteger(-1337); + int switchValue = classNameArray[encCharIndex % classNameArray.length] ^ switchSalt; + LabelNode switchCase = getLabelByKey(switchInsnNode, switchValue); + AtomicInteger s2v = new AtomicInteger(-1337); swapKey.findAllMatches(methodContext).forEach(matchContext -> { MatchContext capturedSwapKey = matchContext.captures().get("swap-key"); - if (isInsnInLabelRange(clinit, tableCase, capturedSwapKey.insn())) { - s2v2.set(capturedSwapKey.insn().asInteger()); + if (isInsnInLabelRange(clinit, switchCase, capturedSwapKey.insn())) { + s2v.set(capturedSwapKey.insn().asInteger()); } }); - switch2Value = s2v2.get(); + if (s2v.get() != -1337) { + switch2Value = s2v.get(); + } - AtomicInteger xor2 = new AtomicInteger(-1337); + AtomicInteger xor = new AtomicInteger(-1337); xorKey.findAllMatches(methodContext).forEach(matchContext -> { MatchContext capturedXorKey = matchContext.captures().get("xor-key"); - if (isInsnInLabelRange(clinit, tableCase, capturedXorKey.insn())) { - xor2.set(capturedXorKey.insn().asInteger()); + if (isInsnInLabelRange(clinit, switchCase, capturedXorKey.insn())) { + xor.set(capturedXorKey.insn().asInteger()); } }); - if (xor2.get() != -1337) { - nowDecrypted ^= xor2.get(); + if (xor.get() != -1337) { + nowDecrypted ^= xor.get(); + } + + if (switch2Value == 0 && xor.get() == -1337) { + toDecrypt[decCharIndex] = nowDecrypted; + ++decCharIndex; + ++encCharIndex; + --strLength; + switch2Value = 0; + continue; } if (switch2Value == 1) { @@ -169,19 +143,51 @@ protected void transform() throws Exception { ++encCharIndex; --strLength; switch2Value = 0; - break; + continue; + } + + while (true) { + LabelNode tableCase = getLabelByKey(tableSwitchInsnNode, switch2Value); + + AtomicInteger s2v2 = new AtomicInteger(-1337); + swapKey.findAllMatches(methodContext).forEach(matchContext -> { + MatchContext capturedSwapKey = matchContext.captures().get("swap-key"); + if (isInsnInLabelRange(clinit, tableCase, capturedSwapKey.insn())) { + s2v2.set(capturedSwapKey.insn().asInteger()); + } + }); + + switch2Value = s2v2.get(); + + AtomicInteger xor2 = new AtomicInteger(-1337); + xorKey.findAllMatches(methodContext).forEach(matchContext -> { + MatchContext capturedXorKey = matchContext.captures().get("xor-key"); + if (isInsnInLabelRange(clinit, tableCase, capturedXorKey.insn())) { + xor2.set(capturedXorKey.insn().asInteger()); + } + }); + + if (xor2.get() != -1337) { + nowDecrypted ^= xor2.get(); + } + + if (switch2Value == 1) { + toDecrypt[decCharIndex] = nowDecrypted; + ++decCharIndex; + ++encCharIndex; + --strLength; + switch2Value = 0; + break; + } } } + decryptedStrings[decStrIndex++] = new String(toDecrypt).intern(); } - decryptedStrings[decStrIndex++] = new String(toDecrypt).intern(); - } - }); - }); + }); + }); + } if (stringArray != null) { - if (deleteClinit) { - classWrapper.methods().remove(classWrapper.findClInit().get()); - } classWrapper.fields().removeIf(fieldNode -> fieldNode.name.equals(stringArray.name) && fieldNode.desc.equals(stringArray.desc)); classWrapper.methods().forEach(methodNode -> { From 5c5d145070363edeb341d1eeb6e2c89c9198d311 Mon Sep 17 00:00:00 2001 From: Dawid <50593784+Animowany@users.noreply.github.com> Date: Thu, 11 Sep 2025 16:12:43 +0200 Subject: [PATCH 04/13] Composed workaround --- .../core/other/composed/ComposedBranchlockTransformer.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/deobfuscator-transformers/src/main/java/uwu/narumi/deobfuscator/core/other/composed/ComposedBranchlockTransformer.java b/deobfuscator-transformers/src/main/java/uwu/narumi/deobfuscator/core/other/composed/ComposedBranchlockTransformer.java index 053a4827..2289ae79 100644 --- a/deobfuscator-transformers/src/main/java/uwu/narumi/deobfuscator/core/other/composed/ComposedBranchlockTransformer.java +++ b/deobfuscator-transformers/src/main/java/uwu/narumi/deobfuscator/core/other/composed/ComposedBranchlockTransformer.java @@ -4,6 +4,7 @@ import uwu.narumi.deobfuscator.core.other.composed.general.ComposedGeneralFlowTransformer; import uwu.narumi.deobfuscator.core.other.composed.general.ComposedGeneralRepairTransformer; import uwu.narumi.deobfuscator.core.other.impl.branchlock.BranchlockCompabilityStringTransformer; +import uwu.narumi.deobfuscator.core.other.impl.branchlock.BranchlockFlowTransformer; import uwu.narumi.deobfuscator.core.other.impl.branchlock.BranchlockSaltingTransformer; import uwu.narumi.deobfuscator.core.other.impl.universal.UniversalNumberTransformer; @@ -12,10 +13,11 @@ public ComposedBranchlockTransformer() { super( () -> new ComposedTransformer(true, UniversalNumberTransformer::new, - () -> new BranchlockCompabilityStringTransformer(false), + BranchlockCompabilityStringTransformer::new, BranchlockSaltingTransformer::new), ComposedGeneralRepairTransformer::new, // Deletes "Logic Scrambler" - ComposedGeneralFlowTransformer::new // Deobfuscates part of flow obfuscation + BranchlockFlowTransformer::new, + ComposedGeneralFlowTransformer::new ); } } From ab690b85653bd126594c9aa5934fae234bb64f5d Mon Sep 17 00:00:00 2001 From: Dawid <50593784+Animowany@users.noreply.github.com> Date: Thu, 11 Sep 2025 16:12:51 +0200 Subject: [PATCH 05/13] Samples for tests --- .../branchlock-string-flow-number.jar | Bin 0 -> 57873 bytes .../branchlock-string-salting-flow-number.jar | Bin 0 -> 58661 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 testData/compiled/custom-jars/branchlock/branchlock-string-flow-number.jar create mode 100644 testData/compiled/custom-jars/branchlock/branchlock-string-salting-flow-number.jar diff --git a/testData/compiled/custom-jars/branchlock/branchlock-string-flow-number.jar b/testData/compiled/custom-jars/branchlock/branchlock-string-flow-number.jar new file mode 100644 index 0000000000000000000000000000000000000000..292395c7c7a53e64e5d074d40981c2752922db84 GIT binary patch literal 57873 zcmb4qW0a;#vTk*kZQHi(>auOywr$(CZL`a^ZFQ-u>h|6udRMh^cQa`0c|Qo@S- z)MC;i|C{lDTTWlk!OXyc*38=4$o_vrj`};d|0LHlFmU?cP$T_L{V!qtOV)pg2?+oU z3=9CFpz=30VgDD>Kg48gW@*Iu=Ny5#+J+J!ztjZ^X0zP}0{BbMUw(c6UHX{+Wm-!c zJ;T3CVNpcz0~&!NeOD2S!fArimC6@4f1pg zj5~Ky-@ng0O^H#_G|Q8TN=_{Sg4^1C`E$ddk2`?WzqIhj_un-E{6FmfYq9@67U6%! z{=;Ygxz*nY|Fg3GCZm5D;Qv_BpHuvyD+!=KSr_bXIr)F<>ThSjKiRQ&vewhL{F~hW zv+7X(<9-~R^nX{{ei^o4v6+#j;s0iW|LoHSj`o(nQ~yJxnPtD*Kko0m|7-bw zdXVBT3;I*4D;3&?4h|0w|FDVo;rd#TU-kg>f3=DKrY-{;Cu_&QyXSwF4*c)z=^I%a znEt-4|4jFv&q)J&8;AeZvHagSw>NUM*E9H=QT#)&wz`z&lZ&zLS@6*dR064nAdaYxR z)RV~3=cZ0qXzc~)$;5@p>&Wd8!*J^doSKYnP1Q-~83Ha!WKeq7AK5NLbl!0zLVW=g z?q~u$hG5lASRsDMXdp*AQ`9CY;fELZYXWWR8dFLZkZtm5dB=5n=vRm!#LQg?!bn~4 zKz798bOd@paD=!n19&-cd%}+*KaIfW+%u7n|sz0;hoeiZ5au3#aAGSEe_MsNJ-HSCTERj>O(BY7|_V9 zrH`mkjAeUjac9Ae>z&r&tEUbPavOu9Km%w-Xz$BgTk!Q(qAI3I%34Ecf}cKC)*^d1E0HV+V&60zCyeJ#StLA zR|tJo@#?WCp}B^?Ym#}QOV@r6b=`B%Z=rn&u{} z2+7)~ZFQOns=%dl;|tPH6#@|xNN^41r^vj0@zTeE)lG+h7UT}jCy3<|uoV-w&+ZmR z4nP8x!L8vNf}?>Ke?u4H;>(OHST;NX`s4nDLg+@6{0aaN^y~cl_qEJf`+M|6_Pde( z%lrSw&K3W#cB8+T>KvG^VUWVQ{JJud)(FBV7(CdQ5Pf@U=w?W{jN%lebP!K7Q^T|} zZbvS++-{_rMPU-rRXf1Q!YCI?dwC0rt0xx3!e} z^NbwtFSeK*1CL$kz|u6L9oX zcp%ghCaMb`xKk7X3yuY>FGeg4>rkj5C*j*^p1if1-}>ExDFK77l-G?bz6T_)N1|)# zjt+Nb{m|ZW`q^vybrZUo>&k&NG;Nv!Er=-?hz6#ps)_4Kqd-rgWhFRMbnrdkZZYDG)|J?(tcJy76@gik&$DbV))uxP%0wYC5U}-H@JI$X z5!4fd2|pJXB5`yhuTc}KAHqf;g#q~WY$_~N$0TJ8nmm*7C6ppVcMz2M@Ze@+IT;SwmwI%X@hZll-oZR=8{Wo;Yze&$zD z4XBA*%@RlkBo90#ThyG1XQ-#ro1N?TY;1-@k%r!=Tw?qhT?7S&D*Pz&HsiH-AL64; zk~S&xs1zguGzxfN0_$w&UKyvqJQH&hN_ax5E?R{oqItet|0$-+0{L97Kz*!Zz ze1!Pj9is0&VXp4P+WLifd3-kz@SP5c^0}*$vlhweOuos3s3iv7NRzR}WHX^K1y*R0 z>`b)Z3b0=w|M30bx%xj??Y7o?)&(^`~F|w0zzgcW`A+|LSS7(FJ&uP z#btEwsjbbfj*0vyZMDfe__#s{B4fk=Q9fZ+yj(C5SwXU(i7Vu#3(zi)zM`TqYtg79 zK}1rk1hYBQ%y@ci4asoRv+As=gKwPg^Jd1GN8e5xvn1E+)*I)G=gZfhHj?lbTN$t2 zo;q=-*^l4T-|o***y(S^B@hF>)zQgI>|ec z#Ri0ApgQl$8t$e?f=16k54;QCv~G<(_D8k`si4OSXH0C|-mO2NJt>e2o&!E;Hr
aIx$K5%!Z0XVBXdo;YM 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

iyZKV9eBsn^9|??W_ri?|H8|s~uYMDe|8X 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�w7-}SL>S5olot>X5HFAb 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%0AJJp}sP&asbFDe#S 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 Date: Thu, 11 Sep 2025 16:12:56 +0200 Subject: [PATCH 06/13] Samples for tests --- .../custom-jars/branchlock/flow/flow 9.jar | Bin 0 -> 35057 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 testData/compiled/custom-jars/branchlock/flow/flow 9.jar diff --git a/testData/compiled/custom-jars/branchlock/flow/flow 9.jar b/testData/compiled/custom-jars/branchlock/flow/flow 9.jar new file mode 100644 index 0000000000000000000000000000000000000000..e4ce360515b6b1d42c9fc1a2a753715cc9227514 GIT binary patch literal 35057 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 Date: Thu, 11 Sep 2025 16:13:06 +0200 Subject: [PATCH 07/13] Tests init --- .../narumi/deobfuscator/TestDeobfuscation.java | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/deobfuscator-impl/src/test/java/uwu/narumi/deobfuscator/TestDeobfuscation.java b/deobfuscator-impl/src/test/java/uwu/narumi/deobfuscator/TestDeobfuscation.java index a3c554fd..b559282c 100644 --- a/deobfuscator-impl/src/test/java/uwu/narumi/deobfuscator/TestDeobfuscation.java +++ b/deobfuscator-impl/src/test/java/uwu/narumi/deobfuscator/TestDeobfuscation.java @@ -4,6 +4,7 @@ import uwu.narumi.deobfuscator.core.other.composed.general.ComposedGeneralFlowTransformer; import uwu.narumi.deobfuscator.core.other.composed.general.ComposedPeepholeCleanTransformer; import uwu.narumi.deobfuscator.core.other.impl.branchlock.BranchlockCompabilityStringTransformer; +import uwu.narumi.deobfuscator.core.other.impl.branchlock.BranchlockFlowTransformer; import uwu.narumi.deobfuscator.core.other.impl.clean.peephole.JsrInlinerTransformer; import uwu.narumi.deobfuscator.core.other.impl.clean.peephole.UselessPopCleanTransformer; import uwu.narumi.deobfuscator.core.other.impl.pool.InlineLocalVariablesTransformer; @@ -210,7 +211,7 @@ protected void registerAll() { .register(); test("Branchlock String") - .transformers(UniversalNumberTransformer::new, () -> new BranchlockCompabilityStringTransformer(true)) + .transformers(UniversalNumberTransformer::new, BranchlockCompabilityStringTransformer::new) .inputJar("branchlock/branchlock-string.jar") .register(); @@ -218,5 +219,20 @@ protected void registerAll() { .transformers(ComposedBranchlockTransformer::new) .inputJar("branchlock/branchlock-string-salting-number.jar") .register(); + + test("Branchlock String + Flow + Number") + .transformers(ComposedBranchlockTransformer::new) + .inputJar("branchlock/branchlock-string-flow-number.jar") + .register(); + +// test("Branchlock String + Salting + Flow + Number") +// .transformers(ComposedBranchlockTransformer::new) +// .inputJar("branchlock/branchlock-string-salting-flow-number.jar") +// .register(); + + test("Branchlock Flow 9") + .transformers(BranchlockFlowTransformer::new) + .inputJar("branchlock/flow/flow 9.jar") + .register(); } } From 1e02362f921a56f1c12304e81b55bac990029f89 Mon Sep 17 00:00:00 2001 From: Dawid <50593784+Animowany@users.noreply.github.com> Date: Thu, 11 Sep 2025 16:13:35 +0200 Subject: [PATCH 08/13] Tests results --- .../pack/Clazz.dec | 5 + .../pack/Main.dec | 370 ++++++++++++++++++ .../pack/tests/basics/accu/Digi.dec | 246 ++++++++++++ .../pack/tests/basics/cross/Abst1.dec | 11 + .../pack/tests/basics/cross/Inte.dec | 5 + .../pack/tests/basics/cross/Top.dec | 230 +++++++++++ .../pack/tests/basics/ctrl/Ctrl.dec | 239 +++++++++++ .../pack/tests/basics/inner/Exec.dec | 26 ++ .../pack/tests/basics/inner/Test.dec | 244 ++++++++++++ .../pack/tests/basics/overwirte/Face.dec | 5 + .../pack/tests/basics/overwirte/Sub.dec | 237 +++++++++++ .../pack/tests/basics/overwirte/Super.dec | 202 ++++++++++ .../pack/tests/basics/runable/Exec.dec | 16 + .../pack/tests/basics/runable/Pool.dec | 10 + .../pack/tests/basics/runable/Task.dec | 264 +++++++++++++ .../pack/tests/basics/sub/SolAdd.dec | 20 + .../pack/tests/basics/sub/Solver.dec | 234 +++++++++++ .../pack/tests/basics/sub/flo.dec | 9 + .../pack/tests/basics/sub/med.dec | 10 + .../pack/tests/bench/Calc.dec | 277 +++++++++++++ .../pack/tests/reflects/annot/anno.dec | 11 + .../pack/tests/reflects/annot/annoe.dec | 248 ++++++++++++ .../pack/tests/reflects/annot/annot.dec | 217 ++++++++++ .../pack/tests/reflects/counter/Count.dec | 248 ++++++++++++ .../pack/tests/reflects/counter/Countee.dec | 21 + .../pack/tests/reflects/field/FObject.dec | 14 + .../pack/tests/reflects/field/FTest.dec | 255 ++++++++++++ .../pack/tests/reflects/loader/LRun.dec | 250 ++++++++++++ .../pack/tests/reflects/loader/LTest.dec | 214 ++++++++++ .../pack/tests/reflects/loader/Loader.dec | 261 ++++++++++++ .../pack/tests/reflects/res/Accesor.dec | 237 +++++++++++ .../pack/tests/reflects/retrace/Tracee.dec | 18 + .../pack/tests/reflects/retrace/Tracer.dec | 237 +++++++++++ .../pack/tests/security/SecExec.dec | 9 + .../pack/tests/security/SecTest.dec | 258 ++++++++++++ .../pack/tests/security/Sman.dec | 232 +++++++++++ .../pack/tests/reflects/loader/Loader.dec | 20 +- .../pack/tests/reflects/res/Accesor.dec | 24 +- .../branchlock-string/pack/Main.dec | 204 ++++++++++ .../pack/tests/basics/accu/Digi.dec | 233 +++++++++++ .../pack/tests/basics/cross/Top.dec | 229 +++++++++++ .../pack/tests/basics/ctrl/Ctrl.dec | 205 ++++++++++ .../pack/tests/basics/inner/Test.dec | 215 ++++++++++ .../pack/tests/basics/overwirte/Sub.dec | 228 +++++++++++ .../pack/tests/basics/overwirte/Super.dec | 214 ++++++++++ .../pack/tests/basics/runable/Task.dec | 225 +++++++++++ .../pack/tests/basics/sub/Solver.dec | 228 +++++++++++ .../pack/tests/bench/Calc.dec | 221 +++++++++++ .../pack/tests/reflects/annot/annoe.dec | 221 +++++++++++ .../pack/tests/reflects/annot/annot.dec | 205 ++++++++++ .../pack/tests/reflects/counter/Count.dec | 225 +++++++++++ .../pack/tests/reflects/field/FTest.dec | 225 +++++++++++ .../pack/tests/reflects/loader/LRun.dec | 231 +++++++++++ .../pack/tests/reflects/loader/LTest.dec | 211 ++++++++++ .../pack/tests/reflects/loader/Loader.dec | 236 +++++++++++ .../pack/tests/reflects/res/Accesor.dec | 233 +++++++++++ .../pack/tests/reflects/retrace/Tracer.dec | 216 ++++++++++ .../pack/tests/security/SecTest.dec | 222 +++++++++++ .../pack/tests/security/Sman.dec | 211 ++++++++++ .../branchlock/flow/flow 9/pack/Clazz.dec | 4 + .../branchlock/flow/flow 9/pack/Main.dec | 157 ++++++++ .../flow 9/pack/tests/basics/accu/Digi.dec | 24 ++ .../flow 9/pack/tests/basics/cross/Abst1.dec | 9 + .../flow 9/pack/tests/basics/cross/Inte.dec | 5 + .../flow 9/pack/tests/basics/cross/Top.dec | 16 + .../flow 9/pack/tests/basics/ctrl/Ctrl.dec | 26 ++ .../flow 9/pack/tests/basics/inner/Exec.dec | 22 ++ .../flow 9/pack/tests/basics/inner/Test.dec | 16 + .../pack/tests/basics/overwirte/Face.dec | 5 + .../pack/tests/basics/overwirte/Sub.dec | 13 + .../pack/tests/basics/overwirte/Super.dec | 7 + .../flow 9/pack/tests/basics/runable/Exec.dec | 15 + .../flow 9/pack/tests/basics/runable/Pool.dec | 45 +++ .../flow 9/pack/tests/basics/runable/Task.dec | 42 ++ .../flow 9/pack/tests/basics/sub/SolAdd.dec | 7 + .../flow 9/pack/tests/basics/sub/Solver.dec | 11 + .../flow/flow 9/pack/tests/basics/sub/flo.dec | 7 + .../flow/flow 9/pack/tests/basics/sub/med.dec | 9 + .../flow/flow 9/pack/tests/bench/Calc.dec | 48 +++ .../flow 9/pack/tests/reflects/annot/anno.dec | 11 + .../pack/tests/reflects/annot/annoe.dec | 32 ++ .../pack/tests/reflects/annot/annot.dec | 27 ++ .../pack/tests/reflects/counter/Count.dec | 14 + .../pack/tests/reflects/counter/Countee.dec | 21 + .../pack/tests/reflects/field/FObject.dec | 13 + .../pack/tests/reflects/field/FTest.dec | 35 ++ .../pack/tests/reflects/loader/LRun.dec | 10 + .../pack/tests/reflects/loader/LTest.dec | 23 ++ .../pack/tests/reflects/loader/Loader.dec | 30 ++ .../pack/tests/reflects/res/Accesor.dec | 9 + .../pack/tests/reflects/retrace/Tracee.dec | 17 + .../pack/tests/reflects/retrace/Tracer.dec | 14 + .../flow 9/pack/tests/security/SecExec.dec | 7 + .../flow 9/pack/tests/security/SecTest.dec | 35 ++ .../flow/flow 9/pack/tests/security/Sman.dec | 12 + 95 files changed, 10842 insertions(+), 28 deletions(-) create mode 100644 testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/Clazz.dec create mode 100644 testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/Main.dec create mode 100644 testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/accu/Digi.dec create mode 100644 testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/cross/Abst1.dec create mode 100644 testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/cross/Inte.dec create mode 100644 testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/cross/Top.dec create mode 100644 testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/ctrl/Ctrl.dec create mode 100644 testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/inner/Exec.dec create mode 100644 testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/inner/Test.dec create mode 100644 testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/overwirte/Face.dec create mode 100644 testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/overwirte/Sub.dec create mode 100644 testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/overwirte/Super.dec create mode 100644 testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/runable/Exec.dec create mode 100644 testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/runable/Pool.dec create mode 100644 testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/runable/Task.dec create mode 100644 testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/sub/SolAdd.dec create mode 100644 testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/sub/Solver.dec create mode 100644 testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/sub/flo.dec create mode 100644 testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/sub/med.dec create mode 100644 testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/bench/Calc.dec create mode 100644 testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/annot/anno.dec create mode 100644 testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/annot/annoe.dec create mode 100644 testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/annot/annot.dec create mode 100644 testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/counter/Count.dec create mode 100644 testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/counter/Countee.dec create mode 100644 testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/field/FObject.dec create mode 100644 testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/field/FTest.dec create mode 100644 testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/loader/LRun.dec create mode 100644 testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/loader/LTest.dec create mode 100644 testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/loader/Loader.dec create mode 100644 testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/res/Accesor.dec create mode 100644 testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/retrace/Tracee.dec create mode 100644 testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/retrace/Tracer.dec create mode 100644 testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/security/SecExec.dec create mode 100644 testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/security/SecTest.dec create mode 100644 testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/security/Sman.dec create mode 100644 testData/results/custom-jars/branchlock/flow/flow 9/pack/Clazz.dec create mode 100644 testData/results/custom-jars/branchlock/flow/flow 9/pack/Main.dec create mode 100644 testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/accu/Digi.dec create mode 100644 testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/cross/Abst1.dec create mode 100644 testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/cross/Inte.dec create mode 100644 testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/cross/Top.dec create mode 100644 testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/ctrl/Ctrl.dec create mode 100644 testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/inner/Exec.dec create mode 100644 testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/inner/Test.dec create mode 100644 testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/overwirte/Face.dec create mode 100644 testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/overwirte/Sub.dec create mode 100644 testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/overwirte/Super.dec create mode 100644 testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/runable/Exec.dec create mode 100644 testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/runable/Pool.dec create mode 100644 testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/runable/Task.dec create mode 100644 testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/sub/SolAdd.dec create mode 100644 testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/sub/Solver.dec create mode 100644 testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/sub/flo.dec create mode 100644 testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/sub/med.dec create mode 100644 testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/bench/Calc.dec create mode 100644 testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/annot/anno.dec create mode 100644 testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/annot/annoe.dec create mode 100644 testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/annot/annot.dec create mode 100644 testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/counter/Count.dec create mode 100644 testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/counter/Countee.dec create mode 100644 testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/field/FObject.dec create mode 100644 testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/field/FTest.dec create mode 100644 testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/loader/LRun.dec create mode 100644 testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/loader/LTest.dec create mode 100644 testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/loader/Loader.dec create mode 100644 testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/res/Accesor.dec create mode 100644 testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/retrace/Tracee.dec create mode 100644 testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/retrace/Tracer.dec create mode 100644 testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/security/SecExec.dec create mode 100644 testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/security/SecTest.dec create mode 100644 testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/security/Sman.dec diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/Clazz.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/Clazz.dec new file mode 100644 index 00000000..9780dc33 --- /dev/null +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/Clazz.dec @@ -0,0 +1,5 @@ +package pack; + +public class Clazz { + public int BRANCHLOCK_DOT_NET_DEMO; +} diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/Main.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/Main.dec new file mode 100644 index 00000000..ee51de77 --- /dev/null +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/Main.dec @@ -0,0 +1,370 @@ +package pack; + +import java.io.File; +import pack.tests.basics.accu.Digi; +import pack.tests.basics.ctrl.Ctrl; +import pack.tests.basics.inner.Test; +import pack.tests.basics.overwirte.Sub; +import pack.tests.basics.runable.Task; +import pack.tests.basics.sub.Solver; +import pack.tests.bench.Calc; +import pack.tests.reflects.annot.annot; +import pack.tests.reflects.counter.Count; +import pack.tests.reflects.field.FTest; +import pack.tests.reflects.loader.LRun; +import pack.tests.reflects.res.Accesor; +import pack.tests.reflects.retrace.Tracer; +import pack.tests.security.SecTest; + +public class Main { + public int BRANCHLOCK_DOT_NET_DEMO; + + public static void main(String[] var0) { + System.out + .println( + "-----------------------------------------------------------------------------------------\n| This java application has been obfuscated using a demo version of Branchlock 4. |\n| Did you know that anyone can read the source code of your exported java software? |\n| For more information about how to protect your projects, visit https://branchlock.net |\n-----------------------------------------------------------------------------------------\n" + ); + System.out.println("Obfuscator Test Program"); + System.out.println("Author: huzpsb"); + System.out.println("Version: 1.0r"); + System.out.println("Link: https://github.com/huzpsb/JavaObfuscatorTest"); + File var1 = new File("IK"); + if (!var1.exists()) { + var1.createNewFile(); + System.out.println(); + System.out.println("[HINT]"); + System.out.println("Only compatibility and efficiency are tested here!"); + System.out.println("For most users, pass all of the basics means the obfuscator is good enough."); + System.out.println("The Test #2 is for SpringBoot and Android like environment."); + System.out.println("Choose wisely among strength, compatibility, efficiency, size, and price."); + System.out.println("[HINT]"); + System.out.println(); + } + + System.out.println("-------------Test #1: Basics-------------"); + System.out.print("Test 1.1: Inheritance "); + + try { + new Sub().run(); + } catch (Throwable var15) { + System.out.println("ERROR"); + } + + System.out.print("Test 1.2: Cross "); + + try { + new Sub().run(); + } catch (Throwable var14) { + System.out.println("ERROR"); + } + + System.out.print("Test 1.3: Throw "); + + try { + new Ctrl().run(); + } catch (Throwable var13) { + System.out.println("ERROR"); + } + + System.out.print("Test 1.4: Accuracy "); + + try { + new Digi().run(); + } catch (Throwable var12) { + System.out.println("ERROR"); + } + + System.out.print("Test 1.5: SubClass "); + + try { + new Solver(); + } catch (Throwable var11) { + System.out.println("ERROR"); + } + + System.out.print("Test 1.6: Pool "); + + try { + new Task().run(); + } catch (Throwable var10) { + System.out.println("ERROR"); + } + + System.out.print("Test 1.7: InnerClass "); + + try { + new Test().run(); + } catch (Throwable var9) { + System.out.println("ERROR"); + } + + System.out.println("-------------Test #2: Reflects-------------"); + System.out.print("Test 2.1: Counter "); + + try { + new Count().run(); + } catch (Throwable var8) { + System.out.println("ERROR"); + } + + System.out.print("Test 2.2: Chinese 通过LMAO\b\b\b\b \n"); + System.out.print("Test 2.3: Resource "); + + try { + new Accesor().run(); + } catch (Throwable var7) { + System.out.println("ERROR"); + } + + System.out.print("Test 2.4: Field "); + + try { + new FTest().run(); + } catch (Throwable var6) { + System.out.println("ERROR"); + } + + System.out.print("Test 2.5: Loader "); + + try { + new LRun().run(); + } catch (Throwable var5) { + System.out.println("ERROR"); + } + + System.out.print("Test 2.6: ReTrace "); + + try { + new Tracer().run(); + } catch (Throwable var4) { + System.out.println("ERROR"); + } + + System.out.print("Test 2.7: Annotation "); + + try { + new annot().run(); + } catch (Throwable var3) { + System.out.println("ERROR"); + } + + System.out.print("Test 2.8: Sec "); + + try { + new SecTest().run(); + } catch (Throwable var2) { + System.out.println("ERROR"); + } + + System.out.println("-------------Test #3: Efficiency-------------"); + Calc.runAll(); + System.out.println("-------------Tests r Finished-------------"); + } + + static { + // $VF: Couldn't be decompiled + // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) + // java.lang.RuntimeException: parsing failure! + // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) + // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) + // + // Bytecode: + // 000: ldc "Aຒ\ufff9\uffc8\u001c\u001bヘ]\n\u001cラヘ\ufffe\n\fヘຽpA\uffde\uffd9ヘ]A゚U\u0004gᅤᅣᅢ\n\u001c\uffc8O逾迣£¢↓ gᆬA,\u0004ヘヘヘe໗→\u0000V\u0004\uffc0ᅡ\uffde\u001bO\uffd8\u001cAV\uffdeチヘ\u001f\u000e\uffde\u001c\u0004E\uffc1\uffc1\u0006\u0000\tヘ\u001bLAヘᅬᅩ\u001c\u0006ᅫ\u001c\u0004I\uffc8ᅩᅢ\u001cO\uffd9\u0007A\u0004ᅡᅬᅨ\u001a\u001cᅫ\u000ePK\uffdfヘᅣ\u001cOᅧ\u0000K@ヘ\uffc8ᅢ\u0000\u001aᅧ\u0007\nຶタタタBBタB\t\tタタタB;\uffc8\u001cPWヘ\uffdfヘ)\u0006ᅢ\u0006WL\uffc8\uffc9タBBタB\t\tタタタBBタຮkJ\uffc1ᅯヘ\f\u0000\uffc0\u001fEPᅣᅬᅣ\u0003\u0006\uffd9\u0016\u0004Eᅢ\uffc9ヘ\n\tᅨ\u0006GM\uffc8ᅢᅫ\u0016Oᅩ\u001dA\u0004\uffd9\uffc8\uffde\u001b\n\uffc9OLA\uffdf\uffc8フຒ.\uffd8\u001bLK\uffdfラヘ\u0007\u001aᅲ\u001fWFຉ\ufff9\uffc8\u001c\u001bヘ]\n\u0013ラヘ↓\u0001\u0001ᅡ\u001bEPᅣᅡᅢOຌ\ufff9\nWPヘワテ\\Uヘ;LVᅡᅳヘຎ;\uffc8\u001cP\u0004゚テロUO\uffff\npVᅩᅫ\uffc8Oຏ\ufff9\nWPペテ\\Uヘ=gWᅡ\uffd8\uffdf\f\nヘພmoືタタBBタB\t\tタタタBB\ufff9\nWPヘポUO\uffff\nBH\uffc8ᅫ\uffd9\u001cBタB\t\tタタタBBタB\tຑ\ufffb\uffc8\uffdf\u001c\u0006ᅡ\u0001\u001e\u0004ワテン\u001dີタB\t\tタタタBBタB\t\t\ufff9\uffc8\uffde\u001bOホ^\u001e\u0004\uffefᅩ\uffdeヘ\f\uffdeB\t\tタタタBBタB\t\tタນ│==¬=ປ\u0010レᅤ\uffc8\bYワຌpA\uffde\uffd9ヘ]AルU\u0004bᅣ\uffc8\uffc1\u000bOຊ;AW\uffd9ヘワA^ラOmJᅤ\uffc8\uffdf\u0006\u001bᅩ\u0001GAヘຎ\ufff9\n\u001c\uffd9O\u0016\nワラヘ,\u0000\uffd8\u0001P\u0e7e\uffdfヘຌ;\n\uffde\u001b\u0004\u0015テ゚ラO,\uffdf\u0000WWヘວ\ufff9\u0007\nヘ;AW\uffd9ヘホ]Oᅣ\u001c\u0004Bᅡ\uffdfヘ<\u001f\uffdf\u0006JC\uffefᅡᅡ\u001bOᅩ\u0001@\u0004↓ᅢ\uffc9\u001d\u0000ᅣ\u000b\u0004Hᅣᅥ\uffc8O\nᅢ\u0019MVᅡᅢ\uffc0\n\u0001\uffd9A໕gᅤᅡᅡ\u001c\nヘ\u0018MW\uffc8\uffc1ᅯO\u000e\uffc0\u0000JCヘ\uffde\uffd9\u001d\nᅢ\bPLチヘᅫ\u0000\u0002\uffdd\u000ePMᅬᅣ\uffc1\u0006\u001bᅯC\u0004Aᅨᅨᅣ\f\u0006\uffc8\u0001G]チヘ\uffde\u0006\u0015\uffc8C\u0004Eᅢ\uffc9ヘ\u001f\u001dᅣ\fA\nຍ\ufff9\uffc8\u001c\u001bヘ]\n\u0011ラヘ£\u0000\u000e\uffc9\nV\u0004ຏ\ufff9\uffc8\u001c\u001bヘ^\n\u0010ラヘ↓\f\f\uffd8\u001dEGᅯヘຓ;\n\uffde\u001b\u0004\u0015テロラO?ᅡ\u0000H\u0004ຏ\ufff9\uffc8\u001c\u001bヘ^\n\u0011ラヘ\ufffe\u001a\r○\u0003EW\uffdeヘ\u0e8b \rᅨ\u001aWGᅩ\uffd9ᅡ\u001dO\ufff9\nWPヘ�\uffdf\u0000\b\uffdf\u000eIຉ\ufff9\uffc8\uffde\u001bOワA\u0013\u001eヘ¦ᅢ\u0001\n\uffdf,HE\uffde\uffdeヘັBタB\t\tタタタBBタB\tp\uffc8\uffde\uffd9OL゙U\u0004aᅨᅨᅣ\f\u0006\uffc8\u0001G]タタタBBタB\t\tタタタBບ\ufff6'mj\ufff9\ufff0" + // 002: invokevirtual java/lang/String.toCharArray ()[C + // 005: astore 0 + // 006: bipush 0 + // 007: istore 1 + // 008: aload 0 + // 009: dup + // 00a: bipush 75 + // 00c: swap + // 00d: sipush 400 + // 010: caload + // 011: aload 0 + // 012: dup + // 013: sipush 400 + // 016: swap + // 017: bipush 75 + // 019: caload + // 01a: castore + // 01b: castore + // 01c: aload 0 + // 01d: dup + // 01e: bipush 43 + // 020: swap + // 021: sipush 305 + // 024: caload + // 025: aload 0 + // 026: dup + // 027: sipush 305 + // 02a: swap + // 02b: bipush 43 + // 02d: caload + // 02e: castore + // 02f: castore + // 030: aload 0 + // 031: dup + // 032: sipush 486 + // 035: swap + // 036: bipush 0 + // 037: caload + // 038: aload 0 + // 039: dup + // 03a: bipush 0 + // 03b: swap + // 03c: sipush 486 + // 03f: caload + // 040: castore + // 041: castore + // 042: aload 0 + // 043: dup + // 044: sipush 184 + // 047: swap + // 048: sipush 1044 + // 04b: caload + // 04c: aload 0 + // 04d: dup + // 04e: sipush 1044 + // 051: swap + // 052: sipush 184 + // 055: caload + // 056: castore + // 057: castore + // 058: aload 0 + // 059: dup + // 05a: sipush 484 + // 05d: swap + // 05e: sipush 628 + // 061: caload + // 062: aload 0 + // 063: dup + // 064: sipush 628 + // 067: swap + // 068: sipush 484 + // 06b: caload + // 06c: castore + // 06d: castore + // 06e: goto 14d + // 071: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; + // 074: bipush 0 + // 075: aaload + // 076: astore 4 + // 078: aload 4 + // 07a: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; + // 07d: invokevirtual java/lang/String.hashCode ()I + // 080: ldc 65535 + // 082: iand + // 083: istore 5 + // 085: aload 4 + // 087: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; + // 08a: invokevirtual java/lang/String.toCharArray ()[C + // 08d: astore 6 + // 08f: aload 0 + // 090: iload 1 + // 091: iinc 1 1 + // 094: caload + // 095: sipush 201 + // 098: ixor + // 099: iload 5 + // 09b: ixor + // 09c: anewarray 167 + // 09f: astore 7 + // 0a1: bipush 0 + // 0a2: istore 8 + // 0a4: aload 0 + // 0a5: iload 1 + // 0a6: iinc 1 1 + // 0a9: caload + // 0aa: bipush 53 + // 0ac: ixor + // 0ad: iload 5 + // 0af: ixor + // 0b0: istore 2 + // 0b1: iload 2 + // 0b2: newarray 5 + // 0b4: astore 9 + // 0b6: bipush 0 + // 0b7: istore 10 + // 0b9: iload 2 + // 0ba: ifle 12e + // 0bd: aload 0 + // 0be: iload 1 + // 0bf: caload + // 0c0: istore 11 + // 0c2: aload 6 + // 0c4: iload 1 + // 0c5: aload 6 + // 0c7: arraylength + // 0c8: irem + // 0c9: caload + // 0ca: sipush 139 + // 0cd: ixor + // 0ce: lookupswitch 74 8 165 156 198 175 224 130 226 143 229 162 232 181 234 187 251 193 + // 118: aload 9 + // 11a: iload 10 + // 11c: iload 11 + // 11e: castore + // 11f: iinc 10 1 + // 122: iinc 1 1 + // 125: iinc 2 -1 + // 128: bipush 0 + // 129: istore 12 + // 12b: goto 199 + // 12e: aload 7 + // 130: iload 8 + // 132: iinc 8 1 + // 135: new java/lang/String + // 138: dup + // 139: aload 9 + // 13b: invokespecial java/lang/String. ([C)V + // 13e: invokevirtual java/lang/String.intern ()Ljava/lang/String; + // 141: aastore + // 142: iload 1 + // 143: aload 0 + // 144: arraylength + // 145: if_icmplt 0a4 + // 148: aload 7 + // 14a: putstatic pack/Main.d [Ljava/lang/String; + // 14d: goto 1c4 + // 150: iload 11 + // 152: bipush -83 + // 154: ixor + // 155: istore 11 + // 157: bipush 1 + // 158: istore 12 + // 15a: goto 199 + // 15d: iload 11 + // 15f: bipush 111 + // 161: ixor + // 162: istore 11 + // 164: bipush 1 + // 165: istore 12 + // 167: goto 199 + // 16a: bipush 2 + // 16b: istore 12 + // 16d: goto 199 + // 170: iload 11 + // 172: bipush 36 + // 174: ixor + // 175: istore 11 + // 177: bipush 1 + // 178: istore 12 + // 17a: goto 199 + // 17d: bipush 3 + // 17e: istore 12 + // 180: goto 199 + // 183: bipush 4 + // 184: istore 12 + // 186: goto 199 + // 189: bipush 5 + // 18a: istore 12 + // 18c: goto 199 + // 18f: bipush 6 + // 191: istore 12 + // 193: goto 199 + // 196: goto 071 + // 199: iload 12 + // 19b: tableswitch -24 0 6 -226 -131 -62 -49 -75 -24 -43 + // 1c4: return + } +} diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/accu/Digi.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/accu/Digi.dec new file mode 100644 index 00000000..d0a8f8d9 --- /dev/null +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/accu/Digi.dec @@ -0,0 +1,246 @@ +package pack.tests.basics.accu; + +public class Digi { + public String BRANCHLOCK_DOT_NET_DEMO; + + public void run() { + double var1 = 0.0; + int var3 = 0; + + do { + var1 += 1.0E-18; + } while (++var3 <= 100 && (float)var1 != 2.0E-17F); + + if (var3 == 20) { + System.out.println("PASS"); + } else { + System.out.println("FAIL"); + } + } + + static { + // $VF: Couldn't be decompiled + // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) + // java.lang.RuntimeException: parsing failure! + // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) + // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) + // + // Bytecode: + // 000: ldc "ト\u0e5fト\uffc1フ¬ネリᅮ\u0e5e\u0e7aᄆ\uffc0ムノ\uffde๚ᅵ\uffddチ\u0e5dᄄᆵᄃᄇ\u0e5dᆴ\uffbf¬ヒ" + // 002: invokevirtual java/lang/String.toCharArray ()[C + // 005: astore 0 + // 006: bipush 0 + // 007: istore 1 + // 008: aload 0 + // 009: dup + // 00a: bipush 29 + // 00c: swap + // 00d: bipush 5 + // 00e: caload + // 00f: aload 0 + // 010: dup + // 011: bipush 5 + // 012: swap + // 013: bipush 29 + // 015: caload + // 016: castore + // 017: castore + // 018: aload 0 + // 019: dup + // 01a: bipush 9 + // 01c: swap + // 01d: bipush 8 + // 01f: caload + // 020: aload 0 + // 021: dup + // 022: bipush 8 + // 024: swap + // 025: bipush 9 + // 027: caload + // 028: castore + // 029: castore + // 02a: aload 0 + // 02b: dup + // 02c: bipush 10 + // 02e: swap + // 02f: bipush 0 + // 030: caload + // 031: aload 0 + // 032: dup + // 033: bipush 0 + // 034: swap + // 035: bipush 10 + // 037: caload + // 038: castore + // 039: castore + // 03a: aload 0 + // 03b: dup + // 03c: bipush 8 + // 03e: swap + // 03f: bipush 47 + // 041: caload + // 042: aload 0 + // 043: dup + // 044: bipush 47 + // 046: swap + // 047: bipush 8 + // 049: caload + // 04a: castore + // 04b: castore + // 04c: aload 0 + // 04d: dup + // 04e: bipush 10 + // 050: swap + // 051: bipush 20 + // 053: caload + // 054: aload 0 + // 055: dup + // 056: bipush 20 + // 058: swap + // 059: bipush 10 + // 05b: caload + // 05c: castore + // 05d: castore + // 05e: goto 165 + // 061: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; + // 064: bipush 0 + // 065: aaload + // 066: astore 4 + // 068: aload 4 + // 06a: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; + // 06d: invokevirtual java/lang/String.hashCode ()I + // 070: ldc 65535 + // 072: iand + // 073: istore 5 + // 075: aload 4 + // 077: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; + // 07a: invokevirtual java/lang/String.toCharArray ()[C + // 07d: astore 6 + // 07f: aload 0 + // 080: iload 1 + // 081: iinc 1 1 + // 084: caload + // 085: sipush 214 + // 088: ixor + // 089: iload 5 + // 08b: ixor + // 08c: anewarray 35 + // 08f: astore 7 + // 091: bipush 0 + // 092: istore 8 + // 094: aload 0 + // 095: iload 1 + // 096: iinc 1 1 + // 099: caload + // 09a: sipush 240 + // 09d: ixor + // 09e: iload 5 + // 0a0: ixor + // 0a1: istore 2 + // 0a2: iload 2 + // 0a3: newarray 5 + // 0a5: astore 9 + // 0a7: bipush 0 + // 0a8: istore 10 + // 0aa: iload 2 + // 0ab: ifle 146 + // 0ae: aload 0 + // 0af: iload 1 + // 0b0: caload + // 0b1: istore 11 + // 0b3: aload 6 + // 0b5: iload 1 + // 0b6: aload 6 + // 0b8: arraylength + // 0b9: irem + // 0ba: caload + // 0bb: sipush 193 + // 0be: ixor + // 0bf: lookupswitch 113 13 133 214 160 169 162 182 163 188 164 201 166 220 168 226 170 239 177 252 178 259 180 266 181 273 239 245 + // 130: aload 9 + // 132: iload 10 + // 134: iload 11 + // 136: castore + // 137: iinc 10 1 + // 13a: iinc 1 1 + // 13d: iinc 2 -1 + // 140: bipush 0 + // 141: istore 12 + // 143: goto 1da + // 146: aload 7 + // 148: iload 8 + // 14a: iinc 8 1 + // 14d: new java/lang/String + // 150: dup + // 151: aload 9 + // 153: invokespecial java/lang/String. ([C)V + // 156: invokevirtual java/lang/String.intern ()Ljava/lang/String; + // 159: aastore + // 15a: iload 1 + // 15b: aload 0 + // 15c: arraylength + // 15d: if_icmplt 094 + // 160: aload 7 + // 162: putstatic pack/tests/basics/accu/Digi.d [Ljava/lang/String; + // 165: goto 218 + // 168: iload 11 + // 16a: bipush -79 + // 16c: ixor + // 16d: istore 11 + // 16f: bipush 1 + // 170: istore 12 + // 172: goto 1da + // 175: bipush 2 + // 176: istore 12 + // 178: goto 1da + // 17b: iload 11 + // 17d: bipush -44 + // 17f: ixor + // 180: istore 11 + // 182: bipush 1 + // 183: istore 12 + // 185: goto 1da + // 188: iload 11 + // 18a: bipush -18 + // 18c: ixor + // 18d: istore 11 + // 18f: bipush 1 + // 190: istore 12 + // 192: goto 1da + // 195: bipush 3 + // 196: istore 12 + // 198: goto 1da + // 19b: bipush 4 + // 19c: istore 12 + // 19e: goto 1da + // 1a1: iload 11 + // 1a3: bipush -2 + // 1a5: ixor + // 1a6: istore 11 + // 1a8: bipush 1 + // 1a9: istore 12 + // 1ab: goto 1da + // 1ae: bipush 5 + // 1af: istore 12 + // 1b1: goto 1da + // 1b4: bipush 6 + // 1b6: istore 12 + // 1b8: goto 1da + // 1bb: bipush 7 + // 1bd: istore 12 + // 1bf: goto 1da + // 1c2: bipush 8 + // 1c4: istore 12 + // 1c6: goto 1da + // 1c9: bipush 9 + // 1cb: istore 12 + // 1cd: goto 1da + // 1d0: bipush 10 + // 1d2: istore 12 + // 1d4: goto 1da + // 1d7: goto 061 + // 1da: iload 12 + // 1dc: tableswitch -71 0 10 -306 -172 -116 -84 -71 -103 -65 -59 -33 -40 -19 + // 218: return + } +} diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/cross/Abst1.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/cross/Abst1.dec new file mode 100644 index 00000000..8fb0af89 --- /dev/null +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/cross/Abst1.dec @@ -0,0 +1,11 @@ +package pack.tests.basics.cross; + +public abstract class Abst1 { + public int BRANCHLOCK_DOT_NET_DEMO; + + public abstract int add(int var1, int var2); + + public int mul(int var1, int var2) { + return var1 * var2; + } +} diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/cross/Inte.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/cross/Inte.dec new file mode 100644 index 00000000..da16cc4b --- /dev/null +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/cross/Inte.dec @@ -0,0 +1,5 @@ +package pack.tests.basics.cross; + +public interface Inte { + int mul(int var1, int var2); +} diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/cross/Top.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/cross/Top.dec new file mode 100644 index 00000000..0772d4cc --- /dev/null +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/cross/Top.dec @@ -0,0 +1,230 @@ +package pack.tests.basics.cross; + +public class Top extends Abst1 implements Inte { + public int BRANCHLOCK_DOT_NET_DEMO; + + public void run() { + if (this.add(1, 2) == 3 && this.mul(2, 3) == 6) { + System.out.println("PASS"); + } else { + System.out.println("FAIL"); + } + } + + @Override + public int add(int var1, int var2) { + return var1 + var2; + } + + static { + // $VF: Couldn't be decompiled + // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) + // java.lang.RuntimeException: parsing failure! + // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) + // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) + // + // Bytecode: + // 000: ldc ">๘າᄒ๘ナ_1ラ'@" + // 002: invokevirtual java/lang/String.toCharArray ()[C + // 005: astore 0 + // 006: bipush 0 + // 007: istore 1 + // 008: aload 0 + // 009: dup + // 00a: bipush 6 + // 00c: swap + // 00d: bipush 4 + // 00e: caload + // 00f: aload 0 + // 010: dup + // 011: bipush 4 + // 012: swap + // 013: bipush 6 + // 015: caload + // 016: castore + // 017: castore + // 018: aload 0 + // 019: dup + // 01a: bipush 9 + // 01c: swap + // 01d: bipush 2 + // 01e: caload + // 01f: aload 0 + // 020: dup + // 021: bipush 2 + // 022: swap + // 023: bipush 9 + // 025: caload + // 026: castore + // 027: castore + // 028: aload 0 + // 029: dup + // 02a: bipush 9 + // 02c: swap + // 02d: bipush 0 + // 02e: caload + // 02f: aload 0 + // 030: dup + // 031: bipush 0 + // 032: swap + // 033: bipush 9 + // 035: caload + // 036: castore + // 037: castore + // 038: aload 0 + // 039: dup + // 03a: bipush 3 + // 03b: swap + // 03c: bipush 21 + // 03e: caload + // 03f: aload 0 + // 040: dup + // 041: bipush 21 + // 043: swap + // 044: bipush 3 + // 045: caload + // 046: castore + // 047: castore + // 048: goto 14d + // 04b: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; + // 04e: bipush 0 + // 04f: aaload + // 050: astore 4 + // 052: aload 4 + // 054: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; + // 057: invokevirtual java/lang/String.hashCode ()I + // 05a: ldc 65535 + // 05c: iand + // 05d: istore 5 + // 05f: aload 4 + // 061: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; + // 064: invokevirtual java/lang/String.toCharArray ()[C + // 067: astore 6 + // 069: aload 0 + // 06a: iload 1 + // 06b: iinc 1 1 + // 06e: caload + // 06f: bipush 25 + // 071: ixor + // 072: iload 5 + // 074: ixor + // 075: anewarray 41 + // 078: astore 7 + // 07a: bipush 0 + // 07b: istore 8 + // 07d: aload 0 + // 07e: iload 1 + // 07f: iinc 1 1 + // 082: caload + // 083: sipush 245 + // 086: ixor + // 087: iload 5 + // 089: ixor + // 08a: istore 2 + // 08b: iload 2 + // 08c: newarray 5 + // 08e: astore 9 + // 090: bipush 0 + // 091: istore 10 + // 093: iload 2 + // 094: ifle 12e + // 097: aload 0 + // 098: iload 1 + // 099: caload + // 09a: istore 11 + // 09c: aload 6 + // 09e: iload 1 + // 09f: aload 6 + // 0a1: arraylength + // 0a2: irem + // 0a3: caload + // 0a4: bipush 50 + // 0a6: ixor + // 0a7: lookupswitch 113 13 28 265 64 169 65 181 66 194 70 207 80 219 81 232 83 238 87 244 89 251 91 258 93 272 102 213 + // 118: aload 9 + // 11a: iload 10 + // 11c: iload 11 + // 11e: castore + // 11f: iinc 10 1 + // 122: iinc 1 1 + // 125: iinc 2 -1 + // 128: bipush 0 + // 129: istore 12 + // 12b: goto 1c1 + // 12e: aload 7 + // 130: iload 8 + // 132: iinc 8 1 + // 135: new java/lang/String + // 138: dup + // 139: aload 9 + // 13b: invokespecial java/lang/String. ([C)V + // 13e: invokevirtual java/lang/String.intern ()Ljava/lang/String; + // 141: aastore + // 142: iload 1 + // 143: aload 0 + // 144: arraylength + // 145: if_icmplt 07d + // 148: aload 7 + // 14a: putstatic pack/tests/basics/cross/Top.d [Ljava/lang/String; + // 14d: goto 1fc + // 150: iload 11 + // 152: bipush -1 + // 153: ixor + // 154: istore 11 + // 156: bipush 1 + // 157: istore 12 + // 159: goto 1c1 + // 15c: iload 11 + // 15e: bipush 119 + // 160: ixor + // 161: istore 11 + // 163: bipush 1 + // 164: istore 12 + // 166: goto 1c1 + // 169: iload 11 + // 16b: bipush -42 + // 16d: ixor + // 16e: istore 11 + // 170: bipush 1 + // 171: istore 12 + // 173: goto 1c1 + // 176: bipush 2 + // 177: istore 12 + // 179: goto 1c1 + // 17c: bipush 3 + // 17d: istore 12 + // 17f: goto 1c1 + // 182: iload 11 + // 184: bipush 12 + // 186: ixor + // 187: istore 11 + // 189: bipush 1 + // 18a: istore 12 + // 18c: goto 1c1 + // 18f: bipush 4 + // 190: istore 12 + // 192: goto 1c1 + // 195: bipush 5 + // 196: istore 12 + // 198: goto 1c1 + // 19b: bipush 6 + // 19d: istore 12 + // 19f: goto 1c1 + // 1a2: bipush 7 + // 1a4: istore 12 + // 1a6: goto 1c1 + // 1a9: bipush 8 + // 1ab: istore 12 + // 1ad: goto 1c1 + // 1b0: bipush 9 + // 1b2: istore 12 + // 1b4: goto 1c1 + // 1b7: bipush 10 + // 1b9: istore 12 + // 1bb: goto 1c1 + // 1be: goto 04b + // 1c1: iload 12 + // 1c3: tableswitch -40 0 10 -304 -171 -90 -103 -71 -77 -46 -115 -40 -65 -19 + // 1fc: return + } +} diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/ctrl/Ctrl.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/ctrl/Ctrl.dec new file mode 100644 index 00000000..a7b29334 --- /dev/null +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/ctrl/Ctrl.dec @@ -0,0 +1,239 @@ +package pack.tests.basics.ctrl; + +public class Ctrl { + private String ret = "FAIL"; + public int BRANCHLOCK_DOT_NET_DEMO; + + public void runt() { + if (!"a".equals("b")) { + throw new UnsupportedOperationException(); + } + } + + public void runf() { + this.runt(); + + try { + this.runt(); + this.ret = "FAIL"; + } catch (Exception var1) { + } + } + + public void run() { + this.runf(); + System.out.println(this.ret); + } + + static { + // $VF: Couldn't be decompiled + // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) + // java.lang.RuntimeException: parsing failure! + // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) + // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) + // + // Bytecode: + // 000: ldc "aอ~ศZi\u0e7aPอ}ศxO]ミ" + // 002: invokevirtual java/lang/String.toCharArray ()[C + // 005: astore 0 + // 006: bipush 0 + // 007: istore 1 + // 008: aload 0 + // 009: dup + // 00a: bipush 13 + // 00c: swap + // 00d: bipush 12 + // 00f: caload + // 010: aload 0 + // 011: dup + // 012: bipush 12 + // 014: swap + // 015: bipush 13 + // 017: caload + // 018: castore + // 019: castore + // 01a: aload 0 + // 01b: dup + // 01c: bipush 6 + // 01e: swap + // 01f: bipush 0 + // 020: caload + // 021: aload 0 + // 022: dup + // 023: bipush 0 + // 024: swap + // 025: bipush 6 + // 027: caload + // 028: castore + // 029: castore + // 02a: aload 0 + // 02b: dup + // 02c: bipush 9 + // 02e: swap + // 02f: bipush 26 + // 031: caload + // 032: aload 0 + // 033: dup + // 034: bipush 26 + // 036: swap + // 037: bipush 9 + // 039: caload + // 03a: castore + // 03b: castore + // 03c: aload 0 + // 03d: dup + // 03e: bipush 0 + // 03f: swap + // 040: bipush 11 + // 042: caload + // 043: aload 0 + // 044: dup + // 045: bipush 11 + // 047: swap + // 048: bipush 0 + // 049: caload + // 04a: castore + // 04b: castore + // 04c: goto 155 + // 04f: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; + // 052: bipush 0 + // 053: aaload + // 054: astore 4 + // 056: aload 4 + // 058: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; + // 05b: invokevirtual java/lang/String.hashCode ()I + // 05e: ldc 65535 + // 060: iand + // 061: istore 5 + // 063: aload 4 + // 065: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; + // 068: invokevirtual java/lang/String.toCharArray ()[C + // 06b: astore 6 + // 06d: aload 0 + // 06e: iload 1 + // 06f: iinc 1 1 + // 072: caload + // 073: sipush 215 + // 076: ixor + // 077: iload 5 + // 079: ixor + // 07a: anewarray 23 + // 07d: astore 7 + // 07f: bipush 0 + // 080: istore 8 + // 082: aload 0 + // 083: iload 1 + // 084: iinc 1 1 + // 087: caload + // 088: sipush 133 + // 08b: ixor + // 08c: iload 5 + // 08e: ixor + // 08f: istore 2 + // 090: iload 2 + // 091: newarray 5 + // 093: astore 9 + // 095: bipush 0 + // 096: istore 10 + // 098: iload 2 + // 099: ifle 136 + // 09c: aload 0 + // 09d: iload 1 + // 09e: caload + // 09f: istore 11 + // 0a1: aload 6 + // 0a3: iload 1 + // 0a4: aload 6 + // 0a6: arraylength + // 0a7: irem + // 0a8: caload + // 0a9: sipush 143 + // 0ac: ixor + // 0ad: lookupswitch 115 13 161 171 204 228 227 184 228 197 230 203 234 216 236 222 237 241 238 247 251 254 252 261 253 268 255 275 + // 120: aload 9 + // 122: iload 10 + // 124: iload 11 + // 126: castore + // 127: iinc 10 1 + // 12a: iinc 1 1 + // 12d: iinc 2 -1 + // 130: bipush 0 + // 131: istore 12 + // 133: goto 1ca + // 136: aload 7 + // 138: iload 8 + // 13a: iinc 8 1 + // 13d: new java/lang/String + // 140: dup + // 141: aload 9 + // 143: invokespecial java/lang/String. ([C)V + // 146: invokevirtual java/lang/String.intern ()Ljava/lang/String; + // 149: aastore + // 14a: iload 1 + // 14b: aload 0 + // 14c: arraylength + // 14d: if_icmplt 082 + // 150: aload 7 + // 152: putstatic pack/tests/basics/ctrl/Ctrl.d [Ljava/lang/String; + // 155: goto 208 + // 158: iload 11 + // 15a: bipush 28 + // 15c: ixor + // 15d: istore 11 + // 15f: bipush 1 + // 160: istore 12 + // 162: goto 1ca + // 165: iload 11 + // 167: bipush 40 + // 169: ixor + // 16a: istore 11 + // 16c: bipush 1 + // 16d: istore 12 + // 16f: goto 1ca + // 172: bipush 2 + // 173: istore 12 + // 175: goto 1ca + // 178: iload 11 + // 17a: bipush -61 + // 17c: ixor + // 17d: istore 11 + // 17f: bipush 1 + // 180: istore 12 + // 182: goto 1ca + // 185: bipush 3 + // 186: istore 12 + // 188: goto 1ca + // 18b: bipush 4 + // 18c: istore 12 + // 18e: goto 1ca + // 191: iload 11 + // 193: bipush 104 + // 195: ixor + // 196: istore 11 + // 198: bipush 1 + // 199: istore 12 + // 19b: goto 1ca + // 19e: bipush 5 + // 19f: istore 12 + // 1a1: goto 1ca + // 1a4: bipush 6 + // 1a6: istore 12 + // 1a8: goto 1ca + // 1ab: bipush 7 + // 1ad: istore 12 + // 1af: goto 1ca + // 1b2: bipush 8 + // 1b4: istore 12 + // 1b6: goto 1ca + // 1b9: bipush 9 + // 1bb: istore 12 + // 1bd: goto 1ca + // 1c0: bipush 10 + // 1c2: istore 12 + // 1c4: goto 1ca + // 1c7: goto 04f + // 1ca: iload 12 + // 1cc: tableswitch -90 0 10 -308 -172 -116 -103 -90 -71 -65 -46 -40 -59 -33 + // 208: return + } +} diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/inner/Exec.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/inner/Exec.dec new file mode 100644 index 00000000..dda458ca --- /dev/null +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/inner/Exec.dec @@ -0,0 +1,26 @@ +package pack.tests.basics.inner; + +public class Exec { + public int fuss = 1; + public int BRANCHLOCK_DOT_NET_DEMO; + + public void addF() { + this.fuss += 2; + } + + public class Inner { + int i; + final Exec this$0; + public int BRANCHLOCK_DOT_NET_DEMO; + + public Inner(Exec var1, int var2) { + this.this$0 = var1; + this.i = var2; + } + + public void doAdd() { + this.this$0.addF(); + this.this$0.fuss = this.this$0.fuss + this.i; + } + } +} diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/inner/Test.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/inner/Test.dec new file mode 100644 index 00000000..6911f9c2 --- /dev/null +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/inner/Test.dec @@ -0,0 +1,244 @@ +package pack.tests.basics.inner; + +public class Test { + public String BRANCHLOCK_DOT_NET_DEMO; + + public void run() { + Exec var1 = new Exec(); + Exec.Inner var2 = var1.new Inner(var1, 3); + var2.doAdd(); + Exec.Inner var3 = var1.new Inner(var1, 100); + var3.doAdd(); + if (var1.fuss == 108) { + System.out.println("PASS"); + } else { + System.out.println("ERROR"); + } + } + + static { + // $VF: Couldn't be decompiled + // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) + // java.lang.RuntimeException: parsing failure! + // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) + // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) + // + // Bytecode: + // 000: ldc "a๚tᄂ๛~ᄂ໔c\ufff7bb" + // 002: invokevirtual java/lang/String.toCharArray ()[C + // 005: astore 0 + // 006: bipush 0 + // 007: istore 1 + // 008: aload 0 + // 009: dup + // 00a: bipush 4 + // 00b: swap + // 00c: bipush 7 + // 00e: caload + // 00f: aload 0 + // 010: dup + // 011: bipush 7 + // 013: swap + // 014: bipush 4 + // 015: caload + // 016: castore + // 017: castore + // 018: aload 0 + // 019: dup + // 01a: bipush 0 + // 01b: swap + // 01c: bipush 8 + // 01e: caload + // 01f: aload 0 + // 020: dup + // 021: bipush 8 + // 023: swap + // 024: bipush 0 + // 025: caload + // 026: castore + // 027: castore + // 028: aload 0 + // 029: dup + // 02a: bipush 4 + // 02b: swap + // 02c: bipush 0 + // 02d: caload + // 02e: aload 0 + // 02f: dup + // 030: bipush 0 + // 031: swap + // 032: bipush 4 + // 033: caload + // 034: castore + // 035: castore + // 036: aload 0 + // 037: dup + // 038: bipush 6 + // 03a: swap + // 03b: bipush 14 + // 03d: caload + // 03e: aload 0 + // 03f: dup + // 040: bipush 14 + // 042: swap + // 043: bipush 6 + // 045: caload + // 046: castore + // 047: castore + // 048: aload 0 + // 049: dup + // 04a: bipush 1 + // 04b: swap + // 04c: bipush 9 + // 04e: caload + // 04f: aload 0 + // 050: dup + // 051: bipush 9 + // 053: swap + // 054: bipush 1 + // 055: caload + // 056: castore + // 057: castore + // 058: goto 15d + // 05b: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; + // 05e: bipush 0 + // 05f: aaload + // 060: astore 4 + // 062: aload 4 + // 064: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; + // 067: invokevirtual java/lang/String.hashCode ()I + // 06a: ldc 65535 + // 06c: iand + // 06d: istore 5 + // 06f: aload 4 + // 071: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; + // 074: invokevirtual java/lang/String.toCharArray ()[C + // 077: astore 6 + // 079: aload 0 + // 07a: iload 1 + // 07b: iinc 1 1 + // 07e: caload + // 07f: bipush 127 + // 081: ixor + // 082: iload 5 + // 084: ixor + // 085: anewarray 52 + // 088: astore 7 + // 08a: bipush 0 + // 08b: istore 8 + // 08d: aload 0 + // 08e: iload 1 + // 08f: iinc 1 1 + // 092: caload + // 093: sipush 246 + // 096: ixor + // 097: iload 5 + // 099: ixor + // 09a: istore 2 + // 09b: iload 2 + // 09c: newarray 5 + // 09e: astore 9 + // 0a0: bipush 0 + // 0a1: istore 10 + // 0a3: iload 2 + // 0a4: ifle 13e + // 0a7: aload 0 + // 0a8: iload 1 + // 0a9: caload + // 0aa: istore 11 + // 0ac: aload 6 + // 0ae: iload 1 + // 0af: aload 6 + // 0b1: arraylength + // 0b2: irem + // 0b3: caload + // 0b4: bipush 46 + // 0b6: ixor + // 0b7: lookupswitch 113 13 0 169 64 182 69 195 71 208 75 214 76 220 77 226 79 232 90 245 92 259 93 266 94 273 122 252 + // 128: aload 9 + // 12a: iload 10 + // 12c: iload 11 + // 12e: castore + // 12f: iinc 10 1 + // 132: iinc 1 1 + // 135: iinc 2 -1 + // 138: bipush 0 + // 139: istore 12 + // 13b: goto 1d2 + // 13e: aload 7 + // 140: iload 8 + // 142: iinc 8 1 + // 145: new java/lang/String + // 148: dup + // 149: aload 9 + // 14b: invokespecial java/lang/String. ([C)V + // 14e: invokevirtual java/lang/String.intern ()Ljava/lang/String; + // 151: aastore + // 152: iload 1 + // 153: aload 0 + // 154: arraylength + // 155: if_icmplt 08d + // 158: aload 7 + // 15a: putstatic pack/tests/basics/inner/Test.d [Ljava/lang/String; + // 15d: goto 210 + // 160: iload 11 + // 162: bipush 49 + // 164: ixor + // 165: istore 11 + // 167: bipush 1 + // 168: istore 12 + // 16a: goto 1d2 + // 16d: iload 11 + // 16f: bipush -113 + // 171: ixor + // 172: istore 11 + // 174: bipush 1 + // 175: istore 12 + // 177: goto 1d2 + // 17a: iload 11 + // 17c: bipush -10 + // 17e: ixor + // 17f: istore 11 + // 181: bipush 1 + // 182: istore 12 + // 184: goto 1d2 + // 187: bipush 2 + // 188: istore 12 + // 18a: goto 1d2 + // 18d: bipush 3 + // 18e: istore 12 + // 190: goto 1d2 + // 193: bipush 4 + // 194: istore 12 + // 196: goto 1d2 + // 199: bipush 5 + // 19a: istore 12 + // 19c: goto 1d2 + // 19f: iload 11 + // 1a1: bipush -74 + // 1a3: ixor + // 1a4: istore 11 + // 1a6: bipush 1 + // 1a7: istore 12 + // 1a9: goto 1d2 + // 1ac: bipush 6 + // 1ae: istore 12 + // 1b0: goto 1d2 + // 1b3: bipush 7 + // 1b5: istore 12 + // 1b7: goto 1d2 + // 1ba: bipush 8 + // 1bc: istore 12 + // 1be: goto 1d2 + // 1c1: bipush 9 + // 1c3: istore 12 + // 1c5: goto 1d2 + // 1c8: bipush 10 + // 1ca: istore 12 + // 1cc: goto 1d2 + // 1cf: goto 05b + // 1d2: iload 12 + // 1d4: tableswitch -40 0 10 -305 -172 -90 -77 -116 -65 -59 -40 -33 -53 -19 + // 210: return + } +} diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/overwirte/Face.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/overwirte/Face.dec new file mode 100644 index 00000000..a5876ace --- /dev/null +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/overwirte/Face.dec @@ -0,0 +1,5 @@ +package pack.tests.basics.overwirte; + +public interface Face { + String face(int var1); +} diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/overwirte/Sub.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/overwirte/Sub.dec new file mode 100644 index 00000000..2533fe2b --- /dev/null +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/overwirte/Sub.dec @@ -0,0 +1,237 @@ +package pack.tests.basics.overwirte; + +public class Sub extends Super { + public int BRANCHLOCK_DOT_NET_DEMO; + public static Throwable P; + + @Override + public void run() { + System.out.println(this.face(1)); + } + + @Override + public String face(int var1) { + return var1 == 1 ? "PASS" : "FAIL"; + } + + static { + // $VF: Couldn't be decompiled + // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) + // java.lang.RuntimeException: parsing failure! + // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) + // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) + // + // Bytecode: + // 000: ldc "\uffc8ຸ\u0e80\ufff3\ufffb\ufffe\u0e80レ£ル\ufff3" + // 002: invokevirtual java/lang/String.toCharArray ()[C + // 005: astore 0 + // 006: bipush 0 + // 007: istore 1 + // 008: aload 0 + // 009: dup + // 00a: bipush 2 + // 00b: swap + // 00c: bipush 1 + // 00d: caload + // 00e: aload 0 + // 00f: dup + // 010: bipush 1 + // 011: swap + // 012: bipush 2 + // 013: caload + // 014: castore + // 015: castore + // 016: aload 0 + // 017: dup + // 018: bipush 8 + // 01a: swap + // 01b: bipush 10 + // 01d: caload + // 01e: aload 0 + // 01f: dup + // 020: bipush 10 + // 022: swap + // 023: bipush 8 + // 025: caload + // 026: castore + // 027: castore + // 028: aload 0 + // 029: dup + // 02a: bipush 2 + // 02b: swap + // 02c: bipush 0 + // 02d: caload + // 02e: aload 0 + // 02f: dup + // 030: bipush 0 + // 031: swap + // 032: bipush 2 + // 033: caload + // 034: castore + // 035: castore + // 036: aload 0 + // 037: dup + // 038: bipush 8 + // 03a: swap + // 03b: bipush 13 + // 03d: caload + // 03e: aload 0 + // 03f: dup + // 040: bipush 13 + // 042: swap + // 043: bipush 8 + // 045: caload + // 046: castore + // 047: castore + // 048: goto 165 + // 04b: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; + // 04e: bipush 0 + // 04f: aaload + // 050: astore 4 + // 052: aload 4 + // 054: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; + // 057: invokevirtual java/lang/String.hashCode ()I + // 05a: ldc 65535 + // 05c: iand + // 05d: istore 5 + // 05f: aload 4 + // 061: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; + // 064: invokevirtual java/lang/String.toCharArray ()[C + // 067: astore 6 + // 069: aload 0 + // 06a: iload 1 + // 06b: iinc 1 1 + // 06e: caload + // 06f: bipush 19 + // 071: ixor + // 072: iload 5 + // 074: ixor + // 075: anewarray 40 + // 078: astore 7 + // 07a: bipush 0 + // 07b: istore 8 + // 07d: aload 0 + // 07e: iload 1 + // 07f: iinc 1 1 + // 082: caload + // 083: bipush 45 + // 085: ixor + // 086: iload 5 + // 088: ixor + // 089: istore 2 + // 08a: iload 2 + // 08b: newarray 5 + // 08d: astore 9 + // 08f: bipush 0 + // 090: istore 10 + // 092: iload 2 + // 093: ifle 146 + // 096: aload 0 + // 097: iload 1 + // 098: caload + // 099: istore 11 + // 09b: aload 6 + // 09d: iload 1 + // 09e: aload 6 + // 0a0: arraylength + // 0a1: irem + // 0a2: caload + // 0a3: sipush 195 + // 0a6: ixor + // 0a7: lookupswitch 137 16 144 276 160 193 161 206 162 219 166 232 168 238 170 244 172 250 176 263 177 283 179 290 180 297 181 304 182 311 183 318 237 256 + // 130: aload 9 + // 132: iload 10 + // 134: iload 11 + // 136: castore + // 137: iinc 10 1 + // 13a: iinc 1 1 + // 13d: iinc 2 -1 + // 140: bipush 0 + // 141: istore 12 + // 143: goto 1ef + // 146: aload 7 + // 148: iload 8 + // 14a: iinc 8 1 + // 14d: new java/lang/String + // 150: dup + // 151: aload 9 + // 153: invokespecial java/lang/String. ([C)V + // 156: invokevirtual java/lang/String.intern ()Ljava/lang/String; + // 159: aastore + // 15a: iload 1 + // 15b: aload 0 + // 15c: arraylength + // 15d: if_icmplt 07d + // 160: aload 7 + // 162: putstatic pack/tests/basics/overwirte/Sub.b [Ljava/lang/String; + // 165: goto 238 + // 168: iload 11 + // 16a: bipush -114 + // 16c: ixor + // 16d: istore 11 + // 16f: bipush 1 + // 170: istore 12 + // 172: goto 1ef + // 175: iload 11 + // 177: bipush -18 + // 179: ixor + // 17a: istore 11 + // 17c: bipush 1 + // 17d: istore 12 + // 17f: goto 1ef + // 182: iload 11 + // 184: bipush -78 + // 186: ixor + // 187: istore 11 + // 189: bipush 1 + // 18a: istore 12 + // 18c: goto 1ef + // 18f: bipush 2 + // 190: istore 12 + // 192: goto 1ef + // 195: bipush 3 + // 196: istore 12 + // 198: goto 1ef + // 19b: bipush 4 + // 19c: istore 12 + // 19e: goto 1ef + // 1a1: bipush 5 + // 1a2: istore 12 + // 1a4: goto 1ef + // 1a7: bipush 6 + // 1a9: istore 12 + // 1ab: goto 1ef + // 1ae: iload 11 + // 1b0: bipush -54 + // 1b2: ixor + // 1b3: istore 11 + // 1b5: bipush 1 + // 1b6: istore 12 + // 1b8: goto 1ef + // 1bb: bipush 7 + // 1bd: istore 12 + // 1bf: goto 1ef + // 1c2: bipush 8 + // 1c4: istore 12 + // 1c6: goto 1ef + // 1c9: bipush 9 + // 1cb: istore 12 + // 1cd: goto 1ef + // 1d0: bipush 10 + // 1d2: istore 12 + // 1d4: goto 1ef + // 1d7: bipush 11 + // 1d9: istore 12 + // 1db: goto 1ef + // 1de: bipush 12 + // 1e0: istore 12 + // 1e2: goto 1ef + // 1e5: bipush 13 + // 1e7: istore 12 + // 1e9: goto 1ef + // 1ec: goto 04b + // 1ef: iload 12 + // 1f1: tableswitch -40 0 13 -351 -193 -137 -111 -124 -92 -80 -86 -54 -67 -47 -40 -26 -74 + // 238: return + } +} diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/overwirte/Super.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/overwirte/Super.dec new file mode 100644 index 00000000..3fa96e49 --- /dev/null +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/overwirte/Super.dec @@ -0,0 +1,202 @@ +package pack.tests.basics.overwirte; + +public abstract class Super implements Face { + public int BRANCHLOCK_DOT_NET_DEMO; + + public void run() { + System.out.println("FAIL"); + } + + static { + // $VF: Couldn't be decompiled + // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) + // java.lang.RuntimeException: parsing failure! + // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) + // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) + // + // Bytecode: + // 000: ldc "G\u0eefH\ufff1ຉP" + // 002: invokevirtual java/lang/String.toCharArray ()[C + // 005: astore 0 + // 006: bipush 0 + // 007: istore 1 + // 008: aload 0 + // 009: dup + // 00a: bipush 4 + // 00b: swap + // 00c: bipush 0 + // 00d: caload + // 00e: aload 0 + // 00f: dup + // 010: bipush 0 + // 011: swap + // 012: bipush 4 + // 013: caload + // 014: castore + // 015: castore + // 016: aload 0 + // 017: dup + // 018: bipush 5 + // 019: swap + // 01a: bipush 8 + // 01c: caload + // 01d: aload 0 + // 01e: dup + // 01f: bipush 8 + // 021: swap + // 022: bipush 5 + // 023: caload + // 024: castore + // 025: castore + // 026: goto 145 + // 029: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; + // 02c: bipush 0 + // 02d: aaload + // 02e: astore 4 + // 030: aload 4 + // 032: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; + // 035: invokevirtual java/lang/String.hashCode ()I + // 038: ldc 65535 + // 03a: iand + // 03b: istore 5 + // 03d: aload 4 + // 03f: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; + // 042: invokevirtual java/lang/String.toCharArray ()[C + // 045: astore 6 + // 047: aload 0 + // 048: iload 1 + // 049: iinc 1 1 + // 04c: caload + // 04d: bipush 33 + // 04f: ixor + // 050: iload 5 + // 052: ixor + // 053: anewarray 32 + // 056: astore 7 + // 058: bipush 0 + // 059: istore 8 + // 05b: aload 0 + // 05c: iload 1 + // 05d: iinc 1 1 + // 060: caload + // 061: bipush 66 + // 063: ixor + // 064: iload 5 + // 066: ixor + // 067: istore 2 + // 068: iload 2 + // 069: newarray 5 + // 06b: astore 9 + // 06d: bipush 0 + // 06e: istore 10 + // 070: iload 2 + // 071: ifle 126 + // 074: aload 0 + // 075: iload 1 + // 076: caload + // 077: istore 11 + // 079: aload 6 + // 07b: iload 1 + // 07c: aload 6 + // 07e: arraylength + // 07f: irem + // 080: caload + // 081: sipush 160 + // 084: ixor + // 085: lookupswitch 139 16 142 259 193 195 194 208 195 221 197 234 201 240 203 253 207 265 208 271 210 278 211 285 212 299 213 306 214 313 215 320 243 292 + // 110: aload 9 + // 112: iload 10 + // 114: iload 11 + // 116: castore + // 117: iinc 10 1 + // 11a: iinc 1 1 + // 11d: iinc 2 -1 + // 120: bipush 0 + // 121: istore 12 + // 123: goto 1cf + // 126: aload 7 + // 128: iload 8 + // 12a: iinc 8 1 + // 12d: new java/lang/String + // 130: dup + // 131: aload 9 + // 133: invokespecial java/lang/String. ([C)V + // 136: invokevirtual java/lang/String.intern ()Ljava/lang/String; + // 139: aastore + // 13a: iload 1 + // 13b: aload 0 + // 13c: arraylength + // 13d: if_icmplt 05b + // 140: aload 7 + // 142: putstatic pack/tests/basics/overwirte/Super.d [Ljava/lang/String; + // 145: goto 218 + // 148: iload 11 + // 14a: bipush 28 + // 14c: ixor + // 14d: istore 11 + // 14f: bipush 1 + // 150: istore 12 + // 152: goto 1cf + // 155: iload 11 + // 157: bipush -5 + // 159: ixor + // 15a: istore 11 + // 15c: bipush 1 + // 15d: istore 12 + // 15f: goto 1cf + // 162: iload 11 + // 164: bipush 14 + // 166: ixor + // 167: istore 11 + // 169: bipush 1 + // 16a: istore 12 + // 16c: goto 1cf + // 16f: bipush 2 + // 170: istore 12 + // 172: goto 1cf + // 175: iload 11 + // 177: bipush -80 + // 179: ixor + // 17a: istore 11 + // 17c: bipush 1 + // 17d: istore 12 + // 17f: goto 1cf + // 182: bipush 3 + // 183: istore 12 + // 185: goto 1cf + // 188: bipush 4 + // 189: istore 12 + // 18b: goto 1cf + // 18e: bipush 5 + // 18f: istore 12 + // 191: goto 1cf + // 194: bipush 6 + // 196: istore 12 + // 198: goto 1cf + // 19b: bipush 7 + // 19d: istore 12 + // 19f: goto 1cf + // 1a2: bipush 8 + // 1a4: istore 12 + // 1a6: goto 1cf + // 1a9: bipush 9 + // 1ab: istore 12 + // 1ad: goto 1cf + // 1b0: bipush 10 + // 1b2: istore 12 + // 1b4: goto 1cf + // 1b7: bipush 11 + // 1b9: istore 12 + // 1bb: goto 1cf + // 1be: bipush 12 + // 1c0: istore 12 + // 1c2: goto 1cf + // 1c5: bipush 13 + // 1c7: istore 12 + // 1c9: goto 1cf + // 1cc: goto 029 + // 1cf: iload 12 + // 1d1: tableswitch -124 0 13 -353 -193 -137 -92 -111 -98 -124 -79 -54 -73 -67 -47 -33 -26 + // 218: return + } +} diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/runable/Exec.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/runable/Exec.dec new file mode 100644 index 00000000..f5a75b29 --- /dev/null +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/runable/Exec.dec @@ -0,0 +1,16 @@ +package pack.tests.basics.runable; + +public class Exec { + public static int i = 1; + private int d; + public int BRANCHLOCK_DOT_NET_DEMO; + + public Exec(int var1) { + this.d = var1; + } + + void doAdd() { + Thread.sleep(200L); + i = i + this.d; + } +} diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/runable/Pool.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/runable/Pool.dec new file mode 100644 index 00000000..0c132fa4 --- /dev/null +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/runable/Pool.dec @@ -0,0 +1,10 @@ +package pack.tests.basics.runable; + +import java.util.concurrent.LinkedBlockingQueue; +import java.util.concurrent.ThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +public class Pool { + public static ThreadPoolExecutor tpe = new ThreadPoolExecutor(0, 1, 1L, TimeUnit.SECONDS, new LinkedBlockingQueue<>(1)); + public int BRANCHLOCK_DOT_NET_DEMO; +} diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/runable/Task.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/runable/Task.dec new file mode 100644 index 00000000..cf7529ba --- /dev/null +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/runable/Task.dec @@ -0,0 +1,264 @@ +package pack.tests.basics.runable; + +import java.util.concurrent.RejectedExecutionException; + +public class Task { + public int BRANCHLOCK_DOT_NET_DEMO; + + public void run() { + Exec var1 = new Exec(2); + Exec var2 = new Exec(3); + Exec var3 = new Exec(100); + + try { + Pool.tpe.submit(var2::doAdd); + + try { + Thread.sleep(50L); + } catch (InterruptedException var5) { + } + + Pool.tpe.submit(Task::lambda$run$0); + + try { + Thread.sleep(50L); + } catch (InterruptedException var4) { + } + + Pool.tpe.submit(var3::doAdd); + } catch (RejectedExecutionException var6) { + Exec.i += 10; + } + + Thread.sleep(300L); + if (Exec.i == 30) { + System.out.println("PASS"); + } else { + System.out.println("FAIL"); + } + } + + private static void lambda$run$0(Exec var0) { + int var1 = Exec.i; + var0.doAdd(); + Exec.i += var1; + } + + static { + // $VF: Couldn't be decompiled + // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) + // java.lang.RuntimeException: parsing failure! + // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) + // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) + // + // Bytecode: + // 000: ldc "ᄉฎᄎᄇHᅠฎ\u0e6aZᆪ\uffbf" + // 002: invokevirtual java/lang/String.toCharArray ()[C + // 005: astore 0 + // 006: bipush 0 + // 007: istore 1 + // 008: aload 0 + // 009: dup + // 00a: bipush 4 + // 00b: swap + // 00c: bipush 5 + // 00d: caload + // 00e: aload 0 + // 00f: dup + // 010: bipush 5 + // 011: swap + // 012: bipush 4 + // 013: caload + // 014: castore + // 015: castore + // 016: aload 0 + // 017: dup + // 018: bipush 9 + // 01a: swap + // 01b: bipush 2 + // 01c: caload + // 01d: aload 0 + // 01e: dup + // 01f: bipush 2 + // 020: swap + // 021: bipush 9 + // 023: caload + // 024: castore + // 025: castore + // 026: aload 0 + // 027: dup + // 028: bipush 7 + // 02a: swap + // 02b: bipush 0 + // 02c: caload + // 02d: aload 0 + // 02e: dup + // 02f: bipush 0 + // 030: swap + // 031: bipush 7 + // 033: caload + // 034: castore + // 035: castore + // 036: aload 0 + // 037: dup + // 038: bipush 7 + // 03a: swap + // 03b: bipush 16 + // 03d: caload + // 03e: aload 0 + // 03f: dup + // 040: bipush 16 + // 042: swap + // 043: bipush 7 + // 045: caload + // 046: castore + // 047: castore + // 048: goto 161 + // 04b: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; + // 04e: bipush 0 + // 04f: aaload + // 050: astore 4 + // 052: aload 4 + // 054: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; + // 057: invokevirtual java/lang/String.hashCode ()I + // 05a: ldc 65535 + // 05c: iand + // 05d: istore 5 + // 05f: aload 4 + // 061: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; + // 064: invokevirtual java/lang/String.toCharArray ()[C + // 067: astore 6 + // 069: aload 0 + // 06a: iload 1 + // 06b: iinc 1 1 + // 06e: caload + // 06f: sipush 193 + // 072: ixor + // 073: iload 5 + // 075: ixor + // 076: anewarray 96 + // 079: astore 7 + // 07b: bipush 0 + // 07c: istore 8 + // 07e: aload 0 + // 07f: iload 1 + // 080: iinc 1 1 + // 083: caload + // 084: sipush 163 + // 087: ixor + // 088: iload 5 + // 08a: ixor + // 08b: istore 2 + // 08c: iload 2 + // 08d: newarray 5 + // 08f: astore 9 + // 091: bipush 0 + // 092: istore 10 + // 094: iload 2 + // 095: ifle 142 + // 098: aload 0 + // 099: iload 1 + // 09a: caload + // 09b: istore 11 + // 09d: aload 6 + // 09f: iload 1 + // 0a0: aload 6 + // 0a2: arraylength + // 0a3: irem + // 0a4: caload + // 0a5: bipush 17 + // 0a7: ixor + // 0a8: lookupswitch 132 15 63 299 69 239 97 188 98 201 99 207 100 220 101 226 112 245 114 251 115 258 116 265 120 278 122 285 125 292 127 306 + // 12c: aload 9 + // 12e: iload 10 + // 130: iload 11 + // 132: castore + // 133: iinc 10 1 + // 136: iinc 1 1 + // 139: iinc 2 -1 + // 13c: bipush 0 + // 13d: istore 12 + // 13f: goto 1e4 + // 142: aload 7 + // 144: iload 8 + // 146: iinc 8 1 + // 149: new java/lang/String + // 14c: dup + // 14d: aload 9 + // 14f: invokespecial java/lang/String. ([C)V + // 152: invokevirtual java/lang/String.intern ()Ljava/lang/String; + // 155: aastore + // 156: iload 1 + // 157: aload 0 + // 158: arraylength + // 159: if_icmplt 07e + // 15c: aload 7 + // 15e: putstatic pack/tests/basics/runable/Task.d [Ljava/lang/String; + // 161: goto 228 + // 164: iload 11 + // 166: bipush -13 + // 168: ixor + // 169: istore 11 + // 16b: bipush 1 + // 16c: istore 12 + // 16e: goto 1e4 + // 171: bipush 2 + // 172: istore 12 + // 174: goto 1e4 + // 177: iload 11 + // 179: bipush 73 + // 17b: ixor + // 17c: istore 11 + // 17e: bipush 1 + // 17f: istore 12 + // 181: goto 1e4 + // 184: bipush 3 + // 185: istore 12 + // 187: goto 1e4 + // 18a: iload 11 + // 18c: bipush 27 + // 18e: ixor + // 18f: istore 11 + // 191: bipush 1 + // 192: istore 12 + // 194: goto 1e4 + // 197: bipush 4 + // 198: istore 12 + // 19a: goto 1e4 + // 19d: bipush 5 + // 19e: istore 12 + // 1a0: goto 1e4 + // 1a3: bipush 6 + // 1a5: istore 12 + // 1a7: goto 1e4 + // 1aa: bipush 7 + // 1ac: istore 12 + // 1ae: goto 1e4 + // 1b1: iload 11 + // 1b3: bipush -33 + // 1b5: ixor + // 1b6: istore 11 + // 1b8: bipush 1 + // 1b9: istore 12 + // 1bb: goto 1e4 + // 1be: bipush 8 + // 1c0: istore 12 + // 1c2: goto 1e4 + // 1c5: bipush 9 + // 1c7: istore 12 + // 1c9: goto 1e4 + // 1cc: bipush 10 + // 1ce: istore 12 + // 1d0: goto 1e4 + // 1d3: bipush 11 + // 1d5: istore 12 + // 1d7: goto 1e4 + // 1da: bipush 12 + // 1dc: istore 12 + // 1de: goto 1e4 + // 1e1: goto 04b + // 1e4: iload 12 + // 1e6: tableswitch -26 0 12 -338 -186 -130 -111 -117 -98 -79 -92 -53 -67 -33 -26 -19 + // 228: return + } +} diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/sub/SolAdd.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/sub/SolAdd.dec new file mode 100644 index 00000000..f8014a54 --- /dev/null +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/sub/SolAdd.dec @@ -0,0 +1,20 @@ +package pack.tests.basics.sub; + +import pack.tests.basics.overwirte.Sub; +import pack.tests.reflects.annot.annoe; + +public class SolAdd { + public int BRANCHLOCK_DOT_NET_DEMO; + + public static int get() { + return (new med(1, 2)).result; + } + + public static Throwable P(Throwable var0) { + if (annoe.P != null) { + Sub.P = var0; + } + + return var0; + } +} diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/sub/Solver.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/sub/Solver.dec new file mode 100644 index 00000000..68c27ecb --- /dev/null +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/sub/Solver.dec @@ -0,0 +1,234 @@ +package pack.tests.basics.sub; + +public class Solver { + public int BRANCHLOCK_DOT_NET_DEMO; + + public Solver() { + if (SolAdd.get() == 3) { + System.out.println("PASS"); + } else { + System.out.println("FAIL"); + } + } + + static { + // $VF: Couldn't be decompiled + // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) + // java.lang.RuntimeException: parsing failure! + // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) + // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) + // + // Bytecode: + // 000: ldc "ᄑວᄃホ\u0e7eᄑᄁᄄᆵᄒວ" + // 002: invokevirtual java/lang/String.toCharArray ()[C + // 005: astore 0 + // 006: bipush 0 + // 007: istore 1 + // 008: aload 0 + // 009: dup + // 00a: bipush 10 + // 00c: swap + // 00d: bipush 6 + // 00f: caload + // 010: aload 0 + // 011: dup + // 012: bipush 6 + // 014: swap + // 015: bipush 10 + // 017: caload + // 018: castore + // 019: castore + // 01a: aload 0 + // 01b: dup + // 01c: bipush 9 + // 01e: swap + // 01f: bipush 2 + // 020: caload + // 021: aload 0 + // 022: dup + // 023: bipush 2 + // 024: swap + // 025: bipush 9 + // 027: caload + // 028: castore + // 029: castore + // 02a: aload 0 + // 02b: dup + // 02c: bipush 4 + // 02d: swap + // 02e: bipush 0 + // 02f: caload + // 030: aload 0 + // 031: dup + // 032: bipush 0 + // 033: swap + // 034: bipush 4 + // 035: caload + // 036: castore + // 037: castore + // 038: aload 0 + // 039: dup + // 03a: bipush 10 + // 03c: swap + // 03d: bipush 12 + // 03f: caload + // 040: aload 0 + // 041: dup + // 042: bipush 12 + // 044: swap + // 045: bipush 10 + // 047: caload + // 048: castore + // 049: castore + // 04a: goto 169 + // 04d: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; + // 050: bipush 0 + // 051: aaload + // 052: astore 4 + // 054: aload 4 + // 056: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; + // 059: invokevirtual java/lang/String.hashCode ()I + // 05c: ldc 65535 + // 05e: iand + // 05f: istore 5 + // 061: aload 4 + // 063: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; + // 066: invokevirtual java/lang/String.toCharArray ()[C + // 069: astore 6 + // 06b: aload 0 + // 06c: iload 1 + // 06d: iinc 1 1 + // 070: caload + // 071: sipush 213 + // 074: ixor + // 075: iload 5 + // 077: ixor + // 078: anewarray 37 + // 07b: astore 7 + // 07d: bipush 0 + // 07e: istore 8 + // 080: aload 0 + // 081: iload 1 + // 082: iinc 1 1 + // 085: caload + // 086: bipush 10 + // 088: ixor + // 089: iload 5 + // 08b: ixor + // 08c: istore 2 + // 08d: iload 2 + // 08e: newarray 5 + // 090: astore 9 + // 092: bipush 0 + // 093: istore 10 + // 095: iload 2 + // 096: ifle 14a + // 099: aload 0 + // 09a: iload 1 + // 09b: caload + // 09c: istore 11 + // 09e: aload 6 + // 0a0: iload 1 + // 0a1: aload 6 + // 0a3: arraylength + // 0a4: irem + // 0a5: caload + // 0a6: sipush 231 + // 0a9: ixor + // 0aa: lookupswitch 138 16 130 194 132 207 133 213 134 226 136 239 139 251 140 257 142 264 145 271 146 284 147 291 148 298 149 312 151 319 180 305 201 245 + // 134: aload 9 + // 136: iload 10 + // 138: iload 11 + // 13a: castore + // 13b: iinc 10 1 + // 13e: iinc 1 1 + // 141: iinc 2 -1 + // 144: bipush 0 + // 145: istore 12 + // 147: goto 1f3 + // 14a: aload 7 + // 14c: iload 8 + // 14e: iinc 8 1 + // 151: new java/lang/String + // 154: dup + // 155: aload 9 + // 157: invokespecial java/lang/String. ([C)V + // 15a: invokevirtual java/lang/String.intern ()Ljava/lang/String; + // 15d: aastore + // 15e: iload 1 + // 15f: aload 0 + // 160: arraylength + // 161: if_icmplt 080 + // 164: aload 7 + // 166: putstatic pack/tests/basics/sub/Solver.d [Ljava/lang/String; + // 169: goto 23c + // 16c: iload 11 + // 16e: bipush -18 + // 170: ixor + // 171: istore 11 + // 173: bipush 1 + // 174: istore 12 + // 176: goto 1f3 + // 179: bipush 2 + // 17a: istore 12 + // 17c: goto 1f3 + // 17f: iload 11 + // 181: bipush 16 + // 183: ixor + // 184: istore 11 + // 186: bipush 1 + // 187: istore 12 + // 189: goto 1f3 + // 18c: iload 11 + // 18e: bipush -49 + // 190: ixor + // 191: istore 11 + // 193: bipush 1 + // 194: istore 12 + // 196: goto 1f3 + // 199: bipush 3 + // 19a: istore 12 + // 19c: goto 1f3 + // 19f: bipush 4 + // 1a0: istore 12 + // 1a2: goto 1f3 + // 1a5: bipush 5 + // 1a6: istore 12 + // 1a8: goto 1f3 + // 1ab: bipush 6 + // 1ad: istore 12 + // 1af: goto 1f3 + // 1b2: bipush 7 + // 1b4: istore 12 + // 1b6: goto 1f3 + // 1b9: iload 11 + // 1bb: bipush 94 + // 1bd: ixor + // 1be: istore 11 + // 1c0: bipush 1 + // 1c1: istore 12 + // 1c3: goto 1f3 + // 1c6: bipush 8 + // 1c8: istore 12 + // 1ca: goto 1f3 + // 1cd: bipush 9 + // 1cf: istore 12 + // 1d1: goto 1f3 + // 1d4: bipush 10 + // 1d6: istore 12 + // 1d8: goto 1f3 + // 1db: bipush 11 + // 1dd: istore 12 + // 1df: goto 1f3 + // 1e2: bipush 12 + // 1e4: istore 12 + // 1e6: goto 1f3 + // 1e9: bipush 13 + // 1eb: istore 12 + // 1ed: goto 1f3 + // 1f0: goto 04d + // 1f3: iload 12 + // 1f5: tableswitch -86 0 13 -352 -193 -137 -105 -124 -92 -80 -86 -74 -67 -40 -118 -33 -60 + // 23c: return + } +} diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/sub/flo.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/sub/flo.dec new file mode 100644 index 00000000..29fc367e --- /dev/null +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/sub/flo.dec @@ -0,0 +1,9 @@ +package pack.tests.basics.sub; + +class flo { + public int BRANCHLOCK_DOT_NET_DEMO; + + int solve(int var1, int var2) { + return var1 + var2; + } +} diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/sub/med.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/sub/med.dec new file mode 100644 index 00000000..03ced211 --- /dev/null +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/sub/med.dec @@ -0,0 +1,10 @@ +package pack.tests.basics.sub; + +class med { + int result; + public int BRANCHLOCK_DOT_NET_DEMO; + + med(int var1, int var2) { + this.result = new flo().solve(var1, var2); + } +} diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/bench/Calc.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/bench/Calc.dec new file mode 100644 index 00000000..ac8f652d --- /dev/null +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/bench/Calc.dec @@ -0,0 +1,277 @@ +package pack.tests.bench; + +public class Calc { + public static int count; + public int BRANCHLOCK_DOT_NET_DEMO; + + public static void runAll() { + long var0 = System.currentTimeMillis(); + + for (int var2 = 0; var2 < 10000; var2++) { + call(100); + runAdd(); + runStr(); + } + + System.out.println("Calc: " + (System.currentTimeMillis() - var0) + "ms"); + if (count != 30000) { + throw new RuntimeException("[ERROR]: Errors occurred in calc!"); + } + } + + private static void call(int var0) { + if (var0 == 0) { + count++; + } else { + call(99); + } + } + + private static void runAdd() { + double var0 = 0.0; + + while (var0 < 100.1) { + var0 += 0.99; + } + + count++; + } + + private static void runStr() { + String var0 = ""; + + while (var0.length() < 101) { + var0 = var0 + "ax"; + } + + count++; + } + + static { + // $VF: Couldn't be decompiled + // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) + // java.lang.RuntimeException: parsing failure! + // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) + // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) + // + // Bytecode: + // 000: ldc "4ຼᅣ|:ᄆ'#ປ\r\u0013タO\u0019ᅰ\u000bl=\u0013\ufff5\ufff59$\ufff4=5ᄆ~vᅠ$3ᄊ=?←v9|:¦ᆭຸ;\ufff4\u0ebef→)iຸ7.າ0\u0ef8ᄆgbz`○຺" + // 002: invokevirtual java/lang/String.toCharArray ()[C + // 005: astore 0 + // 006: bipush 0 + // 007: istore 1 + // 008: aload 0 + // 009: dup + // 00a: bipush 37 + // 00c: swap + // 00d: bipush 25 + // 00f: caload + // 010: aload 0 + // 011: dup + // 012: bipush 25 + // 014: swap + // 015: bipush 37 + // 017: caload + // 018: castore + // 019: castore + // 01a: aload 0 + // 01b: dup + // 01c: bipush 28 + // 01e: swap + // 01f: bipush 7 + // 021: caload + // 022: aload 0 + // 023: dup + // 024: bipush 7 + // 026: swap + // 027: bipush 28 + // 029: caload + // 02a: castore + // 02b: castore + // 02c: aload 0 + // 02d: dup + // 02e: bipush 55 + // 030: swap + // 031: bipush 0 + // 032: caload + // 033: aload 0 + // 034: dup + // 035: bipush 0 + // 036: swap + // 037: bipush 55 + // 039: caload + // 03a: castore + // 03b: castore + // 03c: aload 0 + // 03d: dup + // 03e: bipush 60 + // 040: swap + // 041: bipush 102 + // 043: caload + // 044: aload 0 + // 045: dup + // 046: bipush 102 + // 048: swap + // 049: bipush 60 + // 04b: caload + // 04c: castore + // 04d: castore + // 04e: aload 0 + // 04f: dup + // 050: bipush 19 + // 052: swap + // 053: bipush 18 + // 055: caload + // 056: aload 0 + // 057: dup + // 058: bipush 18 + // 05a: swap + // 05b: bipush 19 + // 05d: caload + // 05e: castore + // 05f: castore + // 060: goto 165 + // 063: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; + // 066: bipush 0 + // 067: aaload + // 068: astore 4 + // 06a: aload 4 + // 06c: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; + // 06f: invokevirtual java/lang/String.hashCode ()I + // 072: ldc 65535 + // 074: iand + // 075: istore 5 + // 077: aload 4 + // 079: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; + // 07c: invokevirtual java/lang/String.toCharArray ()[C + // 07f: astore 6 + // 081: aload 0 + // 082: iload 1 + // 083: iinc 1 1 + // 086: caload + // 087: bipush 86 + // 089: ixor + // 08a: iload 5 + // 08c: ixor + // 08d: anewarray 72 + // 090: astore 7 + // 092: bipush 0 + // 093: istore 8 + // 095: aload 0 + // 096: iload 1 + // 097: iinc 1 1 + // 09a: caload + // 09b: bipush 19 + // 09d: ixor + // 09e: iload 5 + // 0a0: ixor + // 0a1: istore 2 + // 0a2: iload 2 + // 0a3: newarray 5 + // 0a5: astore 9 + // 0a7: bipush 0 + // 0a8: istore 10 + // 0aa: iload 2 + // 0ab: ifle 146 + // 0ae: aload 0 + // 0af: iload 1 + // 0b0: caload + // 0b1: istore 11 + // 0b3: aload 6 + // 0b5: iload 1 + // 0b6: aload 6 + // 0b8: arraylength + // 0b9: irem + // 0ba: caload + // 0bb: sipush 149 + // 0be: ixor + // 0bf: lookupswitch 113 13 187 252 214 233 225 169 229 182 230 195 240 201 244 214 246 220 247 239 249 245 251 259 253 266 254 273 + // 130: aload 9 + // 132: iload 10 + // 134: iload 11 + // 136: castore + // 137: iinc 10 1 + // 13a: iinc 1 1 + // 13d: iinc 2 -1 + // 140: bipush 0 + // 141: istore 12 + // 143: goto 1da + // 146: aload 7 + // 148: iload 8 + // 14a: iinc 8 1 + // 14d: new java/lang/String + // 150: dup + // 151: aload 9 + // 153: invokespecial java/lang/String. ([C)V + // 156: invokevirtual java/lang/String.intern ()Ljava/lang/String; + // 159: aastore + // 15a: iload 1 + // 15b: aload 0 + // 15c: arraylength + // 15d: if_icmplt 095 + // 160: aload 7 + // 162: putstatic pack/tests/bench/Calc.d [Ljava/lang/String; + // 165: goto 218 + // 168: iload 11 + // 16a: bipush -46 + // 16c: ixor + // 16d: istore 11 + // 16f: bipush 1 + // 170: istore 12 + // 172: goto 1da + // 175: iload 11 + // 177: bipush 86 + // 179: ixor + // 17a: istore 11 + // 17c: bipush 1 + // 17d: istore 12 + // 17f: goto 1da + // 182: bipush 2 + // 183: istore 12 + // 185: goto 1da + // 188: iload 11 + // 18a: bipush 29 + // 18c: ixor + // 18d: istore 11 + // 18f: bipush 1 + // 190: istore 12 + // 192: goto 1da + // 195: bipush 3 + // 196: istore 12 + // 198: goto 1da + // 19b: iload 11 + // 19d: bipush -121 + // 19f: ixor + // 1a0: istore 11 + // 1a2: bipush 1 + // 1a3: istore 12 + // 1a5: goto 1da + // 1a8: bipush 4 + // 1a9: istore 12 + // 1ab: goto 1da + // 1ae: bipush 5 + // 1af: istore 12 + // 1b1: goto 1da + // 1b4: bipush 6 + // 1b6: istore 12 + // 1b8: goto 1da + // 1bb: bipush 7 + // 1bd: istore 12 + // 1bf: goto 1da + // 1c2: bipush 8 + // 1c4: istore 12 + // 1c6: goto 1da + // 1c9: bipush 9 + // 1cb: istore 12 + // 1cd: goto 1da + // 1d0: bipush 10 + // 1d2: istore 12 + // 1d4: goto 1da + // 1d7: goto 063 + // 1da: iload 12 + // 1dc: tableswitch -33 0 10 -306 -172 -103 -90 -84 -116 -65 -71 -33 -26 -52 + // 218: bipush 0 + // 219: putstatic pack/tests/bench/Calc.count I + // 21c: return + } +} diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/annot/anno.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/annot/anno.dec new file mode 100644 index 00000000..4149deff --- /dev/null +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/annot/anno.dec @@ -0,0 +1,11 @@ +package pack.tests.reflects.annot; + +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +@Retention(RetentionPolicy.RUNTIME) +public @interface anno { + String val() default "yes"; + + String val2() default "yes"; +} diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/annot/annoe.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/annot/annoe.dec new file mode 100644 index 00000000..6aaf02ee --- /dev/null +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/annot/annoe.dec @@ -0,0 +1,248 @@ +package pack.tests.reflects.annot; + +import java.lang.reflect.Field; + +public class annoe { + @anno( + val = "PASS" + ) + private static final String fail; + public int BRANCHLOCK_DOT_NET_DEMO; + public static Throwable P; + + @anno + public void dox() { + String var1 = "FAIL"; + + for (Field var5 : annoe.class.getDeclaredFields()) { + var5.setAccessible(true); + anno var6 = var5.getAnnotation(anno.class); + if (var6 != null) { + var1 = var6.val(); + } + } + + System.out.println(var1); + } + + @anno( + val = "no" + ) + public void dov() { + System.out.println("FAIL"); + } + + static { + // $VF: Couldn't be decompiled + // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) + // java.lang.RuntimeException: parsing failure! + // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) + // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) + // + // Bytecode: + // 000: ldc "]ວᄆໟວY\\^THA" + // 002: invokevirtual java/lang/String.toCharArray ()[C + // 005: astore 0 + // 006: bipush 0 + // 007: istore 1 + // 008: aload 0 + // 009: dup + // 00a: bipush 8 + // 00c: swap + // 00d: bipush 3 + // 00e: caload + // 00f: aload 0 + // 010: dup + // 011: bipush 3 + // 012: swap + // 013: bipush 8 + // 015: caload + // 016: castore + // 017: castore + // 018: aload 0 + // 019: dup + // 01a: bipush 6 + // 01c: swap + // 01d: bipush 4 + // 01e: caload + // 01f: aload 0 + // 020: dup + // 021: bipush 4 + // 022: swap + // 023: bipush 6 + // 025: caload + // 026: castore + // 027: castore + // 028: aload 0 + // 029: dup + // 02a: bipush 8 + // 02c: swap + // 02d: bipush 0 + // 02e: caload + // 02f: aload 0 + // 030: dup + // 031: bipush 0 + // 032: swap + // 033: bipush 8 + // 035: caload + // 036: castore + // 037: castore + // 038: aload 0 + // 039: dup + // 03a: bipush 2 + // 03b: swap + // 03c: bipush 11 + // 03e: caload + // 03f: aload 0 + // 040: dup + // 041: bipush 11 + // 043: swap + // 044: bipush 2 + // 045: caload + // 046: castore + // 047: castore + // 048: goto 14d + // 04b: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; + // 04e: bipush 0 + // 04f: aaload + // 050: astore 4 + // 052: aload 4 + // 054: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; + // 057: invokevirtual java/lang/String.hashCode ()I + // 05a: ldc 65535 + // 05c: iand + // 05d: istore 5 + // 05f: aload 4 + // 061: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; + // 064: invokevirtual java/lang/String.toCharArray ()[C + // 067: astore 6 + // 069: aload 0 + // 06a: iload 1 + // 06b: iinc 1 1 + // 06e: caload + // 06f: bipush 116 + // 071: ixor + // 072: iload 5 + // 074: ixor + // 075: anewarray 55 + // 078: astore 7 + // 07a: bipush 0 + // 07b: istore 8 + // 07d: aload 0 + // 07e: iload 1 + // 07f: iinc 1 1 + // 082: caload + // 083: bipush 10 + // 085: ixor + // 086: iload 5 + // 088: ixor + // 089: istore 2 + // 08a: iload 2 + // 08b: newarray 5 + // 08d: astore 9 + // 08f: bipush 0 + // 090: istore 10 + // 092: iload 2 + // 093: ifle 12e + // 096: aload 0 + // 097: iload 1 + // 098: caload + // 099: istore 11 + // 09b: aload 6 + // 09d: iload 1 + // 09e: aload 6 + // 0a0: arraylength + // 0a1: irem + // 0a2: caload + // 0a3: sipush 150 + // 0a6: ixor + // 0a7: lookupswitch 113 13 184 245 226 169 228 182 229 195 230 208 240 221 243 227 245 233 247 239 248 252 249 259 250 266 253 273 + // 118: aload 9 + // 11a: iload 10 + // 11c: iload 11 + // 11e: castore + // 11f: iinc 10 1 + // 122: iinc 1 1 + // 125: iinc 2 -1 + // 128: bipush 0 + // 129: istore 12 + // 12b: goto 1c2 + // 12e: aload 7 + // 130: iload 8 + // 132: iinc 8 1 + // 135: new java/lang/String + // 138: dup + // 139: aload 9 + // 13b: invokespecial java/lang/String. ([C)V + // 13e: invokevirtual java/lang/String.intern ()Ljava/lang/String; + // 141: aastore + // 142: iload 1 + // 143: aload 0 + // 144: arraylength + // 145: if_icmplt 07d + // 148: aload 7 + // 14a: putstatic pack/tests/reflects/annot/annoe.d [Ljava/lang/String; + // 14d: goto 200 + // 150: iload 11 + // 152: bipush 21 + // 154: ixor + // 155: istore 11 + // 157: bipush 1 + // 158: istore 12 + // 15a: goto 1c2 + // 15d: iload 11 + // 15f: bipush 56 + // 161: ixor + // 162: istore 11 + // 164: bipush 1 + // 165: istore 12 + // 167: goto 1c2 + // 16a: iload 11 + // 16c: bipush 9 + // 16e: ixor + // 16f: istore 11 + // 171: bipush 1 + // 172: istore 12 + // 174: goto 1c2 + // 177: iload 11 + // 179: bipush -9 + // 17b: ixor + // 17c: istore 11 + // 17e: bipush 1 + // 17f: istore 12 + // 181: goto 1c2 + // 184: bipush 2 + // 185: istore 12 + // 187: goto 1c2 + // 18a: bipush 3 + // 18b: istore 12 + // 18d: goto 1c2 + // 190: bipush 4 + // 191: istore 12 + // 193: goto 1c2 + // 196: bipush 5 + // 197: istore 12 + // 199: goto 1c2 + // 19c: bipush 6 + // 19e: istore 12 + // 1a0: goto 1c2 + // 1a3: bipush 7 + // 1a5: istore 12 + // 1a7: goto 1c2 + // 1aa: bipush 8 + // 1ac: istore 12 + // 1ae: goto 1c2 + // 1b1: bipush 9 + // 1b3: istore 12 + // 1b5: goto 1c2 + // 1b8: bipush 10 + // 1ba: istore 12 + // 1bc: goto 1c2 + // 1bf: goto 04b + // 1c2: iload 12 + // 1c4: tableswitch -40 0 10 -306 -172 -77 -116 -64 -103 -58 -90 -33 -40 -19 + // 200: ldc "WHAT" + // 202: putstatic pack/tests/reflects/annot/annoe.fail Ljava/lang/String; + // 205: return + } +} diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/annot/annot.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/annot/annot.dec new file mode 100644 index 00000000..c1b98c3c --- /dev/null +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/annot/annot.dec @@ -0,0 +1,217 @@ +package pack.tests.reflects.annot; + +import java.lang.reflect.Method; + +public class annot { + public String BRANCHLOCK_DOT_NET_DEMO; + + public void run() { + annoe var1 = new annoe(); + + for (Method var5 : annoe.class.getDeclaredMethods()) { + var5.setAccessible(true); + anno var6 = var5.getAnnotation(anno.class); + if (var6 != null && var6.val().equals("yes")) { + var5.invoke(var1); + } + } + } + + static { + // $VF: Couldn't be decompiled + // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) + // java.lang.RuntimeException: parsing failure! + // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) + // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) + // + // Bytecode: + // 000: ldc "ᄏ๊วᄃᄆ" + // 002: invokevirtual java/lang/String.toCharArray ()[C + // 005: astore 0 + // 006: bipush 0 + // 007: istore 1 + // 008: aload 0 + // 009: dup + // 00a: bipush 2 + // 00b: swap + // 00c: bipush 0 + // 00d: caload + // 00e: aload 0 + // 00f: dup + // 010: bipush 0 + // 011: swap + // 012: bipush 2 + // 013: caload + // 014: castore + // 015: castore + // 016: aload 0 + // 017: dup + // 018: bipush 4 + // 019: swap + // 01a: bipush 5 + // 01b: caload + // 01c: aload 0 + // 01d: dup + // 01e: bipush 5 + // 01f: swap + // 020: bipush 4 + // 021: caload + // 022: castore + // 023: castore + // 024: aload 0 + // 025: dup + // 026: bipush 2 + // 027: swap + // 028: bipush 3 + // 029: caload + // 02a: aload 0 + // 02b: dup + // 02c: bipush 3 + // 02d: swap + // 02e: bipush 2 + // 02f: caload + // 030: castore + // 031: castore + // 032: goto 139 + // 035: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; + // 038: bipush 0 + // 039: aaload + // 03a: astore 4 + // 03c: aload 4 + // 03e: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; + // 041: invokevirtual java/lang/String.hashCode ()I + // 044: ldc 65535 + // 046: iand + // 047: istore 5 + // 049: aload 4 + // 04b: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; + // 04e: invokevirtual java/lang/String.toCharArray ()[C + // 051: astore 6 + // 053: aload 0 + // 054: iload 1 + // 055: iinc 1 1 + // 058: caload + // 059: sipush 143 + // 05c: ixor + // 05d: iload 5 + // 05f: ixor + // 060: anewarray 40 + // 063: astore 7 + // 065: bipush 0 + // 066: istore 8 + // 068: aload 0 + // 069: iload 1 + // 06a: iinc 1 1 + // 06d: caload + // 06e: sipush 224 + // 071: ixor + // 072: iload 5 + // 074: ixor + // 075: istore 2 + // 076: iload 2 + // 077: newarray 5 + // 079: astore 9 + // 07b: bipush 0 + // 07c: istore 10 + // 07e: iload 2 + // 07f: ifle 11a + // 082: aload 0 + // 083: iload 1 + // 084: caload + // 085: istore 11 + // 087: aload 6 + // 089: iload 1 + // 08a: aload 6 + // 08c: arraylength + // 08d: irem + // 08e: caload + // 08f: bipush 68 + // 091: ixor + // 092: lookupswitch 114 13 33 170 34 183 37 196 39 209 40 215 42 227 43 233 47 240 48 247 52 254 54 267 55 274 106 221 + // 104: aload 9 + // 106: iload 10 + // 108: iload 11 + // 10a: castore + // 10b: iinc 10 1 + // 10e: iinc 1 1 + // 111: iinc 2 -1 + // 114: bipush 0 + // 115: istore 12 + // 117: goto 1ae + // 11a: aload 7 + // 11c: iload 8 + // 11e: iinc 8 1 + // 121: new java/lang/String + // 124: dup + // 125: aload 9 + // 127: invokespecial java/lang/String. ([C)V + // 12a: invokevirtual java/lang/String.intern ()Ljava/lang/String; + // 12d: aastore + // 12e: iload 1 + // 12f: aload 0 + // 130: arraylength + // 131: if_icmplt 068 + // 134: aload 7 + // 136: putstatic pack/tests/reflects/annot/annot.d [Ljava/lang/String; + // 139: goto 1ec + // 13c: iload 11 + // 13e: bipush -96 + // 140: ixor + // 141: istore 11 + // 143: bipush 1 + // 144: istore 12 + // 146: goto 1ae + // 149: iload 11 + // 14b: bipush -5 + // 14d: ixor + // 14e: istore 11 + // 150: bipush 1 + // 151: istore 12 + // 153: goto 1ae + // 156: iload 11 + // 158: bipush -62 + // 15a: ixor + // 15b: istore 11 + // 15d: bipush 1 + // 15e: istore 12 + // 160: goto 1ae + // 163: bipush 2 + // 164: istore 12 + // 166: goto 1ae + // 169: bipush 3 + // 16a: istore 12 + // 16c: goto 1ae + // 16f: bipush 4 + // 170: istore 12 + // 172: goto 1ae + // 175: bipush 5 + // 176: istore 12 + // 178: goto 1ae + // 17b: bipush 6 + // 17d: istore 12 + // 17f: goto 1ae + // 182: bipush 7 + // 184: istore 12 + // 186: goto 1ae + // 189: bipush 8 + // 18b: istore 12 + // 18d: goto 1ae + // 190: iload 11 + // 192: bipush 19 + // 194: ixor + // 195: istore 11 + // 197: bipush 1 + // 198: istore 12 + // 19a: goto 1ae + // 19d: bipush 9 + // 19f: istore 12 + // 1a1: goto 1ae + // 1a4: bipush 10 + // 1a6: istore 12 + // 1a8: goto 1ae + // 1ab: goto 035 + // 1ae: iload 12 + // 1b0: tableswitch -53 0 10 -306 -172 -90 -116 -77 -71 -65 -53 -46 -39 -103 + // 1ec: return + } +} diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/counter/Count.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/counter/Count.dec new file mode 100644 index 00000000..9bf952cc --- /dev/null +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/counter/Count.dec @@ -0,0 +1,248 @@ +package pack.tests.reflects.counter; + +public class Count { + public int BRANCHLOCK_DOT_NET_DEMO; + + public void run() { + if (Countee.class.getFields().length == 1 + && Countee.class.getDeclaredFields().length == 4 + && Countee.class.getMethods().length > 4 + && Countee.class.getDeclaredMethods().length == 4) { + System.out.println("PASS"); + } else { + System.out.println("FAIL"); + } + } + + static { + // $VF: Couldn't be decompiled + // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) + // java.lang.RuntimeException: parsing failure! + // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) + // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) + // + // Bytecode: + // 000: ldc "ムฉ\u0e79ヤヒ&ฉ゙4ヒ\ufff9" + // 002: invokevirtual java/lang/String.toCharArray ()[C + // 005: astore 0 + // 006: bipush 0 + // 007: istore 1 + // 008: aload 0 + // 009: dup + // 00a: bipush 9 + // 00c: swap + // 00d: bipush 0 + // 00e: caload + // 00f: aload 0 + // 010: dup + // 011: bipush 0 + // 012: swap + // 013: bipush 9 + // 015: caload + // 016: castore + // 017: castore + // 018: aload 0 + // 019: dup + // 01a: bipush 10 + // 01c: swap + // 01d: bipush 3 + // 01e: caload + // 01f: aload 0 + // 020: dup + // 021: bipush 3 + // 022: swap + // 023: bipush 10 + // 025: caload + // 026: castore + // 027: castore + // 028: aload 0 + // 029: dup + // 02a: bipush 2 + // 02b: swap + // 02c: bipush 0 + // 02d: caload + // 02e: aload 0 + // 02f: dup + // 030: bipush 0 + // 031: swap + // 032: bipush 2 + // 033: caload + // 034: castore + // 035: castore + // 036: aload 0 + // 037: dup + // 038: bipush 10 + // 03a: swap + // 03b: bipush 19 + // 03d: caload + // 03e: aload 0 + // 03f: dup + // 040: bipush 19 + // 042: swap + // 043: bipush 10 + // 045: caload + // 046: castore + // 047: castore + // 048: aload 0 + // 049: dup + // 04a: bipush 9 + // 04c: swap + // 04d: bipush 5 + // 04e: caload + // 04f: aload 0 + // 050: dup + // 051: bipush 5 + // 052: swap + // 053: bipush 9 + // 055: caload + // 056: castore + // 057: castore + // 058: goto 171 + // 05b: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; + // 05e: bipush 0 + // 05f: aaload + // 060: astore 4 + // 062: aload 4 + // 064: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; + // 067: invokevirtual java/lang/String.hashCode ()I + // 06a: ldc 65535 + // 06c: iand + // 06d: istore 5 + // 06f: aload 4 + // 071: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; + // 074: invokevirtual java/lang/String.toCharArray ()[C + // 077: astore 6 + // 079: aload 0 + // 07a: iload 1 + // 07b: iinc 1 1 + // 07e: caload + // 07f: sipush 210 + // 082: ixor + // 083: iload 5 + // 085: ixor + // 086: anewarray 50 + // 089: astore 7 + // 08b: bipush 0 + // 08c: istore 8 + // 08e: aload 0 + // 08f: iload 1 + // 090: iinc 1 1 + // 093: caload + // 094: sipush 164 + // 097: ixor + // 098: iload 5 + // 09a: ixor + // 09b: istore 2 + // 09c: iload 2 + // 09d: newarray 5 + // 09f: astore 9 + // 0a1: bipush 0 + // 0a2: istore 10 + // 0a4: iload 2 + // 0a5: ifle 152 + // 0a8: aload 0 + // 0a9: iload 1 + // 0aa: caload + // 0ab: istore 11 + // 0ad: aload 6 + // 0af: iload 1 + // 0b0: aload 6 + // 0b2: arraylength + // 0b3: irem + // 0b4: caload + // 0b5: sipush 233 + // 0b8: ixor + // 0b9: lookupswitch 131 15 130 187 133 200 134 213 135 232 136 238 138 244 140 263 143 270 153 277 154 284 155 291 156 298 157 305 170 250 199 219 + // 13c: aload 9 + // 13e: iload 10 + // 140: iload 11 + // 142: castore + // 143: iinc 10 1 + // 146: iinc 1 1 + // 149: iinc 2 -1 + // 14c: bipush 0 + // 14d: istore 12 + // 14f: goto 1f4 + // 152: aload 7 + // 154: iload 8 + // 156: iinc 8 1 + // 159: new java/lang/String + // 15c: dup + // 15d: aload 9 + // 15f: invokespecial java/lang/String. ([C)V + // 162: invokevirtual java/lang/String.intern ()Ljava/lang/String; + // 165: aastore + // 166: iload 1 + // 167: aload 0 + // 168: arraylength + // 169: if_icmplt 08e + // 16c: aload 7 + // 16e: putstatic pack/tests/reflects/counter/Count.d [Ljava/lang/String; + // 171: goto 238 + // 174: iload 11 + // 176: bipush -72 + // 178: ixor + // 179: istore 11 + // 17b: bipush 1 + // 17c: istore 12 + // 17e: goto 1f4 + // 181: iload 11 + // 183: bipush -37 + // 185: ixor + // 186: istore 11 + // 188: bipush 1 + // 189: istore 12 + // 18b: goto 1f4 + // 18e: bipush 2 + // 18f: istore 12 + // 191: goto 1f4 + // 194: iload 11 + // 196: bipush -40 + // 198: ixor + // 199: istore 11 + // 19b: bipush 1 + // 19c: istore 12 + // 19e: goto 1f4 + // 1a1: bipush 3 + // 1a2: istore 12 + // 1a4: goto 1f4 + // 1a7: bipush 4 + // 1a8: istore 12 + // 1aa: goto 1f4 + // 1ad: bipush 5 + // 1ae: istore 12 + // 1b0: goto 1f4 + // 1b3: iload 11 + // 1b5: bipush 117 + // 1b7: ixor + // 1b8: istore 11 + // 1ba: bipush 1 + // 1bb: istore 12 + // 1bd: goto 1f4 + // 1c0: bipush 6 + // 1c2: istore 12 + // 1c4: goto 1f4 + // 1c7: bipush 7 + // 1c9: istore 12 + // 1cb: goto 1f4 + // 1ce: bipush 8 + // 1d0: istore 12 + // 1d2: goto 1f4 + // 1d5: bipush 9 + // 1d7: istore 12 + // 1d9: goto 1f4 + // 1dc: bipush 10 + // 1de: istore 12 + // 1e0: goto 1f4 + // 1e3: bipush 11 + // 1e5: istore 12 + // 1e7: goto 1f4 + // 1ea: bipush 12 + // 1ec: istore 12 + // 1ee: goto 1f4 + // 1f1: goto 05b + // 1f4: iload 12 + // 1f6: tableswitch -85 0 12 -338 -186 -117 -130 -85 -104 -98 -54 -73 -47 -67 -79 -26 + // 238: return + } +} diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/counter/Countee.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/counter/Countee.dec new file mode 100644 index 00000000..a891c773 --- /dev/null +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/counter/Countee.dec @@ -0,0 +1,21 @@ +package pack.tests.reflects.counter; + +public class Countee { + public int cpuli = 0; + protected int cprot = 0; + int cpackp = 1; + private int cpriv = 0; + public int BRANCHLOCK_DOT_NET_DEMO; + + public void mpuli() { + } + + public void mprot() { + } + + public void mpackp() { + } + + public void mpriv() { + } +} diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/field/FObject.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/field/FObject.dec new file mode 100644 index 00000000..787d05d3 --- /dev/null +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/field/FObject.dec @@ -0,0 +1,14 @@ +package pack.tests.reflects.field; + +public class FObject extends Throwable { + private int i; + public int BRANCHLOCK_DOT_NET_DEMO; + + private FObject(int var1) { + this.i = var1; + } + + private void add() { + this.i += 3; + } +} diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/field/FTest.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/field/FTest.dec new file mode 100644 index 00000000..2f7ff1fe --- /dev/null +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/field/FTest.dec @@ -0,0 +1,255 @@ +package pack.tests.reflects.field; + +import java.lang.reflect.Constructor; +import java.lang.reflect.Field; +import java.lang.reflect.Method; + +public class FTest { + public String BRANCHLOCK_DOT_NET_DEMO; + + public void run() { + Constructor var1 = FObject.class.getDeclaredConstructor(int.class); + if (var1.isAccessible()) { + System.out.println("FAIL"); + } else { + var1.setAccessible(true); + FObject var2 = (FObject)var1.newInstance(1); + Method var3 = FObject.class.getDeclaredMethod("add", null); + if (var3.isAccessible()) { + System.out.println("FAIL"); + } else { + var3.setAccessible(true); + var3.invoke(var2); + Field var4 = FObject.class.getDeclaredField("i"); + if (var4.isAccessible()) { + System.out.println("FAIL"); + } else { + var4.setAccessible(true); + if (var4.getInt(var2) != 4) { + System.out.println("FAIL"); + } else { + System.out.println("PASS"); + } + } + } + } + } + + static { + // $VF: Couldn't be decompiled + // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) + // java.lang.RuntimeException: parsing failure! + // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) + // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) + // + // Bytecode: + // 000: ldc "\u0e79\u0e7eᄏ@@\u0e79ハeww๕J3mロ\u0e7cᄈ" + // 002: invokevirtual java/lang/String.toCharArray ()[C + // 005: astore 0 + // 006: bipush 0 + // 007: istore 1 + // 008: aload 0 + // 009: dup + // 00a: bipush 4 + // 00b: swap + // 00c: bipush 3 + // 00d: caload + // 00e: aload 0 + // 00f: dup + // 010: bipush 3 + // 011: swap + // 012: bipush 4 + // 013: caload + // 014: castore + // 015: castore + // 016: aload 0 + // 017: dup + // 018: bipush 12 + // 01a: swap + // 01b: bipush 14 + // 01d: caload + // 01e: aload 0 + // 01f: dup + // 020: bipush 14 + // 022: swap + // 023: bipush 12 + // 025: caload + // 026: castore + // 027: castore + // 028: aload 0 + // 029: dup + // 02a: bipush 10 + // 02c: swap + // 02d: bipush 0 + // 02e: caload + // 02f: aload 0 + // 030: dup + // 031: bipush 0 + // 032: swap + // 033: bipush 10 + // 035: caload + // 036: castore + // 037: castore + // 038: aload 0 + // 039: dup + // 03a: bipush 5 + // 03b: swap + // 03c: bipush 18 + // 03e: caload + // 03f: aload 0 + // 040: dup + // 041: bipush 18 + // 043: swap + // 044: bipush 5 + // 045: caload + // 046: castore + // 047: castore + // 048: goto 161 + // 04b: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; + // 04e: bipush 0 + // 04f: aaload + // 050: astore 4 + // 052: aload 4 + // 054: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; + // 057: invokevirtual java/lang/String.hashCode ()I + // 05a: ldc 65535 + // 05c: iand + // 05d: istore 5 + // 05f: aload 4 + // 061: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; + // 064: invokevirtual java/lang/String.toCharArray ()[C + // 067: astore 6 + // 069: aload 0 + // 06a: iload 1 + // 06b: iinc 1 1 + // 06e: caload + // 06f: sipush 248 + // 072: ixor + // 073: iload 5 + // 075: ixor + // 076: anewarray 92 + // 079: astore 7 + // 07b: bipush 0 + // 07c: istore 8 + // 07e: aload 0 + // 07f: iload 1 + // 080: iinc 1 1 + // 083: caload + // 084: sipush 212 + // 087: ixor + // 088: iload 5 + // 08a: ixor + // 08b: istore 2 + // 08c: iload 2 + // 08d: newarray 5 + // 08f: astore 9 + // 091: bipush 0 + // 092: istore 10 + // 094: iload 2 + // 095: ifle 142 + // 098: aload 0 + // 099: iload 1 + // 09a: caload + // 09b: istore 11 + // 09d: aload 6 + // 09f: iload 1 + // 0a0: aload 6 + // 0a2: arraylength + // 0a3: irem + // 0a4: caload + // 0a5: bipush 89 + // 0a7: ixor + // 0a8: lookupswitch 132 15 13 233 31 306 41 188 42 201 43 214 45 227 48 239 50 245 53 251 56 265 58 272 60 285 61 292 63 299 119 258 + // 12c: aload 9 + // 12e: iload 10 + // 130: iload 11 + // 132: castore + // 133: iinc 10 1 + // 136: iinc 1 1 + // 139: iinc 2 -1 + // 13c: bipush 0 + // 13d: istore 12 + // 13f: goto 1e4 + // 142: aload 7 + // 144: iload 8 + // 146: iinc 8 1 + // 149: new java/lang/String + // 14c: dup + // 14d: aload 9 + // 14f: invokespecial java/lang/String. ([C)V + // 152: invokevirtual java/lang/String.intern ()Ljava/lang/String; + // 155: aastore + // 156: iload 1 + // 157: aload 0 + // 158: arraylength + // 159: if_icmplt 07e + // 15c: aload 7 + // 15e: putstatic pack/tests/reflects/field/FTest.d [Ljava/lang/String; + // 161: goto 228 + // 164: iload 11 + // 166: bipush 127 + // 168: ixor + // 169: istore 11 + // 16b: bipush 1 + // 16c: istore 12 + // 16e: goto 1e4 + // 171: iload 11 + // 173: bipush 36 + // 175: ixor + // 176: istore 11 + // 178: bipush 1 + // 179: istore 12 + // 17b: goto 1e4 + // 17e: iload 11 + // 180: bipush 12 + // 182: ixor + // 183: istore 11 + // 185: bipush 1 + // 186: istore 12 + // 188: goto 1e4 + // 18b: bipush 2 + // 18c: istore 12 + // 18e: goto 1e4 + // 191: bipush 3 + // 192: istore 12 + // 194: goto 1e4 + // 197: bipush 4 + // 198: istore 12 + // 19a: goto 1e4 + // 19d: bipush 5 + // 19e: istore 12 + // 1a0: goto 1e4 + // 1a3: bipush 6 + // 1a5: istore 12 + // 1a7: goto 1e4 + // 1aa: bipush 7 + // 1ac: istore 12 + // 1ae: goto 1e4 + // 1b1: bipush 8 + // 1b3: istore 12 + // 1b5: goto 1e4 + // 1b8: iload 11 + // 1ba: bipush -38 + // 1bc: ixor + // 1bd: istore 11 + // 1bf: bipush 1 + // 1c0: istore 12 + // 1c2: goto 1e4 + // 1c5: bipush 9 + // 1c7: istore 12 + // 1c9: goto 1e4 + // 1cc: bipush 10 + // 1ce: istore 12 + // 1d0: goto 1e4 + // 1d3: bipush 11 + // 1d5: istore 12 + // 1d7: goto 1e4 + // 1da: bipush 12 + // 1dc: istore 12 + // 1de: goto 1e4 + // 1e1: goto 04b + // 1e4: iload 12 + // 1e6: tableswitch -338 0 12 -338 -186 -117 -104 -130 -91 -79 -73 -67 -46 -33 -60 -53 + // 228: return + } +} diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/loader/LRun.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/loader/LRun.dec new file mode 100644 index 00000000..537088f8 --- /dev/null +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/loader/LRun.dec @@ -0,0 +1,250 @@ +package pack.tests.reflects.loader; + +public class LRun { + public int BRANCHLOCK_DOT_NET_DEMO; + + public void run() { + Loader var1 = new Loader(); + Class var2 = var1.findClass("pack.tests.reflects.loader.LTest"); + Object var3 = var2.newInstance(); + var2.getMethod("run").invoke(var3); + } + + static { + // $VF: Couldn't be decompiled + // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) + // java.lang.RuntimeException: parsing failure! + // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) + // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) + // + // Bytecode: + // 000: ldc "rตMlQึ\u0e69]_W\u0011vgqvS\u0011NYYnY_qm,qS]}Yp\u0012sMZOv" + // 002: invokevirtual java/lang/String.toCharArray ()[C + // 005: astore 0 + // 006: bipush 0 + // 007: istore 1 + // 008: aload 0 + // 009: dup + // 00a: bipush 24 + // 00c: swap + // 00d: bipush 23 + // 00f: caload + // 010: aload 0 + // 011: dup + // 012: bipush 23 + // 014: swap + // 015: bipush 24 + // 017: caload + // 018: castore + // 019: castore + // 01a: aload 0 + // 01b: dup + // 01c: bipush 26 + // 01e: swap + // 01f: bipush 15 + // 021: caload + // 022: aload 0 + // 023: dup + // 024: bipush 15 + // 026: swap + // 027: bipush 26 + // 029: caload + // 02a: castore + // 02b: castore + // 02c: aload 0 + // 02d: dup + // 02e: bipush 6 + // 030: swap + // 031: bipush 0 + // 032: caload + // 033: aload 0 + // 034: dup + // 035: bipush 0 + // 036: swap + // 037: bipush 6 + // 039: caload + // 03a: castore + // 03b: castore + // 03c: aload 0 + // 03d: dup + // 03e: bipush 24 + // 040: swap + // 041: bipush 52 + // 043: caload + // 044: aload 0 + // 045: dup + // 046: bipush 52 + // 048: swap + // 049: bipush 24 + // 04b: caload + // 04c: castore + // 04d: castore + // 04e: aload 0 + // 04f: dup + // 050: bipush 36 + // 052: swap + // 053: bipush 34 + // 055: caload + // 056: aload 0 + // 057: dup + // 058: bipush 34 + // 05a: swap + // 05b: bipush 36 + // 05d: caload + // 05e: castore + // 05f: castore + // 060: goto 189 + // 063: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; + // 066: bipush 0 + // 067: aaload + // 068: astore 4 + // 06a: aload 4 + // 06c: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; + // 06f: invokevirtual java/lang/String.hashCode ()I + // 072: ldc 65535 + // 074: iand + // 075: istore 5 + // 077: aload 4 + // 079: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; + // 07c: invokevirtual java/lang/String.toCharArray ()[C + // 07f: astore 6 + // 081: aload 0 + // 082: iload 1 + // 083: iinc 1 1 + // 086: caload + // 087: sipush 194 + // 08a: ixor + // 08b: iload 5 + // 08d: ixor + // 08e: anewarray 42 + // 091: astore 7 + // 093: bipush 0 + // 094: istore 8 + // 096: aload 0 + // 097: iload 1 + // 098: iinc 1 1 + // 09b: caload + // 09c: sipush 191 + // 09f: ixor + // 0a0: iload 5 + // 0a2: ixor + // 0a3: istore 2 + // 0a4: iload 2 + // 0a5: newarray 5 + // 0a7: astore 9 + // 0a9: bipush 0 + // 0aa: istore 10 + // 0ac: iload 2 + // 0ad: ifle 16a + // 0b0: aload 0 + // 0b1: iload 1 + // 0b2: caload + // 0b3: istore 11 + // 0b5: aload 6 + // 0b7: iload 1 + // 0b8: aload 6 + // 0ba: arraylength + // 0bb: irem + // 0bc: caload + // 0bd: sipush 162 + // 0c0: ixor + // 0c1: lookupswitch 147 17 140 266 193 203 195 216 196 229 198 241 199 254 201 260 204 272 205 278 206 285 208 299 209 313 210 320 214 327 215 334 238 292 240 306 + // 154: aload 9 + // 156: iload 10 + // 158: iload 11 + // 15a: castore + // 15b: iinc 10 1 + // 15e: iinc 1 1 + // 161: iinc 2 -1 + // 164: bipush 0 + // 165: istore 12 + // 167: goto 219 + // 16a: aload 7 + // 16c: iload 8 + // 16e: iinc 8 1 + // 171: new java/lang/String + // 174: dup + // 175: aload 9 + // 177: invokespecial java/lang/String. ([C)V + // 17a: invokevirtual java/lang/String.intern ()Ljava/lang/String; + // 17d: aastore + // 17e: iload 1 + // 17f: aload 0 + // 180: arraylength + // 181: if_icmplt 096 + // 184: aload 7 + // 186: putstatic pack/tests/reflects/loader/LRun.d [Ljava/lang/String; + // 189: goto 264 + // 18c: iload 11 + // 18e: bipush 63 + // 190: ixor + // 191: istore 11 + // 193: bipush 1 + // 194: istore 12 + // 196: goto 219 + // 199: iload 11 + // 19b: bipush 60 + // 19d: ixor + // 19e: istore 11 + // 1a0: bipush 1 + // 1a1: istore 12 + // 1a3: goto 219 + // 1a6: iload 11 + // 1a8: bipush 2 + // 1a9: ixor + // 1aa: istore 11 + // 1ac: bipush 1 + // 1ad: istore 12 + // 1af: goto 219 + // 1b2: iload 11 + // 1b4: bipush 25 + // 1b6: ixor + // 1b7: istore 11 + // 1b9: bipush 1 + // 1ba: istore 12 + // 1bc: goto 219 + // 1bf: bipush 2 + // 1c0: istore 12 + // 1c2: goto 219 + // 1c5: bipush 3 + // 1c6: istore 12 + // 1c8: goto 219 + // 1cb: bipush 4 + // 1cc: istore 12 + // 1ce: goto 219 + // 1d1: bipush 5 + // 1d2: istore 12 + // 1d4: goto 219 + // 1d7: bipush 6 + // 1d9: istore 12 + // 1db: goto 219 + // 1de: bipush 7 + // 1e0: istore 12 + // 1e2: goto 219 + // 1e5: bipush 8 + // 1e7: istore 12 + // 1e9: goto 219 + // 1ec: bipush 9 + // 1ee: istore 12 + // 1f0: goto 219 + // 1f3: bipush 10 + // 1f5: istore 12 + // 1f7: goto 219 + // 1fa: bipush 11 + // 1fc: istore 12 + // 1fe: goto 219 + // 201: bipush 12 + // 203: istore 12 + // 205: goto 219 + // 208: bipush 13 + // 20a: istore 12 + // 20c: goto 219 + // 20f: bipush 14 + // 211: istore 12 + // 213: goto 219 + // 216: goto 063 + // 219: iload 12 + // 21b: tableswitch -199 0 14 -367 -199 -117 -105 -143 -130 -74 -92 -68 -61 -54 -40 -47 -33 -86 + // 264: return + } +} diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/loader/LTest.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/loader/LTest.dec new file mode 100644 index 00000000..66415037 --- /dev/null +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/loader/LTest.dec @@ -0,0 +1,214 @@ +package pack.tests.reflects.loader; + +import java.io.ByteArrayOutputStream; +import java.io.InputStream; + +public class LTest { + public int BRANCHLOCK_DOT_NET_DEMO; + + public static byte[] readAllBytes(InputStream var0) { + ByteArrayOutputStream var1 = new ByteArrayOutputStream(); + byte[] var2 = new byte[1024]; + + int var3; + while ((var3 = var0.read(var2)) != -1) { + var1.write(var2, 0, var3); + } + + return var1.toByteArray(); + } + + public void run() { + System.out.println(new String(readAllBytes(LTest.class.getResourceAsStream("TEST")))); + } + + static { + // $VF: Couldn't be decompiled + // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) + // java.lang.RuntimeException: parsing failure! + // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) + // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) + // + // Bytecode: + // 000: ldc "\uffd0ໆZᅥศZ" + // 002: invokevirtual java/lang/String.toCharArray ()[C + // 005: astore 0 + // 006: bipush 0 + // 007: istore 1 + // 008: aload 0 + // 009: dup + // 00a: bipush 4 + // 00b: swap + // 00c: bipush 0 + // 00d: caload + // 00e: aload 0 + // 00f: dup + // 010: bipush 0 + // 011: swap + // 012: bipush 4 + // 013: caload + // 014: castore + // 015: castore + // 016: aload 0 + // 017: dup + // 018: bipush 3 + // 019: swap + // 01a: bipush 6 + // 01c: caload + // 01d: aload 0 + // 01e: dup + // 01f: bipush 6 + // 021: swap + // 022: bipush 3 + // 023: caload + // 024: castore + // 025: castore + // 026: goto 13d + // 029: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; + // 02c: bipush 0 + // 02d: aaload + // 02e: astore 4 + // 030: aload 4 + // 032: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; + // 035: invokevirtual java/lang/String.hashCode ()I + // 038: ldc 65535 + // 03a: iand + // 03b: istore 5 + // 03d: aload 4 + // 03f: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; + // 042: invokevirtual java/lang/String.toCharArray ()[C + // 045: astore 6 + // 047: aload 0 + // 048: iload 1 + // 049: iinc 1 1 + // 04c: caload + // 04d: sipush 128 + // 050: ixor + // 051: iload 5 + // 053: ixor + // 054: anewarray 40 + // 057: astore 7 + // 059: bipush 0 + // 05a: istore 8 + // 05c: aload 0 + // 05d: iload 1 + // 05e: iinc 1 1 + // 061: caload + // 062: bipush 107 + // 064: ixor + // 065: iload 5 + // 067: ixor + // 068: istore 2 + // 069: iload 2 + // 06a: newarray 5 + // 06c: astore 9 + // 06e: bipush 0 + // 06f: istore 10 + // 071: iload 2 + // 072: ifle 11e + // 075: aload 0 + // 076: iload 1 + // 077: caload + // 078: istore 11 + // 07a: aload 6 + // 07c: iload 1 + // 07d: aload 6 + // 07f: arraylength + // 080: irem + // 081: caload + // 082: bipush 49 + // 084: ixor + // 085: lookupswitch 131 15 31 305 65 187 66 200 67 213 69 219 80 238 82 244 84 250 85 263 87 270 90 277 93 284 94 298 101 232 125 291 + // 108: aload 9 + // 10a: iload 10 + // 10c: iload 11 + // 10e: castore + // 10f: iinc 10 1 + // 112: iinc 1 1 + // 115: iinc 2 -1 + // 118: bipush 0 + // 119: istore 12 + // 11b: goto 1c0 + // 11e: aload 7 + // 120: iload 8 + // 122: iinc 8 1 + // 125: new java/lang/String + // 128: dup + // 129: aload 9 + // 12b: invokespecial java/lang/String. ([C)V + // 12e: invokevirtual java/lang/String.intern ()Ljava/lang/String; + // 131: aastore + // 132: iload 1 + // 133: aload 0 + // 134: arraylength + // 135: if_icmplt 05c + // 138: aload 7 + // 13a: putstatic pack/tests/reflects/loader/LTest.d [Ljava/lang/String; + // 13d: goto 204 + // 140: iload 11 + // 142: bipush -125 + // 144: ixor + // 145: istore 11 + // 147: bipush 1 + // 148: istore 12 + // 14a: goto 1c0 + // 14d: iload 11 + // 14f: bipush 68 + // 151: ixor + // 152: istore 11 + // 154: bipush 1 + // 155: istore 12 + // 157: goto 1c0 + // 15a: bipush 2 + // 15b: istore 12 + // 15d: goto 1c0 + // 160: iload 11 + // 162: bipush 14 + // 164: ixor + // 165: istore 11 + // 167: bipush 1 + // 168: istore 12 + // 16a: goto 1c0 + // 16d: bipush 3 + // 16e: istore 12 + // 170: goto 1c0 + // 173: bipush 4 + // 174: istore 12 + // 176: goto 1c0 + // 179: bipush 5 + // 17a: istore 12 + // 17c: goto 1c0 + // 17f: iload 11 + // 181: bipush 23 + // 183: ixor + // 184: istore 11 + // 186: bipush 1 + // 187: istore 12 + // 189: goto 1c0 + // 18c: bipush 6 + // 18e: istore 12 + // 190: goto 1c0 + // 193: bipush 7 + // 195: istore 12 + // 197: goto 1c0 + // 19a: bipush 8 + // 19c: istore 12 + // 19e: goto 1c0 + // 1a1: bipush 9 + // 1a3: istore 12 + // 1a5: goto 1c0 + // 1a8: bipush 10 + // 1aa: istore 12 + // 1ac: goto 1c0 + // 1af: bipush 11 + // 1b1: istore 12 + // 1b3: goto 1c0 + // 1b6: bipush 12 + // 1b8: istore 12 + // 1ba: goto 1c0 + // 1bd: goto 029 + // 1c0: iload 12 + // 1c2: tableswitch -104 0 12 -337 -186 -117 -104 -130 -98 -73 -67 -79 -54 -33 -40 -19 + // 204: return + } +} diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/loader/Loader.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/loader/Loader.dec new file mode 100644 index 00000000..98a15d34 --- /dev/null +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/loader/Loader.dec @@ -0,0 +1,261 @@ +package pack.tests.reflects.loader; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.InputStream; + +public class Loader extends ClassLoader { + public int BRANCHLOCK_DOT_NET_DEMO; + + public static byte[] readAllBytes(InputStream var0) { + ByteArrayOutputStream var1 = new ByteArrayOutputStream(); + byte[] var2 = new byte[1024]; + + int var3; + while ((var3 = var0.read(var2)) != -1) { + var1.write(var2, 0, var3); + } + + return var1.toByteArray(); + } + + @Override + public InputStream getResourceAsStream(String var1) { + return (InputStream)(var1.contains("TEST") ? new ByteArrayInputStream("PASS".getBytes()) : super.getResourceAsStream(var1)); + } + + @Override + public Class findClass(String var1) { + byte[] var2 = readAllBytes(Loader.class.getClassLoader().getResourceAsStream("pack/tests/reflects/loader/LTest.class")); + return this.defineClass(var1, var2, 0, var2.length); + } + + static { + // $VF: Couldn't be decompiled + // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) + // java.lang.RuntimeException: parsing failure! + // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) + // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) + // + // Bytecode: + // 000: ldc "ᅲᅲO^ู\uffc9ฑKᅵHฑ" + // 002: invokevirtual java/lang/String.toCharArray ()[C + // 005: astore 0 + // 006: bipush 0 + // 007: istore 1 + // 008: aload 0 + // 009: dup + // 00a: bipush 10 + // 00c: swap + // 00d: bipush 4 + // 00e: caload + // 00f: aload 0 + // 010: dup + // 011: bipush 4 + // 012: swap + // 013: bipush 10 + // 015: caload + // 016: castore + // 017: castore + // 018: aload 0 + // 019: dup + // 01a: bipush 4 + // 01b: swap + // 01c: bipush 1 + // 01d: caload + // 01e: aload 0 + // 01f: dup + // 020: bipush 1 + // 021: swap + // 022: bipush 4 + // 023: caload + // 024: castore + // 025: castore + // 026: aload 0 + // 027: dup + // 028: bipush 10 + // 02a: swap + // 02b: bipush 0 + // 02c: caload + // 02d: aload 0 + // 02e: dup + // 02f: bipush 0 + // 030: swap + // 031: bipush 10 + // 033: caload + // 034: castore + // 035: castore + // 036: aload 0 + // 037: dup + // 038: bipush 3 + // 039: swap + // 03a: bipush 13 + // 03c: caload + // 03d: aload 0 + // 03e: dup + // 03f: bipush 13 + // 041: swap + // 042: bipush 3 + // 043: caload + // 044: castore + // 045: castore + // 046: aload 0 + // 047: dup + // 048: bipush 1 + // 049: swap + // 04a: bipush 8 + // 04c: caload + // 04d: aload 0 + // 04e: dup + // 04f: bipush 8 + // 051: swap + // 052: bipush 1 + // 053: caload + // 054: castore + // 055: castore + // 056: goto 165 + // 059: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; + // 05c: bipush 0 + // 05d: aaload + // 05e: astore 4 + // 060: aload 4 + // 062: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; + // 065: invokevirtual java/lang/String.hashCode ()I + // 068: ldc 65535 + // 06a: iand + // 06b: istore 5 + // 06d: aload 4 + // 06f: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; + // 072: invokevirtual java/lang/String.toCharArray ()[C + // 075: astore 6 + // 077: aload 0 + // 078: iload 1 + // 079: iinc 1 1 + // 07c: caload + // 07d: sipush 146 + // 080: ixor + // 081: iload 5 + // 083: ixor + // 084: anewarray 37 + // 087: astore 7 + // 089: bipush 0 + // 08a: istore 8 + // 08c: aload 0 + // 08d: iload 1 + // 08e: iinc 1 1 + // 091: caload + // 092: sipush 188 + // 095: ixor + // 096: iload 5 + // 098: ixor + // 099: istore 2 + // 09a: iload 2 + // 09b: newarray 5 + // 09d: astore 9 + // 09f: bipush 0 + // 0a0: istore 10 + // 0a2: iload 2 + // 0a3: ifle 146 + // 0a6: aload 0 + // 0a7: iload 1 + // 0a8: caload + // 0a9: istore 11 + // 0ab: aload 6 + // 0ad: iload 1 + // 0ae: aload 6 + // 0b0: arraylength + // 0b1: irem + // 0b2: caload + // 0b3: sipush 222 + // 0b6: ixor + // 0b7: lookupswitch 121 14 146 247 170 177 172 190 173 203 174 216 177 235 178 241 181 253 184 260 186 267 187 274 189 281 191 288 240 229 + // 130: aload 9 + // 132: iload 10 + // 134: iload 11 + // 136: castore + // 137: iinc 10 1 + // 13a: iinc 1 1 + // 13d: iinc 2 -1 + // 140: bipush 0 + // 141: istore 12 + // 143: goto 1e1 + // 146: aload 7 + // 148: iload 8 + // 14a: iinc 8 1 + // 14d: new java/lang/String + // 150: dup + // 151: aload 9 + // 153: invokespecial java/lang/String. ([C)V + // 156: invokevirtual java/lang/String.intern ()Ljava/lang/String; + // 159: aastore + // 15a: iload 1 + // 15b: aload 0 + // 15c: arraylength + // 15d: if_icmplt 08c + // 160: aload 7 + // 162: putstatic pack/tests/reflects/loader/Loader.d [Ljava/lang/String; + // 165: goto 220 + // 168: iload 11 + // 16a: bipush -99 + // 16c: ixor + // 16d: istore 11 + // 16f: bipush 1 + // 170: istore 12 + // 172: goto 1e1 + // 175: iload 11 + // 177: bipush -124 + // 179: ixor + // 17a: istore 11 + // 17c: bipush 1 + // 17d: istore 12 + // 17f: goto 1e1 + // 182: iload 11 + // 184: bipush 27 + // 186: ixor + // 187: istore 11 + // 189: bipush 1 + // 18a: istore 12 + // 18c: goto 1e1 + // 18f: iload 11 + // 191: bipush -65 + // 193: ixor + // 194: istore 11 + // 196: bipush 1 + // 197: istore 12 + // 199: goto 1e1 + // 19c: bipush 2 + // 19d: istore 12 + // 19f: goto 1e1 + // 1a2: bipush 3 + // 1a3: istore 12 + // 1a5: goto 1e1 + // 1a8: bipush 4 + // 1a9: istore 12 + // 1ab: goto 1e1 + // 1ae: bipush 5 + // 1af: istore 12 + // 1b1: goto 1e1 + // 1b4: bipush 6 + // 1b6: istore 12 + // 1b8: goto 1e1 + // 1bb: bipush 7 + // 1bd: istore 12 + // 1bf: goto 1e1 + // 1c2: bipush 8 + // 1c4: istore 12 + // 1c6: goto 1e1 + // 1c9: bipush 9 + // 1cb: istore 12 + // 1cd: goto 1e1 + // 1d0: bipush 10 + // 1d2: istore 12 + // 1d4: goto 1e1 + // 1d7: bipush 11 + // 1d9: istore 12 + // 1db: goto 1e1 + // 1de: goto 059 + // 1e1: iload 12 + // 1e3: tableswitch -179 0 11 -321 -179 -110 -123 -65 -97 -53 -59 -40 -47 -26 -33 + // 220: return + } +} diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/res/Accesor.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/res/Accesor.dec new file mode 100644 index 00000000..33992141 --- /dev/null +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/res/Accesor.dec @@ -0,0 +1,237 @@ +package pack.tests.reflects.res; + +public class Accesor { + public int BRANCHLOCK_DOT_NET_DEMO; + + public void run() { + Accesor.class.getResourceAsStream("/pack/tests/reflects/res/file").read(); + byte var10001 = 97; + throw new RuntimeException(); + } + + static { + // $VF: Couldn't be decompiled + // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) + // java.lang.RuntimeException: parsing failure! + // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) + // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) + // + // Bytecode: + // 000: ldc "\t.V\u001cV↑\t\t¦\u000e\ufff5\u000e\t\ufff3¢@J¦\u001e\ufff5\u000e\t\u000f¦\ufff2ฤ@O\u0011¦NົR¬\u001c¬↑\t\t¦\u000e\ufff5\u000e\t\ufff3¢@J¦\u001e\ufff5\u000e\t\u000f¦\ufff2\t@O\u0011¦ຢᅰ ([C)V + // 156: invokevirtual java/lang/String.intern ()Ljava/lang/String; + // 159: aastore + // 15a: iload 1 + // 15b: aload 0 + // 15c: arraylength + // 15d: if_icmplt 094 + // 160: aload 7 + // 162: putstatic pack/tests/reflects/res/Accesor.d [Ljava/lang/String; + // 165: goto 218 + // 168: iload 11 + // 16a: bipush -127 + // 16c: ixor + // 16d: istore 11 + // 16f: bipush 1 + // 170: istore 12 + // 172: goto 1da + // 175: iload 11 + // 177: bipush 38 + // 179: ixor + // 17a: istore 11 + // 17c: bipush 1 + // 17d: istore 12 + // 17f: goto 1da + // 182: bipush 2 + // 183: istore 12 + // 185: goto 1da + // 188: iload 11 + // 18a: bipush 125 + // 18c: ixor + // 18d: istore 11 + // 18f: bipush 1 + // 190: istore 12 + // 192: goto 1da + // 195: bipush 3 + // 196: istore 12 + // 198: goto 1da + // 19b: bipush 4 + // 19c: istore 12 + // 19e: goto 1da + // 1a1: bipush 5 + // 1a2: istore 12 + // 1a4: goto 1da + // 1a7: iload 11 + // 1a9: bipush -123 + // 1ab: ixor + // 1ac: istore 11 + // 1ae: bipush 1 + // 1af: istore 12 + // 1b1: goto 1da + // 1b4: bipush 6 + // 1b6: istore 12 + // 1b8: goto 1da + // 1bb: bipush 7 + // 1bd: istore 12 + // 1bf: goto 1da + // 1c2: bipush 8 + // 1c4: istore 12 + // 1c6: goto 1da + // 1c9: bipush 9 + // 1cb: istore 12 + // 1cd: goto 1da + // 1d0: bipush 10 + // 1d2: istore 12 + // 1d4: goto 1da + // 1d7: goto 061 + // 1da: iload 12 + // 1dc: tableswitch -116 0 10 -307 -172 -103 -116 -71 -65 -84 -59 -40 -26 -53 + // 218: return + } +} diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/retrace/Tracee.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/retrace/Tracee.dec new file mode 100644 index 00000000..83b40c4e --- /dev/null +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/retrace/Tracee.dec @@ -0,0 +1,18 @@ +package pack.tests.reflects.retrace; + +public class Tracee { + public static int p = 0; + public int BRANCHLOCK_DOT_NET_DEMO; + + private void doTrace(int var1) { + p++; + StackTraceElement var2 = new Throwable().getStackTrace()[1]; + Tracee.class.getDeclaredMethod(var2.getMethodName(), int.class).invoke(this, var1 - 1); + } + + public void toTrace(int var1) { + if (var1 != 0) { + this.doTrace(var1); + } + } +} diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/retrace/Tracer.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/retrace/Tracer.dec new file mode 100644 index 00000000..1250e42b --- /dev/null +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/retrace/Tracer.dec @@ -0,0 +1,237 @@ +package pack.tests.reflects.retrace; + +public class Tracer { + public int BRANCHLOCK_DOT_NET_DEMO; + + public void run() { + new Tracee().toTrace(5); + if (Tracee.p == 5) { + System.out.println("PASS"); + } else { + System.out.println("FAIL"); + } + } + + static { + // $VF: Couldn't be decompiled + // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) + // java.lang.RuntimeException: parsing failure! + // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) + // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) + // + // Bytecode: + // 000: ldc "C\u0ee4\u0ee4ᄃᄌ]ᅱLO\u0e3eK" + // 002: invokevirtual java/lang/String.toCharArray ()[C + // 005: astore 0 + // 006: bipush 0 + // 007: istore 1 + // 008: aload 0 + // 009: dup + // 00a: bipush 6 + // 00c: swap + // 00d: bipush 2 + // 00e: caload + // 00f: aload 0 + // 010: dup + // 011: bipush 2 + // 012: swap + // 013: bipush 6 + // 015: caload + // 016: castore + // 017: castore + // 018: aload 0 + // 019: dup + // 01a: bipush 10 + // 01c: swap + // 01d: bipush 3 + // 01e: caload + // 01f: aload 0 + // 020: dup + // 021: bipush 3 + // 022: swap + // 023: bipush 10 + // 025: caload + // 026: castore + // 027: castore + // 028: aload 0 + // 029: dup + // 02a: bipush 9 + // 02c: swap + // 02d: bipush 0 + // 02e: caload + // 02f: aload 0 + // 030: dup + // 031: bipush 0 + // 032: swap + // 033: bipush 9 + // 035: caload + // 036: castore + // 037: castore + // 038: aload 0 + // 039: dup + // 03a: bipush 8 + // 03c: swap + // 03d: bipush 15 + // 03f: caload + // 040: aload 0 + // 041: dup + // 042: bipush 15 + // 044: swap + // 045: bipush 8 + // 047: caload + // 048: castore + // 049: castore + // 04a: aload 0 + // 04b: dup + // 04c: bipush 8 + // 04e: swap + // 04f: bipush 2 + // 050: caload + // 051: aload 0 + // 052: dup + // 053: bipush 2 + // 054: swap + // 055: bipush 8 + // 057: caload + // 058: castore + // 059: castore + // 05a: goto 159 + // 05d: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; + // 060: bipush 0 + // 061: aaload + // 062: astore 4 + // 064: aload 4 + // 066: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; + // 069: invokevirtual java/lang/String.hashCode ()I + // 06c: ldc 65535 + // 06e: iand + // 06f: istore 5 + // 071: aload 4 + // 073: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; + // 076: invokevirtual java/lang/String.toCharArray ()[C + // 079: astore 6 + // 07b: aload 0 + // 07c: iload 1 + // 07d: iinc 1 1 + // 080: caload + // 081: sipush 149 + // 084: ixor + // 085: iload 5 + // 087: ixor + // 088: anewarray 42 + // 08b: astore 7 + // 08d: bipush 0 + // 08e: istore 8 + // 090: aload 0 + // 091: iload 1 + // 092: iinc 1 1 + // 095: caload + // 096: bipush 73 + // 098: ixor + // 099: iload 5 + // 09b: ixor + // 09c: istore 2 + // 09d: iload 2 + // 09e: newarray 5 + // 0a0: astore 9 + // 0a2: bipush 0 + // 0a3: istore 10 + // 0a5: iload 2 + // 0a6: ifle 13a + // 0a9: aload 0 + // 0aa: iload 1 + // 0ab: caload + // 0ac: istore 11 + // 0ae: aload 6 + // 0b0: iload 1 + // 0b1: aload 6 + // 0b3: arraylength + // 0b4: irem + // 0b5: caload + // 0b6: bipush 95 + // 0b8: ixor + // 0b9: lookupswitch 107 12 11 220 43 214 44 239 45 246 47 260 51 176 52 189 57 202 58 208 60 226 62 253 113 163 + // 124: aload 9 + // 126: iload 10 + // 128: iload 11 + // 12a: castore + // 12b: iinc 10 1 + // 12e: iinc 1 1 + // 131: iinc 2 -1 + // 134: bipush 0 + // 135: istore 12 + // 137: goto 1c7 + // 13a: aload 7 + // 13c: iload 8 + // 13e: iinc 8 1 + // 141: new java/lang/String + // 144: dup + // 145: aload 9 + // 147: invokespecial java/lang/String. ([C)V + // 14a: invokevirtual java/lang/String.intern ()Ljava/lang/String; + // 14d: aastore + // 14e: iload 1 + // 14f: aload 0 + // 150: arraylength + // 151: if_icmplt 090 + // 154: aload 7 + // 156: putstatic pack/tests/reflects/retrace/Tracer.d [Ljava/lang/String; + // 159: goto 200 + // 15c: iload 11 + // 15e: bipush -21 + // 160: ixor + // 161: istore 11 + // 163: bipush 1 + // 164: istore 12 + // 166: goto 1c7 + // 169: iload 11 + // 16b: bipush 14 + // 16d: ixor + // 16e: istore 11 + // 170: bipush 1 + // 171: istore 12 + // 173: goto 1c7 + // 176: iload 11 + // 178: bipush 10 + // 17a: ixor + // 17b: istore 11 + // 17d: bipush 1 + // 17e: istore 12 + // 180: goto 1c7 + // 183: bipush 2 + // 184: istore 12 + // 186: goto 1c7 + // 189: bipush 3 + // 18a: istore 12 + // 18c: goto 1c7 + // 18f: bipush 4 + // 190: istore 12 + // 192: goto 1c7 + // 195: bipush 5 + // 196: istore 12 + // 198: goto 1c7 + // 19b: iload 11 + // 19d: bipush -122 + // 19f: ixor + // 1a0: istore 11 + // 1a2: bipush 1 + // 1a3: istore 12 + // 1a5: goto 1c7 + // 1a8: bipush 6 + // 1aa: istore 12 + // 1ac: goto 1c7 + // 1af: bipush 7 + // 1b1: istore 12 + // 1b3: goto 1c7 + // 1b6: bipush 8 + // 1b8: istore 12 + // 1ba: goto 1c7 + // 1bd: bipush 9 + // 1bf: istore 12 + // 1c1: goto 1c7 + // 1c4: goto 05d + // 1c7: iload 12 + // 1c9: tableswitch -292 0 9 -292 -165 -83 -109 -96 -64 -70 -58 -33 -46 + // 200: return + } +} diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/security/SecExec.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/security/SecExec.dec new file mode 100644 index 00000000..7e58105b --- /dev/null +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/security/SecExec.dec @@ -0,0 +1,9 @@ +package pack.tests.security; + +public class SecExec { + public int BRANCHLOCK_DOT_NET_DEMO; + + private static void doShutdown() { + System.exit(-1); + } +} diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/security/SecTest.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/security/SecTest.dec new file mode 100644 index 00000000..d6fc9582 --- /dev/null +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/security/SecTest.dec @@ -0,0 +1,258 @@ +package pack.tests.security; + +import java.lang.reflect.Method; + +public class SecTest { + public int BRANCHLOCK_DOT_NET_DEMO; + + public void run() { + System.setSecurityManager(new Sman()); + System.out.print("FAIL"); + + try { + Method var1 = SecExec.class.getDeclaredMethod("doShutdown"); + var1.setAccessible(true); + var1.invoke(null); + } catch (Throwable var5) { + Throwable var3 = var5; + + while (true) { + Throwable var2 = var3.getCause(); + if (var2 == null) { + String var4 = var3.getMessage(); + if (var4 == null) { + return; + } + + if (var4.contains("HOOK")) { + System.out.println("\b\b\b\bPASS"); + } + break; + } + + var3 = var2; + } + } + } + + static { + // $VF: Couldn't be decompiled + // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) + // java.lang.RuntimeException: parsing failure! + // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) + // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) + // + // Bytecode: + // 000: ldc "\ufff5\u0e6fᅡ\uffc9\ufff5ᅫ\u0e61ᅭᅡ\uffc9\uffd1\uffc8ᅮ○←←j\u0e6dᆴᆴᆴᆴ\ufff6\uffef\ufff5ູ\u0e61¢\uffe7\uffe7↑" + // 002: invokevirtual java/lang/String.toCharArray ()[C + // 005: astore 0 + // 006: bipush 0 + // 007: istore 1 + // 008: aload 0 + // 009: dup + // 00a: bipush 12 + // 00c: swap + // 00d: bipush 6 + // 00f: caload + // 010: aload 0 + // 011: dup + // 012: bipush 6 + // 014: swap + // 015: bipush 12 + // 017: caload + // 018: castore + // 019: castore + // 01a: aload 0 + // 01b: dup + // 01c: bipush 29 + // 01e: swap + // 01f: bipush 23 + // 021: caload + // 022: aload 0 + // 023: dup + // 024: bipush 23 + // 026: swap + // 027: bipush 29 + // 029: caload + // 02a: castore + // 02b: castore + // 02c: aload 0 + // 02d: dup + // 02e: bipush 25 + // 030: swap + // 031: bipush 0 + // 032: caload + // 033: aload 0 + // 034: dup + // 035: bipush 0 + // 036: swap + // 037: bipush 25 + // 039: caload + // 03a: castore + // 03b: castore + // 03c: aload 0 + // 03d: dup + // 03e: bipush 29 + // 040: swap + // 041: bipush 45 + // 043: caload + // 044: aload 0 + // 045: dup + // 046: bipush 45 + // 048: swap + // 049: bipush 29 + // 04b: caload + // 04c: castore + // 04d: castore + // 04e: aload 0 + // 04f: dup + // 050: bipush 12 + // 052: swap + // 053: bipush 18 + // 055: caload + // 056: aload 0 + // 057: dup + // 058: bipush 18 + // 05a: swap + // 05b: bipush 12 + // 05d: caload + // 05e: castore + // 05f: castore + // 060: goto 16d + // 063: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; + // 066: bipush 0 + // 067: aaload + // 068: astore 4 + // 06a: aload 4 + // 06c: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; + // 06f: invokevirtual java/lang/String.hashCode ()I + // 072: ldc 65535 + // 074: iand + // 075: istore 5 + // 077: aload 4 + // 079: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; + // 07c: invokevirtual java/lang/String.toCharArray ()[C + // 07f: astore 6 + // 081: aload 0 + // 082: iload 1 + // 083: iinc 1 1 + // 086: caload + // 087: bipush 20 + // 089: ixor + // 08a: iload 5 + // 08c: ixor + // 08d: anewarray 66 + // 090: astore 7 + // 092: bipush 0 + // 093: istore 8 + // 095: aload 0 + // 096: iload 1 + // 097: iinc 1 1 + // 09a: caload + // 09b: sipush 204 + // 09e: ixor + // 09f: iload 5 + // 0a1: ixor + // 0a2: istore 2 + // 0a3: iload 2 + // 0a4: newarray 5 + // 0a6: astore 9 + // 0a8: bipush 0 + // 0a9: istore 10 + // 0ab: iload 2 + // 0ac: ifle 14e + // 0af: aload 0 + // 0b0: iload 1 + // 0b1: caload + // 0b2: istore 11 + // 0b4: aload 6 + // 0b6: iload 1 + // 0b7: aload 6 + // 0b9: arraylength + // 0ba: irem + // 0bb: caload + // 0bc: bipush 88 + // 0be: ixor + // 0bf: lookupswitch 121 14 11 208 12 221 33 177 40 190 42 196 43 202 44 214 45 228 49 235 51 248 57 262 59 269 61 276 118 255 + // 138: aload 9 + // 13a: iload 10 + // 13c: iload 11 + // 13e: castore + // 13f: iinc 10 1 + // 142: iinc 1 1 + // 145: iinc 2 -1 + // 148: bipush 0 + // 149: istore 12 + // 14b: goto 1dd + // 14e: aload 7 + // 150: iload 8 + // 152: iinc 8 1 + // 155: new java/lang/String + // 158: dup + // 159: aload 9 + // 15b: invokespecial java/lang/String. ([C)V + // 15e: invokevirtual java/lang/String.intern ()Ljava/lang/String; + // 161: aastore + // 162: iload 1 + // 163: aload 0 + // 164: arraylength + // 165: if_icmplt 095 + // 168: aload 7 + // 16a: putstatic pack/tests/security/SecTest.d [Ljava/lang/String; + // 16d: goto 224 + // 170: iload 11 + // 172: bipush -90 + // 174: ixor + // 175: istore 11 + // 177: bipush 1 + // 178: istore 12 + // 17a: goto 1dd + // 17d: bipush 2 + // 17e: istore 12 + // 180: goto 1dd + // 183: bipush 3 + // 184: istore 12 + // 186: goto 1dd + // 189: bipush 4 + // 18a: istore 12 + // 18c: goto 1dd + // 18f: bipush 5 + // 190: istore 12 + // 192: goto 1dd + // 195: bipush 6 + // 197: istore 12 + // 199: goto 1dd + // 19c: bipush 7 + // 19e: istore 12 + // 1a0: goto 1dd + // 1a3: bipush 8 + // 1a5: istore 12 + // 1a7: goto 1dd + // 1aa: iload 11 + // 1ac: bipush 33 + // 1ae: ixor + // 1af: istore 11 + // 1b1: bipush 1 + // 1b2: istore 12 + // 1b4: goto 1dd + // 1b7: bipush 9 + // 1b9: istore 12 + // 1bb: goto 1dd + // 1be: bipush 10 + // 1c0: istore 12 + // 1c2: goto 1dd + // 1c5: bipush 11 + // 1c7: istore 12 + // 1c9: goto 1dd + // 1cc: bipush 12 + // 1ce: istore 12 + // 1d0: goto 1dd + // 1d3: bipush 13 + // 1d5: istore 12 + // 1d7: goto 1dd + // 1da: goto 063 + // 1dd: iload 12 + // 1df: tableswitch -26 0 13 -308 -167 -111 -98 -92 -86 -80 -74 -67 -60 -40 -33 -26 -19 + // 224: return + } +} diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/security/Sman.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/security/Sman.dec new file mode 100644 index 00000000..ff32cda5 --- /dev/null +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/security/Sman.dec @@ -0,0 +1,232 @@ +package pack.tests.security; + +import java.security.Permission; + +public class Sman extends SecurityManager { + public int BRANCHLOCK_DOT_NET_DEMO; + + @Override + public void checkPermission(Permission var1) { + if (var1.getName().contains("exitVM")) { + throw new SecurityException("HOOKED"); + } + } + + static { + // $VF: Couldn't be decompiled + // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) + // java.lang.RuntimeException: parsing failure! + // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) + // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) + // + // Bytecode: + // 000: ldc "ຄ\u0eeeリE|akXv]ZZ\u0eeeᄌ\uffdf" + // 002: invokevirtual java/lang/String.toCharArray ()[C + // 005: astore 0 + // 006: bipush 0 + // 007: istore 1 + // 008: aload 0 + // 009: dup + // 00a: bipush 8 + // 00c: swap + // 00d: bipush 12 + // 00f: caload + // 010: aload 0 + // 011: dup + // 012: bipush 12 + // 014: swap + // 015: bipush 8 + // 017: caload + // 018: castore + // 019: castore + // 01a: aload 0 + // 01b: dup + // 01c: bipush 0 + // 01d: swap + // 01e: bipush 1 + // 01f: caload + // 020: aload 0 + // 021: dup + // 022: bipush 1 + // 023: swap + // 024: bipush 0 + // 025: caload + // 026: castore + // 027: castore + // 028: aload 0 + // 029: dup + // 02a: bipush 1 + // 02b: swap + // 02c: bipush 0 + // 02d: caload + // 02e: aload 0 + // 02f: dup + // 030: bipush 0 + // 031: swap + // 032: bipush 1 + // 033: caload + // 034: castore + // 035: castore + // 036: aload 0 + // 037: dup + // 038: bipush 6 + // 03a: swap + // 03b: bipush 19 + // 03d: caload + // 03e: aload 0 + // 03f: dup + // 040: bipush 19 + // 042: swap + // 043: bipush 6 + // 045: caload + // 046: castore + // 047: castore + // 048: goto 15d + // 04b: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; + // 04e: bipush 0 + // 04f: aaload + // 050: astore 4 + // 052: aload 4 + // 054: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; + // 057: invokevirtual java/lang/String.hashCode ()I + // 05a: ldc 65535 + // 05c: iand + // 05d: istore 5 + // 05f: aload 4 + // 061: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; + // 064: invokevirtual java/lang/String.toCharArray ()[C + // 067: astore 6 + // 069: aload 0 + // 06a: iload 1 + // 06b: iinc 1 1 + // 06e: caload + // 06f: bipush 47 + // 071: ixor + // 072: iload 5 + // 074: ixor + // 075: anewarray 22 + // 078: astore 7 + // 07a: bipush 0 + // 07b: istore 8 + // 07d: aload 0 + // 07e: iload 1 + // 07f: iinc 1 1 + // 082: caload + // 083: bipush 65 + // 085: ixor + // 086: iload 5 + // 088: ixor + // 089: istore 2 + // 08a: iload 2 + // 08b: newarray 5 + // 08d: astore 9 + // 08f: bipush 0 + // 090: istore 10 + // 092: iload 2 + // 093: ifle 13e + // 096: aload 0 + // 097: iload 1 + // 098: caload + // 099: istore 11 + // 09b: aload 6 + // 09d: iload 1 + // 09e: aload 6 + // 0a0: arraylength + // 0a1: irem + // 0a2: caload + // 0a3: sipush 203 + // 0a6: ixor + // 0a7: lookupswitch 129 15 152 275 160 185 162 198 165 224 166 237 168 243 170 249 174 255 178 261 184 268 185 282 187 289 190 296 191 303 229 211 + // 128: aload 9 + // 12a: iload 10 + // 12c: iload 11 + // 12e: castore + // 12f: iinc 10 1 + // 132: iinc 1 1 + // 135: iinc 2 -1 + // 138: bipush 0 + // 139: istore 12 + // 13b: goto 1e0 + // 13e: aload 7 + // 140: iload 8 + // 142: iinc 8 1 + // 145: new java/lang/String + // 148: dup + // 149: aload 9 + // 14b: invokespecial java/lang/String. ([C)V + // 14e: invokevirtual java/lang/String.intern ()Ljava/lang/String; + // 151: aastore + // 152: iload 1 + // 153: aload 0 + // 154: arraylength + // 155: if_icmplt 07d + // 158: aload 7 + // 15a: putstatic pack/tests/security/Sman.d [Ljava/lang/String; + // 15d: goto 224 + // 160: iload 11 + // 162: bipush 61 + // 164: ixor + // 165: istore 11 + // 167: bipush 1 + // 168: istore 12 + // 16a: goto 1e0 + // 16d: iload 11 + // 16f: bipush -101 + // 171: ixor + // 172: istore 11 + // 174: bipush 1 + // 175: istore 12 + // 177: goto 1e0 + // 17a: iload 11 + // 17c: bipush 21 + // 17e: ixor + // 17f: istore 11 + // 181: bipush 1 + // 182: istore 12 + // 184: goto 1e0 + // 187: iload 11 + // 189: bipush -3 + // 18b: ixor + // 18c: istore 11 + // 18e: bipush 1 + // 18f: istore 12 + // 191: goto 1e0 + // 194: bipush 2 + // 195: istore 12 + // 197: goto 1e0 + // 19a: bipush 3 + // 19b: istore 12 + // 19d: goto 1e0 + // 1a0: bipush 4 + // 1a1: istore 12 + // 1a3: goto 1e0 + // 1a6: bipush 5 + // 1a7: istore 12 + // 1a9: goto 1e0 + // 1ac: bipush 6 + // 1ae: istore 12 + // 1b0: goto 1e0 + // 1b3: bipush 7 + // 1b5: istore 12 + // 1b7: goto 1e0 + // 1ba: bipush 8 + // 1bc: istore 12 + // 1be: goto 1e0 + // 1c1: bipush 9 + // 1c3: istore 12 + // 1c5: goto 1e0 + // 1c8: bipush 10 + // 1ca: istore 12 + // 1cc: goto 1e0 + // 1cf: bipush 11 + // 1d1: istore 12 + // 1d3: goto 1e0 + // 1d6: bipush 12 + // 1d8: istore 12 + // 1da: goto 1e0 + // 1dd: goto 04b + // 1e0: iload 12 + // 1e2: tableswitch -91 0 12 -336 -186 -91 -78 -117 -130 -104 -54 -47 -60 -72 -66 -40 + // 224: return + } +} diff --git a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/loader/Loader.dec b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/loader/Loader.dec index d6363bc3..d2460118 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/loader/Loader.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/loader/Loader.dec @@ -11,19 +11,15 @@ public class Loader extends ClassLoader { } public static byte[] readAllBytes(InputStream var0, int var1) { - try { - ByteArrayOutputStream var2 = new ByteArrayOutputStream(); - byte[] var3 = new byte[1024]; + ByteArrayOutputStream var2 = new ByteArrayOutputStream(); + byte[] var3 = new byte[1024]; - int var4; - while ((var4 = var0.read(var3)) != -1) { - var2.write(var3, 0, var4); - } - - return var2.toByteArray(); - } catch (Exception var5) { - return null; + int var4; + while ((var4 = var0.read(var3)) != -1) { + var2.write(var3, 0, var4); } + + return var2.toByteArray(); } @Override @@ -143,7 +139,7 @@ public class Loader extends ClassLoader { // 084: ixor // 085: iload 5 // 087: ixor - // 088: anewarray 40 + // 088: anewarray 38 // 08b: astore 7 // 08d: bipush 0 // 08e: istore 8 diff --git a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/res/Accesor.dec b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/res/Accesor.dec index 1139459c..0a95a59a 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/res/Accesor.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/res/Accesor.dec @@ -7,22 +7,14 @@ public class Accesor { } public void run(int var1) { - try { - if (Accesor.class.getResourceAsStream("/pack/tests/reflects/res/file").read() != 97) { - throw new RuntimeException(); - } - - if (Accesor.class.getResourceAsStream("file2").read() != 114) { - throw new RuntimeException(); - } - - if (Accesor.class.getClassLoader().getResourceAsStream("pack/tests/reflects/res/file3").read() != 99) { - throw new RuntimeException(); - } - + if (Accesor.class.getResourceAsStream("/pack/tests/reflects/res/file").read() != 97) { + throw new RuntimeException(); + } else if (Accesor.class.getResourceAsStream("file2").read() != 114) { + throw new RuntimeException(); + } else if (Accesor.class.getClassLoader().getResourceAsStream("pack/tests/reflects/res/file3").read() != 99) { + throw new RuntimeException(); + } else { System.out.println("PASS"); - } catch (Exception var2) { - System.out.println("FAIL"); } } @@ -132,7 +124,7 @@ public class Accesor { // 088: ixor // 089: iload 5 // 08b: ixor - // 08c: anewarray 63 + // 08c: anewarray 59 // 08f: astore 7 // 091: bipush 0 // 092: istore 8 diff --git a/testData/results/custom-jars/branchlock/branchlock-string/pack/Main.dec b/testData/results/custom-jars/branchlock/branchlock-string/pack/Main.dec index fb7061d8..3b0d5841 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string/pack/Main.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string/pack/Main.dec @@ -154,4 +154,208 @@ public class Main { Calc.runAll(); System.out.println("-------------Tests r Finished-------------"); } + + static { + // $VF: Couldn't be decompiled + // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) + // java.lang.RuntimeException: parsing failure! + // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) + // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) + // + // Bytecode: + // 000: ldc "#\u0ebe↑ᄁ+8>Lᄀ\uffd1\"ᅲ¢\u0019(>[¢\ufff5?ᅧᄃ?, \u0ee0テᅪ\"ᅧᄈ(m:Fᄈ\uffc0!ᅵ¢, \"Aᄃナ>\uffd1ᄇ(#*[ᄄノmᅥᆵ =,[레$\uffc9ᄅ94a\u000fᆬᅢ+ᅩᆪ$(#Lᄍノmᅱᄅ7(a\u000f계)ナᄚ?$.J○\u0ebf\u0019\uffc0ᄈ9m|\u0001\ufff1゚m↓ᆴ%(?Fᄡᅣ#ᅥᆬm\u0ea4\u001bJ뷔$ᅧᆴwm|\u0001\ufff0ᅲຼ\ufff1ᆬ>9m\u001d○メwナチ##\"[ᄀ\uffd1$ᅧᆴmຼ\u0019Jᄈ\uffd1mヤ○zwmfᆴᅨ(ᅲテ!,>\\¢ົ\u0019\uffc0ᄈ9m\u007f\u0001\ufff6゚m\ufff7ᆬ\u0019?,Lᆬナົ\ufff1ᆬ>9m\u001d○ヤwナテ\"8#[ᆬᅲmວチ89%@ᄇ゚mᅪᄉ7=>Mວ\ufff1(ᅱᄡm\u007fc\u0017\ufffaナ\u001e:ᆪmຯ\u0016gノ→\u0019\ufff8ຂ```\u0002■ネ`ネ■`9`\u0002ヤ\uffc0>\uffd1¢n\u007fw\u000fメ\uffc0+\uffc9ᆬ.9>\u0002■ネ`ネ■```\u0002■ネ`\u0ee2ニ\"?mBᆵᅱ9ナᄉ>(?\\↓ナ=ᅣᄈ>m,Cᆲナ\"ᅢ¢9%(\u000f꺄>ᅩᆪ>m J계>ナᄡ%(m@깨8ᅱᆪ,9\"]¢ᅩ>ナᄃ\"\")\u000fᆬᅨ\"\uffd0ᄃ%c຺{ᆬᅱ9ナ\ufff2c~w\u000fメ\uffc0>ᅧᄉ?.(\u000f\u0e80ネ`ネ■```\u0002■ネ`ネ■\u0019(>[¢ニ|゚¢\u000f,>Fᆪᅱ`ネ■```\u0002■ネ`ネ■`ຈ\u0019Jᄈ\uffd1mラ○\u007fwml또#\uffc0ᄈ(m遗迨フ│\f↑\uffc8EEE\u000f¢ナmᆵຬ\b\u001f\u001f`メູ\u0019\uffc0ᄈ9m\u007f\u0001\ufff4゚m ̄ᄅ(!)\u000f\u0ea6\ufff1(ᅱᄡm|c\u0019\ufffaナ\u001dᅧᆵ!mຒ{ᄄ\uffc0m\ufff1ᆬ>`m\f\ufff2ナ$ᅱ¢+\"?\u000fモᅰ?ᅩᆴ*\u000f\"@ᄡナ,ᅨᄂm\f#K벼$\uffc1¢!$&J¢\uffc0#ᅮᄅ?\"#Bᆬᅨ9ヒູ\u0019(>[¢ヤcラ\ufffam\u000e?@쀠mປマ\u0e6b!4\u000fᆪᅧ ᅰᄀ9$/Fᆲᅩ9ᅵ¢,#)\u000fᆬᅢ+ᅩᆪ$(#Lᄍナ,ᅲᆬm9(\\ᄡ\uffc0)ナᄄ(?(\u000eປ←$ᅨᆱwm%[ᄡᅰ>゚\uffefb*$[ᄄ\uffd0/ヒᆪ\" bGᄉ\uffdf=ᅱᄁb\u0007,Yᄀ↑/ᅢᄉ>.,[ᆵᅲ\u0019\uffc0ᄈ9຺\u0019Jᄈ\uffd1mヤ○ywmnᆪᅥ8ᅲᄀ.4mຸヤ\uffc0>\uffd1¢\u007fcx\u0015¢←\"ᅣᄂ(?mູヤ\uffc0>\uffd1¢|c~\u0015¢\ufff1%ᅲᆵ\uffc0m຺{ᆬᅱ9ナ\ufff1cxw\u000fモ\uffd0/₩ᆲ,>>\u000fຄネ`ネ■```\u0002■ネ`ネ■\u0019(>[¢ニ~゚¢\b++Fᆪᅩ(ᅨᆪ4``\u0002■ネ`ネ■```\u0002■\u0e83`ネ■```\u0002■ネ`ネ■`\u0019(\\ᄡᅱmᅲ¢\u000b$#F뽜(\uffc1■```\u0002■ネ`ネ■```ຫノ○" + // 002: invokevirtual java/lang/String.toCharArray ()[C + // 005: astore 0 + // 006: bipush 0 + // 007: istore 1 + // 008: aload 0 + // 009: dup + // 00a: sipush 266 + // 00d: swap + // 00e: sipush 518 + // 011: caload + // 012: aload 0 + // 013: dup + // 014: sipush 518 + // 017: swap + // 018: sipush 266 + // 01b: caload + // 01c: castore + // 01d: castore + // 01e: aload 0 + // 01f: dup + // 020: sipush 245 + // 023: swap + // 024: sipush 742 + // 027: caload + // 028: aload 0 + // 029: dup + // 02a: sipush 742 + // 02d: swap + // 02e: sipush 245 + // 031: caload + // 032: castore + // 033: castore + // 034: aload 0 + // 035: dup + // 036: sipush 589 + // 039: swap + // 03a: bipush 0 + // 03b: caload + // 03c: aload 0 + // 03d: dup + // 03e: bipush 0 + // 03f: swap + // 040: sipush 589 + // 043: caload + // 044: castore + // 045: castore + // 046: aload 0 + // 047: dup + // 048: sipush 616 + // 04b: swap + // 04c: sipush 1455 + // 04f: caload + // 050: aload 0 + // 051: dup + // 052: sipush 1455 + // 055: swap + // 056: sipush 616 + // 059: caload + // 05a: castore + // 05b: castore + // 05c: bipush 0 + // 05d: istore 3 + // 05e: goto 140 + // 061: astore 3 + // 062: aload 3 + // 063: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; + // 066: bipush 0 + // 067: aaload + // 068: astore 4 + // 06a: aload 4 + // 06c: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; + // 06f: invokevirtual java/lang/String.hashCode ()I + // 072: ldc 65535 + // 074: iand + // 075: istore 5 + // 077: aload 4 + // 079: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; + // 07c: invokevirtual java/lang/String.toCharArray ()[C + // 07f: astore 6 + // 081: aload 0 + // 082: iload 1 + // 083: iinc 1 1 + // 086: caload + // 087: sipush 220 + // 08a: ixor + // 08b: iload 5 + // 08d: ixor + // 08e: anewarray 174 + // 091: astore 7 + // 093: bipush 0 + // 094: istore 8 + // 096: aload 0 + // 097: iload 1 + // 098: iinc 1 1 + // 09b: caload + // 09c: bipush 0 + // 09d: ixor + // 09e: iload 5 + // 0a0: ixor + // 0a1: istore 2 + // 0a2: iload 2 + // 0a3: newarray 5 + // 0a5: astore 9 + // 0a7: bipush 0 + // 0a8: istore 10 + // 0aa: iload 2 + // 0ab: ifle 121 + // 0ae: aload 0 + // 0af: iload 1 + // 0b0: caload + // 0b1: istore 11 + // 0b3: aload 6 + // 0b5: iload 1 + // 0b6: aload 6 + // 0b8: arraylength + // 0b9: irem + // 0ba: caload + // 0bb: bipush 96 + // 0bd: ixor + // 0be: lookupswitch 77 8 1 146 3 159 9 165 11 178 14 203 16 133 45 191 78 197 + // 108: nop + // 109: nop + // 10a: athrow + // 10b: aload 9 + // 10d: iload 10 + // 10f: iload 11 + // 111: castore + // 112: iinc 10 1 + // 115: iinc 1 1 + // 118: iinc 2 -1 + // 11b: bipush 0 + // 11c: istore 12 + // 11e: goto 192 + // 121: aload 7 + // 123: iload 8 + // 125: iinc 8 1 + // 128: new java/lang/String + // 12b: dup + // 12c: aload 9 + // 12e: invokespecial java/lang/String. ([C)V + // 131: invokevirtual java/lang/String.intern ()Ljava/lang/String; + // 134: aastore + // 135: iload 1 + // 136: aload 0 + // 137: arraylength + // 138: if_icmplt 096 + // 13b: aload 7 + // 13d: putstatic pack/Main.catch [Ljava/lang/String; + // 140: goto 1bc + // 143: iload 11 + // 145: bipush -91 + // 147: ixor + // 148: istore 11 + // 14a: bipush 1 + // 14b: istore 12 + // 14d: goto 192 + // 150: iload 11 + // 152: bipush 77 + // 154: ixor + // 155: istore 11 + // 157: bipush 1 + // 158: istore 12 + // 15a: goto 192 + // 15d: bipush 2 + // 15e: istore 12 + // 160: goto 192 + // 163: iload 11 + // 165: bipush 47 + // 167: ixor + // 168: istore 11 + // 16a: bipush 1 + // 16b: istore 12 + // 16d: goto 192 + // 170: iload 11 + // 172: bipush -64 + // 174: ixor + // 175: istore 11 + // 177: bipush 1 + // 178: istore 12 + // 17a: goto 192 + // 17d: bipush 3 + // 17e: istore 12 + // 180: goto 192 + // 183: bipush 4 + // 184: istore 12 + // 186: goto 192 + // 189: bipush 5 + // 18a: istore 12 + // 18c: goto 192 + // 18f: goto 061 + // 192: iload 12 + // 194: tableswitch -137 0 5 -234 -137 -81 -68 -23 -36 + // 1bc: return + } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/basics/accu/Digi.dec b/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/basics/accu/Digi.dec index 91d9df62..0420845b 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/basics/accu/Digi.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/basics/accu/Digi.dec @@ -22,4 +22,237 @@ public class Digi { System.out.println("FAIL"); } } + + static { + // $VF: Couldn't be decompiled + // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) + // java.lang.RuntimeException: parsing failure! + // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) + // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) + // + // Bytecode: + // 000: ldc "ᄌ\u0007\u0012ᄀ\u001dป\u0ee7\u0007ᄉ\u0ee7\u0004" + // 002: invokevirtual java/lang/String.toCharArray ()[C + // 005: astore 0 + // 006: bipush 0 + // 007: istore 1 + // 008: aload 0 + // 009: dup + // 00a: bipush 1 + // 00b: swap + // 00c: bipush 9 + // 00e: caload + // 00f: aload 0 + // 010: dup + // 011: bipush 9 + // 013: swap + // 014: bipush 1 + // 015: caload + // 016: castore + // 017: castore + // 018: aload 0 + // 019: dup + // 01a: bipush 10 + // 01c: swap + // 01d: bipush 7 + // 01f: caload + // 020: aload 0 + // 021: dup + // 022: bipush 7 + // 024: swap + // 025: bipush 10 + // 027: caload + // 028: castore + // 029: castore + // 02a: aload 0 + // 02b: dup + // 02c: bipush 5 + // 02d: swap + // 02e: bipush 0 + // 02f: caload + // 030: aload 0 + // 031: dup + // 032: bipush 0 + // 033: swap + // 034: bipush 5 + // 035: caload + // 036: castore + // 037: castore + // 038: aload 0 + // 039: dup + // 03a: bipush 3 + // 03b: swap + // 03c: bipush 14 + // 03e: caload + // 03f: aload 0 + // 040: dup + // 041: bipush 14 + // 043: swap + // 044: bipush 3 + // 045: caload + // 046: castore + // 047: castore + // 048: aload 0 + // 049: dup + // 04a: bipush 6 + // 04c: swap + // 04d: bipush 10 + // 04f: caload + // 050: aload 0 + // 051: dup + // 052: bipush 10 + // 054: swap + // 055: bipush 6 + // 057: caload + // 058: castore + // 059: castore + // 05a: bipush 0 + // 05b: istore 3 + // 05c: goto 168 + // 05f: astore 3 + // 060: aload 3 + // 061: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; + // 064: bipush 0 + // 065: aaload + // 066: astore 4 + // 068: aload 4 + // 06a: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; + // 06d: invokevirtual java/lang/String.hashCode ()I + // 070: ldc 65535 + // 072: iand + // 073: istore 5 + // 075: aload 4 + // 077: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; + // 07a: invokevirtual java/lang/String.toCharArray ()[C + // 07d: astore 6 + // 07f: aload 0 + // 080: iload 1 + // 081: iinc 1 1 + // 084: caload + // 085: sipush 176 + // 088: ixor + // 089: iload 5 + // 08b: ixor + // 08c: anewarray 44 + // 08f: astore 7 + // 091: bipush 0 + // 092: istore 8 + // 094: aload 0 + // 095: iload 1 + // 096: iinc 1 1 + // 099: caload + // 09a: bipush 74 + // 09c: ixor + // 09d: iload 5 + // 09f: ixor + // 0a0: istore 2 + // 0a1: iload 2 + // 0a2: newarray 5 + // 0a4: astore 9 + // 0a6: bipush 0 + // 0a7: istore 10 + // 0a9: iload 2 + // 0aa: ifle 149 + // 0ad: aload 0 + // 0ae: iload 1 + // 0af: caload + // 0b0: istore 11 + // 0b2: aload 6 + // 0b4: iload 1 + // 0b5: aload 6 + // 0b7: arraylength + // 0b8: irem + // 0b9: caload + // 0ba: bipush 12 + // 0bc: ixor + // 0bd: lookupswitch 118 13 34 174 72 213 101 187 103 200 105 219 107 225 109 231 110 244 111 250 120 257 121 264 124 271 127 278 + // 130: nop + // 131: nop + // 132: athrow + // 133: aload 9 + // 135: iload 10 + // 137: iload 11 + // 139: castore + // 13a: iinc 10 1 + // 13d: iinc 1 1 + // 140: iinc 2 -1 + // 143: bipush 0 + // 144: istore 12 + // 146: goto 1dd + // 149: aload 7 + // 14b: iload 8 + // 14d: iinc 8 1 + // 150: new java/lang/String + // 153: dup + // 154: aload 9 + // 156: invokespecial java/lang/String. ([C)V + // 159: invokevirtual java/lang/String.intern ()Ljava/lang/String; + // 15c: aastore + // 15d: iload 1 + // 15e: aload 0 + // 15f: arraylength + // 160: if_icmplt 094 + // 163: aload 7 + // 165: putstatic pack/tests/basics/accu/Digi.catch [Ljava/lang/String; + // 168: goto 218 + // 16b: iload 11 + // 16d: bipush 84 + // 16f: ixor + // 170: istore 11 + // 172: bipush 1 + // 173: istore 12 + // 175: goto 1dd + // 178: iload 11 + // 17a: bipush -12 + // 17c: ixor + // 17d: istore 11 + // 17f: bipush 1 + // 180: istore 12 + // 182: goto 1dd + // 185: iload 11 + // 187: bipush -32 + // 189: ixor + // 18a: istore 11 + // 18c: bipush 1 + // 18d: istore 12 + // 18f: goto 1dd + // 192: bipush 2 + // 193: istore 12 + // 195: goto 1dd + // 198: bipush 3 + // 199: istore 12 + // 19b: goto 1dd + // 19e: bipush 4 + // 19f: istore 12 + // 1a1: goto 1dd + // 1a4: iload 11 + // 1a6: bipush 120 + // 1a8: ixor + // 1a9: istore 11 + // 1ab: bipush 1 + // 1ac: istore 12 + // 1ae: goto 1dd + // 1b1: bipush 5 + // 1b2: istore 12 + // 1b4: goto 1dd + // 1b7: bipush 6 + // 1b9: istore 12 + // 1bb: goto 1dd + // 1be: bipush 7 + // 1c0: istore 12 + // 1c2: goto 1dd + // 1c5: bipush 8 + // 1c7: istore 12 + // 1c9: goto 1dd + // 1cc: bipush 9 + // 1ce: istore 12 + // 1d0: goto 1dd + // 1d3: bipush 10 + // 1d5: istore 12 + // 1d7: goto 1dd + // 1da: goto 05f + // 1dd: iload 12 + // 1df: tableswitch -172 0 10 -310 -172 -103 -90 -77 -65 -116 -46 -33 -26 -40 + // 218: return + } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/basics/cross/Top.dec b/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/basics/cross/Top.dec index a61980fc..c1268b5e 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/basics/cross/Top.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/basics/cross/Top.dec @@ -13,4 +13,233 @@ public class Top extends Abst1 implements Inte { public int add(int a, int b) { return a + b; } + + static { + // $VF: Couldn't be decompiled + // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) + // java.lang.RuntimeException: parsing failure! + // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) + // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) + // + // Bytecode: + // 000: ldc "]\u0ef9oM_e\u0ef9\\hGๅ" + // 002: invokevirtual java/lang/String.toCharArray ()[C + // 005: astore 0 + // 006: bipush 0 + // 007: istore 1 + // 008: aload 0 + // 009: dup + // 00a: bipush 10 + // 00c: swap + // 00d: bipush 4 + // 00e: caload + // 00f: aload 0 + // 010: dup + // 011: bipush 4 + // 012: swap + // 013: bipush 10 + // 015: caload + // 016: castore + // 017: castore + // 018: aload 0 + // 019: dup + // 01a: bipush 9 + // 01c: swap + // 01d: bipush 10 + // 01f: caload + // 020: aload 0 + // 021: dup + // 022: bipush 10 + // 024: swap + // 025: bipush 9 + // 027: caload + // 028: castore + // 029: castore + // 02a: aload 0 + // 02b: dup + // 02c: bipush 4 + // 02d: swap + // 02e: bipush 0 + // 02f: caload + // 030: aload 0 + // 031: dup + // 032: bipush 0 + // 033: swap + // 034: bipush 4 + // 035: caload + // 036: castore + // 037: castore + // 038: aload 0 + // 039: dup + // 03a: bipush 4 + // 03b: swap + // 03c: bipush 11 + // 03e: caload + // 03f: aload 0 + // 040: dup + // 041: bipush 11 + // 043: swap + // 044: bipush 4 + // 045: caload + // 046: castore + // 047: castore + // 048: aload 0 + // 049: dup + // 04a: bipush 3 + // 04b: swap + // 04c: bipush 1 + // 04d: caload + // 04e: aload 0 + // 04f: dup + // 050: bipush 1 + // 051: swap + // 052: bipush 3 + // 053: caload + // 054: castore + // 055: castore + // 056: bipush 0 + // 057: istore 3 + // 058: goto 164 + // 05b: astore 3 + // 05c: aload 3 + // 05d: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; + // 060: bipush 0 + // 061: aaload + // 062: astore 4 + // 064: aload 4 + // 066: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; + // 069: invokevirtual java/lang/String.hashCode ()I + // 06c: ldc 65535 + // 06e: iand + // 06f: istore 5 + // 071: aload 4 + // 073: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; + // 076: invokevirtual java/lang/String.toCharArray ()[C + // 079: astore 6 + // 07b: aload 0 + // 07c: iload 1 + // 07d: iinc 1 1 + // 080: caload + // 081: sipush 238 + // 084: ixor + // 085: iload 5 + // 087: ixor + // 088: anewarray 45 + // 08b: astore 7 + // 08d: bipush 0 + // 08e: istore 8 + // 090: aload 0 + // 091: iload 1 + // 092: iinc 1 1 + // 095: caload + // 096: bipush 84 + // 098: ixor + // 099: iload 5 + // 09b: ixor + // 09c: istore 2 + // 09d: iload 2 + // 09e: newarray 5 + // 0a0: astore 9 + // 0a2: bipush 0 + // 0a3: istore 10 + // 0a5: iload 2 + // 0a6: ifle 145 + // 0a9: aload 0 + // 0aa: iload 1 + // 0ab: caload + // 0ac: istore 11 + // 0ae: aload 6 + // 0b0: iload 1 + // 0b1: aload 6 + // 0b3: arraylength + // 0b4: irem + // 0b5: caload + // 0b6: bipush 106 + // 0b8: ixor + // 0b9: lookupswitch 118 13 1 174 3 187 5 206 8 212 9 218 11 231 15 237 24 244 25 251 26 258 30 265 62 272 68 193 + // 12c: nop + // 12d: nop + // 12e: athrow + // 12f: aload 9 + // 131: iload 10 + // 133: iload 11 + // 135: castore + // 136: iinc 10 1 + // 139: iinc 1 1 + // 13c: iinc 2 -1 + // 13f: bipush 0 + // 140: istore 12 + // 142: goto 1d3 + // 145: aload 7 + // 147: iload 8 + // 149: iinc 8 1 + // 14c: new java/lang/String + // 14f: dup + // 150: aload 9 + // 152: invokespecial java/lang/String. ([C)V + // 155: invokevirtual java/lang/String.intern ()Ljava/lang/String; + // 158: aastore + // 159: iload 1 + // 15a: aload 0 + // 15b: arraylength + // 15c: if_icmplt 090 + // 15f: aload 7 + // 161: putstatic pack/tests/basics/cross/Top.catch [Ljava/lang/String; + // 164: goto 214 + // 167: iload 11 + // 169: bipush 12 + // 16b: ixor + // 16c: istore 11 + // 16e: bipush 1 + // 16f: istore 12 + // 171: goto 1d3 + // 174: bipush 2 + // 175: istore 12 + // 177: goto 1d3 + // 17a: iload 11 + // 17c: bipush 20 + // 17e: ixor + // 17f: istore 11 + // 181: bipush 1 + // 182: istore 12 + // 184: goto 1d3 + // 187: bipush 3 + // 188: istore 12 + // 18a: goto 1d3 + // 18d: bipush 4 + // 18e: istore 12 + // 190: goto 1d3 + // 193: iload 11 + // 195: bipush 41 + // 197: ixor + // 198: istore 11 + // 19a: bipush 1 + // 19b: istore 12 + // 19d: goto 1d3 + // 1a0: bipush 5 + // 1a1: istore 12 + // 1a3: goto 1d3 + // 1a6: bipush 6 + // 1a8: istore 12 + // 1aa: goto 1d3 + // 1ad: bipush 7 + // 1af: istore 12 + // 1b1: goto 1d3 + // 1b4: bipush 8 + // 1b6: istore 12 + // 1b8: goto 1d3 + // 1bb: bipush 9 + // 1bd: istore 12 + // 1bf: goto 1d3 + // 1c2: bipush 10 + // 1c4: istore 12 + // 1c6: goto 1d3 + // 1c9: bipush 11 + // 1cb: istore 12 + // 1cd: goto 1d3 + // 1d0: goto 05b + // 1d3: iload 12 + // 1d5: tableswitch -26 0 11 -304 -166 -110 -97 -78 -72 -91 -66 -53 -40 -26 -33 + // 214: return + } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/basics/ctrl/Ctrl.dec b/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/basics/ctrl/Ctrl.dec index f9e52a7c..4216d9d3 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/basics/ctrl/Ctrl.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/basics/ctrl/Ctrl.dec @@ -27,4 +27,209 @@ public class Ctrl { this.runf(); System.out.println(this.ret); } + + static { + // $VF: Couldn't be decompiled + // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) + // java.lang.RuntimeException: parsing failure! + // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) + // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) + // + // Bytecode: + // 000: ldc "ຑຑᅪສ↑ດᅧᄊᄂᄂດ\ufff8ᅴ헤" + // 002: invokevirtual java/lang/String.toCharArray ()[C + // 005: astore 0 + // 006: bipush 0 + // 007: istore 1 + // 008: aload 0 + // 009: dup + // 00a: bipush 11 + // 00c: swap + // 00d: bipush 2 + // 00e: caload + // 00f: aload 0 + // 010: dup + // 011: bipush 2 + // 012: swap + // 013: bipush 11 + // 015: caload + // 016: castore + // 017: castore + // 018: aload 0 + // 019: dup + // 01a: bipush 3 + // 01b: swap + // 01c: bipush 0 + // 01d: caload + // 01e: aload 0 + // 01f: dup + // 020: bipush 0 + // 021: swap + // 022: bipush 3 + // 023: caload + // 024: castore + // 025: castore + // 026: aload 0 + // 027: dup + // 028: bipush 14 + // 02a: swap + // 02b: bipush 21 + // 02d: caload + // 02e: aload 0 + // 02f: dup + // 030: bipush 21 + // 032: swap + // 033: bipush 14 + // 035: caload + // 036: castore + // 037: castore + // 038: bipush 0 + // 039: istore 3 + // 03a: goto 144 + // 03d: astore 3 + // 03e: aload 3 + // 03f: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; + // 042: bipush 0 + // 043: aaload + // 044: astore 4 + // 046: aload 4 + // 048: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; + // 04b: invokevirtual java/lang/String.hashCode ()I + // 04e: ldc 65535 + // 050: iand + // 051: istore 5 + // 053: aload 4 + // 055: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; + // 058: invokevirtual java/lang/String.toCharArray ()[C + // 05b: astore 6 + // 05d: aload 0 + // 05e: iload 1 + // 05f: iinc 1 1 + // 062: caload + // 063: bipush 7 + // 065: ixor + // 066: iload 5 + // 068: ixor + // 069: anewarray 24 + // 06c: astore 7 + // 06e: bipush 0 + // 06f: istore 8 + // 071: aload 0 + // 072: iload 1 + // 073: iinc 1 1 + // 076: caload + // 077: bipush 57 + // 079: ixor + // 07a: iload 5 + // 07c: ixor + // 07d: istore 2 + // 07e: iload 2 + // 07f: newarray 5 + // 081: astore 9 + // 083: bipush 0 + // 084: istore 10 + // 086: iload 2 + // 087: ifle 125 + // 08a: aload 0 + // 08b: iload 1 + // 08c: caload + // 08d: istore 11 + // 08f: aload 6 + // 091: iload 1 + // 092: aload 6 + // 094: arraylength + // 095: irem + // 096: caload + // 097: bipush 43 + // 099: ixor + // 09a: lookupswitch 117 13 5 199 64 173 66 186 71 205 72 211 73 230 74 236 78 243 88 250 89 263 91 270 95 277 104 224 + // 10c: nop + // 10d: nop + // 10e: athrow + // 10f: aload 9 + // 111: iload 10 + // 113: iload 11 + // 115: castore + // 116: iinc 10 1 + // 119: iinc 1 1 + // 11c: iinc 2 -1 + // 11f: bipush 0 + // 120: istore 12 + // 122: goto 1b9 + // 125: aload 7 + // 127: iload 8 + // 129: iinc 8 1 + // 12c: new java/lang/String + // 12f: dup + // 130: aload 9 + // 132: invokespecial java/lang/String. ([C)V + // 135: invokevirtual java/lang/String.intern ()Ljava/lang/String; + // 138: aastore + // 139: iload 1 + // 13a: aload 0 + // 13b: arraylength + // 13c: if_icmplt 071 + // 13f: aload 7 + // 141: putstatic pack/tests/basics/ctrl/Ctrl.catch [Ljava/lang/String; + // 144: goto 1f4 + // 147: iload 11 + // 149: bipush -2 + // 14b: ixor + // 14c: istore 11 + // 14e: bipush 1 + // 14f: istore 12 + // 151: goto 1b9 + // 154: iload 11 + // 156: bipush -117 + // 158: ixor + // 159: istore 11 + // 15b: bipush 1 + // 15c: istore 12 + // 15e: goto 1b9 + // 161: bipush 2 + // 162: istore 12 + // 164: goto 1b9 + // 167: bipush 3 + // 168: istore 12 + // 16a: goto 1b9 + // 16d: iload 11 + // 16f: bipush -102 + // 171: ixor + // 172: istore 11 + // 174: bipush 1 + // 175: istore 12 + // 177: goto 1b9 + // 17a: bipush 4 + // 17b: istore 12 + // 17d: goto 1b9 + // 180: bipush 5 + // 181: istore 12 + // 183: goto 1b9 + // 186: bipush 6 + // 188: istore 12 + // 18a: goto 1b9 + // 18d: bipush 7 + // 18f: istore 12 + // 191: goto 1b9 + // 194: iload 11 + // 196: bipush -9 + // 198: ixor + // 199: istore 11 + // 19b: bipush 1 + // 19c: istore 12 + // 19e: goto 1b9 + // 1a1: bipush 8 + // 1a3: istore 12 + // 1a5: goto 1b9 + // 1a8: bipush 9 + // 1aa: istore 12 + // 1ac: goto 1b9 + // 1af: bipush 10 + // 1b1: istore 12 + // 1b3: goto 1b9 + // 1b6: goto 03d + // 1b9: iload 12 + // 1bb: tableswitch -103 0 10 -309 -172 -103 -90 -116 -84 -78 -53 -65 -26 -39 + // 1f4: return + } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/basics/inner/Test.dec b/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/basics/inner/Test.dec index 6928f9f1..93790dbb 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/basics/inner/Test.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/basics/inner/Test.dec @@ -13,4 +13,219 @@ public class Test { System.out.println("ERROR"); } } + + static { + // $VF: Couldn't be decompiled + // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) + // java.lang.RuntimeException: parsing failure! + // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) + // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) + // + // Bytecode: + // 000: ldc "ヨ\u0e6dᅪナ-\uffd8\u0e6cラヨᅬ1ใ" + // 002: invokevirtual java/lang/String.toCharArray ()[C + // 005: astore 0 + // 006: bipush 0 + // 007: istore 1 + // 008: aload 0 + // 009: dup + // 00a: bipush 7 + // 00c: swap + // 00d: bipush 5 + // 00e: caload + // 00f: aload 0 + // 010: dup + // 011: bipush 5 + // 012: swap + // 013: bipush 7 + // 015: caload + // 016: castore + // 017: castore + // 018: aload 0 + // 019: dup + // 01a: bipush 8 + // 01c: swap + // 01d: bipush 11 + // 01f: caload + // 020: aload 0 + // 021: dup + // 022: bipush 11 + // 024: swap + // 025: bipush 8 + // 027: caload + // 028: castore + // 029: castore + // 02a: aload 0 + // 02b: dup + // 02c: bipush 8 + // 02e: swap + // 02f: bipush 0 + // 030: caload + // 031: aload 0 + // 032: dup + // 033: bipush 0 + // 034: swap + // 035: bipush 8 + // 037: caload + // 038: castore + // 039: castore + // 03a: aload 0 + // 03b: dup + // 03c: bipush 2 + // 03d: swap + // 03e: bipush 16 + // 040: caload + // 041: aload 0 + // 042: dup + // 043: bipush 16 + // 045: swap + // 046: bipush 2 + // 047: caload + // 048: castore + // 049: castore + // 04a: bipush 0 + // 04b: istore 3 + // 04c: goto 158 + // 04f: astore 3 + // 050: aload 3 + // 051: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; + // 054: bipush 0 + // 055: aaload + // 056: astore 4 + // 058: aload 4 + // 05a: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; + // 05d: invokevirtual java/lang/String.hashCode ()I + // 060: ldc 65535 + // 062: iand + // 063: istore 5 + // 065: aload 4 + // 067: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; + // 06a: invokevirtual java/lang/String.toCharArray ()[C + // 06d: astore 6 + // 06f: aload 0 + // 070: iload 1 + // 071: iinc 1 1 + // 074: caload + // 075: sipush 232 + // 078: ixor + // 079: iload 5 + // 07b: ixor + // 07c: anewarray 58 + // 07f: astore 7 + // 081: bipush 0 + // 082: istore 8 + // 084: aload 0 + // 085: iload 1 + // 086: iinc 1 1 + // 089: caload + // 08a: sipush 192 + // 08d: ixor + // 08e: iload 5 + // 090: ixor + // 091: istore 2 + // 092: iload 2 + // 093: newarray 5 + // 095: astore 9 + // 097: bipush 0 + // 098: istore 10 + // 09a: iload 2 + // 09b: ifle 139 + // 09e: aload 0 + // 09f: iload 1 + // 0a0: caload + // 0a1: istore 11 + // 0a3: aload 6 + // 0a5: iload 1 + // 0a6: aload 6 + // 0a8: arraylength + // 0a9: irem + // 0aa: caload + // 0ab: sipush 165 + // 0ae: ixor + // 0af: lookupswitch 116 13 139 217 192 172 196 185 198 198 199 211 203 223 204 229 206 235 209 242 213 256 214 263 215 270 241 249 + // 120: nop + // 121: nop + // 122: athrow + // 123: aload 9 + // 125: iload 10 + // 127: iload 11 + // 129: castore + // 12a: iinc 10 1 + // 12d: iinc 1 1 + // 130: iinc 2 -1 + // 133: bipush 0 + // 134: istore 12 + // 136: goto 1c7 + // 139: aload 7 + // 13b: iload 8 + // 13d: iinc 8 1 + // 140: new java/lang/String + // 143: dup + // 144: aload 9 + // 146: invokespecial java/lang/String. ([C)V + // 149: invokevirtual java/lang/String.intern ()Ljava/lang/String; + // 14c: aastore + // 14d: iload 1 + // 14e: aload 0 + // 14f: arraylength + // 150: if_icmplt 084 + // 153: aload 7 + // 155: putstatic pack/tests/basics/inner/Test.catch [Ljava/lang/String; + // 158: goto 208 + // 15b: iload 11 + // 15d: bipush -60 + // 15f: ixor + // 160: istore 11 + // 162: bipush 1 + // 163: istore 12 + // 165: goto 1c7 + // 168: iload 11 + // 16a: bipush 126 + // 16c: ixor + // 16d: istore 11 + // 16f: bipush 1 + // 170: istore 12 + // 172: goto 1c7 + // 175: iload 11 + // 177: bipush -99 + // 179: ixor + // 17a: istore 11 + // 17c: bipush 1 + // 17d: istore 12 + // 17f: goto 1c7 + // 182: bipush 2 + // 183: istore 12 + // 185: goto 1c7 + // 188: bipush 3 + // 189: istore 12 + // 18b: goto 1c7 + // 18e: bipush 4 + // 18f: istore 12 + // 191: goto 1c7 + // 194: bipush 5 + // 195: istore 12 + // 197: goto 1c7 + // 19a: bipush 6 + // 19c: istore 12 + // 19e: goto 1c7 + // 1a1: bipush 7 + // 1a3: istore 12 + // 1a5: goto 1c7 + // 1a8: bipush 8 + // 1aa: istore 12 + // 1ac: goto 1c7 + // 1af: bipush 9 + // 1b1: istore 12 + // 1b3: goto 1c7 + // 1b6: bipush 10 + // 1b8: istore 12 + // 1ba: goto 1c7 + // 1bd: bipush 11 + // 1bf: istore 12 + // 1c1: goto 1c7 + // 1c4: goto 04f + // 1c7: iload 12 + // 1c9: tableswitch -97 0 11 -303 -166 -110 -97 -65 -59 -71 -47 -53 -40 -84 -19 + // 208: return + } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/basics/overwirte/Sub.dec b/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/basics/overwirte/Sub.dec index 929c1125..fe5a6f8c 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/basics/overwirte/Sub.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/basics/overwirte/Sub.dec @@ -10,4 +10,232 @@ public class Sub extends Super { public String face(int i) { return i == 1 ? "PASS" : "FAIL"; } + + static { + // $VF: Couldn't be decompiled + // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) + // java.lang.RuntimeException: parsing failure! + // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) + // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) + // + // Bytecode: + // 000: ldc "ᅭທW\u001d\u0ef0\u000f\u0ef0\u001a\u001d\u0015ᅪ" + // 002: invokevirtual java/lang/String.toCharArray ()[C + // 005: astore 0 + // 006: bipush 0 + // 007: istore 1 + // 008: aload 0 + // 009: dup + // 00a: bipush 0 + // 00b: swap + // 00c: bipush 10 + // 00e: caload + // 00f: aload 0 + // 010: dup + // 011: bipush 10 + // 013: swap + // 014: bipush 0 + // 015: caload + // 016: castore + // 017: castore + // 018: aload 0 + // 019: dup + // 01a: bipush 4 + // 01b: swap + // 01c: bipush 0 + // 01d: caload + // 01e: aload 0 + // 01f: dup + // 020: bipush 0 + // 021: swap + // 022: bipush 4 + // 023: caload + // 024: castore + // 025: castore + // 026: aload 0 + // 027: dup + // 028: bipush 1 + // 029: swap + // 02a: bipush 0 + // 02b: caload + // 02c: aload 0 + // 02d: dup + // 02e: bipush 0 + // 02f: swap + // 030: bipush 1 + // 031: caload + // 032: castore + // 033: castore + // 034: aload 0 + // 035: dup + // 036: bipush 5 + // 037: swap + // 038: bipush 18 + // 03a: caload + // 03b: aload 0 + // 03c: dup + // 03d: bipush 18 + // 03f: swap + // 040: bipush 5 + // 041: caload + // 042: castore + // 043: castore + // 044: bipush 0 + // 045: istore 3 + // 046: goto 168 + // 049: astore 3 + // 04a: aload 3 + // 04b: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; + // 04e: bipush 0 + // 04f: aaload + // 050: astore 4 + // 052: aload 4 + // 054: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; + // 057: invokevirtual java/lang/String.hashCode ()I + // 05a: ldc 65535 + // 05c: iand + // 05d: istore 5 + // 05f: aload 4 + // 061: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; + // 064: invokevirtual java/lang/String.toCharArray ()[C + // 067: astore 6 + // 069: aload 0 + // 06a: iload 1 + // 06b: iinc 1 1 + // 06e: caload + // 06f: bipush 60 + // 071: ixor + // 072: iload 5 + // 074: ixor + // 075: anewarray 43 + // 078: astore 7 + // 07a: bipush 0 + // 07b: istore 8 + // 07d: aload 0 + // 07e: iload 1 + // 07f: iinc 1 1 + // 082: caload + // 083: bipush 93 + // 085: ixor + // 086: iload 5 + // 088: ixor + // 089: istore 2 + // 08a: iload 2 + // 08b: newarray 5 + // 08d: astore 9 + // 08f: bipush 0 + // 090: istore 10 + // 092: iload 2 + // 093: ifle 149 + // 096: aload 0 + // 097: iload 1 + // 098: caload + // 099: istore 11 + // 09b: aload 6 + // 09d: iload 1 + // 09e: aload 6 + // 0a0: arraylength + // 0a1: irem + // 0a2: caload + // 0a3: sipush 144 + // 0a6: ixor + // 0a7: lookupswitch 140 16 190 314 195 228 224 196 226 209 227 215 228 241 229 247 230 253 231 259 241 266 242 273 243 280 245 293 249 300 251 307 255 321 + // 130: nop + // 131: nop + // 132: athrow + // 133: aload 9 + // 135: iload 10 + // 137: iload 11 + // 139: castore + // 13a: iinc 10 1 + // 13d: iinc 1 1 + // 140: iinc 2 -1 + // 143: bipush 0 + // 144: istore 12 + // 146: goto 1f2 + // 149: aload 7 + // 14b: iload 8 + // 14d: iinc 8 1 + // 150: new java/lang/String + // 153: dup + // 154: aload 9 + // 156: invokespecial java/lang/String. ([C)V + // 159: invokevirtual java/lang/String.intern ()Ljava/lang/String; + // 15c: aastore + // 15d: iload 1 + // 15e: aload 0 + // 15f: arraylength + // 160: if_icmplt 07d + // 163: aload 7 + // 165: putstatic pack/tests/basics/overwirte/Sub.catch [Ljava/lang/String; + // 168: goto 23c + // 16b: iload 11 + // 16d: bipush -89 + // 16f: ixor + // 170: istore 11 + // 172: bipush 1 + // 173: istore 12 + // 175: goto 1f2 + // 178: bipush 2 + // 179: istore 12 + // 17b: goto 1f2 + // 17e: iload 11 + // 180: bipush 92 + // 182: ixor + // 183: istore 11 + // 185: bipush 1 + // 186: istore 12 + // 188: goto 1f2 + // 18b: iload 11 + // 18d: bipush -98 + // 18f: ixor + // 190: istore 11 + // 192: bipush 1 + // 193: istore 12 + // 195: goto 1f2 + // 198: bipush 3 + // 199: istore 12 + // 19b: goto 1f2 + // 19e: bipush 4 + // 19f: istore 12 + // 1a1: goto 1f2 + // 1a4: bipush 5 + // 1a5: istore 12 + // 1a7: goto 1f2 + // 1aa: bipush 6 + // 1ac: istore 12 + // 1ae: goto 1f2 + // 1b1: bipush 7 + // 1b3: istore 12 + // 1b5: goto 1f2 + // 1b8: bipush 8 + // 1ba: istore 12 + // 1bc: goto 1f2 + // 1bf: iload 11 + // 1c1: bipush 7 + // 1c3: ixor + // 1c4: istore 11 + // 1c6: bipush 1 + // 1c7: istore 12 + // 1c9: goto 1f2 + // 1cc: bipush 9 + // 1ce: istore 12 + // 1d0: goto 1f2 + // 1d3: bipush 10 + // 1d5: istore 12 + // 1d7: goto 1f2 + // 1da: bipush 11 + // 1dc: istore 12 + // 1de: goto 1f2 + // 1e1: bipush 12 + // 1e3: istore 12 + // 1e5: goto 1f2 + // 1e8: bipush 13 + // 1ea: istore 12 + // 1ec: goto 1f2 + // 1ef: goto 049 + // 1f2: iload 12 + // 1f4: tableswitch -86 0 13 -354 -193 -137 -118 -105 -92 -86 -74 -80 -53 -40 -60 -67 -33 + // 23c: return + } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/basics/overwirte/Super.dec b/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/basics/overwirte/Super.dec index f621220d..a2b63f21 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/basics/overwirte/Super.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/basics/overwirte/Super.dec @@ -4,4 +4,218 @@ public abstract class Super implements Face { public void run() { System.out.println("FAIL"); } + + static { + // $VF: Couldn't be decompiled + // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) + // java.lang.RuntimeException: parsing failure! + // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) + // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) + // + // Bytecode: + // 000: ldc "ヒີ\u0016\u0011\u0ef9\u001c" + // 002: invokevirtual java/lang/String.toCharArray ()[C + // 005: astore 0 + // 006: bipush 0 + // 007: istore 1 + // 008: aload 0 + // 009: dup + // 00a: bipush 4 + // 00b: swap + // 00c: bipush 0 + // 00d: caload + // 00e: aload 0 + // 00f: dup + // 010: bipush 0 + // 011: swap + // 012: bipush 4 + // 013: caload + // 014: castore + // 015: castore + // 016: aload 0 + // 017: dup + // 018: bipush 5 + // 019: swap + // 01a: bipush 10 + // 01c: caload + // 01d: aload 0 + // 01e: dup + // 01f: bipush 10 + // 021: swap + // 022: bipush 5 + // 023: caload + // 024: castore + // 025: castore + // 026: aload 0 + // 027: dup + // 028: bipush 0 + // 029: swap + // 02a: bipush 5 + // 02b: caload + // 02c: aload 0 + // 02d: dup + // 02e: bipush 5 + // 02f: swap + // 030: bipush 0 + // 031: caload + // 032: castore + // 033: castore + // 034: bipush 0 + // 035: istore 3 + // 036: goto 158 + // 039: astore 3 + // 03a: aload 3 + // 03b: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; + // 03e: bipush 0 + // 03f: aaload + // 040: astore 4 + // 042: aload 4 + // 044: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; + // 047: invokevirtual java/lang/String.hashCode ()I + // 04a: ldc 65535 + // 04c: iand + // 04d: istore 5 + // 04f: aload 4 + // 051: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; + // 054: invokevirtual java/lang/String.toCharArray ()[C + // 057: astore 6 + // 059: aload 0 + // 05a: iload 1 + // 05b: iinc 1 1 + // 05e: caload + // 05f: bipush 81 + // 061: ixor + // 062: iload 5 + // 064: ixor + // 065: anewarray 33 + // 068: astore 7 + // 06a: bipush 0 + // 06b: istore 8 + // 06d: aload 0 + // 06e: iload 1 + // 06f: iinc 1 1 + // 072: caload + // 073: bipush 24 + // 075: ixor + // 076: iload 5 + // 078: ixor + // 079: istore 2 + // 07a: iload 2 + // 07b: newarray 5 + // 07d: astore 9 + // 07f: bipush 0 + // 080: istore 10 + // 082: iload 2 + // 083: ifle 139 + // 086: aload 0 + // 087: iload 1 + // 088: caload + // 089: istore 11 + // 08b: aload 6 + // 08d: iload 1 + // 08e: aload 6 + // 090: arraylength + // 091: irem + // 092: caload + // 093: sipush 244 + // 096: ixor + // 097: lookupswitch 140 16 128 196 129 209 130 215 131 228 132 241 134 247 135 253 145 266 149 279 150 286 151 293 155 307 157 314 159 321 167 259 218 300 + // 120: nop + // 121: nop + // 122: athrow + // 123: aload 9 + // 125: iload 10 + // 127: iload 11 + // 129: castore + // 12a: iinc 10 1 + // 12d: iinc 1 1 + // 130: iinc 2 -1 + // 133: bipush 0 + // 134: istore 12 + // 136: goto 1e2 + // 139: aload 7 + // 13b: iload 8 + // 13d: iinc 8 1 + // 140: new java/lang/String + // 143: dup + // 144: aload 9 + // 146: invokespecial java/lang/String. ([C)V + // 149: invokevirtual java/lang/String.intern ()Ljava/lang/String; + // 14c: aastore + // 14d: iload 1 + // 14e: aload 0 + // 14f: arraylength + // 150: if_icmplt 06d + // 153: aload 7 + // 155: putstatic pack/tests/basics/overwirte/Super.catch [Ljava/lang/String; + // 158: goto 22c + // 15b: iload 11 + // 15d: bipush 80 + // 15f: ixor + // 160: istore 11 + // 162: bipush 1 + // 163: istore 12 + // 165: goto 1e2 + // 168: bipush 2 + // 169: istore 12 + // 16b: goto 1e2 + // 16e: iload 11 + // 170: bipush -62 + // 172: ixor + // 173: istore 11 + // 175: bipush 1 + // 176: istore 12 + // 178: goto 1e2 + // 17b: iload 11 + // 17d: bipush -58 + // 17f: ixor + // 180: istore 11 + // 182: bipush 1 + // 183: istore 12 + // 185: goto 1e2 + // 188: bipush 3 + // 189: istore 12 + // 18b: goto 1e2 + // 18e: bipush 4 + // 18f: istore 12 + // 191: goto 1e2 + // 194: bipush 5 + // 195: istore 12 + // 197: goto 1e2 + // 19a: bipush 6 + // 19c: istore 12 + // 19e: goto 1e2 + // 1a1: iload 11 + // 1a3: bipush -69 + // 1a5: ixor + // 1a6: istore 11 + // 1a8: bipush 1 + // 1a9: istore 12 + // 1ab: goto 1e2 + // 1ae: bipush 7 + // 1b0: istore 12 + // 1b2: goto 1e2 + // 1b5: bipush 8 + // 1b7: istore 12 + // 1b9: goto 1e2 + // 1bc: bipush 9 + // 1be: istore 12 + // 1c0: goto 1e2 + // 1c3: bipush 10 + // 1c5: istore 12 + // 1c7: goto 1e2 + // 1ca: bipush 11 + // 1cc: istore 12 + // 1ce: goto 1e2 + // 1d1: bipush 12 + // 1d3: istore 12 + // 1d5: goto 1e2 + // 1d8: bipush 13 + // 1da: istore 12 + // 1dc: goto 1e2 + // 1df: goto 039 + // 1e2: iload 12 + // 1e4: tableswitch -354 0 13 -354 -193 -137 -118 -105 -92 -86 -80 -124 -47 -54 -33 -26 -40 + // 22c: return + } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/basics/runable/Task.dec b/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/basics/runable/Task.dec index 3f00b0d1..0325ec7f 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/basics/runable/Task.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/basics/runable/Task.dec @@ -39,4 +39,229 @@ public class Task { System.out.println("FAIL"); } } + + static { + // $VF: Couldn't be decompiled + // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) + // java.lang.RuntimeException: parsing failure! + // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) + // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) + // + // Bytecode: + // 000: ldc "ᅳฟz}u}ฟ\u0e66\uffd9po" + // 002: invokevirtual java/lang/String.toCharArray ()[C + // 005: astore 0 + // 006: bipush 0 + // 007: istore 1 + // 008: aload 0 + // 009: dup + // 00a: bipush 8 + // 00c: swap + // 00d: bipush 9 + // 00f: caload + // 010: aload 0 + // 011: dup + // 012: bipush 9 + // 014: swap + // 015: bipush 8 + // 017: caload + // 018: castore + // 019: castore + // 01a: aload 0 + // 01b: dup + // 01c: bipush 5 + // 01d: swap + // 01e: bipush 8 + // 020: caload + // 021: aload 0 + // 022: dup + // 023: bipush 8 + // 025: swap + // 026: bipush 5 + // 027: caload + // 028: castore + // 029: castore + // 02a: aload 0 + // 02b: dup + // 02c: bipush 7 + // 02e: swap + // 02f: bipush 0 + // 030: caload + // 031: aload 0 + // 032: dup + // 033: bipush 0 + // 034: swap + // 035: bipush 7 + // 037: caload + // 038: castore + // 039: castore + // 03a: aload 0 + // 03b: dup + // 03c: bipush 0 + // 03d: swap + // 03e: bipush 11 + // 040: caload + // 041: aload 0 + // 042: dup + // 043: bipush 11 + // 045: swap + // 046: bipush 0 + // 047: caload + // 048: castore + // 049: castore + // 04a: bipush 0 + // 04b: istore 3 + // 04c: goto 168 + // 04f: astore 3 + // 050: aload 3 + // 051: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; + // 054: bipush 0 + // 055: aaload + // 056: astore 4 + // 058: aload 4 + // 05a: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; + // 05d: invokevirtual java/lang/String.hashCode ()I + // 060: ldc 65535 + // 062: iand + // 063: istore 5 + // 065: aload 4 + // 067: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; + // 06a: invokevirtual java/lang/String.toCharArray ()[C + // 06d: astore 6 + // 06f: aload 0 + // 070: iload 1 + // 071: iinc 1 1 + // 074: caload + // 075: sipush 205 + // 078: ixor + // 079: iload 5 + // 07b: ixor + // 07c: anewarray 107 + // 07f: astore 7 + // 081: bipush 0 + // 082: istore 8 + // 084: aload 0 + // 085: iload 1 + // 086: iinc 1 1 + // 089: caload + // 08a: sipush 178 + // 08d: ixor + // 08e: iload 5 + // 090: ixor + // 091: istore 2 + // 092: iload 2 + // 093: newarray 5 + // 095: astore 9 + // 097: bipush 0 + // 098: istore 10 + // 09a: iload 2 + // 09b: ifle 149 + // 09e: aload 0 + // 09f: iload 1 + // 0a0: caload + // 0a1: istore 11 + // 0a3: aload 6 + // 0a5: iload 1 + // 0a6: aload 6 + // 0a8: arraylength + // 0a9: irem + // 0aa: caload + // 0ab: sipush 246 + // 0ae: ixor + // 0af: lookupswitch 132 15 130 188 131 214 132 220 133 226 134 239 147 245 148 251 149 258 151 265 152 279 154 292 157 299 159 306 162 201 216 272 + // 130: nop + // 131: nop + // 132: athrow + // 133: aload 9 + // 135: iload 10 + // 137: iload 11 + // 139: castore + // 13a: iinc 10 1 + // 13d: iinc 1 1 + // 140: iinc 2 -1 + // 143: bipush 0 + // 144: istore 12 + // 146: goto 1eb + // 149: aload 7 + // 14b: iload 8 + // 14d: iinc 8 1 + // 150: new java/lang/String + // 153: dup + // 154: aload 9 + // 156: invokespecial java/lang/String. ([C)V + // 159: invokevirtual java/lang/String.intern ()Ljava/lang/String; + // 15c: aastore + // 15d: iload 1 + // 15e: aload 0 + // 15f: arraylength + // 160: if_icmplt 084 + // 163: aload 7 + // 165: putstatic pack/tests/basics/runable/Task.catch [Ljava/lang/String; + // 168: goto 230 + // 16b: iload 11 + // 16d: bipush 60 + // 16f: ixor + // 170: istore 11 + // 172: bipush 1 + // 173: istore 12 + // 175: goto 1eb + // 178: iload 11 + // 17a: bipush 93 + // 17c: ixor + // 17d: istore 11 + // 17f: bipush 1 + // 180: istore 12 + // 182: goto 1eb + // 185: bipush 2 + // 186: istore 12 + // 188: goto 1eb + // 18b: bipush 3 + // 18c: istore 12 + // 18e: goto 1eb + // 191: iload 11 + // 193: bipush -118 + // 195: ixor + // 196: istore 11 + // 198: bipush 1 + // 199: istore 12 + // 19b: goto 1eb + // 19e: bipush 4 + // 19f: istore 12 + // 1a1: goto 1eb + // 1a4: bipush 5 + // 1a5: istore 12 + // 1a7: goto 1eb + // 1aa: bipush 6 + // 1ac: istore 12 + // 1ae: goto 1eb + // 1b1: bipush 7 + // 1b3: istore 12 + // 1b5: goto 1eb + // 1b8: bipush 8 + // 1ba: istore 12 + // 1bc: goto 1eb + // 1bf: bipush 9 + // 1c1: istore 12 + // 1c3: goto 1eb + // 1c6: iload 11 + // 1c8: bipush 67 + // 1ca: ixor + // 1cb: istore 11 + // 1cd: bipush 1 + // 1ce: istore 12 + // 1d0: goto 1eb + // 1d3: bipush 10 + // 1d5: istore 12 + // 1d7: goto 1eb + // 1da: bipush 11 + // 1dc: istore 12 + // 1de: goto 1eb + // 1e1: bipush 12 + // 1e3: istore 12 + // 1e5: goto 1eb + // 1e8: goto 04f + // 1eb: iload 12 + // 1ed: tableswitch -339 0 12 -339 -186 -117 -104 -98 -130 -92 -73 -60 -53 -39 -46 -26 + // 230: return + } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/basics/sub/Solver.dec b/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/basics/sub/Solver.dec index 220ba627..d89fd152 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/basics/sub/Solver.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/basics/sub/Solver.dec @@ -8,4 +8,232 @@ public class Solver { System.out.println("FAIL"); } } + + static { + // $VF: Couldn't be decompiled + // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) + // java.lang.RuntimeException: parsing failure! + // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) + // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) + // + // Bytecode: + // 000: ldc "%*<-i?ํະ-ํv" + // 002: invokevirtual java/lang/String.toCharArray ()[C + // 005: astore 0 + // 006: bipush 0 + // 007: istore 1 + // 008: aload 0 + // 009: dup + // 00a: bipush 0 + // 00b: swap + // 00c: bipush 9 + // 00e: caload + // 00f: aload 0 + // 010: dup + // 011: bipush 9 + // 013: swap + // 014: bipush 0 + // 015: caload + // 016: castore + // 017: castore + // 018: aload 0 + // 019: dup + // 01a: bipush 7 + // 01c: swap + // 01d: bipush 1 + // 01e: caload + // 01f: aload 0 + // 020: dup + // 021: bipush 1 + // 022: swap + // 023: bipush 7 + // 025: caload + // 026: castore + // 027: castore + // 028: aload 0 + // 029: dup + // 02a: bipush 1 + // 02b: swap + // 02c: bipush 0 + // 02d: caload + // 02e: aload 0 + // 02f: dup + // 030: bipush 0 + // 031: swap + // 032: bipush 1 + // 033: caload + // 034: castore + // 035: castore + // 036: aload 0 + // 037: dup + // 038: bipush 7 + // 03a: swap + // 03b: bipush 21 + // 03d: caload + // 03e: aload 0 + // 03f: dup + // 040: bipush 21 + // 042: swap + // 043: bipush 7 + // 045: caload + // 046: castore + // 047: castore + // 048: bipush 0 + // 049: istore 3 + // 04a: goto 170 + // 04d: astore 3 + // 04e: aload 3 + // 04f: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; + // 052: bipush 0 + // 053: aaload + // 054: astore 4 + // 056: aload 4 + // 058: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; + // 05b: invokevirtual java/lang/String.hashCode ()I + // 05e: ldc 65535 + // 060: iand + // 061: istore 5 + // 063: aload 4 + // 065: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; + // 068: invokevirtual java/lang/String.toCharArray ()[C + // 06b: astore 6 + // 06d: aload 0 + // 06e: iload 1 + // 06f: iinc 1 1 + // 072: caload + // 073: bipush 27 + // 075: ixor + // 076: iload 5 + // 078: ixor + // 079: anewarray 38 + // 07c: astore 7 + // 07e: bipush 0 + // 07f: istore 8 + // 081: aload 0 + // 082: iload 1 + // 083: iinc 1 1 + // 086: caload + // 087: sipush 224 + // 08a: ixor + // 08b: iload 5 + // 08d: ixor + // 08e: istore 2 + // 08f: iload 2 + // 090: newarray 5 + // 092: astore 9 + // 094: bipush 0 + // 095: istore 10 + // 097: iload 2 + // 098: ifle 151 + // 09b: aload 0 + // 09c: iload 1 + // 09d: caload + // 09e: istore 11 + // 0a0: aload 6 + // 0a2: iload 1 + // 0a3: aload 6 + // 0a5: arraylength + // 0a6: irem + // 0a7: caload + // 0a8: sipush 173 + // 0ab: ixor + // 0ac: lookupswitch 143 16 131 225 193 199 194 212 196 238 198 251 200 257 204 263 206 269 207 275 216 282 217 289 219 296 221 303 222 310 223 324 254 317 + // 138: nop + // 139: nop + // 13a: athrow + // 13b: aload 9 + // 13d: iload 10 + // 13f: iload 11 + // 141: castore + // 142: iinc 10 1 + // 145: iinc 1 1 + // 148: iinc 2 -1 + // 14b: bipush 0 + // 14c: istore 12 + // 14e: goto 1fa + // 151: aload 7 + // 153: iload 8 + // 155: iinc 8 1 + // 158: new java/lang/String + // 15b: dup + // 15c: aload 9 + // 15e: invokespecial java/lang/String. ([C)V + // 161: invokevirtual java/lang/String.intern ()Ljava/lang/String; + // 164: aastore + // 165: iload 1 + // 166: aload 0 + // 167: arraylength + // 168: if_icmplt 081 + // 16b: aload 7 + // 16d: putstatic pack/tests/basics/sub/Solver.catch [Ljava/lang/String; + // 170: goto 244 + // 173: iload 11 + // 175: bipush -54 + // 177: ixor + // 178: istore 11 + // 17a: bipush 1 + // 17b: istore 12 + // 17d: goto 1fa + // 180: iload 11 + // 182: bipush 126 + // 184: ixor + // 185: istore 11 + // 187: bipush 1 + // 188: istore 12 + // 18a: goto 1fa + // 18d: iload 11 + // 18f: bipush 58 + // 191: ixor + // 192: istore 11 + // 194: bipush 1 + // 195: istore 12 + // 197: goto 1fa + // 19a: iload 11 + // 19c: bipush 108 + // 19e: ixor + // 19f: istore 11 + // 1a1: bipush 1 + // 1a2: istore 12 + // 1a4: goto 1fa + // 1a7: bipush 2 + // 1a8: istore 12 + // 1aa: goto 1fa + // 1ad: bipush 3 + // 1ae: istore 12 + // 1b0: goto 1fa + // 1b3: bipush 4 + // 1b4: istore 12 + // 1b6: goto 1fa + // 1b9: bipush 5 + // 1ba: istore 12 + // 1bc: goto 1fa + // 1bf: bipush 6 + // 1c1: istore 12 + // 1c3: goto 1fa + // 1c6: bipush 7 + // 1c8: istore 12 + // 1ca: goto 1fa + // 1cd: bipush 8 + // 1cf: istore 12 + // 1d1: goto 1fa + // 1d4: bipush 9 + // 1d6: istore 12 + // 1d8: goto 1fa + // 1db: bipush 10 + // 1dd: istore 12 + // 1df: goto 1fa + // 1e2: bipush 11 + // 1e4: istore 12 + // 1e6: goto 1fa + // 1e9: bipush 12 + // 1eb: istore 12 + // 1ed: goto 1fa + // 1f0: bipush 13 + // 1f2: istore 12 + // 1f4: goto 1fa + // 1f7: goto 04d + // 1fa: iload 12 + // 1fc: tableswitch -137 0 13 -357 -193 -98 -137 -79 -85 -73 -124 -67 -111 -54 -47 -33 -61 + // 244: return + } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/bench/Calc.dec b/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/bench/Calc.dec index 9dbb78ab..2adb0338 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/bench/Calc.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/bench/Calc.dec @@ -45,4 +45,225 @@ public class Calc { count++; } + + static { + // $VF: Couldn't be decompiled + // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) + // java.lang.RuntimeException: parsing failure! + // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) + // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) + // + // Bytecode: + // 000: ldc "1\u0ea4\u0ea6fx\u0ea6jᄏ\u0e85リN9+フY゙\u0e64K.ᄆy*\u0019x+dᅠhᄊᄆᄆn\u000f+ᆰe ̄h\n\u0007ᅠᅥຢ(jgh\ufff9Y" + // 002: invokevirtual java/lang/String.toCharArray ()[C + // 005: astore 0 + // 006: bipush 0 + // 007: istore 1 + // 008: aload 0 + // 009: dup + // 00a: bipush 41 + // 00c: swap + // 00d: bipush 21 + // 00f: caload + // 010: aload 0 + // 011: dup + // 012: bipush 21 + // 014: swap + // 015: bipush 41 + // 017: caload + // 018: castore + // 019: castore + // 01a: aload 0 + // 01b: dup + // 01c: bipush 48 + // 01e: swap + // 01f: bipush 12 + // 021: caload + // 022: aload 0 + // 023: dup + // 024: bipush 12 + // 026: swap + // 027: bipush 48 + // 029: caload + // 02a: castore + // 02b: castore + // 02c: aload 0 + // 02d: dup + // 02e: bipush 16 + // 030: swap + // 031: bipush 0 + // 032: caload + // 033: aload 0 + // 034: dup + // 035: bipush 0 + // 036: swap + // 037: bipush 16 + // 039: caload + // 03a: castore + // 03b: castore + // 03c: aload 0 + // 03d: dup + // 03e: bipush 25 + // 040: swap + // 041: bipush 56 + // 043: caload + // 044: aload 0 + // 045: dup + // 046: bipush 56 + // 048: swap + // 049: bipush 25 + // 04b: caload + // 04c: castore + // 04d: castore + // 04e: bipush 0 + // 04f: istore 3 + // 050: goto 15c + // 053: astore 3 + // 054: aload 3 + // 055: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; + // 058: bipush 0 + // 059: aaload + // 05a: astore 4 + // 05c: aload 4 + // 05e: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; + // 061: invokevirtual java/lang/String.hashCode ()I + // 064: ldc 65535 + // 066: iand + // 067: istore 5 + // 069: aload 4 + // 06b: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; + // 06e: invokevirtual java/lang/String.toCharArray ()[C + // 071: astore 6 + // 073: aload 0 + // 074: iload 1 + // 075: iinc 1 1 + // 078: caload + // 079: sipush 200 + // 07c: ixor + // 07d: iload 5 + // 07f: ixor + // 080: anewarray 78 + // 083: astore 7 + // 085: bipush 0 + // 086: istore 8 + // 088: aload 0 + // 089: iload 1 + // 08a: iinc 1 1 + // 08d: caload + // 08e: bipush 13 + // 090: ixor + // 091: iload 5 + // 093: ixor + // 094: istore 2 + // 095: iload 2 + // 096: newarray 5 + // 098: astore 9 + // 09a: bipush 0 + // 09b: istore 10 + // 09d: iload 2 + // 09e: ifle 13d + // 0a1: aload 0 + // 0a2: iload 1 + // 0a3: caload + // 0a4: istore 11 + // 0a6: aload 6 + // 0a8: iload 1 + // 0a9: aload 6 + // 0ab: arraylength + // 0ac: irem + // 0ad: caload + // 0ae: bipush 67 + // 0b0: ixor + // 0b1: lookupswitch 118 13 0 187 32 174 33 200 34 206 38 212 40 218 43 224 45 244 47 251 48 258 51 265 55 278 109 237 + // 124: nop + // 125: nop + // 126: athrow + // 127: aload 9 + // 129: iload 10 + // 12b: iload 11 + // 12d: castore + // 12e: iinc 10 1 + // 131: iinc 1 1 + // 134: iinc 2 -1 + // 137: bipush 0 + // 138: istore 12 + // 13a: goto 1d1 + // 13d: aload 7 + // 13f: iload 8 + // 141: iinc 8 1 + // 144: new java/lang/String + // 147: dup + // 148: aload 9 + // 14a: invokespecial java/lang/String. ([C)V + // 14d: invokevirtual java/lang/String.intern ()Ljava/lang/String; + // 150: aastore + // 151: iload 1 + // 152: aload 0 + // 153: arraylength + // 154: if_icmplt 088 + // 157: aload 7 + // 159: putstatic pack/tests/bench/Calc.catch [Ljava/lang/String; + // 15c: goto 20c + // 15f: iload 11 + // 161: bipush 11 + // 163: ixor + // 164: istore 11 + // 166: bipush 1 + // 167: istore 12 + // 169: goto 1d1 + // 16c: iload 11 + // 16e: bipush 107 + // 170: ixor + // 171: istore 11 + // 173: bipush 1 + // 174: istore 12 + // 176: goto 1d1 + // 179: bipush 2 + // 17a: istore 12 + // 17c: goto 1d1 + // 17f: bipush 3 + // 180: istore 12 + // 182: goto 1d1 + // 185: bipush 4 + // 186: istore 12 + // 188: goto 1d1 + // 18b: bipush 5 + // 18c: istore 12 + // 18e: goto 1d1 + // 191: iload 11 + // 193: bipush -61 + // 195: ixor + // 196: istore 11 + // 198: bipush 1 + // 199: istore 12 + // 19b: goto 1d1 + // 19e: bipush 6 + // 1a0: istore 12 + // 1a2: goto 1d1 + // 1a5: bipush 7 + // 1a7: istore 12 + // 1a9: goto 1d1 + // 1ac: bipush 8 + // 1ae: istore 12 + // 1b0: goto 1d1 + // 1b3: bipush 9 + // 1b5: istore 12 + // 1b7: goto 1d1 + // 1ba: iload 11 + // 1bc: bipush -87 + // 1be: ixor + // 1bf: istore 11 + // 1c1: bipush 1 + // 1c2: istore 12 + // 1c4: goto 1d1 + // 1c7: bipush 10 + // 1c9: istore 12 + // 1cb: goto 1d1 + // 1ce: goto 053 + // 1d1: iload 12 + // 1d3: tableswitch -90 0 10 -310 -172 -103 -90 -116 -78 -72 -66 -46 -39 -32 + // 20c: bipush 0 + // 20d: putstatic pack/tests/bench/Calc.count I + // 210: return + } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/reflects/annot/annoe.dec b/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/reflects/annot/annoe.dec index 7e185aad..3dc0f856 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/reflects/annot/annoe.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/reflects/annot/annoe.dec @@ -29,4 +29,225 @@ public class annoe { public void dov() { System.out.println("FAIL"); } + + static { + // $VF: Couldn't be decompiled + // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) + // java.lang.RuntimeException: parsing failure! + // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) + // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) + // + // Bytecode: + // 000: ldc "ᅯช#<¥\uffc1ช\ufffbຖ\ufff4│" + // 002: invokevirtual java/lang/String.toCharArray ()[C + // 005: astore 0 + // 006: bipush 0 + // 007: istore 1 + // 008: aload 0 + // 009: dup + // 00a: bipush 4 + // 00b: swap + // 00c: bipush 0 + // 00d: caload + // 00e: aload 0 + // 00f: dup + // 010: bipush 0 + // 011: swap + // 012: bipush 4 + // 013: caload + // 014: castore + // 015: castore + // 016: aload 0 + // 017: dup + // 018: bipush 4 + // 019: swap + // 01a: bipush 8 + // 01c: caload + // 01d: aload 0 + // 01e: dup + // 01f: bipush 8 + // 021: swap + // 022: bipush 4 + // 023: caload + // 024: castore + // 025: castore + // 026: aload 0 + // 027: dup + // 028: bipush 4 + // 029: swap + // 02a: bipush 0 + // 02b: caload + // 02c: aload 0 + // 02d: dup + // 02e: bipush 0 + // 02f: swap + // 030: bipush 4 + // 031: caload + // 032: castore + // 033: castore + // 034: aload 0 + // 035: dup + // 036: bipush 4 + // 037: swap + // 038: bipush 20 + // 03a: caload + // 03b: aload 0 + // 03c: dup + // 03d: bipush 20 + // 03f: swap + // 040: bipush 4 + // 041: caload + // 042: castore + // 043: castore + // 044: bipush 0 + // 045: istore 3 + // 046: goto 150 + // 049: astore 3 + // 04a: aload 3 + // 04b: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; + // 04e: bipush 0 + // 04f: aaload + // 050: astore 4 + // 052: aload 4 + // 054: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; + // 057: invokevirtual java/lang/String.hashCode ()I + // 05a: ldc 65535 + // 05c: iand + // 05d: istore 5 + // 05f: aload 4 + // 061: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; + // 064: invokevirtual java/lang/String.toCharArray ()[C + // 067: astore 6 + // 069: aload 0 + // 06a: iload 1 + // 06b: iinc 1 1 + // 06e: caload + // 06f: bipush 61 + // 071: ixor + // 072: iload 5 + // 074: ixor + // 075: anewarray 60 + // 078: astore 7 + // 07a: bipush 0 + // 07b: istore 8 + // 07d: aload 0 + // 07e: iload 1 + // 07f: iinc 1 1 + // 082: caload + // 083: sipush 167 + // 086: ixor + // 087: iload 5 + // 089: ixor + // 08a: istore 2 + // 08b: iload 2 + // 08c: newarray 5 + // 08e: astore 9 + // 090: bipush 0 + // 091: istore 10 + // 093: iload 2 + // 094: ifle 131 + // 097: aload 0 + // 098: iload 1 + // 099: caload + // 09a: istore 11 + // 09c: aload 6 + // 09e: iload 1 + // 09f: aload 6 + // 0a1: arraylength + // 0a2: irem + // 0a3: caload + // 0a4: bipush 0 + // 0a5: ixor + // 0a6: lookupswitch 117 13 46 230 97 173 99 186 101 199 102 205 107 211 108 217 110 236 111 243 112 250 114 257 115 264 116 271 + // 118: nop + // 119: nop + // 11a: athrow + // 11b: aload 9 + // 11d: iload 10 + // 11f: iload 11 + // 121: castore + // 122: iinc 10 1 + // 125: iinc 1 1 + // 128: iinc 2 -1 + // 12b: bipush 0 + // 12c: istore 12 + // 12e: goto 1c5 + // 131: aload 7 + // 133: iload 8 + // 135: iinc 8 1 + // 138: new java/lang/String + // 13b: dup + // 13c: aload 9 + // 13e: invokespecial java/lang/String. ([C)V + // 141: invokevirtual java/lang/String.intern ()Ljava/lang/String; + // 144: aastore + // 145: iload 1 + // 146: aload 0 + // 147: arraylength + // 148: if_icmplt 07d + // 14b: aload 7 + // 14d: putstatic pack/tests/reflects/annot/annoe.catch [Ljava/lang/String; + // 150: goto 200 + // 153: iload 11 + // 155: bipush -92 + // 157: ixor + // 158: istore 11 + // 15a: bipush 1 + // 15b: istore 12 + // 15d: goto 1c5 + // 160: iload 11 + // 162: bipush 116 + // 164: ixor + // 165: istore 11 + // 167: bipush 1 + // 168: istore 12 + // 16a: goto 1c5 + // 16d: bipush 2 + // 16e: istore 12 + // 170: goto 1c5 + // 173: bipush 3 + // 174: istore 12 + // 176: goto 1c5 + // 179: bipush 4 + // 17a: istore 12 + // 17c: goto 1c5 + // 17f: iload 11 + // 181: bipush -67 + // 183: ixor + // 184: istore 11 + // 186: bipush 1 + // 187: istore 12 + // 189: goto 1c5 + // 18c: bipush 5 + // 18d: istore 12 + // 18f: goto 1c5 + // 192: bipush 6 + // 194: istore 12 + // 196: goto 1c5 + // 199: bipush 7 + // 19b: istore 12 + // 19d: goto 1c5 + // 1a0: bipush 8 + // 1a2: istore 12 + // 1a4: goto 1c5 + // 1a7: bipush 9 + // 1a9: istore 12 + // 1ab: goto 1c5 + // 1ae: bipush 10 + // 1b0: istore 12 + // 1b2: goto 1c5 + // 1b5: iload 11 + // 1b7: bipush -107 + // 1b9: ixor + // 1ba: istore 11 + // 1bc: bipush 1 + // 1bd: istore 12 + // 1bf: goto 1c5 + // 1c2: goto 049 + // 1c5: iload 12 + // 1c7: tableswitch -103 0 10 -308 -172 -103 -90 -84 -116 -72 -53 -59 -39 -46 + // 200: ldc "WHAT" + // 202: putstatic pack/tests/reflects/annot/annoe.fail Ljava/lang/String; + // 205: return + } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/reflects/annot/annot.dec b/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/reflects/annot/annot.dec index 1c83079f..e4eb8d19 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/reflects/annot/annot.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/reflects/annot/annot.dec @@ -14,4 +14,209 @@ public class annot { } } } + + static { + // $VF: Couldn't be decompiled + // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) + // java.lang.RuntimeException: parsing failure! + // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) + // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) + // + // Bytecode: + // 000: ldc "←๙\u0011๖\ufff4" + // 002: invokevirtual java/lang/String.toCharArray ()[C + // 005: astore 0 + // 006: bipush 0 + // 007: istore 1 + // 008: aload 0 + // 009: dup + // 00a: bipush 3 + // 00b: swap + // 00c: bipush 0 + // 00d: caload + // 00e: aload 0 + // 00f: dup + // 010: bipush 0 + // 011: swap + // 012: bipush 3 + // 013: caload + // 014: castore + // 015: castore + // 016: aload 0 + // 017: dup + // 018: bipush 1 + // 019: swap + // 01a: bipush 8 + // 01c: caload + // 01d: aload 0 + // 01e: dup + // 01f: bipush 8 + // 021: swap + // 022: bipush 1 + // 023: caload + // 024: castore + // 025: castore + // 026: aload 0 + // 027: dup + // 028: bipush 4 + // 029: swap + // 02a: bipush 0 + // 02b: caload + // 02c: aload 0 + // 02d: dup + // 02e: bipush 0 + // 02f: swap + // 030: bipush 4 + // 031: caload + // 032: castore + // 033: castore + // 034: bipush 0 + // 035: istore 3 + // 036: goto 144 + // 039: astore 3 + // 03a: aload 3 + // 03b: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; + // 03e: bipush 0 + // 03f: aaload + // 040: astore 4 + // 042: aload 4 + // 044: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; + // 047: invokevirtual java/lang/String.hashCode ()I + // 04a: ldc 65535 + // 04c: iand + // 04d: istore 5 + // 04f: aload 4 + // 051: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; + // 054: invokevirtual java/lang/String.toCharArray ()[C + // 057: astore 6 + // 059: aload 0 + // 05a: iload 1 + // 05b: iinc 1 1 + // 05e: caload + // 05f: sipush 254 + // 062: ixor + // 063: iload 5 + // 065: ixor + // 066: anewarray 43 + // 069: astore 7 + // 06b: bipush 0 + // 06c: istore 8 + // 06e: aload 0 + // 06f: iload 1 + // 070: iinc 1 1 + // 073: caload + // 074: sipush 243 + // 077: ixor + // 078: iload 5 + // 07a: ixor + // 07b: istore 2 + // 07c: iload 2 + // 07d: newarray 5 + // 07f: astore 9 + // 081: bipush 0 + // 082: istore 10 + // 084: iload 2 + // 085: ifle 125 + // 088: aload 0 + // 089: iload 1 + // 08a: caload + // 08b: istore 11 + // 08d: aload 6 + // 08f: iload 1 + // 090: aload 6 + // 092: arraylength + // 093: irem + // 094: caload + // 095: bipush 76 + // 097: ixor + // 098: lookupswitch 119 13 32 175 34 201 35 207 39 220 41 226 42 232 45 238 47 245 56 258 60 265 62 272 63 279 98 188 + // 10c: nop + // 10d: nop + // 10e: athrow + // 10f: aload 9 + // 111: iload 10 + // 113: iload 11 + // 115: castore + // 116: iinc 10 1 + // 119: iinc 1 1 + // 11c: iinc 2 -1 + // 11f: bipush 0 + // 120: istore 12 + // 122: goto 1b9 + // 125: aload 7 + // 127: iload 8 + // 129: iinc 8 1 + // 12c: new java/lang/String + // 12f: dup + // 130: aload 9 + // 132: invokespecial java/lang/String. ([C)V + // 135: invokevirtual java/lang/String.intern ()Ljava/lang/String; + // 138: aastore + // 139: iload 1 + // 13a: aload 0 + // 13b: arraylength + // 13c: if_icmplt 06e + // 13f: aload 7 + // 141: putstatic pack/tests/reflects/annot/annot.catch [Ljava/lang/String; + // 144: goto 1f4 + // 147: iload 11 + // 149: bipush 29 + // 14b: ixor + // 14c: istore 11 + // 14e: bipush 1 + // 14f: istore 12 + // 151: goto 1b9 + // 154: iload 11 + // 156: bipush -121 + // 158: ixor + // 159: istore 11 + // 15b: bipush 1 + // 15c: istore 12 + // 15e: goto 1b9 + // 161: bipush 2 + // 162: istore 12 + // 164: goto 1b9 + // 167: iload 11 + // 169: bipush -116 + // 16b: ixor + // 16c: istore 11 + // 16e: bipush 1 + // 16f: istore 12 + // 171: goto 1b9 + // 174: bipush 3 + // 175: istore 12 + // 177: goto 1b9 + // 17a: bipush 4 + // 17b: istore 12 + // 17d: goto 1b9 + // 180: bipush 5 + // 181: istore 12 + // 183: goto 1b9 + // 186: bipush 6 + // 188: istore 12 + // 18a: goto 1b9 + // 18d: iload 11 + // 18f: bipush 104 + // 191: ixor + // 192: istore 11 + // 194: bipush 1 + // 195: istore 12 + // 197: goto 1b9 + // 19a: bipush 7 + // 19c: istore 12 + // 19e: goto 1b9 + // 1a1: bipush 8 + // 1a3: istore 12 + // 1a5: goto 1b9 + // 1a8: bipush 9 + // 1aa: istore 12 + // 1ac: goto 1b9 + // 1af: bipush 10 + // 1b1: istore 12 + // 1b3: goto 1b9 + // 1b6: goto 039 + // 1b9: iload 12 + // 1bb: tableswitch -84 0 10 -311 -172 -116 -84 -90 -71 -65 -103 -46 -33 -26 + // 1f4: return + } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/reflects/counter/Count.dec b/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/reflects/counter/Count.dec index 9c35832f..fbf38cd2 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/reflects/counter/Count.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/reflects/counter/Count.dec @@ -11,4 +11,229 @@ public class Count { System.out.println("FAIL"); } } + + static { + // $VF: Couldn't be decompiled + // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) + // java.lang.RuntimeException: parsing failure! + // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) + // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) + // + // Bytecode: + // 000: ldc "タ\u0e7dໜ\r\ufff7ヘ■○タ■\u0e7d" + // 002: invokevirtual java/lang/String.toCharArray ()[C + // 005: astore 0 + // 006: bipush 0 + // 007: istore 1 + // 008: aload 0 + // 009: dup + // 00a: bipush 6 + // 00c: swap + // 00d: bipush 10 + // 00f: caload + // 010: aload 0 + // 011: dup + // 012: bipush 10 + // 014: swap + // 015: bipush 6 + // 017: caload + // 018: castore + // 019: castore + // 01a: aload 0 + // 01b: dup + // 01c: bipush 3 + // 01d: swap + // 01e: bipush 2 + // 01f: caload + // 020: aload 0 + // 021: dup + // 022: bipush 2 + // 023: swap + // 024: bipush 3 + // 025: caload + // 026: castore + // 027: castore + // 028: aload 0 + // 029: dup + // 02a: bipush 3 + // 02b: swap + // 02c: bipush 0 + // 02d: caload + // 02e: aload 0 + // 02f: dup + // 030: bipush 0 + // 031: swap + // 032: bipush 3 + // 033: caload + // 034: castore + // 035: castore + // 036: aload 0 + // 037: dup + // 038: bipush 9 + // 03a: swap + // 03b: bipush 14 + // 03d: caload + // 03e: aload 0 + // 03f: dup + // 040: bipush 14 + // 042: swap + // 043: bipush 9 + // 045: caload + // 046: castore + // 047: castore + // 048: bipush 0 + // 049: istore 3 + // 04a: goto 164 + // 04d: astore 3 + // 04e: aload 3 + // 04f: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; + // 052: bipush 0 + // 053: aaload + // 054: astore 4 + // 056: aload 4 + // 058: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; + // 05b: invokevirtual java/lang/String.hashCode ()I + // 05e: ldc 65535 + // 060: iand + // 061: istore 5 + // 063: aload 4 + // 065: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; + // 068: invokevirtual java/lang/String.toCharArray ()[C + // 06b: astore 6 + // 06d: aload 0 + // 06e: iload 1 + // 06f: iinc 1 1 + // 072: caload + // 073: bipush 119 + // 075: ixor + // 076: iload 5 + // 078: ixor + // 079: anewarray 53 + // 07c: astore 7 + // 07e: bipush 0 + // 07f: istore 8 + // 081: aload 0 + // 082: iload 1 + // 083: iinc 1 1 + // 086: caload + // 087: sipush 208 + // 08a: ixor + // 08b: iload 5 + // 08d: ixor + // 08e: istore 2 + // 08f: iload 2 + // 090: newarray 5 + // 092: astore 9 + // 094: bipush 0 + // 095: istore 10 + // 097: iload 2 + // 098: ifle 145 + // 09b: aload 0 + // 09c: iload 1 + // 09d: caload + // 09e: istore 11 + // 0a0: aload 6 + // 0a2: iload 1 + // 0a3: aload 6 + // 0a5: arraylength + // 0a6: irem + // 0a7: caload + // 0a8: bipush 28 + // 0aa: ixor + // 0ab: lookupswitch 132 15 50 245 95 306 104 188 105 201 108 207 110 220 111 226 112 239 114 251 115 258 119 265 121 272 122 279 125 292 127 299 + // 12c: nop + // 12d: nop + // 12e: athrow + // 12f: aload 9 + // 131: iload 10 + // 133: iload 11 + // 135: castore + // 136: iinc 10 1 + // 139: iinc 1 1 + // 13c: iinc 2 -1 + // 13f: bipush 0 + // 140: istore 12 + // 142: goto 1e7 + // 145: aload 7 + // 147: iload 8 + // 149: iinc 8 1 + // 14c: new java/lang/String + // 14f: dup + // 150: aload 9 + // 152: invokespecial java/lang/String. ([C)V + // 155: invokevirtual java/lang/String.intern ()Ljava/lang/String; + // 158: aastore + // 159: iload 1 + // 15a: aload 0 + // 15b: arraylength + // 15c: if_icmplt 081 + // 15f: aload 7 + // 161: putstatic pack/tests/reflects/counter/Count.catch [Ljava/lang/String; + // 164: goto 22c + // 167: iload 11 + // 169: bipush -63 + // 16b: ixor + // 16c: istore 11 + // 16e: bipush 1 + // 16f: istore 12 + // 171: goto 1e7 + // 174: bipush 2 + // 175: istore 12 + // 177: goto 1e7 + // 17a: iload 11 + // 17c: bipush 75 + // 17e: ixor + // 17f: istore 11 + // 181: bipush 1 + // 182: istore 12 + // 184: goto 1e7 + // 187: bipush 3 + // 188: istore 12 + // 18a: goto 1e7 + // 18d: iload 11 + // 18f: bipush -66 + // 191: ixor + // 192: istore 11 + // 194: bipush 1 + // 195: istore 12 + // 197: goto 1e7 + // 19a: bipush 4 + // 19b: istore 12 + // 19d: goto 1e7 + // 1a0: bipush 5 + // 1a1: istore 12 + // 1a3: goto 1e7 + // 1a6: bipush 6 + // 1a8: istore 12 + // 1aa: goto 1e7 + // 1ad: bipush 7 + // 1af: istore 12 + // 1b1: goto 1e7 + // 1b4: bipush 8 + // 1b6: istore 12 + // 1b8: goto 1e7 + // 1bb: bipush 9 + // 1bd: istore 12 + // 1bf: goto 1e7 + // 1c2: iload 11 + // 1c4: bipush 43 + // 1c6: ixor + // 1c7: istore 11 + // 1c9: bipush 1 + // 1ca: istore 12 + // 1cc: goto 1e7 + // 1cf: bipush 10 + // 1d1: istore 12 + // 1d3: goto 1e7 + // 1d6: bipush 11 + // 1d8: istore 12 + // 1da: goto 1e7 + // 1dd: bipush 12 + // 1df: istore 12 + // 1e1: goto 1e7 + // 1e4: goto 04d + // 1e7: iload 12 + // 1e9: tableswitch -98 0 12 -338 -186 -130 -111 -98 -92 -117 -79 -67 -73 -46 -60 -53 + // 22c: return + } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/reflects/field/FTest.dec b/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/reflects/field/FTest.dec index 13f7f1e0..a9e9dcbe 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/reflects/field/FTest.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/reflects/field/FTest.dec @@ -32,4 +32,229 @@ public class FTest { } } } + + static { + // $VF: Couldn't be decompiled + // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) + // java.lang.RuntimeException: parsing failure! + // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) + // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) + // + // Bytecode: + // 000: ldc "\u000fษ\bฬไldN~RDฬ~ห9II" + // 002: invokevirtual java/lang/String.toCharArray ()[C + // 005: astore 0 + // 006: bipush 0 + // 007: istore 1 + // 008: aload 0 + // 009: dup + // 00a: bipush 10 + // 00c: swap + // 00d: bipush 2 + // 00e: caload + // 00f: aload 0 + // 010: dup + // 011: bipush 2 + // 012: swap + // 013: bipush 10 + // 015: caload + // 016: castore + // 017: castore + // 018: aload 0 + // 019: dup + // 01a: bipush 8 + // 01c: swap + // 01d: bipush 11 + // 01f: caload + // 020: aload 0 + // 021: dup + // 022: bipush 11 + // 024: swap + // 025: bipush 8 + // 027: caload + // 028: castore + // 029: castore + // 02a: aload 0 + // 02b: dup + // 02c: bipush 4 + // 02d: swap + // 02e: bipush 0 + // 02f: caload + // 030: aload 0 + // 031: dup + // 032: bipush 0 + // 033: swap + // 034: bipush 4 + // 035: caload + // 036: castore + // 037: castore + // 038: aload 0 + // 039: dup + // 03a: bipush 15 + // 03c: swap + // 03d: bipush 32 + // 03f: caload + // 040: aload 0 + // 041: dup + // 042: bipush 32 + // 044: swap + // 045: bipush 15 + // 047: caload + // 048: castore + // 049: castore + // 04a: bipush 0 + // 04b: istore 3 + // 04c: goto 168 + // 04f: astore 3 + // 050: aload 3 + // 051: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; + // 054: bipush 0 + // 055: aaload + // 056: astore 4 + // 058: aload 4 + // 05a: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; + // 05d: invokevirtual java/lang/String.hashCode ()I + // 060: ldc 65535 + // 062: iand + // 063: istore 5 + // 065: aload 4 + // 067: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; + // 06a: invokevirtual java/lang/String.toCharArray ()[C + // 06d: astore 6 + // 06f: aload 0 + // 070: iload 1 + // 071: iinc 1 1 + // 074: caload + // 075: sipush 233 + // 078: ixor + // 079: iload 5 + // 07b: ixor + // 07c: anewarray 104 + // 07f: astore 7 + // 081: bipush 0 + // 082: istore 8 + // 084: aload 0 + // 085: iload 1 + // 086: iinc 1 1 + // 089: caload + // 08a: sipush 129 + // 08d: ixor + // 08e: iload 5 + // 090: ixor + // 091: istore 2 + // 092: iload 2 + // 093: newarray 5 + // 095: astore 9 + // 097: bipush 0 + // 098: istore 10 + // 09a: iload 2 + // 09b: ifle 149 + // 09e: aload 0 + // 09f: iload 1 + // 0a0: caload + // 0a1: istore 11 + // 0a3: aload 6 + // 0a5: iload 1 + // 0a6: aload 6 + // 0a8: arraylength + // 0a9: irem + // 0aa: caload + // 0ab: bipush 21 + // 0ad: ixor + // 0ae: lookupswitch 133 15 59 292 65 202 83 252 97 189 101 214 102 220 103 226 112 232 113 238 115 245 116 265 118 272 121 279 124 299 126 306 + // 130: nop + // 131: nop + // 132: athrow + // 133: aload 9 + // 135: iload 10 + // 137: iload 11 + // 139: castore + // 13a: iinc 10 1 + // 13d: iinc 1 1 + // 140: iinc 2 -1 + // 143: bipush 0 + // 144: istore 12 + // 146: goto 1ea + // 149: aload 7 + // 14b: iload 8 + // 14d: iinc 8 1 + // 150: new java/lang/String + // 153: dup + // 154: aload 9 + // 156: invokespecial java/lang/String. ([C)V + // 159: invokevirtual java/lang/String.intern ()Ljava/lang/String; + // 15c: aastore + // 15d: iload 1 + // 15e: aload 0 + // 15f: arraylength + // 160: if_icmplt 084 + // 163: aload 7 + // 165: putstatic pack/tests/reflects/field/FTest.catch [Ljava/lang/String; + // 168: goto 230 + // 16b: iload 11 + // 16d: bipush 45 + // 16f: ixor + // 170: istore 11 + // 172: bipush 1 + // 173: istore 12 + // 175: goto 1ea + // 178: iload 11 + // 17a: bipush 2 + // 17b: ixor + // 17c: istore 11 + // 17e: bipush 1 + // 17f: istore 12 + // 181: goto 1ea + // 184: bipush 2 + // 185: istore 12 + // 187: goto 1ea + // 18a: bipush 3 + // 18b: istore 12 + // 18d: goto 1ea + // 190: bipush 4 + // 191: istore 12 + // 193: goto 1ea + // 196: bipush 5 + // 197: istore 12 + // 199: goto 1ea + // 19c: bipush 6 + // 19e: istore 12 + // 1a0: goto 1ea + // 1a3: bipush 7 + // 1a5: istore 12 + // 1a7: goto 1ea + // 1aa: iload 11 + // 1ac: bipush 73 + // 1ae: ixor + // 1af: istore 11 + // 1b1: bipush 1 + // 1b2: istore 12 + // 1b4: goto 1ea + // 1b7: bipush 8 + // 1b9: istore 12 + // 1bb: goto 1ea + // 1be: bipush 9 + // 1c0: istore 12 + // 1c2: goto 1ea + // 1c5: iload 11 + // 1c7: bipush 88 + // 1c9: ixor + // 1ca: istore 11 + // 1cc: bipush 1 + // 1cd: istore 12 + // 1cf: goto 1ea + // 1d2: bipush 10 + // 1d4: istore 12 + // 1d6: goto 1ea + // 1d9: bipush 11 + // 1db: istore 12 + // 1dd: goto 1ea + // 1e0: bipush 12 + // 1e2: istore 12 + // 1e4: goto 1ea + // 1e7: goto 04f + // 1ea: iload 12 + // 1ec: tableswitch -92 0 12 -338 -185 -129 -116 -104 -92 -86 -98 -80 -53 -66 -46 -39 + // 230: return + } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/reflects/loader/LRun.dec b/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/reflects/loader/LRun.dec index 76523761..365e1cc3 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/reflects/loader/LRun.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/reflects/loader/LRun.dec @@ -7,4 +7,235 @@ public class LRun { Object o = c.newInstance(); c.getMethod("run").invoke(o); } + + static { + // $VF: Couldn't be decompiled + // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) + // java.lang.RuntimeException: parsing failure! + // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) + // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) + // + // Bytecode: + // 000: ldc "2\ufff1ᅲ\uffd0ᅠ\u0efdᅰ'%-¢\uffd1\uffc0ᄑ2ᅱᄁ4#ᄄ*\uffc0ᆳ๒ᅱヒヒᄀ'ヤ\uffc0ᅲ¢←ໞᆱ5\uffd1" + // 002: invokevirtual java/lang/String.toCharArray ()[C + // 005: astore 0 + // 006: bipush 0 + // 007: istore 1 + // 008: aload 0 + // 009: dup + // 00a: bipush 1 + // 00b: swap + // 00c: bipush 34 + // 00e: caload + // 00f: aload 0 + // 010: dup + // 011: bipush 34 + // 013: swap + // 014: bipush 1 + // 015: caload + // 016: castore + // 017: castore + // 018: aload 0 + // 019: dup + // 01a: bipush 16 + // 01c: swap + // 01d: bipush 26 + // 01f: caload + // 020: aload 0 + // 021: dup + // 022: bipush 26 + // 024: swap + // 025: bipush 16 + // 027: caload + // 028: castore + // 029: castore + // 02a: aload 0 + // 02b: dup + // 02c: bipush 23 + // 02e: swap + // 02f: bipush 0 + // 030: caload + // 031: aload 0 + // 032: dup + // 033: bipush 0 + // 034: swap + // 035: bipush 23 + // 037: caload + // 038: castore + // 039: castore + // 03a: aload 0 + // 03b: dup + // 03c: bipush 15 + // 03e: swap + // 03f: bipush 52 + // 041: caload + // 042: aload 0 + // 043: dup + // 044: bipush 52 + // 046: swap + // 047: bipush 15 + // 049: caload + // 04a: castore + // 04b: castore + // 04c: bipush 0 + // 04d: istore 3 + // 04e: goto 17c + // 051: astore 3 + // 052: aload 3 + // 053: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; + // 056: bipush 0 + // 057: aaload + // 058: astore 4 + // 05a: aload 4 + // 05c: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; + // 05f: invokevirtual java/lang/String.hashCode ()I + // 062: ldc 65535 + // 064: iand + // 065: istore 5 + // 067: aload 4 + // 069: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; + // 06c: invokevirtual java/lang/String.toCharArray ()[C + // 06f: astore 6 + // 071: aload 0 + // 072: iload 1 + // 073: iinc 1 1 + // 076: caload + // 077: sipush 249 + // 07a: ixor + // 07b: iload 5 + // 07d: ixor + // 07e: anewarray 52 + // 081: astore 7 + // 083: bipush 0 + // 084: istore 8 + // 086: aload 0 + // 087: iload 1 + // 088: iinc 1 1 + // 08b: caload + // 08c: bipush 116 + // 08e: ixor + // 08f: iload 5 + // 091: ixor + // 092: istore 2 + // 093: iload 2 + // 094: newarray 5 + // 096: astore 9 + // 098: bipush 0 + // 099: istore 10 + // 09b: iload 2 + // 09c: ifle 15d + // 09f: aload 0 + // 0a0: iload 1 + // 0a1: caload + // 0a2: istore 11 + // 0a4: aload 6 + // 0a6: iload 1 + // 0a7: aload 6 + // 0a9: arraylength + // 0aa: irem + // 0ab: caload + // 0ac: sipush 208 + // 0af: ixor + // 0b0: lookupswitch 151 17 130 226 156 318 160 207 162 220 163 239 164 245 165 251 177 264 179 277 180 283 181 290 182 297 187 304 188 311 190 332 191 339 254 325 + // 144: nop + // 145: nop + // 146: athrow + // 147: aload 9 + // 149: iload 10 + // 14b: iload 11 + // 14d: castore + // 14e: iinc 10 1 + // 151: iinc 1 1 + // 154: iinc 2 -1 + // 157: bipush 0 + // 158: istore 12 + // 15a: goto 20d + // 15d: aload 7 + // 15f: iload 8 + // 161: iinc 8 1 + // 164: new java/lang/String + // 167: dup + // 168: aload 9 + // 16a: invokespecial java/lang/String. ([C)V + // 16d: invokevirtual java/lang/String.intern ()Ljava/lang/String; + // 170: aastore + // 171: iload 1 + // 172: aload 0 + // 173: arraylength + // 174: if_icmplt 086 + // 177: aload 7 + // 179: putstatic pack/tests/reflects/loader/LRun.catch [Ljava/lang/String; + // 17c: goto 258 + // 17f: iload 11 + // 181: bipush -91 + // 183: ixor + // 184: istore 11 + // 186: bipush 1 + // 187: istore 12 + // 189: goto 20d + // 18c: bipush 2 + // 18d: istore 12 + // 18f: goto 20d + // 192: iload 11 + // 194: bipush 70 + // 196: ixor + // 197: istore 11 + // 199: bipush 1 + // 19a: istore 12 + // 19c: goto 20d + // 19f: bipush 3 + // 1a0: istore 12 + // 1a2: goto 20d + // 1a5: bipush 4 + // 1a6: istore 12 + // 1a8: goto 20d + // 1ab: iload 11 + // 1ad: bipush -16 + // 1af: ixor + // 1b0: istore 11 + // 1b2: bipush 1 + // 1b3: istore 12 + // 1b5: goto 20d + // 1b8: iload 11 + // 1ba: bipush -50 + // 1bc: ixor + // 1bd: istore 11 + // 1bf: bipush 1 + // 1c0: istore 12 + // 1c2: goto 20d + // 1c5: bipush 5 + // 1c6: istore 12 + // 1c8: goto 20d + // 1cb: bipush 6 + // 1cd: istore 12 + // 1cf: goto 20d + // 1d2: bipush 7 + // 1d4: istore 12 + // 1d6: goto 20d + // 1d9: bipush 8 + // 1db: istore 12 + // 1dd: goto 20d + // 1e0: bipush 9 + // 1e2: istore 12 + // 1e4: goto 20d + // 1e7: bipush 10 + // 1e9: istore 12 + // 1eb: goto 20d + // 1ee: bipush 11 + // 1f0: istore 12 + // 1f2: goto 20d + // 1f5: bipush 12 + // 1f7: istore 12 + // 1f9: goto 20d + // 1fc: bipush 13 + // 1fe: istore 12 + // 200: goto 20d + // 203: bipush 14 + // 205: istore 12 + // 207: goto 20d + // 20a: goto 051 + // 20d: iload 12 + // 20f: tableswitch -372 0 14 -372 -200 -144 -125 -112 -131 -106 -74 -87 -61 -68 -54 -33 -47 -19 + // 258: return + } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/reflects/loader/LTest.dec b/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/reflects/loader/LTest.dec index 50be4011..395de922 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/reflects/loader/LTest.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/reflects/loader/LTest.dec @@ -20,4 +20,215 @@ public class LTest { public void run() throws Exception { System.out.println(new String(readAllBytes(LTest.class.getResourceAsStream("TEST")))); } + + static { + // $VF: Couldn't be decompiled + // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) + // java.lang.RuntimeException: parsing failure! + // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) + // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) + // + // Bytecode: + // 000: ldc "ᄄ\u0ee8ᄍห\u0007ᄍ" + // 002: invokevirtual java/lang/String.toCharArray ()[C + // 005: astore 0 + // 006: bipush 0 + // 007: istore 1 + // 008: aload 0 + // 009: dup + // 00a: bipush 3 + // 00b: swap + // 00c: bipush 0 + // 00d: caload + // 00e: aload 0 + // 00f: dup + // 010: bipush 0 + // 011: swap + // 012: bipush 3 + // 013: caload + // 014: castore + // 015: castore + // 016: aload 0 + // 017: dup + // 018: bipush 5 + // 019: swap + // 01a: bipush 7 + // 01c: caload + // 01d: aload 0 + // 01e: dup + // 01f: bipush 7 + // 021: swap + // 022: bipush 5 + // 023: caload + // 024: castore + // 025: castore + // 026: aload 0 + // 027: dup + // 028: bipush 4 + // 029: swap + // 02a: bipush 4 + // 02b: caload + // 02c: aload 0 + // 02d: dup + // 02e: bipush 4 + // 02f: swap + // 030: bipush 4 + // 031: caload + // 032: castore + // 033: castore + // 034: bipush 0 + // 035: istore 3 + // 036: goto 150 + // 039: astore 3 + // 03a: aload 3 + // 03b: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; + // 03e: bipush 0 + // 03f: aaload + // 040: astore 4 + // 042: aload 4 + // 044: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; + // 047: invokevirtual java/lang/String.hashCode ()I + // 04a: ldc 65535 + // 04c: iand + // 04d: istore 5 + // 04f: aload 4 + // 051: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; + // 054: invokevirtual java/lang/String.toCharArray ()[C + // 057: astore 6 + // 059: aload 0 + // 05a: iload 1 + // 05b: iinc 1 1 + // 05e: caload + // 05f: sipush 131 + // 062: ixor + // 063: iload 5 + // 065: ixor + // 066: anewarray 52 + // 069: astore 7 + // 06b: bipush 0 + // 06c: istore 8 + // 06e: aload 0 + // 06f: iload 1 + // 070: iinc 1 1 + // 073: caload + // 074: bipush 69 + // 076: ixor + // 077: iload 5 + // 079: ixor + // 07a: istore 2 + // 07b: iload 2 + // 07c: newarray 5 + // 07e: astore 9 + // 080: bipush 0 + // 081: istore 10 + // 083: iload 2 + // 084: ifle 131 + // 087: aload 0 + // 088: iload 1 + // 089: caload + // 08a: istore 11 + // 08c: aload 6 + // 08e: iload 1 + // 08f: aload 6 + // 091: arraylength + // 092: irem + // 093: caload + // 094: bipush 85 + // 096: ixor + // 097: lookupswitch 132 15 1 201 25 279 33 188 37 214 38 220 39 226 48 239 49 245 51 251 52 258 54 265 57 272 58 286 62 306 123 293 + // 118: nop + // 119: nop + // 11a: athrow + // 11b: aload 9 + // 11d: iload 10 + // 11f: iload 11 + // 121: castore + // 122: iinc 10 1 + // 125: iinc 1 1 + // 128: iinc 2 -1 + // 12b: bipush 0 + // 12c: istore 12 + // 12e: goto 1d3 + // 131: aload 7 + // 133: iload 8 + // 135: iinc 8 1 + // 138: new java/lang/String + // 13b: dup + // 13c: aload 9 + // 13e: invokespecial java/lang/String. ([C)V + // 141: invokevirtual java/lang/String.intern ()Ljava/lang/String; + // 144: aastore + // 145: iload 1 + // 146: aload 0 + // 147: arraylength + // 148: if_icmplt 06e + // 14b: aload 7 + // 14d: putstatic pack/tests/reflects/loader/LTest.catch [Ljava/lang/String; + // 150: goto 218 + // 153: iload 11 + // 155: bipush -19 + // 157: ixor + // 158: istore 11 + // 15a: bipush 1 + // 15b: istore 12 + // 15d: goto 1d3 + // 160: iload 11 + // 162: bipush -41 + // 164: ixor + // 165: istore 11 + // 167: bipush 1 + // 168: istore 12 + // 16a: goto 1d3 + // 16d: bipush 2 + // 16e: istore 12 + // 170: goto 1d3 + // 173: bipush 3 + // 174: istore 12 + // 176: goto 1d3 + // 179: iload 11 + // 17b: bipush -78 + // 17d: ixor + // 17e: istore 11 + // 180: bipush 1 + // 181: istore 12 + // 183: goto 1d3 + // 186: bipush 4 + // 187: istore 12 + // 189: goto 1d3 + // 18c: bipush 5 + // 18d: istore 12 + // 18f: goto 1d3 + // 192: bipush 6 + // 194: istore 12 + // 196: goto 1d3 + // 199: bipush 7 + // 19b: istore 12 + // 19d: goto 1d3 + // 1a0: bipush 8 + // 1a2: istore 12 + // 1a4: goto 1d3 + // 1a7: bipush 9 + // 1a9: istore 12 + // 1ab: goto 1d3 + // 1ae: bipush 10 + // 1b0: istore 12 + // 1b2: goto 1d3 + // 1b5: bipush 11 + // 1b7: istore 12 + // 1b9: goto 1d3 + // 1bc: iload 11 + // 1be: bipush 84 + // 1c0: ixor + // 1c1: istore 11 + // 1c3: bipush 1 + // 1c4: istore 12 + // 1c6: goto 1d3 + // 1c9: bipush 12 + // 1cb: istore 12 + // 1cd: goto 1d3 + // 1d0: goto 039 + // 1d3: iload 12 + // 1d5: tableswitch -117 0 12 -338 -186 -130 -117 -104 -92 -73 -79 -60 -67 -46 -53 -32 + // 218: return + } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/reflects/loader/Loader.dec b/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/reflects/loader/Loader.dec index 1f61201a..f1b9bd58 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/reflects/loader/Loader.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/reflects/loader/Loader.dec @@ -31,4 +31,240 @@ public class Loader extends ClassLoader { byte[] data = readAllBytes(Loader.class.getClassLoader().getResourceAsStream("pack/tests/reflects/loader/LTest.class")); return this.defineClass(name, data, 0, data.length); } + + static { + // $VF: Couldn't be decompiled + // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) + // java.lang.RuntimeException: parsing failure! + // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) + // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) + // + // Bytecode: + // 000: ldc "Mຐj{mᄅຐnᄐmmາンワᄋニຜ\u0011[ノᅠ゙\u0011゚ネロR[ホJ゙ᅡムツ_Z[LᅭᄀjリMJᅮホムᄉ゙M" + // 002: invokevirtual java/lang/String.toCharArray ()[C + // 005: astore 0 + // 006: bipush 0 + // 007: istore 1 + // 008: aload 0 + // 009: dup + // 00a: bipush 0 + // 00b: swap + // 00c: bipush 19 + // 00e: caload + // 00f: aload 0 + // 010: dup + // 011: bipush 19 + // 013: swap + // 014: bipush 0 + // 015: caload + // 016: castore + // 017: castore + // 018: aload 0 + // 019: dup + // 01a: bipush 0 + // 01b: swap + // 01c: bipush 17 + // 01e: caload + // 01f: aload 0 + // 020: dup + // 021: bipush 17 + // 023: swap + // 024: bipush 0 + // 025: caload + // 026: castore + // 027: castore + // 028: aload 0 + // 029: dup + // 02a: bipush 16 + // 02c: swap + // 02d: bipush 0 + // 02e: caload + // 02f: aload 0 + // 030: dup + // 031: bipush 0 + // 032: swap + // 033: bipush 16 + // 035: caload + // 036: castore + // 037: castore + // 038: aload 0 + // 039: dup + // 03a: bipush 29 + // 03c: swap + // 03d: bipush 93 + // 03f: caload + // 040: aload 0 + // 041: dup + // 042: bipush 93 + // 044: swap + // 045: bipush 29 + // 047: caload + // 048: castore + // 049: castore + // 04a: aload 0 + // 04b: dup + // 04c: bipush 35 + // 04e: swap + // 04f: bipush 16 + // 051: caload + // 052: aload 0 + // 053: dup + // 054: bipush 16 + // 056: swap + // 057: bipush 35 + // 059: caload + // 05a: castore + // 05b: castore + // 05c: bipush 0 + // 05d: istore 3 + // 05e: goto 170 + // 061: astore 3 + // 062: aload 3 + // 063: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; + // 066: bipush 0 + // 067: aaload + // 068: astore 4 + // 06a: aload 4 + // 06c: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; + // 06f: invokevirtual java/lang/String.hashCode ()I + // 072: ldc 65535 + // 074: iand + // 075: istore 5 + // 077: aload 4 + // 079: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; + // 07c: invokevirtual java/lang/String.toCharArray ()[C + // 07f: astore 6 + // 081: aload 0 + // 082: iload 1 + // 083: iinc 1 1 + // 086: caload + // 087: bipush 54 + // 089: ixor + // 08a: iload 5 + // 08c: ixor + // 08d: anewarray 49 + // 090: astore 7 + // 092: bipush 0 + // 093: istore 8 + // 095: aload 0 + // 096: iload 1 + // 097: iinc 1 1 + // 09a: caload + // 09b: bipush 61 + // 09d: ixor + // 09e: iload 5 + // 0a0: ixor + // 0a1: istore 2 + // 0a2: iload 2 + // 0a3: newarray 5 + // 0a5: astore 9 + // 0a7: bipush 0 + // 0a8: istore 10 + // 0aa: iload 2 + // 0ab: ifle 151 + // 0ae: aload 0 + // 0af: iload 1 + // 0b0: caload + // 0b1: istore 11 + // 0b3: aload 6 + // 0b5: iload 1 + // 0b6: aload 6 + // 0b8: arraylength + // 0b9: irem + // 0ba: caload + // 0bb: sipush 211 + // 0be: ixor + // 0bf: lookupswitch 124 14 159 291 160 180 161 193 163 206 167 219 176 225 178 231 181 237 182 243 183 250 184 257 188 264 191 278 253 271 + // 138: nop + // 139: nop + // 13a: athrow + // 13b: aload 9 + // 13d: iload 10 + // 13f: iload 11 + // 141: castore + // 142: iinc 10 1 + // 145: iinc 1 1 + // 148: iinc 2 -1 + // 14b: bipush 0 + // 14c: istore 12 + // 14e: goto 1ec + // 151: aload 7 + // 153: iload 8 + // 155: iinc 8 1 + // 158: new java/lang/String + // 15b: dup + // 15c: aload 9 + // 15e: invokespecial java/lang/String. ([C)V + // 161: invokevirtual java/lang/String.intern ()Ljava/lang/String; + // 164: aastore + // 165: iload 1 + // 166: aload 0 + // 167: arraylength + // 168: if_icmplt 095 + // 16b: aload 7 + // 16d: putstatic pack/tests/reflects/loader/Loader.catch [Ljava/lang/String; + // 170: goto 22c + // 173: iload 11 + // 175: bipush 62 + // 177: ixor + // 178: istore 11 + // 17a: bipush 1 + // 17b: istore 12 + // 17d: goto 1ec + // 180: iload 11 + // 182: bipush -3 + // 184: ixor + // 185: istore 11 + // 187: bipush 1 + // 188: istore 12 + // 18a: goto 1ec + // 18d: iload 11 + // 18f: bipush -19 + // 191: ixor + // 192: istore 11 + // 194: bipush 1 + // 195: istore 12 + // 197: goto 1ec + // 19a: bipush 2 + // 19b: istore 12 + // 19d: goto 1ec + // 1a0: bipush 3 + // 1a1: istore 12 + // 1a3: goto 1ec + // 1a6: bipush 4 + // 1a7: istore 12 + // 1a9: goto 1ec + // 1ac: bipush 5 + // 1ad: istore 12 + // 1af: goto 1ec + // 1b2: bipush 6 + // 1b4: istore 12 + // 1b6: goto 1ec + // 1b9: bipush 7 + // 1bb: istore 12 + // 1bd: goto 1ec + // 1c0: bipush 8 + // 1c2: istore 12 + // 1c4: goto 1ec + // 1c7: bipush 9 + // 1c9: istore 12 + // 1cb: goto 1ec + // 1ce: bipush 10 + // 1d0: istore 12 + // 1d2: goto 1ec + // 1d5: iload 11 + // 1d7: bipush -44 + // 1d9: ixor + // 1da: istore 11 + // 1dc: bipush 1 + // 1dd: istore 12 + // 1df: goto 1ec + // 1e2: bipush 11 + // 1e4: istore 12 + // 1e6: goto 1ec + // 1e9: goto 061 + // 1ec: iload 12 + // 1ee: tableswitch -53 0 11 -324 -179 -110 -123 -78 -84 -97 -60 -72 -53 -46 -32 + // 22c: return + } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/reflects/res/Accesor.dec b/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/reflects/res/Accesor.dec index 92a2751e..9dfeefa0 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/reflects/res/Accesor.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/reflects/res/Accesor.dec @@ -20,4 +20,237 @@ public class Accesor { System.out.println("FAIL"); } } + + static { + // $VF: Couldn't be decompiled + // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) + // java.lang.RuntimeException: parsing failure! + // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) + // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) + // + // Bytecode: + // 000: ldc "ᄀິミ_モᄁອチミメᆱ\uffc8ᄡᆬmヤᄈ\uffdeテᆬチᆲヤᆪナᄈ\uffefᄇヤᄈ\uffc8ラwᆲ{\ufff3ອ\uffefチミメᆱᄡ\uffc8ᆬmᄡᄈ\uffdeテᆬチᆲヤᆪナᄈ\uffefᄇヤᄈ\uffc8ラwᆲ{ີラᄅンᄡᅢິญチノR" + // 002: invokevirtual java/lang/String.toCharArray ()[C + // 005: astore 0 + // 006: bipush 0 + // 007: istore 1 + // 008: aload 0 + // 009: dup + // 00a: bipush 70 + // 00c: swap + // 00d: bipush 15 + // 00f: caload + // 010: aload 0 + // 011: dup + // 012: bipush 15 + // 014: swap + // 015: bipush 70 + // 017: caload + // 018: castore + // 019: castore + // 01a: aload 0 + // 01b: dup + // 01c: bipush 42 + // 01e: swap + // 01f: bipush 43 + // 021: caload + // 022: aload 0 + // 023: dup + // 024: bipush 43 + // 026: swap + // 027: bipush 42 + // 029: caload + // 02a: castore + // 02b: castore + // 02c: aload 0 + // 02d: dup + // 02e: bipush 73 + // 030: swap + // 031: bipush 0 + // 032: caload + // 033: aload 0 + // 034: dup + // 035: bipush 0 + // 036: swap + // 037: bipush 73 + // 039: caload + // 03a: castore + // 03b: castore + // 03c: aload 0 + // 03d: dup + // 03e: bipush 2 + // 03f: swap + // 040: bipush 112 + // 042: caload + // 043: aload 0 + // 044: dup + // 045: bipush 112 + // 047: swap + // 048: bipush 2 + // 049: caload + // 04a: castore + // 04b: castore + // 04c: aload 0 + // 04d: dup + // 04e: bipush 53 + // 050: swap + // 051: bipush 71 + // 053: caload + // 054: aload 0 + // 055: dup + // 056: bipush 71 + // 058: swap + // 059: bipush 53 + // 05b: caload + // 05c: castore + // 05d: castore + // 05e: bipush 0 + // 05f: istore 3 + // 060: goto 16c + // 063: astore 3 + // 064: aload 3 + // 065: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; + // 068: bipush 0 + // 069: aaload + // 06a: astore 4 + // 06c: aload 4 + // 06e: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; + // 071: invokevirtual java/lang/String.hashCode ()I + // 074: ldc 65535 + // 076: iand + // 077: istore 5 + // 079: aload 4 + // 07b: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; + // 07e: invokevirtual java/lang/String.toCharArray ()[C + // 081: astore 6 + // 083: aload 0 + // 084: iload 1 + // 085: iinc 1 1 + // 088: caload + // 089: sipush 161 + // 08c: ixor + // 08d: iload 5 + // 08f: ixor + // 090: anewarray 65 + // 093: astore 7 + // 095: bipush 0 + // 096: istore 8 + // 098: aload 0 + // 099: iload 1 + // 09a: iinc 1 1 + // 09d: caload + // 09e: bipush 25 + // 0a0: ixor + // 0a1: iload 5 + // 0a3: ixor + // 0a4: istore 2 + // 0a5: iload 2 + // 0a6: newarray 5 + // 0a8: astore 9 + // 0aa: bipush 0 + // 0ab: istore 10 + // 0ad: iload 2 + // 0ae: ifle 14d + // 0b1: aload 0 + // 0b2: iload 1 + // 0b3: caload + // 0b4: istore 11 + // 0b6: aload 6 + // 0b8: iload 1 + // 0b9: aload 6 + // 0bb: arraylength + // 0bc: irem + // 0bd: caload + // 0be: bipush 23 + // 0c0: ixor + // 0c1: lookupswitch 118 13 57 264 86 250 99 174 100 187 101 193 103 206 113 212 114 225 116 231 118 237 120 257 123 271 124 278 + // 134: nop + // 135: nop + // 136: athrow + // 137: aload 9 + // 139: iload 10 + // 13b: iload 11 + // 13d: castore + // 13e: iinc 10 1 + // 141: iinc 1 1 + // 144: iinc 2 -1 + // 147: bipush 0 + // 148: istore 12 + // 14a: goto 1e1 + // 14d: aload 7 + // 14f: iload 8 + // 151: iinc 8 1 + // 154: new java/lang/String + // 157: dup + // 158: aload 9 + // 15a: invokespecial java/lang/String. ([C)V + // 15d: invokevirtual java/lang/String.intern ()Ljava/lang/String; + // 160: aastore + // 161: iload 1 + // 162: aload 0 + // 163: arraylength + // 164: if_icmplt 098 + // 167: aload 7 + // 169: putstatic pack/tests/reflects/res/Accesor.catch [Ljava/lang/String; + // 16c: goto 21c + // 16f: iload 11 + // 171: bipush -15 + // 173: ixor + // 174: istore 11 + // 176: bipush 1 + // 177: istore 12 + // 179: goto 1e1 + // 17c: bipush 2 + // 17d: istore 12 + // 17f: goto 1e1 + // 182: iload 11 + // 184: bipush -25 + // 186: ixor + // 187: istore 11 + // 189: bipush 1 + // 18a: istore 12 + // 18c: goto 1e1 + // 18f: bipush 3 + // 190: istore 12 + // 192: goto 1e1 + // 195: iload 11 + // 197: bipush -64 + // 199: ixor + // 19a: istore 11 + // 19c: bipush 1 + // 19d: istore 12 + // 19f: goto 1e1 + // 1a2: bipush 4 + // 1a3: istore 12 + // 1a5: goto 1e1 + // 1a8: bipush 5 + // 1a9: istore 12 + // 1ab: goto 1e1 + // 1ae: iload 11 + // 1b0: bipush 30 + // 1b2: ixor + // 1b3: istore 11 + // 1b5: bipush 1 + // 1b6: istore 12 + // 1b8: goto 1e1 + // 1bb: bipush 6 + // 1bd: istore 12 + // 1bf: goto 1e1 + // 1c2: bipush 7 + // 1c4: istore 12 + // 1c6: goto 1e1 + // 1c9: bipush 8 + // 1cb: istore 12 + // 1cd: goto 1e1 + // 1d0: bipush 9 + // 1d2: istore 12 + // 1d4: goto 1e1 + // 1d7: bipush 10 + // 1d9: istore 12 + // 1db: goto 1e1 + // 1de: goto 063 + // 1e1: iload 12 + // 1e3: tableswitch -84 0 10 -310 -172 -116 -103 -78 -65 -84 -59 -33 -53 -19 + // 21c: return + } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/reflects/retrace/Tracer.dec b/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/reflects/retrace/Tracer.dec index 89c04f25..138b78d7 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/reflects/retrace/Tracer.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/reflects/retrace/Tracer.dec @@ -9,4 +9,220 @@ public class Tracer { System.out.println("FAIL"); } } + + static { + // $VF: Couldn't be decompiled + // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) + // java.lang.RuntimeException: parsing failure! + // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) + // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) + // + // Bytecode: + // 000: ldc "#ຼ+:V(ຼY:ฬ<" + // 002: invokevirtual java/lang/String.toCharArray ()[C + // 005: astore 0 + // 006: bipush 0 + // 007: istore 1 + // 008: aload 0 + // 009: dup + // 00a: bipush 7 + // 00c: swap + // 00d: bipush 4 + // 00e: caload + // 00f: aload 0 + // 010: dup + // 011: bipush 4 + // 012: swap + // 013: bipush 7 + // 015: caload + // 016: castore + // 017: castore + // 018: aload 0 + // 019: dup + // 01a: bipush 4 + // 01b: swap + // 01c: bipush 9 + // 01e: caload + // 01f: aload 0 + // 020: dup + // 021: bipush 9 + // 023: swap + // 024: bipush 4 + // 025: caload + // 026: castore + // 027: castore + // 028: aload 0 + // 029: dup + // 02a: bipush 4 + // 02b: swap + // 02c: bipush 0 + // 02d: caload + // 02e: aload 0 + // 02f: dup + // 030: bipush 0 + // 031: swap + // 032: bipush 4 + // 033: caload + // 034: castore + // 035: castore + // 036: aload 0 + // 037: dup + // 038: bipush 4 + // 039: swap + // 03a: bipush 20 + // 03c: caload + // 03d: aload 0 + // 03e: dup + // 03f: bipush 20 + // 041: swap + // 042: bipush 4 + // 043: caload + // 044: castore + // 045: castore + // 046: bipush 0 + // 047: istore 3 + // 048: goto 14c + // 04b: astore 3 + // 04c: aload 3 + // 04d: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; + // 050: bipush 0 + // 051: aaload + // 052: astore 4 + // 054: aload 4 + // 056: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; + // 059: invokevirtual java/lang/String.hashCode ()I + // 05c: ldc 65535 + // 05e: iand + // 05f: istore 5 + // 061: aload 4 + // 063: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; + // 066: invokevirtual java/lang/String.toCharArray ()[C + // 069: astore 6 + // 06b: aload 0 + // 06c: iload 1 + // 06d: iinc 1 1 + // 070: caload + // 071: sipush 135 + // 074: ixor + // 075: iload 5 + // 077: ixor + // 078: anewarray 46 + // 07b: astore 7 + // 07d: bipush 0 + // 07e: istore 8 + // 080: aload 0 + // 081: iload 1 + // 082: iinc 1 1 + // 085: caload + // 086: bipush 17 + // 088: ixor + // 089: iload 5 + // 08b: ixor + // 08c: istore 2 + // 08d: iload 2 + // 08e: newarray 5 + // 090: astore 9 + // 092: bipush 0 + // 093: istore 10 + // 095: iload 2 + // 096: ifle 12d + // 099: aload 0 + // 09a: iload 1 + // 09b: caload + // 09c: istore 11 + // 09e: aload 6 + // 0a0: iload 1 + // 0a1: aload 6 + // 0a3: arraylength + // 0a4: irem + // 0a5: caload + // 0a6: sipush 165 + // 0a9: ixor + // 0aa: lookupswitch 109 12 139 255 192 165 195 197 196 203 198 222 201 248 206 262 209 178 213 209 214 228 215 241 241 184 + // 114: nop + // 115: nop + // 116: athrow + // 117: aload 9 + // 119: iload 10 + // 11b: iload 11 + // 11d: castore + // 11e: iinc 10 1 + // 121: iinc 1 1 + // 124: iinc 2 -1 + // 127: bipush 0 + // 128: istore 12 + // 12a: goto 1ba + // 12d: aload 7 + // 12f: iload 8 + // 131: iinc 8 1 + // 134: new java/lang/String + // 137: dup + // 138: aload 9 + // 13a: invokespecial java/lang/String. ([C)V + // 13d: invokevirtual java/lang/String.intern ()Ljava/lang/String; + // 140: aastore + // 141: iload 1 + // 142: aload 0 + // 143: arraylength + // 144: if_icmplt 080 + // 147: aload 7 + // 149: putstatic pack/tests/reflects/retrace/Tracer.catch [Ljava/lang/String; + // 14c: goto 1f4 + // 14f: iload 11 + // 151: bipush 123 + // 153: ixor + // 154: istore 11 + // 156: bipush 1 + // 157: istore 12 + // 159: goto 1ba + // 15c: bipush 2 + // 15d: istore 12 + // 15f: goto 1ba + // 162: iload 11 + // 164: bipush -104 + // 166: ixor + // 167: istore 11 + // 169: bipush 1 + // 16a: istore 12 + // 16c: goto 1ba + // 16f: bipush 3 + // 170: istore 12 + // 172: goto 1ba + // 175: bipush 4 + // 176: istore 12 + // 178: goto 1ba + // 17b: iload 11 + // 17d: bipush 112 + // 17f: ixor + // 180: istore 11 + // 182: bipush 1 + // 183: istore 12 + // 185: goto 1ba + // 188: bipush 5 + // 189: istore 12 + // 18b: goto 1ba + // 18e: iload 11 + // 190: bipush 16 + // 192: ixor + // 193: istore 11 + // 195: bipush 1 + // 196: istore 12 + // 198: goto 1ba + // 19b: bipush 6 + // 19d: istore 12 + // 19f: goto 1ba + // 1a2: bipush 7 + // 1a4: istore 12 + // 1a6: goto 1ba + // 1a9: bipush 8 + // 1ab: istore 12 + // 1ad: goto 1ba + // 1b0: bipush 9 + // 1b2: istore 12 + // 1b4: goto 1ba + // 1b7: goto 04b + // 1ba: iload 12 + // 1bc: tableswitch -96 0 9 -295 -165 -109 -96 -77 -71 -90 -65 -26 -52 + // 1f4: return + } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/security/SecTest.dec b/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/security/SecTest.dec index 7ce68719..2c1e3966 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/security/SecTest.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/security/SecTest.dec @@ -32,4 +32,226 @@ public class SecTest { } } } + + static { + // $VF: Couldn't be decompiled + // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) + // java.lang.RuntimeException: parsing failure! + // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) + // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) + // + // Bytecode: + // 000: ldc "ພຐ\u0004#ハ6L8(#ᆴ\"ຒx\uffd1xD\u001cxハ\u001fโ$\rp\u0000ພ\u0014\u0003?\u0007" + // 002: invokevirtual java/lang/String.toCharArray ()[C + // 005: astore 0 + // 006: bipush 0 + // 007: istore 1 + // 008: aload 0 + // 009: dup + // 00a: bipush 2 + // 00b: swap + // 00c: bipush 27 + // 00e: caload + // 00f: aload 0 + // 010: dup + // 011: bipush 27 + // 013: swap + // 014: bipush 2 + // 015: caload + // 016: castore + // 017: castore + // 018: aload 0 + // 019: dup + // 01a: bipush 5 + // 01b: swap + // 01c: bipush 22 + // 01e: caload + // 01f: aload 0 + // 020: dup + // 021: bipush 22 + // 023: swap + // 024: bipush 5 + // 025: caload + // 026: castore + // 027: castore + // 028: aload 0 + // 029: dup + // 02a: bipush 21 + // 02c: swap + // 02d: bipush 0 + // 02e: caload + // 02f: aload 0 + // 030: dup + // 031: bipush 0 + // 032: swap + // 033: bipush 21 + // 035: caload + // 036: castore + // 037: castore + // 038: aload 0 + // 039: dup + // 03a: bipush 14 + // 03c: swap + // 03d: bipush 44 + // 03f: caload + // 040: aload 0 + // 041: dup + // 042: bipush 44 + // 044: swap + // 045: bipush 14 + // 047: caload + // 048: castore + // 049: castore + // 04a: bipush 0 + // 04b: istore 3 + // 04c: goto 160 + // 04f: astore 3 + // 050: aload 3 + // 051: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; + // 054: bipush 0 + // 055: aaload + // 056: astore 4 + // 058: aload 4 + // 05a: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; + // 05d: invokevirtual java/lang/String.hashCode ()I + // 060: ldc 65535 + // 062: iand + // 063: istore 5 + // 065: aload 4 + // 067: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; + // 06a: invokevirtual java/lang/String.toCharArray ()[C + // 06d: astore 6 + // 06f: aload 0 + // 070: iload 1 + // 071: iinc 1 1 + // 074: caload + // 075: sipush 239 + // 078: ixor + // 079: iload 5 + // 07b: ixor + // 07c: anewarray 67 + // 07f: astore 7 + // 081: bipush 0 + // 082: istore 8 + // 084: aload 0 + // 085: iload 1 + // 086: iinc 1 1 + // 089: caload + // 08a: bipush 51 + // 08c: ixor + // 08d: iload 5 + // 08f: ixor + // 090: istore 2 + // 091: iload 2 + // 092: newarray 5 + // 094: astore 9 + // 096: bipush 0 + // 097: istore 10 + // 099: iload 2 + // 09a: ifle 141 + // 09d: aload 0 + // 09e: iload 1 + // 09f: caload + // 0a0: istore 11 + // 0a2: aload 6 + // 0a4: iload 1 + // 0a5: aload 6 + // 0a7: arraylength + // 0a8: irem + // 0a9: caload + // 0aa: bipush 39 + // 0ac: ixor + // 0ad: lookupswitch 126 14 9 221 66 182 68 195 70 208 76 234 78 240 82 246 83 252 84 265 85 279 87 286 94 293 115 258 116 272 + // 128: nop + // 129: nop + // 12a: athrow + // 12b: aload 9 + // 12d: iload 10 + // 12f: iload 11 + // 131: castore + // 132: iinc 10 1 + // 135: iinc 1 1 + // 138: iinc 2 -1 + // 13b: bipush 0 + // 13c: istore 12 + // 13e: goto 1dc + // 141: aload 7 + // 143: iload 8 + // 145: iinc 8 1 + // 148: new java/lang/String + // 14b: dup + // 14c: aload 9 + // 14e: invokespecial java/lang/String. ([C)V + // 151: invokevirtual java/lang/String.intern ()Ljava/lang/String; + // 154: aastore + // 155: iload 1 + // 156: aload 0 + // 157: arraylength + // 158: if_icmplt 084 + // 15b: aload 7 + // 15d: putstatic pack/tests/security/SecTest.catch [Ljava/lang/String; + // 160: goto 21c + // 163: iload 11 + // 165: bipush 57 + // 167: ixor + // 168: istore 11 + // 16a: bipush 1 + // 16b: istore 12 + // 16d: goto 1dc + // 170: iload 11 + // 172: bipush 112 + // 174: ixor + // 175: istore 11 + // 177: bipush 1 + // 178: istore 12 + // 17a: goto 1dc + // 17d: iload 11 + // 17f: bipush 76 + // 181: ixor + // 182: istore 11 + // 184: bipush 1 + // 185: istore 12 + // 187: goto 1dc + // 18a: iload 11 + // 18c: bipush -39 + // 18e: ixor + // 18f: istore 11 + // 191: bipush 1 + // 192: istore 12 + // 194: goto 1dc + // 197: bipush 2 + // 198: istore 12 + // 19a: goto 1dc + // 19d: bipush 3 + // 19e: istore 12 + // 1a0: goto 1dc + // 1a3: bipush 4 + // 1a4: istore 12 + // 1a6: goto 1dc + // 1a9: bipush 5 + // 1aa: istore 12 + // 1ac: goto 1dc + // 1af: bipush 6 + // 1b1: istore 12 + // 1b3: goto 1dc + // 1b6: bipush 7 + // 1b8: istore 12 + // 1ba: goto 1dc + // 1bd: bipush 8 + // 1bf: istore 12 + // 1c1: goto 1dc + // 1c4: bipush 9 + // 1c6: istore 12 + // 1c8: goto 1dc + // 1cb: bipush 10 + // 1cd: istore 12 + // 1cf: goto 1dc + // 1d2: bipush 11 + // 1d4: istore 12 + // 1d6: goto 1dc + // 1d9: goto 04f + // 1dc: iload 12 + // 1de: tableswitch -47 0 11 -325 -179 -97 -71 -84 -65 -53 -47 -40 -110 -33 -123 + // 21c: return + } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/security/Sman.dec b/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/security/Sman.dec index 7f6f1b32..63173eb0 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/security/Sman.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/security/Sman.dec @@ -9,4 +9,215 @@ public class Sman extends SecurityManager { throw new SecurityException("HOOKED"); } } + + static { + // $VF: Couldn't be decompiled + // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) + // java.lang.RuntimeException: parsing failure! + // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) + // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) + // + // Bytecode: + // 000: ldc "วsHOᄂ໙E0ว\u0011モ\u001dtVu" + // 002: invokevirtual java/lang/String.toCharArray ()[C + // 005: astore 0 + // 006: bipush 0 + // 007: istore 1 + // 008: aload 0 + // 009: dup + // 00a: bipush 1 + // 00b: swap + // 00c: bipush 0 + // 00d: caload + // 00e: aload 0 + // 00f: dup + // 010: bipush 0 + // 011: swap + // 012: bipush 1 + // 013: caload + // 014: castore + // 015: castore + // 016: aload 0 + // 017: dup + // 018: bipush 5 + // 019: swap + // 01a: bipush 0 + // 01b: caload + // 01c: aload 0 + // 01d: dup + // 01e: bipush 0 + // 01f: swap + // 020: bipush 5 + // 021: caload + // 022: castore + // 023: castore + // 024: aload 0 + // 025: dup + // 026: bipush 8 + // 028: swap + // 029: bipush 28 + // 02b: caload + // 02c: aload 0 + // 02d: dup + // 02e: bipush 28 + // 030: swap + // 031: bipush 8 + // 033: caload + // 034: castore + // 035: castore + // 036: bipush 0 + // 037: istore 3 + // 038: goto 154 + // 03b: astore 3 + // 03c: aload 3 + // 03d: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; + // 040: bipush 0 + // 041: aaload + // 042: astore 4 + // 044: aload 4 + // 046: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; + // 049: invokevirtual java/lang/String.hashCode ()I + // 04c: ldc 65535 + // 04e: iand + // 04f: istore 5 + // 051: aload 4 + // 053: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; + // 056: invokevirtual java/lang/String.toCharArray ()[C + // 059: astore 6 + // 05b: aload 0 + // 05c: iload 1 + // 05d: iinc 1 1 + // 060: caload + // 061: bipush 114 + // 063: ixor + // 064: iload 5 + // 066: ixor + // 067: anewarray 23 + // 06a: astore 7 + // 06c: bipush 0 + // 06d: istore 8 + // 06f: aload 0 + // 070: iload 1 + // 071: iinc 1 1 + // 074: caload + // 075: sipush 136 + // 078: ixor + // 079: iload 5 + // 07b: ixor + // 07c: istore 2 + // 07d: iload 2 + // 07e: newarray 5 + // 080: astore 9 + // 082: bipush 0 + // 083: istore 10 + // 085: iload 2 + // 086: ifle 135 + // 089: aload 0 + // 08a: iload 1 + // 08b: caload + // 08c: istore 11 + // 08e: aload 6 + // 090: iload 1 + // 091: aload 6 + // 093: arraylength + // 094: irem + // 095: caload + // 096: sipush 176 + // 099: ixor + // 09a: lookupswitch 133 15 158 299 192 189 194 202 195 215 196 234 197 240 201 246 209 252 211 259 213 271 217 278 219 285 221 292 222 306 227 221 + // 11c: nop + // 11d: nop + // 11e: athrow + // 11f: aload 9 + // 121: iload 10 + // 123: iload 11 + // 125: castore + // 126: iinc 10 1 + // 129: iinc 1 1 + // 12c: iinc 2 -1 + // 12f: bipush 0 + // 130: istore 12 + // 132: goto 1d6 + // 135: aload 7 + // 137: iload 8 + // 139: iinc 8 1 + // 13c: new java/lang/String + // 13f: dup + // 140: aload 9 + // 142: invokespecial java/lang/String. ([C)V + // 145: invokevirtual java/lang/String.intern ()Ljava/lang/String; + // 148: aastore + // 149: iload 1 + // 14a: aload 0 + // 14b: arraylength + // 14c: if_icmplt 06f + // 14f: aload 7 + // 151: putstatic pack/tests/security/Sman.catch [Ljava/lang/String; + // 154: goto 21c + // 157: iload 11 + // 159: bipush 116 + // 15b: ixor + // 15c: istore 11 + // 15e: bipush 1 + // 15f: istore 12 + // 161: goto 1d6 + // 164: iload 11 + // 166: bipush -21 + // 168: ixor + // 169: istore 11 + // 16b: bipush 1 + // 16c: istore 12 + // 16e: goto 1d6 + // 171: bipush 2 + // 172: istore 12 + // 174: goto 1d6 + // 177: iload 11 + // 179: bipush 56 + // 17b: ixor + // 17c: istore 11 + // 17e: bipush 1 + // 17f: istore 12 + // 181: goto 1d6 + // 184: bipush 3 + // 185: istore 12 + // 187: goto 1d6 + // 18a: bipush 4 + // 18b: istore 12 + // 18d: goto 1d6 + // 190: bipush 5 + // 191: istore 12 + // 193: goto 1d6 + // 196: bipush 6 + // 198: istore 12 + // 19a: goto 1d6 + // 19d: iload 11 + // 19f: bipush 0 + // 1a0: ixor + // 1a1: istore 11 + // 1a3: bipush 1 + // 1a4: istore 12 + // 1a6: goto 1d6 + // 1a9: bipush 7 + // 1ab: istore 12 + // 1ad: goto 1d6 + // 1b0: bipush 8 + // 1b2: istore 12 + // 1b4: goto 1d6 + // 1b7: bipush 9 + // 1b9: istore 12 + // 1bb: goto 1d6 + // 1be: bipush 10 + // 1c0: istore 12 + // 1c2: goto 1d6 + // 1c5: bipush 11 + // 1c7: istore 12 + // 1c9: goto 1d6 + // 1cc: bipush 12 + // 1ce: istore 12 + // 1d0: goto 1d6 + // 1d3: goto 03b + // 1d6: iload 12 + // 1d8: tableswitch -129 0 12 -339 -185 -129 -97 -84 -78 -103 -59 -116 -47 -72 -40 -66 + // 21c: return + } } diff --git a/testData/results/custom-jars/branchlock/flow/flow 9/pack/Clazz.dec b/testData/results/custom-jars/branchlock/flow/flow 9/pack/Clazz.dec new file mode 100644 index 00000000..a3aff8d8 --- /dev/null +++ b/testData/results/custom-jars/branchlock/flow/flow 9/pack/Clazz.dec @@ -0,0 +1,4 @@ +package pack; + +public class Clazz { +} diff --git a/testData/results/custom-jars/branchlock/flow/flow 9/pack/Main.dec b/testData/results/custom-jars/branchlock/flow/flow 9/pack/Main.dec new file mode 100644 index 00000000..389de3f2 --- /dev/null +++ b/testData/results/custom-jars/branchlock/flow/flow 9/pack/Main.dec @@ -0,0 +1,157 @@ +package pack; + +import java.io.File; +import pack.tests.basics.accu.Digi; +import pack.tests.basics.ctrl.Ctrl; +import pack.tests.basics.inner.Test; +import pack.tests.basics.overwirte.Sub; +import pack.tests.basics.runable.Task; +import pack.tests.basics.sub.Solver; +import pack.tests.bench.Calc; +import pack.tests.reflects.annot.annot; +import pack.tests.reflects.counter.Count; +import pack.tests.reflects.field.FTest; +import pack.tests.reflects.loader.LRun; +import pack.tests.reflects.res.Accesor; +import pack.tests.reflects.retrace.Tracer; +import pack.tests.security.SecTest; + +public class Main { + public static void main(String[] var0) throws Exception { + System.out.println("Obfuscator Test Program"); + System.out.println("Author: huzpsb"); + System.out.println("Version: 1.0r"); + System.out.println("Link: https://github.com/huzpsb/JavaObfuscatorTest"); + File var1 = new File("IK"); + if (!var1.exists()) { + var1.createNewFile(); + System.out.println(); + System.out.println("[HINT]"); + System.out.println("Only compatibility and efficiency are tested here!"); + System.out.println("For most users, pass all of the basics means the obfuscator is good enough."); + System.out.println("The Test #2 is for SpringBoot and Android like environment."); + System.out.println("Choose wisely among strength, compatibility, efficiency, size, and price."); + System.out.println("[HINT]"); + System.out.println(); + } + + System.out.println("-------------Test #1: Basics-------------"); + System.out.print("Test 1.1: Inheritance "); + + try { + new Sub().run(); + } catch (Throwable var17) { + System.out.println("ERROR"); + } + + System.out.print("Test 1.2: Cross "); + + try { + new Sub().run(); + } catch (Throwable var16) { + System.out.println("ERROR"); + } + + System.out.print("Test 1.3: Throw "); + + try { + new Ctrl().run(); + } catch (Throwable var15) { + System.out.println("ERROR"); + } + + System.out.print("Test 1.4: Accuracy "); + + try { + new Digi().run(); + } catch (Throwable var14) { + System.out.println("ERROR"); + } + + System.out.print("Test 1.5: SubClass "); + + try { + new Solver(); + } catch (Throwable var13) { + System.out.println("ERROR"); + } + + System.out.print("Test 1.6: Pool "); + + try { + new Task().run(); + } catch (Throwable var12) { + System.out.println("ERROR"); + } + + System.out.print("Test 1.7: InnerClass "); + + try { + new Test().run(); + } catch (Throwable var11) { + System.out.println("ERROR"); + } + + System.out.println("-------------Test #2: Reflects-------------"); + System.out.print("Test 2.1: Counter "); + + try { + new Count().run(); + } catch (Throwable var10) { + System.out.println("ERROR"); + } + + System.out.print("Test 2.2: Chinese 通过LMAO\b\b\b\b \n"); + System.out.print("Test 2.3: Resource "); + + try { + new Accesor().run(); + } catch (Throwable var9) { + System.out.println("ERROR"); + } + + System.out.print("Test 2.4: Field "); + + try { + new FTest().run(); + } catch (Throwable var8) { + System.out.println("ERROR"); + } + + System.out.print("Test 2.5: Loader "); + + try { + new LRun().run(); + } catch (Throwable var7) { + System.out.println("ERROR"); + } + + System.out.print("Test 2.6: ReTrace "); + + try { + new Tracer().run(); + } catch (Throwable var6) { + System.out.println("ERROR"); + } + + System.out.print("Test 2.7: Annotation "); + + try { + new annot().run(); + } catch (Throwable var5) { + System.out.println("ERROR"); + } + + System.out.print("Test 2.8: Sec "); + + try { + new SecTest().run(); + } catch (Throwable var4) { + System.out.println("ERROR"); + } + + System.out.println("-------------Test #3: Efficiency-------------"); + Calc.runAll(); + System.out.println("-------------Tests r Finished-------------"); + } +} diff --git a/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/accu/Digi.dec b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/accu/Digi.dec new file mode 100644 index 00000000..e44e0973 --- /dev/null +++ b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/accu/Digi.dec @@ -0,0 +1,24 @@ +package pack.tests.basics.accu; + +public class Digi { + public void run() { + double var1 = 0.0; + int var3 = 0; + float var4 = 1.1F; + + do { + var1 += 1.0E-18; + } while (++var3 <= 100 && (float)var1 != 2.0E-17F); + + if (var3 == 20) { + if (++var4 == 2.4F) { + System.out.println("PASS"); + return; + } + + System.out.println("FAIL"); + } else { + System.out.println("FAIL"); + } + } +} diff --git a/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/cross/Abst1.dec b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/cross/Abst1.dec new file mode 100644 index 00000000..41de7ada --- /dev/null +++ b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/cross/Abst1.dec @@ -0,0 +1,9 @@ +package pack.tests.basics.cross; + +public abstract class Abst1 { + public abstract int add(int var1, int var2); + + public int mul(int a, int b) { + return a * b; + } +} diff --git a/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/cross/Inte.dec b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/cross/Inte.dec new file mode 100644 index 00000000..da16cc4b --- /dev/null +++ b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/cross/Inte.dec @@ -0,0 +1,5 @@ +package pack.tests.basics.cross; + +public interface Inte { + int mul(int var1, int var2); +} diff --git a/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/cross/Top.dec b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/cross/Top.dec new file mode 100644 index 00000000..a61980fc --- /dev/null +++ b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/cross/Top.dec @@ -0,0 +1,16 @@ +package pack.tests.basics.cross; + +public class Top extends Abst1 implements Inte { + public void run() { + if (this.add(1, 2) == 3 && this.mul(2, 3) == 6) { + System.out.println("PASS"); + } else { + System.out.println("FAIL"); + } + } + + @Override + public int add(int a, int b) { + return a + b; + } +} diff --git a/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/ctrl/Ctrl.dec b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/ctrl/Ctrl.dec new file mode 100644 index 00000000..d453e3ce --- /dev/null +++ b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/ctrl/Ctrl.dec @@ -0,0 +1,26 @@ +package pack.tests.basics.ctrl; + +public class Ctrl { + private String ret = "FAIL"; + + public void runt() { + if (!"a".equals("b")) { + throw new UnsupportedOperationException(); + } + } + + public void runf() { + this.runt(); + + try { + this.runt(); + this.ret = "FAIL"; + } catch (Exception var2) { + } + } + + public void run() { + this.runf(); + System.out.println(this.ret); + } +} diff --git a/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/inner/Exec.dec b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/inner/Exec.dec new file mode 100644 index 00000000..48a15caf --- /dev/null +++ b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/inner/Exec.dec @@ -0,0 +1,22 @@ +package pack.tests.basics.inner; + +public class Exec { + public int fuss = 1; + + public void addF() { + this.fuss += 2; + } + + public class Inner { + int i; + + public Inner(int p) { + this.i = p; + } + + public void doAdd() { + Exec.this.addF(); + Exec.this.fuss = Exec.this.fuss + this.i; + } + } +} diff --git a/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/inner/Test.dec b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/inner/Test.dec new file mode 100644 index 00000000..6595e67d --- /dev/null +++ b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/inner/Test.dec @@ -0,0 +1,16 @@ +package pack.tests.basics.inner; + +public class Test { + public void run() { + Exec var1 = new Exec(); + Exec.Inner var2 = var1.new Inner(3); + var2.doAdd(); + Exec.Inner var3 = var1.new Inner(100); + var3.doAdd(); + if (var1.fuss == 108) { + System.out.println("PASS"); + } else { + System.out.println("ERROR"); + } + } +} diff --git a/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/overwirte/Face.dec b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/overwirte/Face.dec new file mode 100644 index 00000000..a5876ace --- /dev/null +++ b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/overwirte/Face.dec @@ -0,0 +1,5 @@ +package pack.tests.basics.overwirte; + +public interface Face { + String face(int var1); +} diff --git a/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/overwirte/Sub.dec b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/overwirte/Sub.dec new file mode 100644 index 00000000..2e3939a0 --- /dev/null +++ b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/overwirte/Sub.dec @@ -0,0 +1,13 @@ +package pack.tests.basics.overwirte; + +public class Sub extends Super { + @Override + public void run() { + System.out.println(this.face(1)); + } + + @Override + public String face(int var1) { + return var1 == 1 ? "PASS" : "FAIL"; + } +} diff --git a/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/overwirte/Super.dec b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/overwirte/Super.dec new file mode 100644 index 00000000..f621220d --- /dev/null +++ b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/overwirte/Super.dec @@ -0,0 +1,7 @@ +package pack.tests.basics.overwirte; + +public abstract class Super implements Face { + public void run() { + System.out.println("FAIL"); + } +} diff --git a/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/runable/Exec.dec b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/runable/Exec.dec new file mode 100644 index 00000000..815a4287 --- /dev/null +++ b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/runable/Exec.dec @@ -0,0 +1,15 @@ +package pack.tests.basics.runable; + +public class Exec { + public static int i = 1; + private int d; + + public Exec(int delta) { + this.d = delta; + } + + void doAdd() { + Thread.sleep(200L); + i = i + this.d; + } +} diff --git a/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/runable/Pool.dec b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/runable/Pool.dec new file mode 100644 index 00000000..f8665a74 --- /dev/null +++ b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/runable/Pool.dec @@ -0,0 +1,45 @@ +package pack.tests.basics.runable; + +import java.util.concurrent.LinkedBlockingQueue; +import java.util.concurrent.ThreadPoolExecutor; +import java.util.concurrent.TimeUnit; +import pack.tests.reflects.annot.annot; + +public class Pool { + public static ThreadPoolExecutor tpe; + + // $VF: Handled exception range with multiple entry points by splitting it + // $VF: Inserted dummy exception handlers to handle obfuscated exceptions + static { + NoSuchMethodException var10000; + label36: { + Object var0; + try { + var0 = null; + } catch (NoSuchMethodException var2) { + var10000 = var2; + boolean var10001 = false; + break label36; + } + + while (var0 != null) { + } + + ThreadPoolExecutor var3 = new ThreadPoolExecutor; + + try { + var3./* $VF: Unable to resugar constructor */(0, 1, 1L, TimeUnit.SECONDS, new LinkedBlockingQueue<>(1)); + tpe = var3; + return; + } catch (NoSuchMethodException var1) { + var10000 = var1; + boolean var4 = false; + } + } + + while (var10000 == null) { + } + + throw annot.I(var10000); + } +} diff --git a/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/runable/Task.dec b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/runable/Task.dec new file mode 100644 index 00000000..d97e9ef4 --- /dev/null +++ b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/runable/Task.dec @@ -0,0 +1,42 @@ +package pack.tests.basics.runable; + +import java.util.concurrent.RejectedExecutionException; + +public class Task { + public void run() throws Exception { + Exec var1 = new Exec(2); + Exec var2 = new Exec(3); + Exec var3 = new Exec(100); + + try { + Pool.tpe.submit(var2::doAdd); + + try { + Thread.sleep(50L); + } catch (InterruptedException var6) { + } + + Pool.tpe.submit(() -> { + int var1x = Exec.i; + var1.doAdd(); + Exec.i += var1x; + }); + + try { + Thread.sleep(50L); + } catch (InterruptedException var5) { + } + + Pool.tpe.submit(var3::doAdd); + } catch (RejectedExecutionException var7) { + Exec.i += 10; + } + + Thread.sleep(300L); + if (Exec.i == 30) { + System.out.println("PASS"); + } else { + System.out.println("FAIL"); + } + } +} diff --git a/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/sub/SolAdd.dec b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/sub/SolAdd.dec new file mode 100644 index 00000000..10377cb3 --- /dev/null +++ b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/sub/SolAdd.dec @@ -0,0 +1,7 @@ +package pack.tests.basics.sub; + +public class SolAdd { + public static int get() { + return (new med(1, 2)).result; + } +} diff --git a/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/sub/Solver.dec b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/sub/Solver.dec new file mode 100644 index 00000000..220ba627 --- /dev/null +++ b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/sub/Solver.dec @@ -0,0 +1,11 @@ +package pack.tests.basics.sub; + +public class Solver { + public Solver() { + if (SolAdd.get() == 3) { + System.out.println("PASS"); + } else { + System.out.println("FAIL"); + } + } +} diff --git a/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/sub/flo.dec b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/sub/flo.dec new file mode 100644 index 00000000..5b3bfab6 --- /dev/null +++ b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/sub/flo.dec @@ -0,0 +1,7 @@ +package pack.tests.basics.sub; + +class flo { + int solve(int a, int b) { + return a + b; + } +} diff --git a/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/sub/med.dec b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/sub/med.dec new file mode 100644 index 00000000..6683d6f8 --- /dev/null +++ b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/sub/med.dec @@ -0,0 +1,9 @@ +package pack.tests.basics.sub; + +class med { + int result; + + med(int a, int b) { + this.result = new flo().solve(a, b); + } +} diff --git a/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/bench/Calc.dec b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/bench/Calc.dec new file mode 100644 index 00000000..09c53218 --- /dev/null +++ b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/bench/Calc.dec @@ -0,0 +1,48 @@ +package pack.tests.bench; + +public class Calc { + public static int count = 0; + + public static void runAll() { + long var0 = System.currentTimeMillis(); + + for (int var2 = 0; var2 < 10000; var2++) { + call(100); + runAdd(); + runStr(); + } + + System.out.println("Calc: " + (System.currentTimeMillis() - var0) + "ms"); + if (count != 30000) { + throw new RuntimeException("[ERROR]: Errors occurred in calc!"); + } + } + + private static void call(int var0) { + if (var0 == 0) { + count++; + } else { + call(var0 - 1); + } + } + + private static void runAdd() { + double var0 = 0.0; + + while (var0 < 100.1) { + var0 += 0.99; + } + + count++; + } + + private static void runStr() { + String var0 = ""; + + while (var0.length() < 101) { + var0 = var0 + "ax"; + } + + count++; + } +} diff --git a/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/annot/anno.dec b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/annot/anno.dec new file mode 100644 index 00000000..4149deff --- /dev/null +++ b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/annot/anno.dec @@ -0,0 +1,11 @@ +package pack.tests.reflects.annot; + +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +@Retention(RetentionPolicy.RUNTIME) +public @interface anno { + String val() default "yes"; + + String val2() default "yes"; +} diff --git a/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/annot/annoe.dec b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/annot/annoe.dec new file mode 100644 index 00000000..cb126be2 --- /dev/null +++ b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/annot/annoe.dec @@ -0,0 +1,32 @@ +package pack.tests.reflects.annot; + +import java.lang.reflect.Field; + +public class annoe { + @anno( + val = "PASS" + ) + private static final String fail = "WHAT"; + + @anno + public void dox() throws Exception { + String var1 = "FAIL"; + + for (Field var5 : annoe.class.getDeclaredFields()) { + var5.setAccessible(true); + anno var6 = var5.getAnnotation(anno.class); + if (var6 != null) { + var1 = var6.val(); + } + } + + System.out.println(var1); + } + + @anno( + val = "no" + ) + public void dov() { + System.out.println("FAIL"); + } +} diff --git a/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/annot/annot.dec b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/annot/annot.dec new file mode 100644 index 00000000..46d75595 --- /dev/null +++ b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/annot/annot.dec @@ -0,0 +1,27 @@ +package pack.tests.reflects.annot; + +import java.lang.reflect.Method; +import pack.tests.reflects.counter.Countee; +import pack.tests.reflects.retrace.Tracer; + +public class annot { + public void run() throws Exception { + annoe var1 = new annoe(); + + for (Method var5 : annoe.class.getDeclaredMethods()) { + var5.setAccessible(true); + anno var6 = var5.getAnnotation(anno.class); + if (var6 != null && var6.val().equals("yes")) { + var5.invoke(var1); + } + } + } + + public static Throwable I(Throwable var0) { + if (Tracer.I == null) { + Countee.I = var0; + } + + return var0; + } +} diff --git a/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/counter/Count.dec b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/counter/Count.dec new file mode 100644 index 00000000..9c35832f --- /dev/null +++ b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/counter/Count.dec @@ -0,0 +1,14 @@ +package pack.tests.reflects.counter; + +public class Count { + public void run() throws Throwable { + if (Countee.class.getFields().length == 1 + && Countee.class.getDeclaredFields().length == 4 + && Countee.class.getMethods().length > 4 + && Countee.class.getDeclaredMethods().length == 4) { + System.out.println("PASS"); + } else { + System.out.println("FAIL"); + } + } +} diff --git a/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/counter/Countee.dec b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/counter/Countee.dec new file mode 100644 index 00000000..a73b632a --- /dev/null +++ b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/counter/Countee.dec @@ -0,0 +1,21 @@ +package pack.tests.reflects.counter; + +public class Countee { + public int cpuli = 0; + protected int cprot = 0; + int cpackp = 1; + private int cpriv = 0; + public static Throwable I; + + public void mpuli() { + } + + public void mprot() { + } + + public void mpackp() { + } + + public void mpriv() { + } +} diff --git a/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/field/FObject.dec b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/field/FObject.dec new file mode 100644 index 00000000..a6e774d8 --- /dev/null +++ b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/field/FObject.dec @@ -0,0 +1,13 @@ +package pack.tests.reflects.field; + +public class FObject extends Throwable { + private int i; + + private FObject(int i) { + this.i = i; + } + + private void add() { + this.i += 3; + } +} diff --git a/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/field/FTest.dec b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/field/FTest.dec new file mode 100644 index 00000000..d2dfdc13 --- /dev/null +++ b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/field/FTest.dec @@ -0,0 +1,35 @@ +package pack.tests.reflects.field; + +import java.lang.reflect.Constructor; +import java.lang.reflect.Field; +import java.lang.reflect.Method; + +public class FTest { + public void run() throws Exception { + Constructor var1 = FObject.class.getDeclaredConstructor(int.class); + if (var1.isAccessible()) { + System.out.println("FAIL"); + } else { + var1.setAccessible(true); + FObject var2 = (FObject)var1.newInstance(1); + Method var3 = FObject.class.getDeclaredMethod("add", null); + if (var3.isAccessible()) { + System.out.println("FAIL"); + } else { + var3.setAccessible(true); + var3.invoke(var2); + Field var4 = FObject.class.getDeclaredField("i"); + if (var4.isAccessible()) { + System.out.println("FAIL"); + } else { + var4.setAccessible(true); + if (var4.getInt(var2) != 4) { + System.out.println("FAIL"); + } else { + System.out.println("PASS"); + } + } + } + } + } +} diff --git a/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/loader/LRun.dec b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/loader/LRun.dec new file mode 100644 index 00000000..c422249f --- /dev/null +++ b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/loader/LRun.dec @@ -0,0 +1,10 @@ +package pack.tests.reflects.loader; + +public class LRun { + public void run() throws Exception { + Loader var1 = new Loader(); + Class var2 = var1.findClass("pack.tests.reflects.loader.LTest"); + Object var3 = var2.newInstance(); + var2.getMethod("run").invoke(var3); + } +} diff --git a/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/loader/LTest.dec b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/loader/LTest.dec new file mode 100644 index 00000000..977e40be --- /dev/null +++ b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/loader/LTest.dec @@ -0,0 +1,23 @@ +package pack.tests.reflects.loader; + +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.InputStream; + +public class LTest { + public static byte[] readAllBytes(InputStream var0) throws IOException { + ByteArrayOutputStream var1 = new ByteArrayOutputStream(); + byte[] var2 = new byte[1024]; + + int var3; + while ((var3 = var0.read(var2)) != -1) { + var1.write(var2, 0, var3); + } + + return var1.toByteArray(); + } + + public void run() throws Exception { + System.out.println(new String(readAllBytes(LTest.class.getResourceAsStream("TEST")))); + } +} diff --git a/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/loader/Loader.dec b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/loader/Loader.dec new file mode 100644 index 00000000..93dfd004 --- /dev/null +++ b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/loader/Loader.dec @@ -0,0 +1,30 @@ +package pack.tests.reflects.loader; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.InputStream; + +public class Loader extends ClassLoader { + public static byte[] readAllBytes(InputStream var0) { + ByteArrayOutputStream var1 = new ByteArrayOutputStream(); + byte[] var2 = new byte[1024]; + + int var3; + while ((var3 = var0.read(var2)) != -1) { + var1.write(var2, 0, var3); + } + + return var1.toByteArray(); + } + + @Override + public InputStream getResourceAsStream(String var1) { + return (InputStream)(var1.contains("TEST") ? new ByteArrayInputStream("PASS".getBytes()) : super.getResourceAsStream(var1)); + } + + @Override + public Class findClass(String var1) throws ClassNotFoundException { + byte[] var2 = readAllBytes(Loader.class.getClassLoader().getResourceAsStream("pack/tests/reflects/loader/LTest.class")); + return this.defineClass(var1, var2, 0, var2.length); + } +} diff --git a/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/res/Accesor.dec b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/res/Accesor.dec new file mode 100644 index 00000000..5315e138 --- /dev/null +++ b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/res/Accesor.dec @@ -0,0 +1,9 @@ +package pack.tests.reflects.res; + +public class Accesor { + public void run() { + Accesor.class.getResourceAsStream("/pack/tests/reflects/res/file").read(); + byte var10001 = 97; + throw new RuntimeException(); + } +} diff --git a/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/retrace/Tracee.dec b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/retrace/Tracee.dec new file mode 100644 index 00000000..ca742ee1 --- /dev/null +++ b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/retrace/Tracee.dec @@ -0,0 +1,17 @@ +package pack.tests.reflects.retrace; + +public class Tracee { + public static int p = 0; + + private void doTrace(int var1) throws Exception { + p++; + StackTraceElement var2 = new Throwable().getStackTrace()[1]; + Tracee.class.getDeclaredMethod(var2.getMethodName(), int.class).invoke(this, var1 - 1); + } + + public void toTrace(int var1) throws Exception { + if (var1 != 0) { + this.doTrace(var1); + } + } +} diff --git a/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/retrace/Tracer.dec b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/retrace/Tracer.dec new file mode 100644 index 00000000..8f5b637d --- /dev/null +++ b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/reflects/retrace/Tracer.dec @@ -0,0 +1,14 @@ +package pack.tests.reflects.retrace; + +public class Tracer { + public static Throwable I; + + public void run() throws Exception { + new Tracee().toTrace(5); + if (Tracee.p == 5) { + System.out.println("PASS"); + } else { + System.out.println("FAIL"); + } + } +} diff --git a/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/security/SecExec.dec b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/security/SecExec.dec new file mode 100644 index 00000000..009cef2a --- /dev/null +++ b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/security/SecExec.dec @@ -0,0 +1,7 @@ +package pack.tests.security; + +public class SecExec { + private static void doShutdown() { + System.exit(-1); + } +} diff --git a/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/security/SecTest.dec b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/security/SecTest.dec new file mode 100644 index 00000000..b1b48d8d --- /dev/null +++ b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/security/SecTest.dec @@ -0,0 +1,35 @@ +package pack.tests.security; + +import java.lang.reflect.Method; + +public class SecTest { + public void run() { + System.setSecurityManager(new Sman()); + System.out.print("FAIL"); + + try { + Method var1 = SecExec.class.getDeclaredMethod("doShutdown"); + var1.setAccessible(true); + var1.invoke(null); + } catch (Throwable var6) { + Throwable var3 = var6; + + while (true) { + Throwable var2 = var3.getCause(); + if (var2 == null) { + String var4 = var3.getMessage(); + if (var4 == null) { + return; + } + + if (var4.contains("HOOK")) { + System.out.println("\b\b\b\bPASS"); + } + break; + } + + var3 = var2; + } + } + } +} diff --git a/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/security/Sman.dec b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/security/Sman.dec new file mode 100644 index 00000000..0d501b9c --- /dev/null +++ b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/security/Sman.dec @@ -0,0 +1,12 @@ +package pack.tests.security; + +import java.security.Permission; + +public class Sman extends SecurityManager { + @Override + public void checkPermission(Permission var1) { + if (var1.getName().contains("exitVM")) { + throw new SecurityException("HOOKED"); + } + } +} From 3b6564bd9c4b63b1d277979f6bb30d9055b11360 Mon Sep 17 00:00:00 2001 From: Dawid <50593784+Animowany@users.noreply.github.com> Date: Thu, 11 Sep 2025 19:09:41 +0200 Subject: [PATCH 09/13] Fix flow --- .../impl/branchlock/BranchlockFlowTransformer.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/deobfuscator-transformers/src/main/java/uwu/narumi/deobfuscator/core/other/impl/branchlock/BranchlockFlowTransformer.java b/deobfuscator-transformers/src/main/java/uwu/narumi/deobfuscator/core/other/impl/branchlock/BranchlockFlowTransformer.java index 6ca9f8ff..656dd5dd 100644 --- a/deobfuscator-transformers/src/main/java/uwu/narumi/deobfuscator/core/other/impl/branchlock/BranchlockFlowTransformer.java +++ b/deobfuscator-transformers/src/main/java/uwu/narumi/deobfuscator/core/other/impl/branchlock/BranchlockFlowTransformer.java @@ -64,7 +64,6 @@ public class BranchlockFlowTransformer extends Transformer { @Override protected void transform() throws Exception { scopedClasses().forEach(classWrapper -> classWrapper.methods().forEach(methodNode -> { - if (methodNode.name.equals("")) return; MethodContext methodContext = MethodContext.of(classWrapper, methodNode); List tryCatchBlocks = methodNode.tryCatchBlocks; if (tryCatchBlocks != null && !tryCatchBlocks.isEmpty()) { @@ -165,7 +164,6 @@ protected void transform() throws Exception { trashLabels.add(label); } next = next.getNext(); - } } catch (Exception ignored) {} @@ -173,6 +171,8 @@ protected void transform() throws Exception { methodNode.instructions::remove ); + boolean changed = true; + if (jumpInsnNode != null) { AbstractInsnNode next = jumpInsnNode.label; while (next != null) { @@ -180,7 +180,6 @@ protected void transform() throws Exception { trashLabels.add(label); } next = next.getNext(); - } while (jumpInsnNode.label.getNext() != null && !(jumpInsnNode.label.getNext() instanceof JumpInsnNode)) { AbstractInsnNode abstractInsnNode = jumpInsnNode.label.getNext(); @@ -190,11 +189,17 @@ protected void transform() throws Exception { } methodNode.instructions.remove(abstractInsnNode); methodNode.instructions.insertBefore(jumpInsnNode, abstractInsnNode); + markChange(); } methodNode.instructions.remove(jumpInsnNode); + markChange(); + } else { + changed = !toRemove.isEmpty(); } + if (!changed) return; + Set tryCatchBlockNodes = new HashSet<>(); for (TryCatchBlockNode tryCatchBlock : tryCatchBlocks) { From d4b4973bfd4f2c76a2c227b875473cb9b226a0dd Mon Sep 17 00:00:00 2001 From: Dawid <50593784+Animowany@users.noreply.github.com> Date: Fri, 12 Sep 2025 13:47:05 +0200 Subject: [PATCH 10/13] Fix flow tests --- .../pack/tests/reflects/loader/Loader.dec | 20 ++++++---- .../pack/tests/reflects/res/Accesor.dec | 24 ++++++++---- .../flow 9/pack/tests/basics/runable/Pool.dec | 38 +------------------ 3 files changed, 29 insertions(+), 53 deletions(-) diff --git a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/loader/Loader.dec b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/loader/Loader.dec index d2460118..d6363bc3 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/loader/Loader.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/loader/Loader.dec @@ -11,15 +11,19 @@ public class Loader extends ClassLoader { } public static byte[] readAllBytes(InputStream var0, int var1) { - ByteArrayOutputStream var2 = new ByteArrayOutputStream(); - byte[] var3 = new byte[1024]; + try { + ByteArrayOutputStream var2 = new ByteArrayOutputStream(); + byte[] var3 = new byte[1024]; - int var4; - while ((var4 = var0.read(var3)) != -1) { - var2.write(var3, 0, var4); - } + int var4; + while ((var4 = var0.read(var3)) != -1) { + var2.write(var3, 0, var4); + } - return var2.toByteArray(); + return var2.toByteArray(); + } catch (Exception var5) { + return null; + } } @Override @@ -139,7 +143,7 @@ public class Loader extends ClassLoader { // 084: ixor // 085: iload 5 // 087: ixor - // 088: anewarray 38 + // 088: anewarray 40 // 08b: astore 7 // 08d: bipush 0 // 08e: istore 8 diff --git a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/res/Accesor.dec b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/res/Accesor.dec index 0a95a59a..1139459c 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/res/Accesor.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/res/Accesor.dec @@ -7,14 +7,22 @@ public class Accesor { } public void run(int var1) { - if (Accesor.class.getResourceAsStream("/pack/tests/reflects/res/file").read() != 97) { - throw new RuntimeException(); - } else if (Accesor.class.getResourceAsStream("file2").read() != 114) { - throw new RuntimeException(); - } else if (Accesor.class.getClassLoader().getResourceAsStream("pack/tests/reflects/res/file3").read() != 99) { - throw new RuntimeException(); - } else { + try { + if (Accesor.class.getResourceAsStream("/pack/tests/reflects/res/file").read() != 97) { + throw new RuntimeException(); + } + + if (Accesor.class.getResourceAsStream("file2").read() != 114) { + throw new RuntimeException(); + } + + if (Accesor.class.getClassLoader().getResourceAsStream("pack/tests/reflects/res/file3").read() != 99) { + throw new RuntimeException(); + } + System.out.println("PASS"); + } catch (Exception var2) { + System.out.println("FAIL"); } } @@ -124,7 +132,7 @@ public class Accesor { // 088: ixor // 089: iload 5 // 08b: ixor - // 08c: anewarray 59 + // 08c: anewarray 63 // 08f: astore 7 // 091: bipush 0 // 092: istore 8 diff --git a/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/runable/Pool.dec b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/runable/Pool.dec index f8665a74..23401574 100644 --- a/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/runable/Pool.dec +++ b/testData/results/custom-jars/branchlock/flow/flow 9/pack/tests/basics/runable/Pool.dec @@ -3,43 +3,7 @@ package pack.tests.basics.runable; import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; -import pack.tests.reflects.annot.annot; public class Pool { - public static ThreadPoolExecutor tpe; - - // $VF: Handled exception range with multiple entry points by splitting it - // $VF: Inserted dummy exception handlers to handle obfuscated exceptions - static { - NoSuchMethodException var10000; - label36: { - Object var0; - try { - var0 = null; - } catch (NoSuchMethodException var2) { - var10000 = var2; - boolean var10001 = false; - break label36; - } - - while (var0 != null) { - } - - ThreadPoolExecutor var3 = new ThreadPoolExecutor; - - try { - var3./* $VF: Unable to resugar constructor */(0, 1, 1L, TimeUnit.SECONDS, new LinkedBlockingQueue<>(1)); - tpe = var3; - return; - } catch (NoSuchMethodException var1) { - var10000 = var1; - boolean var4 = false; - } - } - - while (var10000 == null) { - } - - throw annot.I(var10000); - } + public static ThreadPoolExecutor tpe = new ThreadPoolExecutor(0, 1, 1L, TimeUnit.SECONDS, new LinkedBlockingQueue<>(1)); } From 4e3c7bd16466bab1e190b9f42a53d23bdbe21921 Mon Sep 17 00:00:00 2001 From: Dawid <50593784+Animowany@users.noreply.github.com> Date: Fri, 12 Sep 2025 14:21:29 +0200 Subject: [PATCH 11/13] Remove clinit string decryptor --- ...ranchlockCompabilityStringTransformer.java | 247 ++++++++++-------- 1 file changed, 133 insertions(+), 114 deletions(-) diff --git a/deobfuscator-transformers/src/main/java/uwu/narumi/deobfuscator/core/other/impl/branchlock/BranchlockCompabilityStringTransformer.java b/deobfuscator-transformers/src/main/java/uwu/narumi/deobfuscator/core/other/impl/branchlock/BranchlockCompabilityStringTransformer.java index d43836f4..25a3bf7b 100644 --- a/deobfuscator-transformers/src/main/java/uwu/narumi/deobfuscator/core/other/impl/branchlock/BranchlockCompabilityStringTransformer.java +++ b/deobfuscator-transformers/src/main/java/uwu/narumi/deobfuscator/core/other/impl/branchlock/BranchlockCompabilityStringTransformer.java @@ -6,14 +6,13 @@ import uwu.narumi.deobfuscator.api.asm.matcher.Match; import uwu.narumi.deobfuscator.api.asm.matcher.MatchContext; import uwu.narumi.deobfuscator.api.asm.matcher.group.SequenceMatch; -import uwu.narumi.deobfuscator.api.asm.matcher.impl.FieldMatch; -import uwu.narumi.deobfuscator.api.asm.matcher.impl.NumberMatch; -import uwu.narumi.deobfuscator.api.asm.matcher.impl.OpcodeMatch; +import uwu.narumi.deobfuscator.api.asm.matcher.impl.*; import uwu.narumi.deobfuscator.api.transformer.Transformer; -import java.util.Arrays; import java.util.HashMap; +import java.util.HashSet; import java.util.Map; +import java.util.Set; import java.util.concurrent.atomic.AtomicInteger; public class BranchlockCompabilityStringTransformer extends Transformer { @@ -38,103 +37,141 @@ protected void transform() throws Exception { MethodContext methodContext = MethodContext.of(classWrapper, clinit); String className = classWrapper.name().replace("/", "."); String methodName = clinit.name; - Arrays.stream(clinit.instructions.toArray()) - .filter(ain -> ain instanceof LdcInsnNode) - .map(LdcInsnNode.class::cast) - .filter(ldc -> ldc.cst instanceof String) - .findFirst().ifPresent(ldc -> { - Match stringArr = OpcodeMatch.of(PUTSTATIC).capture("string-arr"); - stringArray = stringArr.findFirstMatch(methodContext).insn().asFieldInsn(); - - String encryptedString = (String) ldc.cst; - char[] encryptedStringArray = encryptedString.toCharArray(); - Match match = SequenceMatch.of(OpcodeMatch.of(DUP), NumberMatch.numInteger().capture("array-to"), OpcodeMatch.of(SWAP), NumberMatch.numInteger().capture("array-from"), OpcodeMatch.of(CALOAD), OpcodeMatch.of(CASTORE), OpcodeMatch.of(CASTORE)); - - /* First "char swapper" salting */ - for (MatchContext allMatch : match.findAllMatches(methodContext)) { - int arrayFrom = allMatch.captures().get("array-from").insn().asInteger(); - int arrayTo = allMatch.captures().get("array-to").insn().asInteger(); - try { - char store = encryptedStringArray[arrayFrom]; - encryptedStringArray[arrayFrom] = encryptedStringArray[arrayTo]; - encryptedStringArray[arrayTo] = store; - } catch (Exception e) { - break; - } + Match stringEncryptionMatch = SequenceMatch.of( + StringMatch.of().capture("encrypted-string"), + MethodMatch.invokeVirtual().name("toCharArray").owner("java/lang/String"), + OpcodeMatch.of(ASTORE) + ); + MatchContext stringEncryption = stringEncryptionMatch.findFirstMatch(methodContext); + if (stringEncryption != null) { + Match stringArr = OpcodeMatch.of(PUTSTATIC).capture("string-arr"); + stringArray = stringArr.findFirstMatch(methodContext).insn().asFieldInsn(); + + LdcInsnNode encryptedStringInsn = (LdcInsnNode) stringEncryption.captures().get("encrypted-string").insn(); + String encryptedString = encryptedStringInsn.asString(); + + char[] encryptedStringArray = encryptedString.toCharArray(); + Match match = SequenceMatch.of(OpcodeMatch.of(DUP), NumberMatch.numInteger().capture("array-to"), OpcodeMatch.of(SWAP), NumberMatch.numInteger().capture("array-from"), OpcodeMatch.of(CALOAD), OpcodeMatch.of(CASTORE), OpcodeMatch.of(CASTORE)); + + /* First "char swapper" salting */ + for (MatchContext allMatch : match.findAllMatches(methodContext)) { + int arrayFrom = allMatch.captures().get("array-from").insn().asInteger(); + int arrayTo = allMatch.captures().get("array-to").insn().asInteger(); + try { + char store = encryptedStringArray[arrayFrom]; + encryptedStringArray[arrayFrom] = encryptedStringArray[arrayTo]; + encryptedStringArray[arrayTo] = store; + } catch (Exception e) { + break; } + } + + int encCharIndex = 0; // Under LDC + + int decStrIndex = 0; // Under new StringArr + + /* Finding new String Array creator for decrypted Strings */ + Match newArray = SequenceMatch.of(NumberMatch.numInteger().capture("salt"), OpcodeMatch.of(IXOR), OpcodeMatch.of(ILOAD), OpcodeMatch.of(IXOR), OpcodeMatch.of(ANEWARRAY)); + int salt = newArray.findFirstMatch(methodContext).captures().get("salt").insn().asInteger(); + int methodSalt = (methodName.hashCode() & 0xFFFF); + + char[] classNameArray = className.toCharArray(); + + decryptedStrings = new String[encryptedStringArray[encCharIndex++] ^ salt ^ methodSalt]; + + Match saltOfStrLen = SequenceMatch.of(OpcodeMatch.of(IINC), OpcodeMatch.of(CALOAD), NumberMatch.numInteger().capture("salt"), OpcodeMatch.of(IXOR), OpcodeMatch.of(ILOAD), OpcodeMatch.of(IXOR), OpcodeMatch.of(ISTORE)); + int salt2 = saltOfStrLen.findFirstMatch(methodContext).captures().get("salt").insn().asInteger(); - int encCharIndex = 0; // Under LDC + Match switchMatch = SequenceMatch.of(NumberMatch.numInteger().capture("switch-salt"), OpcodeMatch.of(IXOR), OpcodeMatch.of(LOOKUPSWITCH).capture("switch-table")); + MatchContext switchContext = switchMatch.findFirstMatch(methodContext); + int switchSalt = switchContext.captures().get("switch-salt").insn().asInteger(); + LookupSwitchInsnNode switchInsnNode = (LookupSwitchInsnNode) switchContext.captures().get("switch-table").insn(); - int decStrIndex = 0; // Under new StringArr + Match switch2Match = SequenceMatch.of(OpcodeMatch.of(ILOAD), OpcodeMatch.of(TABLESWITCH).capture("switch-table")); + MatchContext switch2Context = switch2Match.findFirstMatch(methodContext); + TableSwitchInsnNode tableSwitchInsnNode = (TableSwitchInsnNode) switch2Context.captures().get("switch-table").insn(); - /* Finding new String Array creator for decrypted Strings */ - Match newArray = SequenceMatch.of(NumberMatch.numInteger().capture("salt"), OpcodeMatch.of(IXOR), OpcodeMatch.of(ILOAD), OpcodeMatch.of(IXOR), OpcodeMatch.of(ANEWARRAY)); - int salt = newArray.findFirstMatch(methodContext).captures().get("salt").insn().asInteger(); - int methodSalt = (methodName.hashCode() & 0xFFFF); - char[] classNameArray = className.toCharArray(); + /* Creating same simulation */ + while (encCharIndex < encryptedStringArray.length) { + int strLength = encryptedStringArray[encCharIndex++] ^ salt2 ^ methodSalt; + char[] toDecrypt = new char[strLength]; + int decCharIndex = 0; // Under var9_8 = new char[var2_2]; - decryptedStrings = new String[encryptedStringArray[encCharIndex++] ^ salt ^ methodSalt]; + while (strLength > 0) { + char nowDecrypted = encryptedStringArray[encCharIndex]; + int switch2Value = 0; - Match saltOfStrLen = SequenceMatch.of(OpcodeMatch.of(IINC), OpcodeMatch.of(CALOAD), NumberMatch.numInteger().capture("salt"), OpcodeMatch.of(IXOR), OpcodeMatch.of(ILOAD), OpcodeMatch.of(IXOR), OpcodeMatch.of(ISTORE)); - int salt2 = saltOfStrLen.findFirstMatch(methodContext).captures().get("salt").insn().asInteger(); + Match swapKey = SequenceMatch.of(NumberMatch.numInteger().capture("swap-key"), OpcodeMatch.of(ISTORE), OpcodeMatch.of(GOTO)); + Match xorKey = SequenceMatch.of(OpcodeMatch.of(ILOAD), NumberMatch.numInteger().capture("xor-key"), OpcodeMatch.of(IXOR)); - Match switchMatch = SequenceMatch.of(NumberMatch.numInteger().capture("switch-salt"), OpcodeMatch.of(IXOR), OpcodeMatch.of(LOOKUPSWITCH).capture("switch-table")); - MatchContext switchContext = switchMatch.findFirstMatch(methodContext); - int switchSalt = switchContext.captures().get("switch-salt").insn().asInteger(); - LookupSwitchInsnNode switchInsnNode = (LookupSwitchInsnNode) switchContext.captures().get("switch-table").insn(); + int switchValue = classNameArray[encCharIndex % classNameArray.length] ^ switchSalt; + LabelNode switchCase = getLabelByKey(switchInsnNode, switchValue); + AtomicInteger s2v = new AtomicInteger(-1337); + swapKey.findAllMatches(methodContext).forEach(matchContext -> { + MatchContext capturedSwapKey = matchContext.captures().get("swap-key"); + if (isInsnInLabelRange(clinit, switchCase, capturedSwapKey.insn())) { + s2v.set(capturedSwapKey.insn().asInteger()); + } + }); + + if (s2v.get() != -1337) { + switch2Value = s2v.get(); + } - Match switch2Match = SequenceMatch.of(OpcodeMatch.of(ILOAD), OpcodeMatch.of(TABLESWITCH).capture("switch-table")); - MatchContext switch2Context = switch2Match.findFirstMatch(methodContext); - TableSwitchInsnNode tableSwitchInsnNode = (TableSwitchInsnNode) switch2Context.captures().get("switch-table").insn(); + AtomicInteger xor = new AtomicInteger(-1337); + xorKey.findAllMatches(methodContext).forEach(matchContext -> { + MatchContext capturedXorKey = matchContext.captures().get("xor-key"); + if (isInsnInLabelRange(clinit, switchCase, capturedXorKey.insn())) { + xor.set(capturedXorKey.insn().asInteger()); + } + }); + if (xor.get() != -1337) { + nowDecrypted ^= xor.get(); + } - /* Creating same simulation */ - while (encCharIndex < encryptedStringArray.length) { - int strLength = encryptedStringArray[encCharIndex++] ^ salt2 ^ methodSalt; - char[] toDecrypt = new char[strLength]; - int decCharIndex = 0; // Under var9_8 = new char[var2_2]; + if (switch2Value == 0 && xor.get() == -1337) { + toDecrypt[decCharIndex] = nowDecrypted; + ++decCharIndex; + ++encCharIndex; + --strLength; + switch2Value = 0; + continue; + } - while (strLength > 0) { - char nowDecrypted = encryptedStringArray[encCharIndex]; - int switch2Value = 0; + if (switch2Value == 1) { + toDecrypt[decCharIndex] = nowDecrypted; + ++decCharIndex; + ++encCharIndex; + --strLength; + switch2Value = 0; + continue; + } - Match swapKey = SequenceMatch.of(NumberMatch.numInteger().capture("swap-key"), OpcodeMatch.of(ISTORE), OpcodeMatch.of(GOTO)); - Match xorKey = SequenceMatch.of(OpcodeMatch.of(ILOAD), NumberMatch.numInteger().capture("xor-key"), OpcodeMatch.of(IXOR)); + while (true) { + LabelNode tableCase = getLabelByKey(tableSwitchInsnNode, switch2Value); - int switchValue = classNameArray[encCharIndex % classNameArray.length] ^ switchSalt; - LabelNode switchCase = getLabelByKey(switchInsnNode, switchValue); - AtomicInteger s2v = new AtomicInteger(-1337); + AtomicInteger s2v2 = new AtomicInteger(-1337); swapKey.findAllMatches(methodContext).forEach(matchContext -> { MatchContext capturedSwapKey = matchContext.captures().get("swap-key"); - if (isInsnInLabelRange(clinit, switchCase, capturedSwapKey.insn())) { - s2v.set(capturedSwapKey.insn().asInteger()); + if (isInsnInLabelRange(clinit, tableCase, capturedSwapKey.insn())) { + s2v2.set(capturedSwapKey.insn().asInteger()); } }); - if (s2v.get() != -1337) { - switch2Value = s2v.get(); - } + switch2Value = s2v2.get(); - AtomicInteger xor = new AtomicInteger(-1337); + AtomicInteger xor2 = new AtomicInteger(-1337); xorKey.findAllMatches(methodContext).forEach(matchContext -> { MatchContext capturedXorKey = matchContext.captures().get("xor-key"); - if (isInsnInLabelRange(clinit, switchCase, capturedXorKey.insn())) { - xor.set(capturedXorKey.insn().asInteger()); + if (isInsnInLabelRange(clinit, tableCase, capturedXorKey.insn())) { + xor2.set(capturedXorKey.insn().asInteger()); } }); - if (xor.get() != -1337) { - nowDecrypted ^= xor.get(); - } - - if (switch2Value == 0 && xor.get() == -1337) { - toDecrypt[decCharIndex] = nowDecrypted; - ++decCharIndex; - ++encCharIndex; - --strLength; - switch2Value = 0; - continue; + if (xor2.get() != -1337) { + nowDecrypted ^= xor2.get(); } if (switch2Value == 1) { @@ -143,47 +180,29 @@ protected void transform() throws Exception { ++encCharIndex; --strLength; switch2Value = 0; - continue; - } - - while (true) { - LabelNode tableCase = getLabelByKey(tableSwitchInsnNode, switch2Value); - - AtomicInteger s2v2 = new AtomicInteger(-1337); - swapKey.findAllMatches(methodContext).forEach(matchContext -> { - MatchContext capturedSwapKey = matchContext.captures().get("swap-key"); - if (isInsnInLabelRange(clinit, tableCase, capturedSwapKey.insn())) { - s2v2.set(capturedSwapKey.insn().asInteger()); - } - }); - - switch2Value = s2v2.get(); - - AtomicInteger xor2 = new AtomicInteger(-1337); - xorKey.findAllMatches(methodContext).forEach(matchContext -> { - MatchContext capturedXorKey = matchContext.captures().get("xor-key"); - if (isInsnInLabelRange(clinit, tableCase, capturedXorKey.insn())) { - xor2.set(capturedXorKey.insn().asInteger()); - } - }); - - if (xor2.get() != -1337) { - nowDecrypted ^= xor2.get(); - } - - if (switch2Value == 1) { - toDecrypt[decCharIndex] = nowDecrypted; - ++decCharIndex; - ++encCharIndex; - --strLength; - switch2Value = 0; - break; - } + break; } } - decryptedStrings[decStrIndex++] = new String(toDecrypt).intern(); } - }); + decryptedStrings[decStrIndex++] = new String(toDecrypt).intern(); + } + Set labelsInStringDecryption = new HashSet<>(); + Set toRemove = new HashSet<>(); + AbstractInsnNode firstNode = encryptedStringInsn; + while (firstNode != null) { + if (firstNode instanceof LabelNode label) { + labelsInStringDecryption.add(label); + } else { + toRemove.add(firstNode); + } + if (firstNode instanceof TableSwitchInsnNode) { + break; + } + firstNode = firstNode.getNext(); + } + toRemove.forEach(clinit.instructions::remove); + clinit.tryCatchBlocks.removeIf(tryCatchBlockNode -> labelsInStringDecryption.contains(tryCatchBlockNode.start) || labelsInStringDecryption.contains(tryCatchBlockNode.handler) || labelsInStringDecryption.contains(tryCatchBlockNode.end)); + } }); } From 72bc5e5114755a53fd9ee0d97c7cda9f529bf0ac Mon Sep 17 00:00:00 2001 From: Dawid <50593784+Animowany@users.noreply.github.com> Date: Fri, 12 Sep 2025 14:29:39 +0200 Subject: [PATCH 12/13] Remove clinit string decryptor tests --- .../pack/Main.dec | 207 --------------- .../pack/tests/basics/accu/Digi.dec | 226 ---------------- .../pack/tests/basics/cross/Top.dec | 212 --------------- .../pack/tests/basics/ctrl/Ctrl.dec | 212 --------------- .../pack/tests/basics/inner/Test.dec | 226 ---------------- .../pack/tests/basics/overwirte/Sub.dec | 221 ---------------- .../pack/tests/basics/overwirte/Super.dec | 193 -------------- .../pack/tests/basics/runable/Task.dec | 218 ---------------- .../pack/tests/basics/sub/Solver.dec | 221 ---------------- .../pack/tests/bench/Calc.dec | 230 +---------------- .../pack/tests/reflects/annot/annoe.dec | 216 +--------------- .../pack/tests/reflects/annot/annot.dec | 198 -------------- .../pack/tests/reflects/counter/Count.dec | 232 ----------------- .../pack/tests/reflects/field/FTest.dec | 218 ---------------- .../pack/tests/reflects/loader/LRun.dec | 238 ----------------- .../pack/tests/reflects/loader/LTest.dec | 190 -------------- .../pack/tests/reflects/loader/Loader.dec | 229 ----------------- .../pack/tests/reflects/res/Accesor.dec | 226 ---------------- .../pack/tests/reflects/retrace/Tracer.dec | 223 ---------------- .../pack/tests/security/SecTest.dec | 221 ---------------- .../pack/tests/security/Sman.dec | 218 ---------------- .../pack/Main.dec | 193 -------------- .../pack/tests/basics/accu/Digi.dec | 218 +--------------- .../pack/tests/basics/cross/Top.dec | 226 ---------------- .../pack/tests/basics/ctrl/Ctrl.dec | 206 +-------------- .../pack/tests/basics/inner/Test.dec | 230 +---------------- .../pack/tests/basics/overwirte/Sub.dec | 235 ----------------- .../pack/tests/basics/overwirte/Super.dec | 207 --------------- .../pack/tests/basics/runable/Task.dec | 222 +--------------- .../pack/tests/basics/sub/Solver.dec | 239 +---------------- .../pack/tests/bench/Calc.dec | 242 +----------------- .../pack/tests/reflects/annot/annoe.dec | 216 +--------------- .../pack/tests/reflects/annot/annot.dec | 200 +-------------- .../pack/tests/reflects/counter/Count.dec | 222 +--------------- .../pack/tests/reflects/field/FTest.dec | 232 +---------------- .../pack/tests/reflects/loader/LRun.dec | 228 +---------------- .../pack/tests/reflects/loader/LTest.dec | 190 -------------- .../pack/tests/reflects/loader/Loader.dec | 229 ----------------- .../pack/tests/reflects/res/Accesor.dec | 236 +---------------- .../pack/tests/reflects/retrace/Tracer.dec | 213 +-------------- .../pack/tests/security/SecTest.dec | 237 +---------------- .../pack/tests/security/Sman.dec | 218 ---------------- .../branchlock-string/pack/Main.dec | 204 --------------- .../pack/tests/basics/accu/Digi.dec | 233 ----------------- .../pack/tests/basics/cross/Top.dec | 229 ----------------- .../pack/tests/basics/ctrl/Ctrl.dec | 205 --------------- .../pack/tests/basics/inner/Test.dec | 215 ---------------- .../pack/tests/basics/overwirte/Sub.dec | 228 ----------------- .../pack/tests/basics/overwirte/Super.dec | 214 ---------------- .../pack/tests/basics/runable/Task.dec | 225 ---------------- .../pack/tests/basics/sub/Solver.dec | 228 ----------------- .../pack/tests/bench/Calc.dec | 223 +--------------- .../pack/tests/reflects/annot/annoe.dec | 223 +--------------- .../pack/tests/reflects/annot/annot.dec | 205 --------------- .../pack/tests/reflects/counter/Count.dec | 225 ---------------- .../pack/tests/reflects/field/FTest.dec | 225 ---------------- .../pack/tests/reflects/loader/LRun.dec | 231 ----------------- .../pack/tests/reflects/loader/LTest.dec | 211 --------------- .../pack/tests/reflects/loader/Loader.dec | 236 ----------------- .../pack/tests/reflects/res/Accesor.dec | 233 ----------------- .../pack/tests/reflects/retrace/Tracer.dec | 216 ---------------- .../pack/tests/security/SecTest.dec | 222 ---------------- .../pack/tests/security/Sman.dec | 211 --------------- 63 files changed, 48 insertions(+), 13808 deletions(-) diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/Main.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/Main.dec index ee51de77..e94423e4 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/Main.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/Main.dec @@ -160,211 +160,4 @@ public class Main { Calc.runAll(); System.out.println("-------------Tests r Finished-------------"); } - - static { - // $VF: Couldn't be decompiled - // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) - // java.lang.RuntimeException: parsing failure! - // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) - // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) - // - // Bytecode: - // 000: ldc "Aຒ\ufff9\uffc8\u001c\u001bヘ]\n\u001cラヘ\ufffe\n\fヘຽpA\uffde\uffd9ヘ]A゚U\u0004gᅤᅣᅢ\n\u001c\uffc8O逾迣£¢↓ gᆬA,\u0004ヘヘヘe໗→\u0000V\u0004\uffc0ᅡ\uffde\u001bO\uffd8\u001cAV\uffdeチヘ\u001f\u000e\uffde\u001c\u0004E\uffc1\uffc1\u0006\u0000\tヘ\u001bLAヘᅬᅩ\u001c\u0006ᅫ\u001c\u0004I\uffc8ᅩᅢ\u001cO\uffd9\u0007A\u0004ᅡᅬᅨ\u001a\u001cᅫ\u000ePK\uffdfヘᅣ\u001cOᅧ\u0000K@ヘ\uffc8ᅢ\u0000\u001aᅧ\u0007\nຶタタタBBタB\t\tタタタB;\uffc8\u001cPWヘ\uffdfヘ)\u0006ᅢ\u0006WL\uffc8\uffc9タBBタB\t\tタタタBBタຮkJ\uffc1ᅯヘ\f\u0000\uffc0\u001fEPᅣᅬᅣ\u0003\u0006\uffd9\u0016\u0004Eᅢ\uffc9ヘ\n\tᅨ\u0006GM\uffc8ᅢᅫ\u0016Oᅩ\u001dA\u0004\uffd9\uffc8\uffde\u001b\n\uffc9OLA\uffdf\uffc8フຒ.\uffd8\u001bLK\uffdfラヘ\u0007\u001aᅲ\u001fWFຉ\ufff9\uffc8\u001c\u001bヘ]\n\u0013ラヘ↓\u0001\u0001ᅡ\u001bEPᅣᅡᅢOຌ\ufff9\nWPヘワテ\\Uヘ;LVᅡᅳヘຎ;\uffc8\u001cP\u0004゚テロUO\uffff\npVᅩᅫ\uffc8Oຏ\ufff9\nWPペテ\\Uヘ=gWᅡ\uffd8\uffdf\f\nヘພmoືタタBBタB\t\tタタタBB\ufff9\nWPヘポUO\uffff\nBH\uffc8ᅫ\uffd9\u001cBタB\t\tタタタBBタB\tຑ\ufffb\uffc8\uffdf\u001c\u0006ᅡ\u0001\u001e\u0004ワテン\u001dີタB\t\tタタタBBタB\t\t\ufff9\uffc8\uffde\u001bOホ^\u001e\u0004\uffefᅩ\uffdeヘ\f\uffdeB\t\tタタタBBタB\t\tタນ│==¬=ປ\u0010レᅤ\uffc8\bYワຌpA\uffde\uffd9ヘ]AルU\u0004bᅣ\uffc8\uffc1\u000bOຊ;AW\uffd9ヘワA^ラOmJᅤ\uffc8\uffdf\u0006\u001bᅩ\u0001GAヘຎ\ufff9\n\u001c\uffd9O\u0016\nワラヘ,\u0000\uffd8\u0001P\u0e7e\uffdfヘຌ;\n\uffde\u001b\u0004\u0015テ゚ラO,\uffdf\u0000WWヘວ\ufff9\u0007\nヘ;AW\uffd9ヘホ]Oᅣ\u001c\u0004Bᅡ\uffdfヘ<\u001f\uffdf\u0006JC\uffefᅡᅡ\u001bOᅩ\u0001@\u0004↓ᅢ\uffc9\u001d\u0000ᅣ\u000b\u0004Hᅣᅥ\uffc8O\nᅢ\u0019MVᅡᅢ\uffc0\n\u0001\uffd9A໕gᅤᅡᅡ\u001c\nヘ\u0018MW\uffc8\uffc1ᅯO\u000e\uffc0\u0000JCヘ\uffde\uffd9\u001d\nᅢ\bPLチヘᅫ\u0000\u0002\uffdd\u000ePMᅬᅣ\uffc1\u0006\u001bᅯC\u0004Aᅨᅨᅣ\f\u0006\uffc8\u0001G]チヘ\uffde\u0006\u0015\uffc8C\u0004Eᅢ\uffc9ヘ\u001f\u001dᅣ\fA\nຍ\ufff9\uffc8\u001c\u001bヘ]\n\u0011ラヘ£\u0000\u000e\uffc9\nV\u0004ຏ\ufff9\uffc8\u001c\u001bヘ^\n\u0010ラヘ↓\f\f\uffd8\u001dEGᅯヘຓ;\n\uffde\u001b\u0004\u0015テロラO?ᅡ\u0000H\u0004ຏ\ufff9\uffc8\u001c\u001bヘ^\n\u0011ラヘ\ufffe\u001a\r○\u0003EW\uffdeヘ\u0e8b \rᅨ\u001aWGᅩ\uffd9ᅡ\u001dO\ufff9\nWPヘ�\uffdf\u0000\b\uffdf\u000eIຉ\ufff9\uffc8\uffde\u001bOワA\u0013\u001eヘ¦ᅢ\u0001\n\uffdf,HE\uffde\uffdeヘັBタB\t\tタタタBBタB\tp\uffc8\uffde\uffd9OL゙U\u0004aᅨᅨᅣ\f\u0006\uffc8\u0001G]タタタBBタB\t\tタタタBບ\ufff6'mj\ufff9\ufff0" - // 002: invokevirtual java/lang/String.toCharArray ()[C - // 005: astore 0 - // 006: bipush 0 - // 007: istore 1 - // 008: aload 0 - // 009: dup - // 00a: bipush 75 - // 00c: swap - // 00d: sipush 400 - // 010: caload - // 011: aload 0 - // 012: dup - // 013: sipush 400 - // 016: swap - // 017: bipush 75 - // 019: caload - // 01a: castore - // 01b: castore - // 01c: aload 0 - // 01d: dup - // 01e: bipush 43 - // 020: swap - // 021: sipush 305 - // 024: caload - // 025: aload 0 - // 026: dup - // 027: sipush 305 - // 02a: swap - // 02b: bipush 43 - // 02d: caload - // 02e: castore - // 02f: castore - // 030: aload 0 - // 031: dup - // 032: sipush 486 - // 035: swap - // 036: bipush 0 - // 037: caload - // 038: aload 0 - // 039: dup - // 03a: bipush 0 - // 03b: swap - // 03c: sipush 486 - // 03f: caload - // 040: castore - // 041: castore - // 042: aload 0 - // 043: dup - // 044: sipush 184 - // 047: swap - // 048: sipush 1044 - // 04b: caload - // 04c: aload 0 - // 04d: dup - // 04e: sipush 1044 - // 051: swap - // 052: sipush 184 - // 055: caload - // 056: castore - // 057: castore - // 058: aload 0 - // 059: dup - // 05a: sipush 484 - // 05d: swap - // 05e: sipush 628 - // 061: caload - // 062: aload 0 - // 063: dup - // 064: sipush 628 - // 067: swap - // 068: sipush 484 - // 06b: caload - // 06c: castore - // 06d: castore - // 06e: goto 14d - // 071: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; - // 074: bipush 0 - // 075: aaload - // 076: astore 4 - // 078: aload 4 - // 07a: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; - // 07d: invokevirtual java/lang/String.hashCode ()I - // 080: ldc 65535 - // 082: iand - // 083: istore 5 - // 085: aload 4 - // 087: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; - // 08a: invokevirtual java/lang/String.toCharArray ()[C - // 08d: astore 6 - // 08f: aload 0 - // 090: iload 1 - // 091: iinc 1 1 - // 094: caload - // 095: sipush 201 - // 098: ixor - // 099: iload 5 - // 09b: ixor - // 09c: anewarray 167 - // 09f: astore 7 - // 0a1: bipush 0 - // 0a2: istore 8 - // 0a4: aload 0 - // 0a5: iload 1 - // 0a6: iinc 1 1 - // 0a9: caload - // 0aa: bipush 53 - // 0ac: ixor - // 0ad: iload 5 - // 0af: ixor - // 0b0: istore 2 - // 0b1: iload 2 - // 0b2: newarray 5 - // 0b4: astore 9 - // 0b6: bipush 0 - // 0b7: istore 10 - // 0b9: iload 2 - // 0ba: ifle 12e - // 0bd: aload 0 - // 0be: iload 1 - // 0bf: caload - // 0c0: istore 11 - // 0c2: aload 6 - // 0c4: iload 1 - // 0c5: aload 6 - // 0c7: arraylength - // 0c8: irem - // 0c9: caload - // 0ca: sipush 139 - // 0cd: ixor - // 0ce: lookupswitch 74 8 165 156 198 175 224 130 226 143 229 162 232 181 234 187 251 193 - // 118: aload 9 - // 11a: iload 10 - // 11c: iload 11 - // 11e: castore - // 11f: iinc 10 1 - // 122: iinc 1 1 - // 125: iinc 2 -1 - // 128: bipush 0 - // 129: istore 12 - // 12b: goto 199 - // 12e: aload 7 - // 130: iload 8 - // 132: iinc 8 1 - // 135: new java/lang/String - // 138: dup - // 139: aload 9 - // 13b: invokespecial java/lang/String. ([C)V - // 13e: invokevirtual java/lang/String.intern ()Ljava/lang/String; - // 141: aastore - // 142: iload 1 - // 143: aload 0 - // 144: arraylength - // 145: if_icmplt 0a4 - // 148: aload 7 - // 14a: putstatic pack/Main.d [Ljava/lang/String; - // 14d: goto 1c4 - // 150: iload 11 - // 152: bipush -83 - // 154: ixor - // 155: istore 11 - // 157: bipush 1 - // 158: istore 12 - // 15a: goto 199 - // 15d: iload 11 - // 15f: bipush 111 - // 161: ixor - // 162: istore 11 - // 164: bipush 1 - // 165: istore 12 - // 167: goto 199 - // 16a: bipush 2 - // 16b: istore 12 - // 16d: goto 199 - // 170: iload 11 - // 172: bipush 36 - // 174: ixor - // 175: istore 11 - // 177: bipush 1 - // 178: istore 12 - // 17a: goto 199 - // 17d: bipush 3 - // 17e: istore 12 - // 180: goto 199 - // 183: bipush 4 - // 184: istore 12 - // 186: goto 199 - // 189: bipush 5 - // 18a: istore 12 - // 18c: goto 199 - // 18f: bipush 6 - // 191: istore 12 - // 193: goto 199 - // 196: goto 071 - // 199: iload 12 - // 19b: tableswitch -24 0 6 -226 -131 -62 -49 -75 -24 -43 - // 1c4: return - } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/accu/Digi.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/accu/Digi.dec index d0a8f8d9..55305104 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/accu/Digi.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/accu/Digi.dec @@ -17,230 +17,4 @@ public class Digi { System.out.println("FAIL"); } } - - static { - // $VF: Couldn't be decompiled - // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) - // java.lang.RuntimeException: parsing failure! - // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) - // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) - // - // Bytecode: - // 000: ldc "ト\u0e5fト\uffc1フ¬ネリᅮ\u0e5e\u0e7aᄆ\uffc0ムノ\uffde๚ᅵ\uffddチ\u0e5dᄄᆵᄃᄇ\u0e5dᆴ\uffbf¬ヒ" - // 002: invokevirtual java/lang/String.toCharArray ()[C - // 005: astore 0 - // 006: bipush 0 - // 007: istore 1 - // 008: aload 0 - // 009: dup - // 00a: bipush 29 - // 00c: swap - // 00d: bipush 5 - // 00e: caload - // 00f: aload 0 - // 010: dup - // 011: bipush 5 - // 012: swap - // 013: bipush 29 - // 015: caload - // 016: castore - // 017: castore - // 018: aload 0 - // 019: dup - // 01a: bipush 9 - // 01c: swap - // 01d: bipush 8 - // 01f: caload - // 020: aload 0 - // 021: dup - // 022: bipush 8 - // 024: swap - // 025: bipush 9 - // 027: caload - // 028: castore - // 029: castore - // 02a: aload 0 - // 02b: dup - // 02c: bipush 10 - // 02e: swap - // 02f: bipush 0 - // 030: caload - // 031: aload 0 - // 032: dup - // 033: bipush 0 - // 034: swap - // 035: bipush 10 - // 037: caload - // 038: castore - // 039: castore - // 03a: aload 0 - // 03b: dup - // 03c: bipush 8 - // 03e: swap - // 03f: bipush 47 - // 041: caload - // 042: aload 0 - // 043: dup - // 044: bipush 47 - // 046: swap - // 047: bipush 8 - // 049: caload - // 04a: castore - // 04b: castore - // 04c: aload 0 - // 04d: dup - // 04e: bipush 10 - // 050: swap - // 051: bipush 20 - // 053: caload - // 054: aload 0 - // 055: dup - // 056: bipush 20 - // 058: swap - // 059: bipush 10 - // 05b: caload - // 05c: castore - // 05d: castore - // 05e: goto 165 - // 061: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; - // 064: bipush 0 - // 065: aaload - // 066: astore 4 - // 068: aload 4 - // 06a: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; - // 06d: invokevirtual java/lang/String.hashCode ()I - // 070: ldc 65535 - // 072: iand - // 073: istore 5 - // 075: aload 4 - // 077: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; - // 07a: invokevirtual java/lang/String.toCharArray ()[C - // 07d: astore 6 - // 07f: aload 0 - // 080: iload 1 - // 081: iinc 1 1 - // 084: caload - // 085: sipush 214 - // 088: ixor - // 089: iload 5 - // 08b: ixor - // 08c: anewarray 35 - // 08f: astore 7 - // 091: bipush 0 - // 092: istore 8 - // 094: aload 0 - // 095: iload 1 - // 096: iinc 1 1 - // 099: caload - // 09a: sipush 240 - // 09d: ixor - // 09e: iload 5 - // 0a0: ixor - // 0a1: istore 2 - // 0a2: iload 2 - // 0a3: newarray 5 - // 0a5: astore 9 - // 0a7: bipush 0 - // 0a8: istore 10 - // 0aa: iload 2 - // 0ab: ifle 146 - // 0ae: aload 0 - // 0af: iload 1 - // 0b0: caload - // 0b1: istore 11 - // 0b3: aload 6 - // 0b5: iload 1 - // 0b6: aload 6 - // 0b8: arraylength - // 0b9: irem - // 0ba: caload - // 0bb: sipush 193 - // 0be: ixor - // 0bf: lookupswitch 113 13 133 214 160 169 162 182 163 188 164 201 166 220 168 226 170 239 177 252 178 259 180 266 181 273 239 245 - // 130: aload 9 - // 132: iload 10 - // 134: iload 11 - // 136: castore - // 137: iinc 10 1 - // 13a: iinc 1 1 - // 13d: iinc 2 -1 - // 140: bipush 0 - // 141: istore 12 - // 143: goto 1da - // 146: aload 7 - // 148: iload 8 - // 14a: iinc 8 1 - // 14d: new java/lang/String - // 150: dup - // 151: aload 9 - // 153: invokespecial java/lang/String. ([C)V - // 156: invokevirtual java/lang/String.intern ()Ljava/lang/String; - // 159: aastore - // 15a: iload 1 - // 15b: aload 0 - // 15c: arraylength - // 15d: if_icmplt 094 - // 160: aload 7 - // 162: putstatic pack/tests/basics/accu/Digi.d [Ljava/lang/String; - // 165: goto 218 - // 168: iload 11 - // 16a: bipush -79 - // 16c: ixor - // 16d: istore 11 - // 16f: bipush 1 - // 170: istore 12 - // 172: goto 1da - // 175: bipush 2 - // 176: istore 12 - // 178: goto 1da - // 17b: iload 11 - // 17d: bipush -44 - // 17f: ixor - // 180: istore 11 - // 182: bipush 1 - // 183: istore 12 - // 185: goto 1da - // 188: iload 11 - // 18a: bipush -18 - // 18c: ixor - // 18d: istore 11 - // 18f: bipush 1 - // 190: istore 12 - // 192: goto 1da - // 195: bipush 3 - // 196: istore 12 - // 198: goto 1da - // 19b: bipush 4 - // 19c: istore 12 - // 19e: goto 1da - // 1a1: iload 11 - // 1a3: bipush -2 - // 1a5: ixor - // 1a6: istore 11 - // 1a8: bipush 1 - // 1a9: istore 12 - // 1ab: goto 1da - // 1ae: bipush 5 - // 1af: istore 12 - // 1b1: goto 1da - // 1b4: bipush 6 - // 1b6: istore 12 - // 1b8: goto 1da - // 1bb: bipush 7 - // 1bd: istore 12 - // 1bf: goto 1da - // 1c2: bipush 8 - // 1c4: istore 12 - // 1c6: goto 1da - // 1c9: bipush 9 - // 1cb: istore 12 - // 1cd: goto 1da - // 1d0: bipush 10 - // 1d2: istore 12 - // 1d4: goto 1da - // 1d7: goto 061 - // 1da: iload 12 - // 1dc: tableswitch -71 0 10 -306 -172 -116 -84 -71 -103 -65 -59 -33 -40 -19 - // 218: return - } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/cross/Top.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/cross/Top.dec index 0772d4cc..c024a1ac 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/cross/Top.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/cross/Top.dec @@ -15,216 +15,4 @@ public class Top extends Abst1 implements Inte { public int add(int var1, int var2) { return var1 + var2; } - - static { - // $VF: Couldn't be decompiled - // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) - // java.lang.RuntimeException: parsing failure! - // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) - // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) - // - // Bytecode: - // 000: ldc ">๘າᄒ๘ナ_1ラ'@" - // 002: invokevirtual java/lang/String.toCharArray ()[C - // 005: astore 0 - // 006: bipush 0 - // 007: istore 1 - // 008: aload 0 - // 009: dup - // 00a: bipush 6 - // 00c: swap - // 00d: bipush 4 - // 00e: caload - // 00f: aload 0 - // 010: dup - // 011: bipush 4 - // 012: swap - // 013: bipush 6 - // 015: caload - // 016: castore - // 017: castore - // 018: aload 0 - // 019: dup - // 01a: bipush 9 - // 01c: swap - // 01d: bipush 2 - // 01e: caload - // 01f: aload 0 - // 020: dup - // 021: bipush 2 - // 022: swap - // 023: bipush 9 - // 025: caload - // 026: castore - // 027: castore - // 028: aload 0 - // 029: dup - // 02a: bipush 9 - // 02c: swap - // 02d: bipush 0 - // 02e: caload - // 02f: aload 0 - // 030: dup - // 031: bipush 0 - // 032: swap - // 033: bipush 9 - // 035: caload - // 036: castore - // 037: castore - // 038: aload 0 - // 039: dup - // 03a: bipush 3 - // 03b: swap - // 03c: bipush 21 - // 03e: caload - // 03f: aload 0 - // 040: dup - // 041: bipush 21 - // 043: swap - // 044: bipush 3 - // 045: caload - // 046: castore - // 047: castore - // 048: goto 14d - // 04b: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; - // 04e: bipush 0 - // 04f: aaload - // 050: astore 4 - // 052: aload 4 - // 054: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; - // 057: invokevirtual java/lang/String.hashCode ()I - // 05a: ldc 65535 - // 05c: iand - // 05d: istore 5 - // 05f: aload 4 - // 061: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; - // 064: invokevirtual java/lang/String.toCharArray ()[C - // 067: astore 6 - // 069: aload 0 - // 06a: iload 1 - // 06b: iinc 1 1 - // 06e: caload - // 06f: bipush 25 - // 071: ixor - // 072: iload 5 - // 074: ixor - // 075: anewarray 41 - // 078: astore 7 - // 07a: bipush 0 - // 07b: istore 8 - // 07d: aload 0 - // 07e: iload 1 - // 07f: iinc 1 1 - // 082: caload - // 083: sipush 245 - // 086: ixor - // 087: iload 5 - // 089: ixor - // 08a: istore 2 - // 08b: iload 2 - // 08c: newarray 5 - // 08e: astore 9 - // 090: bipush 0 - // 091: istore 10 - // 093: iload 2 - // 094: ifle 12e - // 097: aload 0 - // 098: iload 1 - // 099: caload - // 09a: istore 11 - // 09c: aload 6 - // 09e: iload 1 - // 09f: aload 6 - // 0a1: arraylength - // 0a2: irem - // 0a3: caload - // 0a4: bipush 50 - // 0a6: ixor - // 0a7: lookupswitch 113 13 28 265 64 169 65 181 66 194 70 207 80 219 81 232 83 238 87 244 89 251 91 258 93 272 102 213 - // 118: aload 9 - // 11a: iload 10 - // 11c: iload 11 - // 11e: castore - // 11f: iinc 10 1 - // 122: iinc 1 1 - // 125: iinc 2 -1 - // 128: bipush 0 - // 129: istore 12 - // 12b: goto 1c1 - // 12e: aload 7 - // 130: iload 8 - // 132: iinc 8 1 - // 135: new java/lang/String - // 138: dup - // 139: aload 9 - // 13b: invokespecial java/lang/String. ([C)V - // 13e: invokevirtual java/lang/String.intern ()Ljava/lang/String; - // 141: aastore - // 142: iload 1 - // 143: aload 0 - // 144: arraylength - // 145: if_icmplt 07d - // 148: aload 7 - // 14a: putstatic pack/tests/basics/cross/Top.d [Ljava/lang/String; - // 14d: goto 1fc - // 150: iload 11 - // 152: bipush -1 - // 153: ixor - // 154: istore 11 - // 156: bipush 1 - // 157: istore 12 - // 159: goto 1c1 - // 15c: iload 11 - // 15e: bipush 119 - // 160: ixor - // 161: istore 11 - // 163: bipush 1 - // 164: istore 12 - // 166: goto 1c1 - // 169: iload 11 - // 16b: bipush -42 - // 16d: ixor - // 16e: istore 11 - // 170: bipush 1 - // 171: istore 12 - // 173: goto 1c1 - // 176: bipush 2 - // 177: istore 12 - // 179: goto 1c1 - // 17c: bipush 3 - // 17d: istore 12 - // 17f: goto 1c1 - // 182: iload 11 - // 184: bipush 12 - // 186: ixor - // 187: istore 11 - // 189: bipush 1 - // 18a: istore 12 - // 18c: goto 1c1 - // 18f: bipush 4 - // 190: istore 12 - // 192: goto 1c1 - // 195: bipush 5 - // 196: istore 12 - // 198: goto 1c1 - // 19b: bipush 6 - // 19d: istore 12 - // 19f: goto 1c1 - // 1a2: bipush 7 - // 1a4: istore 12 - // 1a6: goto 1c1 - // 1a9: bipush 8 - // 1ab: istore 12 - // 1ad: goto 1c1 - // 1b0: bipush 9 - // 1b2: istore 12 - // 1b4: goto 1c1 - // 1b7: bipush 10 - // 1b9: istore 12 - // 1bb: goto 1c1 - // 1be: goto 04b - // 1c1: iload 12 - // 1c3: tableswitch -40 0 10 -304 -171 -90 -103 -71 -77 -46 -115 -40 -65 -19 - // 1fc: return - } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/ctrl/Ctrl.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/ctrl/Ctrl.dec index a7b29334..679931d8 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/ctrl/Ctrl.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/ctrl/Ctrl.dec @@ -24,216 +24,4 @@ public class Ctrl { this.runf(); System.out.println(this.ret); } - - static { - // $VF: Couldn't be decompiled - // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) - // java.lang.RuntimeException: parsing failure! - // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) - // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) - // - // Bytecode: - // 000: ldc "aอ~ศZi\u0e7aPอ}ศxO]ミ" - // 002: invokevirtual java/lang/String.toCharArray ()[C - // 005: astore 0 - // 006: bipush 0 - // 007: istore 1 - // 008: aload 0 - // 009: dup - // 00a: bipush 13 - // 00c: swap - // 00d: bipush 12 - // 00f: caload - // 010: aload 0 - // 011: dup - // 012: bipush 12 - // 014: swap - // 015: bipush 13 - // 017: caload - // 018: castore - // 019: castore - // 01a: aload 0 - // 01b: dup - // 01c: bipush 6 - // 01e: swap - // 01f: bipush 0 - // 020: caload - // 021: aload 0 - // 022: dup - // 023: bipush 0 - // 024: swap - // 025: bipush 6 - // 027: caload - // 028: castore - // 029: castore - // 02a: aload 0 - // 02b: dup - // 02c: bipush 9 - // 02e: swap - // 02f: bipush 26 - // 031: caload - // 032: aload 0 - // 033: dup - // 034: bipush 26 - // 036: swap - // 037: bipush 9 - // 039: caload - // 03a: castore - // 03b: castore - // 03c: aload 0 - // 03d: dup - // 03e: bipush 0 - // 03f: swap - // 040: bipush 11 - // 042: caload - // 043: aload 0 - // 044: dup - // 045: bipush 11 - // 047: swap - // 048: bipush 0 - // 049: caload - // 04a: castore - // 04b: castore - // 04c: goto 155 - // 04f: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; - // 052: bipush 0 - // 053: aaload - // 054: astore 4 - // 056: aload 4 - // 058: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; - // 05b: invokevirtual java/lang/String.hashCode ()I - // 05e: ldc 65535 - // 060: iand - // 061: istore 5 - // 063: aload 4 - // 065: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; - // 068: invokevirtual java/lang/String.toCharArray ()[C - // 06b: astore 6 - // 06d: aload 0 - // 06e: iload 1 - // 06f: iinc 1 1 - // 072: caload - // 073: sipush 215 - // 076: ixor - // 077: iload 5 - // 079: ixor - // 07a: anewarray 23 - // 07d: astore 7 - // 07f: bipush 0 - // 080: istore 8 - // 082: aload 0 - // 083: iload 1 - // 084: iinc 1 1 - // 087: caload - // 088: sipush 133 - // 08b: ixor - // 08c: iload 5 - // 08e: ixor - // 08f: istore 2 - // 090: iload 2 - // 091: newarray 5 - // 093: astore 9 - // 095: bipush 0 - // 096: istore 10 - // 098: iload 2 - // 099: ifle 136 - // 09c: aload 0 - // 09d: iload 1 - // 09e: caload - // 09f: istore 11 - // 0a1: aload 6 - // 0a3: iload 1 - // 0a4: aload 6 - // 0a6: arraylength - // 0a7: irem - // 0a8: caload - // 0a9: sipush 143 - // 0ac: ixor - // 0ad: lookupswitch 115 13 161 171 204 228 227 184 228 197 230 203 234 216 236 222 237 241 238 247 251 254 252 261 253 268 255 275 - // 120: aload 9 - // 122: iload 10 - // 124: iload 11 - // 126: castore - // 127: iinc 10 1 - // 12a: iinc 1 1 - // 12d: iinc 2 -1 - // 130: bipush 0 - // 131: istore 12 - // 133: goto 1ca - // 136: aload 7 - // 138: iload 8 - // 13a: iinc 8 1 - // 13d: new java/lang/String - // 140: dup - // 141: aload 9 - // 143: invokespecial java/lang/String. ([C)V - // 146: invokevirtual java/lang/String.intern ()Ljava/lang/String; - // 149: aastore - // 14a: iload 1 - // 14b: aload 0 - // 14c: arraylength - // 14d: if_icmplt 082 - // 150: aload 7 - // 152: putstatic pack/tests/basics/ctrl/Ctrl.d [Ljava/lang/String; - // 155: goto 208 - // 158: iload 11 - // 15a: bipush 28 - // 15c: ixor - // 15d: istore 11 - // 15f: bipush 1 - // 160: istore 12 - // 162: goto 1ca - // 165: iload 11 - // 167: bipush 40 - // 169: ixor - // 16a: istore 11 - // 16c: bipush 1 - // 16d: istore 12 - // 16f: goto 1ca - // 172: bipush 2 - // 173: istore 12 - // 175: goto 1ca - // 178: iload 11 - // 17a: bipush -61 - // 17c: ixor - // 17d: istore 11 - // 17f: bipush 1 - // 180: istore 12 - // 182: goto 1ca - // 185: bipush 3 - // 186: istore 12 - // 188: goto 1ca - // 18b: bipush 4 - // 18c: istore 12 - // 18e: goto 1ca - // 191: iload 11 - // 193: bipush 104 - // 195: ixor - // 196: istore 11 - // 198: bipush 1 - // 199: istore 12 - // 19b: goto 1ca - // 19e: bipush 5 - // 19f: istore 12 - // 1a1: goto 1ca - // 1a4: bipush 6 - // 1a6: istore 12 - // 1a8: goto 1ca - // 1ab: bipush 7 - // 1ad: istore 12 - // 1af: goto 1ca - // 1b2: bipush 8 - // 1b4: istore 12 - // 1b6: goto 1ca - // 1b9: bipush 9 - // 1bb: istore 12 - // 1bd: goto 1ca - // 1c0: bipush 10 - // 1c2: istore 12 - // 1c4: goto 1ca - // 1c7: goto 04f - // 1ca: iload 12 - // 1cc: tableswitch -90 0 10 -308 -172 -116 -103 -90 -71 -65 -46 -40 -59 -33 - // 208: return - } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/inner/Test.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/inner/Test.dec index 6911f9c2..513d946b 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/inner/Test.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/inner/Test.dec @@ -15,230 +15,4 @@ public class Test { System.out.println("ERROR"); } } - - static { - // $VF: Couldn't be decompiled - // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) - // java.lang.RuntimeException: parsing failure! - // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) - // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) - // - // Bytecode: - // 000: ldc "a๚tᄂ๛~ᄂ໔c\ufff7bb" - // 002: invokevirtual java/lang/String.toCharArray ()[C - // 005: astore 0 - // 006: bipush 0 - // 007: istore 1 - // 008: aload 0 - // 009: dup - // 00a: bipush 4 - // 00b: swap - // 00c: bipush 7 - // 00e: caload - // 00f: aload 0 - // 010: dup - // 011: bipush 7 - // 013: swap - // 014: bipush 4 - // 015: caload - // 016: castore - // 017: castore - // 018: aload 0 - // 019: dup - // 01a: bipush 0 - // 01b: swap - // 01c: bipush 8 - // 01e: caload - // 01f: aload 0 - // 020: dup - // 021: bipush 8 - // 023: swap - // 024: bipush 0 - // 025: caload - // 026: castore - // 027: castore - // 028: aload 0 - // 029: dup - // 02a: bipush 4 - // 02b: swap - // 02c: bipush 0 - // 02d: caload - // 02e: aload 0 - // 02f: dup - // 030: bipush 0 - // 031: swap - // 032: bipush 4 - // 033: caload - // 034: castore - // 035: castore - // 036: aload 0 - // 037: dup - // 038: bipush 6 - // 03a: swap - // 03b: bipush 14 - // 03d: caload - // 03e: aload 0 - // 03f: dup - // 040: bipush 14 - // 042: swap - // 043: bipush 6 - // 045: caload - // 046: castore - // 047: castore - // 048: aload 0 - // 049: dup - // 04a: bipush 1 - // 04b: swap - // 04c: bipush 9 - // 04e: caload - // 04f: aload 0 - // 050: dup - // 051: bipush 9 - // 053: swap - // 054: bipush 1 - // 055: caload - // 056: castore - // 057: castore - // 058: goto 15d - // 05b: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; - // 05e: bipush 0 - // 05f: aaload - // 060: astore 4 - // 062: aload 4 - // 064: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; - // 067: invokevirtual java/lang/String.hashCode ()I - // 06a: ldc 65535 - // 06c: iand - // 06d: istore 5 - // 06f: aload 4 - // 071: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; - // 074: invokevirtual java/lang/String.toCharArray ()[C - // 077: astore 6 - // 079: aload 0 - // 07a: iload 1 - // 07b: iinc 1 1 - // 07e: caload - // 07f: bipush 127 - // 081: ixor - // 082: iload 5 - // 084: ixor - // 085: anewarray 52 - // 088: astore 7 - // 08a: bipush 0 - // 08b: istore 8 - // 08d: aload 0 - // 08e: iload 1 - // 08f: iinc 1 1 - // 092: caload - // 093: sipush 246 - // 096: ixor - // 097: iload 5 - // 099: ixor - // 09a: istore 2 - // 09b: iload 2 - // 09c: newarray 5 - // 09e: astore 9 - // 0a0: bipush 0 - // 0a1: istore 10 - // 0a3: iload 2 - // 0a4: ifle 13e - // 0a7: aload 0 - // 0a8: iload 1 - // 0a9: caload - // 0aa: istore 11 - // 0ac: aload 6 - // 0ae: iload 1 - // 0af: aload 6 - // 0b1: arraylength - // 0b2: irem - // 0b3: caload - // 0b4: bipush 46 - // 0b6: ixor - // 0b7: lookupswitch 113 13 0 169 64 182 69 195 71 208 75 214 76 220 77 226 79 232 90 245 92 259 93 266 94 273 122 252 - // 128: aload 9 - // 12a: iload 10 - // 12c: iload 11 - // 12e: castore - // 12f: iinc 10 1 - // 132: iinc 1 1 - // 135: iinc 2 -1 - // 138: bipush 0 - // 139: istore 12 - // 13b: goto 1d2 - // 13e: aload 7 - // 140: iload 8 - // 142: iinc 8 1 - // 145: new java/lang/String - // 148: dup - // 149: aload 9 - // 14b: invokespecial java/lang/String. ([C)V - // 14e: invokevirtual java/lang/String.intern ()Ljava/lang/String; - // 151: aastore - // 152: iload 1 - // 153: aload 0 - // 154: arraylength - // 155: if_icmplt 08d - // 158: aload 7 - // 15a: putstatic pack/tests/basics/inner/Test.d [Ljava/lang/String; - // 15d: goto 210 - // 160: iload 11 - // 162: bipush 49 - // 164: ixor - // 165: istore 11 - // 167: bipush 1 - // 168: istore 12 - // 16a: goto 1d2 - // 16d: iload 11 - // 16f: bipush -113 - // 171: ixor - // 172: istore 11 - // 174: bipush 1 - // 175: istore 12 - // 177: goto 1d2 - // 17a: iload 11 - // 17c: bipush -10 - // 17e: ixor - // 17f: istore 11 - // 181: bipush 1 - // 182: istore 12 - // 184: goto 1d2 - // 187: bipush 2 - // 188: istore 12 - // 18a: goto 1d2 - // 18d: bipush 3 - // 18e: istore 12 - // 190: goto 1d2 - // 193: bipush 4 - // 194: istore 12 - // 196: goto 1d2 - // 199: bipush 5 - // 19a: istore 12 - // 19c: goto 1d2 - // 19f: iload 11 - // 1a1: bipush -74 - // 1a3: ixor - // 1a4: istore 11 - // 1a6: bipush 1 - // 1a7: istore 12 - // 1a9: goto 1d2 - // 1ac: bipush 6 - // 1ae: istore 12 - // 1b0: goto 1d2 - // 1b3: bipush 7 - // 1b5: istore 12 - // 1b7: goto 1d2 - // 1ba: bipush 8 - // 1bc: istore 12 - // 1be: goto 1d2 - // 1c1: bipush 9 - // 1c3: istore 12 - // 1c5: goto 1d2 - // 1c8: bipush 10 - // 1ca: istore 12 - // 1cc: goto 1d2 - // 1cf: goto 05b - // 1d2: iload 12 - // 1d4: tableswitch -40 0 10 -305 -172 -90 -77 -116 -65 -59 -40 -33 -53 -19 - // 210: return - } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/overwirte/Sub.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/overwirte/Sub.dec index 2533fe2b..d8967e53 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/overwirte/Sub.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/overwirte/Sub.dec @@ -13,225 +13,4 @@ public class Sub extends Super { public String face(int var1) { return var1 == 1 ? "PASS" : "FAIL"; } - - static { - // $VF: Couldn't be decompiled - // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) - // java.lang.RuntimeException: parsing failure! - // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) - // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) - // - // Bytecode: - // 000: ldc "\uffc8ຸ\u0e80\ufff3\ufffb\ufffe\u0e80レ£ル\ufff3" - // 002: invokevirtual java/lang/String.toCharArray ()[C - // 005: astore 0 - // 006: bipush 0 - // 007: istore 1 - // 008: aload 0 - // 009: dup - // 00a: bipush 2 - // 00b: swap - // 00c: bipush 1 - // 00d: caload - // 00e: aload 0 - // 00f: dup - // 010: bipush 1 - // 011: swap - // 012: bipush 2 - // 013: caload - // 014: castore - // 015: castore - // 016: aload 0 - // 017: dup - // 018: bipush 8 - // 01a: swap - // 01b: bipush 10 - // 01d: caload - // 01e: aload 0 - // 01f: dup - // 020: bipush 10 - // 022: swap - // 023: bipush 8 - // 025: caload - // 026: castore - // 027: castore - // 028: aload 0 - // 029: dup - // 02a: bipush 2 - // 02b: swap - // 02c: bipush 0 - // 02d: caload - // 02e: aload 0 - // 02f: dup - // 030: bipush 0 - // 031: swap - // 032: bipush 2 - // 033: caload - // 034: castore - // 035: castore - // 036: aload 0 - // 037: dup - // 038: bipush 8 - // 03a: swap - // 03b: bipush 13 - // 03d: caload - // 03e: aload 0 - // 03f: dup - // 040: bipush 13 - // 042: swap - // 043: bipush 8 - // 045: caload - // 046: castore - // 047: castore - // 048: goto 165 - // 04b: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; - // 04e: bipush 0 - // 04f: aaload - // 050: astore 4 - // 052: aload 4 - // 054: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; - // 057: invokevirtual java/lang/String.hashCode ()I - // 05a: ldc 65535 - // 05c: iand - // 05d: istore 5 - // 05f: aload 4 - // 061: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; - // 064: invokevirtual java/lang/String.toCharArray ()[C - // 067: astore 6 - // 069: aload 0 - // 06a: iload 1 - // 06b: iinc 1 1 - // 06e: caload - // 06f: bipush 19 - // 071: ixor - // 072: iload 5 - // 074: ixor - // 075: anewarray 40 - // 078: astore 7 - // 07a: bipush 0 - // 07b: istore 8 - // 07d: aload 0 - // 07e: iload 1 - // 07f: iinc 1 1 - // 082: caload - // 083: bipush 45 - // 085: ixor - // 086: iload 5 - // 088: ixor - // 089: istore 2 - // 08a: iload 2 - // 08b: newarray 5 - // 08d: astore 9 - // 08f: bipush 0 - // 090: istore 10 - // 092: iload 2 - // 093: ifle 146 - // 096: aload 0 - // 097: iload 1 - // 098: caload - // 099: istore 11 - // 09b: aload 6 - // 09d: iload 1 - // 09e: aload 6 - // 0a0: arraylength - // 0a1: irem - // 0a2: caload - // 0a3: sipush 195 - // 0a6: ixor - // 0a7: lookupswitch 137 16 144 276 160 193 161 206 162 219 166 232 168 238 170 244 172 250 176 263 177 283 179 290 180 297 181 304 182 311 183 318 237 256 - // 130: aload 9 - // 132: iload 10 - // 134: iload 11 - // 136: castore - // 137: iinc 10 1 - // 13a: iinc 1 1 - // 13d: iinc 2 -1 - // 140: bipush 0 - // 141: istore 12 - // 143: goto 1ef - // 146: aload 7 - // 148: iload 8 - // 14a: iinc 8 1 - // 14d: new java/lang/String - // 150: dup - // 151: aload 9 - // 153: invokespecial java/lang/String. ([C)V - // 156: invokevirtual java/lang/String.intern ()Ljava/lang/String; - // 159: aastore - // 15a: iload 1 - // 15b: aload 0 - // 15c: arraylength - // 15d: if_icmplt 07d - // 160: aload 7 - // 162: putstatic pack/tests/basics/overwirte/Sub.b [Ljava/lang/String; - // 165: goto 238 - // 168: iload 11 - // 16a: bipush -114 - // 16c: ixor - // 16d: istore 11 - // 16f: bipush 1 - // 170: istore 12 - // 172: goto 1ef - // 175: iload 11 - // 177: bipush -18 - // 179: ixor - // 17a: istore 11 - // 17c: bipush 1 - // 17d: istore 12 - // 17f: goto 1ef - // 182: iload 11 - // 184: bipush -78 - // 186: ixor - // 187: istore 11 - // 189: bipush 1 - // 18a: istore 12 - // 18c: goto 1ef - // 18f: bipush 2 - // 190: istore 12 - // 192: goto 1ef - // 195: bipush 3 - // 196: istore 12 - // 198: goto 1ef - // 19b: bipush 4 - // 19c: istore 12 - // 19e: goto 1ef - // 1a1: bipush 5 - // 1a2: istore 12 - // 1a4: goto 1ef - // 1a7: bipush 6 - // 1a9: istore 12 - // 1ab: goto 1ef - // 1ae: iload 11 - // 1b0: bipush -54 - // 1b2: ixor - // 1b3: istore 11 - // 1b5: bipush 1 - // 1b6: istore 12 - // 1b8: goto 1ef - // 1bb: bipush 7 - // 1bd: istore 12 - // 1bf: goto 1ef - // 1c2: bipush 8 - // 1c4: istore 12 - // 1c6: goto 1ef - // 1c9: bipush 9 - // 1cb: istore 12 - // 1cd: goto 1ef - // 1d0: bipush 10 - // 1d2: istore 12 - // 1d4: goto 1ef - // 1d7: bipush 11 - // 1d9: istore 12 - // 1db: goto 1ef - // 1de: bipush 12 - // 1e0: istore 12 - // 1e2: goto 1ef - // 1e5: bipush 13 - // 1e7: istore 12 - // 1e9: goto 1ef - // 1ec: goto 04b - // 1ef: iload 12 - // 1f1: tableswitch -40 0 13 -351 -193 -137 -111 -124 -92 -80 -86 -54 -67 -47 -40 -26 -74 - // 238: return - } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/overwirte/Super.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/overwirte/Super.dec index 3fa96e49..46db3ce7 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/overwirte/Super.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/overwirte/Super.dec @@ -6,197 +6,4 @@ public abstract class Super implements Face { public void run() { System.out.println("FAIL"); } - - static { - // $VF: Couldn't be decompiled - // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) - // java.lang.RuntimeException: parsing failure! - // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) - // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) - // - // Bytecode: - // 000: ldc "G\u0eefH\ufff1ຉP" - // 002: invokevirtual java/lang/String.toCharArray ()[C - // 005: astore 0 - // 006: bipush 0 - // 007: istore 1 - // 008: aload 0 - // 009: dup - // 00a: bipush 4 - // 00b: swap - // 00c: bipush 0 - // 00d: caload - // 00e: aload 0 - // 00f: dup - // 010: bipush 0 - // 011: swap - // 012: bipush 4 - // 013: caload - // 014: castore - // 015: castore - // 016: aload 0 - // 017: dup - // 018: bipush 5 - // 019: swap - // 01a: bipush 8 - // 01c: caload - // 01d: aload 0 - // 01e: dup - // 01f: bipush 8 - // 021: swap - // 022: bipush 5 - // 023: caload - // 024: castore - // 025: castore - // 026: goto 145 - // 029: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; - // 02c: bipush 0 - // 02d: aaload - // 02e: astore 4 - // 030: aload 4 - // 032: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; - // 035: invokevirtual java/lang/String.hashCode ()I - // 038: ldc 65535 - // 03a: iand - // 03b: istore 5 - // 03d: aload 4 - // 03f: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; - // 042: invokevirtual java/lang/String.toCharArray ()[C - // 045: astore 6 - // 047: aload 0 - // 048: iload 1 - // 049: iinc 1 1 - // 04c: caload - // 04d: bipush 33 - // 04f: ixor - // 050: iload 5 - // 052: ixor - // 053: anewarray 32 - // 056: astore 7 - // 058: bipush 0 - // 059: istore 8 - // 05b: aload 0 - // 05c: iload 1 - // 05d: iinc 1 1 - // 060: caload - // 061: bipush 66 - // 063: ixor - // 064: iload 5 - // 066: ixor - // 067: istore 2 - // 068: iload 2 - // 069: newarray 5 - // 06b: astore 9 - // 06d: bipush 0 - // 06e: istore 10 - // 070: iload 2 - // 071: ifle 126 - // 074: aload 0 - // 075: iload 1 - // 076: caload - // 077: istore 11 - // 079: aload 6 - // 07b: iload 1 - // 07c: aload 6 - // 07e: arraylength - // 07f: irem - // 080: caload - // 081: sipush 160 - // 084: ixor - // 085: lookupswitch 139 16 142 259 193 195 194 208 195 221 197 234 201 240 203 253 207 265 208 271 210 278 211 285 212 299 213 306 214 313 215 320 243 292 - // 110: aload 9 - // 112: iload 10 - // 114: iload 11 - // 116: castore - // 117: iinc 10 1 - // 11a: iinc 1 1 - // 11d: iinc 2 -1 - // 120: bipush 0 - // 121: istore 12 - // 123: goto 1cf - // 126: aload 7 - // 128: iload 8 - // 12a: iinc 8 1 - // 12d: new java/lang/String - // 130: dup - // 131: aload 9 - // 133: invokespecial java/lang/String. ([C)V - // 136: invokevirtual java/lang/String.intern ()Ljava/lang/String; - // 139: aastore - // 13a: iload 1 - // 13b: aload 0 - // 13c: arraylength - // 13d: if_icmplt 05b - // 140: aload 7 - // 142: putstatic pack/tests/basics/overwirte/Super.d [Ljava/lang/String; - // 145: goto 218 - // 148: iload 11 - // 14a: bipush 28 - // 14c: ixor - // 14d: istore 11 - // 14f: bipush 1 - // 150: istore 12 - // 152: goto 1cf - // 155: iload 11 - // 157: bipush -5 - // 159: ixor - // 15a: istore 11 - // 15c: bipush 1 - // 15d: istore 12 - // 15f: goto 1cf - // 162: iload 11 - // 164: bipush 14 - // 166: ixor - // 167: istore 11 - // 169: bipush 1 - // 16a: istore 12 - // 16c: goto 1cf - // 16f: bipush 2 - // 170: istore 12 - // 172: goto 1cf - // 175: iload 11 - // 177: bipush -80 - // 179: ixor - // 17a: istore 11 - // 17c: bipush 1 - // 17d: istore 12 - // 17f: goto 1cf - // 182: bipush 3 - // 183: istore 12 - // 185: goto 1cf - // 188: bipush 4 - // 189: istore 12 - // 18b: goto 1cf - // 18e: bipush 5 - // 18f: istore 12 - // 191: goto 1cf - // 194: bipush 6 - // 196: istore 12 - // 198: goto 1cf - // 19b: bipush 7 - // 19d: istore 12 - // 19f: goto 1cf - // 1a2: bipush 8 - // 1a4: istore 12 - // 1a6: goto 1cf - // 1a9: bipush 9 - // 1ab: istore 12 - // 1ad: goto 1cf - // 1b0: bipush 10 - // 1b2: istore 12 - // 1b4: goto 1cf - // 1b7: bipush 11 - // 1b9: istore 12 - // 1bb: goto 1cf - // 1be: bipush 12 - // 1c0: istore 12 - // 1c2: goto 1cf - // 1c5: bipush 13 - // 1c7: istore 12 - // 1c9: goto 1cf - // 1cc: goto 029 - // 1cf: iload 12 - // 1d1: tableswitch -124 0 13 -353 -193 -137 -92 -111 -98 -124 -79 -54 -73 -67 -47 -33 -26 - // 218: return - } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/runable/Task.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/runable/Task.dec index cf7529ba..d495fd99 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/runable/Task.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/runable/Task.dec @@ -43,222 +43,4 @@ public class Task { var0.doAdd(); Exec.i += var1; } - - static { - // $VF: Couldn't be decompiled - // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) - // java.lang.RuntimeException: parsing failure! - // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) - // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) - // - // Bytecode: - // 000: ldc "ᄉฎᄎᄇHᅠฎ\u0e6aZᆪ\uffbf" - // 002: invokevirtual java/lang/String.toCharArray ()[C - // 005: astore 0 - // 006: bipush 0 - // 007: istore 1 - // 008: aload 0 - // 009: dup - // 00a: bipush 4 - // 00b: swap - // 00c: bipush 5 - // 00d: caload - // 00e: aload 0 - // 00f: dup - // 010: bipush 5 - // 011: swap - // 012: bipush 4 - // 013: caload - // 014: castore - // 015: castore - // 016: aload 0 - // 017: dup - // 018: bipush 9 - // 01a: swap - // 01b: bipush 2 - // 01c: caload - // 01d: aload 0 - // 01e: dup - // 01f: bipush 2 - // 020: swap - // 021: bipush 9 - // 023: caload - // 024: castore - // 025: castore - // 026: aload 0 - // 027: dup - // 028: bipush 7 - // 02a: swap - // 02b: bipush 0 - // 02c: caload - // 02d: aload 0 - // 02e: dup - // 02f: bipush 0 - // 030: swap - // 031: bipush 7 - // 033: caload - // 034: castore - // 035: castore - // 036: aload 0 - // 037: dup - // 038: bipush 7 - // 03a: swap - // 03b: bipush 16 - // 03d: caload - // 03e: aload 0 - // 03f: dup - // 040: bipush 16 - // 042: swap - // 043: bipush 7 - // 045: caload - // 046: castore - // 047: castore - // 048: goto 161 - // 04b: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; - // 04e: bipush 0 - // 04f: aaload - // 050: astore 4 - // 052: aload 4 - // 054: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; - // 057: invokevirtual java/lang/String.hashCode ()I - // 05a: ldc 65535 - // 05c: iand - // 05d: istore 5 - // 05f: aload 4 - // 061: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; - // 064: invokevirtual java/lang/String.toCharArray ()[C - // 067: astore 6 - // 069: aload 0 - // 06a: iload 1 - // 06b: iinc 1 1 - // 06e: caload - // 06f: sipush 193 - // 072: ixor - // 073: iload 5 - // 075: ixor - // 076: anewarray 96 - // 079: astore 7 - // 07b: bipush 0 - // 07c: istore 8 - // 07e: aload 0 - // 07f: iload 1 - // 080: iinc 1 1 - // 083: caload - // 084: sipush 163 - // 087: ixor - // 088: iload 5 - // 08a: ixor - // 08b: istore 2 - // 08c: iload 2 - // 08d: newarray 5 - // 08f: astore 9 - // 091: bipush 0 - // 092: istore 10 - // 094: iload 2 - // 095: ifle 142 - // 098: aload 0 - // 099: iload 1 - // 09a: caload - // 09b: istore 11 - // 09d: aload 6 - // 09f: iload 1 - // 0a0: aload 6 - // 0a2: arraylength - // 0a3: irem - // 0a4: caload - // 0a5: bipush 17 - // 0a7: ixor - // 0a8: lookupswitch 132 15 63 299 69 239 97 188 98 201 99 207 100 220 101 226 112 245 114 251 115 258 116 265 120 278 122 285 125 292 127 306 - // 12c: aload 9 - // 12e: iload 10 - // 130: iload 11 - // 132: castore - // 133: iinc 10 1 - // 136: iinc 1 1 - // 139: iinc 2 -1 - // 13c: bipush 0 - // 13d: istore 12 - // 13f: goto 1e4 - // 142: aload 7 - // 144: iload 8 - // 146: iinc 8 1 - // 149: new java/lang/String - // 14c: dup - // 14d: aload 9 - // 14f: invokespecial java/lang/String. ([C)V - // 152: invokevirtual java/lang/String.intern ()Ljava/lang/String; - // 155: aastore - // 156: iload 1 - // 157: aload 0 - // 158: arraylength - // 159: if_icmplt 07e - // 15c: aload 7 - // 15e: putstatic pack/tests/basics/runable/Task.d [Ljava/lang/String; - // 161: goto 228 - // 164: iload 11 - // 166: bipush -13 - // 168: ixor - // 169: istore 11 - // 16b: bipush 1 - // 16c: istore 12 - // 16e: goto 1e4 - // 171: bipush 2 - // 172: istore 12 - // 174: goto 1e4 - // 177: iload 11 - // 179: bipush 73 - // 17b: ixor - // 17c: istore 11 - // 17e: bipush 1 - // 17f: istore 12 - // 181: goto 1e4 - // 184: bipush 3 - // 185: istore 12 - // 187: goto 1e4 - // 18a: iload 11 - // 18c: bipush 27 - // 18e: ixor - // 18f: istore 11 - // 191: bipush 1 - // 192: istore 12 - // 194: goto 1e4 - // 197: bipush 4 - // 198: istore 12 - // 19a: goto 1e4 - // 19d: bipush 5 - // 19e: istore 12 - // 1a0: goto 1e4 - // 1a3: bipush 6 - // 1a5: istore 12 - // 1a7: goto 1e4 - // 1aa: bipush 7 - // 1ac: istore 12 - // 1ae: goto 1e4 - // 1b1: iload 11 - // 1b3: bipush -33 - // 1b5: ixor - // 1b6: istore 11 - // 1b8: bipush 1 - // 1b9: istore 12 - // 1bb: goto 1e4 - // 1be: bipush 8 - // 1c0: istore 12 - // 1c2: goto 1e4 - // 1c5: bipush 9 - // 1c7: istore 12 - // 1c9: goto 1e4 - // 1cc: bipush 10 - // 1ce: istore 12 - // 1d0: goto 1e4 - // 1d3: bipush 11 - // 1d5: istore 12 - // 1d7: goto 1e4 - // 1da: bipush 12 - // 1dc: istore 12 - // 1de: goto 1e4 - // 1e1: goto 04b - // 1e4: iload 12 - // 1e6: tableswitch -26 0 12 -338 -186 -130 -111 -117 -98 -79 -92 -53 -67 -33 -26 -19 - // 228: return - } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/sub/Solver.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/sub/Solver.dec index 68c27ecb..bf0d5285 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/sub/Solver.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/basics/sub/Solver.dec @@ -10,225 +10,4 @@ public class Solver { System.out.println("FAIL"); } } - - static { - // $VF: Couldn't be decompiled - // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) - // java.lang.RuntimeException: parsing failure! - // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) - // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) - // - // Bytecode: - // 000: ldc "ᄑວᄃホ\u0e7eᄑᄁᄄᆵᄒວ" - // 002: invokevirtual java/lang/String.toCharArray ()[C - // 005: astore 0 - // 006: bipush 0 - // 007: istore 1 - // 008: aload 0 - // 009: dup - // 00a: bipush 10 - // 00c: swap - // 00d: bipush 6 - // 00f: caload - // 010: aload 0 - // 011: dup - // 012: bipush 6 - // 014: swap - // 015: bipush 10 - // 017: caload - // 018: castore - // 019: castore - // 01a: aload 0 - // 01b: dup - // 01c: bipush 9 - // 01e: swap - // 01f: bipush 2 - // 020: caload - // 021: aload 0 - // 022: dup - // 023: bipush 2 - // 024: swap - // 025: bipush 9 - // 027: caload - // 028: castore - // 029: castore - // 02a: aload 0 - // 02b: dup - // 02c: bipush 4 - // 02d: swap - // 02e: bipush 0 - // 02f: caload - // 030: aload 0 - // 031: dup - // 032: bipush 0 - // 033: swap - // 034: bipush 4 - // 035: caload - // 036: castore - // 037: castore - // 038: aload 0 - // 039: dup - // 03a: bipush 10 - // 03c: swap - // 03d: bipush 12 - // 03f: caload - // 040: aload 0 - // 041: dup - // 042: bipush 12 - // 044: swap - // 045: bipush 10 - // 047: caload - // 048: castore - // 049: castore - // 04a: goto 169 - // 04d: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; - // 050: bipush 0 - // 051: aaload - // 052: astore 4 - // 054: aload 4 - // 056: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; - // 059: invokevirtual java/lang/String.hashCode ()I - // 05c: ldc 65535 - // 05e: iand - // 05f: istore 5 - // 061: aload 4 - // 063: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; - // 066: invokevirtual java/lang/String.toCharArray ()[C - // 069: astore 6 - // 06b: aload 0 - // 06c: iload 1 - // 06d: iinc 1 1 - // 070: caload - // 071: sipush 213 - // 074: ixor - // 075: iload 5 - // 077: ixor - // 078: anewarray 37 - // 07b: astore 7 - // 07d: bipush 0 - // 07e: istore 8 - // 080: aload 0 - // 081: iload 1 - // 082: iinc 1 1 - // 085: caload - // 086: bipush 10 - // 088: ixor - // 089: iload 5 - // 08b: ixor - // 08c: istore 2 - // 08d: iload 2 - // 08e: newarray 5 - // 090: astore 9 - // 092: bipush 0 - // 093: istore 10 - // 095: iload 2 - // 096: ifle 14a - // 099: aload 0 - // 09a: iload 1 - // 09b: caload - // 09c: istore 11 - // 09e: aload 6 - // 0a0: iload 1 - // 0a1: aload 6 - // 0a3: arraylength - // 0a4: irem - // 0a5: caload - // 0a6: sipush 231 - // 0a9: ixor - // 0aa: lookupswitch 138 16 130 194 132 207 133 213 134 226 136 239 139 251 140 257 142 264 145 271 146 284 147 291 148 298 149 312 151 319 180 305 201 245 - // 134: aload 9 - // 136: iload 10 - // 138: iload 11 - // 13a: castore - // 13b: iinc 10 1 - // 13e: iinc 1 1 - // 141: iinc 2 -1 - // 144: bipush 0 - // 145: istore 12 - // 147: goto 1f3 - // 14a: aload 7 - // 14c: iload 8 - // 14e: iinc 8 1 - // 151: new java/lang/String - // 154: dup - // 155: aload 9 - // 157: invokespecial java/lang/String. ([C)V - // 15a: invokevirtual java/lang/String.intern ()Ljava/lang/String; - // 15d: aastore - // 15e: iload 1 - // 15f: aload 0 - // 160: arraylength - // 161: if_icmplt 080 - // 164: aload 7 - // 166: putstatic pack/tests/basics/sub/Solver.d [Ljava/lang/String; - // 169: goto 23c - // 16c: iload 11 - // 16e: bipush -18 - // 170: ixor - // 171: istore 11 - // 173: bipush 1 - // 174: istore 12 - // 176: goto 1f3 - // 179: bipush 2 - // 17a: istore 12 - // 17c: goto 1f3 - // 17f: iload 11 - // 181: bipush 16 - // 183: ixor - // 184: istore 11 - // 186: bipush 1 - // 187: istore 12 - // 189: goto 1f3 - // 18c: iload 11 - // 18e: bipush -49 - // 190: ixor - // 191: istore 11 - // 193: bipush 1 - // 194: istore 12 - // 196: goto 1f3 - // 199: bipush 3 - // 19a: istore 12 - // 19c: goto 1f3 - // 19f: bipush 4 - // 1a0: istore 12 - // 1a2: goto 1f3 - // 1a5: bipush 5 - // 1a6: istore 12 - // 1a8: goto 1f3 - // 1ab: bipush 6 - // 1ad: istore 12 - // 1af: goto 1f3 - // 1b2: bipush 7 - // 1b4: istore 12 - // 1b6: goto 1f3 - // 1b9: iload 11 - // 1bb: bipush 94 - // 1bd: ixor - // 1be: istore 11 - // 1c0: bipush 1 - // 1c1: istore 12 - // 1c3: goto 1f3 - // 1c6: bipush 8 - // 1c8: istore 12 - // 1ca: goto 1f3 - // 1cd: bipush 9 - // 1cf: istore 12 - // 1d1: goto 1f3 - // 1d4: bipush 10 - // 1d6: istore 12 - // 1d8: goto 1f3 - // 1db: bipush 11 - // 1dd: istore 12 - // 1df: goto 1f3 - // 1e2: bipush 12 - // 1e4: istore 12 - // 1e6: goto 1f3 - // 1e9: bipush 13 - // 1eb: istore 12 - // 1ed: goto 1f3 - // 1f0: goto 04d - // 1f3: iload 12 - // 1f5: tableswitch -86 0 13 -352 -193 -137 -105 -124 -92 -80 -86 -74 -67 -40 -118 -33 -60 - // 23c: return - } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/bench/Calc.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/bench/Calc.dec index ac8f652d..fc3583a6 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/bench/Calc.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/bench/Calc.dec @@ -1,7 +1,7 @@ package pack.tests.bench; public class Calc { - public static int count; + public static int count = 0; public int BRANCHLOCK_DOT_NET_DEMO; public static void runAll() { @@ -46,232 +46,4 @@ public class Calc { count++; } - - static { - // $VF: Couldn't be decompiled - // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) - // java.lang.RuntimeException: parsing failure! - // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) - // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) - // - // Bytecode: - // 000: ldc "4ຼᅣ|:ᄆ'#ປ\r\u0013タO\u0019ᅰ\u000bl=\u0013\ufff5\ufff59$\ufff4=5ᄆ~vᅠ$3ᄊ=?←v9|:¦ᆭຸ;\ufff4\u0ebef→)iຸ7.າ0\u0ef8ᄆgbz`○຺" - // 002: invokevirtual java/lang/String.toCharArray ()[C - // 005: astore 0 - // 006: bipush 0 - // 007: istore 1 - // 008: aload 0 - // 009: dup - // 00a: bipush 37 - // 00c: swap - // 00d: bipush 25 - // 00f: caload - // 010: aload 0 - // 011: dup - // 012: bipush 25 - // 014: swap - // 015: bipush 37 - // 017: caload - // 018: castore - // 019: castore - // 01a: aload 0 - // 01b: dup - // 01c: bipush 28 - // 01e: swap - // 01f: bipush 7 - // 021: caload - // 022: aload 0 - // 023: dup - // 024: bipush 7 - // 026: swap - // 027: bipush 28 - // 029: caload - // 02a: castore - // 02b: castore - // 02c: aload 0 - // 02d: dup - // 02e: bipush 55 - // 030: swap - // 031: bipush 0 - // 032: caload - // 033: aload 0 - // 034: dup - // 035: bipush 0 - // 036: swap - // 037: bipush 55 - // 039: caload - // 03a: castore - // 03b: castore - // 03c: aload 0 - // 03d: dup - // 03e: bipush 60 - // 040: swap - // 041: bipush 102 - // 043: caload - // 044: aload 0 - // 045: dup - // 046: bipush 102 - // 048: swap - // 049: bipush 60 - // 04b: caload - // 04c: castore - // 04d: castore - // 04e: aload 0 - // 04f: dup - // 050: bipush 19 - // 052: swap - // 053: bipush 18 - // 055: caload - // 056: aload 0 - // 057: dup - // 058: bipush 18 - // 05a: swap - // 05b: bipush 19 - // 05d: caload - // 05e: castore - // 05f: castore - // 060: goto 165 - // 063: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; - // 066: bipush 0 - // 067: aaload - // 068: astore 4 - // 06a: aload 4 - // 06c: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; - // 06f: invokevirtual java/lang/String.hashCode ()I - // 072: ldc 65535 - // 074: iand - // 075: istore 5 - // 077: aload 4 - // 079: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; - // 07c: invokevirtual java/lang/String.toCharArray ()[C - // 07f: astore 6 - // 081: aload 0 - // 082: iload 1 - // 083: iinc 1 1 - // 086: caload - // 087: bipush 86 - // 089: ixor - // 08a: iload 5 - // 08c: ixor - // 08d: anewarray 72 - // 090: astore 7 - // 092: bipush 0 - // 093: istore 8 - // 095: aload 0 - // 096: iload 1 - // 097: iinc 1 1 - // 09a: caload - // 09b: bipush 19 - // 09d: ixor - // 09e: iload 5 - // 0a0: ixor - // 0a1: istore 2 - // 0a2: iload 2 - // 0a3: newarray 5 - // 0a5: astore 9 - // 0a7: bipush 0 - // 0a8: istore 10 - // 0aa: iload 2 - // 0ab: ifle 146 - // 0ae: aload 0 - // 0af: iload 1 - // 0b0: caload - // 0b1: istore 11 - // 0b3: aload 6 - // 0b5: iload 1 - // 0b6: aload 6 - // 0b8: arraylength - // 0b9: irem - // 0ba: caload - // 0bb: sipush 149 - // 0be: ixor - // 0bf: lookupswitch 113 13 187 252 214 233 225 169 229 182 230 195 240 201 244 214 246 220 247 239 249 245 251 259 253 266 254 273 - // 130: aload 9 - // 132: iload 10 - // 134: iload 11 - // 136: castore - // 137: iinc 10 1 - // 13a: iinc 1 1 - // 13d: iinc 2 -1 - // 140: bipush 0 - // 141: istore 12 - // 143: goto 1da - // 146: aload 7 - // 148: iload 8 - // 14a: iinc 8 1 - // 14d: new java/lang/String - // 150: dup - // 151: aload 9 - // 153: invokespecial java/lang/String. ([C)V - // 156: invokevirtual java/lang/String.intern ()Ljava/lang/String; - // 159: aastore - // 15a: iload 1 - // 15b: aload 0 - // 15c: arraylength - // 15d: if_icmplt 095 - // 160: aload 7 - // 162: putstatic pack/tests/bench/Calc.d [Ljava/lang/String; - // 165: goto 218 - // 168: iload 11 - // 16a: bipush -46 - // 16c: ixor - // 16d: istore 11 - // 16f: bipush 1 - // 170: istore 12 - // 172: goto 1da - // 175: iload 11 - // 177: bipush 86 - // 179: ixor - // 17a: istore 11 - // 17c: bipush 1 - // 17d: istore 12 - // 17f: goto 1da - // 182: bipush 2 - // 183: istore 12 - // 185: goto 1da - // 188: iload 11 - // 18a: bipush 29 - // 18c: ixor - // 18d: istore 11 - // 18f: bipush 1 - // 190: istore 12 - // 192: goto 1da - // 195: bipush 3 - // 196: istore 12 - // 198: goto 1da - // 19b: iload 11 - // 19d: bipush -121 - // 19f: ixor - // 1a0: istore 11 - // 1a2: bipush 1 - // 1a3: istore 12 - // 1a5: goto 1da - // 1a8: bipush 4 - // 1a9: istore 12 - // 1ab: goto 1da - // 1ae: bipush 5 - // 1af: istore 12 - // 1b1: goto 1da - // 1b4: bipush 6 - // 1b6: istore 12 - // 1b8: goto 1da - // 1bb: bipush 7 - // 1bd: istore 12 - // 1bf: goto 1da - // 1c2: bipush 8 - // 1c4: istore 12 - // 1c6: goto 1da - // 1c9: bipush 9 - // 1cb: istore 12 - // 1cd: goto 1da - // 1d0: bipush 10 - // 1d2: istore 12 - // 1d4: goto 1da - // 1d7: goto 063 - // 1da: iload 12 - // 1dc: tableswitch -33 0 10 -306 -172 -103 -90 -84 -116 -65 -71 -33 -26 -52 - // 218: bipush 0 - // 219: putstatic pack/tests/bench/Calc.count I - // 21c: return - } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/annot/annoe.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/annot/annoe.dec index 6aaf02ee..8749c248 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/annot/annoe.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/annot/annoe.dec @@ -6,7 +6,7 @@ public class annoe { @anno( val = "PASS" ) - private static final String fail; + private static final String fail = "WHAT"; public int BRANCHLOCK_DOT_NET_DEMO; public static Throwable P; @@ -31,218 +31,4 @@ public class annoe { public void dov() { System.out.println("FAIL"); } - - static { - // $VF: Couldn't be decompiled - // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) - // java.lang.RuntimeException: parsing failure! - // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) - // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) - // - // Bytecode: - // 000: ldc "]ວᄆໟວY\\^THA" - // 002: invokevirtual java/lang/String.toCharArray ()[C - // 005: astore 0 - // 006: bipush 0 - // 007: istore 1 - // 008: aload 0 - // 009: dup - // 00a: bipush 8 - // 00c: swap - // 00d: bipush 3 - // 00e: caload - // 00f: aload 0 - // 010: dup - // 011: bipush 3 - // 012: swap - // 013: bipush 8 - // 015: caload - // 016: castore - // 017: castore - // 018: aload 0 - // 019: dup - // 01a: bipush 6 - // 01c: swap - // 01d: bipush 4 - // 01e: caload - // 01f: aload 0 - // 020: dup - // 021: bipush 4 - // 022: swap - // 023: bipush 6 - // 025: caload - // 026: castore - // 027: castore - // 028: aload 0 - // 029: dup - // 02a: bipush 8 - // 02c: swap - // 02d: bipush 0 - // 02e: caload - // 02f: aload 0 - // 030: dup - // 031: bipush 0 - // 032: swap - // 033: bipush 8 - // 035: caload - // 036: castore - // 037: castore - // 038: aload 0 - // 039: dup - // 03a: bipush 2 - // 03b: swap - // 03c: bipush 11 - // 03e: caload - // 03f: aload 0 - // 040: dup - // 041: bipush 11 - // 043: swap - // 044: bipush 2 - // 045: caload - // 046: castore - // 047: castore - // 048: goto 14d - // 04b: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; - // 04e: bipush 0 - // 04f: aaload - // 050: astore 4 - // 052: aload 4 - // 054: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; - // 057: invokevirtual java/lang/String.hashCode ()I - // 05a: ldc 65535 - // 05c: iand - // 05d: istore 5 - // 05f: aload 4 - // 061: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; - // 064: invokevirtual java/lang/String.toCharArray ()[C - // 067: astore 6 - // 069: aload 0 - // 06a: iload 1 - // 06b: iinc 1 1 - // 06e: caload - // 06f: bipush 116 - // 071: ixor - // 072: iload 5 - // 074: ixor - // 075: anewarray 55 - // 078: astore 7 - // 07a: bipush 0 - // 07b: istore 8 - // 07d: aload 0 - // 07e: iload 1 - // 07f: iinc 1 1 - // 082: caload - // 083: bipush 10 - // 085: ixor - // 086: iload 5 - // 088: ixor - // 089: istore 2 - // 08a: iload 2 - // 08b: newarray 5 - // 08d: astore 9 - // 08f: bipush 0 - // 090: istore 10 - // 092: iload 2 - // 093: ifle 12e - // 096: aload 0 - // 097: iload 1 - // 098: caload - // 099: istore 11 - // 09b: aload 6 - // 09d: iload 1 - // 09e: aload 6 - // 0a0: arraylength - // 0a1: irem - // 0a2: caload - // 0a3: sipush 150 - // 0a6: ixor - // 0a7: lookupswitch 113 13 184 245 226 169 228 182 229 195 230 208 240 221 243 227 245 233 247 239 248 252 249 259 250 266 253 273 - // 118: aload 9 - // 11a: iload 10 - // 11c: iload 11 - // 11e: castore - // 11f: iinc 10 1 - // 122: iinc 1 1 - // 125: iinc 2 -1 - // 128: bipush 0 - // 129: istore 12 - // 12b: goto 1c2 - // 12e: aload 7 - // 130: iload 8 - // 132: iinc 8 1 - // 135: new java/lang/String - // 138: dup - // 139: aload 9 - // 13b: invokespecial java/lang/String. ([C)V - // 13e: invokevirtual java/lang/String.intern ()Ljava/lang/String; - // 141: aastore - // 142: iload 1 - // 143: aload 0 - // 144: arraylength - // 145: if_icmplt 07d - // 148: aload 7 - // 14a: putstatic pack/tests/reflects/annot/annoe.d [Ljava/lang/String; - // 14d: goto 200 - // 150: iload 11 - // 152: bipush 21 - // 154: ixor - // 155: istore 11 - // 157: bipush 1 - // 158: istore 12 - // 15a: goto 1c2 - // 15d: iload 11 - // 15f: bipush 56 - // 161: ixor - // 162: istore 11 - // 164: bipush 1 - // 165: istore 12 - // 167: goto 1c2 - // 16a: iload 11 - // 16c: bipush 9 - // 16e: ixor - // 16f: istore 11 - // 171: bipush 1 - // 172: istore 12 - // 174: goto 1c2 - // 177: iload 11 - // 179: bipush -9 - // 17b: ixor - // 17c: istore 11 - // 17e: bipush 1 - // 17f: istore 12 - // 181: goto 1c2 - // 184: bipush 2 - // 185: istore 12 - // 187: goto 1c2 - // 18a: bipush 3 - // 18b: istore 12 - // 18d: goto 1c2 - // 190: bipush 4 - // 191: istore 12 - // 193: goto 1c2 - // 196: bipush 5 - // 197: istore 12 - // 199: goto 1c2 - // 19c: bipush 6 - // 19e: istore 12 - // 1a0: goto 1c2 - // 1a3: bipush 7 - // 1a5: istore 12 - // 1a7: goto 1c2 - // 1aa: bipush 8 - // 1ac: istore 12 - // 1ae: goto 1c2 - // 1b1: bipush 9 - // 1b3: istore 12 - // 1b5: goto 1c2 - // 1b8: bipush 10 - // 1ba: istore 12 - // 1bc: goto 1c2 - // 1bf: goto 04b - // 1c2: iload 12 - // 1c4: tableswitch -40 0 10 -306 -172 -77 -116 -64 -103 -58 -90 -33 -40 -19 - // 200: ldc "WHAT" - // 202: putstatic pack/tests/reflects/annot/annoe.fail Ljava/lang/String; - // 205: return - } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/annot/annot.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/annot/annot.dec index c1b98c3c..9f73641a 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/annot/annot.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/annot/annot.dec @@ -16,202 +16,4 @@ public class annot { } } } - - static { - // $VF: Couldn't be decompiled - // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) - // java.lang.RuntimeException: parsing failure! - // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) - // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) - // - // Bytecode: - // 000: ldc "ᄏ๊วᄃᄆ" - // 002: invokevirtual java/lang/String.toCharArray ()[C - // 005: astore 0 - // 006: bipush 0 - // 007: istore 1 - // 008: aload 0 - // 009: dup - // 00a: bipush 2 - // 00b: swap - // 00c: bipush 0 - // 00d: caload - // 00e: aload 0 - // 00f: dup - // 010: bipush 0 - // 011: swap - // 012: bipush 2 - // 013: caload - // 014: castore - // 015: castore - // 016: aload 0 - // 017: dup - // 018: bipush 4 - // 019: swap - // 01a: bipush 5 - // 01b: caload - // 01c: aload 0 - // 01d: dup - // 01e: bipush 5 - // 01f: swap - // 020: bipush 4 - // 021: caload - // 022: castore - // 023: castore - // 024: aload 0 - // 025: dup - // 026: bipush 2 - // 027: swap - // 028: bipush 3 - // 029: caload - // 02a: aload 0 - // 02b: dup - // 02c: bipush 3 - // 02d: swap - // 02e: bipush 2 - // 02f: caload - // 030: castore - // 031: castore - // 032: goto 139 - // 035: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; - // 038: bipush 0 - // 039: aaload - // 03a: astore 4 - // 03c: aload 4 - // 03e: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; - // 041: invokevirtual java/lang/String.hashCode ()I - // 044: ldc 65535 - // 046: iand - // 047: istore 5 - // 049: aload 4 - // 04b: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; - // 04e: invokevirtual java/lang/String.toCharArray ()[C - // 051: astore 6 - // 053: aload 0 - // 054: iload 1 - // 055: iinc 1 1 - // 058: caload - // 059: sipush 143 - // 05c: ixor - // 05d: iload 5 - // 05f: ixor - // 060: anewarray 40 - // 063: astore 7 - // 065: bipush 0 - // 066: istore 8 - // 068: aload 0 - // 069: iload 1 - // 06a: iinc 1 1 - // 06d: caload - // 06e: sipush 224 - // 071: ixor - // 072: iload 5 - // 074: ixor - // 075: istore 2 - // 076: iload 2 - // 077: newarray 5 - // 079: astore 9 - // 07b: bipush 0 - // 07c: istore 10 - // 07e: iload 2 - // 07f: ifle 11a - // 082: aload 0 - // 083: iload 1 - // 084: caload - // 085: istore 11 - // 087: aload 6 - // 089: iload 1 - // 08a: aload 6 - // 08c: arraylength - // 08d: irem - // 08e: caload - // 08f: bipush 68 - // 091: ixor - // 092: lookupswitch 114 13 33 170 34 183 37 196 39 209 40 215 42 227 43 233 47 240 48 247 52 254 54 267 55 274 106 221 - // 104: aload 9 - // 106: iload 10 - // 108: iload 11 - // 10a: castore - // 10b: iinc 10 1 - // 10e: iinc 1 1 - // 111: iinc 2 -1 - // 114: bipush 0 - // 115: istore 12 - // 117: goto 1ae - // 11a: aload 7 - // 11c: iload 8 - // 11e: iinc 8 1 - // 121: new java/lang/String - // 124: dup - // 125: aload 9 - // 127: invokespecial java/lang/String. ([C)V - // 12a: invokevirtual java/lang/String.intern ()Ljava/lang/String; - // 12d: aastore - // 12e: iload 1 - // 12f: aload 0 - // 130: arraylength - // 131: if_icmplt 068 - // 134: aload 7 - // 136: putstatic pack/tests/reflects/annot/annot.d [Ljava/lang/String; - // 139: goto 1ec - // 13c: iload 11 - // 13e: bipush -96 - // 140: ixor - // 141: istore 11 - // 143: bipush 1 - // 144: istore 12 - // 146: goto 1ae - // 149: iload 11 - // 14b: bipush -5 - // 14d: ixor - // 14e: istore 11 - // 150: bipush 1 - // 151: istore 12 - // 153: goto 1ae - // 156: iload 11 - // 158: bipush -62 - // 15a: ixor - // 15b: istore 11 - // 15d: bipush 1 - // 15e: istore 12 - // 160: goto 1ae - // 163: bipush 2 - // 164: istore 12 - // 166: goto 1ae - // 169: bipush 3 - // 16a: istore 12 - // 16c: goto 1ae - // 16f: bipush 4 - // 170: istore 12 - // 172: goto 1ae - // 175: bipush 5 - // 176: istore 12 - // 178: goto 1ae - // 17b: bipush 6 - // 17d: istore 12 - // 17f: goto 1ae - // 182: bipush 7 - // 184: istore 12 - // 186: goto 1ae - // 189: bipush 8 - // 18b: istore 12 - // 18d: goto 1ae - // 190: iload 11 - // 192: bipush 19 - // 194: ixor - // 195: istore 11 - // 197: bipush 1 - // 198: istore 12 - // 19a: goto 1ae - // 19d: bipush 9 - // 19f: istore 12 - // 1a1: goto 1ae - // 1a4: bipush 10 - // 1a6: istore 12 - // 1a8: goto 1ae - // 1ab: goto 035 - // 1ae: iload 12 - // 1b0: tableswitch -53 0 10 -306 -172 -90 -116 -77 -71 -65 -53 -46 -39 -103 - // 1ec: return - } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/counter/Count.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/counter/Count.dec index 9bf952cc..9bf40bf9 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/counter/Count.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/counter/Count.dec @@ -13,236 +13,4 @@ public class Count { System.out.println("FAIL"); } } - - static { - // $VF: Couldn't be decompiled - // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) - // java.lang.RuntimeException: parsing failure! - // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) - // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) - // - // Bytecode: - // 000: ldc "ムฉ\u0e79ヤヒ&ฉ゙4ヒ\ufff9" - // 002: invokevirtual java/lang/String.toCharArray ()[C - // 005: astore 0 - // 006: bipush 0 - // 007: istore 1 - // 008: aload 0 - // 009: dup - // 00a: bipush 9 - // 00c: swap - // 00d: bipush 0 - // 00e: caload - // 00f: aload 0 - // 010: dup - // 011: bipush 0 - // 012: swap - // 013: bipush 9 - // 015: caload - // 016: castore - // 017: castore - // 018: aload 0 - // 019: dup - // 01a: bipush 10 - // 01c: swap - // 01d: bipush 3 - // 01e: caload - // 01f: aload 0 - // 020: dup - // 021: bipush 3 - // 022: swap - // 023: bipush 10 - // 025: caload - // 026: castore - // 027: castore - // 028: aload 0 - // 029: dup - // 02a: bipush 2 - // 02b: swap - // 02c: bipush 0 - // 02d: caload - // 02e: aload 0 - // 02f: dup - // 030: bipush 0 - // 031: swap - // 032: bipush 2 - // 033: caload - // 034: castore - // 035: castore - // 036: aload 0 - // 037: dup - // 038: bipush 10 - // 03a: swap - // 03b: bipush 19 - // 03d: caload - // 03e: aload 0 - // 03f: dup - // 040: bipush 19 - // 042: swap - // 043: bipush 10 - // 045: caload - // 046: castore - // 047: castore - // 048: aload 0 - // 049: dup - // 04a: bipush 9 - // 04c: swap - // 04d: bipush 5 - // 04e: caload - // 04f: aload 0 - // 050: dup - // 051: bipush 5 - // 052: swap - // 053: bipush 9 - // 055: caload - // 056: castore - // 057: castore - // 058: goto 171 - // 05b: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; - // 05e: bipush 0 - // 05f: aaload - // 060: astore 4 - // 062: aload 4 - // 064: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; - // 067: invokevirtual java/lang/String.hashCode ()I - // 06a: ldc 65535 - // 06c: iand - // 06d: istore 5 - // 06f: aload 4 - // 071: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; - // 074: invokevirtual java/lang/String.toCharArray ()[C - // 077: astore 6 - // 079: aload 0 - // 07a: iload 1 - // 07b: iinc 1 1 - // 07e: caload - // 07f: sipush 210 - // 082: ixor - // 083: iload 5 - // 085: ixor - // 086: anewarray 50 - // 089: astore 7 - // 08b: bipush 0 - // 08c: istore 8 - // 08e: aload 0 - // 08f: iload 1 - // 090: iinc 1 1 - // 093: caload - // 094: sipush 164 - // 097: ixor - // 098: iload 5 - // 09a: ixor - // 09b: istore 2 - // 09c: iload 2 - // 09d: newarray 5 - // 09f: astore 9 - // 0a1: bipush 0 - // 0a2: istore 10 - // 0a4: iload 2 - // 0a5: ifle 152 - // 0a8: aload 0 - // 0a9: iload 1 - // 0aa: caload - // 0ab: istore 11 - // 0ad: aload 6 - // 0af: iload 1 - // 0b0: aload 6 - // 0b2: arraylength - // 0b3: irem - // 0b4: caload - // 0b5: sipush 233 - // 0b8: ixor - // 0b9: lookupswitch 131 15 130 187 133 200 134 213 135 232 136 238 138 244 140 263 143 270 153 277 154 284 155 291 156 298 157 305 170 250 199 219 - // 13c: aload 9 - // 13e: iload 10 - // 140: iload 11 - // 142: castore - // 143: iinc 10 1 - // 146: iinc 1 1 - // 149: iinc 2 -1 - // 14c: bipush 0 - // 14d: istore 12 - // 14f: goto 1f4 - // 152: aload 7 - // 154: iload 8 - // 156: iinc 8 1 - // 159: new java/lang/String - // 15c: dup - // 15d: aload 9 - // 15f: invokespecial java/lang/String. ([C)V - // 162: invokevirtual java/lang/String.intern ()Ljava/lang/String; - // 165: aastore - // 166: iload 1 - // 167: aload 0 - // 168: arraylength - // 169: if_icmplt 08e - // 16c: aload 7 - // 16e: putstatic pack/tests/reflects/counter/Count.d [Ljava/lang/String; - // 171: goto 238 - // 174: iload 11 - // 176: bipush -72 - // 178: ixor - // 179: istore 11 - // 17b: bipush 1 - // 17c: istore 12 - // 17e: goto 1f4 - // 181: iload 11 - // 183: bipush -37 - // 185: ixor - // 186: istore 11 - // 188: bipush 1 - // 189: istore 12 - // 18b: goto 1f4 - // 18e: bipush 2 - // 18f: istore 12 - // 191: goto 1f4 - // 194: iload 11 - // 196: bipush -40 - // 198: ixor - // 199: istore 11 - // 19b: bipush 1 - // 19c: istore 12 - // 19e: goto 1f4 - // 1a1: bipush 3 - // 1a2: istore 12 - // 1a4: goto 1f4 - // 1a7: bipush 4 - // 1a8: istore 12 - // 1aa: goto 1f4 - // 1ad: bipush 5 - // 1ae: istore 12 - // 1b0: goto 1f4 - // 1b3: iload 11 - // 1b5: bipush 117 - // 1b7: ixor - // 1b8: istore 11 - // 1ba: bipush 1 - // 1bb: istore 12 - // 1bd: goto 1f4 - // 1c0: bipush 6 - // 1c2: istore 12 - // 1c4: goto 1f4 - // 1c7: bipush 7 - // 1c9: istore 12 - // 1cb: goto 1f4 - // 1ce: bipush 8 - // 1d0: istore 12 - // 1d2: goto 1f4 - // 1d5: bipush 9 - // 1d7: istore 12 - // 1d9: goto 1f4 - // 1dc: bipush 10 - // 1de: istore 12 - // 1e0: goto 1f4 - // 1e3: bipush 11 - // 1e5: istore 12 - // 1e7: goto 1f4 - // 1ea: bipush 12 - // 1ec: istore 12 - // 1ee: goto 1f4 - // 1f1: goto 05b - // 1f4: iload 12 - // 1f6: tableswitch -85 0 12 -338 -186 -117 -130 -85 -104 -98 -54 -73 -47 -67 -79 -26 - // 238: return - } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/field/FTest.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/field/FTest.dec index 2f7ff1fe..9d4895c1 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/field/FTest.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/field/FTest.dec @@ -34,222 +34,4 @@ public class FTest { } } } - - static { - // $VF: Couldn't be decompiled - // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) - // java.lang.RuntimeException: parsing failure! - // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) - // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) - // - // Bytecode: - // 000: ldc "\u0e79\u0e7eᄏ@@\u0e79ハeww๕J3mロ\u0e7cᄈ" - // 002: invokevirtual java/lang/String.toCharArray ()[C - // 005: astore 0 - // 006: bipush 0 - // 007: istore 1 - // 008: aload 0 - // 009: dup - // 00a: bipush 4 - // 00b: swap - // 00c: bipush 3 - // 00d: caload - // 00e: aload 0 - // 00f: dup - // 010: bipush 3 - // 011: swap - // 012: bipush 4 - // 013: caload - // 014: castore - // 015: castore - // 016: aload 0 - // 017: dup - // 018: bipush 12 - // 01a: swap - // 01b: bipush 14 - // 01d: caload - // 01e: aload 0 - // 01f: dup - // 020: bipush 14 - // 022: swap - // 023: bipush 12 - // 025: caload - // 026: castore - // 027: castore - // 028: aload 0 - // 029: dup - // 02a: bipush 10 - // 02c: swap - // 02d: bipush 0 - // 02e: caload - // 02f: aload 0 - // 030: dup - // 031: bipush 0 - // 032: swap - // 033: bipush 10 - // 035: caload - // 036: castore - // 037: castore - // 038: aload 0 - // 039: dup - // 03a: bipush 5 - // 03b: swap - // 03c: bipush 18 - // 03e: caload - // 03f: aload 0 - // 040: dup - // 041: bipush 18 - // 043: swap - // 044: bipush 5 - // 045: caload - // 046: castore - // 047: castore - // 048: goto 161 - // 04b: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; - // 04e: bipush 0 - // 04f: aaload - // 050: astore 4 - // 052: aload 4 - // 054: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; - // 057: invokevirtual java/lang/String.hashCode ()I - // 05a: ldc 65535 - // 05c: iand - // 05d: istore 5 - // 05f: aload 4 - // 061: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; - // 064: invokevirtual java/lang/String.toCharArray ()[C - // 067: astore 6 - // 069: aload 0 - // 06a: iload 1 - // 06b: iinc 1 1 - // 06e: caload - // 06f: sipush 248 - // 072: ixor - // 073: iload 5 - // 075: ixor - // 076: anewarray 92 - // 079: astore 7 - // 07b: bipush 0 - // 07c: istore 8 - // 07e: aload 0 - // 07f: iload 1 - // 080: iinc 1 1 - // 083: caload - // 084: sipush 212 - // 087: ixor - // 088: iload 5 - // 08a: ixor - // 08b: istore 2 - // 08c: iload 2 - // 08d: newarray 5 - // 08f: astore 9 - // 091: bipush 0 - // 092: istore 10 - // 094: iload 2 - // 095: ifle 142 - // 098: aload 0 - // 099: iload 1 - // 09a: caload - // 09b: istore 11 - // 09d: aload 6 - // 09f: iload 1 - // 0a0: aload 6 - // 0a2: arraylength - // 0a3: irem - // 0a4: caload - // 0a5: bipush 89 - // 0a7: ixor - // 0a8: lookupswitch 132 15 13 233 31 306 41 188 42 201 43 214 45 227 48 239 50 245 53 251 56 265 58 272 60 285 61 292 63 299 119 258 - // 12c: aload 9 - // 12e: iload 10 - // 130: iload 11 - // 132: castore - // 133: iinc 10 1 - // 136: iinc 1 1 - // 139: iinc 2 -1 - // 13c: bipush 0 - // 13d: istore 12 - // 13f: goto 1e4 - // 142: aload 7 - // 144: iload 8 - // 146: iinc 8 1 - // 149: new java/lang/String - // 14c: dup - // 14d: aload 9 - // 14f: invokespecial java/lang/String. ([C)V - // 152: invokevirtual java/lang/String.intern ()Ljava/lang/String; - // 155: aastore - // 156: iload 1 - // 157: aload 0 - // 158: arraylength - // 159: if_icmplt 07e - // 15c: aload 7 - // 15e: putstatic pack/tests/reflects/field/FTest.d [Ljava/lang/String; - // 161: goto 228 - // 164: iload 11 - // 166: bipush 127 - // 168: ixor - // 169: istore 11 - // 16b: bipush 1 - // 16c: istore 12 - // 16e: goto 1e4 - // 171: iload 11 - // 173: bipush 36 - // 175: ixor - // 176: istore 11 - // 178: bipush 1 - // 179: istore 12 - // 17b: goto 1e4 - // 17e: iload 11 - // 180: bipush 12 - // 182: ixor - // 183: istore 11 - // 185: bipush 1 - // 186: istore 12 - // 188: goto 1e4 - // 18b: bipush 2 - // 18c: istore 12 - // 18e: goto 1e4 - // 191: bipush 3 - // 192: istore 12 - // 194: goto 1e4 - // 197: bipush 4 - // 198: istore 12 - // 19a: goto 1e4 - // 19d: bipush 5 - // 19e: istore 12 - // 1a0: goto 1e4 - // 1a3: bipush 6 - // 1a5: istore 12 - // 1a7: goto 1e4 - // 1aa: bipush 7 - // 1ac: istore 12 - // 1ae: goto 1e4 - // 1b1: bipush 8 - // 1b3: istore 12 - // 1b5: goto 1e4 - // 1b8: iload 11 - // 1ba: bipush -38 - // 1bc: ixor - // 1bd: istore 11 - // 1bf: bipush 1 - // 1c0: istore 12 - // 1c2: goto 1e4 - // 1c5: bipush 9 - // 1c7: istore 12 - // 1c9: goto 1e4 - // 1cc: bipush 10 - // 1ce: istore 12 - // 1d0: goto 1e4 - // 1d3: bipush 11 - // 1d5: istore 12 - // 1d7: goto 1e4 - // 1da: bipush 12 - // 1dc: istore 12 - // 1de: goto 1e4 - // 1e1: goto 04b - // 1e4: iload 12 - // 1e6: tableswitch -338 0 12 -338 -186 -117 -104 -130 -91 -79 -73 -67 -46 -33 -60 -53 - // 228: return - } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/loader/LRun.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/loader/LRun.dec index 537088f8..ba93fb7b 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/loader/LRun.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/loader/LRun.dec @@ -9,242 +9,4 @@ public class LRun { Object var3 = var2.newInstance(); var2.getMethod("run").invoke(var3); } - - static { - // $VF: Couldn't be decompiled - // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) - // java.lang.RuntimeException: parsing failure! - // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) - // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) - // - // Bytecode: - // 000: ldc "rตMlQึ\u0e69]_W\u0011vgqvS\u0011NYYnY_qm,qS]}Yp\u0012sMZOv" - // 002: invokevirtual java/lang/String.toCharArray ()[C - // 005: astore 0 - // 006: bipush 0 - // 007: istore 1 - // 008: aload 0 - // 009: dup - // 00a: bipush 24 - // 00c: swap - // 00d: bipush 23 - // 00f: caload - // 010: aload 0 - // 011: dup - // 012: bipush 23 - // 014: swap - // 015: bipush 24 - // 017: caload - // 018: castore - // 019: castore - // 01a: aload 0 - // 01b: dup - // 01c: bipush 26 - // 01e: swap - // 01f: bipush 15 - // 021: caload - // 022: aload 0 - // 023: dup - // 024: bipush 15 - // 026: swap - // 027: bipush 26 - // 029: caload - // 02a: castore - // 02b: castore - // 02c: aload 0 - // 02d: dup - // 02e: bipush 6 - // 030: swap - // 031: bipush 0 - // 032: caload - // 033: aload 0 - // 034: dup - // 035: bipush 0 - // 036: swap - // 037: bipush 6 - // 039: caload - // 03a: castore - // 03b: castore - // 03c: aload 0 - // 03d: dup - // 03e: bipush 24 - // 040: swap - // 041: bipush 52 - // 043: caload - // 044: aload 0 - // 045: dup - // 046: bipush 52 - // 048: swap - // 049: bipush 24 - // 04b: caload - // 04c: castore - // 04d: castore - // 04e: aload 0 - // 04f: dup - // 050: bipush 36 - // 052: swap - // 053: bipush 34 - // 055: caload - // 056: aload 0 - // 057: dup - // 058: bipush 34 - // 05a: swap - // 05b: bipush 36 - // 05d: caload - // 05e: castore - // 05f: castore - // 060: goto 189 - // 063: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; - // 066: bipush 0 - // 067: aaload - // 068: astore 4 - // 06a: aload 4 - // 06c: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; - // 06f: invokevirtual java/lang/String.hashCode ()I - // 072: ldc 65535 - // 074: iand - // 075: istore 5 - // 077: aload 4 - // 079: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; - // 07c: invokevirtual java/lang/String.toCharArray ()[C - // 07f: astore 6 - // 081: aload 0 - // 082: iload 1 - // 083: iinc 1 1 - // 086: caload - // 087: sipush 194 - // 08a: ixor - // 08b: iload 5 - // 08d: ixor - // 08e: anewarray 42 - // 091: astore 7 - // 093: bipush 0 - // 094: istore 8 - // 096: aload 0 - // 097: iload 1 - // 098: iinc 1 1 - // 09b: caload - // 09c: sipush 191 - // 09f: ixor - // 0a0: iload 5 - // 0a2: ixor - // 0a3: istore 2 - // 0a4: iload 2 - // 0a5: newarray 5 - // 0a7: astore 9 - // 0a9: bipush 0 - // 0aa: istore 10 - // 0ac: iload 2 - // 0ad: ifle 16a - // 0b0: aload 0 - // 0b1: iload 1 - // 0b2: caload - // 0b3: istore 11 - // 0b5: aload 6 - // 0b7: iload 1 - // 0b8: aload 6 - // 0ba: arraylength - // 0bb: irem - // 0bc: caload - // 0bd: sipush 162 - // 0c0: ixor - // 0c1: lookupswitch 147 17 140 266 193 203 195 216 196 229 198 241 199 254 201 260 204 272 205 278 206 285 208 299 209 313 210 320 214 327 215 334 238 292 240 306 - // 154: aload 9 - // 156: iload 10 - // 158: iload 11 - // 15a: castore - // 15b: iinc 10 1 - // 15e: iinc 1 1 - // 161: iinc 2 -1 - // 164: bipush 0 - // 165: istore 12 - // 167: goto 219 - // 16a: aload 7 - // 16c: iload 8 - // 16e: iinc 8 1 - // 171: new java/lang/String - // 174: dup - // 175: aload 9 - // 177: invokespecial java/lang/String. ([C)V - // 17a: invokevirtual java/lang/String.intern ()Ljava/lang/String; - // 17d: aastore - // 17e: iload 1 - // 17f: aload 0 - // 180: arraylength - // 181: if_icmplt 096 - // 184: aload 7 - // 186: putstatic pack/tests/reflects/loader/LRun.d [Ljava/lang/String; - // 189: goto 264 - // 18c: iload 11 - // 18e: bipush 63 - // 190: ixor - // 191: istore 11 - // 193: bipush 1 - // 194: istore 12 - // 196: goto 219 - // 199: iload 11 - // 19b: bipush 60 - // 19d: ixor - // 19e: istore 11 - // 1a0: bipush 1 - // 1a1: istore 12 - // 1a3: goto 219 - // 1a6: iload 11 - // 1a8: bipush 2 - // 1a9: ixor - // 1aa: istore 11 - // 1ac: bipush 1 - // 1ad: istore 12 - // 1af: goto 219 - // 1b2: iload 11 - // 1b4: bipush 25 - // 1b6: ixor - // 1b7: istore 11 - // 1b9: bipush 1 - // 1ba: istore 12 - // 1bc: goto 219 - // 1bf: bipush 2 - // 1c0: istore 12 - // 1c2: goto 219 - // 1c5: bipush 3 - // 1c6: istore 12 - // 1c8: goto 219 - // 1cb: bipush 4 - // 1cc: istore 12 - // 1ce: goto 219 - // 1d1: bipush 5 - // 1d2: istore 12 - // 1d4: goto 219 - // 1d7: bipush 6 - // 1d9: istore 12 - // 1db: goto 219 - // 1de: bipush 7 - // 1e0: istore 12 - // 1e2: goto 219 - // 1e5: bipush 8 - // 1e7: istore 12 - // 1e9: goto 219 - // 1ec: bipush 9 - // 1ee: istore 12 - // 1f0: goto 219 - // 1f3: bipush 10 - // 1f5: istore 12 - // 1f7: goto 219 - // 1fa: bipush 11 - // 1fc: istore 12 - // 1fe: goto 219 - // 201: bipush 12 - // 203: istore 12 - // 205: goto 219 - // 208: bipush 13 - // 20a: istore 12 - // 20c: goto 219 - // 20f: bipush 14 - // 211: istore 12 - // 213: goto 219 - // 216: goto 063 - // 219: iload 12 - // 21b: tableswitch -199 0 14 -367 -199 -117 -105 -143 -130 -74 -92 -68 -61 -54 -40 -47 -33 -86 - // 264: return - } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/loader/LTest.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/loader/LTest.dec index 66415037..2e1f93ae 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/loader/LTest.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/loader/LTest.dec @@ -21,194 +21,4 @@ public class LTest { public void run() { System.out.println(new String(readAllBytes(LTest.class.getResourceAsStream("TEST")))); } - - static { - // $VF: Couldn't be decompiled - // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) - // java.lang.RuntimeException: parsing failure! - // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) - // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) - // - // Bytecode: - // 000: ldc "\uffd0ໆZᅥศZ" - // 002: invokevirtual java/lang/String.toCharArray ()[C - // 005: astore 0 - // 006: bipush 0 - // 007: istore 1 - // 008: aload 0 - // 009: dup - // 00a: bipush 4 - // 00b: swap - // 00c: bipush 0 - // 00d: caload - // 00e: aload 0 - // 00f: dup - // 010: bipush 0 - // 011: swap - // 012: bipush 4 - // 013: caload - // 014: castore - // 015: castore - // 016: aload 0 - // 017: dup - // 018: bipush 3 - // 019: swap - // 01a: bipush 6 - // 01c: caload - // 01d: aload 0 - // 01e: dup - // 01f: bipush 6 - // 021: swap - // 022: bipush 3 - // 023: caload - // 024: castore - // 025: castore - // 026: goto 13d - // 029: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; - // 02c: bipush 0 - // 02d: aaload - // 02e: astore 4 - // 030: aload 4 - // 032: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; - // 035: invokevirtual java/lang/String.hashCode ()I - // 038: ldc 65535 - // 03a: iand - // 03b: istore 5 - // 03d: aload 4 - // 03f: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; - // 042: invokevirtual java/lang/String.toCharArray ()[C - // 045: astore 6 - // 047: aload 0 - // 048: iload 1 - // 049: iinc 1 1 - // 04c: caload - // 04d: sipush 128 - // 050: ixor - // 051: iload 5 - // 053: ixor - // 054: anewarray 40 - // 057: astore 7 - // 059: bipush 0 - // 05a: istore 8 - // 05c: aload 0 - // 05d: iload 1 - // 05e: iinc 1 1 - // 061: caload - // 062: bipush 107 - // 064: ixor - // 065: iload 5 - // 067: ixor - // 068: istore 2 - // 069: iload 2 - // 06a: newarray 5 - // 06c: astore 9 - // 06e: bipush 0 - // 06f: istore 10 - // 071: iload 2 - // 072: ifle 11e - // 075: aload 0 - // 076: iload 1 - // 077: caload - // 078: istore 11 - // 07a: aload 6 - // 07c: iload 1 - // 07d: aload 6 - // 07f: arraylength - // 080: irem - // 081: caload - // 082: bipush 49 - // 084: ixor - // 085: lookupswitch 131 15 31 305 65 187 66 200 67 213 69 219 80 238 82 244 84 250 85 263 87 270 90 277 93 284 94 298 101 232 125 291 - // 108: aload 9 - // 10a: iload 10 - // 10c: iload 11 - // 10e: castore - // 10f: iinc 10 1 - // 112: iinc 1 1 - // 115: iinc 2 -1 - // 118: bipush 0 - // 119: istore 12 - // 11b: goto 1c0 - // 11e: aload 7 - // 120: iload 8 - // 122: iinc 8 1 - // 125: new java/lang/String - // 128: dup - // 129: aload 9 - // 12b: invokespecial java/lang/String. ([C)V - // 12e: invokevirtual java/lang/String.intern ()Ljava/lang/String; - // 131: aastore - // 132: iload 1 - // 133: aload 0 - // 134: arraylength - // 135: if_icmplt 05c - // 138: aload 7 - // 13a: putstatic pack/tests/reflects/loader/LTest.d [Ljava/lang/String; - // 13d: goto 204 - // 140: iload 11 - // 142: bipush -125 - // 144: ixor - // 145: istore 11 - // 147: bipush 1 - // 148: istore 12 - // 14a: goto 1c0 - // 14d: iload 11 - // 14f: bipush 68 - // 151: ixor - // 152: istore 11 - // 154: bipush 1 - // 155: istore 12 - // 157: goto 1c0 - // 15a: bipush 2 - // 15b: istore 12 - // 15d: goto 1c0 - // 160: iload 11 - // 162: bipush 14 - // 164: ixor - // 165: istore 11 - // 167: bipush 1 - // 168: istore 12 - // 16a: goto 1c0 - // 16d: bipush 3 - // 16e: istore 12 - // 170: goto 1c0 - // 173: bipush 4 - // 174: istore 12 - // 176: goto 1c0 - // 179: bipush 5 - // 17a: istore 12 - // 17c: goto 1c0 - // 17f: iload 11 - // 181: bipush 23 - // 183: ixor - // 184: istore 11 - // 186: bipush 1 - // 187: istore 12 - // 189: goto 1c0 - // 18c: bipush 6 - // 18e: istore 12 - // 190: goto 1c0 - // 193: bipush 7 - // 195: istore 12 - // 197: goto 1c0 - // 19a: bipush 8 - // 19c: istore 12 - // 19e: goto 1c0 - // 1a1: bipush 9 - // 1a3: istore 12 - // 1a5: goto 1c0 - // 1a8: bipush 10 - // 1aa: istore 12 - // 1ac: goto 1c0 - // 1af: bipush 11 - // 1b1: istore 12 - // 1b3: goto 1c0 - // 1b6: bipush 12 - // 1b8: istore 12 - // 1ba: goto 1c0 - // 1bd: goto 029 - // 1c0: iload 12 - // 1c2: tableswitch -104 0 12 -337 -186 -117 -104 -130 -98 -73 -67 -79 -54 -33 -40 -19 - // 204: return - } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/loader/Loader.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/loader/Loader.dec index 98a15d34..cfe238f9 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/loader/Loader.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/loader/Loader.dec @@ -29,233 +29,4 @@ public class Loader extends ClassLoader { byte[] var2 = readAllBytes(Loader.class.getClassLoader().getResourceAsStream("pack/tests/reflects/loader/LTest.class")); return this.defineClass(var1, var2, 0, var2.length); } - - static { - // $VF: Couldn't be decompiled - // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) - // java.lang.RuntimeException: parsing failure! - // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) - // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) - // - // Bytecode: - // 000: ldc "ᅲᅲO^ู\uffc9ฑKᅵHฑ" - // 002: invokevirtual java/lang/String.toCharArray ()[C - // 005: astore 0 - // 006: bipush 0 - // 007: istore 1 - // 008: aload 0 - // 009: dup - // 00a: bipush 10 - // 00c: swap - // 00d: bipush 4 - // 00e: caload - // 00f: aload 0 - // 010: dup - // 011: bipush 4 - // 012: swap - // 013: bipush 10 - // 015: caload - // 016: castore - // 017: castore - // 018: aload 0 - // 019: dup - // 01a: bipush 4 - // 01b: swap - // 01c: bipush 1 - // 01d: caload - // 01e: aload 0 - // 01f: dup - // 020: bipush 1 - // 021: swap - // 022: bipush 4 - // 023: caload - // 024: castore - // 025: castore - // 026: aload 0 - // 027: dup - // 028: bipush 10 - // 02a: swap - // 02b: bipush 0 - // 02c: caload - // 02d: aload 0 - // 02e: dup - // 02f: bipush 0 - // 030: swap - // 031: bipush 10 - // 033: caload - // 034: castore - // 035: castore - // 036: aload 0 - // 037: dup - // 038: bipush 3 - // 039: swap - // 03a: bipush 13 - // 03c: caload - // 03d: aload 0 - // 03e: dup - // 03f: bipush 13 - // 041: swap - // 042: bipush 3 - // 043: caload - // 044: castore - // 045: castore - // 046: aload 0 - // 047: dup - // 048: bipush 1 - // 049: swap - // 04a: bipush 8 - // 04c: caload - // 04d: aload 0 - // 04e: dup - // 04f: bipush 8 - // 051: swap - // 052: bipush 1 - // 053: caload - // 054: castore - // 055: castore - // 056: goto 165 - // 059: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; - // 05c: bipush 0 - // 05d: aaload - // 05e: astore 4 - // 060: aload 4 - // 062: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; - // 065: invokevirtual java/lang/String.hashCode ()I - // 068: ldc 65535 - // 06a: iand - // 06b: istore 5 - // 06d: aload 4 - // 06f: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; - // 072: invokevirtual java/lang/String.toCharArray ()[C - // 075: astore 6 - // 077: aload 0 - // 078: iload 1 - // 079: iinc 1 1 - // 07c: caload - // 07d: sipush 146 - // 080: ixor - // 081: iload 5 - // 083: ixor - // 084: anewarray 37 - // 087: astore 7 - // 089: bipush 0 - // 08a: istore 8 - // 08c: aload 0 - // 08d: iload 1 - // 08e: iinc 1 1 - // 091: caload - // 092: sipush 188 - // 095: ixor - // 096: iload 5 - // 098: ixor - // 099: istore 2 - // 09a: iload 2 - // 09b: newarray 5 - // 09d: astore 9 - // 09f: bipush 0 - // 0a0: istore 10 - // 0a2: iload 2 - // 0a3: ifle 146 - // 0a6: aload 0 - // 0a7: iload 1 - // 0a8: caload - // 0a9: istore 11 - // 0ab: aload 6 - // 0ad: iload 1 - // 0ae: aload 6 - // 0b0: arraylength - // 0b1: irem - // 0b2: caload - // 0b3: sipush 222 - // 0b6: ixor - // 0b7: lookupswitch 121 14 146 247 170 177 172 190 173 203 174 216 177 235 178 241 181 253 184 260 186 267 187 274 189 281 191 288 240 229 - // 130: aload 9 - // 132: iload 10 - // 134: iload 11 - // 136: castore - // 137: iinc 10 1 - // 13a: iinc 1 1 - // 13d: iinc 2 -1 - // 140: bipush 0 - // 141: istore 12 - // 143: goto 1e1 - // 146: aload 7 - // 148: iload 8 - // 14a: iinc 8 1 - // 14d: new java/lang/String - // 150: dup - // 151: aload 9 - // 153: invokespecial java/lang/String. ([C)V - // 156: invokevirtual java/lang/String.intern ()Ljava/lang/String; - // 159: aastore - // 15a: iload 1 - // 15b: aload 0 - // 15c: arraylength - // 15d: if_icmplt 08c - // 160: aload 7 - // 162: putstatic pack/tests/reflects/loader/Loader.d [Ljava/lang/String; - // 165: goto 220 - // 168: iload 11 - // 16a: bipush -99 - // 16c: ixor - // 16d: istore 11 - // 16f: bipush 1 - // 170: istore 12 - // 172: goto 1e1 - // 175: iload 11 - // 177: bipush -124 - // 179: ixor - // 17a: istore 11 - // 17c: bipush 1 - // 17d: istore 12 - // 17f: goto 1e1 - // 182: iload 11 - // 184: bipush 27 - // 186: ixor - // 187: istore 11 - // 189: bipush 1 - // 18a: istore 12 - // 18c: goto 1e1 - // 18f: iload 11 - // 191: bipush -65 - // 193: ixor - // 194: istore 11 - // 196: bipush 1 - // 197: istore 12 - // 199: goto 1e1 - // 19c: bipush 2 - // 19d: istore 12 - // 19f: goto 1e1 - // 1a2: bipush 3 - // 1a3: istore 12 - // 1a5: goto 1e1 - // 1a8: bipush 4 - // 1a9: istore 12 - // 1ab: goto 1e1 - // 1ae: bipush 5 - // 1af: istore 12 - // 1b1: goto 1e1 - // 1b4: bipush 6 - // 1b6: istore 12 - // 1b8: goto 1e1 - // 1bb: bipush 7 - // 1bd: istore 12 - // 1bf: goto 1e1 - // 1c2: bipush 8 - // 1c4: istore 12 - // 1c6: goto 1e1 - // 1c9: bipush 9 - // 1cb: istore 12 - // 1cd: goto 1e1 - // 1d0: bipush 10 - // 1d2: istore 12 - // 1d4: goto 1e1 - // 1d7: bipush 11 - // 1d9: istore 12 - // 1db: goto 1e1 - // 1de: goto 059 - // 1e1: iload 12 - // 1e3: tableswitch -179 0 11 -321 -179 -110 -123 -65 -97 -53 -59 -40 -47 -26 -33 - // 220: return - } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/res/Accesor.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/res/Accesor.dec index 33992141..b208d9fb 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/res/Accesor.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/res/Accesor.dec @@ -8,230 +8,4 @@ public class Accesor { byte var10001 = 97; throw new RuntimeException(); } - - static { - // $VF: Couldn't be decompiled - // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) - // java.lang.RuntimeException: parsing failure! - // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) - // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) - // - // Bytecode: - // 000: ldc "\t.V\u001cV↑\t\t¦\u000e\ufff5\u000e\t\ufff3¢@J¦\u001e\ufff5\u000e\t\u000f¦\ufff2ฤ@O\u0011¦NົR¬\u001c¬↑\t\t¦\u000e\ufff5\u000e\t\ufff3¢@J¦\u001e\ufff5\u000e\t\u000f¦\ufff2\t@O\u0011¦ຢᅰ ([C)V - // 156: invokevirtual java/lang/String.intern ()Ljava/lang/String; - // 159: aastore - // 15a: iload 1 - // 15b: aload 0 - // 15c: arraylength - // 15d: if_icmplt 094 - // 160: aload 7 - // 162: putstatic pack/tests/reflects/res/Accesor.d [Ljava/lang/String; - // 165: goto 218 - // 168: iload 11 - // 16a: bipush -127 - // 16c: ixor - // 16d: istore 11 - // 16f: bipush 1 - // 170: istore 12 - // 172: goto 1da - // 175: iload 11 - // 177: bipush 38 - // 179: ixor - // 17a: istore 11 - // 17c: bipush 1 - // 17d: istore 12 - // 17f: goto 1da - // 182: bipush 2 - // 183: istore 12 - // 185: goto 1da - // 188: iload 11 - // 18a: bipush 125 - // 18c: ixor - // 18d: istore 11 - // 18f: bipush 1 - // 190: istore 12 - // 192: goto 1da - // 195: bipush 3 - // 196: istore 12 - // 198: goto 1da - // 19b: bipush 4 - // 19c: istore 12 - // 19e: goto 1da - // 1a1: bipush 5 - // 1a2: istore 12 - // 1a4: goto 1da - // 1a7: iload 11 - // 1a9: bipush -123 - // 1ab: ixor - // 1ac: istore 11 - // 1ae: bipush 1 - // 1af: istore 12 - // 1b1: goto 1da - // 1b4: bipush 6 - // 1b6: istore 12 - // 1b8: goto 1da - // 1bb: bipush 7 - // 1bd: istore 12 - // 1bf: goto 1da - // 1c2: bipush 8 - // 1c4: istore 12 - // 1c6: goto 1da - // 1c9: bipush 9 - // 1cb: istore 12 - // 1cd: goto 1da - // 1d0: bipush 10 - // 1d2: istore 12 - // 1d4: goto 1da - // 1d7: goto 061 - // 1da: iload 12 - // 1dc: tableswitch -116 0 10 -307 -172 -103 -116 -71 -65 -84 -59 -40 -26 -53 - // 218: return - } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/retrace/Tracer.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/retrace/Tracer.dec index 1250e42b..bbeed5ed 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/retrace/Tracer.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/reflects/retrace/Tracer.dec @@ -11,227 +11,4 @@ public class Tracer { System.out.println("FAIL"); } } - - static { - // $VF: Couldn't be decompiled - // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) - // java.lang.RuntimeException: parsing failure! - // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) - // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) - // - // Bytecode: - // 000: ldc "C\u0ee4\u0ee4ᄃᄌ]ᅱLO\u0e3eK" - // 002: invokevirtual java/lang/String.toCharArray ()[C - // 005: astore 0 - // 006: bipush 0 - // 007: istore 1 - // 008: aload 0 - // 009: dup - // 00a: bipush 6 - // 00c: swap - // 00d: bipush 2 - // 00e: caload - // 00f: aload 0 - // 010: dup - // 011: bipush 2 - // 012: swap - // 013: bipush 6 - // 015: caload - // 016: castore - // 017: castore - // 018: aload 0 - // 019: dup - // 01a: bipush 10 - // 01c: swap - // 01d: bipush 3 - // 01e: caload - // 01f: aload 0 - // 020: dup - // 021: bipush 3 - // 022: swap - // 023: bipush 10 - // 025: caload - // 026: castore - // 027: castore - // 028: aload 0 - // 029: dup - // 02a: bipush 9 - // 02c: swap - // 02d: bipush 0 - // 02e: caload - // 02f: aload 0 - // 030: dup - // 031: bipush 0 - // 032: swap - // 033: bipush 9 - // 035: caload - // 036: castore - // 037: castore - // 038: aload 0 - // 039: dup - // 03a: bipush 8 - // 03c: swap - // 03d: bipush 15 - // 03f: caload - // 040: aload 0 - // 041: dup - // 042: bipush 15 - // 044: swap - // 045: bipush 8 - // 047: caload - // 048: castore - // 049: castore - // 04a: aload 0 - // 04b: dup - // 04c: bipush 8 - // 04e: swap - // 04f: bipush 2 - // 050: caload - // 051: aload 0 - // 052: dup - // 053: bipush 2 - // 054: swap - // 055: bipush 8 - // 057: caload - // 058: castore - // 059: castore - // 05a: goto 159 - // 05d: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; - // 060: bipush 0 - // 061: aaload - // 062: astore 4 - // 064: aload 4 - // 066: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; - // 069: invokevirtual java/lang/String.hashCode ()I - // 06c: ldc 65535 - // 06e: iand - // 06f: istore 5 - // 071: aload 4 - // 073: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; - // 076: invokevirtual java/lang/String.toCharArray ()[C - // 079: astore 6 - // 07b: aload 0 - // 07c: iload 1 - // 07d: iinc 1 1 - // 080: caload - // 081: sipush 149 - // 084: ixor - // 085: iload 5 - // 087: ixor - // 088: anewarray 42 - // 08b: astore 7 - // 08d: bipush 0 - // 08e: istore 8 - // 090: aload 0 - // 091: iload 1 - // 092: iinc 1 1 - // 095: caload - // 096: bipush 73 - // 098: ixor - // 099: iload 5 - // 09b: ixor - // 09c: istore 2 - // 09d: iload 2 - // 09e: newarray 5 - // 0a0: astore 9 - // 0a2: bipush 0 - // 0a3: istore 10 - // 0a5: iload 2 - // 0a6: ifle 13a - // 0a9: aload 0 - // 0aa: iload 1 - // 0ab: caload - // 0ac: istore 11 - // 0ae: aload 6 - // 0b0: iload 1 - // 0b1: aload 6 - // 0b3: arraylength - // 0b4: irem - // 0b5: caload - // 0b6: bipush 95 - // 0b8: ixor - // 0b9: lookupswitch 107 12 11 220 43 214 44 239 45 246 47 260 51 176 52 189 57 202 58 208 60 226 62 253 113 163 - // 124: aload 9 - // 126: iload 10 - // 128: iload 11 - // 12a: castore - // 12b: iinc 10 1 - // 12e: iinc 1 1 - // 131: iinc 2 -1 - // 134: bipush 0 - // 135: istore 12 - // 137: goto 1c7 - // 13a: aload 7 - // 13c: iload 8 - // 13e: iinc 8 1 - // 141: new java/lang/String - // 144: dup - // 145: aload 9 - // 147: invokespecial java/lang/String. ([C)V - // 14a: invokevirtual java/lang/String.intern ()Ljava/lang/String; - // 14d: aastore - // 14e: iload 1 - // 14f: aload 0 - // 150: arraylength - // 151: if_icmplt 090 - // 154: aload 7 - // 156: putstatic pack/tests/reflects/retrace/Tracer.d [Ljava/lang/String; - // 159: goto 200 - // 15c: iload 11 - // 15e: bipush -21 - // 160: ixor - // 161: istore 11 - // 163: bipush 1 - // 164: istore 12 - // 166: goto 1c7 - // 169: iload 11 - // 16b: bipush 14 - // 16d: ixor - // 16e: istore 11 - // 170: bipush 1 - // 171: istore 12 - // 173: goto 1c7 - // 176: iload 11 - // 178: bipush 10 - // 17a: ixor - // 17b: istore 11 - // 17d: bipush 1 - // 17e: istore 12 - // 180: goto 1c7 - // 183: bipush 2 - // 184: istore 12 - // 186: goto 1c7 - // 189: bipush 3 - // 18a: istore 12 - // 18c: goto 1c7 - // 18f: bipush 4 - // 190: istore 12 - // 192: goto 1c7 - // 195: bipush 5 - // 196: istore 12 - // 198: goto 1c7 - // 19b: iload 11 - // 19d: bipush -122 - // 19f: ixor - // 1a0: istore 11 - // 1a2: bipush 1 - // 1a3: istore 12 - // 1a5: goto 1c7 - // 1a8: bipush 6 - // 1aa: istore 12 - // 1ac: goto 1c7 - // 1af: bipush 7 - // 1b1: istore 12 - // 1b3: goto 1c7 - // 1b6: bipush 8 - // 1b8: istore 12 - // 1ba: goto 1c7 - // 1bd: bipush 9 - // 1bf: istore 12 - // 1c1: goto 1c7 - // 1c4: goto 05d - // 1c7: iload 12 - // 1c9: tableswitch -292 0 9 -292 -165 -83 -109 -96 -64 -70 -58 -33 -46 - // 200: return - } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/security/SecTest.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/security/SecTest.dec index d6fc9582..4f63733f 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/security/SecTest.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/security/SecTest.dec @@ -34,225 +34,4 @@ public class SecTest { } } } - - static { - // $VF: Couldn't be decompiled - // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) - // java.lang.RuntimeException: parsing failure! - // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) - // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) - // - // Bytecode: - // 000: ldc "\ufff5\u0e6fᅡ\uffc9\ufff5ᅫ\u0e61ᅭᅡ\uffc9\uffd1\uffc8ᅮ○←←j\u0e6dᆴᆴᆴᆴ\ufff6\uffef\ufff5ູ\u0e61¢\uffe7\uffe7↑" - // 002: invokevirtual java/lang/String.toCharArray ()[C - // 005: astore 0 - // 006: bipush 0 - // 007: istore 1 - // 008: aload 0 - // 009: dup - // 00a: bipush 12 - // 00c: swap - // 00d: bipush 6 - // 00f: caload - // 010: aload 0 - // 011: dup - // 012: bipush 6 - // 014: swap - // 015: bipush 12 - // 017: caload - // 018: castore - // 019: castore - // 01a: aload 0 - // 01b: dup - // 01c: bipush 29 - // 01e: swap - // 01f: bipush 23 - // 021: caload - // 022: aload 0 - // 023: dup - // 024: bipush 23 - // 026: swap - // 027: bipush 29 - // 029: caload - // 02a: castore - // 02b: castore - // 02c: aload 0 - // 02d: dup - // 02e: bipush 25 - // 030: swap - // 031: bipush 0 - // 032: caload - // 033: aload 0 - // 034: dup - // 035: bipush 0 - // 036: swap - // 037: bipush 25 - // 039: caload - // 03a: castore - // 03b: castore - // 03c: aload 0 - // 03d: dup - // 03e: bipush 29 - // 040: swap - // 041: bipush 45 - // 043: caload - // 044: aload 0 - // 045: dup - // 046: bipush 45 - // 048: swap - // 049: bipush 29 - // 04b: caload - // 04c: castore - // 04d: castore - // 04e: aload 0 - // 04f: dup - // 050: bipush 12 - // 052: swap - // 053: bipush 18 - // 055: caload - // 056: aload 0 - // 057: dup - // 058: bipush 18 - // 05a: swap - // 05b: bipush 12 - // 05d: caload - // 05e: castore - // 05f: castore - // 060: goto 16d - // 063: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; - // 066: bipush 0 - // 067: aaload - // 068: astore 4 - // 06a: aload 4 - // 06c: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; - // 06f: invokevirtual java/lang/String.hashCode ()I - // 072: ldc 65535 - // 074: iand - // 075: istore 5 - // 077: aload 4 - // 079: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; - // 07c: invokevirtual java/lang/String.toCharArray ()[C - // 07f: astore 6 - // 081: aload 0 - // 082: iload 1 - // 083: iinc 1 1 - // 086: caload - // 087: bipush 20 - // 089: ixor - // 08a: iload 5 - // 08c: ixor - // 08d: anewarray 66 - // 090: astore 7 - // 092: bipush 0 - // 093: istore 8 - // 095: aload 0 - // 096: iload 1 - // 097: iinc 1 1 - // 09a: caload - // 09b: sipush 204 - // 09e: ixor - // 09f: iload 5 - // 0a1: ixor - // 0a2: istore 2 - // 0a3: iload 2 - // 0a4: newarray 5 - // 0a6: astore 9 - // 0a8: bipush 0 - // 0a9: istore 10 - // 0ab: iload 2 - // 0ac: ifle 14e - // 0af: aload 0 - // 0b0: iload 1 - // 0b1: caload - // 0b2: istore 11 - // 0b4: aload 6 - // 0b6: iload 1 - // 0b7: aload 6 - // 0b9: arraylength - // 0ba: irem - // 0bb: caload - // 0bc: bipush 88 - // 0be: ixor - // 0bf: lookupswitch 121 14 11 208 12 221 33 177 40 190 42 196 43 202 44 214 45 228 49 235 51 248 57 262 59 269 61 276 118 255 - // 138: aload 9 - // 13a: iload 10 - // 13c: iload 11 - // 13e: castore - // 13f: iinc 10 1 - // 142: iinc 1 1 - // 145: iinc 2 -1 - // 148: bipush 0 - // 149: istore 12 - // 14b: goto 1dd - // 14e: aload 7 - // 150: iload 8 - // 152: iinc 8 1 - // 155: new java/lang/String - // 158: dup - // 159: aload 9 - // 15b: invokespecial java/lang/String. ([C)V - // 15e: invokevirtual java/lang/String.intern ()Ljava/lang/String; - // 161: aastore - // 162: iload 1 - // 163: aload 0 - // 164: arraylength - // 165: if_icmplt 095 - // 168: aload 7 - // 16a: putstatic pack/tests/security/SecTest.d [Ljava/lang/String; - // 16d: goto 224 - // 170: iload 11 - // 172: bipush -90 - // 174: ixor - // 175: istore 11 - // 177: bipush 1 - // 178: istore 12 - // 17a: goto 1dd - // 17d: bipush 2 - // 17e: istore 12 - // 180: goto 1dd - // 183: bipush 3 - // 184: istore 12 - // 186: goto 1dd - // 189: bipush 4 - // 18a: istore 12 - // 18c: goto 1dd - // 18f: bipush 5 - // 190: istore 12 - // 192: goto 1dd - // 195: bipush 6 - // 197: istore 12 - // 199: goto 1dd - // 19c: bipush 7 - // 19e: istore 12 - // 1a0: goto 1dd - // 1a3: bipush 8 - // 1a5: istore 12 - // 1a7: goto 1dd - // 1aa: iload 11 - // 1ac: bipush 33 - // 1ae: ixor - // 1af: istore 11 - // 1b1: bipush 1 - // 1b2: istore 12 - // 1b4: goto 1dd - // 1b7: bipush 9 - // 1b9: istore 12 - // 1bb: goto 1dd - // 1be: bipush 10 - // 1c0: istore 12 - // 1c2: goto 1dd - // 1c5: bipush 11 - // 1c7: istore 12 - // 1c9: goto 1dd - // 1cc: bipush 12 - // 1ce: istore 12 - // 1d0: goto 1dd - // 1d3: bipush 13 - // 1d5: istore 12 - // 1d7: goto 1dd - // 1da: goto 063 - // 1dd: iload 12 - // 1df: tableswitch -26 0 13 -308 -167 -111 -98 -92 -86 -80 -74 -67 -60 -40 -33 -26 -19 - // 224: return - } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/security/Sman.dec b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/security/Sman.dec index ff32cda5..064cc704 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/security/Sman.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string-flow-number/pack/tests/security/Sman.dec @@ -11,222 +11,4 @@ public class Sman extends SecurityManager { throw new SecurityException("HOOKED"); } } - - static { - // $VF: Couldn't be decompiled - // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) - // java.lang.RuntimeException: parsing failure! - // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) - // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) - // - // Bytecode: - // 000: ldc "ຄ\u0eeeリE|akXv]ZZ\u0eeeᄌ\uffdf" - // 002: invokevirtual java/lang/String.toCharArray ()[C - // 005: astore 0 - // 006: bipush 0 - // 007: istore 1 - // 008: aload 0 - // 009: dup - // 00a: bipush 8 - // 00c: swap - // 00d: bipush 12 - // 00f: caload - // 010: aload 0 - // 011: dup - // 012: bipush 12 - // 014: swap - // 015: bipush 8 - // 017: caload - // 018: castore - // 019: castore - // 01a: aload 0 - // 01b: dup - // 01c: bipush 0 - // 01d: swap - // 01e: bipush 1 - // 01f: caload - // 020: aload 0 - // 021: dup - // 022: bipush 1 - // 023: swap - // 024: bipush 0 - // 025: caload - // 026: castore - // 027: castore - // 028: aload 0 - // 029: dup - // 02a: bipush 1 - // 02b: swap - // 02c: bipush 0 - // 02d: caload - // 02e: aload 0 - // 02f: dup - // 030: bipush 0 - // 031: swap - // 032: bipush 1 - // 033: caload - // 034: castore - // 035: castore - // 036: aload 0 - // 037: dup - // 038: bipush 6 - // 03a: swap - // 03b: bipush 19 - // 03d: caload - // 03e: aload 0 - // 03f: dup - // 040: bipush 19 - // 042: swap - // 043: bipush 6 - // 045: caload - // 046: castore - // 047: castore - // 048: goto 15d - // 04b: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; - // 04e: bipush 0 - // 04f: aaload - // 050: astore 4 - // 052: aload 4 - // 054: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; - // 057: invokevirtual java/lang/String.hashCode ()I - // 05a: ldc 65535 - // 05c: iand - // 05d: istore 5 - // 05f: aload 4 - // 061: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; - // 064: invokevirtual java/lang/String.toCharArray ()[C - // 067: astore 6 - // 069: aload 0 - // 06a: iload 1 - // 06b: iinc 1 1 - // 06e: caload - // 06f: bipush 47 - // 071: ixor - // 072: iload 5 - // 074: ixor - // 075: anewarray 22 - // 078: astore 7 - // 07a: bipush 0 - // 07b: istore 8 - // 07d: aload 0 - // 07e: iload 1 - // 07f: iinc 1 1 - // 082: caload - // 083: bipush 65 - // 085: ixor - // 086: iload 5 - // 088: ixor - // 089: istore 2 - // 08a: iload 2 - // 08b: newarray 5 - // 08d: astore 9 - // 08f: bipush 0 - // 090: istore 10 - // 092: iload 2 - // 093: ifle 13e - // 096: aload 0 - // 097: iload 1 - // 098: caload - // 099: istore 11 - // 09b: aload 6 - // 09d: iload 1 - // 09e: aload 6 - // 0a0: arraylength - // 0a1: irem - // 0a2: caload - // 0a3: sipush 203 - // 0a6: ixor - // 0a7: lookupswitch 129 15 152 275 160 185 162 198 165 224 166 237 168 243 170 249 174 255 178 261 184 268 185 282 187 289 190 296 191 303 229 211 - // 128: aload 9 - // 12a: iload 10 - // 12c: iload 11 - // 12e: castore - // 12f: iinc 10 1 - // 132: iinc 1 1 - // 135: iinc 2 -1 - // 138: bipush 0 - // 139: istore 12 - // 13b: goto 1e0 - // 13e: aload 7 - // 140: iload 8 - // 142: iinc 8 1 - // 145: new java/lang/String - // 148: dup - // 149: aload 9 - // 14b: invokespecial java/lang/String. ([C)V - // 14e: invokevirtual java/lang/String.intern ()Ljava/lang/String; - // 151: aastore - // 152: iload 1 - // 153: aload 0 - // 154: arraylength - // 155: if_icmplt 07d - // 158: aload 7 - // 15a: putstatic pack/tests/security/Sman.d [Ljava/lang/String; - // 15d: goto 224 - // 160: iload 11 - // 162: bipush 61 - // 164: ixor - // 165: istore 11 - // 167: bipush 1 - // 168: istore 12 - // 16a: goto 1e0 - // 16d: iload 11 - // 16f: bipush -101 - // 171: ixor - // 172: istore 11 - // 174: bipush 1 - // 175: istore 12 - // 177: goto 1e0 - // 17a: iload 11 - // 17c: bipush 21 - // 17e: ixor - // 17f: istore 11 - // 181: bipush 1 - // 182: istore 12 - // 184: goto 1e0 - // 187: iload 11 - // 189: bipush -3 - // 18b: ixor - // 18c: istore 11 - // 18e: bipush 1 - // 18f: istore 12 - // 191: goto 1e0 - // 194: bipush 2 - // 195: istore 12 - // 197: goto 1e0 - // 19a: bipush 3 - // 19b: istore 12 - // 19d: goto 1e0 - // 1a0: bipush 4 - // 1a1: istore 12 - // 1a3: goto 1e0 - // 1a6: bipush 5 - // 1a7: istore 12 - // 1a9: goto 1e0 - // 1ac: bipush 6 - // 1ae: istore 12 - // 1b0: goto 1e0 - // 1b3: bipush 7 - // 1b5: istore 12 - // 1b7: goto 1e0 - // 1ba: bipush 8 - // 1bc: istore 12 - // 1be: goto 1e0 - // 1c1: bipush 9 - // 1c3: istore 12 - // 1c5: goto 1e0 - // 1c8: bipush 10 - // 1ca: istore 12 - // 1cc: goto 1e0 - // 1cf: bipush 11 - // 1d1: istore 12 - // 1d3: goto 1e0 - // 1d6: bipush 12 - // 1d8: istore 12 - // 1da: goto 1e0 - // 1dd: goto 04b - // 1e0: iload 12 - // 1e2: tableswitch -91 0 12 -336 -186 -91 -78 -117 -130 -104 -54 -47 -60 -72 -66 -40 - // 224: return - } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/Main.dec b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/Main.dec index b5259da4..ffc1579a 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/Main.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/Main.dec @@ -163,197 +163,4 @@ public class Main { Calc.runAll(8983); System.out.println("-------------Tests r Finished-------------"); } - - static { - // $VF: Couldn't be decompiled - // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) - // java.lang.RuntimeException: parsing failure! - // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) - // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) - // - // Bytecode: - // 000: ldc "↓๕\u0011\ufffa↓→\uffbfPᄆᆰᆬeᅮ\ufff0\ufffe\ufffb\u0007■\uffbf็v\ufff5\ufff8๊\uffde\u0017→\ufff7\ufff07ᆬ\uffbf\ufff7↑\u0018\uffef↓�\u0e65ᅨ\ufffa↓→Bᆳᄆᆳ\u007f\uffbfᅵ\ufff7\ufff6\f\ufffa↓\ufffae澅灘ᅮᅭ#\uffd0ララMラ\uffbf\uffbf\uffbfBユ\u0e6fᄇhᄇᄇᄇᄇOᄇᄇᄇhᄇ\uffbfᅨ\ufffa\u0011→\uffbfᄐwᆬ\uffbfᅪ\ufffa\u0004\ufff3\ufffa1↓ᄇᄇᄇOᄇᄇᄇhᄇᄇᄇᄇOโᅣᅲ\f\uffd1ᅨᅡ\u0e76-\ufff1\ufff3₩e\ufff0\ufff2\uffef\u0003→\ufff6�,\ufff3\ufff6→₩B\ufffe\ufff1\ufffbe\ufffa\ufff9\ufff9\ufff6\u0001\ufff6\ufffa\ufff1&₩\uffbf\ufffe■\u0007\uffbf→\ufffa6→\ufffa\ufffb\uffbf\n\ufffa■\ufffad็↑\ufff2๔ᅨ\ufffa↓1\uffbfᆴᄆᆲX\uffbfᅨ\ufff77\ufff0│\uffbf๑6\ufffa↓→eᆳᄆᄄᆬB\uffde\ufff1\ufff1*→\ufffe→\ufff6\r\ufff1\uffbf๒\u0011\ufffa↓→\uffbfSᄆᆴᆬeᅱ\ufff1\ufff7\ufffa\u0010\ufff6→\ufffe+\ufffa\uffbf้4\ufffa■↓,\ufff0\ufff1ᆬ\uffbfSᄆᆵ■๖ᅨ\ufffa↓→Bᆳᄆᆴ\u007f\uffbfᅵ\ufff0↑\f→\ufffa■eเᆴᆴ\ufff5\bๆᅱᅯฏ\uffd9\ufff0■\uffbf\u000f\ufff0↓→e↑↓\ufffa■\u0011ᄈ\uffbf\uffef$↓↓\uffbf\ufffe\u000e\ufff3\uffbf\ufff0#\uffbf→\ufff7\ufffaB�\ufffe↓,↓\uffbf\ufff2\u0007\ufffe\ufff1↓e→\ufff7\ufffa\uffbf\r�\ufff9↑6\ufffe→\ufff0\u0010\uffbf\ufff6↓e\ufff8\ufff0\ufff0\ufffbB\ufffa\ufff1\ufff00\ufff8\ufff7ᄆๆ\udb22⏢\u0e6dᄇhᄇᄇᄇᄇOᄇᄇᄇhᄇ볘\ufffa\u0011→\uffbfᄐtᆬ\uffbf\uffdd\ufffe\u0011\ufff6↓hᄇᄇᄇᄇOᄇᄇᄇhᄇᄇᄇ๔6\ufffa↓→eᆴᄆᆳᆬBᅵ■\ufff06↓\uffbf\u0e69ᄇOᄇᄇᄇhᄇᄇᄇᄇOᄇ볘 ↓→\uffbfᄐQᆬ\uffbfᅳ#\ufff9\ufff6\ufff6\u0007\ufff1₩hᄇᄇᄇᄇOᄇᄇᄇhᄇᄇᄇ\u0e6eOᄇᄇᄇhᄇᄇᄇᄇOᄇᄇᄇ\u0011\ufffa↓→↓B■\uffbf\uffd9,\ufff1\ufff6↓\ufff7\u0007\ufffbᄇᄇhᄇᄇᄇᄇOᄇᄇᄇhᄇแᅳᅪ0\uffd0ᅪ๑\u0011\ufffa↓→\uffbfSᄆᄄᆬeᅱ\ufff1\ufff1\ufffa\u0010ᅵ\ufff3\ufffe6ໞ\uffbf๓\uffd0\u0000\ufff9↑↓&\ufffeᅩ\ufff0■Bᅨ\ufffa↓1\uffbfᅬ■\ufff0\u0005■\ufffe\ufff2๗ᅨ\ufffa↓→Bᆳᄆᆲ\u007f\uffbfᅪ\ufffa↓\r↑■ \uffbf๖ᅨ\ufffa\u0011→\uffbfᆳkᄅᆬ\uffbfᅪ\u0007ᅨ■\ufffe&\ufffa\uffbf๔ᅨ\u0007↓→\uffbfwᄆᆱᆬ\uffbf$\ufff6\ufffa\ufff3!\uffbf๊ᅨ\ufffa\u0011→\uffbfᆳkᄃᆬ\uffbf→\u0007\uffbfญ\u0006\ufff7\ufff0\ufff0↓\u0007\uffbf│\ufff66\ufffa\ufff3₩\uffbf\u0003\ufff2\ufff0\ufff1\"\uffbf↓→■\u0007\ufff1\ufff8→-ᄈ\uffbf\ufff0\u000f\uffef\ufffe→,�\ufff6\ufff3\ufff6\u0016₩ᄈ\uffbf \ufff9\ufff9\ufff6\u000b\ufffa\ufff1<ᄈ\uffbf↓\ufff6\u0018\ufffaᄈ\uffbf$\ufff1\ufffb\uffbf\uffef\u0010\ufff6\ufffak๗ᅨ\ufffa↓\u0016\uffbfᆴᄆpᆬ\uffbfᅩ↑\u0000ᅵ\ufff3\ufffe6↓\uffbf\u0e7fᅨ\n\ufffa\uffbfᅨ ↓→\uffbfᄐP\uffbf\ufff6↓e\ufff9\ufff0■\uffbf1\uffef■\ufff6+\ufff8\uffdd\ufff0\ufff0\u0016\uffbf\ufffe\ufff1!\uffbf\uffde\ufff1\ufffb\u0010\ufff0\ufff6\ufffbe\ufff3\ufff6\ufff4\ufffaB\ufffa\ufff1←,■\ufff0\ufff1\ufff2\u0007\ufff1→ᄆ๗ᅨ\ufffa↓→Bᆴᄆᆱ\u007f\uffbf\uffde\u0017■\ufffe<\uffbf๋ᅨ\ufffa\u0011→\uffbfᆴkᄅᆬ뵈\r\ufff0\ufff3\uffbf" - // 002: invokevirtual java/lang/String.toCharArray ()[C - // 005: astore 0 - // 006: bipush 0 - // 007: istore 1 - // 008: aload 0 - // 009: dup - // 00a: sipush 627 - // 00d: swap - // 00e: sipush 544 - // 011: caload - // 012: aload 0 - // 013: dup - // 014: sipush 544 - // 017: swap - // 018: sipush 627 - // 01b: caload - // 01c: castore - // 01d: castore - // 01e: aload 0 - // 01f: dup - // 020: sipush 815 - // 023: swap - // 024: bipush 85 - // 026: caload - // 027: aload 0 - // 028: dup - // 029: bipush 85 - // 02b: swap - // 02c: sipush 815 - // 02f: caload - // 030: castore - // 031: castore - // 032: aload 0 - // 033: dup - // 034: sipush 534 - // 037: swap - // 038: bipush 0 - // 039: caload - // 03a: aload 0 - // 03b: dup - // 03c: bipush 0 - // 03d: swap - // 03e: sipush 534 - // 041: caload - // 042: castore - // 043: castore - // 044: aload 0 - // 045: dup - // 046: sipush 196 - // 049: swap - // 04a: sipush 1205 - // 04d: caload - // 04e: aload 0 - // 04f: dup - // 050: sipush 1205 - // 053: swap - // 054: sipush 196 - // 057: caload - // 058: castore - // 059: castore - // 05a: goto 139 - // 05d: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; - // 060: bipush 0 - // 061: aaload - // 062: astore 4 - // 064: aload 4 - // 066: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; - // 069: invokevirtual java/lang/String.hashCode ()I - // 06c: ldc 65535 - // 06e: iand - // 06f: istore 5 - // 071: aload 4 - // 073: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; - // 076: invokevirtual java/lang/String.toCharArray ()[C - // 079: astore 6 - // 07b: aload 0 - // 07c: iload 1 - // 07d: iinc 1 1 - // 080: caload - // 081: bipush 86 - // 083: ixor - // 084: iload 5 - // 086: ixor - // 087: anewarray 169 - // 08a: astore 7 - // 08c: bipush 0 - // 08d: istore 8 - // 08f: aload 0 - // 090: iload 1 - // 091: iinc 1 1 - // 094: caload - // 095: sipush 237 - // 098: ixor - // 099: iload 5 - // 09b: ixor - // 09c: istore 2 - // 09d: iload 2 - // 09e: newarray 5 - // 0a0: astore 9 - // 0a2: bipush 0 - // 0a3: istore 10 - // 0a5: iload 2 - // 0a6: ifle 11a - // 0a9: aload 0 - // 0aa: iload 1 - // 0ab: caload - // 0ac: istore 11 - // 0ae: aload 6 - // 0b0: iload 1 - // 0b1: aload 6 - // 0b3: arraylength - // 0b4: irem - // 0b5: caload - // 0b6: sipush 133 - // 0b9: ixor - // 0ba: lookupswitch 74 8 171 168 200 162 228 130 230 149 235 174 236 180 238 193 245 143 - // 104: aload 9 - // 106: iload 10 - // 108: iload 11 - // 10a: castore - // 10b: iinc 10 1 - // 10e: iinc 1 1 - // 111: iinc 2 -1 - // 114: bipush 0 - // 115: istore 12 - // 117: goto 185 - // 11a: aload 7 - // 11c: iload 8 - // 11e: iinc 8 1 - // 121: new java/lang/String - // 124: dup - // 125: aload 9 - // 127: invokespecial java/lang/String. ([C)V - // 12a: invokevirtual java/lang/String.intern ()Ljava/lang/String; - // 12d: aastore - // 12e: iload 1 - // 12f: aload 0 - // 130: arraylength - // 131: if_icmplt 08f - // 134: aload 7 - // 136: putstatic pack/Main.d [Ljava/lang/String; - // 139: goto 1b0 - // 13c: iload 11 - // 13e: bipush -97 - // 140: ixor - // 141: istore 11 - // 143: bipush 1 - // 144: istore 12 - // 146: goto 185 - // 149: bipush 2 - // 14a: istore 12 - // 14c: goto 185 - // 14f: iload 11 - // 151: bipush 69 - // 153: ixor - // 154: istore 11 - // 156: bipush 1 - // 157: istore 12 - // 159: goto 185 - // 15c: bipush 3 - // 15d: istore 12 - // 15f: goto 185 - // 162: bipush 4 - // 163: istore 12 - // 165: goto 185 - // 168: bipush 5 - // 169: istore 12 - // 16b: goto 185 - // 16e: iload 11 - // 170: bipush 98 - // 172: ixor - // 173: istore 11 - // 175: bipush 1 - // 176: istore 12 - // 178: goto 185 - // 17b: bipush 6 - // 17d: istore 12 - // 17f: goto 185 - // 182: goto 05d - // 185: iload 12 - // 187: tableswitch -75 0 6 -226 -131 -75 -62 -43 -37 -31 - // 1b0: return - } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/basics/accu/Digi.dec b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/basics/accu/Digi.dec index e771a7a8..baf0071b 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/basics/accu/Digi.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/basics/accu/Digi.dec @@ -11,225 +11,13 @@ public class Digi { int var4 = 0; do { - var2 += 1.0E-18; + var2 += Double.longBitsToDouble(4337655139195544067L + (-806592087L << Integer.parseInt(d[1], 32))); } while (++var4 <= 100 && (float)var2 != 2.0E-17F); if (var4 == 20) { - System.out.println("PASS"); + System.out.println(d[0]); } else { - System.out.println("FAIL"); + System.out.println(d[2]); } } - - static { - // $VF: Couldn't be decompiled - // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) - // java.lang.RuntimeException: parsing failure! - // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) - // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) - // - // Bytecode: - // 000: ldc "ニธ\ufff6ノ↓ナฟラ○マธ\u0011\uffd0ຶ\ufff3" - // 002: invokevirtual java/lang/String.toCharArray ()[C - // 005: astore 0 - // 006: bipush 0 - // 007: istore 1 - // 008: aload 0 - // 009: dup - // 00a: bipush 2 - // 00b: swap - // 00c: bipush 13 - // 00e: caload - // 00f: aload 0 - // 010: dup - // 011: bipush 13 - // 013: swap - // 014: bipush 2 - // 015: caload - // 016: castore - // 017: castore - // 018: aload 0 - // 019: dup - // 01a: bipush 3 - // 01b: swap - // 01c: bipush 7 - // 01e: caload - // 01f: aload 0 - // 020: dup - // 021: bipush 7 - // 023: swap - // 024: bipush 3 - // 025: caload - // 026: castore - // 027: castore - // 028: aload 0 - // 029: dup - // 02a: bipush 2 - // 02b: swap - // 02c: bipush 0 - // 02d: caload - // 02e: aload 0 - // 02f: dup - // 030: bipush 0 - // 031: swap - // 032: bipush 2 - // 033: caload - // 034: castore - // 035: castore - // 036: aload 0 - // 037: dup - // 038: bipush 1 - // 039: swap - // 03a: bipush 19 - // 03c: caload - // 03d: aload 0 - // 03e: dup - // 03f: bipush 19 - // 041: swap - // 042: bipush 1 - // 043: caload - // 044: castore - // 045: castore - // 046: goto 14d - // 049: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; - // 04c: bipush 0 - // 04d: aaload - // 04e: astore 4 - // 050: aload 4 - // 052: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; - // 055: invokevirtual java/lang/String.hashCode ()I - // 058: ldc 65535 - // 05a: iand - // 05b: istore 5 - // 05d: aload 4 - // 05f: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; - // 062: invokevirtual java/lang/String.toCharArray ()[C - // 065: astore 6 - // 067: aload 0 - // 068: iload 1 - // 069: iinc 1 1 - // 06c: caload - // 06d: bipush 28 - // 06f: ixor - // 070: iload 5 - // 072: ixor - // 073: anewarray 36 - // 076: astore 7 - // 078: bipush 0 - // 079: istore 8 - // 07b: aload 0 - // 07c: iload 1 - // 07d: iinc 1 1 - // 080: caload - // 081: sipush 181 - // 084: ixor - // 085: iload 5 - // 087: ixor - // 088: istore 2 - // 089: iload 2 - // 08a: newarray 5 - // 08c: astore 9 - // 08e: bipush 0 - // 08f: istore 10 - // 091: iload 2 - // 092: ifle 12e - // 095: aload 0 - // 096: iload 1 - // 097: caload - // 098: istore 11 - // 09a: aload 6 - // 09c: iload 1 - // 09d: aload 6 - // 09f: arraylength - // 0a0: irem - // 0a1: caload - // 0a2: bipush 54 - // 0a4: ixor - // 0a5: lookupswitch 115 13 24 261 66 171 67 184 69 190 70 203 81 209 83 228 84 234 85 241 87 248 93 268 95 275 114 222 - // 118: aload 9 - // 11a: iload 10 - // 11c: iload 11 - // 11e: castore - // 11f: iinc 10 1 - // 122: iinc 1 1 - // 125: iinc 2 -1 - // 128: bipush 0 - // 129: istore 12 - // 12b: goto 1c2 - // 12e: aload 7 - // 130: iload 8 - // 132: iinc 8 1 - // 135: new java/lang/String - // 138: dup - // 139: aload 9 - // 13b: invokespecial java/lang/String. ([C)V - // 13e: invokevirtual java/lang/String.intern ()Ljava/lang/String; - // 141: aastore - // 142: iload 1 - // 143: aload 0 - // 144: arraylength - // 145: if_icmplt 07b - // 148: aload 7 - // 14a: putstatic pack/tests/basics/accu/Digi.d [Ljava/lang/String; - // 14d: goto 200 - // 150: iload 11 - // 152: bipush -42 - // 154: ixor - // 155: istore 11 - // 157: bipush 1 - // 158: istore 12 - // 15a: goto 1c2 - // 15d: bipush 2 - // 15e: istore 12 - // 160: goto 1c2 - // 163: iload 11 - // 165: bipush -65 - // 167: ixor - // 168: istore 11 - // 16a: bipush 1 - // 16b: istore 12 - // 16d: goto 1c2 - // 170: bipush 3 - // 171: istore 12 - // 173: goto 1c2 - // 176: iload 11 - // 178: bipush 87 - // 17a: ixor - // 17b: istore 11 - // 17d: bipush 1 - // 17e: istore 12 - // 180: goto 1c2 - // 183: bipush 4 - // 184: istore 12 - // 186: goto 1c2 - // 189: bipush 5 - // 18a: istore 12 - // 18c: goto 1c2 - // 18f: bipush 6 - // 191: istore 12 - // 193: goto 1c2 - // 196: bipush 7 - // 198: istore 12 - // 19a: goto 1c2 - // 19d: iload 11 - // 19f: bipush -111 - // 1a1: ixor - // 1a2: istore 11 - // 1a4: bipush 1 - // 1a5: istore 12 - // 1a7: goto 1c2 - // 1aa: bipush 8 - // 1ac: istore 12 - // 1ae: goto 1c2 - // 1b1: bipush 9 - // 1b3: istore 12 - // 1b5: goto 1c2 - // 1b8: bipush 10 - // 1ba: istore 12 - // 1bc: goto 1c2 - // 1bf: goto 049 - // 1c2: iload 12 - // 1c4: tableswitch -65 0 10 -307 -172 -116 -103 -97 -84 -78 -59 -65 -46 -26 - // 200: return - } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/basics/cross/Top.dec b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/basics/cross/Top.dec index fbf21f13..33be7f52 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/basics/cross/Top.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/basics/cross/Top.dec @@ -20,230 +20,4 @@ public class Top extends Abst1 implements Inte { public int add(int var1, int var2, int var3) { return var1 + var2; } - - static { - // $VF: Couldn't be decompiled - // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) - // java.lang.RuntimeException: parsing failure! - // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) - // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) - // - // Bytecode: - // 000: ldc "ᄇູᆱ\u0011\u0003:ູ\u00007ᄄ\u0e5e" - // 002: invokevirtual java/lang/String.toCharArray ()[C - // 005: astore 0 - // 006: bipush 0 - // 007: istore 1 - // 008: aload 0 - // 009: dup - // 00a: bipush 0 - // 00b: swap - // 00c: bipush 4 - // 00d: caload - // 00e: aload 0 - // 00f: dup - // 010: bipush 4 - // 011: swap - // 012: bipush 0 - // 013: caload - // 014: castore - // 015: castore - // 016: aload 0 - // 017: dup - // 018: bipush 0 - // 019: swap - // 01a: bipush 9 - // 01c: caload - // 01d: aload 0 - // 01e: dup - // 01f: bipush 9 - // 021: swap - // 022: bipush 0 - // 023: caload - // 024: castore - // 025: castore - // 026: aload 0 - // 027: dup - // 028: bipush 10 - // 02a: swap - // 02b: bipush 0 - // 02c: caload - // 02d: aload 0 - // 02e: dup - // 02f: bipush 0 - // 030: swap - // 031: bipush 10 - // 033: caload - // 034: castore - // 035: castore - // 036: aload 0 - // 037: dup - // 038: bipush 7 - // 03a: swap - // 03b: bipush 12 - // 03d: caload - // 03e: aload 0 - // 03f: dup - // 040: bipush 12 - // 042: swap - // 043: bipush 7 - // 045: caload - // 046: castore - // 047: castore - // 048: aload 0 - // 049: dup - // 04a: bipush 0 - // 04b: swap - // 04c: bipush 0 - // 04d: caload - // 04e: aload 0 - // 04f: dup - // 050: bipush 0 - // 051: swap - // 052: bipush 0 - // 053: caload - // 054: castore - // 055: castore - // 056: goto 15d - // 059: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; - // 05c: bipush 0 - // 05d: aaload - // 05e: astore 4 - // 060: aload 4 - // 062: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; - // 065: invokevirtual java/lang/String.hashCode ()I - // 068: ldc 65535 - // 06a: iand - // 06b: istore 5 - // 06d: aload 4 - // 06f: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; - // 072: invokevirtual java/lang/String.toCharArray ()[C - // 075: astore 6 - // 077: aload 0 - // 078: iload 1 - // 079: iinc 1 1 - // 07c: caload - // 07d: sipush 245 - // 080: ixor - // 081: iload 5 - // 083: ixor - // 084: anewarray 42 - // 087: astore 7 - // 089: bipush 0 - // 08a: istore 8 - // 08c: aload 0 - // 08d: iload 1 - // 08e: iinc 1 1 - // 091: caload - // 092: bipush 20 - // 094: ixor - // 095: iload 5 - // 097: ixor - // 098: istore 2 - // 099: iload 2 - // 09a: newarray 5 - // 09c: astore 9 - // 09e: bipush 0 - // 09f: istore 10 - // 0a1: iload 2 - // 0a2: ifle 13e - // 0a5: aload 0 - // 0a6: iload 1 - // 0a7: caload - // 0a8: istore 11 - // 0aa: aload 6 - // 0ac: iload 1 - // 0ad: aload 6 - // 0af: arraylength - // 0b0: irem - // 0b1: caload - // 0b2: bipush 29 - // 0b4: ixor - // 0b5: lookupswitch 115 13 51 235 73 184 105 171 109 197 110 210 111 223 114 229 116 241 118 247 120 254 124 261 126 268 127 275 - // 128: aload 9 - // 12a: iload 10 - // 12c: iload 11 - // 12e: castore - // 12f: iinc 10 1 - // 132: iinc 1 1 - // 135: iinc 2 -1 - // 138: bipush 0 - // 139: istore 12 - // 13b: goto 1d2 - // 13e: aload 7 - // 140: iload 8 - // 142: iinc 8 1 - // 145: new java/lang/String - // 148: dup - // 149: aload 9 - // 14b: invokespecial java/lang/String. ([C)V - // 14e: invokevirtual java/lang/String.intern ()Ljava/lang/String; - // 151: aastore - // 152: iload 1 - // 153: aload 0 - // 154: arraylength - // 155: if_icmplt 08c - // 158: aload 7 - // 15a: putstatic pack/tests/basics/cross/Top.d [Ljava/lang/String; - // 15d: goto 210 - // 160: iload 11 - // 162: bipush 118 - // 164: ixor - // 165: istore 11 - // 167: bipush 1 - // 168: istore 12 - // 16a: goto 1d2 - // 16d: iload 11 - // 16f: bipush -19 - // 171: ixor - // 172: istore 11 - // 174: bipush 1 - // 175: istore 12 - // 177: goto 1d2 - // 17a: iload 11 - // 17c: bipush -5 - // 17e: ixor - // 17f: istore 11 - // 181: bipush 1 - // 182: istore 12 - // 184: goto 1d2 - // 187: iload 11 - // 189: bipush 80 - // 18b: ixor - // 18c: istore 11 - // 18e: bipush 1 - // 18f: istore 12 - // 191: goto 1d2 - // 194: bipush 2 - // 195: istore 12 - // 197: goto 1d2 - // 19a: bipush 3 - // 19b: istore 12 - // 19d: goto 1d2 - // 1a0: bipush 4 - // 1a1: istore 12 - // 1a3: goto 1d2 - // 1a6: bipush 5 - // 1a7: istore 12 - // 1a9: goto 1d2 - // 1ac: bipush 6 - // 1ae: istore 12 - // 1b0: goto 1d2 - // 1b3: bipush 7 - // 1b5: istore 12 - // 1b7: goto 1d2 - // 1ba: bipush 8 - // 1bc: istore 12 - // 1be: goto 1d2 - // 1c1: bipush 9 - // 1c3: istore 12 - // 1c5: goto 1d2 - // 1c8: bipush 10 - // 1ca: istore 12 - // 1cc: goto 1d2 - // 1cf: goto 059 - // 1d2: iload 12 - // 1d4: tableswitch -77 0 10 -307 -172 -77 -64 -90 -116 -58 -103 -46 -33 -40 - // 210: return - } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/basics/ctrl/Ctrl.dec b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/basics/ctrl/Ctrl.dec index caa0aa98..eb1a5738 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/basics/ctrl/Ctrl.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/basics/ctrl/Ctrl.dec @@ -1,14 +1,14 @@ package pack.tests.basics.ctrl; public class Ctrl { - private String ret = "FAIL"; + private String ret = d[3]; public int BRANCHLOCK_DOT_NET_DEMO; public Ctrl(int var1) { } public void runt(int var1) { - if (!"a".equals("b")) { + if (!d[1].equals(d[0])) { throw new UnsupportedOperationException(); } } @@ -17,12 +17,12 @@ public class Ctrl { try { this.runt(8206); } catch (RuntimeException var3) { - this.ret = "PASS"; + this.ret = d[2]; } try { this.runt(8206); - this.ret = "FAIL"; + this.ret = d[3]; } catch (Exception var2) { } } @@ -31,202 +31,4 @@ public class Ctrl { this.runf(13495); System.out.println(this.ret); } - - static { - // $VF: Couldn't be decompiled - // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) - // java.lang.RuntimeException: parsing failure! - // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) - // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) - // - // Bytecode: - // 000: ldc "๎๋\u0003๋ミລ1リᅩハ๎'\n*-" - // 002: invokevirtual java/lang/String.toCharArray ()[C - // 005: astore 0 - // 006: bipush 0 - // 007: istore 1 - // 008: aload 0 - // 009: dup - // 00a: bipush 4 - // 00b: swap - // 00c: bipush 13 - // 00e: caload - // 00f: aload 0 - // 010: dup - // 011: bipush 13 - // 013: swap - // 014: bipush 4 - // 015: caload - // 016: castore - // 017: castore - // 018: aload 0 - // 019: dup - // 01a: bipush 5 - // 01b: swap - // 01c: bipush 0 - // 01d: caload - // 01e: aload 0 - // 01f: dup - // 020: bipush 0 - // 021: swap - // 022: bipush 5 - // 023: caload - // 024: castore - // 025: castore - // 026: aload 0 - // 027: dup - // 028: bipush 8 - // 02a: swap - // 02b: bipush 20 - // 02d: caload - // 02e: aload 0 - // 02f: dup - // 030: bipush 20 - // 032: swap - // 033: bipush 8 - // 035: caload - // 036: castore - // 037: castore - // 038: goto 13d - // 03b: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; - // 03e: bipush 0 - // 03f: aaload - // 040: astore 4 - // 042: aload 4 - // 044: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; - // 047: invokevirtual java/lang/String.hashCode ()I - // 04a: ldc 65535 - // 04c: iand - // 04d: istore 5 - // 04f: aload 4 - // 051: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; - // 054: invokevirtual java/lang/String.toCharArray ()[C - // 057: astore 6 - // 059: aload 0 - // 05a: iload 1 - // 05b: iinc 1 1 - // 05e: caload - // 05f: bipush 8 - // 061: ixor - // 062: iload 5 - // 064: ixor - // 065: anewarray 24 - // 068: astore 7 - // 06a: bipush 0 - // 06b: istore 8 - // 06d: aload 0 - // 06e: iload 1 - // 06f: iinc 1 1 - // 072: caload - // 073: sipush 227 - // 076: ixor - // 077: iload 5 - // 079: ixor - // 07a: istore 2 - // 07b: iload 2 - // 07c: newarray 5 - // 07e: astore 9 - // 080: bipush 0 - // 081: istore 10 - // 083: iload 2 - // 084: ifle 11e - // 087: aload 0 - // 088: iload 1 - // 089: caload - // 08a: istore 11 - // 08c: aload 6 - // 08e: iload 1 - // 08f: aload 6 - // 091: arraylength - // 092: irem - // 093: caload - // 094: bipush 61 - // 096: ixor - // 097: lookupswitch 113 13 19 220 73 169 77 182 78 195 79 208 81 214 84 226 86 239 88 245 92 252 94 259 95 273 126 266 - // 108: aload 9 - // 10a: iload 10 - // 10c: iload 11 - // 10e: castore - // 10f: iinc 10 1 - // 112: iinc 1 1 - // 115: iinc 2 -1 - // 118: bipush 0 - // 119: istore 12 - // 11b: goto 1b2 - // 11e: aload 7 - // 120: iload 8 - // 122: iinc 8 1 - // 125: new java/lang/String - // 128: dup - // 129: aload 9 - // 12b: invokespecial java/lang/String. ([C)V - // 12e: invokevirtual java/lang/String.intern ()Ljava/lang/String; - // 131: aastore - // 132: iload 1 - // 133: aload 0 - // 134: arraylength - // 135: if_icmplt 06d - // 138: aload 7 - // 13a: putstatic pack/tests/basics/ctrl/Ctrl.d [Ljava/lang/String; - // 13d: goto 1f0 - // 140: iload 11 - // 142: bipush -97 - // 144: ixor - // 145: istore 11 - // 147: bipush 1 - // 148: istore 12 - // 14a: goto 1b2 - // 14d: iload 11 - // 14f: bipush 75 - // 151: ixor - // 152: istore 11 - // 154: bipush 1 - // 155: istore 12 - // 157: goto 1b2 - // 15a: iload 11 - // 15c: bipush -39 - // 15e: ixor - // 15f: istore 11 - // 161: bipush 1 - // 162: istore 12 - // 164: goto 1b2 - // 167: bipush 2 - // 168: istore 12 - // 16a: goto 1b2 - // 16d: bipush 3 - // 16e: istore 12 - // 170: goto 1b2 - // 173: bipush 4 - // 174: istore 12 - // 176: goto 1b2 - // 179: iload 11 - // 17b: bipush 97 - // 17d: ixor - // 17e: istore 11 - // 180: bipush 1 - // 181: istore 12 - // 183: goto 1b2 - // 186: bipush 5 - // 187: istore 12 - // 189: goto 1b2 - // 18c: bipush 6 - // 18e: istore 12 - // 190: goto 1b2 - // 193: bipush 7 - // 195: istore 12 - // 197: goto 1b2 - // 19a: bipush 8 - // 19c: istore 12 - // 19e: goto 1b2 - // 1a1: bipush 9 - // 1a3: istore 12 - // 1a5: goto 1b2 - // 1a8: bipush 10 - // 1aa: istore 12 - // 1ac: goto 1b2 - // 1af: goto 03b - // 1b2: iload 12 - // 1b4: tableswitch -77 0 10 -305 -172 -103 -90 -77 -65 -59 -46 -40 -116 -26 - // 1f0: return - } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/basics/inner/Test.dec b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/basics/inner/Test.dec index 2f36a05e..3af2710b 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/basics/inner/Test.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/basics/inner/Test.dec @@ -13,235 +13,9 @@ public class Test { Exec.Inner var4 = var2.new Inner(var2, 100, 14056); var4.doAdd(15081); if (var2.fuss == 108) { - System.out.println("PASS"); + System.out.println(d[1]); } else { - System.out.println("ERROR"); + System.out.println(d[0]); } } - - static { - // $VF: Couldn't be decompiled - // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) - // java.lang.RuntimeException: parsing failure! - // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) - // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) - // - // Bytecode: - // 000: ldc "\u0007\u0e3box\u001b\u0efe^ฺ\ufff3\u0018\u001a\u001b" - // 002: invokevirtual java/lang/String.toCharArray ()[C - // 005: astore 0 - // 006: bipush 0 - // 007: istore 1 - // 008: aload 0 - // 009: dup - // 00a: bipush 10 - // 00c: swap - // 00d: bipush 4 - // 00e: caload - // 00f: aload 0 - // 010: dup - // 011: bipush 4 - // 012: swap - // 013: bipush 10 - // 015: caload - // 016: castore - // 017: castore - // 018: aload 0 - // 019: dup - // 01a: bipush 9 - // 01c: swap - // 01d: bipush 8 - // 01f: caload - // 020: aload 0 - // 021: dup - // 022: bipush 8 - // 024: swap - // 025: bipush 9 - // 027: caload - // 028: castore - // 029: castore - // 02a: aload 0 - // 02b: dup - // 02c: bipush 5 - // 02d: swap - // 02e: bipush 0 - // 02f: caload - // 030: aload 0 - // 031: dup - // 032: bipush 0 - // 033: swap - // 034: bipush 5 - // 035: caload - // 036: castore - // 037: castore - // 038: aload 0 - // 039: dup - // 03a: bipush 6 - // 03c: swap - // 03d: bipush 17 - // 03f: caload - // 040: aload 0 - // 041: dup - // 042: bipush 17 - // 044: swap - // 045: bipush 6 - // 047: caload - // 048: castore - // 049: castore - // 04a: aload 0 - // 04b: dup - // 04c: bipush 7 - // 04e: swap - // 04f: bipush 4 - // 050: caload - // 051: aload 0 - // 052: dup - // 053: bipush 4 - // 054: swap - // 055: bipush 7 - // 057: caload - // 058: castore - // 059: castore - // 05a: goto 161 - // 05d: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; - // 060: bipush 0 - // 061: aaload - // 062: astore 4 - // 064: aload 4 - // 066: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; - // 069: invokevirtual java/lang/String.hashCode ()I - // 06c: ldc 65535 - // 06e: iand - // 06f: istore 5 - // 071: aload 4 - // 073: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; - // 076: invokevirtual java/lang/String.toCharArray ()[C - // 079: astore 6 - // 07b: aload 0 - // 07c: iload 1 - // 07d: iinc 1 1 - // 080: caload - // 081: bipush 85 - // 083: ixor - // 084: iload 5 - // 086: ixor - // 087: anewarray 54 - // 08a: astore 7 - // 08c: bipush 0 - // 08d: istore 8 - // 08f: aload 0 - // 090: iload 1 - // 091: iinc 1 1 - // 094: caload - // 095: sipush 151 - // 098: ixor - // 099: iload 5 - // 09b: ixor - // 09c: istore 2 - // 09d: iload 2 - // 09e: newarray 5 - // 0a0: astore 9 - // 0a2: bipush 0 - // 0a3: istore 10 - // 0a5: iload 2 - // 0a6: ifle 142 - // 0a9: aload 0 - // 0aa: iload 1 - // 0ab: caload - // 0ac: istore 11 - // 0ae: aload 6 - // 0b0: iload 1 - // 0b1: aload 6 - // 0b3: arraylength - // 0b4: irem - // 0b5: caload - // 0b6: sipush 201 - // 0b9: ixor - // 0ba: lookupswitch 114 13 157 274 160 170 162 183 167 209 168 215 170 221 171 227 172 233 185 240 186 247 187 260 189 267 231 196 - // 12c: aload 9 - // 12e: iload 10 - // 130: iload 11 - // 132: castore - // 133: iinc 10 1 - // 136: iinc 1 1 - // 139: iinc 2 -1 - // 13c: bipush 0 - // 13d: istore 12 - // 13f: goto 1d6 - // 142: aload 7 - // 144: iload 8 - // 146: iinc 8 1 - // 149: new java/lang/String - // 14c: dup - // 14d: aload 9 - // 14f: invokespecial java/lang/String. ([C)V - // 152: invokevirtual java/lang/String.intern ()Ljava/lang/String; - // 155: aastore - // 156: iload 1 - // 157: aload 0 - // 158: arraylength - // 159: if_icmplt 08f - // 15c: aload 7 - // 15e: putstatic pack/tests/basics/inner/Test.d [Ljava/lang/String; - // 161: goto 214 - // 164: iload 11 - // 166: bipush 12 - // 168: ixor - // 169: istore 11 - // 16b: bipush 1 - // 16c: istore 12 - // 16e: goto 1d6 - // 171: iload 11 - // 173: bipush 42 - // 175: ixor - // 176: istore 11 - // 178: bipush 1 - // 179: istore 12 - // 17b: goto 1d6 - // 17e: iload 11 - // 180: bipush 72 - // 182: ixor - // 183: istore 11 - // 185: bipush 1 - // 186: istore 12 - // 188: goto 1d6 - // 18b: bipush 2 - // 18c: istore 12 - // 18e: goto 1d6 - // 191: bipush 3 - // 192: istore 12 - // 194: goto 1d6 - // 197: bipush 4 - // 198: istore 12 - // 19a: goto 1d6 - // 19d: bipush 5 - // 19e: istore 12 - // 1a0: goto 1d6 - // 1a3: bipush 6 - // 1a5: istore 12 - // 1a7: goto 1d6 - // 1aa: bipush 7 - // 1ac: istore 12 - // 1ae: goto 1d6 - // 1b1: iload 11 - // 1b3: bipush -78 - // 1b5: ixor - // 1b6: istore 11 - // 1b8: bipush 1 - // 1b9: istore 12 - // 1bb: goto 1d6 - // 1be: bipush 8 - // 1c0: istore 12 - // 1c2: goto 1d6 - // 1c5: bipush 9 - // 1c7: istore 12 - // 1c9: goto 1d6 - // 1cc: bipush 10 - // 1ce: istore 12 - // 1d0: goto 1d6 - // 1d3: goto 05d - // 1d6: iload 12 - // 1d8: tableswitch -71 0 10 -307 -172 -103 -90 -77 -71 -116 -53 -65 -59 -26 - // 214: return - } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/basics/overwirte/Sub.dec b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/basics/overwirte/Sub.dec index 74565839..e6535e54 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/basics/overwirte/Sub.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/basics/overwirte/Sub.dec @@ -16,239 +16,4 @@ public class Sub extends Super { public String face(int var1, int var2) { return var1 == 1 ? d[var2 ^ 8362] : d[var2 ^ 8363]; } - - static { - // $VF: Couldn't be decompiled - // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) - // java.lang.RuntimeException: parsing failure! - // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) - // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) - // - // Bytecode: - // 000: ldc "\u001bໄໄᅲ7ン\u0e7e4マ\u0014(" - // 002: invokevirtual java/lang/String.toCharArray ()[C - // 005: astore 0 - // 006: bipush 0 - // 007: istore 1 - // 008: aload 0 - // 009: dup - // 00a: bipush 0 - // 00b: swap - // 00c: bipush 7 - // 00e: caload - // 00f: aload 0 - // 010: dup - // 011: bipush 7 - // 013: swap - // 014: bipush 0 - // 015: caload - // 016: castore - // 017: castore - // 018: aload 0 - // 019: dup - // 01a: bipush 6 - // 01c: swap - // 01d: bipush 2 - // 01e: caload - // 01f: aload 0 - // 020: dup - // 021: bipush 2 - // 022: swap - // 023: bipush 6 - // 025: caload - // 026: castore - // 027: castore - // 028: aload 0 - // 029: dup - // 02a: bipush 2 - // 02b: swap - // 02c: bipush 0 - // 02d: caload - // 02e: aload 0 - // 02f: dup - // 030: bipush 0 - // 031: swap - // 032: bipush 2 - // 033: caload - // 034: castore - // 035: castore - // 036: aload 0 - // 037: dup - // 038: bipush 7 - // 03a: swap - // 03b: bipush 14 - // 03d: caload - // 03e: aload 0 - // 03f: dup - // 040: bipush 14 - // 042: swap - // 043: bipush 7 - // 045: caload - // 046: castore - // 047: castore - // 048: aload 0 - // 049: dup - // 04a: bipush 6 - // 04c: swap - // 04d: bipush 2 - // 04e: caload - // 04f: aload 0 - // 050: dup - // 051: bipush 2 - // 052: swap - // 053: bipush 6 - // 055: caload - // 056: castore - // 057: castore - // 058: goto 175 - // 05b: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; - // 05e: bipush 0 - // 05f: aaload - // 060: astore 4 - // 062: aload 4 - // 064: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; - // 067: invokevirtual java/lang/String.hashCode ()I - // 06a: ldc 65535 - // 06c: iand - // 06d: istore 5 - // 06f: aload 4 - // 071: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; - // 074: invokevirtual java/lang/String.toCharArray ()[C - // 077: astore 6 - // 079: aload 0 - // 07a: iload 1 - // 07b: iinc 1 1 - // 07e: caload - // 07f: sipush 213 - // 082: ixor - // 083: iload 5 - // 085: ixor - // 086: anewarray 39 - // 089: astore 7 - // 08b: bipush 0 - // 08c: istore 8 - // 08e: aload 0 - // 08f: iload 1 - // 090: iinc 1 1 - // 093: caload - // 094: bipush 105 - // 096: ixor - // 097: iload 5 - // 099: ixor - // 09a: istore 2 - // 09b: iload 2 - // 09c: newarray 5 - // 09e: astore 9 - // 0a0: bipush 0 - // 0a1: istore 10 - // 0a3: iload 2 - // 0a4: ifle 156 - // 0a7: aload 0 - // 0a8: iload 1 - // 0a9: caload - // 0aa: istore 11 - // 0ac: aload 6 - // 0ae: iload 1 - // 0af: aload 6 - // 0b1: arraylength - // 0b2: irem - // 0b3: caload - // 0b4: bipush 123 - // 0b6: ixor - // 0b7: lookupswitch 137 16 8 193 9 219 11 225 12 238 13 244 14 250 15 256 16 263 18 276 20 283 24 297 25 304 26 311 30 318 40 206 85 290 - // 140: aload 9 - // 142: iload 10 - // 144: iload 11 - // 146: castore - // 147: iinc 10 1 - // 14a: iinc 1 1 - // 14d: iinc 2 -1 - // 150: bipush 0 - // 151: istore 12 - // 153: goto 1ff - // 156: aload 7 - // 158: iload 8 - // 15a: iinc 8 1 - // 15d: new java/lang/String - // 160: dup - // 161: aload 9 - // 163: invokespecial java/lang/String. ([C)V - // 166: invokevirtual java/lang/String.intern ()Ljava/lang/String; - // 169: aastore - // 16a: iload 1 - // 16b: aload 0 - // 16c: arraylength - // 16d: if_icmplt 08e - // 170: aload 7 - // 172: putstatic pack/tests/basics/overwirte/Sub.d [Ljava/lang/String; - // 175: goto 248 - // 178: iload 11 - // 17a: bipush 93 - // 17c: ixor - // 17d: istore 11 - // 17f: bipush 1 - // 180: istore 12 - // 182: goto 1ff - // 185: iload 11 - // 187: bipush 100 - // 189: ixor - // 18a: istore 11 - // 18c: bipush 1 - // 18d: istore 12 - // 18f: goto 1ff - // 192: bipush 2 - // 193: istore 12 - // 195: goto 1ff - // 198: iload 11 - // 19a: bipush -50 - // 19c: ixor - // 19d: istore 11 - // 19f: bipush 1 - // 1a0: istore 12 - // 1a2: goto 1ff - // 1a5: bipush 3 - // 1a6: istore 12 - // 1a8: goto 1ff - // 1ab: bipush 4 - // 1ac: istore 12 - // 1ae: goto 1ff - // 1b1: bipush 5 - // 1b2: istore 12 - // 1b4: goto 1ff - // 1b7: bipush 6 - // 1b9: istore 12 - // 1bb: goto 1ff - // 1be: iload 11 - // 1c0: bipush -106 - // 1c2: ixor - // 1c3: istore 11 - // 1c5: bipush 1 - // 1c6: istore 12 - // 1c8: goto 1ff - // 1cb: bipush 7 - // 1cd: istore 12 - // 1cf: goto 1ff - // 1d2: bipush 8 - // 1d4: istore 12 - // 1d6: goto 1ff - // 1d9: bipush 9 - // 1db: istore 12 - // 1dd: goto 1ff - // 1e0: bipush 10 - // 1e2: istore 12 - // 1e4: goto 1ff - // 1e7: bipush 11 - // 1e9: istore 12 - // 1eb: goto 1ff - // 1ee: bipush 12 - // 1f0: istore 12 - // 1f2: goto 1ff - // 1f5: bipush 13 - // 1f7: istore 12 - // 1f9: goto 1ff - // 1fc: goto 05b - // 1ff: iload 12 - // 201: tableswitch -86 0 13 -350 -193 -137 -124 -105 -92 -86 -74 -111 -80 -40 -67 -47 -33 - // 248: return - } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/basics/overwirte/Super.dec b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/basics/overwirte/Super.dec index d649ae43..03fe6bf3 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/basics/overwirte/Super.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/basics/overwirte/Super.dec @@ -9,211 +9,4 @@ public abstract class Super implements Face { public void run(int var1) { System.out.println(d[var1 ^ 25940]); } - - static { - // $VF: Couldn't be decompiled - // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) - // java.lang.RuntimeException: parsing failure! - // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) - // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) - // - // Bytecode: - // 000: ldc "\u0e78\u0e75\u0019\u001eᅵ<" - // 002: invokevirtual java/lang/String.toCharArray ()[C - // 005: astore 0 - // 006: bipush 0 - // 007: istore 1 - // 008: aload 0 - // 009: dup - // 00a: bipush 1 - // 00b: swap - // 00c: bipush 0 - // 00d: caload - // 00e: aload 0 - // 00f: dup - // 010: bipush 0 - // 011: swap - // 012: bipush 1 - // 013: caload - // 014: castore - // 015: castore - // 016: aload 0 - // 017: dup - // 018: bipush 5 - // 019: swap - // 01a: bipush 7 - // 01c: caload - // 01d: aload 0 - // 01e: dup - // 01f: bipush 7 - // 021: swap - // 022: bipush 5 - // 023: caload - // 024: castore - // 025: castore - // 026: aload 0 - // 027: dup - // 028: bipush 4 - // 029: swap - // 02a: bipush 1 - // 02b: caload - // 02c: aload 0 - // 02d: dup - // 02e: bipush 1 - // 02f: swap - // 030: bipush 4 - // 031: caload - // 032: castore - // 033: castore - // 034: goto 155 - // 037: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; - // 03a: bipush 0 - // 03b: aaload - // 03c: astore 4 - // 03e: aload 4 - // 040: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; - // 043: invokevirtual java/lang/String.hashCode ()I - // 046: ldc 65535 - // 048: iand - // 049: istore 5 - // 04b: aload 4 - // 04d: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; - // 050: invokevirtual java/lang/String.toCharArray ()[C - // 053: astore 6 - // 055: aload 0 - // 056: iload 1 - // 057: iinc 1 1 - // 05a: caload - // 05b: sipush 221 - // 05e: ixor - // 05f: iload 5 - // 061: ixor - // 062: anewarray 35 - // 065: astore 7 - // 067: bipush 0 - // 068: istore 8 - // 06a: aload 0 - // 06b: iload 1 - // 06c: iinc 1 1 - // 06f: caload - // 070: sipush 213 - // 073: ixor - // 074: iload 5 - // 076: ixor - // 077: istore 2 - // 078: iload 2 - // 079: newarray 5 - // 07b: astore 9 - // 07d: bipush 0 - // 07e: istore 10 - // 080: iload 2 - // 081: ifle 136 - // 084: aload 0 - // 085: iload 1 - // 086: caload - // 087: istore 11 - // 089: aload 6 - // 08b: iload 1 - // 08c: aload 6 - // 08e: arraylength - // 08f: irem - // 090: caload - // 091: bipush 92 - // 093: ixor - // 094: lookupswitch 140 16 15 259 40 196 41 209 42 215 43 228 44 234 46 247 47 253 51 273 53 286 55 293 57 300 61 307 62 314 63 321 114 266 - // 120: aload 9 - // 122: iload 10 - // 124: iload 11 - // 126: castore - // 127: iinc 10 1 - // 12a: iinc 1 1 - // 12d: iinc 2 -1 - // 130: bipush 0 - // 131: istore 12 - // 133: goto 1df - // 136: aload 7 - // 138: iload 8 - // 13a: iinc 8 1 - // 13d: new java/lang/String - // 140: dup - // 141: aload 9 - // 143: invokespecial java/lang/String. ([C)V - // 146: invokevirtual java/lang/String.intern ()Ljava/lang/String; - // 149: aastore - // 14a: iload 1 - // 14b: aload 0 - // 14c: arraylength - // 14d: if_icmplt 06a - // 150: aload 7 - // 152: putstatic pack/tests/basics/overwirte/Super.d [Ljava/lang/String; - // 155: goto 228 - // 158: iload 11 - // 15a: bipush 112 - // 15c: ixor - // 15d: istore 11 - // 15f: bipush 1 - // 160: istore 12 - // 162: goto 1df - // 165: bipush 2 - // 166: istore 12 - // 168: goto 1df - // 16b: iload 11 - // 16d: bipush -107 - // 16f: ixor - // 170: istore 11 - // 172: bipush 1 - // 173: istore 12 - // 175: goto 1df - // 178: bipush 3 - // 179: istore 12 - // 17b: goto 1df - // 17e: iload 11 - // 180: bipush 95 - // 182: ixor - // 183: istore 11 - // 185: bipush 1 - // 186: istore 12 - // 188: goto 1df - // 18b: bipush 4 - // 18c: istore 12 - // 18e: goto 1df - // 191: bipush 5 - // 192: istore 12 - // 194: goto 1df - // 197: bipush 6 - // 199: istore 12 - // 19b: goto 1df - // 19e: bipush 7 - // 1a0: istore 12 - // 1a2: goto 1df - // 1a5: iload 11 - // 1a7: bipush 39 - // 1a9: ixor - // 1aa: istore 11 - // 1ac: bipush 1 - // 1ad: istore 12 - // 1af: goto 1df - // 1b2: bipush 8 - // 1b4: istore 12 - // 1b6: goto 1df - // 1b9: bipush 9 - // 1bb: istore 12 - // 1bd: goto 1df - // 1c0: bipush 10 - // 1c2: istore 12 - // 1c4: goto 1df - // 1c7: bipush 11 - // 1c9: istore 12 - // 1cb: goto 1df - // 1ce: bipush 12 - // 1d0: istore 12 - // 1d2: goto 1df - // 1d5: bipush 13 - // 1d7: istore 12 - // 1d9: goto 1df - // 1dc: goto 037 - // 1df: iload 12 - // 1e1: tableswitch -353 0 13 -353 -193 -137 -124 -99 -86 -80 -118 -74 -47 -60 -40 -33 -26 - // 228: return - } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/basics/runable/Task.dec b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/basics/runable/Task.dec index fc91625b..126da8a3 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/basics/runable/Task.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/basics/runable/Task.dec @@ -35,9 +35,9 @@ public class Task { Thread.sleep(300L); if (Exec.i == 30) { - System.out.println("PASS"); + System.out.println(d[1]); } else { - System.out.println("FAIL"); + System.out.println(d[0]); } } @@ -46,222 +46,4 @@ public class Task { var0.doAdd(); Exec.i += var1; } - - static { - // $VF: Couldn't be decompiled - // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) - // java.lang.RuntimeException: parsing failure! - // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) - // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) - // - // Bytecode: - // 000: ldc "メศᅤᅧ\uffd0ຌศム\u0012\u001f\u0012" - // 002: invokevirtual java/lang/String.toCharArray ()[C - // 005: astore 0 - // 006: bipush 0 - // 007: istore 1 - // 008: aload 0 - // 009: dup - // 00a: bipush 10 - // 00c: swap - // 00d: bipush 3 - // 00e: caload - // 00f: aload 0 - // 010: dup - // 011: bipush 3 - // 012: swap - // 013: bipush 10 - // 015: caload - // 016: castore - // 017: castore - // 018: aload 0 - // 019: dup - // 01a: bipush 9 - // 01c: swap - // 01d: bipush 5 - // 01e: caload - // 01f: aload 0 - // 020: dup - // 021: bipush 5 - // 022: swap - // 023: bipush 9 - // 025: caload - // 026: castore - // 027: castore - // 028: aload 0 - // 029: dup - // 02a: bipush 9 - // 02c: swap - // 02d: bipush 0 - // 02e: caload - // 02f: aload 0 - // 030: dup - // 031: bipush 0 - // 032: swap - // 033: bipush 9 - // 035: caload - // 036: castore - // 037: castore - // 038: aload 0 - // 039: dup - // 03a: bipush 8 - // 03c: swap - // 03d: bipush 15 - // 03f: caload - // 040: aload 0 - // 041: dup - // 042: bipush 15 - // 044: swap - // 045: bipush 8 - // 047: caload - // 048: castore - // 049: castore - // 04a: goto 161 - // 04d: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; - // 050: bipush 0 - // 051: aaload - // 052: astore 4 - // 054: aload 4 - // 056: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; - // 059: invokevirtual java/lang/String.hashCode ()I - // 05c: ldc 65535 - // 05e: iand - // 05f: istore 5 - // 061: aload 4 - // 063: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; - // 066: invokevirtual java/lang/String.toCharArray ()[C - // 069: astore 6 - // 06b: aload 0 - // 06c: iload 1 - // 06d: iinc 1 1 - // 070: caload - // 071: bipush 39 - // 073: ixor - // 074: iload 5 - // 076: ixor - // 077: anewarray 97 - // 07a: astore 7 - // 07c: bipush 0 - // 07d: istore 8 - // 07f: aload 0 - // 080: iload 1 - // 081: iinc 1 1 - // 084: caload - // 085: sipush 133 - // 088: ixor - // 089: iload 5 - // 08b: ixor - // 08c: istore 2 - // 08d: iload 2 - // 08e: newarray 5 - // 090: astore 9 - // 092: bipush 0 - // 093: istore 10 - // 095: iload 2 - // 096: ifle 142 - // 099: aload 0 - // 09a: iload 1 - // 09b: caload - // 09c: istore 11 - // 09e: aload 6 - // 0a0: iload 1 - // 0a1: aload 6 - // 0a3: arraylength - // 0a4: irem - // 0a5: caload - // 0a6: bipush 99 - // 0a8: ixor - // 0a9: lookupswitch 131 15 0 187 1 200 2 213 6 226 8 232 10 238 13 257 15 263 16 270 17 277 19 284 22 291 23 298 55 305 77 244 - // 12c: aload 9 - // 12e: iload 10 - // 130: iload 11 - // 132: castore - // 133: iinc 10 1 - // 136: iinc 1 1 - // 139: iinc 2 -1 - // 13c: bipush 0 - // 13d: istore 12 - // 13f: goto 1e4 - // 142: aload 7 - // 144: iload 8 - // 146: iinc 8 1 - // 149: new java/lang/String - // 14c: dup - // 14d: aload 9 - // 14f: invokespecial java/lang/String. ([C)V - // 152: invokevirtual java/lang/String.intern ()Ljava/lang/String; - // 155: aastore - // 156: iload 1 - // 157: aload 0 - // 158: arraylength - // 159: if_icmplt 07f - // 15c: aload 7 - // 15e: putstatic pack/tests/basics/runable/Task.d [Ljava/lang/String; - // 161: goto 228 - // 164: iload 11 - // 166: bipush -125 - // 168: ixor - // 169: istore 11 - // 16b: bipush 1 - // 16c: istore 12 - // 16e: goto 1e4 - // 171: iload 11 - // 173: bipush -63 - // 175: ixor - // 176: istore 11 - // 178: bipush 1 - // 179: istore 12 - // 17b: goto 1e4 - // 17e: iload 11 - // 180: bipush 83 - // 182: ixor - // 183: istore 11 - // 185: bipush 1 - // 186: istore 12 - // 188: goto 1e4 - // 18b: bipush 2 - // 18c: istore 12 - // 18e: goto 1e4 - // 191: bipush 3 - // 192: istore 12 - // 194: goto 1e4 - // 197: bipush 4 - // 198: istore 12 - // 19a: goto 1e4 - // 19d: iload 11 - // 19f: bipush -103 - // 1a1: ixor - // 1a2: istore 11 - // 1a4: bipush 1 - // 1a5: istore 12 - // 1a7: goto 1e4 - // 1aa: bipush 5 - // 1ab: istore 12 - // 1ad: goto 1e4 - // 1b0: bipush 6 - // 1b2: istore 12 - // 1b4: goto 1e4 - // 1b7: bipush 7 - // 1b9: istore 12 - // 1bb: goto 1e4 - // 1be: bipush 8 - // 1c0: istore 12 - // 1c2: goto 1e4 - // 1c5: bipush 9 - // 1c7: istore 12 - // 1c9: goto 1e4 - // 1cc: bipush 10 - // 1ce: istore 12 - // 1d0: goto 1e4 - // 1d3: bipush 11 - // 1d5: istore 12 - // 1d7: goto 1e4 - // 1da: bipush 12 - // 1dc: istore 12 - // 1de: goto 1e4 - // 1e1: goto 04d - // 1e4: iload 12 - // 1e6: tableswitch -19 0 12 -337 -186 -104 -91 -85 -130 -117 -54 -47 -79 -73 -33 -19 - // 228: return - } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/basics/sub/Solver.dec b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/basics/sub/Solver.dec index 444f2a1e..04baf08b 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/basics/sub/Solver.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/basics/sub/Solver.dec @@ -5,244 +5,9 @@ public class Solver { public Solver(int var1) { if (SolAdd.get(3122) == 3) { - System.out.println("PASS"); + System.out.println(d[1]); } else { - System.out.println("FAIL"); + System.out.println(d[0]); } } - - static { - // $VF: Couldn't be decompiled - // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) - // java.lang.RuntimeException: parsing failure! - // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) - // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) - // - // Bytecode: - // 000: ldc "ハຣᄚᅯ�\uffd9ຣ\uffe7ᅯໃノ" - // 002: invokevirtual java/lang/String.toCharArray ()[C - // 005: astore 0 - // 006: bipush 0 - // 007: istore 1 - // 008: aload 0 - // 009: dup - // 00a: bipush 3 - // 00b: swap - // 00c: bipush 8 - // 00e: caload - // 00f: aload 0 - // 010: dup - // 011: bipush 8 - // 013: swap - // 014: bipush 3 - // 015: caload - // 016: castore - // 017: castore - // 018: aload 0 - // 019: dup - // 01a: bipush 10 - // 01c: swap - // 01d: bipush 7 - // 01f: caload - // 020: aload 0 - // 021: dup - // 022: bipush 7 - // 024: swap - // 025: bipush 10 - // 027: caload - // 028: castore - // 029: castore - // 02a: aload 0 - // 02b: dup - // 02c: bipush 9 - // 02e: swap - // 02f: bipush 0 - // 030: caload - // 031: aload 0 - // 032: dup - // 033: bipush 0 - // 034: swap - // 035: bipush 9 - // 037: caload - // 038: castore - // 039: castore - // 03a: aload 0 - // 03b: dup - // 03c: bipush 5 - // 03d: swap - // 03e: bipush 21 - // 040: caload - // 041: aload 0 - // 042: dup - // 043: bipush 21 - // 045: swap - // 046: bipush 5 - // 047: caload - // 048: castore - // 049: castore - // 04a: aload 0 - // 04b: dup - // 04c: bipush 4 - // 04d: swap - // 04e: bipush 3 - // 04f: caload - // 050: aload 0 - // 051: dup - // 052: bipush 3 - // 053: swap - // 054: bipush 4 - // 055: caload - // 056: castore - // 057: castore - // 058: goto 175 - // 05b: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; - // 05e: bipush 0 - // 05f: aaload - // 060: astore 4 - // 062: aload 4 - // 064: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; - // 067: invokevirtual java/lang/String.hashCode ()I - // 06a: ldc 65535 - // 06c: iand - // 06d: istore 5 - // 06f: aload 4 - // 071: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; - // 074: invokevirtual java/lang/String.toCharArray ()[C - // 077: astore 6 - // 079: aload 0 - // 07a: iload 1 - // 07b: iinc 1 1 - // 07e: caload - // 07f: bipush 104 - // 081: ixor - // 082: iload 5 - // 084: ixor - // 085: anewarray 38 - // 088: astore 7 - // 08a: bipush 0 - // 08b: istore 8 - // 08d: aload 0 - // 08e: iload 1 - // 08f: iinc 1 1 - // 092: caload - // 093: bipush 14 - // 095: ixor - // 096: iload 5 - // 098: ixor - // 099: istore 2 - // 09a: iload 2 - // 09b: newarray 5 - // 09d: astore 9 - // 09f: bipush 0 - // 0a0: istore 10 - // 0a2: iload 2 - // 0a3: ifle 156 - // 0a6: aload 0 - // 0a7: iload 1 - // 0a8: caload - // 0a9: istore 11 - // 0ab: aload 6 - // 0ad: iload 1 - // 0ae: aload 6 - // 0b0: arraylength - // 0b1: irem - // 0b2: caload - // 0b3: bipush 113 - // 0b5: ixor - // 0b6: lookupswitch 138 16 1 194 2 207 3 226 4 239 5 245 7 251 16 257 18 270 19 277 20 284 24 291 26 298 29 305 30 312 34 213 95 319 - // 140: aload 9 - // 142: iload 10 - // 144: iload 11 - // 146: castore - // 147: iinc 10 1 - // 14a: iinc 1 1 - // 14d: iinc 2 -1 - // 150: bipush 0 - // 151: istore 12 - // 153: goto 1ff - // 156: aload 7 - // 158: iload 8 - // 15a: iinc 8 1 - // 15d: new java/lang/String - // 160: dup - // 161: aload 9 - // 163: invokespecial java/lang/String. ([C)V - // 166: invokevirtual java/lang/String.intern ()Ljava/lang/String; - // 169: aastore - // 16a: iload 1 - // 16b: aload 0 - // 16c: arraylength - // 16d: if_icmplt 08d - // 170: aload 7 - // 172: putstatic pack/tests/basics/sub/Solver.d [Ljava/lang/String; - // 175: goto 248 - // 178: iload 11 - // 17a: bipush -39 - // 17c: ixor - // 17d: istore 11 - // 17f: bipush 1 - // 180: istore 12 - // 182: goto 1ff - // 185: bipush 2 - // 186: istore 12 - // 188: goto 1ff - // 18b: iload 11 - // 18d: bipush -76 - // 18f: ixor - // 190: istore 11 - // 192: bipush 1 - // 193: istore 12 - // 195: goto 1ff - // 198: iload 11 - // 19a: bipush -107 - // 19c: ixor - // 19d: istore 11 - // 19f: bipush 1 - // 1a0: istore 12 - // 1a2: goto 1ff - // 1a5: bipush 3 - // 1a6: istore 12 - // 1a8: goto 1ff - // 1ab: bipush 4 - // 1ac: istore 12 - // 1ae: goto 1ff - // 1b1: bipush 5 - // 1b2: istore 12 - // 1b4: goto 1ff - // 1b7: iload 11 - // 1b9: bipush -10 - // 1bb: ixor - // 1bc: istore 11 - // 1be: bipush 1 - // 1bf: istore 12 - // 1c1: goto 1ff - // 1c4: bipush 6 - // 1c6: istore 12 - // 1c8: goto 1ff - // 1cb: bipush 7 - // 1cd: istore 12 - // 1cf: goto 1ff - // 1d2: bipush 8 - // 1d4: istore 12 - // 1d6: goto 1ff - // 1d9: bipush 9 - // 1db: istore 12 - // 1dd: goto 1ff - // 1e0: bipush 10 - // 1e2: istore 12 - // 1e4: goto 1ff - // 1e7: bipush 11 - // 1e9: istore 12 - // 1eb: goto 1ff - // 1ee: bipush 12 - // 1f0: istore 12 - // 1f2: goto 1ff - // 1f5: bipush 13 - // 1f7: istore 12 - // 1f9: goto 1ff - // 1fc: goto 05b - // 1ff: iload 12 - // 201: tableswitch -124 0 13 -351 -193 -137 -118 -105 -124 -74 -80 -86 -47 -40 -33 -26 -92 - // 248: return - } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/bench/Calc.dec b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/bench/Calc.dec index 69a782a3..8260f905 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/bench/Calc.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/bench/Calc.dec @@ -1,7 +1,7 @@ package pack.tests.bench; public class Calc { - public static int count; + public static int count = 0; public int BRANCHLOCK_DOT_NET_DEMO; public Calc(int var1) { @@ -16,9 +16,9 @@ public class Calc { runStr(31405); } - System.out.println("Calc: " + (System.currentTimeMillis() - var1) + "ms"); + System.out.println(d[6] + (System.currentTimeMillis() - var1) + d[1]); if (count != 30000) { - throw new RuntimeException("[ERROR]: Errors occurred in calc!"); + throw new RuntimeException(d[4]); } } @@ -33,248 +33,20 @@ public class Calc { private static void runAdd(int var0) { double var1 = 0.0; - while (var1 < 100.1) { - var1 += 0.99; + while (var1 < Double.longBitsToDouble(-292662827L + (Long.parseLong(d[3], 25) ^ 4636744327457716328L))) { + var1 += Double.longBitsToDouble((4607092347051790635L ^ Long.parseLong(d[2], 27)) - 824017068L); } count++; } private static void runStr(int var0) { - String var1 = ""; + String var1 = d[5]; while (var1.length() < 101) { - var1 = var1 + "ax"; + var1 = var1 + d[0]; } count++; } - - static { - // $VF: Couldn't be decompiled - // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) - // java.lang.RuntimeException: parsing failure! - // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) - // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) - // - // Bytecode: - // 000: ldc "ᄇຶ;ᅠຶᅢᆱຳ゚ᅧᅯヌ\u0ef0ᄉຳ?テ8\uffc0b;ボຕ\ufff3ハ£テ\ufff3フヨンᆰ(\uffc1ᅣ)ホ59ᅰᅴ(ᆰᅮᅧ\ufff8ᅦ\uffc0ホᅰᅲᄡᄏ{ິາ\u0019ᅬ69フホ" - // 002: invokevirtual java/lang/String.toCharArray ()[C - // 005: astore 0 - // 006: bipush 0 - // 007: istore 1 - // 008: aload 0 - // 009: dup - // 00a: bipush 24 - // 00c: swap - // 00d: bipush 29 - // 00f: caload - // 010: aload 0 - // 011: dup - // 012: bipush 29 - // 014: swap - // 015: bipush 24 - // 017: caload - // 018: castore - // 019: castore - // 01a: aload 0 - // 01b: dup - // 01c: bipush 15 - // 01e: swap - // 01f: bipush 14 - // 021: caload - // 022: aload 0 - // 023: dup - // 024: bipush 14 - // 026: swap - // 027: bipush 15 - // 029: caload - // 02a: castore - // 02b: castore - // 02c: aload 0 - // 02d: dup - // 02e: bipush 12 - // 030: swap - // 031: bipush 0 - // 032: caload - // 033: aload 0 - // 034: dup - // 035: bipush 0 - // 036: swap - // 037: bipush 12 - // 039: caload - // 03a: castore - // 03b: castore - // 03c: aload 0 - // 03d: dup - // 03e: bipush 45 - // 040: swap - // 041: bipush 70 - // 043: caload - // 044: aload 0 - // 045: dup - // 046: bipush 70 - // 048: swap - // 049: bipush 45 - // 04b: caload - // 04c: castore - // 04d: castore - // 04e: aload 0 - // 04f: dup - // 050: bipush 12 - // 052: swap - // 053: bipush 44 - // 055: caload - // 056: aload 0 - // 057: dup - // 058: bipush 44 - // 05a: swap - // 05b: bipush 12 - // 05d: caload - // 05e: castore - // 05f: castore - // 060: goto 165 - // 063: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; - // 066: bipush 0 - // 067: aaload - // 068: astore 4 - // 06a: aload 4 - // 06c: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; - // 06f: invokevirtual java/lang/String.hashCode ()I - // 072: ldc 65535 - // 074: iand - // 075: istore 5 - // 077: aload 4 - // 079: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; - // 07c: invokevirtual java/lang/String.toCharArray ()[C - // 07f: astore 6 - // 081: aload 0 - // 082: iload 1 - // 083: iinc 1 1 - // 086: caload - // 087: bipush 94 - // 089: ixor - // 08a: iload 5 - // 08c: ixor - // 08d: anewarray 73 - // 090: astore 7 - // 092: bipush 0 - // 093: istore 8 - // 095: aload 0 - // 096: iload 1 - // 097: iinc 1 1 - // 09a: caload - // 09b: bipush 29 - // 09d: ixor - // 09e: iload 5 - // 0a0: ixor - // 0a1: istore 2 - // 0a2: iload 2 - // 0a3: newarray 5 - // 0a5: astore 9 - // 0a7: bipush 0 - // 0a8: istore 10 - // 0aa: iload 2 - // 0ab: ifle 146 - // 0ae: aload 0 - // 0af: iload 1 - // 0b0: caload - // 0b1: istore 11 - // 0b3: aload 6 - // 0b5: iload 1 - // 0b6: aload 6 - // 0b8: arraylength - // 0b9: irem - // 0ba: caload - // 0bb: bipush 99 - // 0bd: ixor - // 0be: lookupswitch 114 13 0 170 1 189 2 202 6 215 8 228 11 234 13 246 15 253 16 260 19 267 23 274 32 183 77 240 - // 130: aload 9 - // 132: iload 10 - // 134: iload 11 - // 136: castore - // 137: iinc 10 1 - // 13a: iinc 1 1 - // 13d: iinc 2 -1 - // 140: bipush 0 - // 141: istore 12 - // 143: goto 1da - // 146: aload 7 - // 148: iload 8 - // 14a: iinc 8 1 - // 14d: new java/lang/String - // 150: dup - // 151: aload 9 - // 153: invokespecial java/lang/String. ([C)V - // 156: invokevirtual java/lang/String.intern ()Ljava/lang/String; - // 159: aastore - // 15a: iload 1 - // 15b: aload 0 - // 15c: arraylength - // 15d: if_icmplt 095 - // 160: aload 7 - // 162: putstatic pack/tests/bench/Calc.d [Ljava/lang/String; - // 165: goto 218 - // 168: iload 11 - // 16a: bipush 90 - // 16c: ixor - // 16d: istore 11 - // 16f: bipush 1 - // 170: istore 12 - // 172: goto 1da - // 175: bipush 2 - // 176: istore 12 - // 178: goto 1da - // 17b: iload 11 - // 17d: bipush -74 - // 17f: ixor - // 180: istore 11 - // 182: bipush 1 - // 183: istore 12 - // 185: goto 1da - // 188: iload 11 - // 18a: bipush -82 - // 18c: ixor - // 18d: istore 11 - // 18f: bipush 1 - // 190: istore 12 - // 192: goto 1da - // 195: iload 11 - // 197: bipush -40 - // 199: ixor - // 19a: istore 11 - // 19c: bipush 1 - // 19d: istore 12 - // 19f: goto 1da - // 1a2: bipush 3 - // 1a3: istore 12 - // 1a5: goto 1da - // 1a8: bipush 4 - // 1a9: istore 12 - // 1ab: goto 1da - // 1ae: bipush 5 - // 1af: istore 12 - // 1b1: goto 1da - // 1b4: bipush 6 - // 1b6: istore 12 - // 1b8: goto 1da - // 1bb: bipush 7 - // 1bd: istore 12 - // 1bf: goto 1da - // 1c2: bipush 8 - // 1c4: istore 12 - // 1c6: goto 1da - // 1c9: bipush 9 - // 1cb: istore 12 - // 1cd: goto 1da - // 1d0: bipush 10 - // 1d2: istore 12 - // 1d4: goto 1da - // 1d7: goto 063 - // 1da: iload 12 - // 1dc: tableswitch -71 0 10 -306 -172 -116 -71 -84 -97 -58 -103 -52 -46 -26 - // 218: bipush 0 - // 219: putstatic pack/tests/bench/Calc.count I - // 21c: return - } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/annot/annoe.dec b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/annot/annoe.dec index a292c37c..47859ad4 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/annot/annoe.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/annot/annoe.dec @@ -6,7 +6,7 @@ public class annoe { @anno( val = "PASS" ) - private static final String fail; + private static final String fail = "WHAT"; public int BRANCHLOCK_DOT_NET_DEMO; public annoe(int var1) { @@ -33,218 +33,4 @@ public class annoe { public void dov() { System.out.println("FAIL"); } - - static { - // $VF: Couldn't be decompiled - // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) - // java.lang.RuntimeException: parsing failure! - // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) - // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) - // - // Bytecode: - // 000: ldc "&ษ\u0eeeᅳ.ᅲษ0ᅮ33" - // 002: invokevirtual java/lang/String.toCharArray ()[C - // 005: astore 0 - // 006: bipush 0 - // 007: istore 1 - // 008: aload 0 - // 009: dup - // 00a: bipush 9 - // 00c: swap - // 00d: bipush 0 - // 00e: caload - // 00f: aload 0 - // 010: dup - // 011: bipush 0 - // 012: swap - // 013: bipush 9 - // 015: caload - // 016: castore - // 017: castore - // 018: aload 0 - // 019: dup - // 01a: bipush 2 - // 01b: swap - // 01c: bipush 0 - // 01d: caload - // 01e: aload 0 - // 01f: dup - // 020: bipush 0 - // 021: swap - // 022: bipush 2 - // 023: caload - // 024: castore - // 025: castore - // 026: aload 0 - // 027: dup - // 028: bipush 0 - // 029: swap - // 02a: bipush 16 - // 02c: caload - // 02d: aload 0 - // 02e: dup - // 02f: bipush 16 - // 031: swap - // 032: bipush 0 - // 033: caload - // 034: castore - // 035: castore - // 036: aload 0 - // 037: dup - // 038: bipush 2 - // 039: swap - // 03a: bipush 7 - // 03c: caload - // 03d: aload 0 - // 03e: dup - // 03f: bipush 7 - // 041: swap - // 042: bipush 2 - // 043: caload - // 044: castore - // 045: castore - // 046: goto 14d - // 049: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; - // 04c: bipush 0 - // 04d: aaload - // 04e: astore 4 - // 050: aload 4 - // 052: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; - // 055: invokevirtual java/lang/String.hashCode ()I - // 058: ldc 65535 - // 05a: iand - // 05b: istore 5 - // 05d: aload 4 - // 05f: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; - // 062: invokevirtual java/lang/String.toCharArray ()[C - // 065: astore 6 - // 067: aload 0 - // 068: iload 1 - // 069: iinc 1 1 - // 06c: caload - // 06d: bipush 69 - // 06f: ixor - // 070: iload 5 - // 072: ixor - // 073: anewarray 54 - // 076: astore 7 - // 078: bipush 0 - // 079: istore 8 - // 07b: aload 0 - // 07c: iload 1 - // 07d: iinc 1 1 - // 080: caload - // 081: sipush 132 - // 084: ixor - // 085: iload 5 - // 087: ixor - // 088: istore 2 - // 089: iload 2 - // 08a: newarray 5 - // 08c: astore 9 - // 08e: bipush 0 - // 08f: istore 10 - // 091: iload 2 - // 092: ifle 12e - // 095: aload 0 - // 096: iload 1 - // 097: caload - // 098: istore 11 - // 09a: aload 6 - // 09c: iload 1 - // 09d: aload 6 - // 09f: arraylength - // 0a0: irem - // 0a1: caload - // 0a2: bipush 45 - // 0a4: ixor - // 0a5: lookupswitch 115 13 3 197 65 171 66 184 67 210 70 223 72 229 75 235 76 241 78 247 89 254 93 261 94 268 95 275 - // 118: aload 9 - // 11a: iload 10 - // 11c: iload 11 - // 11e: castore - // 11f: iinc 10 1 - // 122: iinc 1 1 - // 125: iinc 2 -1 - // 128: bipush 0 - // 129: istore 12 - // 12b: goto 1c2 - // 12e: aload 7 - // 130: iload 8 - // 132: iinc 8 1 - // 135: new java/lang/String - // 138: dup - // 139: aload 9 - // 13b: invokespecial java/lang/String. ([C)V - // 13e: invokevirtual java/lang/String.intern ()Ljava/lang/String; - // 141: aastore - // 142: iload 1 - // 143: aload 0 - // 144: arraylength - // 145: if_icmplt 07b - // 148: aload 7 - // 14a: putstatic pack/tests/reflects/annot/annoe.d [Ljava/lang/String; - // 14d: goto 200 - // 150: iload 11 - // 152: bipush -30 - // 154: ixor - // 155: istore 11 - // 157: bipush 1 - // 158: istore 12 - // 15a: goto 1c2 - // 15d: iload 11 - // 15f: bipush 117 - // 161: ixor - // 162: istore 11 - // 164: bipush 1 - // 165: istore 12 - // 167: goto 1c2 - // 16a: iload 11 - // 16c: bipush 103 - // 16e: ixor - // 16f: istore 11 - // 171: bipush 1 - // 172: istore 12 - // 174: goto 1c2 - // 177: iload 11 - // 179: bipush -101 - // 17b: ixor - // 17c: istore 11 - // 17e: bipush 1 - // 17f: istore 12 - // 181: goto 1c2 - // 184: bipush 2 - // 185: istore 12 - // 187: goto 1c2 - // 18a: bipush 3 - // 18b: istore 12 - // 18d: goto 1c2 - // 190: bipush 4 - // 191: istore 12 - // 193: goto 1c2 - // 196: bipush 5 - // 197: istore 12 - // 199: goto 1c2 - // 19c: bipush 6 - // 19e: istore 12 - // 1a0: goto 1c2 - // 1a3: bipush 7 - // 1a5: istore 12 - // 1a7: goto 1c2 - // 1aa: bipush 8 - // 1ac: istore 12 - // 1ae: goto 1c2 - // 1b1: bipush 9 - // 1b3: istore 12 - // 1b5: goto 1c2 - // 1b8: bipush 10 - // 1ba: istore 12 - // 1bc: goto 1c2 - // 1bf: goto 049 - // 1c2: iload 12 - // 1c4: tableswitch -307 0 10 -307 -172 -77 -103 -90 -52 -58 -64 -40 -46 -33 - // 200: ldc "WHAT" - // 202: putstatic pack/tests/reflects/annot/annoe.fail Ljava/lang/String; - // 205: return - } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/annot/annot.dec b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/annot/annot.dec index 3746aff6..016f3553 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/annot/annot.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/annot/annot.dec @@ -14,207 +14,9 @@ public class annot { for (Method var6 : annoe.class.getDeclaredMethods()) { var6.setAccessible(true); anno var7 = var6.getAnnotation(anno.class); - if (var7 != null && var7.val().equals("yes")) { + if (var7 != null && var7.val().equals(d[0])) { var6.invoke(var2); } } } - - static { - // $VF: Couldn't be decompiled - // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) - // java.lang.RuntimeException: parsing failure! - // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) - // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) - // - // Bytecode: - // 000: ldc "ฐฤ\u001cツ\u0016" - // 002: invokevirtual java/lang/String.toCharArray ()[C - // 005: astore 0 - // 006: bipush 0 - // 007: istore 1 - // 008: aload 0 - // 009: dup - // 00a: bipush 0 - // 00b: swap - // 00c: bipush 0 - // 00d: caload - // 00e: aload 0 - // 00f: dup - // 010: bipush 0 - // 011: swap - // 012: bipush 0 - // 013: caload - // 014: castore - // 015: castore - // 016: aload 0 - // 017: dup - // 018: bipush 1 - // 019: swap - // 01a: bipush 9 - // 01c: caload - // 01d: aload 0 - // 01e: dup - // 01f: bipush 9 - // 021: swap - // 022: bipush 1 - // 023: caload - // 024: castore - // 025: castore - // 026: aload 0 - // 027: dup - // 028: bipush 2 - // 029: swap - // 02a: bipush 0 - // 02b: caload - // 02c: aload 0 - // 02d: dup - // 02e: bipush 0 - // 02f: swap - // 030: bipush 2 - // 031: caload - // 032: castore - // 033: castore - // 034: goto 13d - // 037: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; - // 03a: bipush 0 - // 03b: aaload - // 03c: astore 4 - // 03e: aload 4 - // 040: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; - // 043: invokevirtual java/lang/String.hashCode ()I - // 046: ldc 65535 - // 048: iand - // 049: istore 5 - // 04b: aload 4 - // 04d: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; - // 050: invokevirtual java/lang/String.toCharArray ()[C - // 053: astore 6 - // 055: aload 0 - // 056: iload 1 - // 057: iinc 1 1 - // 05a: caload - // 05b: sipush 184 - // 05e: ixor - // 05f: iload 5 - // 061: ixor - // 062: anewarray 42 - // 065: astore 7 - // 067: bipush 0 - // 068: istore 8 - // 06a: aload 0 - // 06b: iload 1 - // 06c: iinc 1 1 - // 06f: caload - // 070: sipush 142 - // 073: ixor - // 074: iload 5 - // 076: ixor - // 077: istore 2 - // 078: iload 2 - // 079: newarray 5 - // 07b: astore 9 - // 07d: bipush 0 - // 07e: istore 10 - // 080: iload 2 - // 081: ifle 11e - // 084: aload 0 - // 085: iload 1 - // 086: caload - // 087: istore 11 - // 089: aload 6 - // 08b: iload 1 - // 08c: aload 6 - // 08e: arraylength - // 08f: irem - // 090: caload - // 091: sipush 210 - // 094: ixor - // 095: lookupswitch 115 13 160 171 161 184 162 197 166 210 177 223 179 229 180 235 183 241 185 247 188 261 189 268 190 275 252 254 - // 108: aload 9 - // 10a: iload 10 - // 10c: iload 11 - // 10e: castore - // 10f: iinc 10 1 - // 112: iinc 1 1 - // 115: iinc 2 -1 - // 118: bipush 0 - // 119: istore 12 - // 11b: goto 1b2 - // 11e: aload 7 - // 120: iload 8 - // 122: iinc 8 1 - // 125: new java/lang/String - // 128: dup - // 129: aload 9 - // 12b: invokespecial java/lang/String. ([C)V - // 12e: invokevirtual java/lang/String.intern ()Ljava/lang/String; - // 131: aastore - // 132: iload 1 - // 133: aload 0 - // 134: arraylength - // 135: if_icmplt 06a - // 138: aload 7 - // 13a: putstatic pack/tests/reflects/annot/annot.d [Ljava/lang/String; - // 13d: goto 1f0 - // 140: iload 11 - // 142: bipush 16 - // 144: ixor - // 145: istore 11 - // 147: bipush 1 - // 148: istore 12 - // 14a: goto 1b2 - // 14d: iload 11 - // 14f: bipush -25 - // 151: ixor - // 152: istore 11 - // 154: bipush 1 - // 155: istore 12 - // 157: goto 1b2 - // 15a: iload 11 - // 15c: bipush -52 - // 15e: ixor - // 15f: istore 11 - // 161: bipush 1 - // 162: istore 12 - // 164: goto 1b2 - // 167: iload 11 - // 169: bipush 101 - // 16b: ixor - // 16c: istore 11 - // 16e: bipush 1 - // 16f: istore 12 - // 171: goto 1b2 - // 174: bipush 2 - // 175: istore 12 - // 177: goto 1b2 - // 17a: bipush 3 - // 17b: istore 12 - // 17d: goto 1b2 - // 180: bipush 4 - // 181: istore 12 - // 183: goto 1b2 - // 186: bipush 5 - // 187: istore 12 - // 189: goto 1b2 - // 18c: bipush 6 - // 18e: istore 12 - // 190: goto 1b2 - // 193: bipush 7 - // 195: istore 12 - // 197: goto 1b2 - // 19a: bipush 8 - // 19c: istore 12 - // 19e: goto 1b2 - // 1a1: bipush 9 - // 1a3: istore 12 - // 1a5: goto 1b2 - // 1a8: bipush 10 - // 1aa: istore 12 - // 1ac: goto 1b2 - // 1af: goto 037 - // 1b2: iload 12 - // 1b4: tableswitch -103 0 10 -308 -172 -77 -103 -64 -58 -46 -52 -116 -90 -40 - // 1f0: return - } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/counter/Count.dec b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/counter/Count.dec index 720a1125..7467850a 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/counter/Count.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/counter/Count.dec @@ -11,227 +11,9 @@ public class Count { && Countee.class.getDeclaredFields().length == 4 && Countee.class.getMethods().length > 4 && Countee.class.getDeclaredMethods().length == 4) { - System.out.println("PASS"); + System.out.println(d[0]); } else { - System.out.println("FAIL"); + System.out.println(d[1]); } } - - static { - // $VF: Couldn't be decompiled - // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) - // java.lang.RuntimeException: parsing failure! - // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) - // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) - // - // Bytecode: - // 000: ldc "\u0003\u0efc\u0ef4\u0012ᄉᄐ\u0efcᄈᆰタメ" - // 002: invokevirtual java/lang/String.toCharArray ()[C - // 005: astore 0 - // 006: bipush 0 - // 007: istore 1 - // 008: aload 0 - // 009: dup - // 00a: bipush 5 - // 00b: swap - // 00c: bipush 9 - // 00e: caload - // 00f: aload 0 - // 010: dup - // 011: bipush 9 - // 013: swap - // 014: bipush 5 - // 015: caload - // 016: castore - // 017: castore - // 018: aload 0 - // 019: dup - // 01a: bipush 8 - // 01c: swap - // 01d: bipush 10 - // 01f: caload - // 020: aload 0 - // 021: dup - // 022: bipush 10 - // 024: swap - // 025: bipush 8 - // 027: caload - // 028: castore - // 029: castore - // 02a: aload 0 - // 02b: dup - // 02c: bipush 2 - // 02d: swap - // 02e: bipush 0 - // 02f: caload - // 030: aload 0 - // 031: dup - // 032: bipush 0 - // 033: swap - // 034: bipush 2 - // 035: caload - // 036: castore - // 037: castore - // 038: aload 0 - // 039: dup - // 03a: bipush 10 - // 03c: swap - // 03d: bipush 13 - // 03f: caload - // 040: aload 0 - // 041: dup - // 042: bipush 13 - // 044: swap - // 045: bipush 10 - // 047: caload - // 048: castore - // 049: castore - // 04a: goto 161 - // 04d: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; - // 050: bipush 0 - // 051: aaload - // 052: astore 4 - // 054: aload 4 - // 056: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; - // 059: invokevirtual java/lang/String.hashCode ()I - // 05c: ldc 65535 - // 05e: iand - // 05f: istore 5 - // 061: aload 4 - // 063: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; - // 066: invokevirtual java/lang/String.toCharArray ()[C - // 069: astore 6 - // 06b: aload 0 - // 06c: iload 1 - // 06d: iinc 1 1 - // 070: caload - // 071: bipush 95 - // 073: ixor - // 074: iload 5 - // 076: ixor - // 077: anewarray 51 - // 07a: astore 7 - // 07c: bipush 0 - // 07d: istore 8 - // 07f: aload 0 - // 080: iload 1 - // 081: iinc 1 1 - // 084: caload - // 085: bipush 81 - // 087: ixor - // 088: iload 5 - // 08a: ixor - // 08b: istore 2 - // 08c: iload 2 - // 08d: newarray 5 - // 08f: astore 9 - // 091: bipush 0 - // 092: istore 10 - // 094: iload 2 - // 095: ifle 142 - // 098: aload 0 - // 099: iload 1 - // 09a: caload - // 09b: istore 11 - // 09d: aload 6 - // 09f: iload 1 - // 0a0: aload 6 - // 0a2: arraylength - // 0a3: irem - // 0a4: caload - // 0a5: sipush 211 - // 0a8: ixor - // 0a9: lookupswitch 131 15 144 251 160 187 161 200 163 213 166 219 167 232 176 245 178 257 181 263 182 270 184 277 188 284 189 298 191 305 253 291 - // 12c: aload 9 - // 12e: iload 10 - // 130: iload 11 - // 132: castore - // 133: iinc 10 1 - // 136: iinc 1 1 - // 139: iinc 2 -1 - // 13c: bipush 0 - // 13d: istore 12 - // 13f: goto 1e4 - // 142: aload 7 - // 144: iload 8 - // 146: iinc 8 1 - // 149: new java/lang/String - // 14c: dup - // 14d: aload 9 - // 14f: invokespecial java/lang/String. ([C)V - // 152: invokevirtual java/lang/String.intern ()Ljava/lang/String; - // 155: aastore - // 156: iload 1 - // 157: aload 0 - // 158: arraylength - // 159: if_icmplt 07f - // 15c: aload 7 - // 15e: putstatic pack/tests/reflects/counter/Count.d [Ljava/lang/String; - // 161: goto 228 - // 164: iload 11 - // 166: bipush -11 - // 168: ixor - // 169: istore 11 - // 16b: bipush 1 - // 16c: istore 12 - // 16e: goto 1e4 - // 171: iload 11 - // 173: bipush 83 - // 175: ixor - // 176: istore 11 - // 178: bipush 1 - // 179: istore 12 - // 17b: goto 1e4 - // 17e: bipush 2 - // 17f: istore 12 - // 181: goto 1e4 - // 184: iload 11 - // 186: bipush -26 - // 188: ixor - // 189: istore 11 - // 18b: bipush 1 - // 18c: istore 12 - // 18e: goto 1e4 - // 191: iload 11 - // 193: bipush -45 - // 195: ixor - // 196: istore 11 - // 198: bipush 1 - // 199: istore 12 - // 19b: goto 1e4 - // 19e: bipush 3 - // 19f: istore 12 - // 1a1: goto 1e4 - // 1a4: bipush 4 - // 1a5: istore 12 - // 1a7: goto 1e4 - // 1aa: bipush 5 - // 1ab: istore 12 - // 1ad: goto 1e4 - // 1b0: bipush 6 - // 1b2: istore 12 - // 1b4: goto 1e4 - // 1b7: bipush 7 - // 1b9: istore 12 - // 1bb: goto 1e4 - // 1be: bipush 8 - // 1c0: istore 12 - // 1c2: goto 1e4 - // 1c5: bipush 9 - // 1c7: istore 12 - // 1c9: goto 1e4 - // 1cc: bipush 10 - // 1ce: istore 12 - // 1d0: goto 1e4 - // 1d3: bipush 11 - // 1d5: istore 12 - // 1d7: goto 1e4 - // 1da: bipush 12 - // 1dc: istore 12 - // 1de: goto 1e4 - // 1e1: goto 04d - // 1e4: iload 12 - // 1e6: tableswitch -98 0 12 -338 -186 -117 -104 -85 -98 -66 -130 -72 -40 -60 -33 -47 - // 228: return - } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/field/FTest.dec b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/field/FTest.dec index fb44e0f8..0172b43f 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/field/FTest.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/field/FTest.dec @@ -13,246 +13,28 @@ public class FTest { public void run(int var1) { Constructor var2 = FObject.class.getDeclaredConstructor(int.class); if (var2.isAccessible()) { - System.out.println("FAIL"); + System.out.println(d[1]); } else { var2.setAccessible(true); FObject var3 = (FObject)var2.newInstance(1); - Method var4 = FObject.class.getDeclaredMethod("add", null); + Method var4 = FObject.class.getDeclaredMethod(d[2], null); if (var4.isAccessible()) { - System.out.println("FAIL"); + System.out.println(d[1]); } else { var4.setAccessible(true); var4.invoke(var3); - Field var5 = FObject.class.getDeclaredField("i"); + Field var5 = FObject.class.getDeclaredField(d[3]); if (var5.isAccessible()) { - System.out.println("FAIL"); + System.out.println(d[1]); } else { var5.setAccessible(true); if (var5.getInt(var3) != 4) { - System.out.println("FAIL"); + System.out.println(d[1]); } else { - System.out.println("PASS"); + System.out.println(d[0]); } } } } } - - static { - // $VF: Couldn't be decompiled - // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) - // java.lang.RuntimeException: parsing failure! - // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) - // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) - // - // Bytecode: - // 000: ldc "ユໝໝᄁ\ufffeห→↓¦ᄑ\u0eda\u001a+\uffc9໘\u0012" - // 002: invokevirtual java/lang/String.toCharArray ()[C - // 005: astore 0 - // 006: bipush 0 - // 007: istore 1 - // 008: aload 0 - // 009: dup - // 00a: bipush 2 - // 00b: swap - // 00c: bipush 6 - // 00e: caload - // 00f: aload 0 - // 010: dup - // 011: bipush 6 - // 013: swap - // 014: bipush 2 - // 015: caload - // 016: castore - // 017: castore - // 018: aload 0 - // 019: dup - // 01a: bipush 13 - // 01c: swap - // 01d: bipush 0 - // 01e: caload - // 01f: aload 0 - // 020: dup - // 021: bipush 0 - // 022: swap - // 023: bipush 13 - // 025: caload - // 026: castore - // 027: castore - // 028: aload 0 - // 029: dup - // 02a: bipush 2 - // 02b: swap - // 02c: bipush 0 - // 02d: caload - // 02e: aload 0 - // 02f: dup - // 030: bipush 0 - // 031: swap - // 032: bipush 2 - // 033: caload - // 034: castore - // 035: castore - // 036: aload 0 - // 037: dup - // 038: bipush 3 - // 039: swap - // 03a: bipush 27 - // 03c: caload - // 03d: aload 0 - // 03e: dup - // 03f: bipush 27 - // 041: swap - // 042: bipush 3 - // 043: caload - // 044: castore - // 045: castore - // 046: goto 15d - // 049: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; - // 04c: bipush 0 - // 04d: aaload - // 04e: astore 4 - // 050: aload 4 - // 052: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; - // 055: invokevirtual java/lang/String.hashCode ()I - // 058: ldc 65535 - // 05a: iand - // 05b: istore 5 - // 05d: aload 4 - // 05f: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; - // 062: invokevirtual java/lang/String.toCharArray ()[C - // 065: astore 6 - // 067: aload 0 - // 068: iload 1 - // 069: iinc 1 1 - // 06c: caload - // 06d: sipush 134 - // 070: ixor - // 071: iload 5 - // 073: ixor - // 074: anewarray 93 - // 077: astore 7 - // 079: bipush 0 - // 07a: istore 8 - // 07c: aload 0 - // 07d: iload 1 - // 07e: iinc 1 1 - // 081: caload - // 082: bipush 112 - // 084: ixor - // 085: iload 5 - // 087: ixor - // 088: istore 2 - // 089: iload 2 - // 08a: newarray 5 - // 08c: astore 9 - // 08e: bipush 0 - // 08f: istore 10 - // 091: iload 2 - // 092: ifle 13e - // 095: aload 0 - // 096: iload 1 - // 097: caload - // 098: istore 11 - // 09a: aload 6 - // 09c: iload 1 - // 09d: aload 6 - // 09f: arraylength - // 0a0: irem - // 0a1: caload - // 0a2: sipush 140 - // 0a5: ixor - // 0a6: lookupswitch 130 15 162 199 202 256 216 283 224 186 229 212 231 218 232 231 233 237 234 250 237 262 239 269 248 276 252 290 254 297 255 304 - // 128: aload 9 - // 12a: iload 10 - // 12c: iload 11 - // 12e: castore - // 12f: iinc 10 1 - // 132: iinc 1 1 - // 135: iinc 2 -1 - // 138: bipush 0 - // 139: istore 12 - // 13b: goto 1e0 - // 13e: aload 7 - // 140: iload 8 - // 142: iinc 8 1 - // 145: new java/lang/String - // 148: dup - // 149: aload 9 - // 14b: invokespecial java/lang/String. ([C)V - // 14e: invokevirtual java/lang/String.intern ()Ljava/lang/String; - // 151: aastore - // 152: iload 1 - // 153: aload 0 - // 154: arraylength - // 155: if_icmplt 07c - // 158: aload 7 - // 15a: putstatic pack/tests/reflects/field/FTest.d [Ljava/lang/String; - // 15d: goto 224 - // 160: iload 11 - // 162: bipush -83 - // 164: ixor - // 165: istore 11 - // 167: bipush 1 - // 168: istore 12 - // 16a: goto 1e0 - // 16d: iload 11 - // 16f: bipush -15 - // 171: ixor - // 172: istore 11 - // 174: bipush 1 - // 175: istore 12 - // 177: goto 1e0 - // 17a: bipush 2 - // 17b: istore 12 - // 17d: goto 1e0 - // 180: iload 11 - // 182: bipush -67 - // 184: ixor - // 185: istore 11 - // 187: bipush 1 - // 188: istore 12 - // 18a: goto 1e0 - // 18d: bipush 3 - // 18e: istore 12 - // 190: goto 1e0 - // 193: iload 11 - // 195: bipush 123 - // 197: ixor - // 198: istore 11 - // 19a: bipush 1 - // 19b: istore 12 - // 19d: goto 1e0 - // 1a0: bipush 4 - // 1a1: istore 12 - // 1a3: goto 1e0 - // 1a6: bipush 5 - // 1a7: istore 12 - // 1a9: goto 1e0 - // 1ac: bipush 6 - // 1ae: istore 12 - // 1b0: goto 1e0 - // 1b3: bipush 7 - // 1b5: istore 12 - // 1b7: goto 1e0 - // 1ba: bipush 8 - // 1bc: istore 12 - // 1be: goto 1e0 - // 1c1: bipush 9 - // 1c3: istore 12 - // 1c5: goto 1e0 - // 1c8: bipush 10 - // 1ca: istore 12 - // 1cc: goto 1e0 - // 1cf: bipush 11 - // 1d1: istore 12 - // 1d3: goto 1e0 - // 1d6: bipush 12 - // 1d8: istore 12 - // 1da: goto 1e0 - // 1dd: goto 049 - // 1e0: iload 12 - // 1e2: tableswitch -40 0 12 -337 -186 -117 -98 -104 -66 -85 -79 -130 -40 -33 -60 -26 - // 224: return - } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/loader/LRun.dec b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/loader/LRun.dec index 2ef8f3e0..7258be97 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/loader/LRun.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/loader/LRun.dec @@ -8,232 +8,8 @@ public class LRun { public void run(int var1) { Loader var2 = new Loader(12270); - Class var3 = var2.findClass("pack.tests.reflects.loader.LTest"); + Class var3 = var2.findClass(d[0]); Object var4 = var3.newInstance(); - var3.getMethod("run").invoke(var4); - } - - static { - // $VF: Couldn't be decompiled - // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) - // java.lang.RuntimeException: parsing failure! - // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) - // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) - // - // Bytecode: - // 000: ldc "Tๅ\r-EM\bRCHR\u000e\b\uffff│@\u0011CER\ufffe\b£¬G\u0019CSS\u0000\u0018\u0018\ufffe\t\u0e66ສTU" - // 002: invokevirtual java/lang/String.toCharArray ()[C - // 005: astore 0 - // 006: bipush 0 - // 007: istore 1 - // 008: aload 0 - // 009: dup - // 00a: bipush 36 - // 00c: swap - // 00d: bipush 27 - // 00f: caload - // 010: aload 0 - // 011: dup - // 012: bipush 27 - // 014: swap - // 015: bipush 36 - // 017: caload - // 018: castore - // 019: castore - // 01a: aload 0 - // 01b: dup - // 01c: bipush 37 - // 01e: swap - // 01f: bipush 9 - // 021: caload - // 022: aload 0 - // 023: dup - // 024: bipush 9 - // 026: swap - // 027: bipush 37 - // 029: caload - // 02a: castore - // 02b: castore - // 02c: aload 0 - // 02d: dup - // 02e: bipush 35 - // 030: swap - // 031: bipush 0 - // 032: caload - // 033: aload 0 - // 034: dup - // 035: bipush 0 - // 036: swap - // 037: bipush 35 - // 039: caload - // 03a: castore - // 03b: castore - // 03c: aload 0 - // 03d: dup - // 03e: bipush 32 - // 040: swap - // 041: bipush 64 - // 043: caload - // 044: aload 0 - // 045: dup - // 046: bipush 64 - // 048: swap - // 049: bipush 32 - // 04b: caload - // 04c: castore - // 04d: castore - // 04e: goto 175 - // 051: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; - // 054: bipush 0 - // 055: aaload - // 056: astore 4 - // 058: aload 4 - // 05a: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; - // 05d: invokevirtual java/lang/String.hashCode ()I - // 060: ldc 65535 - // 062: iand - // 063: istore 5 - // 065: aload 4 - // 067: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; - // 06a: invokevirtual java/lang/String.toCharArray ()[C - // 06d: astore 6 - // 06f: aload 0 - // 070: iload 1 - // 071: iinc 1 1 - // 074: caload - // 075: bipush 1 - // 076: ixor - // 077: iload 5 - // 079: ixor - // 07a: anewarray 44 - // 07d: astore 7 - // 07f: bipush 0 - // 080: istore 8 - // 082: aload 0 - // 083: iload 1 - // 084: iinc 1 1 - // 087: caload - // 088: sipush 204 - // 08b: ixor - // 08c: iload 5 - // 08e: ixor - // 08f: istore 2 - // 090: iload 2 - // 091: newarray 5 - // 093: astore 9 - // 095: bipush 0 - // 096: istore 10 - // 098: iload 2 - // 099: ifle 156 - // 09c: aload 0 - // 09d: iload 1 - // 09e: caload - // 09f: istore 11 - // 0a1: aload 6 - // 0a3: iload 1 - // 0a4: aload 6 - // 0a6: arraylength - // 0a7: irem - // 0a8: caload - // 0a9: sipush 134 - // 0ac: ixor - // 0ad: lookupswitch 147 17 168 254 202 286 212 321 224 203 226 216 227 222 229 235 231 248 232 260 233 273 234 279 237 293 242 300 243 307 244 314 245 328 246 335 - // 140: aload 9 - // 142: iload 10 - // 144: iload 11 - // 146: castore - // 147: iinc 10 1 - // 14a: iinc 1 1 - // 14d: iinc 2 -1 - // 150: bipush 0 - // 151: istore 12 - // 153: goto 206 - // 156: aload 7 - // 158: iload 8 - // 15a: iinc 8 1 - // 15d: new java/lang/String - // 160: dup - // 161: aload 9 - // 163: invokespecial java/lang/String. ([C)V - // 166: invokevirtual java/lang/String.intern ()Ljava/lang/String; - // 169: aastore - // 16a: iload 1 - // 16b: aload 0 - // 16c: arraylength - // 16d: if_icmplt 082 - // 170: aload 7 - // 172: putstatic pack/tests/reflects/loader/LRun.d [Ljava/lang/String; - // 175: goto 254 - // 178: iload 11 - // 17a: bipush -115 - // 17c: ixor - // 17d: istore 11 - // 17f: bipush 1 - // 180: istore 12 - // 182: goto 206 - // 185: bipush 2 - // 186: istore 12 - // 188: goto 206 - // 18b: iload 11 - // 18d: bipush 38 - // 18f: ixor - // 190: istore 11 - // 192: bipush 1 - // 193: istore 12 - // 195: goto 206 - // 198: iload 11 - // 19a: bipush 125 - // 19c: ixor - // 19d: istore 11 - // 19f: bipush 1 - // 1a0: istore 12 - // 1a2: goto 206 - // 1a5: bipush 3 - // 1a6: istore 12 - // 1a8: goto 206 - // 1ab: bipush 4 - // 1ac: istore 12 - // 1ae: goto 206 - // 1b1: iload 11 - // 1b3: bipush 76 - // 1b5: ixor - // 1b6: istore 11 - // 1b8: bipush 1 - // 1b9: istore 12 - // 1bb: goto 206 - // 1be: bipush 5 - // 1bf: istore 12 - // 1c1: goto 206 - // 1c4: bipush 6 - // 1c6: istore 12 - // 1c8: goto 206 - // 1cb: bipush 7 - // 1cd: istore 12 - // 1cf: goto 206 - // 1d2: bipush 8 - // 1d4: istore 12 - // 1d6: goto 206 - // 1d9: bipush 9 - // 1db: istore 12 - // 1dd: goto 206 - // 1e0: bipush 10 - // 1e2: istore 12 - // 1e4: goto 206 - // 1e7: bipush 11 - // 1e9: istore 12 - // 1eb: goto 206 - // 1ee: bipush 12 - // 1f0: istore 12 - // 1f2: goto 206 - // 1f5: bipush 13 - // 1f7: istore 12 - // 1f9: goto 206 - // 1fc: bipush 14 - // 1fe: istore 12 - // 200: goto 206 - // 203: goto 051 - // 206: iload 12 - // 208: tableswitch -112 0 14 -368 -200 -144 -131 -125 -93 -99 -74 -87 -61 -54 -112 -33 -47 -26 - // 254: return + var3.getMethod(d[1]).invoke(var4); } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/loader/LTest.dec b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/loader/LTest.dec index 52ab8b72..c5b4a478 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/loader/LTest.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/loader/LTest.dec @@ -24,194 +24,4 @@ public class LTest { public void run(int var1) { System.out.println(new String(readAllBytes(LTest.class.getResourceAsStream(d[var1 ^ 12433]), (var1 | var1 ^ 32405) & (var1 ^ 24447)))); } - - static { - // $VF: Couldn't be decompiled - // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) - // java.lang.RuntimeException: parsing failure! - // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) - // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) - // - // Bytecode: - // 000: ldc "6\u0efb\u000bᅮํᅡ" - // 002: invokevirtual java/lang/String.toCharArray ()[C - // 005: astore 0 - // 006: bipush 0 - // 007: istore 1 - // 008: aload 0 - // 009: dup - // 00a: bipush 4 - // 00b: swap - // 00c: bipush 0 - // 00d: caload - // 00e: aload 0 - // 00f: dup - // 010: bipush 0 - // 011: swap - // 012: bipush 4 - // 013: caload - // 014: castore - // 015: castore - // 016: aload 0 - // 017: dup - // 018: bipush 3 - // 019: swap - // 01a: bipush 7 - // 01c: caload - // 01d: aload 0 - // 01e: dup - // 01f: bipush 7 - // 021: swap - // 022: bipush 3 - // 023: caload - // 024: castore - // 025: castore - // 026: goto 13d - // 029: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; - // 02c: bipush 0 - // 02d: aaload - // 02e: astore 4 - // 030: aload 4 - // 032: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; - // 035: invokevirtual java/lang/String.hashCode ()I - // 038: ldc 65535 - // 03a: iand - // 03b: istore 5 - // 03d: aload 4 - // 03f: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; - // 042: invokevirtual java/lang/String.toCharArray ()[C - // 045: astore 6 - // 047: aload 0 - // 048: iload 1 - // 049: iinc 1 1 - // 04c: caload - // 04d: sipush 229 - // 050: ixor - // 051: iload 5 - // 053: ixor - // 054: anewarray 41 - // 057: astore 7 - // 059: bipush 0 - // 05a: istore 8 - // 05c: aload 0 - // 05d: iload 1 - // 05e: iinc 1 1 - // 061: caload - // 062: bipush 86 - // 064: ixor - // 065: iload 5 - // 067: ixor - // 068: istore 2 - // 069: iload 2 - // 06a: newarray 5 - // 06c: astore 9 - // 06e: bipush 0 - // 06f: istore 10 - // 071: iload 2 - // 072: ifle 11e - // 075: aload 0 - // 076: iload 1 - // 077: caload - // 078: istore 11 - // 07a: aload 6 - // 07c: iload 1 - // 07d: aload 6 - // 07f: arraylength - // 080: irem - // 081: caload - // 082: sipush 217 - // 085: ixor - // 086: lookupswitch 130 15 141 231 149 249 169 186 170 199 171 212 173 218 178 237 181 243 182 262 184 276 186 283 188 290 189 297 191 304 247 269 - // 108: aload 9 - // 10a: iload 10 - // 10c: iload 11 - // 10e: castore - // 10f: iinc 10 1 - // 112: iinc 1 1 - // 115: iinc 2 -1 - // 118: bipush 0 - // 119: istore 12 - // 11b: goto 1c0 - // 11e: aload 7 - // 120: iload 8 - // 122: iinc 8 1 - // 125: new java/lang/String - // 128: dup - // 129: aload 9 - // 12b: invokespecial java/lang/String. ([C)V - // 12e: invokevirtual java/lang/String.intern ()Ljava/lang/String; - // 131: aastore - // 132: iload 1 - // 133: aload 0 - // 134: arraylength - // 135: if_icmplt 05c - // 138: aload 7 - // 13a: putstatic pack/tests/reflects/loader/LTest.d [Ljava/lang/String; - // 13d: goto 204 - // 140: iload 11 - // 142: bipush -52 - // 144: ixor - // 145: istore 11 - // 147: bipush 1 - // 148: istore 12 - // 14a: goto 1c0 - // 14d: iload 11 - // 14f: bipush 101 - // 151: ixor - // 152: istore 11 - // 154: bipush 1 - // 155: istore 12 - // 157: goto 1c0 - // 15a: bipush 2 - // 15b: istore 12 - // 15d: goto 1c0 - // 160: iload 11 - // 162: bipush -106 - // 164: ixor - // 165: istore 11 - // 167: bipush 1 - // 168: istore 12 - // 16a: goto 1c0 - // 16d: bipush 3 - // 16e: istore 12 - // 170: goto 1c0 - // 173: bipush 4 - // 174: istore 12 - // 176: goto 1c0 - // 179: bipush 5 - // 17a: istore 12 - // 17c: goto 1c0 - // 17f: iload 11 - // 181: bipush 95 - // 183: ixor - // 184: istore 11 - // 186: bipush 1 - // 187: istore 12 - // 189: goto 1c0 - // 18c: bipush 6 - // 18e: istore 12 - // 190: goto 1c0 - // 193: bipush 7 - // 195: istore 12 - // 197: goto 1c0 - // 19a: bipush 8 - // 19c: istore 12 - // 19e: goto 1c0 - // 1a1: bipush 9 - // 1a3: istore 12 - // 1a5: goto 1c0 - // 1a8: bipush 10 - // 1aa: istore 12 - // 1ac: goto 1c0 - // 1af: bipush 11 - // 1b1: istore 12 - // 1b3: goto 1c0 - // 1b6: bipush 12 - // 1b8: istore 12 - // 1ba: goto 1c0 - // 1bd: goto 029 - // 1c0: iload 12 - // 1c2: tableswitch -79 0 12 -337 -186 -130 -104 -98 -85 -79 -117 -54 -67 -40 -73 -33 - // 204: return - } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/loader/Loader.dec b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/loader/Loader.dec index d6363bc3..6d4385f3 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/loader/Loader.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/loader/Loader.dec @@ -36,233 +36,4 @@ public class Loader extends ClassLoader { byte[] var2 = readAllBytes(Loader.class.getClassLoader().getResourceAsStream("pack/tests/reflects/loader/LTest.class"), 31470); return this.defineClass(var1, var2, 0, var2.length); } - - static { - // $VF: Couldn't be decompiled - // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) - // java.lang.RuntimeException: parsing failure! - // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) - // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) - // - // Bytecode: - // 000: ldc "K๕K,ᅲ๖๕9^:ᅲ\u0e002ᄃ\u0006){q\u001e" - // 002: invokevirtual java/lang/String.toCharArray ()[C - // 005: astore 0 - // 006: bipush 0 - // 007: istore 1 - // 008: aload 0 - // 009: dup - // 00a: bipush 14 - // 00c: swap - // 00d: bipush 13 - // 00f: caload - // 010: aload 0 - // 011: dup - // 012: bipush 13 - // 014: swap - // 015: bipush 14 - // 017: caload - // 018: castore - // 019: castore - // 01a: aload 0 - // 01b: dup - // 01c: bipush 5 - // 01d: swap - // 01e: bipush 0 - // 01f: caload - // 020: aload 0 - // 021: dup - // 022: bipush 0 - // 023: swap - // 024: bipush 5 - // 025: caload - // 026: castore - // 027: castore - // 028: aload 0 - // 029: dup - // 02a: bipush 11 - // 02c: swap - // 02d: bipush 0 - // 02e: caload - // 02f: aload 0 - // 030: dup - // 031: bipush 0 - // 032: swap - // 033: bipush 11 - // 035: caload - // 036: castore - // 037: castore - // 038: aload 0 - // 039: dup - // 03a: bipush 6 - // 03c: swap - // 03d: bipush 22 - // 03f: caload - // 040: aload 0 - // 041: dup - // 042: bipush 22 - // 044: swap - // 045: bipush 6 - // 047: caload - // 048: castore - // 049: castore - // 04a: aload 0 - // 04b: dup - // 04c: bipush 11 - // 04e: swap - // 04f: bipush 2 - // 050: caload - // 051: aload 0 - // 052: dup - // 053: bipush 2 - // 054: swap - // 055: bipush 11 - // 057: caload - // 058: castore - // 059: castore - // 05a: goto 169 - // 05d: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; - // 060: bipush 0 - // 061: aaload - // 062: astore 4 - // 064: aload 4 - // 066: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; - // 069: invokevirtual java/lang/String.hashCode ()I - // 06c: ldc 65535 - // 06e: iand - // 06f: istore 5 - // 071: aload 4 - // 073: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; - // 076: invokevirtual java/lang/String.toCharArray ()[C - // 079: astore 6 - // 07b: aload 0 - // 07c: iload 1 - // 07d: iinc 1 1 - // 080: caload - // 081: sipush 170 - // 084: ixor - // 085: iload 5 - // 087: ixor - // 088: anewarray 40 - // 08b: astore 7 - // 08d: bipush 0 - // 08e: istore 8 - // 090: aload 0 - // 091: iload 1 - // 092: iinc 1 1 - // 095: caload - // 096: sipush 248 - // 099: ixor - // 09a: iload 5 - // 09c: ixor - // 09d: istore 2 - // 09e: iload 2 - // 09f: newarray 5 - // 0a1: astore 9 - // 0a3: bipush 0 - // 0a4: istore 10 - // 0a6: iload 2 - // 0a7: ifle 14a - // 0aa: aload 0 - // 0ab: iload 1 - // 0ac: caload - // 0ad: istore 11 - // 0af: aload 6 - // 0b1: iload 1 - // 0b2: aload 6 - // 0b4: arraylength - // 0b5: irem - // 0b6: caload - // 0b7: sipush 150 - // 0ba: ixor - // 0bb: lookupswitch 121 14 184 254 218 281 226 177 228 190 229 203 230 216 240 222 242 228 243 234 245 240 247 247 249 267 250 274 253 288 - // 134: aload 9 - // 136: iload 10 - // 138: iload 11 - // 13a: castore - // 13b: iinc 10 1 - // 13e: iinc 1 1 - // 141: iinc 2 -1 - // 144: bipush 0 - // 145: istore 12 - // 147: goto 1e5 - // 14a: aload 7 - // 14c: iload 8 - // 14e: iinc 8 1 - // 151: new java/lang/String - // 154: dup - // 155: aload 9 - // 157: invokespecial java/lang/String. ([C)V - // 15a: invokevirtual java/lang/String.intern ()Ljava/lang/String; - // 15d: aastore - // 15e: iload 1 - // 15f: aload 0 - // 160: arraylength - // 161: if_icmplt 090 - // 164: aload 7 - // 166: putstatic pack/tests/reflects/loader/Loader.d [Ljava/lang/String; - // 169: goto 224 - // 16c: iload 11 - // 16e: bipush 31 - // 170: ixor - // 171: istore 11 - // 173: bipush 1 - // 174: istore 12 - // 176: goto 1e5 - // 179: iload 11 - // 17b: bipush -61 - // 17d: ixor - // 17e: istore 11 - // 180: bipush 1 - // 181: istore 12 - // 183: goto 1e5 - // 186: iload 11 - // 188: bipush 105 - // 18a: ixor - // 18b: istore 11 - // 18d: bipush 1 - // 18e: istore 12 - // 190: goto 1e5 - // 193: bipush 2 - // 194: istore 12 - // 196: goto 1e5 - // 199: bipush 3 - // 19a: istore 12 - // 19c: goto 1e5 - // 19f: bipush 4 - // 1a0: istore 12 - // 1a2: goto 1e5 - // 1a5: bipush 5 - // 1a6: istore 12 - // 1a8: goto 1e5 - // 1ab: bipush 6 - // 1ad: istore 12 - // 1af: goto 1e5 - // 1b2: bipush 7 - // 1b4: istore 12 - // 1b6: goto 1e5 - // 1b9: iload 11 - // 1bb: bipush -124 - // 1bd: ixor - // 1be: istore 11 - // 1c0: bipush 1 - // 1c1: istore 12 - // 1c3: goto 1e5 - // 1c6: bipush 8 - // 1c8: istore 12 - // 1ca: goto 1e5 - // 1cd: bipush 9 - // 1cf: istore 12 - // 1d1: goto 1e5 - // 1d4: bipush 10 - // 1d6: istore 12 - // 1d8: goto 1e5 - // 1db: bipush 11 - // 1dd: istore 12 - // 1df: goto 1e5 - // 1e2: goto 05d - // 1e5: iload 12 - // 1e7: tableswitch -97 0 11 -321 -179 -123 -97 -78 -84 -66 -72 -60 -110 -46 -53 - // 224: return - } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/res/Accesor.dec b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/res/Accesor.dec index 1139459c..df9b2b69 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/res/Accesor.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/res/Accesor.dec @@ -8,247 +8,21 @@ public class Accesor { public void run(int var1) { try { - if (Accesor.class.getResourceAsStream("/pack/tests/reflects/res/file").read() != 97) { + if (Accesor.class.getResourceAsStream(d[2]).read() != 97) { throw new RuntimeException(); } - if (Accesor.class.getResourceAsStream("file2").read() != 114) { + if (Accesor.class.getResourceAsStream(d[3]).read() != 114) { throw new RuntimeException(); } - if (Accesor.class.getClassLoader().getResourceAsStream("pack/tests/reflects/res/file3").read() != 99) { + if (Accesor.class.getClassLoader().getResourceAsStream(d[1]).read() != 99) { throw new RuntimeException(); } - System.out.println("PASS"); + System.out.println(d[0]); } catch (Exception var2) { - System.out.println("FAIL"); + System.out.println(d[4]); } } - - static { - // $VF: Couldn't be decompiled - // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) - // java.lang.RuntimeException: parsing failure! - // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) - // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) - // - // Bytecode: - // 000: ldc "qລ}YK↓ຼh\uffde{sz!}ๅ!ᄆミjメ39}{!ᄆ■'}ᅩzᄂqᆴ}+ຼzh\uffde{sz!}ᄆ!ᄆミj}39}{!ᄆ■'}ᅩzᄂᄆᆴ}\u0ea4\uffd9 ([C)V - // 156: invokevirtual java/lang/String.intern ()Ljava/lang/String; - // 159: aastore - // 15a: iload 1 - // 15b: aload 0 - // 15c: arraylength - // 15d: if_icmplt 094 - // 160: aload 7 - // 162: putstatic pack/tests/reflects/res/Accesor.d [Ljava/lang/String; - // 165: goto 218 - // 168: iload 11 - // 16a: bipush 24 - // 16c: ixor - // 16d: istore 11 - // 16f: bipush 1 - // 170: istore 12 - // 172: goto 1da - // 175: iload 11 - // 177: bipush -62 - // 179: ixor - // 17a: istore 11 - // 17c: bipush 1 - // 17d: istore 12 - // 17f: goto 1da - // 182: iload 11 - // 184: bipush -65 - // 186: ixor - // 187: istore 11 - // 189: bipush 1 - // 18a: istore 12 - // 18c: goto 1da - // 18f: bipush 2 - // 190: istore 12 - // 192: goto 1da - // 195: bipush 3 - // 196: istore 12 - // 198: goto 1da - // 19b: iload 11 - // 19d: bipush 85 - // 19f: ixor - // 1a0: istore 11 - // 1a2: bipush 1 - // 1a3: istore 12 - // 1a5: goto 1da - // 1a8: bipush 4 - // 1a9: istore 12 - // 1ab: goto 1da - // 1ae: bipush 5 - // 1af: istore 12 - // 1b1: goto 1da - // 1b4: bipush 6 - // 1b6: istore 12 - // 1b8: goto 1da - // 1bb: bipush 7 - // 1bd: istore 12 - // 1bf: goto 1da - // 1c2: bipush 8 - // 1c4: istore 12 - // 1c6: goto 1da - // 1c9: bipush 9 - // 1cb: istore 12 - // 1cd: goto 1da - // 1d0: bipush 10 - // 1d2: istore 12 - // 1d4: goto 1da - // 1d7: goto 061 - // 1da: iload 12 - // 1dc: tableswitch -65 0 10 -307 -172 -116 -77 -103 -65 -71 -52 -40 -46 -90 - // 218: return - } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/retrace/Tracer.dec b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/retrace/Tracer.dec index b462639f..0b37fcf5 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/retrace/Tracer.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/retrace/Tracer.dec @@ -9,218 +9,9 @@ public class Tracer { public void run(int var1) { new Tracee(5704).toTrace(5); if (Tracee.p == 5) { - System.out.println("PASS"); + System.out.println(d[0]); } else { - System.out.println("FAIL"); + System.out.println(d[1]); } } - - static { - // $VF: Couldn't be decompiled - // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) - // java.lang.RuntimeException: parsing failure! - // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) - // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) - // - // Bytecode: - // 000: ldc "tf\u0e83\ufff8wງ\u0e83モtワh" - // 002: invokevirtual java/lang/String.toCharArray ()[C - // 005: astore 0 - // 006: bipush 0 - // 007: istore 1 - // 008: aload 0 - // 009: dup - // 00a: bipush 1 - // 00b: swap - // 00c: bipush 2 - // 00d: caload - // 00e: aload 0 - // 00f: dup - // 010: bipush 2 - // 011: swap - // 012: bipush 1 - // 013: caload - // 014: castore - // 015: castore - // 016: aload 0 - // 017: dup - // 018: bipush 8 - // 01a: swap - // 01b: bipush 2 - // 01c: caload - // 01d: aload 0 - // 01e: dup - // 01f: bipush 2 - // 020: swap - // 021: bipush 8 - // 023: caload - // 024: castore - // 025: castore - // 026: aload 0 - // 027: dup - // 028: bipush 5 - // 029: swap - // 02a: bipush 0 - // 02b: caload - // 02c: aload 0 - // 02d: dup - // 02e: bipush 0 - // 02f: swap - // 030: bipush 5 - // 031: caload - // 032: castore - // 033: castore - // 034: aload 0 - // 035: dup - // 036: bipush 0 - // 037: swap - // 038: bipush 20 - // 03a: caload - // 03b: aload 0 - // 03c: dup - // 03d: bipush 20 - // 03f: swap - // 040: bipush 0 - // 041: caload - // 042: castore - // 043: castore - // 044: goto 141 - // 047: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; - // 04a: bipush 0 - // 04b: aaload - // 04c: astore 4 - // 04e: aload 4 - // 050: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; - // 053: invokevirtual java/lang/String.hashCode ()I - // 056: ldc 65535 - // 058: iand - // 059: istore 5 - // 05b: aload 4 - // 05d: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; - // 060: invokevirtual java/lang/String.toCharArray ()[C - // 063: astore 6 - // 065: aload 0 - // 066: iload 1 - // 067: iinc 1 1 - // 06a: caload - // 06b: bipush 44 - // 06d: ixor - // 06e: iload 5 - // 070: ixor - // 071: anewarray 43 - // 074: astore 7 - // 076: bipush 0 - // 077: istore 8 - // 079: aload 0 - // 07a: iload 1 - // 07b: iinc 1 1 - // 07e: caload - // 07f: bipush 46 - // 081: ixor - // 082: iload 5 - // 084: ixor - // 085: istore 2 - // 086: iload 2 - // 087: newarray 5 - // 089: astore 9 - // 08b: bipush 0 - // 08c: istore 10 - // 08e: iload 2 - // 08f: ifle 122 - // 092: aload 0 - // 093: iload 1 - // 094: caload - // 095: istore 11 - // 097: aload 6 - // 099: iload 1 - // 09a: aload 6 - // 09c: arraylength - // 09d: irem - // 09e: caload - // 09f: bipush 67 - // 0a1: ixor - // 0a2: lookupswitch 106 12 23 238 32 162 34 194 37 213 38 219 40 245 47 259 48 175 49 188 51 207 55 225 109 252 - // 10c: aload 9 - // 10e: iload 10 - // 110: iload 11 - // 112: castore - // 113: iinc 10 1 - // 116: iinc 1 1 - // 119: iinc 2 -1 - // 11c: bipush 0 - // 11d: istore 12 - // 11f: goto 1af - // 122: aload 7 - // 124: iload 8 - // 126: iinc 8 1 - // 129: new java/lang/String - // 12c: dup - // 12d: aload 9 - // 12f: invokespecial java/lang/String. ([C)V - // 132: invokevirtual java/lang/String.intern ()Ljava/lang/String; - // 135: aastore - // 136: iload 1 - // 137: aload 0 - // 138: arraylength - // 139: if_icmplt 079 - // 13c: aload 7 - // 13e: putstatic pack/tests/reflects/retrace/Tracer.d [Ljava/lang/String; - // 141: goto 1e8 - // 144: iload 11 - // 146: bipush 36 - // 148: ixor - // 149: istore 11 - // 14b: bipush 1 - // 14c: istore 12 - // 14e: goto 1af - // 151: iload 11 - // 153: bipush -43 - // 155: ixor - // 156: istore 11 - // 158: bipush 1 - // 159: istore 12 - // 15b: goto 1af - // 15e: bipush 2 - // 15f: istore 12 - // 161: goto 1af - // 164: iload 11 - // 166: bipush -71 - // 168: ixor - // 169: istore 11 - // 16b: bipush 1 - // 16c: istore 12 - // 16e: goto 1af - // 171: bipush 3 - // 172: istore 12 - // 174: goto 1af - // 177: bipush 4 - // 178: istore 12 - // 17a: goto 1af - // 17d: bipush 5 - // 17e: istore 12 - // 180: goto 1af - // 183: iload 11 - // 185: bipush 39 - // 187: ixor - // 188: istore 11 - // 18a: bipush 1 - // 18b: istore 12 - // 18d: goto 1af - // 190: bipush 6 - // 192: istore 12 - // 194: goto 1af - // 197: bipush 7 - // 199: istore 12 - // 19b: goto 1af - // 19e: bipush 8 - // 1a0: istore 12 - // 1a2: goto 1af - // 1a5: bipush 9 - // 1a7: istore 12 - // 1a9: goto 1af - // 1ac: goto 047 - // 1af: iload 12 - // 1b1: tableswitch -64 0 9 -291 -165 -109 -96 -64 -77 -58 -52 -83 -46 - // 1e8: return - } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/security/SecTest.dec b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/security/SecTest.dec index 63924c08..9bc91548 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/security/SecTest.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/security/SecTest.dec @@ -10,10 +10,10 @@ public class SecTest { public void run(int var1) { System.setSecurityManager(new Sman(31850)); - System.out.print("FAIL"); + System.out.print(d[3]); try { - Method var2 = SecExec.class.getDeclaredMethod("doShutdown"); + Method var2 = SecExec.class.getDeclaredMethod(d[0]); var2.setAccessible(true); var2.invoke(null); } catch (Throwable var6) { @@ -27,8 +27,8 @@ public class SecTest { return; } - if (var5.contains("HOOK")) { - System.out.println("\b\b\b\bPASS"); + if (var5.contains(d[2])) { + System.out.println(d[1]); } break; } @@ -37,233 +37,4 @@ public class SecTest { } } } - - static { - // $VF: Couldn't be decompiled - // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) - // java.lang.RuntimeException: parsing failure! - // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) - // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) - // - // Bytecode: - // 000: ldc "ᄊナᄇᄍ\u0ef7レフヘᄇヨᄀラ\u0ef5\uffde\ufff1゙\ufff1ニᄌナᆰ\u0ef9゙\fຎᄇ\u0ef9\uffd0ラ゚ᄒ" - // 002: invokevirtual java/lang/String.toCharArray ()[C - // 005: astore 0 - // 006: bipush 0 - // 007: istore 1 - // 008: aload 0 - // 009: dup - // 00a: bipush 5 - // 00b: swap - // 00c: bipush 30 - // 00e: caload - // 00f: aload 0 - // 010: dup - // 011: bipush 30 - // 013: swap - // 014: bipush 5 - // 015: caload - // 016: castore - // 017: castore - // 018: aload 0 - // 019: dup - // 01a: bipush 4 - // 01b: swap - // 01c: bipush 1 - // 01d: caload - // 01e: aload 0 - // 01f: dup - // 020: bipush 1 - // 021: swap - // 022: bipush 4 - // 023: caload - // 024: castore - // 025: castore - // 026: aload 0 - // 027: dup - // 028: bipush 24 - // 02a: swap - // 02b: bipush 0 - // 02c: caload - // 02d: aload 0 - // 02e: dup - // 02f: bipush 0 - // 030: swap - // 031: bipush 24 - // 033: caload - // 034: castore - // 035: castore - // 036: aload 0 - // 037: dup - // 038: bipush 27 - // 03a: swap - // 03b: bipush 33 - // 03d: caload - // 03e: aload 0 - // 03f: dup - // 040: bipush 33 - // 042: swap - // 043: bipush 27 - // 045: caload - // 046: castore - // 047: castore - // 048: aload 0 - // 049: dup - // 04a: bipush 6 - // 04c: swap - // 04d: bipush 0 - // 04e: caload - // 04f: aload 0 - // 050: dup - // 051: bipush 0 - // 052: swap - // 053: bipush 6 - // 055: caload - // 056: castore - // 057: castore - // 058: goto 165 - // 05b: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; - // 05e: bipush 0 - // 05f: aaload - // 060: astore 4 - // 062: aload 4 - // 064: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; - // 067: invokevirtual java/lang/String.hashCode ()I - // 06a: ldc 65535 - // 06c: iand - // 06d: istore 5 - // 06f: aload 4 - // 071: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; - // 074: invokevirtual java/lang/String.toCharArray ()[C - // 077: astore 6 - // 079: aload 0 - // 07a: iload 1 - // 07b: iinc 1 1 - // 07e: caload - // 07f: bipush 35 - // 081: ixor - // 082: iload 5 - // 084: ixor - // 085: anewarray 68 - // 088: astore 7 - // 08a: bipush 0 - // 08b: istore 8 - // 08d: aload 0 - // 08e: iload 1 - // 08f: iinc 1 1 - // 092: caload - // 093: bipush 84 - // 095: ixor - // 096: iload 5 - // 098: ixor - // 099: istore 2 - // 09a: iload 2 - // 09b: newarray 5 - // 09d: astore 9 - // 09f: bipush 0 - // 0a0: istore 10 - // 0a2: iload 2 - // 0a3: ifle 146 - // 0a6: aload 0 - // 0a7: iload 1 - // 0a8: caload - // 0a9: istore 11 - // 0ab: aload 6 - // 0ad: iload 1 - // 0ae: aload 6 - // 0b0: arraylength - // 0b1: irem - // 0b2: caload - // 0b3: bipush 105 - // 0b5: ixor - // 0b6: lookupswitch 122 14 0 178 2 191 8 210 10 216 12 222 16 228 25 235 26 248 27 262 28 269 29 276 58 255 61 283 71 204 - // 130: aload 9 - // 132: iload 10 - // 134: iload 11 - // 136: castore - // 137: iinc 10 1 - // 13a: iinc 1 1 - // 13d: iinc 2 -1 - // 140: bipush 0 - // 141: istore 12 - // 143: goto 1e1 - // 146: aload 7 - // 148: iload 8 - // 14a: iinc 8 1 - // 14d: new java/lang/String - // 150: dup - // 151: aload 9 - // 153: invokespecial java/lang/String. ([C)V - // 156: invokevirtual java/lang/String.intern ()Ljava/lang/String; - // 159: aastore - // 15a: iload 1 - // 15b: aload 0 - // 15c: arraylength - // 15d: if_icmplt 08d - // 160: aload 7 - // 162: putstatic pack/tests/security/SecTest.d [Ljava/lang/String; - // 165: goto 220 - // 168: iload 11 - // 16a: bipush -7 - // 16c: ixor - // 16d: istore 11 - // 16f: bipush 1 - // 170: istore 12 - // 172: goto 1e1 - // 175: iload 11 - // 177: bipush -42 - // 179: ixor - // 17a: istore 11 - // 17c: bipush 1 - // 17d: istore 12 - // 17f: goto 1e1 - // 182: bipush 2 - // 183: istore 12 - // 185: goto 1e1 - // 188: bipush 3 - // 189: istore 12 - // 18b: goto 1e1 - // 18e: bipush 4 - // 18f: istore 12 - // 191: goto 1e1 - // 194: bipush 5 - // 195: istore 12 - // 197: goto 1e1 - // 19a: bipush 6 - // 19c: istore 12 - // 19e: goto 1e1 - // 1a1: iload 11 - // 1a3: bipush -106 - // 1a5: ixor - // 1a6: istore 11 - // 1a8: bipush 1 - // 1a9: istore 12 - // 1ab: goto 1e1 - // 1ae: bipush 7 - // 1b0: istore 12 - // 1b2: goto 1e1 - // 1b5: bipush 8 - // 1b7: istore 12 - // 1b9: goto 1e1 - // 1bc: bipush 9 - // 1be: istore 12 - // 1c0: goto 1e1 - // 1c3: bipush 10 - // 1c5: istore 12 - // 1c7: goto 1e1 - // 1ca: bipush 11 - // 1cc: istore 12 - // 1ce: goto 1e1 - // 1d1: iload 11 - // 1d3: bipush 67 - // 1d5: ixor - // 1d6: istore 11 - // 1d8: bipush 1 - // 1d9: istore 12 - // 1db: goto 1e1 - // 1de: goto 05b - // 1e1: iload 12 - // 1e3: tableswitch -179 0 11 -321 -179 -110 -97 -91 -123 -79 -73 -53 -66 -46 -85 - // 220: return - } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/security/Sman.dec b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/security/Sman.dec index b24c7fb8..edeb7011 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/security/Sman.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/security/Sman.dec @@ -14,222 +14,4 @@ public class Sman extends SecurityManager { throw new SecurityException("HOOKED"); } } - - static { - // $VF: Couldn't be decompiled - // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) - // java.lang.RuntimeException: parsing failure! - // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) - // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) - // - // Bytecode: - // 000: ldc "ユ\u0ee0メ\u0edabムᆴY\u0ee0tUx゚フP" - // 002: invokevirtual java/lang/String.toCharArray ()[C - // 005: astore 0 - // 006: bipush 0 - // 007: istore 1 - // 008: aload 0 - // 009: dup - // 00a: bipush 10 - // 00c: swap - // 00d: bipush 4 - // 00e: caload - // 00f: aload 0 - // 010: dup - // 011: bipush 4 - // 012: swap - // 013: bipush 10 - // 015: caload - // 016: castore - // 017: castore - // 018: aload 0 - // 019: dup - // 01a: bipush 9 - // 01c: swap - // 01d: bipush 11 - // 01f: caload - // 020: aload 0 - // 021: dup - // 022: bipush 11 - // 024: swap - // 025: bipush 9 - // 027: caload - // 028: castore - // 029: castore - // 02a: aload 0 - // 02b: dup - // 02c: bipush 3 - // 02d: swap - // 02e: bipush 0 - // 02f: caload - // 030: aload 0 - // 031: dup - // 032: bipush 0 - // 033: swap - // 034: bipush 3 - // 035: caload - // 036: castore - // 037: castore - // 038: aload 0 - // 039: dup - // 03a: bipush 1 - // 03b: swap - // 03c: bipush 20 - // 03e: caload - // 03f: aload 0 - // 040: dup - // 041: bipush 20 - // 043: swap - // 044: bipush 1 - // 045: caload - // 046: castore - // 047: castore - // 048: goto 15d - // 04b: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; - // 04e: bipush 0 - // 04f: aaload - // 050: astore 4 - // 052: aload 4 - // 054: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; - // 057: invokevirtual java/lang/String.hashCode ()I - // 05a: ldc 65535 - // 05c: iand - // 05d: istore 5 - // 05f: aload 4 - // 061: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; - // 064: invokevirtual java/lang/String.toCharArray ()[C - // 067: astore 6 - // 069: aload 0 - // 06a: iload 1 - // 06b: iinc 1 1 - // 06e: caload - // 06f: bipush 113 - // 071: ixor - // 072: iload 5 - // 074: ixor - // 075: anewarray 23 - // 078: astore 7 - // 07a: bipush 0 - // 07b: istore 8 - // 07d: aload 0 - // 07e: iload 1 - // 07f: iinc 1 1 - // 082: caload - // 083: bipush 79 - // 085: ixor - // 086: iload 5 - // 088: ixor - // 089: istore 2 - // 08a: iload 2 - // 08b: newarray 5 - // 08d: astore 9 - // 08f: bipush 0 - // 090: istore 10 - // 092: iload 2 - // 093: ifle 13e - // 096: aload 0 - // 097: iload 1 - // 098: caload - // 099: istore 11 - // 09b: aload 6 - // 09d: iload 1 - // 09e: aload 6 - // 0a0: arraylength - // 0a1: irem - // 0a2: caload - // 0a3: bipush 34 - // 0a5: ixor - // 0a6: lookupswitch 130 15 12 237 65 186 67 199 71 212 73 225 75 231 76 243 79 249 80 256 81 263 82 283 86 290 87 297 91 304 113 276 - // 128: aload 9 - // 12a: iload 10 - // 12c: iload 11 - // 12e: castore - // 12f: iinc 10 1 - // 132: iinc 1 1 - // 135: iinc 2 -1 - // 138: bipush 0 - // 139: istore 12 - // 13b: goto 1e0 - // 13e: aload 7 - // 140: iload 8 - // 142: iinc 8 1 - // 145: new java/lang/String - // 148: dup - // 149: aload 9 - // 14b: invokespecial java/lang/String. ([C)V - // 14e: invokevirtual java/lang/String.intern ()Ljava/lang/String; - // 151: aastore - // 152: iload 1 - // 153: aload 0 - // 154: arraylength - // 155: if_icmplt 07d - // 158: aload 7 - // 15a: putstatic pack/tests/security/Sman.d [Ljava/lang/String; - // 15d: goto 224 - // 160: iload 11 - // 162: bipush -38 - // 164: ixor - // 165: istore 11 - // 167: bipush 1 - // 168: istore 12 - // 16a: goto 1e0 - // 16d: iload 11 - // 16f: bipush 26 - // 171: ixor - // 172: istore 11 - // 174: bipush 1 - // 175: istore 12 - // 177: goto 1e0 - // 17a: iload 11 - // 17c: bipush -21 - // 17e: ixor - // 17f: istore 11 - // 181: bipush 1 - // 182: istore 12 - // 184: goto 1e0 - // 187: bipush 2 - // 188: istore 12 - // 18a: goto 1e0 - // 18d: bipush 3 - // 18e: istore 12 - // 190: goto 1e0 - // 193: bipush 4 - // 194: istore 12 - // 196: goto 1e0 - // 199: bipush 5 - // 19a: istore 12 - // 19c: goto 1e0 - // 19f: bipush 6 - // 1a1: istore 12 - // 1a3: goto 1e0 - // 1a6: bipush 7 - // 1a8: istore 12 - // 1aa: goto 1e0 - // 1ad: iload 11 - // 1af: bipush 29 - // 1b1: ixor - // 1b2: istore 11 - // 1b4: bipush 1 - // 1b5: istore 12 - // 1b7: goto 1e0 - // 1ba: bipush 8 - // 1bc: istore 12 - // 1be: goto 1e0 - // 1c1: bipush 9 - // 1c3: istore 12 - // 1c5: goto 1e0 - // 1c8: bipush 10 - // 1ca: istore 12 - // 1cc: goto 1e0 - // 1cf: bipush 11 - // 1d1: istore 12 - // 1d3: goto 1e0 - // 1d6: bipush 12 - // 1d8: istore 12 - // 1da: goto 1e0 - // 1dd: goto 04b - // 1e0: iload 12 - // 1e2: tableswitch -40 0 12 -336 -186 -130 -117 -85 -91 -73 -104 -53 -40 -67 -33 -26 - // 224: return - } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string/pack/Main.dec b/testData/results/custom-jars/branchlock/branchlock-string/pack/Main.dec index 3b0d5841..fb7061d8 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string/pack/Main.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string/pack/Main.dec @@ -154,208 +154,4 @@ public class Main { Calc.runAll(); System.out.println("-------------Tests r Finished-------------"); } - - static { - // $VF: Couldn't be decompiled - // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) - // java.lang.RuntimeException: parsing failure! - // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) - // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) - // - // Bytecode: - // 000: ldc "#\u0ebe↑ᄁ+8>Lᄀ\uffd1\"ᅲ¢\u0019(>[¢\ufff5?ᅧᄃ?, \u0ee0テᅪ\"ᅧᄈ(m:Fᄈ\uffc0!ᅵ¢, \"Aᄃナ>\uffd1ᄇ(#*[ᄄノmᅥᆵ =,[레$\uffc9ᄅ94a\u000fᆬᅢ+ᅩᆪ$(#Lᄍノmᅱᄅ7(a\u000f계)ナᄚ?$.J○\u0ebf\u0019\uffc0ᄈ9m|\u0001\ufff1゚m↓ᆴ%(?Fᄡᅣ#ᅥᆬm\u0ea4\u001bJ뷔$ᅧᆴwm|\u0001\ufff0ᅲຼ\ufff1ᆬ>9m\u001d○メwナチ##\"[ᄀ\uffd1$ᅧᆴmຼ\u0019Jᄈ\uffd1mヤ○zwmfᆴᅨ(ᅲテ!,>\\¢ົ\u0019\uffc0ᄈ9m\u007f\u0001\ufff6゚m\ufff7ᆬ\u0019?,Lᆬナົ\ufff1ᆬ>9m\u001d○ヤwナテ\"8#[ᆬᅲmວチ89%@ᄇ゚mᅪᄉ7=>Mວ\ufff1(ᅱᄡm\u007fc\u0017\ufffaナ\u001e:ᆪmຯ\u0016gノ→\u0019\ufff8ຂ```\u0002■ネ`ネ■`9`\u0002ヤ\uffc0>\uffd1¢n\u007fw\u000fメ\uffc0+\uffc9ᆬ.9>\u0002■ネ`ネ■```\u0002■ネ`\u0ee2ニ\"?mBᆵᅱ9ナᄉ>(?\\↓ナ=ᅣᄈ>m,Cᆲナ\"ᅢ¢9%(\u000f꺄>ᅩᆪ>m J계>ナᄡ%(m@깨8ᅱᆪ,9\"]¢ᅩ>ナᄃ\"\")\u000fᆬᅨ\"\uffd0ᄃ%c຺{ᆬᅱ9ナ\ufff2c~w\u000fメ\uffc0>ᅧᄉ?.(\u000f\u0e80ネ`ネ■```\u0002■ネ`ネ■\u0019(>[¢ニ|゚¢\u000f,>Fᆪᅱ`ネ■```\u0002■ネ`ネ■`ຈ\u0019Jᄈ\uffd1mラ○\u007fwml또#\uffc0ᄈ(m遗迨フ│\f↑\uffc8EEE\u000f¢ナmᆵຬ\b\u001f\u001f`メູ\u0019\uffc0ᄈ9m\u007f\u0001\ufff4゚m ̄ᄅ(!)\u000f\u0ea6\ufff1(ᅱᄡm|c\u0019\ufffaナ\u001dᅧᆵ!mຒ{ᄄ\uffc0m\ufff1ᆬ>`m\f\ufff2ナ$ᅱ¢+\"?\u000fモᅰ?ᅩᆴ*\u000f\"@ᄡナ,ᅨᄂm\f#K벼$\uffc1¢!$&J¢\uffc0#ᅮᄅ?\"#Bᆬᅨ9ヒູ\u0019(>[¢ヤcラ\ufffam\u000e?@쀠mປマ\u0e6b!4\u000fᆪᅧ ᅰᄀ9$/Fᆲᅩ9ᅵ¢,#)\u000fᆬᅢ+ᅩᆪ$(#Lᄍナ,ᅲᆬm9(\\ᄡ\uffc0)ナᄄ(?(\u000eປ←$ᅨᆱwm%[ᄡᅰ>゚\uffefb*$[ᄄ\uffd0/ヒᆪ\" bGᄉ\uffdf=ᅱᄁb\u0007,Yᄀ↑/ᅢᄉ>.,[ᆵᅲ\u0019\uffc0ᄈ9຺\u0019Jᄈ\uffd1mヤ○ywmnᆪᅥ8ᅲᄀ.4mຸヤ\uffc0>\uffd1¢\u007fcx\u0015¢←\"ᅣᄂ(?mູヤ\uffc0>\uffd1¢|c~\u0015¢\ufff1%ᅲᆵ\uffc0m຺{ᆬᅱ9ナ\ufff1cxw\u000fモ\uffd0/₩ᆲ,>>\u000fຄネ`ネ■```\u0002■ネ`ネ■\u0019(>[¢ニ~゚¢\b++Fᆪᅩ(ᅨᆪ4``\u0002■ネ`ネ■```\u0002■\u0e83`ネ■```\u0002■ネ`ネ■`\u0019(\\ᄡᅱmᅲ¢\u000b$#F뽜(\uffc1■```\u0002■ネ`ネ■```ຫノ○" - // 002: invokevirtual java/lang/String.toCharArray ()[C - // 005: astore 0 - // 006: bipush 0 - // 007: istore 1 - // 008: aload 0 - // 009: dup - // 00a: sipush 266 - // 00d: swap - // 00e: sipush 518 - // 011: caload - // 012: aload 0 - // 013: dup - // 014: sipush 518 - // 017: swap - // 018: sipush 266 - // 01b: caload - // 01c: castore - // 01d: castore - // 01e: aload 0 - // 01f: dup - // 020: sipush 245 - // 023: swap - // 024: sipush 742 - // 027: caload - // 028: aload 0 - // 029: dup - // 02a: sipush 742 - // 02d: swap - // 02e: sipush 245 - // 031: caload - // 032: castore - // 033: castore - // 034: aload 0 - // 035: dup - // 036: sipush 589 - // 039: swap - // 03a: bipush 0 - // 03b: caload - // 03c: aload 0 - // 03d: dup - // 03e: bipush 0 - // 03f: swap - // 040: sipush 589 - // 043: caload - // 044: castore - // 045: castore - // 046: aload 0 - // 047: dup - // 048: sipush 616 - // 04b: swap - // 04c: sipush 1455 - // 04f: caload - // 050: aload 0 - // 051: dup - // 052: sipush 1455 - // 055: swap - // 056: sipush 616 - // 059: caload - // 05a: castore - // 05b: castore - // 05c: bipush 0 - // 05d: istore 3 - // 05e: goto 140 - // 061: astore 3 - // 062: aload 3 - // 063: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; - // 066: bipush 0 - // 067: aaload - // 068: astore 4 - // 06a: aload 4 - // 06c: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; - // 06f: invokevirtual java/lang/String.hashCode ()I - // 072: ldc 65535 - // 074: iand - // 075: istore 5 - // 077: aload 4 - // 079: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; - // 07c: invokevirtual java/lang/String.toCharArray ()[C - // 07f: astore 6 - // 081: aload 0 - // 082: iload 1 - // 083: iinc 1 1 - // 086: caload - // 087: sipush 220 - // 08a: ixor - // 08b: iload 5 - // 08d: ixor - // 08e: anewarray 174 - // 091: astore 7 - // 093: bipush 0 - // 094: istore 8 - // 096: aload 0 - // 097: iload 1 - // 098: iinc 1 1 - // 09b: caload - // 09c: bipush 0 - // 09d: ixor - // 09e: iload 5 - // 0a0: ixor - // 0a1: istore 2 - // 0a2: iload 2 - // 0a3: newarray 5 - // 0a5: astore 9 - // 0a7: bipush 0 - // 0a8: istore 10 - // 0aa: iload 2 - // 0ab: ifle 121 - // 0ae: aload 0 - // 0af: iload 1 - // 0b0: caload - // 0b1: istore 11 - // 0b3: aload 6 - // 0b5: iload 1 - // 0b6: aload 6 - // 0b8: arraylength - // 0b9: irem - // 0ba: caload - // 0bb: bipush 96 - // 0bd: ixor - // 0be: lookupswitch 77 8 1 146 3 159 9 165 11 178 14 203 16 133 45 191 78 197 - // 108: nop - // 109: nop - // 10a: athrow - // 10b: aload 9 - // 10d: iload 10 - // 10f: iload 11 - // 111: castore - // 112: iinc 10 1 - // 115: iinc 1 1 - // 118: iinc 2 -1 - // 11b: bipush 0 - // 11c: istore 12 - // 11e: goto 192 - // 121: aload 7 - // 123: iload 8 - // 125: iinc 8 1 - // 128: new java/lang/String - // 12b: dup - // 12c: aload 9 - // 12e: invokespecial java/lang/String. ([C)V - // 131: invokevirtual java/lang/String.intern ()Ljava/lang/String; - // 134: aastore - // 135: iload 1 - // 136: aload 0 - // 137: arraylength - // 138: if_icmplt 096 - // 13b: aload 7 - // 13d: putstatic pack/Main.catch [Ljava/lang/String; - // 140: goto 1bc - // 143: iload 11 - // 145: bipush -91 - // 147: ixor - // 148: istore 11 - // 14a: bipush 1 - // 14b: istore 12 - // 14d: goto 192 - // 150: iload 11 - // 152: bipush 77 - // 154: ixor - // 155: istore 11 - // 157: bipush 1 - // 158: istore 12 - // 15a: goto 192 - // 15d: bipush 2 - // 15e: istore 12 - // 160: goto 192 - // 163: iload 11 - // 165: bipush 47 - // 167: ixor - // 168: istore 11 - // 16a: bipush 1 - // 16b: istore 12 - // 16d: goto 192 - // 170: iload 11 - // 172: bipush -64 - // 174: ixor - // 175: istore 11 - // 177: bipush 1 - // 178: istore 12 - // 17a: goto 192 - // 17d: bipush 3 - // 17e: istore 12 - // 180: goto 192 - // 183: bipush 4 - // 184: istore 12 - // 186: goto 192 - // 189: bipush 5 - // 18a: istore 12 - // 18c: goto 192 - // 18f: goto 061 - // 192: iload 12 - // 194: tableswitch -137 0 5 -234 -137 -81 -68 -23 -36 - // 1bc: return - } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/basics/accu/Digi.dec b/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/basics/accu/Digi.dec index 0420845b..91d9df62 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/basics/accu/Digi.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/basics/accu/Digi.dec @@ -22,237 +22,4 @@ public class Digi { System.out.println("FAIL"); } } - - static { - // $VF: Couldn't be decompiled - // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) - // java.lang.RuntimeException: parsing failure! - // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) - // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) - // - // Bytecode: - // 000: ldc "ᄌ\u0007\u0012ᄀ\u001dป\u0ee7\u0007ᄉ\u0ee7\u0004" - // 002: invokevirtual java/lang/String.toCharArray ()[C - // 005: astore 0 - // 006: bipush 0 - // 007: istore 1 - // 008: aload 0 - // 009: dup - // 00a: bipush 1 - // 00b: swap - // 00c: bipush 9 - // 00e: caload - // 00f: aload 0 - // 010: dup - // 011: bipush 9 - // 013: swap - // 014: bipush 1 - // 015: caload - // 016: castore - // 017: castore - // 018: aload 0 - // 019: dup - // 01a: bipush 10 - // 01c: swap - // 01d: bipush 7 - // 01f: caload - // 020: aload 0 - // 021: dup - // 022: bipush 7 - // 024: swap - // 025: bipush 10 - // 027: caload - // 028: castore - // 029: castore - // 02a: aload 0 - // 02b: dup - // 02c: bipush 5 - // 02d: swap - // 02e: bipush 0 - // 02f: caload - // 030: aload 0 - // 031: dup - // 032: bipush 0 - // 033: swap - // 034: bipush 5 - // 035: caload - // 036: castore - // 037: castore - // 038: aload 0 - // 039: dup - // 03a: bipush 3 - // 03b: swap - // 03c: bipush 14 - // 03e: caload - // 03f: aload 0 - // 040: dup - // 041: bipush 14 - // 043: swap - // 044: bipush 3 - // 045: caload - // 046: castore - // 047: castore - // 048: aload 0 - // 049: dup - // 04a: bipush 6 - // 04c: swap - // 04d: bipush 10 - // 04f: caload - // 050: aload 0 - // 051: dup - // 052: bipush 10 - // 054: swap - // 055: bipush 6 - // 057: caload - // 058: castore - // 059: castore - // 05a: bipush 0 - // 05b: istore 3 - // 05c: goto 168 - // 05f: astore 3 - // 060: aload 3 - // 061: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; - // 064: bipush 0 - // 065: aaload - // 066: astore 4 - // 068: aload 4 - // 06a: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; - // 06d: invokevirtual java/lang/String.hashCode ()I - // 070: ldc 65535 - // 072: iand - // 073: istore 5 - // 075: aload 4 - // 077: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; - // 07a: invokevirtual java/lang/String.toCharArray ()[C - // 07d: astore 6 - // 07f: aload 0 - // 080: iload 1 - // 081: iinc 1 1 - // 084: caload - // 085: sipush 176 - // 088: ixor - // 089: iload 5 - // 08b: ixor - // 08c: anewarray 44 - // 08f: astore 7 - // 091: bipush 0 - // 092: istore 8 - // 094: aload 0 - // 095: iload 1 - // 096: iinc 1 1 - // 099: caload - // 09a: bipush 74 - // 09c: ixor - // 09d: iload 5 - // 09f: ixor - // 0a0: istore 2 - // 0a1: iload 2 - // 0a2: newarray 5 - // 0a4: astore 9 - // 0a6: bipush 0 - // 0a7: istore 10 - // 0a9: iload 2 - // 0aa: ifle 149 - // 0ad: aload 0 - // 0ae: iload 1 - // 0af: caload - // 0b0: istore 11 - // 0b2: aload 6 - // 0b4: iload 1 - // 0b5: aload 6 - // 0b7: arraylength - // 0b8: irem - // 0b9: caload - // 0ba: bipush 12 - // 0bc: ixor - // 0bd: lookupswitch 118 13 34 174 72 213 101 187 103 200 105 219 107 225 109 231 110 244 111 250 120 257 121 264 124 271 127 278 - // 130: nop - // 131: nop - // 132: athrow - // 133: aload 9 - // 135: iload 10 - // 137: iload 11 - // 139: castore - // 13a: iinc 10 1 - // 13d: iinc 1 1 - // 140: iinc 2 -1 - // 143: bipush 0 - // 144: istore 12 - // 146: goto 1dd - // 149: aload 7 - // 14b: iload 8 - // 14d: iinc 8 1 - // 150: new java/lang/String - // 153: dup - // 154: aload 9 - // 156: invokespecial java/lang/String. ([C)V - // 159: invokevirtual java/lang/String.intern ()Ljava/lang/String; - // 15c: aastore - // 15d: iload 1 - // 15e: aload 0 - // 15f: arraylength - // 160: if_icmplt 094 - // 163: aload 7 - // 165: putstatic pack/tests/basics/accu/Digi.catch [Ljava/lang/String; - // 168: goto 218 - // 16b: iload 11 - // 16d: bipush 84 - // 16f: ixor - // 170: istore 11 - // 172: bipush 1 - // 173: istore 12 - // 175: goto 1dd - // 178: iload 11 - // 17a: bipush -12 - // 17c: ixor - // 17d: istore 11 - // 17f: bipush 1 - // 180: istore 12 - // 182: goto 1dd - // 185: iload 11 - // 187: bipush -32 - // 189: ixor - // 18a: istore 11 - // 18c: bipush 1 - // 18d: istore 12 - // 18f: goto 1dd - // 192: bipush 2 - // 193: istore 12 - // 195: goto 1dd - // 198: bipush 3 - // 199: istore 12 - // 19b: goto 1dd - // 19e: bipush 4 - // 19f: istore 12 - // 1a1: goto 1dd - // 1a4: iload 11 - // 1a6: bipush 120 - // 1a8: ixor - // 1a9: istore 11 - // 1ab: bipush 1 - // 1ac: istore 12 - // 1ae: goto 1dd - // 1b1: bipush 5 - // 1b2: istore 12 - // 1b4: goto 1dd - // 1b7: bipush 6 - // 1b9: istore 12 - // 1bb: goto 1dd - // 1be: bipush 7 - // 1c0: istore 12 - // 1c2: goto 1dd - // 1c5: bipush 8 - // 1c7: istore 12 - // 1c9: goto 1dd - // 1cc: bipush 9 - // 1ce: istore 12 - // 1d0: goto 1dd - // 1d3: bipush 10 - // 1d5: istore 12 - // 1d7: goto 1dd - // 1da: goto 05f - // 1dd: iload 12 - // 1df: tableswitch -172 0 10 -310 -172 -103 -90 -77 -65 -116 -46 -33 -26 -40 - // 218: return - } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/basics/cross/Top.dec b/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/basics/cross/Top.dec index c1268b5e..a61980fc 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/basics/cross/Top.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/basics/cross/Top.dec @@ -13,233 +13,4 @@ public class Top extends Abst1 implements Inte { public int add(int a, int b) { return a + b; } - - static { - // $VF: Couldn't be decompiled - // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) - // java.lang.RuntimeException: parsing failure! - // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) - // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) - // - // Bytecode: - // 000: ldc "]\u0ef9oM_e\u0ef9\\hGๅ" - // 002: invokevirtual java/lang/String.toCharArray ()[C - // 005: astore 0 - // 006: bipush 0 - // 007: istore 1 - // 008: aload 0 - // 009: dup - // 00a: bipush 10 - // 00c: swap - // 00d: bipush 4 - // 00e: caload - // 00f: aload 0 - // 010: dup - // 011: bipush 4 - // 012: swap - // 013: bipush 10 - // 015: caload - // 016: castore - // 017: castore - // 018: aload 0 - // 019: dup - // 01a: bipush 9 - // 01c: swap - // 01d: bipush 10 - // 01f: caload - // 020: aload 0 - // 021: dup - // 022: bipush 10 - // 024: swap - // 025: bipush 9 - // 027: caload - // 028: castore - // 029: castore - // 02a: aload 0 - // 02b: dup - // 02c: bipush 4 - // 02d: swap - // 02e: bipush 0 - // 02f: caload - // 030: aload 0 - // 031: dup - // 032: bipush 0 - // 033: swap - // 034: bipush 4 - // 035: caload - // 036: castore - // 037: castore - // 038: aload 0 - // 039: dup - // 03a: bipush 4 - // 03b: swap - // 03c: bipush 11 - // 03e: caload - // 03f: aload 0 - // 040: dup - // 041: bipush 11 - // 043: swap - // 044: bipush 4 - // 045: caload - // 046: castore - // 047: castore - // 048: aload 0 - // 049: dup - // 04a: bipush 3 - // 04b: swap - // 04c: bipush 1 - // 04d: caload - // 04e: aload 0 - // 04f: dup - // 050: bipush 1 - // 051: swap - // 052: bipush 3 - // 053: caload - // 054: castore - // 055: castore - // 056: bipush 0 - // 057: istore 3 - // 058: goto 164 - // 05b: astore 3 - // 05c: aload 3 - // 05d: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; - // 060: bipush 0 - // 061: aaload - // 062: astore 4 - // 064: aload 4 - // 066: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; - // 069: invokevirtual java/lang/String.hashCode ()I - // 06c: ldc 65535 - // 06e: iand - // 06f: istore 5 - // 071: aload 4 - // 073: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; - // 076: invokevirtual java/lang/String.toCharArray ()[C - // 079: astore 6 - // 07b: aload 0 - // 07c: iload 1 - // 07d: iinc 1 1 - // 080: caload - // 081: sipush 238 - // 084: ixor - // 085: iload 5 - // 087: ixor - // 088: anewarray 45 - // 08b: astore 7 - // 08d: bipush 0 - // 08e: istore 8 - // 090: aload 0 - // 091: iload 1 - // 092: iinc 1 1 - // 095: caload - // 096: bipush 84 - // 098: ixor - // 099: iload 5 - // 09b: ixor - // 09c: istore 2 - // 09d: iload 2 - // 09e: newarray 5 - // 0a0: astore 9 - // 0a2: bipush 0 - // 0a3: istore 10 - // 0a5: iload 2 - // 0a6: ifle 145 - // 0a9: aload 0 - // 0aa: iload 1 - // 0ab: caload - // 0ac: istore 11 - // 0ae: aload 6 - // 0b0: iload 1 - // 0b1: aload 6 - // 0b3: arraylength - // 0b4: irem - // 0b5: caload - // 0b6: bipush 106 - // 0b8: ixor - // 0b9: lookupswitch 118 13 1 174 3 187 5 206 8 212 9 218 11 231 15 237 24 244 25 251 26 258 30 265 62 272 68 193 - // 12c: nop - // 12d: nop - // 12e: athrow - // 12f: aload 9 - // 131: iload 10 - // 133: iload 11 - // 135: castore - // 136: iinc 10 1 - // 139: iinc 1 1 - // 13c: iinc 2 -1 - // 13f: bipush 0 - // 140: istore 12 - // 142: goto 1d3 - // 145: aload 7 - // 147: iload 8 - // 149: iinc 8 1 - // 14c: new java/lang/String - // 14f: dup - // 150: aload 9 - // 152: invokespecial java/lang/String. ([C)V - // 155: invokevirtual java/lang/String.intern ()Ljava/lang/String; - // 158: aastore - // 159: iload 1 - // 15a: aload 0 - // 15b: arraylength - // 15c: if_icmplt 090 - // 15f: aload 7 - // 161: putstatic pack/tests/basics/cross/Top.catch [Ljava/lang/String; - // 164: goto 214 - // 167: iload 11 - // 169: bipush 12 - // 16b: ixor - // 16c: istore 11 - // 16e: bipush 1 - // 16f: istore 12 - // 171: goto 1d3 - // 174: bipush 2 - // 175: istore 12 - // 177: goto 1d3 - // 17a: iload 11 - // 17c: bipush 20 - // 17e: ixor - // 17f: istore 11 - // 181: bipush 1 - // 182: istore 12 - // 184: goto 1d3 - // 187: bipush 3 - // 188: istore 12 - // 18a: goto 1d3 - // 18d: bipush 4 - // 18e: istore 12 - // 190: goto 1d3 - // 193: iload 11 - // 195: bipush 41 - // 197: ixor - // 198: istore 11 - // 19a: bipush 1 - // 19b: istore 12 - // 19d: goto 1d3 - // 1a0: bipush 5 - // 1a1: istore 12 - // 1a3: goto 1d3 - // 1a6: bipush 6 - // 1a8: istore 12 - // 1aa: goto 1d3 - // 1ad: bipush 7 - // 1af: istore 12 - // 1b1: goto 1d3 - // 1b4: bipush 8 - // 1b6: istore 12 - // 1b8: goto 1d3 - // 1bb: bipush 9 - // 1bd: istore 12 - // 1bf: goto 1d3 - // 1c2: bipush 10 - // 1c4: istore 12 - // 1c6: goto 1d3 - // 1c9: bipush 11 - // 1cb: istore 12 - // 1cd: goto 1d3 - // 1d0: goto 05b - // 1d3: iload 12 - // 1d5: tableswitch -26 0 11 -304 -166 -110 -97 -78 -72 -91 -66 -53 -40 -26 -33 - // 214: return - } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/basics/ctrl/Ctrl.dec b/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/basics/ctrl/Ctrl.dec index 4216d9d3..f9e52a7c 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/basics/ctrl/Ctrl.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/basics/ctrl/Ctrl.dec @@ -27,209 +27,4 @@ public class Ctrl { this.runf(); System.out.println(this.ret); } - - static { - // $VF: Couldn't be decompiled - // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) - // java.lang.RuntimeException: parsing failure! - // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) - // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) - // - // Bytecode: - // 000: ldc "ຑຑᅪສ↑ດᅧᄊᄂᄂດ\ufff8ᅴ헤" - // 002: invokevirtual java/lang/String.toCharArray ()[C - // 005: astore 0 - // 006: bipush 0 - // 007: istore 1 - // 008: aload 0 - // 009: dup - // 00a: bipush 11 - // 00c: swap - // 00d: bipush 2 - // 00e: caload - // 00f: aload 0 - // 010: dup - // 011: bipush 2 - // 012: swap - // 013: bipush 11 - // 015: caload - // 016: castore - // 017: castore - // 018: aload 0 - // 019: dup - // 01a: bipush 3 - // 01b: swap - // 01c: bipush 0 - // 01d: caload - // 01e: aload 0 - // 01f: dup - // 020: bipush 0 - // 021: swap - // 022: bipush 3 - // 023: caload - // 024: castore - // 025: castore - // 026: aload 0 - // 027: dup - // 028: bipush 14 - // 02a: swap - // 02b: bipush 21 - // 02d: caload - // 02e: aload 0 - // 02f: dup - // 030: bipush 21 - // 032: swap - // 033: bipush 14 - // 035: caload - // 036: castore - // 037: castore - // 038: bipush 0 - // 039: istore 3 - // 03a: goto 144 - // 03d: astore 3 - // 03e: aload 3 - // 03f: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; - // 042: bipush 0 - // 043: aaload - // 044: astore 4 - // 046: aload 4 - // 048: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; - // 04b: invokevirtual java/lang/String.hashCode ()I - // 04e: ldc 65535 - // 050: iand - // 051: istore 5 - // 053: aload 4 - // 055: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; - // 058: invokevirtual java/lang/String.toCharArray ()[C - // 05b: astore 6 - // 05d: aload 0 - // 05e: iload 1 - // 05f: iinc 1 1 - // 062: caload - // 063: bipush 7 - // 065: ixor - // 066: iload 5 - // 068: ixor - // 069: anewarray 24 - // 06c: astore 7 - // 06e: bipush 0 - // 06f: istore 8 - // 071: aload 0 - // 072: iload 1 - // 073: iinc 1 1 - // 076: caload - // 077: bipush 57 - // 079: ixor - // 07a: iload 5 - // 07c: ixor - // 07d: istore 2 - // 07e: iload 2 - // 07f: newarray 5 - // 081: astore 9 - // 083: bipush 0 - // 084: istore 10 - // 086: iload 2 - // 087: ifle 125 - // 08a: aload 0 - // 08b: iload 1 - // 08c: caload - // 08d: istore 11 - // 08f: aload 6 - // 091: iload 1 - // 092: aload 6 - // 094: arraylength - // 095: irem - // 096: caload - // 097: bipush 43 - // 099: ixor - // 09a: lookupswitch 117 13 5 199 64 173 66 186 71 205 72 211 73 230 74 236 78 243 88 250 89 263 91 270 95 277 104 224 - // 10c: nop - // 10d: nop - // 10e: athrow - // 10f: aload 9 - // 111: iload 10 - // 113: iload 11 - // 115: castore - // 116: iinc 10 1 - // 119: iinc 1 1 - // 11c: iinc 2 -1 - // 11f: bipush 0 - // 120: istore 12 - // 122: goto 1b9 - // 125: aload 7 - // 127: iload 8 - // 129: iinc 8 1 - // 12c: new java/lang/String - // 12f: dup - // 130: aload 9 - // 132: invokespecial java/lang/String. ([C)V - // 135: invokevirtual java/lang/String.intern ()Ljava/lang/String; - // 138: aastore - // 139: iload 1 - // 13a: aload 0 - // 13b: arraylength - // 13c: if_icmplt 071 - // 13f: aload 7 - // 141: putstatic pack/tests/basics/ctrl/Ctrl.catch [Ljava/lang/String; - // 144: goto 1f4 - // 147: iload 11 - // 149: bipush -2 - // 14b: ixor - // 14c: istore 11 - // 14e: bipush 1 - // 14f: istore 12 - // 151: goto 1b9 - // 154: iload 11 - // 156: bipush -117 - // 158: ixor - // 159: istore 11 - // 15b: bipush 1 - // 15c: istore 12 - // 15e: goto 1b9 - // 161: bipush 2 - // 162: istore 12 - // 164: goto 1b9 - // 167: bipush 3 - // 168: istore 12 - // 16a: goto 1b9 - // 16d: iload 11 - // 16f: bipush -102 - // 171: ixor - // 172: istore 11 - // 174: bipush 1 - // 175: istore 12 - // 177: goto 1b9 - // 17a: bipush 4 - // 17b: istore 12 - // 17d: goto 1b9 - // 180: bipush 5 - // 181: istore 12 - // 183: goto 1b9 - // 186: bipush 6 - // 188: istore 12 - // 18a: goto 1b9 - // 18d: bipush 7 - // 18f: istore 12 - // 191: goto 1b9 - // 194: iload 11 - // 196: bipush -9 - // 198: ixor - // 199: istore 11 - // 19b: bipush 1 - // 19c: istore 12 - // 19e: goto 1b9 - // 1a1: bipush 8 - // 1a3: istore 12 - // 1a5: goto 1b9 - // 1a8: bipush 9 - // 1aa: istore 12 - // 1ac: goto 1b9 - // 1af: bipush 10 - // 1b1: istore 12 - // 1b3: goto 1b9 - // 1b6: goto 03d - // 1b9: iload 12 - // 1bb: tableswitch -103 0 10 -309 -172 -103 -90 -116 -84 -78 -53 -65 -26 -39 - // 1f4: return - } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/basics/inner/Test.dec b/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/basics/inner/Test.dec index 93790dbb..6928f9f1 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/basics/inner/Test.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/basics/inner/Test.dec @@ -13,219 +13,4 @@ public class Test { System.out.println("ERROR"); } } - - static { - // $VF: Couldn't be decompiled - // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) - // java.lang.RuntimeException: parsing failure! - // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) - // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) - // - // Bytecode: - // 000: ldc "ヨ\u0e6dᅪナ-\uffd8\u0e6cラヨᅬ1ใ" - // 002: invokevirtual java/lang/String.toCharArray ()[C - // 005: astore 0 - // 006: bipush 0 - // 007: istore 1 - // 008: aload 0 - // 009: dup - // 00a: bipush 7 - // 00c: swap - // 00d: bipush 5 - // 00e: caload - // 00f: aload 0 - // 010: dup - // 011: bipush 5 - // 012: swap - // 013: bipush 7 - // 015: caload - // 016: castore - // 017: castore - // 018: aload 0 - // 019: dup - // 01a: bipush 8 - // 01c: swap - // 01d: bipush 11 - // 01f: caload - // 020: aload 0 - // 021: dup - // 022: bipush 11 - // 024: swap - // 025: bipush 8 - // 027: caload - // 028: castore - // 029: castore - // 02a: aload 0 - // 02b: dup - // 02c: bipush 8 - // 02e: swap - // 02f: bipush 0 - // 030: caload - // 031: aload 0 - // 032: dup - // 033: bipush 0 - // 034: swap - // 035: bipush 8 - // 037: caload - // 038: castore - // 039: castore - // 03a: aload 0 - // 03b: dup - // 03c: bipush 2 - // 03d: swap - // 03e: bipush 16 - // 040: caload - // 041: aload 0 - // 042: dup - // 043: bipush 16 - // 045: swap - // 046: bipush 2 - // 047: caload - // 048: castore - // 049: castore - // 04a: bipush 0 - // 04b: istore 3 - // 04c: goto 158 - // 04f: astore 3 - // 050: aload 3 - // 051: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; - // 054: bipush 0 - // 055: aaload - // 056: astore 4 - // 058: aload 4 - // 05a: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; - // 05d: invokevirtual java/lang/String.hashCode ()I - // 060: ldc 65535 - // 062: iand - // 063: istore 5 - // 065: aload 4 - // 067: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; - // 06a: invokevirtual java/lang/String.toCharArray ()[C - // 06d: astore 6 - // 06f: aload 0 - // 070: iload 1 - // 071: iinc 1 1 - // 074: caload - // 075: sipush 232 - // 078: ixor - // 079: iload 5 - // 07b: ixor - // 07c: anewarray 58 - // 07f: astore 7 - // 081: bipush 0 - // 082: istore 8 - // 084: aload 0 - // 085: iload 1 - // 086: iinc 1 1 - // 089: caload - // 08a: sipush 192 - // 08d: ixor - // 08e: iload 5 - // 090: ixor - // 091: istore 2 - // 092: iload 2 - // 093: newarray 5 - // 095: astore 9 - // 097: bipush 0 - // 098: istore 10 - // 09a: iload 2 - // 09b: ifle 139 - // 09e: aload 0 - // 09f: iload 1 - // 0a0: caload - // 0a1: istore 11 - // 0a3: aload 6 - // 0a5: iload 1 - // 0a6: aload 6 - // 0a8: arraylength - // 0a9: irem - // 0aa: caload - // 0ab: sipush 165 - // 0ae: ixor - // 0af: lookupswitch 116 13 139 217 192 172 196 185 198 198 199 211 203 223 204 229 206 235 209 242 213 256 214 263 215 270 241 249 - // 120: nop - // 121: nop - // 122: athrow - // 123: aload 9 - // 125: iload 10 - // 127: iload 11 - // 129: castore - // 12a: iinc 10 1 - // 12d: iinc 1 1 - // 130: iinc 2 -1 - // 133: bipush 0 - // 134: istore 12 - // 136: goto 1c7 - // 139: aload 7 - // 13b: iload 8 - // 13d: iinc 8 1 - // 140: new java/lang/String - // 143: dup - // 144: aload 9 - // 146: invokespecial java/lang/String. ([C)V - // 149: invokevirtual java/lang/String.intern ()Ljava/lang/String; - // 14c: aastore - // 14d: iload 1 - // 14e: aload 0 - // 14f: arraylength - // 150: if_icmplt 084 - // 153: aload 7 - // 155: putstatic pack/tests/basics/inner/Test.catch [Ljava/lang/String; - // 158: goto 208 - // 15b: iload 11 - // 15d: bipush -60 - // 15f: ixor - // 160: istore 11 - // 162: bipush 1 - // 163: istore 12 - // 165: goto 1c7 - // 168: iload 11 - // 16a: bipush 126 - // 16c: ixor - // 16d: istore 11 - // 16f: bipush 1 - // 170: istore 12 - // 172: goto 1c7 - // 175: iload 11 - // 177: bipush -99 - // 179: ixor - // 17a: istore 11 - // 17c: bipush 1 - // 17d: istore 12 - // 17f: goto 1c7 - // 182: bipush 2 - // 183: istore 12 - // 185: goto 1c7 - // 188: bipush 3 - // 189: istore 12 - // 18b: goto 1c7 - // 18e: bipush 4 - // 18f: istore 12 - // 191: goto 1c7 - // 194: bipush 5 - // 195: istore 12 - // 197: goto 1c7 - // 19a: bipush 6 - // 19c: istore 12 - // 19e: goto 1c7 - // 1a1: bipush 7 - // 1a3: istore 12 - // 1a5: goto 1c7 - // 1a8: bipush 8 - // 1aa: istore 12 - // 1ac: goto 1c7 - // 1af: bipush 9 - // 1b1: istore 12 - // 1b3: goto 1c7 - // 1b6: bipush 10 - // 1b8: istore 12 - // 1ba: goto 1c7 - // 1bd: bipush 11 - // 1bf: istore 12 - // 1c1: goto 1c7 - // 1c4: goto 04f - // 1c7: iload 12 - // 1c9: tableswitch -97 0 11 -303 -166 -110 -97 -65 -59 -71 -47 -53 -40 -84 -19 - // 208: return - } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/basics/overwirte/Sub.dec b/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/basics/overwirte/Sub.dec index fe5a6f8c..929c1125 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/basics/overwirte/Sub.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/basics/overwirte/Sub.dec @@ -10,232 +10,4 @@ public class Sub extends Super { public String face(int i) { return i == 1 ? "PASS" : "FAIL"; } - - static { - // $VF: Couldn't be decompiled - // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) - // java.lang.RuntimeException: parsing failure! - // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) - // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) - // - // Bytecode: - // 000: ldc "ᅭທW\u001d\u0ef0\u000f\u0ef0\u001a\u001d\u0015ᅪ" - // 002: invokevirtual java/lang/String.toCharArray ()[C - // 005: astore 0 - // 006: bipush 0 - // 007: istore 1 - // 008: aload 0 - // 009: dup - // 00a: bipush 0 - // 00b: swap - // 00c: bipush 10 - // 00e: caload - // 00f: aload 0 - // 010: dup - // 011: bipush 10 - // 013: swap - // 014: bipush 0 - // 015: caload - // 016: castore - // 017: castore - // 018: aload 0 - // 019: dup - // 01a: bipush 4 - // 01b: swap - // 01c: bipush 0 - // 01d: caload - // 01e: aload 0 - // 01f: dup - // 020: bipush 0 - // 021: swap - // 022: bipush 4 - // 023: caload - // 024: castore - // 025: castore - // 026: aload 0 - // 027: dup - // 028: bipush 1 - // 029: swap - // 02a: bipush 0 - // 02b: caload - // 02c: aload 0 - // 02d: dup - // 02e: bipush 0 - // 02f: swap - // 030: bipush 1 - // 031: caload - // 032: castore - // 033: castore - // 034: aload 0 - // 035: dup - // 036: bipush 5 - // 037: swap - // 038: bipush 18 - // 03a: caload - // 03b: aload 0 - // 03c: dup - // 03d: bipush 18 - // 03f: swap - // 040: bipush 5 - // 041: caload - // 042: castore - // 043: castore - // 044: bipush 0 - // 045: istore 3 - // 046: goto 168 - // 049: astore 3 - // 04a: aload 3 - // 04b: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; - // 04e: bipush 0 - // 04f: aaload - // 050: astore 4 - // 052: aload 4 - // 054: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; - // 057: invokevirtual java/lang/String.hashCode ()I - // 05a: ldc 65535 - // 05c: iand - // 05d: istore 5 - // 05f: aload 4 - // 061: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; - // 064: invokevirtual java/lang/String.toCharArray ()[C - // 067: astore 6 - // 069: aload 0 - // 06a: iload 1 - // 06b: iinc 1 1 - // 06e: caload - // 06f: bipush 60 - // 071: ixor - // 072: iload 5 - // 074: ixor - // 075: anewarray 43 - // 078: astore 7 - // 07a: bipush 0 - // 07b: istore 8 - // 07d: aload 0 - // 07e: iload 1 - // 07f: iinc 1 1 - // 082: caload - // 083: bipush 93 - // 085: ixor - // 086: iload 5 - // 088: ixor - // 089: istore 2 - // 08a: iload 2 - // 08b: newarray 5 - // 08d: astore 9 - // 08f: bipush 0 - // 090: istore 10 - // 092: iload 2 - // 093: ifle 149 - // 096: aload 0 - // 097: iload 1 - // 098: caload - // 099: istore 11 - // 09b: aload 6 - // 09d: iload 1 - // 09e: aload 6 - // 0a0: arraylength - // 0a1: irem - // 0a2: caload - // 0a3: sipush 144 - // 0a6: ixor - // 0a7: lookupswitch 140 16 190 314 195 228 224 196 226 209 227 215 228 241 229 247 230 253 231 259 241 266 242 273 243 280 245 293 249 300 251 307 255 321 - // 130: nop - // 131: nop - // 132: athrow - // 133: aload 9 - // 135: iload 10 - // 137: iload 11 - // 139: castore - // 13a: iinc 10 1 - // 13d: iinc 1 1 - // 140: iinc 2 -1 - // 143: bipush 0 - // 144: istore 12 - // 146: goto 1f2 - // 149: aload 7 - // 14b: iload 8 - // 14d: iinc 8 1 - // 150: new java/lang/String - // 153: dup - // 154: aload 9 - // 156: invokespecial java/lang/String. ([C)V - // 159: invokevirtual java/lang/String.intern ()Ljava/lang/String; - // 15c: aastore - // 15d: iload 1 - // 15e: aload 0 - // 15f: arraylength - // 160: if_icmplt 07d - // 163: aload 7 - // 165: putstatic pack/tests/basics/overwirte/Sub.catch [Ljava/lang/String; - // 168: goto 23c - // 16b: iload 11 - // 16d: bipush -89 - // 16f: ixor - // 170: istore 11 - // 172: bipush 1 - // 173: istore 12 - // 175: goto 1f2 - // 178: bipush 2 - // 179: istore 12 - // 17b: goto 1f2 - // 17e: iload 11 - // 180: bipush 92 - // 182: ixor - // 183: istore 11 - // 185: bipush 1 - // 186: istore 12 - // 188: goto 1f2 - // 18b: iload 11 - // 18d: bipush -98 - // 18f: ixor - // 190: istore 11 - // 192: bipush 1 - // 193: istore 12 - // 195: goto 1f2 - // 198: bipush 3 - // 199: istore 12 - // 19b: goto 1f2 - // 19e: bipush 4 - // 19f: istore 12 - // 1a1: goto 1f2 - // 1a4: bipush 5 - // 1a5: istore 12 - // 1a7: goto 1f2 - // 1aa: bipush 6 - // 1ac: istore 12 - // 1ae: goto 1f2 - // 1b1: bipush 7 - // 1b3: istore 12 - // 1b5: goto 1f2 - // 1b8: bipush 8 - // 1ba: istore 12 - // 1bc: goto 1f2 - // 1bf: iload 11 - // 1c1: bipush 7 - // 1c3: ixor - // 1c4: istore 11 - // 1c6: bipush 1 - // 1c7: istore 12 - // 1c9: goto 1f2 - // 1cc: bipush 9 - // 1ce: istore 12 - // 1d0: goto 1f2 - // 1d3: bipush 10 - // 1d5: istore 12 - // 1d7: goto 1f2 - // 1da: bipush 11 - // 1dc: istore 12 - // 1de: goto 1f2 - // 1e1: bipush 12 - // 1e3: istore 12 - // 1e5: goto 1f2 - // 1e8: bipush 13 - // 1ea: istore 12 - // 1ec: goto 1f2 - // 1ef: goto 049 - // 1f2: iload 12 - // 1f4: tableswitch -86 0 13 -354 -193 -137 -118 -105 -92 -86 -74 -80 -53 -40 -60 -67 -33 - // 23c: return - } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/basics/overwirte/Super.dec b/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/basics/overwirte/Super.dec index a2b63f21..f621220d 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/basics/overwirte/Super.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/basics/overwirte/Super.dec @@ -4,218 +4,4 @@ public abstract class Super implements Face { public void run() { System.out.println("FAIL"); } - - static { - // $VF: Couldn't be decompiled - // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) - // java.lang.RuntimeException: parsing failure! - // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) - // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) - // - // Bytecode: - // 000: ldc "ヒີ\u0016\u0011\u0ef9\u001c" - // 002: invokevirtual java/lang/String.toCharArray ()[C - // 005: astore 0 - // 006: bipush 0 - // 007: istore 1 - // 008: aload 0 - // 009: dup - // 00a: bipush 4 - // 00b: swap - // 00c: bipush 0 - // 00d: caload - // 00e: aload 0 - // 00f: dup - // 010: bipush 0 - // 011: swap - // 012: bipush 4 - // 013: caload - // 014: castore - // 015: castore - // 016: aload 0 - // 017: dup - // 018: bipush 5 - // 019: swap - // 01a: bipush 10 - // 01c: caload - // 01d: aload 0 - // 01e: dup - // 01f: bipush 10 - // 021: swap - // 022: bipush 5 - // 023: caload - // 024: castore - // 025: castore - // 026: aload 0 - // 027: dup - // 028: bipush 0 - // 029: swap - // 02a: bipush 5 - // 02b: caload - // 02c: aload 0 - // 02d: dup - // 02e: bipush 5 - // 02f: swap - // 030: bipush 0 - // 031: caload - // 032: castore - // 033: castore - // 034: bipush 0 - // 035: istore 3 - // 036: goto 158 - // 039: astore 3 - // 03a: aload 3 - // 03b: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; - // 03e: bipush 0 - // 03f: aaload - // 040: astore 4 - // 042: aload 4 - // 044: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; - // 047: invokevirtual java/lang/String.hashCode ()I - // 04a: ldc 65535 - // 04c: iand - // 04d: istore 5 - // 04f: aload 4 - // 051: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; - // 054: invokevirtual java/lang/String.toCharArray ()[C - // 057: astore 6 - // 059: aload 0 - // 05a: iload 1 - // 05b: iinc 1 1 - // 05e: caload - // 05f: bipush 81 - // 061: ixor - // 062: iload 5 - // 064: ixor - // 065: anewarray 33 - // 068: astore 7 - // 06a: bipush 0 - // 06b: istore 8 - // 06d: aload 0 - // 06e: iload 1 - // 06f: iinc 1 1 - // 072: caload - // 073: bipush 24 - // 075: ixor - // 076: iload 5 - // 078: ixor - // 079: istore 2 - // 07a: iload 2 - // 07b: newarray 5 - // 07d: astore 9 - // 07f: bipush 0 - // 080: istore 10 - // 082: iload 2 - // 083: ifle 139 - // 086: aload 0 - // 087: iload 1 - // 088: caload - // 089: istore 11 - // 08b: aload 6 - // 08d: iload 1 - // 08e: aload 6 - // 090: arraylength - // 091: irem - // 092: caload - // 093: sipush 244 - // 096: ixor - // 097: lookupswitch 140 16 128 196 129 209 130 215 131 228 132 241 134 247 135 253 145 266 149 279 150 286 151 293 155 307 157 314 159 321 167 259 218 300 - // 120: nop - // 121: nop - // 122: athrow - // 123: aload 9 - // 125: iload 10 - // 127: iload 11 - // 129: castore - // 12a: iinc 10 1 - // 12d: iinc 1 1 - // 130: iinc 2 -1 - // 133: bipush 0 - // 134: istore 12 - // 136: goto 1e2 - // 139: aload 7 - // 13b: iload 8 - // 13d: iinc 8 1 - // 140: new java/lang/String - // 143: dup - // 144: aload 9 - // 146: invokespecial java/lang/String. ([C)V - // 149: invokevirtual java/lang/String.intern ()Ljava/lang/String; - // 14c: aastore - // 14d: iload 1 - // 14e: aload 0 - // 14f: arraylength - // 150: if_icmplt 06d - // 153: aload 7 - // 155: putstatic pack/tests/basics/overwirte/Super.catch [Ljava/lang/String; - // 158: goto 22c - // 15b: iload 11 - // 15d: bipush 80 - // 15f: ixor - // 160: istore 11 - // 162: bipush 1 - // 163: istore 12 - // 165: goto 1e2 - // 168: bipush 2 - // 169: istore 12 - // 16b: goto 1e2 - // 16e: iload 11 - // 170: bipush -62 - // 172: ixor - // 173: istore 11 - // 175: bipush 1 - // 176: istore 12 - // 178: goto 1e2 - // 17b: iload 11 - // 17d: bipush -58 - // 17f: ixor - // 180: istore 11 - // 182: bipush 1 - // 183: istore 12 - // 185: goto 1e2 - // 188: bipush 3 - // 189: istore 12 - // 18b: goto 1e2 - // 18e: bipush 4 - // 18f: istore 12 - // 191: goto 1e2 - // 194: bipush 5 - // 195: istore 12 - // 197: goto 1e2 - // 19a: bipush 6 - // 19c: istore 12 - // 19e: goto 1e2 - // 1a1: iload 11 - // 1a3: bipush -69 - // 1a5: ixor - // 1a6: istore 11 - // 1a8: bipush 1 - // 1a9: istore 12 - // 1ab: goto 1e2 - // 1ae: bipush 7 - // 1b0: istore 12 - // 1b2: goto 1e2 - // 1b5: bipush 8 - // 1b7: istore 12 - // 1b9: goto 1e2 - // 1bc: bipush 9 - // 1be: istore 12 - // 1c0: goto 1e2 - // 1c3: bipush 10 - // 1c5: istore 12 - // 1c7: goto 1e2 - // 1ca: bipush 11 - // 1cc: istore 12 - // 1ce: goto 1e2 - // 1d1: bipush 12 - // 1d3: istore 12 - // 1d5: goto 1e2 - // 1d8: bipush 13 - // 1da: istore 12 - // 1dc: goto 1e2 - // 1df: goto 039 - // 1e2: iload 12 - // 1e4: tableswitch -354 0 13 -354 -193 -137 -118 -105 -92 -86 -80 -124 -47 -54 -33 -26 -40 - // 22c: return - } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/basics/runable/Task.dec b/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/basics/runable/Task.dec index 0325ec7f..3f00b0d1 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/basics/runable/Task.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/basics/runable/Task.dec @@ -39,229 +39,4 @@ public class Task { System.out.println("FAIL"); } } - - static { - // $VF: Couldn't be decompiled - // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) - // java.lang.RuntimeException: parsing failure! - // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) - // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) - // - // Bytecode: - // 000: ldc "ᅳฟz}u}ฟ\u0e66\uffd9po" - // 002: invokevirtual java/lang/String.toCharArray ()[C - // 005: astore 0 - // 006: bipush 0 - // 007: istore 1 - // 008: aload 0 - // 009: dup - // 00a: bipush 8 - // 00c: swap - // 00d: bipush 9 - // 00f: caload - // 010: aload 0 - // 011: dup - // 012: bipush 9 - // 014: swap - // 015: bipush 8 - // 017: caload - // 018: castore - // 019: castore - // 01a: aload 0 - // 01b: dup - // 01c: bipush 5 - // 01d: swap - // 01e: bipush 8 - // 020: caload - // 021: aload 0 - // 022: dup - // 023: bipush 8 - // 025: swap - // 026: bipush 5 - // 027: caload - // 028: castore - // 029: castore - // 02a: aload 0 - // 02b: dup - // 02c: bipush 7 - // 02e: swap - // 02f: bipush 0 - // 030: caload - // 031: aload 0 - // 032: dup - // 033: bipush 0 - // 034: swap - // 035: bipush 7 - // 037: caload - // 038: castore - // 039: castore - // 03a: aload 0 - // 03b: dup - // 03c: bipush 0 - // 03d: swap - // 03e: bipush 11 - // 040: caload - // 041: aload 0 - // 042: dup - // 043: bipush 11 - // 045: swap - // 046: bipush 0 - // 047: caload - // 048: castore - // 049: castore - // 04a: bipush 0 - // 04b: istore 3 - // 04c: goto 168 - // 04f: astore 3 - // 050: aload 3 - // 051: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; - // 054: bipush 0 - // 055: aaload - // 056: astore 4 - // 058: aload 4 - // 05a: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; - // 05d: invokevirtual java/lang/String.hashCode ()I - // 060: ldc 65535 - // 062: iand - // 063: istore 5 - // 065: aload 4 - // 067: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; - // 06a: invokevirtual java/lang/String.toCharArray ()[C - // 06d: astore 6 - // 06f: aload 0 - // 070: iload 1 - // 071: iinc 1 1 - // 074: caload - // 075: sipush 205 - // 078: ixor - // 079: iload 5 - // 07b: ixor - // 07c: anewarray 107 - // 07f: astore 7 - // 081: bipush 0 - // 082: istore 8 - // 084: aload 0 - // 085: iload 1 - // 086: iinc 1 1 - // 089: caload - // 08a: sipush 178 - // 08d: ixor - // 08e: iload 5 - // 090: ixor - // 091: istore 2 - // 092: iload 2 - // 093: newarray 5 - // 095: astore 9 - // 097: bipush 0 - // 098: istore 10 - // 09a: iload 2 - // 09b: ifle 149 - // 09e: aload 0 - // 09f: iload 1 - // 0a0: caload - // 0a1: istore 11 - // 0a3: aload 6 - // 0a5: iload 1 - // 0a6: aload 6 - // 0a8: arraylength - // 0a9: irem - // 0aa: caload - // 0ab: sipush 246 - // 0ae: ixor - // 0af: lookupswitch 132 15 130 188 131 214 132 220 133 226 134 239 147 245 148 251 149 258 151 265 152 279 154 292 157 299 159 306 162 201 216 272 - // 130: nop - // 131: nop - // 132: athrow - // 133: aload 9 - // 135: iload 10 - // 137: iload 11 - // 139: castore - // 13a: iinc 10 1 - // 13d: iinc 1 1 - // 140: iinc 2 -1 - // 143: bipush 0 - // 144: istore 12 - // 146: goto 1eb - // 149: aload 7 - // 14b: iload 8 - // 14d: iinc 8 1 - // 150: new java/lang/String - // 153: dup - // 154: aload 9 - // 156: invokespecial java/lang/String. ([C)V - // 159: invokevirtual java/lang/String.intern ()Ljava/lang/String; - // 15c: aastore - // 15d: iload 1 - // 15e: aload 0 - // 15f: arraylength - // 160: if_icmplt 084 - // 163: aload 7 - // 165: putstatic pack/tests/basics/runable/Task.catch [Ljava/lang/String; - // 168: goto 230 - // 16b: iload 11 - // 16d: bipush 60 - // 16f: ixor - // 170: istore 11 - // 172: bipush 1 - // 173: istore 12 - // 175: goto 1eb - // 178: iload 11 - // 17a: bipush 93 - // 17c: ixor - // 17d: istore 11 - // 17f: bipush 1 - // 180: istore 12 - // 182: goto 1eb - // 185: bipush 2 - // 186: istore 12 - // 188: goto 1eb - // 18b: bipush 3 - // 18c: istore 12 - // 18e: goto 1eb - // 191: iload 11 - // 193: bipush -118 - // 195: ixor - // 196: istore 11 - // 198: bipush 1 - // 199: istore 12 - // 19b: goto 1eb - // 19e: bipush 4 - // 19f: istore 12 - // 1a1: goto 1eb - // 1a4: bipush 5 - // 1a5: istore 12 - // 1a7: goto 1eb - // 1aa: bipush 6 - // 1ac: istore 12 - // 1ae: goto 1eb - // 1b1: bipush 7 - // 1b3: istore 12 - // 1b5: goto 1eb - // 1b8: bipush 8 - // 1ba: istore 12 - // 1bc: goto 1eb - // 1bf: bipush 9 - // 1c1: istore 12 - // 1c3: goto 1eb - // 1c6: iload 11 - // 1c8: bipush 67 - // 1ca: ixor - // 1cb: istore 11 - // 1cd: bipush 1 - // 1ce: istore 12 - // 1d0: goto 1eb - // 1d3: bipush 10 - // 1d5: istore 12 - // 1d7: goto 1eb - // 1da: bipush 11 - // 1dc: istore 12 - // 1de: goto 1eb - // 1e1: bipush 12 - // 1e3: istore 12 - // 1e5: goto 1eb - // 1e8: goto 04f - // 1eb: iload 12 - // 1ed: tableswitch -339 0 12 -339 -186 -117 -104 -98 -130 -92 -73 -60 -53 -39 -46 -26 - // 230: return - } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/basics/sub/Solver.dec b/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/basics/sub/Solver.dec index d89fd152..220ba627 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/basics/sub/Solver.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/basics/sub/Solver.dec @@ -8,232 +8,4 @@ public class Solver { System.out.println("FAIL"); } } - - static { - // $VF: Couldn't be decompiled - // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) - // java.lang.RuntimeException: parsing failure! - // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) - // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) - // - // Bytecode: - // 000: ldc "%*<-i?ํະ-ํv" - // 002: invokevirtual java/lang/String.toCharArray ()[C - // 005: astore 0 - // 006: bipush 0 - // 007: istore 1 - // 008: aload 0 - // 009: dup - // 00a: bipush 0 - // 00b: swap - // 00c: bipush 9 - // 00e: caload - // 00f: aload 0 - // 010: dup - // 011: bipush 9 - // 013: swap - // 014: bipush 0 - // 015: caload - // 016: castore - // 017: castore - // 018: aload 0 - // 019: dup - // 01a: bipush 7 - // 01c: swap - // 01d: bipush 1 - // 01e: caload - // 01f: aload 0 - // 020: dup - // 021: bipush 1 - // 022: swap - // 023: bipush 7 - // 025: caload - // 026: castore - // 027: castore - // 028: aload 0 - // 029: dup - // 02a: bipush 1 - // 02b: swap - // 02c: bipush 0 - // 02d: caload - // 02e: aload 0 - // 02f: dup - // 030: bipush 0 - // 031: swap - // 032: bipush 1 - // 033: caload - // 034: castore - // 035: castore - // 036: aload 0 - // 037: dup - // 038: bipush 7 - // 03a: swap - // 03b: bipush 21 - // 03d: caload - // 03e: aload 0 - // 03f: dup - // 040: bipush 21 - // 042: swap - // 043: bipush 7 - // 045: caload - // 046: castore - // 047: castore - // 048: bipush 0 - // 049: istore 3 - // 04a: goto 170 - // 04d: astore 3 - // 04e: aload 3 - // 04f: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; - // 052: bipush 0 - // 053: aaload - // 054: astore 4 - // 056: aload 4 - // 058: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; - // 05b: invokevirtual java/lang/String.hashCode ()I - // 05e: ldc 65535 - // 060: iand - // 061: istore 5 - // 063: aload 4 - // 065: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; - // 068: invokevirtual java/lang/String.toCharArray ()[C - // 06b: astore 6 - // 06d: aload 0 - // 06e: iload 1 - // 06f: iinc 1 1 - // 072: caload - // 073: bipush 27 - // 075: ixor - // 076: iload 5 - // 078: ixor - // 079: anewarray 38 - // 07c: astore 7 - // 07e: bipush 0 - // 07f: istore 8 - // 081: aload 0 - // 082: iload 1 - // 083: iinc 1 1 - // 086: caload - // 087: sipush 224 - // 08a: ixor - // 08b: iload 5 - // 08d: ixor - // 08e: istore 2 - // 08f: iload 2 - // 090: newarray 5 - // 092: astore 9 - // 094: bipush 0 - // 095: istore 10 - // 097: iload 2 - // 098: ifle 151 - // 09b: aload 0 - // 09c: iload 1 - // 09d: caload - // 09e: istore 11 - // 0a0: aload 6 - // 0a2: iload 1 - // 0a3: aload 6 - // 0a5: arraylength - // 0a6: irem - // 0a7: caload - // 0a8: sipush 173 - // 0ab: ixor - // 0ac: lookupswitch 143 16 131 225 193 199 194 212 196 238 198 251 200 257 204 263 206 269 207 275 216 282 217 289 219 296 221 303 222 310 223 324 254 317 - // 138: nop - // 139: nop - // 13a: athrow - // 13b: aload 9 - // 13d: iload 10 - // 13f: iload 11 - // 141: castore - // 142: iinc 10 1 - // 145: iinc 1 1 - // 148: iinc 2 -1 - // 14b: bipush 0 - // 14c: istore 12 - // 14e: goto 1fa - // 151: aload 7 - // 153: iload 8 - // 155: iinc 8 1 - // 158: new java/lang/String - // 15b: dup - // 15c: aload 9 - // 15e: invokespecial java/lang/String. ([C)V - // 161: invokevirtual java/lang/String.intern ()Ljava/lang/String; - // 164: aastore - // 165: iload 1 - // 166: aload 0 - // 167: arraylength - // 168: if_icmplt 081 - // 16b: aload 7 - // 16d: putstatic pack/tests/basics/sub/Solver.catch [Ljava/lang/String; - // 170: goto 244 - // 173: iload 11 - // 175: bipush -54 - // 177: ixor - // 178: istore 11 - // 17a: bipush 1 - // 17b: istore 12 - // 17d: goto 1fa - // 180: iload 11 - // 182: bipush 126 - // 184: ixor - // 185: istore 11 - // 187: bipush 1 - // 188: istore 12 - // 18a: goto 1fa - // 18d: iload 11 - // 18f: bipush 58 - // 191: ixor - // 192: istore 11 - // 194: bipush 1 - // 195: istore 12 - // 197: goto 1fa - // 19a: iload 11 - // 19c: bipush 108 - // 19e: ixor - // 19f: istore 11 - // 1a1: bipush 1 - // 1a2: istore 12 - // 1a4: goto 1fa - // 1a7: bipush 2 - // 1a8: istore 12 - // 1aa: goto 1fa - // 1ad: bipush 3 - // 1ae: istore 12 - // 1b0: goto 1fa - // 1b3: bipush 4 - // 1b4: istore 12 - // 1b6: goto 1fa - // 1b9: bipush 5 - // 1ba: istore 12 - // 1bc: goto 1fa - // 1bf: bipush 6 - // 1c1: istore 12 - // 1c3: goto 1fa - // 1c6: bipush 7 - // 1c8: istore 12 - // 1ca: goto 1fa - // 1cd: bipush 8 - // 1cf: istore 12 - // 1d1: goto 1fa - // 1d4: bipush 9 - // 1d6: istore 12 - // 1d8: goto 1fa - // 1db: bipush 10 - // 1dd: istore 12 - // 1df: goto 1fa - // 1e2: bipush 11 - // 1e4: istore 12 - // 1e6: goto 1fa - // 1e9: bipush 12 - // 1eb: istore 12 - // 1ed: goto 1fa - // 1f0: bipush 13 - // 1f2: istore 12 - // 1f4: goto 1fa - // 1f7: goto 04d - // 1fa: iload 12 - // 1fc: tableswitch -137 0 13 -357 -193 -98 -137 -79 -85 -73 -124 -67 -111 -54 -47 -33 -61 - // 244: return - } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/bench/Calc.dec b/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/bench/Calc.dec index 2adb0338..c7f0eed1 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/bench/Calc.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/bench/Calc.dec @@ -1,7 +1,7 @@ package pack.tests.bench; public class Calc { - public static int count; + public static int count = 0; public static void runAll() { long start = System.currentTimeMillis(); @@ -45,225 +45,4 @@ public class Calc { count++; } - - static { - // $VF: Couldn't be decompiled - // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) - // java.lang.RuntimeException: parsing failure! - // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) - // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) - // - // Bytecode: - // 000: ldc "1\u0ea4\u0ea6fx\u0ea6jᄏ\u0e85リN9+フY゙\u0e64K.ᄆy*\u0019x+dᅠhᄊᄆᄆn\u000f+ᆰe ̄h\n\u0007ᅠᅥຢ(jgh\ufff9Y" - // 002: invokevirtual java/lang/String.toCharArray ()[C - // 005: astore 0 - // 006: bipush 0 - // 007: istore 1 - // 008: aload 0 - // 009: dup - // 00a: bipush 41 - // 00c: swap - // 00d: bipush 21 - // 00f: caload - // 010: aload 0 - // 011: dup - // 012: bipush 21 - // 014: swap - // 015: bipush 41 - // 017: caload - // 018: castore - // 019: castore - // 01a: aload 0 - // 01b: dup - // 01c: bipush 48 - // 01e: swap - // 01f: bipush 12 - // 021: caload - // 022: aload 0 - // 023: dup - // 024: bipush 12 - // 026: swap - // 027: bipush 48 - // 029: caload - // 02a: castore - // 02b: castore - // 02c: aload 0 - // 02d: dup - // 02e: bipush 16 - // 030: swap - // 031: bipush 0 - // 032: caload - // 033: aload 0 - // 034: dup - // 035: bipush 0 - // 036: swap - // 037: bipush 16 - // 039: caload - // 03a: castore - // 03b: castore - // 03c: aload 0 - // 03d: dup - // 03e: bipush 25 - // 040: swap - // 041: bipush 56 - // 043: caload - // 044: aload 0 - // 045: dup - // 046: bipush 56 - // 048: swap - // 049: bipush 25 - // 04b: caload - // 04c: castore - // 04d: castore - // 04e: bipush 0 - // 04f: istore 3 - // 050: goto 15c - // 053: astore 3 - // 054: aload 3 - // 055: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; - // 058: bipush 0 - // 059: aaload - // 05a: astore 4 - // 05c: aload 4 - // 05e: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; - // 061: invokevirtual java/lang/String.hashCode ()I - // 064: ldc 65535 - // 066: iand - // 067: istore 5 - // 069: aload 4 - // 06b: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; - // 06e: invokevirtual java/lang/String.toCharArray ()[C - // 071: astore 6 - // 073: aload 0 - // 074: iload 1 - // 075: iinc 1 1 - // 078: caload - // 079: sipush 200 - // 07c: ixor - // 07d: iload 5 - // 07f: ixor - // 080: anewarray 78 - // 083: astore 7 - // 085: bipush 0 - // 086: istore 8 - // 088: aload 0 - // 089: iload 1 - // 08a: iinc 1 1 - // 08d: caload - // 08e: bipush 13 - // 090: ixor - // 091: iload 5 - // 093: ixor - // 094: istore 2 - // 095: iload 2 - // 096: newarray 5 - // 098: astore 9 - // 09a: bipush 0 - // 09b: istore 10 - // 09d: iload 2 - // 09e: ifle 13d - // 0a1: aload 0 - // 0a2: iload 1 - // 0a3: caload - // 0a4: istore 11 - // 0a6: aload 6 - // 0a8: iload 1 - // 0a9: aload 6 - // 0ab: arraylength - // 0ac: irem - // 0ad: caload - // 0ae: bipush 67 - // 0b0: ixor - // 0b1: lookupswitch 118 13 0 187 32 174 33 200 34 206 38 212 40 218 43 224 45 244 47 251 48 258 51 265 55 278 109 237 - // 124: nop - // 125: nop - // 126: athrow - // 127: aload 9 - // 129: iload 10 - // 12b: iload 11 - // 12d: castore - // 12e: iinc 10 1 - // 131: iinc 1 1 - // 134: iinc 2 -1 - // 137: bipush 0 - // 138: istore 12 - // 13a: goto 1d1 - // 13d: aload 7 - // 13f: iload 8 - // 141: iinc 8 1 - // 144: new java/lang/String - // 147: dup - // 148: aload 9 - // 14a: invokespecial java/lang/String. ([C)V - // 14d: invokevirtual java/lang/String.intern ()Ljava/lang/String; - // 150: aastore - // 151: iload 1 - // 152: aload 0 - // 153: arraylength - // 154: if_icmplt 088 - // 157: aload 7 - // 159: putstatic pack/tests/bench/Calc.catch [Ljava/lang/String; - // 15c: goto 20c - // 15f: iload 11 - // 161: bipush 11 - // 163: ixor - // 164: istore 11 - // 166: bipush 1 - // 167: istore 12 - // 169: goto 1d1 - // 16c: iload 11 - // 16e: bipush 107 - // 170: ixor - // 171: istore 11 - // 173: bipush 1 - // 174: istore 12 - // 176: goto 1d1 - // 179: bipush 2 - // 17a: istore 12 - // 17c: goto 1d1 - // 17f: bipush 3 - // 180: istore 12 - // 182: goto 1d1 - // 185: bipush 4 - // 186: istore 12 - // 188: goto 1d1 - // 18b: bipush 5 - // 18c: istore 12 - // 18e: goto 1d1 - // 191: iload 11 - // 193: bipush -61 - // 195: ixor - // 196: istore 11 - // 198: bipush 1 - // 199: istore 12 - // 19b: goto 1d1 - // 19e: bipush 6 - // 1a0: istore 12 - // 1a2: goto 1d1 - // 1a5: bipush 7 - // 1a7: istore 12 - // 1a9: goto 1d1 - // 1ac: bipush 8 - // 1ae: istore 12 - // 1b0: goto 1d1 - // 1b3: bipush 9 - // 1b5: istore 12 - // 1b7: goto 1d1 - // 1ba: iload 11 - // 1bc: bipush -87 - // 1be: ixor - // 1bf: istore 11 - // 1c1: bipush 1 - // 1c2: istore 12 - // 1c4: goto 1d1 - // 1c7: bipush 10 - // 1c9: istore 12 - // 1cb: goto 1d1 - // 1ce: goto 053 - // 1d1: iload 12 - // 1d3: tableswitch -90 0 10 -310 -172 -103 -90 -116 -78 -72 -66 -46 -39 -32 - // 20c: bipush 0 - // 20d: putstatic pack/tests/bench/Calc.count I - // 210: return - } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/reflects/annot/annoe.dec b/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/reflects/annot/annoe.dec index 3dc0f856..e1e5715f 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/reflects/annot/annoe.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/reflects/annot/annoe.dec @@ -6,7 +6,7 @@ public class annoe { @anno( val = "PASS" ) - private static final String fail; + private static final String fail = "WHAT"; @anno public void dox() throws Exception { @@ -29,225 +29,4 @@ public class annoe { public void dov() { System.out.println("FAIL"); } - - static { - // $VF: Couldn't be decompiled - // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) - // java.lang.RuntimeException: parsing failure! - // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) - // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) - // - // Bytecode: - // 000: ldc "ᅯช#<¥\uffc1ช\ufffbຖ\ufff4│" - // 002: invokevirtual java/lang/String.toCharArray ()[C - // 005: astore 0 - // 006: bipush 0 - // 007: istore 1 - // 008: aload 0 - // 009: dup - // 00a: bipush 4 - // 00b: swap - // 00c: bipush 0 - // 00d: caload - // 00e: aload 0 - // 00f: dup - // 010: bipush 0 - // 011: swap - // 012: bipush 4 - // 013: caload - // 014: castore - // 015: castore - // 016: aload 0 - // 017: dup - // 018: bipush 4 - // 019: swap - // 01a: bipush 8 - // 01c: caload - // 01d: aload 0 - // 01e: dup - // 01f: bipush 8 - // 021: swap - // 022: bipush 4 - // 023: caload - // 024: castore - // 025: castore - // 026: aload 0 - // 027: dup - // 028: bipush 4 - // 029: swap - // 02a: bipush 0 - // 02b: caload - // 02c: aload 0 - // 02d: dup - // 02e: bipush 0 - // 02f: swap - // 030: bipush 4 - // 031: caload - // 032: castore - // 033: castore - // 034: aload 0 - // 035: dup - // 036: bipush 4 - // 037: swap - // 038: bipush 20 - // 03a: caload - // 03b: aload 0 - // 03c: dup - // 03d: bipush 20 - // 03f: swap - // 040: bipush 4 - // 041: caload - // 042: castore - // 043: castore - // 044: bipush 0 - // 045: istore 3 - // 046: goto 150 - // 049: astore 3 - // 04a: aload 3 - // 04b: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; - // 04e: bipush 0 - // 04f: aaload - // 050: astore 4 - // 052: aload 4 - // 054: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; - // 057: invokevirtual java/lang/String.hashCode ()I - // 05a: ldc 65535 - // 05c: iand - // 05d: istore 5 - // 05f: aload 4 - // 061: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; - // 064: invokevirtual java/lang/String.toCharArray ()[C - // 067: astore 6 - // 069: aload 0 - // 06a: iload 1 - // 06b: iinc 1 1 - // 06e: caload - // 06f: bipush 61 - // 071: ixor - // 072: iload 5 - // 074: ixor - // 075: anewarray 60 - // 078: astore 7 - // 07a: bipush 0 - // 07b: istore 8 - // 07d: aload 0 - // 07e: iload 1 - // 07f: iinc 1 1 - // 082: caload - // 083: sipush 167 - // 086: ixor - // 087: iload 5 - // 089: ixor - // 08a: istore 2 - // 08b: iload 2 - // 08c: newarray 5 - // 08e: astore 9 - // 090: bipush 0 - // 091: istore 10 - // 093: iload 2 - // 094: ifle 131 - // 097: aload 0 - // 098: iload 1 - // 099: caload - // 09a: istore 11 - // 09c: aload 6 - // 09e: iload 1 - // 09f: aload 6 - // 0a1: arraylength - // 0a2: irem - // 0a3: caload - // 0a4: bipush 0 - // 0a5: ixor - // 0a6: lookupswitch 117 13 46 230 97 173 99 186 101 199 102 205 107 211 108 217 110 236 111 243 112 250 114 257 115 264 116 271 - // 118: nop - // 119: nop - // 11a: athrow - // 11b: aload 9 - // 11d: iload 10 - // 11f: iload 11 - // 121: castore - // 122: iinc 10 1 - // 125: iinc 1 1 - // 128: iinc 2 -1 - // 12b: bipush 0 - // 12c: istore 12 - // 12e: goto 1c5 - // 131: aload 7 - // 133: iload 8 - // 135: iinc 8 1 - // 138: new java/lang/String - // 13b: dup - // 13c: aload 9 - // 13e: invokespecial java/lang/String. ([C)V - // 141: invokevirtual java/lang/String.intern ()Ljava/lang/String; - // 144: aastore - // 145: iload 1 - // 146: aload 0 - // 147: arraylength - // 148: if_icmplt 07d - // 14b: aload 7 - // 14d: putstatic pack/tests/reflects/annot/annoe.catch [Ljava/lang/String; - // 150: goto 200 - // 153: iload 11 - // 155: bipush -92 - // 157: ixor - // 158: istore 11 - // 15a: bipush 1 - // 15b: istore 12 - // 15d: goto 1c5 - // 160: iload 11 - // 162: bipush 116 - // 164: ixor - // 165: istore 11 - // 167: bipush 1 - // 168: istore 12 - // 16a: goto 1c5 - // 16d: bipush 2 - // 16e: istore 12 - // 170: goto 1c5 - // 173: bipush 3 - // 174: istore 12 - // 176: goto 1c5 - // 179: bipush 4 - // 17a: istore 12 - // 17c: goto 1c5 - // 17f: iload 11 - // 181: bipush -67 - // 183: ixor - // 184: istore 11 - // 186: bipush 1 - // 187: istore 12 - // 189: goto 1c5 - // 18c: bipush 5 - // 18d: istore 12 - // 18f: goto 1c5 - // 192: bipush 6 - // 194: istore 12 - // 196: goto 1c5 - // 199: bipush 7 - // 19b: istore 12 - // 19d: goto 1c5 - // 1a0: bipush 8 - // 1a2: istore 12 - // 1a4: goto 1c5 - // 1a7: bipush 9 - // 1a9: istore 12 - // 1ab: goto 1c5 - // 1ae: bipush 10 - // 1b0: istore 12 - // 1b2: goto 1c5 - // 1b5: iload 11 - // 1b7: bipush -107 - // 1b9: ixor - // 1ba: istore 11 - // 1bc: bipush 1 - // 1bd: istore 12 - // 1bf: goto 1c5 - // 1c2: goto 049 - // 1c5: iload 12 - // 1c7: tableswitch -103 0 10 -308 -172 -103 -90 -84 -116 -72 -53 -59 -39 -46 - // 200: ldc "WHAT" - // 202: putstatic pack/tests/reflects/annot/annoe.fail Ljava/lang/String; - // 205: return - } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/reflects/annot/annot.dec b/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/reflects/annot/annot.dec index e4eb8d19..1c83079f 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/reflects/annot/annot.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/reflects/annot/annot.dec @@ -14,209 +14,4 @@ public class annot { } } } - - static { - // $VF: Couldn't be decompiled - // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) - // java.lang.RuntimeException: parsing failure! - // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) - // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) - // - // Bytecode: - // 000: ldc "←๙\u0011๖\ufff4" - // 002: invokevirtual java/lang/String.toCharArray ()[C - // 005: astore 0 - // 006: bipush 0 - // 007: istore 1 - // 008: aload 0 - // 009: dup - // 00a: bipush 3 - // 00b: swap - // 00c: bipush 0 - // 00d: caload - // 00e: aload 0 - // 00f: dup - // 010: bipush 0 - // 011: swap - // 012: bipush 3 - // 013: caload - // 014: castore - // 015: castore - // 016: aload 0 - // 017: dup - // 018: bipush 1 - // 019: swap - // 01a: bipush 8 - // 01c: caload - // 01d: aload 0 - // 01e: dup - // 01f: bipush 8 - // 021: swap - // 022: bipush 1 - // 023: caload - // 024: castore - // 025: castore - // 026: aload 0 - // 027: dup - // 028: bipush 4 - // 029: swap - // 02a: bipush 0 - // 02b: caload - // 02c: aload 0 - // 02d: dup - // 02e: bipush 0 - // 02f: swap - // 030: bipush 4 - // 031: caload - // 032: castore - // 033: castore - // 034: bipush 0 - // 035: istore 3 - // 036: goto 144 - // 039: astore 3 - // 03a: aload 3 - // 03b: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; - // 03e: bipush 0 - // 03f: aaload - // 040: astore 4 - // 042: aload 4 - // 044: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; - // 047: invokevirtual java/lang/String.hashCode ()I - // 04a: ldc 65535 - // 04c: iand - // 04d: istore 5 - // 04f: aload 4 - // 051: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; - // 054: invokevirtual java/lang/String.toCharArray ()[C - // 057: astore 6 - // 059: aload 0 - // 05a: iload 1 - // 05b: iinc 1 1 - // 05e: caload - // 05f: sipush 254 - // 062: ixor - // 063: iload 5 - // 065: ixor - // 066: anewarray 43 - // 069: astore 7 - // 06b: bipush 0 - // 06c: istore 8 - // 06e: aload 0 - // 06f: iload 1 - // 070: iinc 1 1 - // 073: caload - // 074: sipush 243 - // 077: ixor - // 078: iload 5 - // 07a: ixor - // 07b: istore 2 - // 07c: iload 2 - // 07d: newarray 5 - // 07f: astore 9 - // 081: bipush 0 - // 082: istore 10 - // 084: iload 2 - // 085: ifle 125 - // 088: aload 0 - // 089: iload 1 - // 08a: caload - // 08b: istore 11 - // 08d: aload 6 - // 08f: iload 1 - // 090: aload 6 - // 092: arraylength - // 093: irem - // 094: caload - // 095: bipush 76 - // 097: ixor - // 098: lookupswitch 119 13 32 175 34 201 35 207 39 220 41 226 42 232 45 238 47 245 56 258 60 265 62 272 63 279 98 188 - // 10c: nop - // 10d: nop - // 10e: athrow - // 10f: aload 9 - // 111: iload 10 - // 113: iload 11 - // 115: castore - // 116: iinc 10 1 - // 119: iinc 1 1 - // 11c: iinc 2 -1 - // 11f: bipush 0 - // 120: istore 12 - // 122: goto 1b9 - // 125: aload 7 - // 127: iload 8 - // 129: iinc 8 1 - // 12c: new java/lang/String - // 12f: dup - // 130: aload 9 - // 132: invokespecial java/lang/String. ([C)V - // 135: invokevirtual java/lang/String.intern ()Ljava/lang/String; - // 138: aastore - // 139: iload 1 - // 13a: aload 0 - // 13b: arraylength - // 13c: if_icmplt 06e - // 13f: aload 7 - // 141: putstatic pack/tests/reflects/annot/annot.catch [Ljava/lang/String; - // 144: goto 1f4 - // 147: iload 11 - // 149: bipush 29 - // 14b: ixor - // 14c: istore 11 - // 14e: bipush 1 - // 14f: istore 12 - // 151: goto 1b9 - // 154: iload 11 - // 156: bipush -121 - // 158: ixor - // 159: istore 11 - // 15b: bipush 1 - // 15c: istore 12 - // 15e: goto 1b9 - // 161: bipush 2 - // 162: istore 12 - // 164: goto 1b9 - // 167: iload 11 - // 169: bipush -116 - // 16b: ixor - // 16c: istore 11 - // 16e: bipush 1 - // 16f: istore 12 - // 171: goto 1b9 - // 174: bipush 3 - // 175: istore 12 - // 177: goto 1b9 - // 17a: bipush 4 - // 17b: istore 12 - // 17d: goto 1b9 - // 180: bipush 5 - // 181: istore 12 - // 183: goto 1b9 - // 186: bipush 6 - // 188: istore 12 - // 18a: goto 1b9 - // 18d: iload 11 - // 18f: bipush 104 - // 191: ixor - // 192: istore 11 - // 194: bipush 1 - // 195: istore 12 - // 197: goto 1b9 - // 19a: bipush 7 - // 19c: istore 12 - // 19e: goto 1b9 - // 1a1: bipush 8 - // 1a3: istore 12 - // 1a5: goto 1b9 - // 1a8: bipush 9 - // 1aa: istore 12 - // 1ac: goto 1b9 - // 1af: bipush 10 - // 1b1: istore 12 - // 1b3: goto 1b9 - // 1b6: goto 039 - // 1b9: iload 12 - // 1bb: tableswitch -84 0 10 -311 -172 -116 -84 -90 -71 -65 -103 -46 -33 -26 - // 1f4: return - } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/reflects/counter/Count.dec b/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/reflects/counter/Count.dec index fbf38cd2..9c35832f 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/reflects/counter/Count.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/reflects/counter/Count.dec @@ -11,229 +11,4 @@ public class Count { System.out.println("FAIL"); } } - - static { - // $VF: Couldn't be decompiled - // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) - // java.lang.RuntimeException: parsing failure! - // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) - // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) - // - // Bytecode: - // 000: ldc "タ\u0e7dໜ\r\ufff7ヘ■○タ■\u0e7d" - // 002: invokevirtual java/lang/String.toCharArray ()[C - // 005: astore 0 - // 006: bipush 0 - // 007: istore 1 - // 008: aload 0 - // 009: dup - // 00a: bipush 6 - // 00c: swap - // 00d: bipush 10 - // 00f: caload - // 010: aload 0 - // 011: dup - // 012: bipush 10 - // 014: swap - // 015: bipush 6 - // 017: caload - // 018: castore - // 019: castore - // 01a: aload 0 - // 01b: dup - // 01c: bipush 3 - // 01d: swap - // 01e: bipush 2 - // 01f: caload - // 020: aload 0 - // 021: dup - // 022: bipush 2 - // 023: swap - // 024: bipush 3 - // 025: caload - // 026: castore - // 027: castore - // 028: aload 0 - // 029: dup - // 02a: bipush 3 - // 02b: swap - // 02c: bipush 0 - // 02d: caload - // 02e: aload 0 - // 02f: dup - // 030: bipush 0 - // 031: swap - // 032: bipush 3 - // 033: caload - // 034: castore - // 035: castore - // 036: aload 0 - // 037: dup - // 038: bipush 9 - // 03a: swap - // 03b: bipush 14 - // 03d: caload - // 03e: aload 0 - // 03f: dup - // 040: bipush 14 - // 042: swap - // 043: bipush 9 - // 045: caload - // 046: castore - // 047: castore - // 048: bipush 0 - // 049: istore 3 - // 04a: goto 164 - // 04d: astore 3 - // 04e: aload 3 - // 04f: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; - // 052: bipush 0 - // 053: aaload - // 054: astore 4 - // 056: aload 4 - // 058: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; - // 05b: invokevirtual java/lang/String.hashCode ()I - // 05e: ldc 65535 - // 060: iand - // 061: istore 5 - // 063: aload 4 - // 065: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; - // 068: invokevirtual java/lang/String.toCharArray ()[C - // 06b: astore 6 - // 06d: aload 0 - // 06e: iload 1 - // 06f: iinc 1 1 - // 072: caload - // 073: bipush 119 - // 075: ixor - // 076: iload 5 - // 078: ixor - // 079: anewarray 53 - // 07c: astore 7 - // 07e: bipush 0 - // 07f: istore 8 - // 081: aload 0 - // 082: iload 1 - // 083: iinc 1 1 - // 086: caload - // 087: sipush 208 - // 08a: ixor - // 08b: iload 5 - // 08d: ixor - // 08e: istore 2 - // 08f: iload 2 - // 090: newarray 5 - // 092: astore 9 - // 094: bipush 0 - // 095: istore 10 - // 097: iload 2 - // 098: ifle 145 - // 09b: aload 0 - // 09c: iload 1 - // 09d: caload - // 09e: istore 11 - // 0a0: aload 6 - // 0a2: iload 1 - // 0a3: aload 6 - // 0a5: arraylength - // 0a6: irem - // 0a7: caload - // 0a8: bipush 28 - // 0aa: ixor - // 0ab: lookupswitch 132 15 50 245 95 306 104 188 105 201 108 207 110 220 111 226 112 239 114 251 115 258 119 265 121 272 122 279 125 292 127 299 - // 12c: nop - // 12d: nop - // 12e: athrow - // 12f: aload 9 - // 131: iload 10 - // 133: iload 11 - // 135: castore - // 136: iinc 10 1 - // 139: iinc 1 1 - // 13c: iinc 2 -1 - // 13f: bipush 0 - // 140: istore 12 - // 142: goto 1e7 - // 145: aload 7 - // 147: iload 8 - // 149: iinc 8 1 - // 14c: new java/lang/String - // 14f: dup - // 150: aload 9 - // 152: invokespecial java/lang/String. ([C)V - // 155: invokevirtual java/lang/String.intern ()Ljava/lang/String; - // 158: aastore - // 159: iload 1 - // 15a: aload 0 - // 15b: arraylength - // 15c: if_icmplt 081 - // 15f: aload 7 - // 161: putstatic pack/tests/reflects/counter/Count.catch [Ljava/lang/String; - // 164: goto 22c - // 167: iload 11 - // 169: bipush -63 - // 16b: ixor - // 16c: istore 11 - // 16e: bipush 1 - // 16f: istore 12 - // 171: goto 1e7 - // 174: bipush 2 - // 175: istore 12 - // 177: goto 1e7 - // 17a: iload 11 - // 17c: bipush 75 - // 17e: ixor - // 17f: istore 11 - // 181: bipush 1 - // 182: istore 12 - // 184: goto 1e7 - // 187: bipush 3 - // 188: istore 12 - // 18a: goto 1e7 - // 18d: iload 11 - // 18f: bipush -66 - // 191: ixor - // 192: istore 11 - // 194: bipush 1 - // 195: istore 12 - // 197: goto 1e7 - // 19a: bipush 4 - // 19b: istore 12 - // 19d: goto 1e7 - // 1a0: bipush 5 - // 1a1: istore 12 - // 1a3: goto 1e7 - // 1a6: bipush 6 - // 1a8: istore 12 - // 1aa: goto 1e7 - // 1ad: bipush 7 - // 1af: istore 12 - // 1b1: goto 1e7 - // 1b4: bipush 8 - // 1b6: istore 12 - // 1b8: goto 1e7 - // 1bb: bipush 9 - // 1bd: istore 12 - // 1bf: goto 1e7 - // 1c2: iload 11 - // 1c4: bipush 43 - // 1c6: ixor - // 1c7: istore 11 - // 1c9: bipush 1 - // 1ca: istore 12 - // 1cc: goto 1e7 - // 1cf: bipush 10 - // 1d1: istore 12 - // 1d3: goto 1e7 - // 1d6: bipush 11 - // 1d8: istore 12 - // 1da: goto 1e7 - // 1dd: bipush 12 - // 1df: istore 12 - // 1e1: goto 1e7 - // 1e4: goto 04d - // 1e7: iload 12 - // 1e9: tableswitch -98 0 12 -338 -186 -130 -111 -98 -92 -117 -79 -67 -73 -46 -60 -53 - // 22c: return - } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/reflects/field/FTest.dec b/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/reflects/field/FTest.dec index a9e9dcbe..13f7f1e0 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/reflects/field/FTest.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/reflects/field/FTest.dec @@ -32,229 +32,4 @@ public class FTest { } } } - - static { - // $VF: Couldn't be decompiled - // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) - // java.lang.RuntimeException: parsing failure! - // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) - // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) - // - // Bytecode: - // 000: ldc "\u000fษ\bฬไldN~RDฬ~ห9II" - // 002: invokevirtual java/lang/String.toCharArray ()[C - // 005: astore 0 - // 006: bipush 0 - // 007: istore 1 - // 008: aload 0 - // 009: dup - // 00a: bipush 10 - // 00c: swap - // 00d: bipush 2 - // 00e: caload - // 00f: aload 0 - // 010: dup - // 011: bipush 2 - // 012: swap - // 013: bipush 10 - // 015: caload - // 016: castore - // 017: castore - // 018: aload 0 - // 019: dup - // 01a: bipush 8 - // 01c: swap - // 01d: bipush 11 - // 01f: caload - // 020: aload 0 - // 021: dup - // 022: bipush 11 - // 024: swap - // 025: bipush 8 - // 027: caload - // 028: castore - // 029: castore - // 02a: aload 0 - // 02b: dup - // 02c: bipush 4 - // 02d: swap - // 02e: bipush 0 - // 02f: caload - // 030: aload 0 - // 031: dup - // 032: bipush 0 - // 033: swap - // 034: bipush 4 - // 035: caload - // 036: castore - // 037: castore - // 038: aload 0 - // 039: dup - // 03a: bipush 15 - // 03c: swap - // 03d: bipush 32 - // 03f: caload - // 040: aload 0 - // 041: dup - // 042: bipush 32 - // 044: swap - // 045: bipush 15 - // 047: caload - // 048: castore - // 049: castore - // 04a: bipush 0 - // 04b: istore 3 - // 04c: goto 168 - // 04f: astore 3 - // 050: aload 3 - // 051: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; - // 054: bipush 0 - // 055: aaload - // 056: astore 4 - // 058: aload 4 - // 05a: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; - // 05d: invokevirtual java/lang/String.hashCode ()I - // 060: ldc 65535 - // 062: iand - // 063: istore 5 - // 065: aload 4 - // 067: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; - // 06a: invokevirtual java/lang/String.toCharArray ()[C - // 06d: astore 6 - // 06f: aload 0 - // 070: iload 1 - // 071: iinc 1 1 - // 074: caload - // 075: sipush 233 - // 078: ixor - // 079: iload 5 - // 07b: ixor - // 07c: anewarray 104 - // 07f: astore 7 - // 081: bipush 0 - // 082: istore 8 - // 084: aload 0 - // 085: iload 1 - // 086: iinc 1 1 - // 089: caload - // 08a: sipush 129 - // 08d: ixor - // 08e: iload 5 - // 090: ixor - // 091: istore 2 - // 092: iload 2 - // 093: newarray 5 - // 095: astore 9 - // 097: bipush 0 - // 098: istore 10 - // 09a: iload 2 - // 09b: ifle 149 - // 09e: aload 0 - // 09f: iload 1 - // 0a0: caload - // 0a1: istore 11 - // 0a3: aload 6 - // 0a5: iload 1 - // 0a6: aload 6 - // 0a8: arraylength - // 0a9: irem - // 0aa: caload - // 0ab: bipush 21 - // 0ad: ixor - // 0ae: lookupswitch 133 15 59 292 65 202 83 252 97 189 101 214 102 220 103 226 112 232 113 238 115 245 116 265 118 272 121 279 124 299 126 306 - // 130: nop - // 131: nop - // 132: athrow - // 133: aload 9 - // 135: iload 10 - // 137: iload 11 - // 139: castore - // 13a: iinc 10 1 - // 13d: iinc 1 1 - // 140: iinc 2 -1 - // 143: bipush 0 - // 144: istore 12 - // 146: goto 1ea - // 149: aload 7 - // 14b: iload 8 - // 14d: iinc 8 1 - // 150: new java/lang/String - // 153: dup - // 154: aload 9 - // 156: invokespecial java/lang/String. ([C)V - // 159: invokevirtual java/lang/String.intern ()Ljava/lang/String; - // 15c: aastore - // 15d: iload 1 - // 15e: aload 0 - // 15f: arraylength - // 160: if_icmplt 084 - // 163: aload 7 - // 165: putstatic pack/tests/reflects/field/FTest.catch [Ljava/lang/String; - // 168: goto 230 - // 16b: iload 11 - // 16d: bipush 45 - // 16f: ixor - // 170: istore 11 - // 172: bipush 1 - // 173: istore 12 - // 175: goto 1ea - // 178: iload 11 - // 17a: bipush 2 - // 17b: ixor - // 17c: istore 11 - // 17e: bipush 1 - // 17f: istore 12 - // 181: goto 1ea - // 184: bipush 2 - // 185: istore 12 - // 187: goto 1ea - // 18a: bipush 3 - // 18b: istore 12 - // 18d: goto 1ea - // 190: bipush 4 - // 191: istore 12 - // 193: goto 1ea - // 196: bipush 5 - // 197: istore 12 - // 199: goto 1ea - // 19c: bipush 6 - // 19e: istore 12 - // 1a0: goto 1ea - // 1a3: bipush 7 - // 1a5: istore 12 - // 1a7: goto 1ea - // 1aa: iload 11 - // 1ac: bipush 73 - // 1ae: ixor - // 1af: istore 11 - // 1b1: bipush 1 - // 1b2: istore 12 - // 1b4: goto 1ea - // 1b7: bipush 8 - // 1b9: istore 12 - // 1bb: goto 1ea - // 1be: bipush 9 - // 1c0: istore 12 - // 1c2: goto 1ea - // 1c5: iload 11 - // 1c7: bipush 88 - // 1c9: ixor - // 1ca: istore 11 - // 1cc: bipush 1 - // 1cd: istore 12 - // 1cf: goto 1ea - // 1d2: bipush 10 - // 1d4: istore 12 - // 1d6: goto 1ea - // 1d9: bipush 11 - // 1db: istore 12 - // 1dd: goto 1ea - // 1e0: bipush 12 - // 1e2: istore 12 - // 1e4: goto 1ea - // 1e7: goto 04f - // 1ea: iload 12 - // 1ec: tableswitch -92 0 12 -338 -185 -129 -116 -104 -92 -86 -98 -80 -53 -66 -46 -39 - // 230: return - } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/reflects/loader/LRun.dec b/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/reflects/loader/LRun.dec index 365e1cc3..76523761 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/reflects/loader/LRun.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/reflects/loader/LRun.dec @@ -7,235 +7,4 @@ public class LRun { Object o = c.newInstance(); c.getMethod("run").invoke(o); } - - static { - // $VF: Couldn't be decompiled - // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) - // java.lang.RuntimeException: parsing failure! - // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) - // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) - // - // Bytecode: - // 000: ldc "2\ufff1ᅲ\uffd0ᅠ\u0efdᅰ'%-¢\uffd1\uffc0ᄑ2ᅱᄁ4#ᄄ*\uffc0ᆳ๒ᅱヒヒᄀ'ヤ\uffc0ᅲ¢←ໞᆱ5\uffd1" - // 002: invokevirtual java/lang/String.toCharArray ()[C - // 005: astore 0 - // 006: bipush 0 - // 007: istore 1 - // 008: aload 0 - // 009: dup - // 00a: bipush 1 - // 00b: swap - // 00c: bipush 34 - // 00e: caload - // 00f: aload 0 - // 010: dup - // 011: bipush 34 - // 013: swap - // 014: bipush 1 - // 015: caload - // 016: castore - // 017: castore - // 018: aload 0 - // 019: dup - // 01a: bipush 16 - // 01c: swap - // 01d: bipush 26 - // 01f: caload - // 020: aload 0 - // 021: dup - // 022: bipush 26 - // 024: swap - // 025: bipush 16 - // 027: caload - // 028: castore - // 029: castore - // 02a: aload 0 - // 02b: dup - // 02c: bipush 23 - // 02e: swap - // 02f: bipush 0 - // 030: caload - // 031: aload 0 - // 032: dup - // 033: bipush 0 - // 034: swap - // 035: bipush 23 - // 037: caload - // 038: castore - // 039: castore - // 03a: aload 0 - // 03b: dup - // 03c: bipush 15 - // 03e: swap - // 03f: bipush 52 - // 041: caload - // 042: aload 0 - // 043: dup - // 044: bipush 52 - // 046: swap - // 047: bipush 15 - // 049: caload - // 04a: castore - // 04b: castore - // 04c: bipush 0 - // 04d: istore 3 - // 04e: goto 17c - // 051: astore 3 - // 052: aload 3 - // 053: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; - // 056: bipush 0 - // 057: aaload - // 058: astore 4 - // 05a: aload 4 - // 05c: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; - // 05f: invokevirtual java/lang/String.hashCode ()I - // 062: ldc 65535 - // 064: iand - // 065: istore 5 - // 067: aload 4 - // 069: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; - // 06c: invokevirtual java/lang/String.toCharArray ()[C - // 06f: astore 6 - // 071: aload 0 - // 072: iload 1 - // 073: iinc 1 1 - // 076: caload - // 077: sipush 249 - // 07a: ixor - // 07b: iload 5 - // 07d: ixor - // 07e: anewarray 52 - // 081: astore 7 - // 083: bipush 0 - // 084: istore 8 - // 086: aload 0 - // 087: iload 1 - // 088: iinc 1 1 - // 08b: caload - // 08c: bipush 116 - // 08e: ixor - // 08f: iload 5 - // 091: ixor - // 092: istore 2 - // 093: iload 2 - // 094: newarray 5 - // 096: astore 9 - // 098: bipush 0 - // 099: istore 10 - // 09b: iload 2 - // 09c: ifle 15d - // 09f: aload 0 - // 0a0: iload 1 - // 0a1: caload - // 0a2: istore 11 - // 0a4: aload 6 - // 0a6: iload 1 - // 0a7: aload 6 - // 0a9: arraylength - // 0aa: irem - // 0ab: caload - // 0ac: sipush 208 - // 0af: ixor - // 0b0: lookupswitch 151 17 130 226 156 318 160 207 162 220 163 239 164 245 165 251 177 264 179 277 180 283 181 290 182 297 187 304 188 311 190 332 191 339 254 325 - // 144: nop - // 145: nop - // 146: athrow - // 147: aload 9 - // 149: iload 10 - // 14b: iload 11 - // 14d: castore - // 14e: iinc 10 1 - // 151: iinc 1 1 - // 154: iinc 2 -1 - // 157: bipush 0 - // 158: istore 12 - // 15a: goto 20d - // 15d: aload 7 - // 15f: iload 8 - // 161: iinc 8 1 - // 164: new java/lang/String - // 167: dup - // 168: aload 9 - // 16a: invokespecial java/lang/String. ([C)V - // 16d: invokevirtual java/lang/String.intern ()Ljava/lang/String; - // 170: aastore - // 171: iload 1 - // 172: aload 0 - // 173: arraylength - // 174: if_icmplt 086 - // 177: aload 7 - // 179: putstatic pack/tests/reflects/loader/LRun.catch [Ljava/lang/String; - // 17c: goto 258 - // 17f: iload 11 - // 181: bipush -91 - // 183: ixor - // 184: istore 11 - // 186: bipush 1 - // 187: istore 12 - // 189: goto 20d - // 18c: bipush 2 - // 18d: istore 12 - // 18f: goto 20d - // 192: iload 11 - // 194: bipush 70 - // 196: ixor - // 197: istore 11 - // 199: bipush 1 - // 19a: istore 12 - // 19c: goto 20d - // 19f: bipush 3 - // 1a0: istore 12 - // 1a2: goto 20d - // 1a5: bipush 4 - // 1a6: istore 12 - // 1a8: goto 20d - // 1ab: iload 11 - // 1ad: bipush -16 - // 1af: ixor - // 1b0: istore 11 - // 1b2: bipush 1 - // 1b3: istore 12 - // 1b5: goto 20d - // 1b8: iload 11 - // 1ba: bipush -50 - // 1bc: ixor - // 1bd: istore 11 - // 1bf: bipush 1 - // 1c0: istore 12 - // 1c2: goto 20d - // 1c5: bipush 5 - // 1c6: istore 12 - // 1c8: goto 20d - // 1cb: bipush 6 - // 1cd: istore 12 - // 1cf: goto 20d - // 1d2: bipush 7 - // 1d4: istore 12 - // 1d6: goto 20d - // 1d9: bipush 8 - // 1db: istore 12 - // 1dd: goto 20d - // 1e0: bipush 9 - // 1e2: istore 12 - // 1e4: goto 20d - // 1e7: bipush 10 - // 1e9: istore 12 - // 1eb: goto 20d - // 1ee: bipush 11 - // 1f0: istore 12 - // 1f2: goto 20d - // 1f5: bipush 12 - // 1f7: istore 12 - // 1f9: goto 20d - // 1fc: bipush 13 - // 1fe: istore 12 - // 200: goto 20d - // 203: bipush 14 - // 205: istore 12 - // 207: goto 20d - // 20a: goto 051 - // 20d: iload 12 - // 20f: tableswitch -372 0 14 -372 -200 -144 -125 -112 -131 -106 -74 -87 -61 -68 -54 -33 -47 -19 - // 258: return - } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/reflects/loader/LTest.dec b/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/reflects/loader/LTest.dec index 395de922..50be4011 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/reflects/loader/LTest.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/reflects/loader/LTest.dec @@ -20,215 +20,4 @@ public class LTest { public void run() throws Exception { System.out.println(new String(readAllBytes(LTest.class.getResourceAsStream("TEST")))); } - - static { - // $VF: Couldn't be decompiled - // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) - // java.lang.RuntimeException: parsing failure! - // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) - // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) - // - // Bytecode: - // 000: ldc "ᄄ\u0ee8ᄍห\u0007ᄍ" - // 002: invokevirtual java/lang/String.toCharArray ()[C - // 005: astore 0 - // 006: bipush 0 - // 007: istore 1 - // 008: aload 0 - // 009: dup - // 00a: bipush 3 - // 00b: swap - // 00c: bipush 0 - // 00d: caload - // 00e: aload 0 - // 00f: dup - // 010: bipush 0 - // 011: swap - // 012: bipush 3 - // 013: caload - // 014: castore - // 015: castore - // 016: aload 0 - // 017: dup - // 018: bipush 5 - // 019: swap - // 01a: bipush 7 - // 01c: caload - // 01d: aload 0 - // 01e: dup - // 01f: bipush 7 - // 021: swap - // 022: bipush 5 - // 023: caload - // 024: castore - // 025: castore - // 026: aload 0 - // 027: dup - // 028: bipush 4 - // 029: swap - // 02a: bipush 4 - // 02b: caload - // 02c: aload 0 - // 02d: dup - // 02e: bipush 4 - // 02f: swap - // 030: bipush 4 - // 031: caload - // 032: castore - // 033: castore - // 034: bipush 0 - // 035: istore 3 - // 036: goto 150 - // 039: astore 3 - // 03a: aload 3 - // 03b: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; - // 03e: bipush 0 - // 03f: aaload - // 040: astore 4 - // 042: aload 4 - // 044: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; - // 047: invokevirtual java/lang/String.hashCode ()I - // 04a: ldc 65535 - // 04c: iand - // 04d: istore 5 - // 04f: aload 4 - // 051: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; - // 054: invokevirtual java/lang/String.toCharArray ()[C - // 057: astore 6 - // 059: aload 0 - // 05a: iload 1 - // 05b: iinc 1 1 - // 05e: caload - // 05f: sipush 131 - // 062: ixor - // 063: iload 5 - // 065: ixor - // 066: anewarray 52 - // 069: astore 7 - // 06b: bipush 0 - // 06c: istore 8 - // 06e: aload 0 - // 06f: iload 1 - // 070: iinc 1 1 - // 073: caload - // 074: bipush 69 - // 076: ixor - // 077: iload 5 - // 079: ixor - // 07a: istore 2 - // 07b: iload 2 - // 07c: newarray 5 - // 07e: astore 9 - // 080: bipush 0 - // 081: istore 10 - // 083: iload 2 - // 084: ifle 131 - // 087: aload 0 - // 088: iload 1 - // 089: caload - // 08a: istore 11 - // 08c: aload 6 - // 08e: iload 1 - // 08f: aload 6 - // 091: arraylength - // 092: irem - // 093: caload - // 094: bipush 85 - // 096: ixor - // 097: lookupswitch 132 15 1 201 25 279 33 188 37 214 38 220 39 226 48 239 49 245 51 251 52 258 54 265 57 272 58 286 62 306 123 293 - // 118: nop - // 119: nop - // 11a: athrow - // 11b: aload 9 - // 11d: iload 10 - // 11f: iload 11 - // 121: castore - // 122: iinc 10 1 - // 125: iinc 1 1 - // 128: iinc 2 -1 - // 12b: bipush 0 - // 12c: istore 12 - // 12e: goto 1d3 - // 131: aload 7 - // 133: iload 8 - // 135: iinc 8 1 - // 138: new java/lang/String - // 13b: dup - // 13c: aload 9 - // 13e: invokespecial java/lang/String. ([C)V - // 141: invokevirtual java/lang/String.intern ()Ljava/lang/String; - // 144: aastore - // 145: iload 1 - // 146: aload 0 - // 147: arraylength - // 148: if_icmplt 06e - // 14b: aload 7 - // 14d: putstatic pack/tests/reflects/loader/LTest.catch [Ljava/lang/String; - // 150: goto 218 - // 153: iload 11 - // 155: bipush -19 - // 157: ixor - // 158: istore 11 - // 15a: bipush 1 - // 15b: istore 12 - // 15d: goto 1d3 - // 160: iload 11 - // 162: bipush -41 - // 164: ixor - // 165: istore 11 - // 167: bipush 1 - // 168: istore 12 - // 16a: goto 1d3 - // 16d: bipush 2 - // 16e: istore 12 - // 170: goto 1d3 - // 173: bipush 3 - // 174: istore 12 - // 176: goto 1d3 - // 179: iload 11 - // 17b: bipush -78 - // 17d: ixor - // 17e: istore 11 - // 180: bipush 1 - // 181: istore 12 - // 183: goto 1d3 - // 186: bipush 4 - // 187: istore 12 - // 189: goto 1d3 - // 18c: bipush 5 - // 18d: istore 12 - // 18f: goto 1d3 - // 192: bipush 6 - // 194: istore 12 - // 196: goto 1d3 - // 199: bipush 7 - // 19b: istore 12 - // 19d: goto 1d3 - // 1a0: bipush 8 - // 1a2: istore 12 - // 1a4: goto 1d3 - // 1a7: bipush 9 - // 1a9: istore 12 - // 1ab: goto 1d3 - // 1ae: bipush 10 - // 1b0: istore 12 - // 1b2: goto 1d3 - // 1b5: bipush 11 - // 1b7: istore 12 - // 1b9: goto 1d3 - // 1bc: iload 11 - // 1be: bipush 84 - // 1c0: ixor - // 1c1: istore 11 - // 1c3: bipush 1 - // 1c4: istore 12 - // 1c6: goto 1d3 - // 1c9: bipush 12 - // 1cb: istore 12 - // 1cd: goto 1d3 - // 1d0: goto 039 - // 1d3: iload 12 - // 1d5: tableswitch -117 0 12 -338 -186 -130 -117 -104 -92 -73 -79 -60 -67 -46 -53 -32 - // 218: return - } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/reflects/loader/Loader.dec b/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/reflects/loader/Loader.dec index f1b9bd58..1f61201a 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/reflects/loader/Loader.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/reflects/loader/Loader.dec @@ -31,240 +31,4 @@ public class Loader extends ClassLoader { byte[] data = readAllBytes(Loader.class.getClassLoader().getResourceAsStream("pack/tests/reflects/loader/LTest.class")); return this.defineClass(name, data, 0, data.length); } - - static { - // $VF: Couldn't be decompiled - // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) - // java.lang.RuntimeException: parsing failure! - // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) - // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) - // - // Bytecode: - // 000: ldc "Mຐj{mᄅຐnᄐmmາンワᄋニຜ\u0011[ノᅠ゙\u0011゚ネロR[ホJ゙ᅡムツ_Z[LᅭᄀjリMJᅮホムᄉ゙M" - // 002: invokevirtual java/lang/String.toCharArray ()[C - // 005: astore 0 - // 006: bipush 0 - // 007: istore 1 - // 008: aload 0 - // 009: dup - // 00a: bipush 0 - // 00b: swap - // 00c: bipush 19 - // 00e: caload - // 00f: aload 0 - // 010: dup - // 011: bipush 19 - // 013: swap - // 014: bipush 0 - // 015: caload - // 016: castore - // 017: castore - // 018: aload 0 - // 019: dup - // 01a: bipush 0 - // 01b: swap - // 01c: bipush 17 - // 01e: caload - // 01f: aload 0 - // 020: dup - // 021: bipush 17 - // 023: swap - // 024: bipush 0 - // 025: caload - // 026: castore - // 027: castore - // 028: aload 0 - // 029: dup - // 02a: bipush 16 - // 02c: swap - // 02d: bipush 0 - // 02e: caload - // 02f: aload 0 - // 030: dup - // 031: bipush 0 - // 032: swap - // 033: bipush 16 - // 035: caload - // 036: castore - // 037: castore - // 038: aload 0 - // 039: dup - // 03a: bipush 29 - // 03c: swap - // 03d: bipush 93 - // 03f: caload - // 040: aload 0 - // 041: dup - // 042: bipush 93 - // 044: swap - // 045: bipush 29 - // 047: caload - // 048: castore - // 049: castore - // 04a: aload 0 - // 04b: dup - // 04c: bipush 35 - // 04e: swap - // 04f: bipush 16 - // 051: caload - // 052: aload 0 - // 053: dup - // 054: bipush 16 - // 056: swap - // 057: bipush 35 - // 059: caload - // 05a: castore - // 05b: castore - // 05c: bipush 0 - // 05d: istore 3 - // 05e: goto 170 - // 061: astore 3 - // 062: aload 3 - // 063: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; - // 066: bipush 0 - // 067: aaload - // 068: astore 4 - // 06a: aload 4 - // 06c: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; - // 06f: invokevirtual java/lang/String.hashCode ()I - // 072: ldc 65535 - // 074: iand - // 075: istore 5 - // 077: aload 4 - // 079: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; - // 07c: invokevirtual java/lang/String.toCharArray ()[C - // 07f: astore 6 - // 081: aload 0 - // 082: iload 1 - // 083: iinc 1 1 - // 086: caload - // 087: bipush 54 - // 089: ixor - // 08a: iload 5 - // 08c: ixor - // 08d: anewarray 49 - // 090: astore 7 - // 092: bipush 0 - // 093: istore 8 - // 095: aload 0 - // 096: iload 1 - // 097: iinc 1 1 - // 09a: caload - // 09b: bipush 61 - // 09d: ixor - // 09e: iload 5 - // 0a0: ixor - // 0a1: istore 2 - // 0a2: iload 2 - // 0a3: newarray 5 - // 0a5: astore 9 - // 0a7: bipush 0 - // 0a8: istore 10 - // 0aa: iload 2 - // 0ab: ifle 151 - // 0ae: aload 0 - // 0af: iload 1 - // 0b0: caload - // 0b1: istore 11 - // 0b3: aload 6 - // 0b5: iload 1 - // 0b6: aload 6 - // 0b8: arraylength - // 0b9: irem - // 0ba: caload - // 0bb: sipush 211 - // 0be: ixor - // 0bf: lookupswitch 124 14 159 291 160 180 161 193 163 206 167 219 176 225 178 231 181 237 182 243 183 250 184 257 188 264 191 278 253 271 - // 138: nop - // 139: nop - // 13a: athrow - // 13b: aload 9 - // 13d: iload 10 - // 13f: iload 11 - // 141: castore - // 142: iinc 10 1 - // 145: iinc 1 1 - // 148: iinc 2 -1 - // 14b: bipush 0 - // 14c: istore 12 - // 14e: goto 1ec - // 151: aload 7 - // 153: iload 8 - // 155: iinc 8 1 - // 158: new java/lang/String - // 15b: dup - // 15c: aload 9 - // 15e: invokespecial java/lang/String. ([C)V - // 161: invokevirtual java/lang/String.intern ()Ljava/lang/String; - // 164: aastore - // 165: iload 1 - // 166: aload 0 - // 167: arraylength - // 168: if_icmplt 095 - // 16b: aload 7 - // 16d: putstatic pack/tests/reflects/loader/Loader.catch [Ljava/lang/String; - // 170: goto 22c - // 173: iload 11 - // 175: bipush 62 - // 177: ixor - // 178: istore 11 - // 17a: bipush 1 - // 17b: istore 12 - // 17d: goto 1ec - // 180: iload 11 - // 182: bipush -3 - // 184: ixor - // 185: istore 11 - // 187: bipush 1 - // 188: istore 12 - // 18a: goto 1ec - // 18d: iload 11 - // 18f: bipush -19 - // 191: ixor - // 192: istore 11 - // 194: bipush 1 - // 195: istore 12 - // 197: goto 1ec - // 19a: bipush 2 - // 19b: istore 12 - // 19d: goto 1ec - // 1a0: bipush 3 - // 1a1: istore 12 - // 1a3: goto 1ec - // 1a6: bipush 4 - // 1a7: istore 12 - // 1a9: goto 1ec - // 1ac: bipush 5 - // 1ad: istore 12 - // 1af: goto 1ec - // 1b2: bipush 6 - // 1b4: istore 12 - // 1b6: goto 1ec - // 1b9: bipush 7 - // 1bb: istore 12 - // 1bd: goto 1ec - // 1c0: bipush 8 - // 1c2: istore 12 - // 1c4: goto 1ec - // 1c7: bipush 9 - // 1c9: istore 12 - // 1cb: goto 1ec - // 1ce: bipush 10 - // 1d0: istore 12 - // 1d2: goto 1ec - // 1d5: iload 11 - // 1d7: bipush -44 - // 1d9: ixor - // 1da: istore 11 - // 1dc: bipush 1 - // 1dd: istore 12 - // 1df: goto 1ec - // 1e2: bipush 11 - // 1e4: istore 12 - // 1e6: goto 1ec - // 1e9: goto 061 - // 1ec: iload 12 - // 1ee: tableswitch -53 0 11 -324 -179 -110 -123 -78 -84 -97 -60 -72 -53 -46 -32 - // 22c: return - } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/reflects/res/Accesor.dec b/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/reflects/res/Accesor.dec index 9dfeefa0..92a2751e 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/reflects/res/Accesor.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/reflects/res/Accesor.dec @@ -20,237 +20,4 @@ public class Accesor { System.out.println("FAIL"); } } - - static { - // $VF: Couldn't be decompiled - // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) - // java.lang.RuntimeException: parsing failure! - // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) - // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) - // - // Bytecode: - // 000: ldc "ᄀິミ_モᄁອチミメᆱ\uffc8ᄡᆬmヤᄈ\uffdeテᆬチᆲヤᆪナᄈ\uffefᄇヤᄈ\uffc8ラwᆲ{\ufff3ອ\uffefチミメᆱᄡ\uffc8ᆬmᄡᄈ\uffdeテᆬチᆲヤᆪナᄈ\uffefᄇヤᄈ\uffc8ラwᆲ{ີラᄅンᄡᅢິญチノR" - // 002: invokevirtual java/lang/String.toCharArray ()[C - // 005: astore 0 - // 006: bipush 0 - // 007: istore 1 - // 008: aload 0 - // 009: dup - // 00a: bipush 70 - // 00c: swap - // 00d: bipush 15 - // 00f: caload - // 010: aload 0 - // 011: dup - // 012: bipush 15 - // 014: swap - // 015: bipush 70 - // 017: caload - // 018: castore - // 019: castore - // 01a: aload 0 - // 01b: dup - // 01c: bipush 42 - // 01e: swap - // 01f: bipush 43 - // 021: caload - // 022: aload 0 - // 023: dup - // 024: bipush 43 - // 026: swap - // 027: bipush 42 - // 029: caload - // 02a: castore - // 02b: castore - // 02c: aload 0 - // 02d: dup - // 02e: bipush 73 - // 030: swap - // 031: bipush 0 - // 032: caload - // 033: aload 0 - // 034: dup - // 035: bipush 0 - // 036: swap - // 037: bipush 73 - // 039: caload - // 03a: castore - // 03b: castore - // 03c: aload 0 - // 03d: dup - // 03e: bipush 2 - // 03f: swap - // 040: bipush 112 - // 042: caload - // 043: aload 0 - // 044: dup - // 045: bipush 112 - // 047: swap - // 048: bipush 2 - // 049: caload - // 04a: castore - // 04b: castore - // 04c: aload 0 - // 04d: dup - // 04e: bipush 53 - // 050: swap - // 051: bipush 71 - // 053: caload - // 054: aload 0 - // 055: dup - // 056: bipush 71 - // 058: swap - // 059: bipush 53 - // 05b: caload - // 05c: castore - // 05d: castore - // 05e: bipush 0 - // 05f: istore 3 - // 060: goto 16c - // 063: astore 3 - // 064: aload 3 - // 065: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; - // 068: bipush 0 - // 069: aaload - // 06a: astore 4 - // 06c: aload 4 - // 06e: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; - // 071: invokevirtual java/lang/String.hashCode ()I - // 074: ldc 65535 - // 076: iand - // 077: istore 5 - // 079: aload 4 - // 07b: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; - // 07e: invokevirtual java/lang/String.toCharArray ()[C - // 081: astore 6 - // 083: aload 0 - // 084: iload 1 - // 085: iinc 1 1 - // 088: caload - // 089: sipush 161 - // 08c: ixor - // 08d: iload 5 - // 08f: ixor - // 090: anewarray 65 - // 093: astore 7 - // 095: bipush 0 - // 096: istore 8 - // 098: aload 0 - // 099: iload 1 - // 09a: iinc 1 1 - // 09d: caload - // 09e: bipush 25 - // 0a0: ixor - // 0a1: iload 5 - // 0a3: ixor - // 0a4: istore 2 - // 0a5: iload 2 - // 0a6: newarray 5 - // 0a8: astore 9 - // 0aa: bipush 0 - // 0ab: istore 10 - // 0ad: iload 2 - // 0ae: ifle 14d - // 0b1: aload 0 - // 0b2: iload 1 - // 0b3: caload - // 0b4: istore 11 - // 0b6: aload 6 - // 0b8: iload 1 - // 0b9: aload 6 - // 0bb: arraylength - // 0bc: irem - // 0bd: caload - // 0be: bipush 23 - // 0c0: ixor - // 0c1: lookupswitch 118 13 57 264 86 250 99 174 100 187 101 193 103 206 113 212 114 225 116 231 118 237 120 257 123 271 124 278 - // 134: nop - // 135: nop - // 136: athrow - // 137: aload 9 - // 139: iload 10 - // 13b: iload 11 - // 13d: castore - // 13e: iinc 10 1 - // 141: iinc 1 1 - // 144: iinc 2 -1 - // 147: bipush 0 - // 148: istore 12 - // 14a: goto 1e1 - // 14d: aload 7 - // 14f: iload 8 - // 151: iinc 8 1 - // 154: new java/lang/String - // 157: dup - // 158: aload 9 - // 15a: invokespecial java/lang/String. ([C)V - // 15d: invokevirtual java/lang/String.intern ()Ljava/lang/String; - // 160: aastore - // 161: iload 1 - // 162: aload 0 - // 163: arraylength - // 164: if_icmplt 098 - // 167: aload 7 - // 169: putstatic pack/tests/reflects/res/Accesor.catch [Ljava/lang/String; - // 16c: goto 21c - // 16f: iload 11 - // 171: bipush -15 - // 173: ixor - // 174: istore 11 - // 176: bipush 1 - // 177: istore 12 - // 179: goto 1e1 - // 17c: bipush 2 - // 17d: istore 12 - // 17f: goto 1e1 - // 182: iload 11 - // 184: bipush -25 - // 186: ixor - // 187: istore 11 - // 189: bipush 1 - // 18a: istore 12 - // 18c: goto 1e1 - // 18f: bipush 3 - // 190: istore 12 - // 192: goto 1e1 - // 195: iload 11 - // 197: bipush -64 - // 199: ixor - // 19a: istore 11 - // 19c: bipush 1 - // 19d: istore 12 - // 19f: goto 1e1 - // 1a2: bipush 4 - // 1a3: istore 12 - // 1a5: goto 1e1 - // 1a8: bipush 5 - // 1a9: istore 12 - // 1ab: goto 1e1 - // 1ae: iload 11 - // 1b0: bipush 30 - // 1b2: ixor - // 1b3: istore 11 - // 1b5: bipush 1 - // 1b6: istore 12 - // 1b8: goto 1e1 - // 1bb: bipush 6 - // 1bd: istore 12 - // 1bf: goto 1e1 - // 1c2: bipush 7 - // 1c4: istore 12 - // 1c6: goto 1e1 - // 1c9: bipush 8 - // 1cb: istore 12 - // 1cd: goto 1e1 - // 1d0: bipush 9 - // 1d2: istore 12 - // 1d4: goto 1e1 - // 1d7: bipush 10 - // 1d9: istore 12 - // 1db: goto 1e1 - // 1de: goto 063 - // 1e1: iload 12 - // 1e3: tableswitch -84 0 10 -310 -172 -116 -103 -78 -65 -84 -59 -33 -53 -19 - // 21c: return - } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/reflects/retrace/Tracer.dec b/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/reflects/retrace/Tracer.dec index 138b78d7..89c04f25 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/reflects/retrace/Tracer.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/reflects/retrace/Tracer.dec @@ -9,220 +9,4 @@ public class Tracer { System.out.println("FAIL"); } } - - static { - // $VF: Couldn't be decompiled - // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) - // java.lang.RuntimeException: parsing failure! - // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) - // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) - // - // Bytecode: - // 000: ldc "#ຼ+:V(ຼY:ฬ<" - // 002: invokevirtual java/lang/String.toCharArray ()[C - // 005: astore 0 - // 006: bipush 0 - // 007: istore 1 - // 008: aload 0 - // 009: dup - // 00a: bipush 7 - // 00c: swap - // 00d: bipush 4 - // 00e: caload - // 00f: aload 0 - // 010: dup - // 011: bipush 4 - // 012: swap - // 013: bipush 7 - // 015: caload - // 016: castore - // 017: castore - // 018: aload 0 - // 019: dup - // 01a: bipush 4 - // 01b: swap - // 01c: bipush 9 - // 01e: caload - // 01f: aload 0 - // 020: dup - // 021: bipush 9 - // 023: swap - // 024: bipush 4 - // 025: caload - // 026: castore - // 027: castore - // 028: aload 0 - // 029: dup - // 02a: bipush 4 - // 02b: swap - // 02c: bipush 0 - // 02d: caload - // 02e: aload 0 - // 02f: dup - // 030: bipush 0 - // 031: swap - // 032: bipush 4 - // 033: caload - // 034: castore - // 035: castore - // 036: aload 0 - // 037: dup - // 038: bipush 4 - // 039: swap - // 03a: bipush 20 - // 03c: caload - // 03d: aload 0 - // 03e: dup - // 03f: bipush 20 - // 041: swap - // 042: bipush 4 - // 043: caload - // 044: castore - // 045: castore - // 046: bipush 0 - // 047: istore 3 - // 048: goto 14c - // 04b: astore 3 - // 04c: aload 3 - // 04d: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; - // 050: bipush 0 - // 051: aaload - // 052: astore 4 - // 054: aload 4 - // 056: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; - // 059: invokevirtual java/lang/String.hashCode ()I - // 05c: ldc 65535 - // 05e: iand - // 05f: istore 5 - // 061: aload 4 - // 063: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; - // 066: invokevirtual java/lang/String.toCharArray ()[C - // 069: astore 6 - // 06b: aload 0 - // 06c: iload 1 - // 06d: iinc 1 1 - // 070: caload - // 071: sipush 135 - // 074: ixor - // 075: iload 5 - // 077: ixor - // 078: anewarray 46 - // 07b: astore 7 - // 07d: bipush 0 - // 07e: istore 8 - // 080: aload 0 - // 081: iload 1 - // 082: iinc 1 1 - // 085: caload - // 086: bipush 17 - // 088: ixor - // 089: iload 5 - // 08b: ixor - // 08c: istore 2 - // 08d: iload 2 - // 08e: newarray 5 - // 090: astore 9 - // 092: bipush 0 - // 093: istore 10 - // 095: iload 2 - // 096: ifle 12d - // 099: aload 0 - // 09a: iload 1 - // 09b: caload - // 09c: istore 11 - // 09e: aload 6 - // 0a0: iload 1 - // 0a1: aload 6 - // 0a3: arraylength - // 0a4: irem - // 0a5: caload - // 0a6: sipush 165 - // 0a9: ixor - // 0aa: lookupswitch 109 12 139 255 192 165 195 197 196 203 198 222 201 248 206 262 209 178 213 209 214 228 215 241 241 184 - // 114: nop - // 115: nop - // 116: athrow - // 117: aload 9 - // 119: iload 10 - // 11b: iload 11 - // 11d: castore - // 11e: iinc 10 1 - // 121: iinc 1 1 - // 124: iinc 2 -1 - // 127: bipush 0 - // 128: istore 12 - // 12a: goto 1ba - // 12d: aload 7 - // 12f: iload 8 - // 131: iinc 8 1 - // 134: new java/lang/String - // 137: dup - // 138: aload 9 - // 13a: invokespecial java/lang/String. ([C)V - // 13d: invokevirtual java/lang/String.intern ()Ljava/lang/String; - // 140: aastore - // 141: iload 1 - // 142: aload 0 - // 143: arraylength - // 144: if_icmplt 080 - // 147: aload 7 - // 149: putstatic pack/tests/reflects/retrace/Tracer.catch [Ljava/lang/String; - // 14c: goto 1f4 - // 14f: iload 11 - // 151: bipush 123 - // 153: ixor - // 154: istore 11 - // 156: bipush 1 - // 157: istore 12 - // 159: goto 1ba - // 15c: bipush 2 - // 15d: istore 12 - // 15f: goto 1ba - // 162: iload 11 - // 164: bipush -104 - // 166: ixor - // 167: istore 11 - // 169: bipush 1 - // 16a: istore 12 - // 16c: goto 1ba - // 16f: bipush 3 - // 170: istore 12 - // 172: goto 1ba - // 175: bipush 4 - // 176: istore 12 - // 178: goto 1ba - // 17b: iload 11 - // 17d: bipush 112 - // 17f: ixor - // 180: istore 11 - // 182: bipush 1 - // 183: istore 12 - // 185: goto 1ba - // 188: bipush 5 - // 189: istore 12 - // 18b: goto 1ba - // 18e: iload 11 - // 190: bipush 16 - // 192: ixor - // 193: istore 11 - // 195: bipush 1 - // 196: istore 12 - // 198: goto 1ba - // 19b: bipush 6 - // 19d: istore 12 - // 19f: goto 1ba - // 1a2: bipush 7 - // 1a4: istore 12 - // 1a6: goto 1ba - // 1a9: bipush 8 - // 1ab: istore 12 - // 1ad: goto 1ba - // 1b0: bipush 9 - // 1b2: istore 12 - // 1b4: goto 1ba - // 1b7: goto 04b - // 1ba: iload 12 - // 1bc: tableswitch -96 0 9 -295 -165 -109 -96 -77 -71 -90 -65 -26 -52 - // 1f4: return - } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/security/SecTest.dec b/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/security/SecTest.dec index 2c1e3966..7ce68719 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/security/SecTest.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/security/SecTest.dec @@ -32,226 +32,4 @@ public class SecTest { } } } - - static { - // $VF: Couldn't be decompiled - // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) - // java.lang.RuntimeException: parsing failure! - // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) - // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) - // - // Bytecode: - // 000: ldc "ພຐ\u0004#ハ6L8(#ᆴ\"ຒx\uffd1xD\u001cxハ\u001fโ$\rp\u0000ພ\u0014\u0003?\u0007" - // 002: invokevirtual java/lang/String.toCharArray ()[C - // 005: astore 0 - // 006: bipush 0 - // 007: istore 1 - // 008: aload 0 - // 009: dup - // 00a: bipush 2 - // 00b: swap - // 00c: bipush 27 - // 00e: caload - // 00f: aload 0 - // 010: dup - // 011: bipush 27 - // 013: swap - // 014: bipush 2 - // 015: caload - // 016: castore - // 017: castore - // 018: aload 0 - // 019: dup - // 01a: bipush 5 - // 01b: swap - // 01c: bipush 22 - // 01e: caload - // 01f: aload 0 - // 020: dup - // 021: bipush 22 - // 023: swap - // 024: bipush 5 - // 025: caload - // 026: castore - // 027: castore - // 028: aload 0 - // 029: dup - // 02a: bipush 21 - // 02c: swap - // 02d: bipush 0 - // 02e: caload - // 02f: aload 0 - // 030: dup - // 031: bipush 0 - // 032: swap - // 033: bipush 21 - // 035: caload - // 036: castore - // 037: castore - // 038: aload 0 - // 039: dup - // 03a: bipush 14 - // 03c: swap - // 03d: bipush 44 - // 03f: caload - // 040: aload 0 - // 041: dup - // 042: bipush 44 - // 044: swap - // 045: bipush 14 - // 047: caload - // 048: castore - // 049: castore - // 04a: bipush 0 - // 04b: istore 3 - // 04c: goto 160 - // 04f: astore 3 - // 050: aload 3 - // 051: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; - // 054: bipush 0 - // 055: aaload - // 056: astore 4 - // 058: aload 4 - // 05a: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; - // 05d: invokevirtual java/lang/String.hashCode ()I - // 060: ldc 65535 - // 062: iand - // 063: istore 5 - // 065: aload 4 - // 067: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; - // 06a: invokevirtual java/lang/String.toCharArray ()[C - // 06d: astore 6 - // 06f: aload 0 - // 070: iload 1 - // 071: iinc 1 1 - // 074: caload - // 075: sipush 239 - // 078: ixor - // 079: iload 5 - // 07b: ixor - // 07c: anewarray 67 - // 07f: astore 7 - // 081: bipush 0 - // 082: istore 8 - // 084: aload 0 - // 085: iload 1 - // 086: iinc 1 1 - // 089: caload - // 08a: bipush 51 - // 08c: ixor - // 08d: iload 5 - // 08f: ixor - // 090: istore 2 - // 091: iload 2 - // 092: newarray 5 - // 094: astore 9 - // 096: bipush 0 - // 097: istore 10 - // 099: iload 2 - // 09a: ifle 141 - // 09d: aload 0 - // 09e: iload 1 - // 09f: caload - // 0a0: istore 11 - // 0a2: aload 6 - // 0a4: iload 1 - // 0a5: aload 6 - // 0a7: arraylength - // 0a8: irem - // 0a9: caload - // 0aa: bipush 39 - // 0ac: ixor - // 0ad: lookupswitch 126 14 9 221 66 182 68 195 70 208 76 234 78 240 82 246 83 252 84 265 85 279 87 286 94 293 115 258 116 272 - // 128: nop - // 129: nop - // 12a: athrow - // 12b: aload 9 - // 12d: iload 10 - // 12f: iload 11 - // 131: castore - // 132: iinc 10 1 - // 135: iinc 1 1 - // 138: iinc 2 -1 - // 13b: bipush 0 - // 13c: istore 12 - // 13e: goto 1dc - // 141: aload 7 - // 143: iload 8 - // 145: iinc 8 1 - // 148: new java/lang/String - // 14b: dup - // 14c: aload 9 - // 14e: invokespecial java/lang/String. ([C)V - // 151: invokevirtual java/lang/String.intern ()Ljava/lang/String; - // 154: aastore - // 155: iload 1 - // 156: aload 0 - // 157: arraylength - // 158: if_icmplt 084 - // 15b: aload 7 - // 15d: putstatic pack/tests/security/SecTest.catch [Ljava/lang/String; - // 160: goto 21c - // 163: iload 11 - // 165: bipush 57 - // 167: ixor - // 168: istore 11 - // 16a: bipush 1 - // 16b: istore 12 - // 16d: goto 1dc - // 170: iload 11 - // 172: bipush 112 - // 174: ixor - // 175: istore 11 - // 177: bipush 1 - // 178: istore 12 - // 17a: goto 1dc - // 17d: iload 11 - // 17f: bipush 76 - // 181: ixor - // 182: istore 11 - // 184: bipush 1 - // 185: istore 12 - // 187: goto 1dc - // 18a: iload 11 - // 18c: bipush -39 - // 18e: ixor - // 18f: istore 11 - // 191: bipush 1 - // 192: istore 12 - // 194: goto 1dc - // 197: bipush 2 - // 198: istore 12 - // 19a: goto 1dc - // 19d: bipush 3 - // 19e: istore 12 - // 1a0: goto 1dc - // 1a3: bipush 4 - // 1a4: istore 12 - // 1a6: goto 1dc - // 1a9: bipush 5 - // 1aa: istore 12 - // 1ac: goto 1dc - // 1af: bipush 6 - // 1b1: istore 12 - // 1b3: goto 1dc - // 1b6: bipush 7 - // 1b8: istore 12 - // 1ba: goto 1dc - // 1bd: bipush 8 - // 1bf: istore 12 - // 1c1: goto 1dc - // 1c4: bipush 9 - // 1c6: istore 12 - // 1c8: goto 1dc - // 1cb: bipush 10 - // 1cd: istore 12 - // 1cf: goto 1dc - // 1d2: bipush 11 - // 1d4: istore 12 - // 1d6: goto 1dc - // 1d9: goto 04f - // 1dc: iload 12 - // 1de: tableswitch -47 0 11 -325 -179 -97 -71 -84 -65 -53 -47 -40 -110 -33 -123 - // 21c: return - } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/security/Sman.dec b/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/security/Sman.dec index 63173eb0..7f6f1b32 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/security/Sman.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string/pack/tests/security/Sman.dec @@ -9,215 +9,4 @@ public class Sman extends SecurityManager { throw new SecurityException("HOOKED"); } } - - static { - // $VF: Couldn't be decompiled - // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) - // java.lang.RuntimeException: parsing failure! - // at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211) - // at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:166) - // - // Bytecode: - // 000: ldc "วsHOᄂ໙E0ว\u0011モ\u001dtVu" - // 002: invokevirtual java/lang/String.toCharArray ()[C - // 005: astore 0 - // 006: bipush 0 - // 007: istore 1 - // 008: aload 0 - // 009: dup - // 00a: bipush 1 - // 00b: swap - // 00c: bipush 0 - // 00d: caload - // 00e: aload 0 - // 00f: dup - // 010: bipush 0 - // 011: swap - // 012: bipush 1 - // 013: caload - // 014: castore - // 015: castore - // 016: aload 0 - // 017: dup - // 018: bipush 5 - // 019: swap - // 01a: bipush 0 - // 01b: caload - // 01c: aload 0 - // 01d: dup - // 01e: bipush 0 - // 01f: swap - // 020: bipush 5 - // 021: caload - // 022: castore - // 023: castore - // 024: aload 0 - // 025: dup - // 026: bipush 8 - // 028: swap - // 029: bipush 28 - // 02b: caload - // 02c: aload 0 - // 02d: dup - // 02e: bipush 28 - // 030: swap - // 031: bipush 8 - // 033: caload - // 034: castore - // 035: castore - // 036: bipush 0 - // 037: istore 3 - // 038: goto 154 - // 03b: astore 3 - // 03c: aload 3 - // 03d: invokevirtual java/lang/Throwable.getStackTrace ()[Ljava/lang/StackTraceElement; - // 040: bipush 0 - // 041: aaload - // 042: astore 4 - // 044: aload 4 - // 046: invokevirtual java/lang/StackTraceElement.getMethodName ()Ljava/lang/String; - // 049: invokevirtual java/lang/String.hashCode ()I - // 04c: ldc 65535 - // 04e: iand - // 04f: istore 5 - // 051: aload 4 - // 053: invokevirtual java/lang/StackTraceElement.getClassName ()Ljava/lang/String; - // 056: invokevirtual java/lang/String.toCharArray ()[C - // 059: astore 6 - // 05b: aload 0 - // 05c: iload 1 - // 05d: iinc 1 1 - // 060: caload - // 061: bipush 114 - // 063: ixor - // 064: iload 5 - // 066: ixor - // 067: anewarray 23 - // 06a: astore 7 - // 06c: bipush 0 - // 06d: istore 8 - // 06f: aload 0 - // 070: iload 1 - // 071: iinc 1 1 - // 074: caload - // 075: sipush 136 - // 078: ixor - // 079: iload 5 - // 07b: ixor - // 07c: istore 2 - // 07d: iload 2 - // 07e: newarray 5 - // 080: astore 9 - // 082: bipush 0 - // 083: istore 10 - // 085: iload 2 - // 086: ifle 135 - // 089: aload 0 - // 08a: iload 1 - // 08b: caload - // 08c: istore 11 - // 08e: aload 6 - // 090: iload 1 - // 091: aload 6 - // 093: arraylength - // 094: irem - // 095: caload - // 096: sipush 176 - // 099: ixor - // 09a: lookupswitch 133 15 158 299 192 189 194 202 195 215 196 234 197 240 201 246 209 252 211 259 213 271 217 278 219 285 221 292 222 306 227 221 - // 11c: nop - // 11d: nop - // 11e: athrow - // 11f: aload 9 - // 121: iload 10 - // 123: iload 11 - // 125: castore - // 126: iinc 10 1 - // 129: iinc 1 1 - // 12c: iinc 2 -1 - // 12f: bipush 0 - // 130: istore 12 - // 132: goto 1d6 - // 135: aload 7 - // 137: iload 8 - // 139: iinc 8 1 - // 13c: new java/lang/String - // 13f: dup - // 140: aload 9 - // 142: invokespecial java/lang/String. ([C)V - // 145: invokevirtual java/lang/String.intern ()Ljava/lang/String; - // 148: aastore - // 149: iload 1 - // 14a: aload 0 - // 14b: arraylength - // 14c: if_icmplt 06f - // 14f: aload 7 - // 151: putstatic pack/tests/security/Sman.catch [Ljava/lang/String; - // 154: goto 21c - // 157: iload 11 - // 159: bipush 116 - // 15b: ixor - // 15c: istore 11 - // 15e: bipush 1 - // 15f: istore 12 - // 161: goto 1d6 - // 164: iload 11 - // 166: bipush -21 - // 168: ixor - // 169: istore 11 - // 16b: bipush 1 - // 16c: istore 12 - // 16e: goto 1d6 - // 171: bipush 2 - // 172: istore 12 - // 174: goto 1d6 - // 177: iload 11 - // 179: bipush 56 - // 17b: ixor - // 17c: istore 11 - // 17e: bipush 1 - // 17f: istore 12 - // 181: goto 1d6 - // 184: bipush 3 - // 185: istore 12 - // 187: goto 1d6 - // 18a: bipush 4 - // 18b: istore 12 - // 18d: goto 1d6 - // 190: bipush 5 - // 191: istore 12 - // 193: goto 1d6 - // 196: bipush 6 - // 198: istore 12 - // 19a: goto 1d6 - // 19d: iload 11 - // 19f: bipush 0 - // 1a0: ixor - // 1a1: istore 11 - // 1a3: bipush 1 - // 1a4: istore 12 - // 1a6: goto 1d6 - // 1a9: bipush 7 - // 1ab: istore 12 - // 1ad: goto 1d6 - // 1b0: bipush 8 - // 1b2: istore 12 - // 1b4: goto 1d6 - // 1b7: bipush 9 - // 1b9: istore 12 - // 1bb: goto 1d6 - // 1be: bipush 10 - // 1c0: istore 12 - // 1c2: goto 1d6 - // 1c5: bipush 11 - // 1c7: istore 12 - // 1c9: goto 1d6 - // 1cc: bipush 12 - // 1ce: istore 12 - // 1d0: goto 1d6 - // 1d3: goto 03b - // 1d6: iload 12 - // 1d8: tableswitch -129 0 12 -339 -185 -129 -97 -84 -78 -103 -59 -116 -47 -72 -40 -66 - // 21c: return - } } From f2fda4073732634507d09a0de1d5a671a9c3419d Mon Sep 17 00:00:00 2001 From: Dawid <50593784+Animowany@users.noreply.github.com> Date: Fri, 12 Sep 2025 15:10:00 +0200 Subject: [PATCH 13/13] I forgot to put in cache --- .../BranchlockCompabilityStringTransformer.java | 3 +++ .../pack/tests/basics/accu/Digi.dec | 6 +++--- .../pack/tests/basics/ctrl/Ctrl.dec | 8 ++++---- .../pack/tests/basics/inner/Test.dec | 4 ++-- .../pack/tests/basics/runable/Task.dec | 4 ++-- .../pack/tests/basics/sub/Solver.dec | 4 ++-- .../pack/tests/bench/Calc.dec | 12 ++++++------ .../pack/tests/reflects/annot/annot.dec | 2 +- .../pack/tests/reflects/counter/Count.dec | 4 ++-- .../pack/tests/reflects/field/FTest.dec | 14 +++++++------- .../pack/tests/reflects/loader/LRun.dec | 4 ++-- .../pack/tests/reflects/res/Accesor.dec | 10 +++++----- .../pack/tests/reflects/retrace/Tracer.dec | 4 ++-- .../pack/tests/security/SecTest.dec | 8 ++++---- 14 files changed, 45 insertions(+), 42 deletions(-) diff --git a/deobfuscator-transformers/src/main/java/uwu/narumi/deobfuscator/core/other/impl/branchlock/BranchlockCompabilityStringTransformer.java b/deobfuscator-transformers/src/main/java/uwu/narumi/deobfuscator/core/other/impl/branchlock/BranchlockCompabilityStringTransformer.java index 25a3bf7b..8cdcccaa 100644 --- a/deobfuscator-transformers/src/main/java/uwu/narumi/deobfuscator/core/other/impl/branchlock/BranchlockCompabilityStringTransformer.java +++ b/deobfuscator-transformers/src/main/java/uwu/narumi/deobfuscator/core/other/impl/branchlock/BranchlockCompabilityStringTransformer.java @@ -186,6 +186,9 @@ protected void transform() throws Exception { } decryptedStrings[decStrIndex++] = new String(toDecrypt).intern(); } + + decryptedDataMap.put(classWrapper, new DecryptedStringData(stringArray, decryptedStrings)); + Set labelsInStringDecryption = new HashSet<>(); Set toRemove = new HashSet<>(); AbstractInsnNode firstNode = encryptedStringInsn; diff --git a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/basics/accu/Digi.dec b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/basics/accu/Digi.dec index baf0071b..541641d4 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/basics/accu/Digi.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/basics/accu/Digi.dec @@ -11,13 +11,13 @@ public class Digi { int var4 = 0; do { - var2 += Double.longBitsToDouble(4337655139195544067L + (-806592087L << Integer.parseInt(d[1], 32))); + var2 += 1.0E-18; } while (++var4 <= 100 && (float)var2 != 2.0E-17F); if (var4 == 20) { - System.out.println(d[0]); + System.out.println("PASS"); } else { - System.out.println(d[2]); + System.out.println("FAIL"); } } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/basics/ctrl/Ctrl.dec b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/basics/ctrl/Ctrl.dec index eb1a5738..4c474cff 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/basics/ctrl/Ctrl.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/basics/ctrl/Ctrl.dec @@ -1,14 +1,14 @@ package pack.tests.basics.ctrl; public class Ctrl { - private String ret = d[3]; + private String ret = "FAIL"; public int BRANCHLOCK_DOT_NET_DEMO; public Ctrl(int var1) { } public void runt(int var1) { - if (!d[1].equals(d[0])) { + if (!"a".equals("b")) { throw new UnsupportedOperationException(); } } @@ -17,12 +17,12 @@ public class Ctrl { try { this.runt(8206); } catch (RuntimeException var3) { - this.ret = d[2]; + this.ret = "PASS"; } try { this.runt(8206); - this.ret = d[3]; + this.ret = "FAIL"; } catch (Exception var2) { } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/basics/inner/Test.dec b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/basics/inner/Test.dec index 3af2710b..67ded837 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/basics/inner/Test.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/basics/inner/Test.dec @@ -13,9 +13,9 @@ public class Test { Exec.Inner var4 = var2.new Inner(var2, 100, 14056); var4.doAdd(15081); if (var2.fuss == 108) { - System.out.println(d[1]); + System.out.println("PASS"); } else { - System.out.println(d[0]); + System.out.println("ERROR"); } } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/basics/runable/Task.dec b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/basics/runable/Task.dec index 126da8a3..d9992adf 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/basics/runable/Task.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/basics/runable/Task.dec @@ -35,9 +35,9 @@ public class Task { Thread.sleep(300L); if (Exec.i == 30) { - System.out.println(d[1]); + System.out.println("PASS"); } else { - System.out.println(d[0]); + System.out.println("FAIL"); } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/basics/sub/Solver.dec b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/basics/sub/Solver.dec index 04baf08b..e8121657 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/basics/sub/Solver.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/basics/sub/Solver.dec @@ -5,9 +5,9 @@ public class Solver { public Solver(int var1) { if (SolAdd.get(3122) == 3) { - System.out.println(d[1]); + System.out.println("PASS"); } else { - System.out.println(d[0]); + System.out.println("FAIL"); } } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/bench/Calc.dec b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/bench/Calc.dec index 8260f905..2f8fc94c 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/bench/Calc.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/bench/Calc.dec @@ -16,9 +16,9 @@ public class Calc { runStr(31405); } - System.out.println(d[6] + (System.currentTimeMillis() - var1) + d[1]); + System.out.println("Calc: " + (System.currentTimeMillis() - var1) + "ms"); if (count != 30000) { - throw new RuntimeException(d[4]); + throw new RuntimeException("[ERROR]: Errors occurred in calc!"); } } @@ -33,18 +33,18 @@ public class Calc { private static void runAdd(int var0) { double var1 = 0.0; - while (var1 < Double.longBitsToDouble(-292662827L + (Long.parseLong(d[3], 25) ^ 4636744327457716328L))) { - var1 += Double.longBitsToDouble((4607092347051790635L ^ Long.parseLong(d[2], 27)) - 824017068L); + while (var1 < 100.1) { + var1 += 0.99; } count++; } private static void runStr(int var0) { - String var1 = d[5]; + String var1 = ""; while (var1.length() < 101) { - var1 = var1 + d[0]; + var1 = var1 + "ax"; } count++; diff --git a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/annot/annot.dec b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/annot/annot.dec index 016f3553..d31e9068 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/annot/annot.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/annot/annot.dec @@ -14,7 +14,7 @@ public class annot { for (Method var6 : annoe.class.getDeclaredMethods()) { var6.setAccessible(true); anno var7 = var6.getAnnotation(anno.class); - if (var7 != null && var7.val().equals(d[0])) { + if (var7 != null && var7.val().equals("yes")) { var6.invoke(var2); } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/counter/Count.dec b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/counter/Count.dec index 7467850a..5210fd38 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/counter/Count.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/counter/Count.dec @@ -11,9 +11,9 @@ public class Count { && Countee.class.getDeclaredFields().length == 4 && Countee.class.getMethods().length > 4 && Countee.class.getDeclaredMethods().length == 4) { - System.out.println(d[0]); + System.out.println("PASS"); } else { - System.out.println(d[1]); + System.out.println("FAIL"); } } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/field/FTest.dec b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/field/FTest.dec index 0172b43f..7aa27758 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/field/FTest.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/field/FTest.dec @@ -13,25 +13,25 @@ public class FTest { public void run(int var1) { Constructor var2 = FObject.class.getDeclaredConstructor(int.class); if (var2.isAccessible()) { - System.out.println(d[1]); + System.out.println("FAIL"); } else { var2.setAccessible(true); FObject var3 = (FObject)var2.newInstance(1); - Method var4 = FObject.class.getDeclaredMethod(d[2], null); + Method var4 = FObject.class.getDeclaredMethod("add", null); if (var4.isAccessible()) { - System.out.println(d[1]); + System.out.println("FAIL"); } else { var4.setAccessible(true); var4.invoke(var3); - Field var5 = FObject.class.getDeclaredField(d[3]); + Field var5 = FObject.class.getDeclaredField("i"); if (var5.isAccessible()) { - System.out.println(d[1]); + System.out.println("FAIL"); } else { var5.setAccessible(true); if (var5.getInt(var3) != 4) { - System.out.println(d[1]); + System.out.println("FAIL"); } else { - System.out.println(d[0]); + System.out.println("PASS"); } } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/loader/LRun.dec b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/loader/LRun.dec index 7258be97..608ab5bc 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/loader/LRun.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/loader/LRun.dec @@ -8,8 +8,8 @@ public class LRun { public void run(int var1) { Loader var2 = new Loader(12270); - Class var3 = var2.findClass(d[0]); + Class var3 = var2.findClass("pack.tests.reflects.loader.LTest"); Object var4 = var3.newInstance(); - var3.getMethod(d[1]).invoke(var4); + var3.getMethod("run").invoke(var4); } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/res/Accesor.dec b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/res/Accesor.dec index df9b2b69..03821404 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/res/Accesor.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/res/Accesor.dec @@ -8,21 +8,21 @@ public class Accesor { public void run(int var1) { try { - if (Accesor.class.getResourceAsStream(d[2]).read() != 97) { + if (Accesor.class.getResourceAsStream("/pack/tests/reflects/res/file").read() != 97) { throw new RuntimeException(); } - if (Accesor.class.getResourceAsStream(d[3]).read() != 114) { + if (Accesor.class.getResourceAsStream("file2").read() != 114) { throw new RuntimeException(); } - if (Accesor.class.getClassLoader().getResourceAsStream(d[1]).read() != 99) { + if (Accesor.class.getClassLoader().getResourceAsStream("pack/tests/reflects/res/file3").read() != 99) { throw new RuntimeException(); } - System.out.println(d[0]); + System.out.println("PASS"); } catch (Exception var2) { - System.out.println(d[4]); + System.out.println("FAIL"); } } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/retrace/Tracer.dec b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/retrace/Tracer.dec index 0b37fcf5..a025cb1e 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/retrace/Tracer.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/reflects/retrace/Tracer.dec @@ -9,9 +9,9 @@ public class Tracer { public void run(int var1) { new Tracee(5704).toTrace(5); if (Tracee.p == 5) { - System.out.println(d[0]); + System.out.println("PASS"); } else { - System.out.println(d[1]); + System.out.println("FAIL"); } } } diff --git a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/security/SecTest.dec b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/security/SecTest.dec index 9bc91548..26291b71 100644 --- a/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/security/SecTest.dec +++ b/testData/results/custom-jars/branchlock/branchlock-string-salting-number/pack/tests/security/SecTest.dec @@ -10,10 +10,10 @@ public class SecTest { public void run(int var1) { System.setSecurityManager(new Sman(31850)); - System.out.print(d[3]); + System.out.print("FAIL"); try { - Method var2 = SecExec.class.getDeclaredMethod(d[0]); + Method var2 = SecExec.class.getDeclaredMethod("doShutdown"); var2.setAccessible(true); var2.invoke(null); } catch (Throwable var6) { @@ -27,8 +27,8 @@ public class SecTest { return; } - if (var5.contains(d[2])) { - System.out.println(d[1]); + if (var5.contains("HOOK")) { + System.out.println("\b\b\b\bPASS"); } break; }