diff --git a/dev.skidfuscator.client.standalone/pom.xml b/dev.skidfuscator.client.standalone/pom.xml
new file mode 100644
index 0000000..495023c
--- /dev/null
+++ b/dev.skidfuscator.client.standalone/pom.xml
@@ -0,0 +1,7 @@
+
+
+ com.google.code.gson
+ gson
+ 2.10.1
+
+
\ No newline at end of file
diff --git a/dev.skidfuscator.client.standalone/src/main/java/dev/skidfuscator/obfuscator/gui/ConfigPanel.java b/dev.skidfuscator.client.standalone/src/main/java/dev/skidfuscator/obfuscator/gui/ConfigPanel.java
index ba4d2fa..6e8e9c7 100644
--- a/dev.skidfuscator.client.standalone/src/main/java/dev/skidfuscator/obfuscator/gui/ConfigPanel.java
+++ b/dev.skidfuscator.client.standalone/src/main/java/dev/skidfuscator/obfuscator/gui/ConfigPanel.java
@@ -409,5 +409,9 @@ private void saveConfiguration() {
public String getLibsPath() { return libsField.getText(); }
public String getRuntimePath() { return runtimeField.getText(); }
public boolean isDebugEnabled() { return debugBox.isSelected(); }
+ public String getLibraryPath() {
+ // TODO: Add a library path field to the config panel
+ return null;
+ }
}
diff --git a/dev.skidfuscator.client.standalone/src/main/java/dev/skidfuscator/obfuscator/gui/ConsolePanel.java b/dev.skidfuscator.client.standalone/src/main/java/dev/skidfuscator/obfuscator/gui/ConsolePanel.java
index e4f9ae9..35e8e4d 100644
--- a/dev.skidfuscator.client.standalone/src/main/java/dev/skidfuscator/obfuscator/gui/ConsolePanel.java
+++ b/dev.skidfuscator.client.standalone/src/main/java/dev/skidfuscator/obfuscator/gui/ConsolePanel.java
@@ -130,7 +130,13 @@ public void write(int b) {
Element line = root.getElement(currentLine);
int start = line.getStartOffset();
int end = line.getEndOffset();
- doc.remove(start, end - start);
+ if (end - start > 0) {
+ doc.remove(start, end - start);
+ } else {
+ // Remove last line if it's empty
+ Element prevLine = root.getElement(currentLine - 1);
+ doc.remove(prevLine.getStartOffset(), prevLine.getEndOffset());
+ }
} catch (BadLocationException e) {
e.printStackTrace(originalErr);
}
diff --git a/dev.skidfuscator.client.standalone/src/main/java/dev/skidfuscator/obfuscator/gui/LibrariesPanel.java b/dev.skidfuscator.client.standalone/src/main/java/dev/skidfuscator/obfuscator/gui/LibrariesPanel.java
new file mode 100644
index 0000000..802d471
--- /dev/null
+++ b/dev.skidfuscator.client.standalone/src/main/java/dev/skidfuscator/obfuscator/gui/LibrariesPanel.java
@@ -0,0 +1,410 @@
+package dev.skidfuscator.obfuscator.gui;
+
+import com.google.gson.Gson;
+import com.google.gson.JsonArray;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+import dev.skidfuscator.obfuscator.Skidfuscator;
+import dev.skidfuscator.obfuscator.SkidfuscatorSession;
+import dev.skidfuscator.obfuscator.creator.SkidApplicationClassSource;
+import dev.skidfuscator.obfuscator.util.MapleJarUtil;
+import org.mapleir.app.service.ApplicationClassSource;
+import org.mapleir.app.service.LibraryClassSource;
+import dev.skidfuscator.jghost.GhostHelper;
+import dev.skidfuscator.jghost.tree.GhostLibrary;
+import dev.skidfuscator.obfuscator.Skidfuscator;
+import dev.skidfuscator.obfuscator.creator.SkidApplicationClassSource;
+import dev.skidfuscator.obfuscator.util.JdkDownloader;
+
+import javax.swing.*;
+import javax.swing.border.EtchedBorder;
+import java.awt.*;
+import java.awt.event.ActionEvent;
+import java.io.*;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.util.*;
+import java.util.List;
+import java.net.URLEncoder;
+
+public class LibrariesPanel extends JPanel {
+ private final JList libraryList;
+ private final DefaultListModel libraryModel;
+ private final JList missingClassesList;
+ private final DefaultListModel missingClassesModel;
+ private final JButton scanButton;
+ private final JButton scanSelectedButton;
+ private final Path libraryFolder;
+ private SkidApplicationClassSource classSource;
+ private final Gson gson;
+ private final JProgressBar progressBar;
+ private final JLabel statusLabel;
+ private final ConfigPanel configPanel;
+
+ public LibrariesPanel(ConfigPanel configPanel, SkidApplicationClassSource classSource) {
+ this.configPanel = configPanel;
+ this.classSource = classSource;
+ this.gson = new Gson();
+
+ // Initialize library folder
+ String configLibPath = configPanel.getLibraryPath();
+ if (configLibPath != null && !configLibPath.isEmpty()) {
+ this.libraryFolder = Paths.get(configLibPath);
+ } else {
+ this.libraryFolder = Paths.get(System.getProperty("user.home"), ".ssvm", "libs");
+ }
+
+ // Create library folder if it doesn't exist
+ try {
+ Files.createDirectories(libraryFolder);
+ } catch (IOException e) {
+ Skidfuscator.LOGGER.error("Failed to create library folder", e);
+ }
+
+ setLayout(new BorderLayout(10, 10));
+ setBorder(BorderFactory.createCompoundBorder(
+ BorderFactory.createTitledBorder(
+ BorderFactory.createEtchedBorder(EtchedBorder.RAISED),
+ "Libraries",
+ javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION,
+ javax.swing.border.TitledBorder.DEFAULT_POSITION,
+ new Font("Segoe UI", Font.BOLD, 16)
+ ),
+ BorderFactory.createEmptyBorder(20, 10, 10, 10)
+ ));
+
+ // Create library list panel
+ JPanel libraryListPanel = new JPanel(new BorderLayout());
+ libraryListPanel.setBorder(BorderFactory.createTitledBorder("Current Libraries"));
+ libraryModel = new DefaultListModel<>();
+ libraryList = new JList<>(libraryModel);
+ libraryList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
+ JScrollPane libraryScrollPane = new JScrollPane(libraryList);
+ libraryListPanel.add(libraryScrollPane, BorderLayout.CENTER);
+
+ // Create missing classes panel with side panel
+ JPanel missingClassesPanel = new JPanel(new BorderLayout());
+ missingClassesPanel.setBorder(BorderFactory.createTitledBorder("Missing Classes"));
+ missingClassesModel = new DefaultListModel<>();
+ missingClassesList = new JList<>(missingClassesModel);
+ missingClassesList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
+ JScrollPane missingScrollPane = new JScrollPane(missingClassesList);
+ missingClassesPanel.add(missingScrollPane, BorderLayout.CENTER);
+
+ // Create side panel for selected class actions
+ JPanel sidePanel = new JPanel();
+ sidePanel.setLayout(new BoxLayout(sidePanel, BoxLayout.Y_AXIS));
+ sidePanel.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
+ sidePanel.setPreferredSize(new Dimension(120, 0));
+
+ scanSelectedButton = new JButton("Scan Class");
+ scanSelectedButton.setEnabled(false);
+ scanSelectedButton.setAlignmentX(Component.CENTER_ALIGNMENT);
+ scanSelectedButton.addActionListener(e -> {
+ String selectedClass = missingClassesList.getSelectedValue();
+ if (selectedClass != null) {
+ searchMavenCentral(selectedClass, scanSelectedButton);
+ }
+ });
+
+ // Add selection listener to enable/disable scan button
+ missingClassesList.addListSelectionListener(e -> {
+ if (!e.getValueIsAdjusting()) {
+ scanSelectedButton.setEnabled(missingClassesList.getSelectedValue() != null);
+ }
+ });
+
+ sidePanel.add(Box.createVerticalGlue());
+ sidePanel.add(scanSelectedButton);
+ sidePanel.add(Box.createVerticalGlue());
+
+ missingClassesPanel.add(sidePanel, BorderLayout.EAST);
+
+ // Create status panel
+ JPanel statusPanel = new JPanel(new BorderLayout(5, 5));
+ statusPanel.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
+
+ progressBar = new JProgressBar();
+ progressBar.setStringPainted(true);
+ progressBar.setVisible(false);
+
+ statusLabel = new JLabel(" ");
+ statusLabel.setFont(new Font("Segoe UI", Font.PLAIN, 12));
+
+ statusPanel.add(progressBar, BorderLayout.CENTER);
+ statusPanel.add(statusLabel, BorderLayout.SOUTH);
+
+ // Create button panel
+ JPanel buttonPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT));
+ scanButton = new JButton("Scan JAR");
+ scanButton.addActionListener(this::onScanButtonClicked);
+ buttonPanel.add(scanButton);
+
+ // Create split pane for lists
+ JSplitPane splitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT, libraryListPanel, missingClassesPanel);
+ splitPane.setResizeWeight(0.5);
+
+ // Create bottom panel for status and buttons
+ JPanel bottomPanel = new JPanel(new BorderLayout());
+ bottomPanel.add(statusPanel, BorderLayout.CENTER);
+ bottomPanel.add(buttonPanel, BorderLayout.EAST);
+
+ // Add components to panel
+ add(splitPane, BorderLayout.CENTER);
+ add(bottomPanel, BorderLayout.SOUTH);
+ }
+
+ private void setStatus(String message, boolean error) {
+ statusLabel.setText(message);
+ statusLabel.setForeground(error ? new Color(255, 65, 54) : new Color(46, 204, 64));
+ }
+
+ private void refreshLibraryList() {
+ libraryModel.clear();
+ try {
+ Files.list(libraryFolder)
+ .filter(path -> path.toString().endsWith(".jar"))
+ .map(Path::getFileName)
+ .map(Path::toString)
+ .forEach(libraryModel::addElement);
+ } catch (IOException e) {
+ setStatus("Error refreshing library list: " + e.getMessage(), true);
+ }
+ }
+
+ private void onScanButtonClicked(ActionEvent e) {
+ JFileChooser fileChooser = new JFileChooser();
+ fileChooser.setFileFilter(new javax.swing.filechooser.FileFilter() {
+ public boolean accept(File f) {
+ return f.isDirectory() || f.getName().toLowerCase().endsWith(".jar");
+ }
+
+ public String getDescription() {
+ return "JAR files (*.jar)";
+ }
+ });
+
+ if (fileChooser.showOpenDialog(this) == JFileChooser.APPROVE_OPTION) {
+ File selectedFile = fileChooser.getSelectedFile();
+ scanButton.setEnabled(false);
+ progressBar.setVisible(true);
+ progressBar.setIndeterminate(true);
+ setStatus("Scanning JAR file...", false);
+
+ SwingWorker, String> worker = new SwingWorker<>() {
+ @Override
+ protected void done() {
+ try {
+ List missingClasses = get();
+ missingClassesModel.clear();
+ for (String missingClass : missingClasses) {
+ missingClassesModel.addElement(missingClass);
+ }
+ setStatus("Found " + missingClasses.size() + " missing classes", false);
+ } catch (Exception ex) {
+ setStatus("Error scanning JAR: " + ex.getMessage(), true);
+ } finally {
+ scanButton.setEnabled(true);
+ progressBar.setVisible(false);
+ }
+
+ }
+
+ @Override
+ protected void process(List chunks) {
+ // Update status with the latest message
+ if (!chunks.isEmpty()) {
+ setStatus(chunks.get(chunks.size() - 1), false);
+ }
+ }
+
+ @Override
+ protected List doInBackground() throws Exception {
+ publish("Initializing Skidfuscator...");
+ Skidfuscator skidfuscator = new Skidfuscator(SkidfuscatorSession.builder().build());
+
+ publish("Importing JVM classes...");
+ final Set sources = skidfuscator._importJvm();
+
+ publish("Analyzing JAR file...");
+ classSource = new SkidApplicationClassSource(
+ selectedFile.getName(),
+ false,
+ MapleJarUtil.importJar(selectedFile, skidfuscator).getJarContents(),
+ skidfuscator
+ );
+ classSource.addLibraries(sources.toArray(new LibraryClassSource[0]));
+
+ publish("Verifying class tree...");
+ try {
+ classSource.getClassTree().verify();
+ } catch (Exception ex) {
+ // Ignore verification errors as we want to find missing classes
+ }
+
+ return classSource.getClassTree().getMissingClasses();
+ }
+ };
+ worker.execute();
+ }
+ }
+
+ private void searchMavenCentral(String className, JButton sourceButton) {
+ sourceButton.setEnabled(false);
+ progressBar.setVisible(true);
+ setStatus("Searching Maven Central for " + className + "...", false);
+
+ SwingWorker, Void> worker = new SwingWorker<>() {
+ @Override
+ protected List doInBackground() throws Exception {
+ String searchUrl = "https://search.maven.org/solrsearch/select?q=fc:" + URLEncoder.encode(className, StandardCharsets.UTF_8) +
+ "&rows=20&wt=json&core=gav";
+
+ HttpURLConnection connection = (HttpURLConnection) new URL(searchUrl).openConnection();
+ connection.setRequestMethod("GET");
+
+ try (BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()))) {
+ JsonObject response = gson.fromJson(reader, JsonObject.class);
+ JsonObject responseObj = response.getAsJsonObject("response");
+ JsonArray docs = responseObj.getAsJsonArray("docs");
+
+ List artifacts = new ArrayList<>();
+ for (JsonElement doc : docs) {
+ JsonObject artifact = doc.getAsJsonObject();
+ artifacts.add(new MavenArtifact(
+ artifact.get("g").getAsString(),
+ artifact.get("a").getAsString(),
+ artifact.get("v").getAsString()
+ ));
+ }
+ return artifacts;
+ }
+ }
+
+ @Override
+ protected void done() {
+ try {
+ List artifacts = get();
+ if (artifacts.isEmpty()) {
+ setStatus("No artifacts found for " + className, true);
+ } else {
+ MavenArtifact selected = showArtifactSelectionDialog(artifacts);
+ if (selected != null) {
+ downloadLibrary(selected);
+ }
+ }
+ } catch (Exception e) {
+ setStatus("Error searching Maven Central: " + e.getMessage(), true);
+ } finally {
+ sourceButton.setEnabled(true);
+ progressBar.setVisible(false);
+ }
+ }
+ };
+ worker.execute();
+ }
+
+ private static class MavenArtifact {
+ private final String groupId;
+ private final String artifactId;
+ private final String version;
+
+ public MavenArtifact(String groupId, String artifactId, String version) {
+ this.groupId = groupId;
+ this.artifactId = artifactId;
+ this.version = version;
+ }
+
+ @Override
+ public String toString() {
+ return groupId + ":" + artifactId + ":" + version;
+ }
+ }
+
+ private MavenArtifact showArtifactSelectionDialog(List artifacts) {
+ JList list = new JList<>(artifacts.toArray(new MavenArtifact[0]));
+ list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
+ list.setVisibleRowCount(10);
+
+ JScrollPane scrollPane = new JScrollPane(list);
+ scrollPane.setPreferredSize(new Dimension(400, 200));
+
+ int result = JOptionPane.showConfirmDialog(
+ this,
+ scrollPane,
+ "Select Library to Download",
+ JOptionPane.OK_CANCEL_OPTION,
+ JOptionPane.PLAIN_MESSAGE
+ );
+
+ if (result == JOptionPane.OK_OPTION) {
+ return list.getSelectedValue();
+ }
+ return null;
+ }
+
+ private void downloadLibrary(MavenArtifact artifact) {
+ setStatus("Downloading " + artifact + "...", false);
+ progressBar.setVisible(true);
+
+ SwingWorker worker = new SwingWorker<>() {
+ @Override
+ protected Void doInBackground() throws Exception {
+ String mavenUrl = String.format(
+ "https://repo1.maven.org/maven2/%s/%s/%s/%s-%s.jar",
+ artifact.groupId.replace('.', '/'),
+ artifact.artifactId,
+ artifact.version,
+ artifact.artifactId,
+ artifact.version
+ );
+
+ Path outputFile = libraryFolder.resolve(artifact.artifactId + "-" + artifact.version + ".jar");
+ try (InputStream in = new URL(mavenUrl).openStream();
+ OutputStream out = Files.newOutputStream(outputFile)) {
+ byte[] buffer = new byte[8192];
+ int bytesRead;
+ while ((bytesRead = in.read(buffer)) != -1) {
+ out.write(buffer, 0, bytesRead);
+ }
+ }
+
+ // Import the library into the class source
+ GhostLibrary library = GhostHelper.readFromLibraryFile(
+ Skidfuscator.LOGGER,
+ outputFile.toFile()
+ );
+ classSource.importLibrary(outputFile.toFile());
+
+ return null;
+ }
+
+ @Override
+ protected void done() {
+ try {
+ get();
+ setStatus("Successfully downloaded " + artifact, false);
+ refreshLibraryList();
+ updateMissingClasses();
+ } catch (Exception e) {
+ setStatus("Error downloading library: " + e.getMessage(), true);
+ } finally {
+ progressBar.setVisible(false);
+ }
+ }
+ };
+ worker.execute();
+ }
+
+ private void updateMissingClasses() {
+ Set missingClasses = classSource.getMissingClassNames();
+ missingClassesModel.clear();
+ for (String className : missingClasses) {
+ missingClassesModel.addElement(className);
+ }
+ }
+}
\ No newline at end of file
diff --git a/dev.skidfuscator.client.standalone/src/main/java/dev/skidfuscator/obfuscator/gui/MainFrame.java b/dev.skidfuscator.client.standalone/src/main/java/dev/skidfuscator/obfuscator/gui/MainFrame.java
index abcb5d4..75ec0f4 100644
--- a/dev.skidfuscator.client.standalone/src/main/java/dev/skidfuscator/obfuscator/gui/MainFrame.java
+++ b/dev.skidfuscator.client.standalone/src/main/java/dev/skidfuscator/obfuscator/gui/MainFrame.java
@@ -23,6 +23,7 @@ public class MainFrame extends JFrame {
private ConfigPanel configPanel;
private TransformerPanel transformerPanel;
private ConsolePanel consolePanel;
+ private LibrariesPanel librariesPanel;
private JButton startButton;
private JPanel headerPanel;
@@ -172,16 +173,19 @@ public void mouseClicked(MouseEvent e) {
configPanel = new ConfigPanel();
transformerPanel = new TransformerPanel();
consolePanel = new ConsolePanel();
+ librariesPanel = new LibrariesPanel(configPanel, null);
// Add tabs (without content)
tabbedPane.addTab("Configuration", null);
+ tabbedPane.addTab("Libraries", null);
tabbedPane.addTab("Transformers", null);
tabbedPane.addTab("Console", null);
// Set mnemonics
tabbedPane.setMnemonicAt(0, KeyEvent.VK_C);
- tabbedPane.setMnemonicAt(1, KeyEvent.VK_T);
- tabbedPane.setMnemonicAt(2, KeyEvent.VK_O);
+ tabbedPane.setMnemonicAt(1, KeyEvent.VK_L);
+ tabbedPane.setMnemonicAt(2, KeyEvent.VK_T);
+ tabbedPane.setMnemonicAt(3, KeyEvent.VK_O);
// Add components to the left panel
leftPanel.add(tabbedPane, BorderLayout.NORTH);
@@ -206,9 +210,12 @@ public void mouseClicked(MouseEvent e) {
contentPanel.add(configPanel, BorderLayout.CENTER);
break;
case 1:
- contentPanel.add(transformerPanel, BorderLayout.CENTER);
+ contentPanel.add(librariesPanel, BorderLayout.CENTER);
break;
case 2:
+ contentPanel.add(transformerPanel, BorderLayout.CENTER);
+ break;
+ case 3:
contentPanel.add(consolePanel, BorderLayout.CENTER);
break;
}
diff --git a/dev.skidfuscator.client.standalone/src/main/java/dev/skidfuscator/obfuscator/gui/TransformerPanel.java b/dev.skidfuscator.client.standalone/src/main/java/dev/skidfuscator/obfuscator/gui/TransformerPanel.java
index c5ce921..60c80fb 100644
--- a/dev.skidfuscator.client.standalone/src/main/java/dev/skidfuscator/obfuscator/gui/TransformerPanel.java
+++ b/dev.skidfuscator.client.standalone/src/main/java/dev/skidfuscator/obfuscator/gui/TransformerPanel.java
@@ -29,7 +29,7 @@ public TransformerPanel() {
setBorder(BorderFactory.createCompoundBorder(
// Outer titled border
BorderFactory.createTitledBorder(
- BorderFactory.createEtchedBorder(EtchedBorder.RAISED), // Rounded line border with increased arc
+ BorderFactory.createEtchedBorder(EtchedBorder.RAISED),
"Transformers",
javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION,
javax.swing.border.TitledBorder.DEFAULT_POSITION,
@@ -38,13 +38,22 @@ public TransformerPanel() {
// Inner empty border for padding
BorderFactory.createEmptyBorder(20, 0, 10, 0)
));
- // Create transformer sections panel
- JPanel sectionsPanel = new JPanel(new GridLayout(0, 1, 5, 5));
+
+ // Create transformer sections panel with BoxLayout
+ JPanel sectionsPanel = new JPanel();
+ sectionsPanel.setLayout(new BoxLayout(sectionsPanel, BoxLayout.Y_AXIS));
+ sectionsPanel.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
transformerSections = new HashMap<>();
// Initialize transformer sections with their options
initializeTransformerSections(sectionsPanel);
+ // Add rigid areas between sections
+ Component[] components = sectionsPanel.getComponents();
+ for (int i = 0; i < components.length - 1; i++) {
+ sectionsPanel.add(Box.createRigidArea(new Dimension(0, 10)), i * 2 + 1);
+ }
+
// Add sections to a scrollable panel
JScrollPane scrollPane = new JScrollPane(sectionsPanel);
scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
@@ -152,14 +161,20 @@ public TransformerSection(String id, String name,
this.optionComponents = new HashMap<>();
setLayout(new BorderLayout(5, 5));
- setBorder(BorderFactory.createEtchedBorder());
+ setBorder(BorderFactory.createCompoundBorder(
+ BorderFactory.createEmptyBorder(0, 0, 0, 0),
+ BorderFactory.createCompoundBorder(
+ BorderFactory.createRaisedBevelBorder(),
+ BorderFactory.createEmptyBorder(8, 8, 8, 8)
+ )
+ ));
// Create header panel with checkbox and toggle button
JPanel headerPanel = new JPanel(new BorderLayout());
enabledBox = new JCheckBox(name);
enabledBox.setSelected(defaultEnabled);
+ enabledBox.setFont(enabledBox.getFont().deriveFont(Font.BOLD));
- // Add tooltip with description if provided
// Add description if provided
if (description != null && !description.trim().isEmpty()) {
JTextArea descriptionArea = new JTextArea(description);
@@ -173,7 +188,7 @@ public TransformerSection(String id, String name,
// Calculate preferred height based on content
FontMetrics fm = descriptionArea.getFontMetrics(descriptionArea.getFont());
- int availableWidth = 400; // Adjust this value based on your panel width
+ int availableWidth = 400;
int lineHeight = fm.getHeight();
// Create a temporary text area to calculate wrapped height
@@ -204,11 +219,13 @@ public TransformerSection(String id, String name,
if (!options.isEmpty()) {
optionsPanel = new JPanel();
optionsPanel.setLayout(new BoxLayout(optionsPanel, BoxLayout.Y_AXIS));
- optionsPanel.setBorder(BorderFactory.createEmptyBorder(5, 20, 5, 5));
+ optionsPanel.setBorder(BorderFactory.createEmptyBorder(10, 20, 5, 5));
for (TransformerOptionDefinition option : options) {
JPanel optionPanel = createOptionPanel(option);
optionsPanel.add(optionPanel);
+ optionPanel.setMaximumSize(new Dimension(Integer.MAX_VALUE, optionPanel.getPreferredSize().height));
+ optionPanel.setBorder(BorderFactory.createEmptyBorder(2, 0, 2, 0));
}
optionsPanel.setVisible(false);
@@ -216,6 +233,13 @@ public TransformerSection(String id, String name,
} else {
optionsPanel = null;
}
+
+ // Ensure proper initial sizing
+ SwingUtilities.invokeLater(() -> {
+ invalidate();
+ setMaximumSize(new Dimension(Integer.MAX_VALUE, getPreferredSize().height));
+ revalidate();
+ });
}
private JPanel createOptionPanel(TransformerOptionDefinition option) {
@@ -270,8 +294,17 @@ private void toggleOptions() {
optionsVisible = !optionsVisible;
optionsPanel.setVisible(optionsVisible);
toggleButton.setText(optionsVisible ? "▲" : "▼");
+
+ // Update the maximum size of the section
revalidate();
- repaint();
+ setMaximumSize(new Dimension(Integer.MAX_VALUE, getPreferredSize().height));
+
+ // Request parent container to update layout
+ Container parent = getParent();
+ if (parent != null) {
+ parent.revalidate();
+ parent.repaint();
+ }
}
public String getId() {
diff --git a/dev.skidfuscator.obfuscator/skidfuscator-error-aqt.txt b/dev.skidfuscator.obfuscator/skidfuscator-error-aqt.txt
new file mode 100644
index 0000000..762dd4e
--- /dev/null
+++ b/dev.skidfuscator.obfuscator/skidfuscator-error-aqt.txt
@@ -0,0 +1,1576 @@
+handler=Block #DC, types=[Ljava/lang/IllegalStateException;], range=[Block #C, Block #D, Block #F, Block #G, Block #E, Block #I, Block #H]
+handler=Block #DS, types=[Ljavax/crypto/BadPaddingException;, Ljavax/crypto/IllegalBlockSizeException;, Ljavax/crypto/NoSuchPaddingException;, Ljava/security/InvalidKeyException;, Ljava/security/NoSuchAlgorithmException;], range=[Block #C, Block #D, Block #F, Block #G, Block #E, Block #I, Block #H]
+handler=Block #EI, types=[Ljava/io/IOException;], range=[Block #S, Block #R]
+handler=Block #EO, types=[Ljava/lang/RuntimeException;], range=[Block #V, Block #U]
+handler=Block #EU, types=[Ljava/lang/RuntimeException;], range=[Block #Y, Block #X]
+handler=Block #FA, types=[Ljava/io/IOException;], range=[Block #AB, Block #AA]
+handler=Block #FG, types=[Ljava/io/IOException;], range=[Block #AE, Block #AD]
+handler=Block #FM, types=[Ljava/io/IOException;], range=[Block #AH, Block #AG]
+===#Block A(size=8, flags=1)===
+ 0. if ({1669913333 ^ 570551285} != 1099510016)
+ goto BC
+ 1. lvar10 = {1196254623 ^ {1669913333 ^ 570551285}};
+ 2. if (lvar10 != 113530015)
+ goto BB
+ 3. synth(lvar0 = lvar0);
+ 4. lvar18 = "A : var expect: -1";
+ 5. if (java.lang.Character.getNumericValue(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != -1)
+ goto P
+ 6. lvar10 = {1526737688 ^ lvar10};
+ 7. if (lvar10 != 1573158791)
+ goto BG
+ -> ConditionalJump[IF_ICMPNE] #A -> #BG
+ -> Immediate #A -> #B
+ -> ConditionalJump[IF_ICMPNE] #A -> #BC
+ -> ConditionalJump[IF_ICMPNE] #A -> #BB
+ -> ConditionalJump[IF_ICMPNE] #A -> #P
+===#Block BB(size=1, flags=0)===
+ 0. throw new java/io/IOException("Failed to match seed of value 113530015");
+ <- ConditionalJump[IF_ICMPNE] #A -> #BB
+===#Block BC(size=1, flags=0)===
+ 0. throw new java/io/IOException(new java/lang/StringBuilder("Failed to match entry seed of value 1099510016 of entry public: 1244090311 and private: 1099510016 and value: ").append({1669913333 ^ 570551285}).toString());
+ <- ConditionalJump[IF_ICMPNE] #A -> #BC
+===#Block B(size=2, flags=0)===
+ 0. lvar10 = {1400647847 ^ lvar10};
+ 1. if (lvar10 != 246959904)
+ goto BF
+ -> Immediate #B -> #C
+ -> ConditionalJump[IF_ICMPNE] #B -> #BF
+ <- Immediate #A -> #B
+===#Block BF(size=1, flags=0)===
+ 0. throw new java/lang/RuntimeException(new java/lang/StringBuilder("B --> C # Failed to match seed of type Immediate and value 246959904 and got ").append(lvar10).toString());
+ <- ConditionalJump[IF_ICMPNE] #B -> #BF
+===#Block C(size=9, flags=0)===
+ 0. _consume(dev.skidfuscator.testclasses.opaque.OpaqueConditionClazz$AES.main(new java.lang.String[{246959904 ^ lvar10}]));
+ 1. lvar142 = "[Constant] 0 -> 246959904 predicate=246959904";
+ 2. if (dev.skidfuscator.testclasses.exclusion.ObfuscatedTestClass.data[{246959904 ^ lvar10}] != {246959904 ^ lvar10})
+ goto CS
+ 3. lvar146 = "[Constant] 0 -> 246959904 predicate=246959904";
+ 4. lvar144 = "[Constant] 0 -> 246959904 predicate=246959904";
+ 5. lvar22 = "C : var expect: 1307126627";
+ 6. if (java.lang.Math.subtractExact(1517175641, pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != 1307126627)
+ goto AL
+ 7. lvar10 = {194004768 ^ lvar10};
+ 8. if (lvar10 != 86509568)
+ goto BH
+ -> ConditionalJump[IF_ICMPNE] #C -> #CS
+ -> ConditionalJump[IF_ICMPNE] #C -> #AL
+ -> TryCatch range: [C...H] -> DS ([Ljavax/crypto/BadPaddingException;, Ljavax/crypto/IllegalBlockSizeException;, Ljavax/crypto/NoSuchPaddingException;, Ljava/security/InvalidKeyException;, Ljava/security/NoSuchAlgorithmException;])
+ -> Immediate #C -> #D
+ -> TryCatch range: [C...H] -> DC ([Ljava/lang/IllegalStateException;])
+ -> ConditionalJump[IF_ICMPNE] #C -> #BH
+ <- Immediate #B -> #C
+===#Block BH(size=1, flags=0)===
+ 0. throw new java/lang/RuntimeException(new java/lang/StringBuilder("C --> D # Failed to match seed of type Immediate and value 86509568 and got ").append(lvar10).toString());
+ <- ConditionalJump[IF_ICMPNE] #C -> #BH
+===#Block D(size=5, flags=0)===
+ 0. svar12 = {dev.skidfuscator.testclasses.exclusion.ObfuscatedTestClass.data[{86509569 ^ lvar10}] ^ lvar10};
+ 1. lvar102 = "[Constant] 1 -> 86509569 predicate=86509568";
+ 2. switch (pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(svar12)) {
+ case 81101480:
+ goto #CW
+ default:
+ goto #CZ
+ }
+ 3. lvar56 = "D : var expect: 1717058136";
+ 4. if (java.lang.Math.max(1717058136, pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != 1717058136)
+ goto AU
+ -> DefaultSwitch #D -> #CZ
+ -> TryCatch range: [C...H] -> DS ([Ljavax/crypto/BadPaddingException;, Ljavax/crypto/IllegalBlockSizeException;, Ljavax/crypto/NoSuchPaddingException;, Ljava/security/InvalidKeyException;, Ljava/security/NoSuchAlgorithmException;])
+ -> Switch[81101480] #D -> #CW
+ -> ConditionalJump[IF_ICMPNE] #D -> #AU
+ -> TryCatch range: [C...H] -> DC ([Ljava/lang/IllegalStateException;])
+ <- Immediate #C -> #D
+===#Block CW(size=3, flags=10100)===
+ 0. switch (pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) {
+ case 81101480:
+ goto #CX
+ case 436382735:
+ goto #CW
+ case 1361632897:
+ goto #AK
+ case 1930659738:
+ goto #G
+ default:
+ goto #AK
+ }
+ 1. lvar202 = "D -> G : c-loc - switch : 782781551";
+ 2. if (lvar10 != 782781551)
+ goto CY
+ -> Switch[1930659738] #CW -> #G
+ -> Switch[81101480] #CW -> #CX
+ -> DefaultSwitch #CW -> #AK
+ -> Immediate #CW -> #CX
+ -> Switch[436382735] #CW -> #CW
+ -> Switch[1361632897] #CW -> #AK
+ -> ConditionalJump[IF_ICMPNE] #CW -> #CY
+ <- Switch[436382735] #CW -> #CW
+ <- Switch[81101480] #D -> #CW
+===#Block CY(size=1, flags=0)===
+ 0. throw new java/io/IOException("CW --> G # Failed to match seed of type Switch Entry [81101480, og:G, redirected: CW) and value 782781551");
+ <- ConditionalJump[IF_ICMPNE] #CW -> #CY
+===#Block CX(size=2, flags=100)===
+ 0. lvar10 = {729826415 ^ lvar10};
+ 1. goto G
+ -> UnconditionalJump[GOTO] #CX -> #G
+ <- Switch[81101480] #CW -> #CX
+ <- Immediate #CW -> #CX
+===#Block G(size=6, flags=0)===
+ 0. lvar7 = {782781548 ^ lvar10};
+ 1. lvar124 = "[Constant] 3 -> 782781548 predicate=782781551";
+ 2. lvar74 = "G : var expect: 174471872";
+ 3. if (java.lang.Math.incrementExact(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != 174471872)
+ goto AP
+ 4. lvar180 = "G -> AE : c-loc - uncond : 1583902757";
+ 5. goto BW
+ -> TryCatch range: [C...H] -> DS ([Ljavax/crypto/BadPaddingException;, Ljavax/crypto/IllegalBlockSizeException;, Ljavax/crypto/NoSuchPaddingException;, Ljava/security/InvalidKeyException;, Ljava/security/NoSuchAlgorithmException;])
+ -> ConditionalJump[IF_ICMPNE] #G -> #AP
+ -> UnconditionalJump[GOTO] #G -> #BW
+ -> TryCatch range: [C...H] -> DC ([Ljava/lang/IllegalStateException;])
+ <- Switch[1930659738] #CW -> #G
+ <- UnconditionalJump[GOTO] #CX -> #G
+===#Block BW(size=3, flags=10100)===
+ 0. lvar10 = {1891646538 ^ lvar10};
+ 1. if (lvar10 != 1583902757)
+ goto BX
+ 2. goto AE
+ -> ConditionalJump[IF_ICMPNE] #BW -> #BX
+ -> UnconditionalJump[GOTO] #BW -> #AE
+ <- UnconditionalJump[GOTO] #G -> #BW
+===#Block AE(size=4, flags=0)===
+ 0. if (pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10) == 116000559)
+ goto AD
+ 1. throw nullconst;
+ 2. lvar52 = "AE : var expect: 0";
+ 3. if (java.lang.Math.floorDiv(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10), 740656974) != 0)
+ goto AP
+ -> ConditionalJump[IFNE] #AE -> #AP
+ -> TryCatch range: [AE...AD] -> FG ([Ljava/io/IOException;])
+ -> ConditionalJump[IF_ICMPEQ] #AE -> #AD
+ <- UnconditionalJump[GOTO] #BW -> #AE
+===#Block AD(size=3, flags=0)===
+ 0. throw new java/io/IOException();
+ 1. lvar64 = "AD : var expect: 672834169";
+ 2. if (java.lang.StrictMath.floorMod(6909346245057239445L, 1346717428) != 672834169)
+ goto AJ
+ -> TryCatch range: [AE...AD] -> FG ([Ljava/io/IOException;])
+ -> ConditionalJump[IF_ICMPNE] #AD -> #AJ
+ <- ConditionalJump[IF_ICMPEQ] #AE -> #AD
+===#Block FG(size=1, flags=0)===
+ 0. switch (pslmxlxlobvpuknt.ycljuptvbdeihrjh.kdjdykfpmferaltc(lvar10)) {
+ case -2042935784:
+ goto #FJ
+ case -213679830:
+ goto #FH
+ default:
+ goto #FL
+ }
+ -> DefaultSwitch #FG -> #FL
+ -> Switch[-213679830] #FG -> #FH
+ -> Switch[-2042935784] #FG -> #FJ
+ <- TryCatch range: [AE...AD] -> FG ([Ljava/io/IOException;])
+ <- TryCatch range: [AE...AD] -> FG ([Ljava/io/IOException;])
+===#Block FJ(size=3, flags=10100)===
+ 0. lvar10 = {1794185766 ^ lvar10};
+ 1. if (lvar10 != 2050388709)
+ goto FK
+ 2. goto AF
+ -> ConditionalJump[IF_ICMPNE] #FJ -> #FK
+ -> UnconditionalJump[GOTO] #FJ -> #AF
+ <- Switch[-2042935784] #FG -> #FJ
+===#Block FK(size=1, flags=0)===
+ 0. throw new java/io/IOException("FJ --> AF # Failed to match seed of type Exception Range [Ljava/io/IOException;] and value 2050388709");
+ <- ConditionalJump[IF_ICMPNE] #FJ -> #FK
+===#Block FH(size=3, flags=10100)===
+ 0. lvar10 = {610140864 ^ lvar10};
+ 1. if (lvar10 != 2050388709)
+ goto FI
+ 2. goto AF
+ -> UnconditionalJump[GOTO] #FH -> #AF
+ -> ConditionalJump[IF_ICMPNE] #FH -> #FI
+ <- Switch[-213679830] #FG -> #FH
+===#Block FI(size=1, flags=0)===
+ 0. throw new java/io/IOException("FH --> AF # Failed to match seed of type Exception Range [Ljava/io/IOException;] and value 2050388709");
+ <- ConditionalJump[IF_ICMPNE] #FH -> #FI
+===#Block AF(size=5, flags=0)===
+ 0. _consume(catch());
+ 1. lvar46 = "AF : var expect: 1";
+ 2. if (java.lang.Math.floorDiv(304399280, pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != 1)
+ goto AJ
+ 3. lvar190 = "AF -> H : c-loc - uncond : 1222503257";
+ 4. goto CH
+ -> ConditionalJump[IF_ICMPNE] #AF -> #AJ
+ -> UnconditionalJump[GOTO] #AF -> #CH
+ <- UnconditionalJump[GOTO] #FH -> #AF
+ <- UnconditionalJump[GOTO] #FJ -> #AF
+===#Block CH(size=2, flags=10100)===
+ 0. switch (pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) {
+ case 214500525:
+ goto #CI
+ case 797469252:
+ goto #CH
+ case 1556428803:
+ goto #H
+ case 1956248668:
+ goto #AO
+ default:
+ goto #AO
+ }
+ 1. if (lvar10 != 1222503257)
+ goto CJ
+ -> Switch[797469252] #CH -> #CH
+ -> Switch[1556428803] #CH -> #H
+ -> Switch[214500525] #CH -> #CI
+ -> ConditionalJump[IF_ICMPNE] #CH -> #CJ
+ -> Immediate #CH -> #CI
+ -> DefaultSwitch #CH -> #AO
+ -> Switch[1956248668] #CH -> #AO
+ <- Switch[797469252] #CH -> #CH
+ <- UnconditionalJump[GOTO] #AF -> #CH
+===#Block CJ(size=1, flags=0)===
+ 0. throw new java/lang/RuntimeException("CH --> H # Failed to match seed of type Unconditional and value 1222503257");
+ <- ConditionalJump[IF_ICMPNE] #CH -> #CJ
+===#Block CI(size=2, flags=100)===
+ 0. lvar10 = {854301116 ^ lvar10};
+ 1. goto H
+ -> UnconditionalJump[GOTO] #CI -> #H
+ <- Switch[214500525] #CH -> #CI
+ <- Immediate #CH -> #CI
+===#Block FL(size=1, flags=0)===
+ 0. throw new java/lang/IllegalAccessException("Error in hash");
+ <- DefaultSwitch #FG -> #FL
+===#Block BX(size=1, flags=0)===
+ 0. throw new java/lang/RuntimeException("BW --> AE # Failed to match seed of type Unconditional and value 1583902757");
+ <- ConditionalJump[IF_ICMPNE] #BW -> #BX
+===#Block CZ(size=3, flags=10100)===
+ 0. switch (pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) {
+ case 81101480:
+ goto #DA
+ case 434280524:
+ goto #E
+ case 1076723261:
+ goto #AX
+ case 2020439650:
+ goto #CZ
+ default:
+ goto #AX
+ }
+ 1. lvar204 = "D -> E : c-loc - switch : 1380444821";
+ 2. if (lvar10 != 1380444821)
+ goto DB
+ -> Switch[434280524] #CZ -> #E
+ -> DefaultSwitch #CZ -> #AX
+ -> Switch[81101480] #CZ -> #DA
+ -> Switch[1076723261] #CZ -> #AX
+ -> ConditionalJump[IF_ICMPNE] #CZ -> #DB
+ -> Immediate #CZ -> #DA
+ -> Switch[2020439650] #CZ -> #CZ
+ <- DefaultSwitch #D -> #CZ
+ <- Switch[2020439650] #CZ -> #CZ
+===#Block DB(size=1, flags=0)===
+ 0. throw new java/lang/RuntimeException("CZ --> E # Failed to match seed of type Switch Default and value 1380444821");
+ <- ConditionalJump[IF_ICMPNE] #CZ -> #DB
+===#Block DA(size=2, flags=100)===
+ 0. lvar10 = {1466950293 ^ lvar10};
+ 1. goto E
+ -> UnconditionalJump[GOTO] #DA -> #E
+ <- Switch[81101480] #CZ -> #DA
+ <- Immediate #CZ -> #DA
+===#Block E(size=6, flags=0)===
+ 0. lvar7 = {-1380444818 ^ lvar10};
+ 1. lvar104 = "[Constant] -5 -> -1380444818 predicate=1380444821";
+ 2. lvar58 = "E : var expect: 4";
+ 3. if (java.lang.Integer.numberOfLeadingZeros(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != 4)
+ goto AQ
+ 4. lvar178 = "E -> AB : c-loc - uncond : 1308503856";
+ 5. goto BT
+ -> ConditionalJump[IF_ICMPNE] #E -> #AQ
+ -> UnconditionalJump[GOTO] #E -> #BT
+ -> TryCatch range: [C...H] -> DC ([Ljava/lang/IllegalStateException;])
+ -> TryCatch range: [C...H] -> DS ([Ljavax/crypto/BadPaddingException;, Ljavax/crypto/IllegalBlockSizeException;, Ljavax/crypto/NoSuchPaddingException;, Ljava/security/InvalidKeyException;, Ljava/security/NoSuchAlgorithmException;])
+ <- Switch[434280524] #CZ -> #E
+ <- UnconditionalJump[GOTO] #DA -> #E
+===#Block BT(size=2, flags=10100)===
+ 0. switch (pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) {
+ case 258671815:
+ goto #BU
+ case 652348198:
+ goto #AB
+ case 1109282923:
+ goto #BT
+ case 1824729686:
+ goto #AL
+ default:
+ goto #AL
+ }
+ 1. if (lvar10 != 1308503856)
+ goto BV
+ -> DefaultSwitch #BT -> #AL
+ -> Switch[1824729686] #BT -> #AL
+ -> Switch[652348198] #BT -> #AB
+ -> Switch[258671815] #BT -> #BU
+ -> Switch[1109282923] #BT -> #BT
+ -> ConditionalJump[IF_ICMPNE] #BT -> #BV
+ -> Immediate #BT -> #BU
+ <- UnconditionalJump[GOTO] #E -> #BT
+ <- Switch[1109282923] #BT -> #BT
+===#Block BV(size=1, flags=0)===
+ 0. throw new java/lang/RuntimeException("BT --> AB # Failed to match seed of type Unconditional and value 1308503856");
+ <- ConditionalJump[IF_ICMPNE] #BT -> #BV
+===#Block BU(size=2, flags=100)===
+ 0. lvar10 = {532268453 ^ lvar10};
+ 1. goto AB
+ -> UnconditionalJump[GOTO] #BU -> #AB
+ <- Switch[258671815] #BT -> #BU
+ <- Immediate #BT -> #BU
+===#Block AB(size=4, flags=0)===
+ 0. if (pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10) == 119289491)
+ goto AA
+ 1. throw nullconst;
+ 2. lvar72 = "AB : var expect: 119289491";
+ 3. if (java.lang.Math.absExact(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != 119289491)
+ goto AZ
+ -> ConditionalJump[IF_ICMPNE] #AB -> #AZ
+ -> ConditionalJump[IF_ICMPEQ] #AB -> #AA
+ -> TryCatch range: [AB...AA] -> FA ([Ljava/io/IOException;])
+ <- Switch[652348198] #BT -> #AB
+ <- UnconditionalJump[GOTO] #BU -> #AB
+===#Block AA(size=3, flags=0)===
+ 0. throw new java/io/IOException();
+ 1. lvar24 = "AA : var expect: -2115371073";
+ 2. if (java.lang.Integer.sum(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10), 2092181537) != -2115371073)
+ goto AJ
+ -> ConditionalJump[IF_ICMPNE] #AA -> #AJ
+ -> TryCatch range: [AB...AA] -> FA ([Ljava/io/IOException;])
+ <- ConditionalJump[IF_ICMPEQ] #AB -> #AA
+===#Block FA(size=1, flags=0)===
+ 0. switch (pslmxlxlobvpuknt.ycljuptvbdeihrjh.kdjdykfpmferaltc(lvar10)) {
+ case 499515553:
+ goto #FD
+ case 1878096258:
+ goto #FB
+ default:
+ goto #FF
+ }
+ -> DefaultSwitch #FA -> #FF
+ -> Switch[1878096258] #FA -> #FB
+ -> Switch[499515553] #FA -> #FD
+ <- TryCatch range: [AB...AA] -> FA ([Ljava/io/IOException;])
+ <- TryCatch range: [AB...AA] -> FA ([Ljava/io/IOException;])
+===#Block FD(size=3, flags=10100)===
+ 0. lvar10 = {1469840107 ^ lvar10};
+ 1. if (lvar10 != 1948465919)
+ goto FE
+ 2. goto AC
+ -> UnconditionalJump[GOTO] #FD -> #AC
+ -> ConditionalJump[IF_ICMPNE] #FD -> #FE
+ <- Switch[499515553] #FA -> #FD
+===#Block FE(size=1, flags=0)===
+ 0. throw new java/lang/RuntimeException("FD --> AC # Failed to match seed of type Exception Range [Ljava/io/IOException;] and value 1948465919");
+ <- ConditionalJump[IF_ICMPNE] #FD -> #FE
+===#Block FB(size=3, flags=10100)===
+ 0. lvar10 = {970790351 ^ lvar10};
+ 1. if (lvar10 != 1948465919)
+ goto FC
+ 2. goto AC
+ -> UnconditionalJump[GOTO] #FB -> #AC
+ -> ConditionalJump[IF_ICMPNE] #FB -> #FC
+ <- Switch[1878096258] #FA -> #FB
+===#Block FC(size=1, flags=0)===
+ 0. throw new java/io/IOException("FB --> AC # Failed to match seed of type Exception Range [Ljava/io/IOException;] and value 1948465919");
+ <- ConditionalJump[IF_ICMPNE] #FB -> #FC
+===#Block AC(size=5, flags=0)===
+ 0. _consume(catch());
+ 1. lvar50 = "AC : var expect: 0";
+ 2. if (java.lang.Integer.numberOfTrailingZeros(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != 0)
+ goto AS
+ 3. lvar176 = "AC -> H : c-loc - uncond : 1222503257";
+ 4. goto BQ
+ -> ConditionalJump[IFNE] #AC -> #AS
+ -> UnconditionalJump[GOTO] #AC -> #BQ
+ <- UnconditionalJump[GOTO] #FD -> #AC
+ <- UnconditionalJump[GOTO] #FB -> #AC
+===#Block BQ(size=2, flags=10100)===
+ 0. switch (pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) {
+ case 17053293:
+ goto #BR
+ case 998948756:
+ goto #BQ
+ case 1806318142:
+ goto #AQ
+ case 2103995655:
+ goto #H
+ default:
+ goto #AQ
+ }
+ 1. if (lvar10 != 1222503257)
+ goto BS
+ -> Switch[998948756] #BQ -> #BQ
+ -> Switch[2103995655] #BQ -> #H
+ -> Switch[17053293] #BQ -> #BR
+ -> Immediate #BQ -> #BR
+ -> Switch[1806318142] #BQ -> #AQ
+ -> DefaultSwitch #BQ -> #AQ
+ -> ConditionalJump[IF_ICMPNE] #BQ -> #BS
+ <- Switch[998948756] #BQ -> #BQ
+ <- UnconditionalJump[GOTO] #AC -> #BQ
+===#Block BS(size=1, flags=0)===
+ 0. throw new java/io/IOException("BQ --> H # Failed to match seed of type Unconditional and value 1222503257");
+ <- ConditionalJump[IF_ICMPNE] #BQ -> #BS
+===#Block BR(size=2, flags=100)===
+ 0. lvar10 = {1023332774 ^ lvar10};
+ 1. goto H
+ -> UnconditionalJump[GOTO] #BR -> #H
+ <- Switch[17053293] #BQ -> #BR
+ <- Immediate #BQ -> #BR
+===#Block H(size=6, flags=0)===
+ 0. _consume(lvar0.self(lvar7, 1388402073));
+ 1. lvar2 = new java.lang.IllegalArgumentException;
+ 2. _consume(lvar2.(dynamic_invoke(java.lang.invoke.StringConcatFactory.makeConcatWithConstants("Failed test! Stage: ", lvar7))));
+ 3. throw lvar2;
+ 4. lvar54 = "H : var expect: -221101857";
+ 5. if (java.lang.StrictMath.negateExact(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != -221101857)
+ goto AT
+ -> TryCatch range: [C...H] -> DC ([Ljava/lang/IllegalStateException;])
+ -> ConditionalJump[IF_ICMPNE] #H -> #AT
+ -> TryCatch range: [C...H] -> DS ([Ljavax/crypto/BadPaddingException;, Ljavax/crypto/IllegalBlockSizeException;, Ljavax/crypto/NoSuchPaddingException;, Ljava/security/InvalidKeyException;, Ljava/security/NoSuchAlgorithmException;])
+ <- Switch[1556428803] #CH -> #H
+ <- UnconditionalJump[GOTO] #CI -> #H
+ <- Switch[2103995655] #BQ -> #H
+ <- Switch[665344099] #CA -> #H
+ <- UnconditionalJump[GOTO] #CB -> #H
+ <- UnconditionalJump[GOTO] #BR -> #H
+===#Block AS(size=6, flags=0)===
+ 0. throw new java/lang/IllegalAccessException("Failed to proper vm");
+ 1. if (java.lang.Integer.numberOfTrailingZeros(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != 0)
+ goto AS
+ 2. if (java.lang.Integer.numberOfTrailingZeros(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != {2126190611 ^ lvar10})
+ goto AS
+ 3. lvar100 = "[Constant] 1533136363 -> 2126190611 predicate=635098616";
+ 4. _consume({1372789340 ^ lvar10});
+ 5. throw new java/lang/IllegalAccessException("double");
+ -> ConditionalJump[IFNE] #AS -> #AS
+ <- ConditionalJump[IFNE] #AC -> #AS
+ <- ConditionalJump[IFNE] #AS -> #AS
+===#Block FF(size=1, flags=0)===
+ 0. throw new java/io/IOException("Error in hash");
+ <- DefaultSwitch #FA -> #FF
+===#Block AZ(size=6, flags=0)===
+ 0. throw new java/lang/IllegalAccessException("Failed to proper vm");
+ 1. if (java.lang.Math.absExact(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != 119289491)
+ goto AZ
+ 2. if (java.lang.Math.absExact(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != {1415843332 ^ lvar10})
+ goto AZ
+ 3. lvar134 = "[Constant] 240830319 -> 1415843332 predicate=1514064235";
+ 4. _consume({213937309 ^ lvar10});
+ 5. throw new java/lang/RuntimeException("double");
+ -> ConditionalJump[IF_ICMPNE] #AZ -> #AZ
+ <- ConditionalJump[IF_ICMPNE] #AB -> #AZ
+ <- ConditionalJump[IF_ICMPNE] #AZ -> #AZ
+===#Block CS(size=4, flags=10100)===
+ 0. lvar10 = {48794680 ^ lvar10};
+ 1. lvar198 = "C -> O : c-loc - cond : 206619416";
+ 2. if (lvar10 != 206619416)
+ goto CT
+ 3. goto O
+ -> UnconditionalJump[GOTO] #CS -> #O
+ -> ConditionalJump[IF_ICMPNE] #CS -> #CT
+ <- ConditionalJump[IF_ICMPNE] #C -> #CS
+===#Block CT(size=1, flags=0)===
+ 0. throw new java/lang/RuntimeException("CS --> O # Failed to match seed of type Conditional and value 206619416");
+ <- ConditionalJump[IF_ICMPNE] #CS -> #CT
+===#Block O(size=5, flags=0)===
+ 0. if (java.lang.Integer.highestOneBit(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) == 67108864)
+ goto CU
+ 1. lvar78 = "O : var expect: 0";
+ 2. if (java.lang.Integer.divideUnsigned(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10), 717799781) != 0)
+ goto AT
+ 3. lvar192 = "O -> AH : c-loc - uncond : 151985521";
+ 4. goto CK
+ -> ConditionalJump[IF_ICMPEQ] #O -> #CU
+ -> UnconditionalJump[GOTO] #O -> #CK
+ -> ConditionalJump[IFNE] #O -> #AT
+ <- UnconditionalJump[GOTO] #CS -> #O
+===#Block AT(size=11, flags=0)===
+ 0. throw new java/lang/RuntimeException("Failed to proper vm");
+ 1. if (java.lang.Integer.divideUnsigned(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10), 717799781) != 0)
+ goto AT
+ 2. if (java.lang.Integer.divideUnsigned(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10), 717799781) != {1875980090 ^ lvar10})
+ goto AT
+ 3. lvar118 = "[Constant] 1565228851 -> 1875980090 predicate=848973833";
+ 4. _consume({1279866343 ^ lvar10});
+ 5. throw new java/lang/IllegalAccessException("Failed to proper vm");
+ 6. if (java.lang.StrictMath.negateExact(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != -221101857)
+ goto AT
+ 7. if (java.lang.StrictMath.negateExact(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != {1435161180 ^ lvar10})
+ goto AT
+ 8. lvar120 = "[Constant] 1729135189 -> 1435161180 predicate=848973833";
+ 9. _consume({1670266440 ^ lvar10});
+ 10. throw new java/lang/IllegalAccessException("double");
+ -> ConditionalJump[IFNE] #AT -> #AT
+ <- ConditionalJump[IFNE] #AT -> #AT
+ <- ConditionalJump[IFNE] #O -> #AT
+ <- ConditionalJump[IF_ICMPNE] #H -> #AT
+===#Block CK(size=3, flags=10100)===
+ 0. lvar10 = dev.skidfuscator.testclasses.exclusion.ObfuscatedTestClass.gvprfwvilxtnyjar(lvar10, 90168937);
+ 1. if (lvar10 != 151985521)
+ goto CL
+ 2. goto AH
+ -> UnconditionalJump[GOTO] #CK -> #AH
+ -> ConditionalJump[IF_ICMPNE] #CK -> #CL
+ <- UnconditionalJump[GOTO] #O -> #CK
+===#Block CL(size=1, flags=0)===
+ 0. throw new java/io/IOException("CK --> AH # Failed to match seed of type Unconditional and value 151985521");
+ <- ConditionalJump[IF_ICMPNE] #CK -> #CL
+===#Block AH(size=4, flags=0)===
+ 0. if (pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10) == 26034181)
+ goto AG
+ 1. throw nullconst;
+ 2. lvar28 = "AH : var expect: 26034181";
+ 3. if (java.lang.Math.absExact(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != 26034181)
+ goto AN
+ -> TryCatch range: [AH...AG] -> FM ([Ljava/io/IOException;])
+ -> ConditionalJump[IF_ICMPNE] #AH -> #AN
+ -> ConditionalJump[IF_ICMPEQ] #AH -> #AG
+ <- UnconditionalJump[GOTO] #CK -> #AH
+===#Block AG(size=3, flags=0)===
+ 0. throw new java/io/IOException();
+ 1. lvar66 = "AG : var expect: 96268669";
+ 2. if (java.lang.Character.toLowerCase(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != 96268669)
+ goto AX
+ -> TryCatch range: [AH...AG] -> FM ([Ljava/io/IOException;])
+ -> ConditionalJump[IF_ICMPNE] #AG -> #AX
+ <- ConditionalJump[IF_ICMPEQ] #AH -> #AG
+===#Block AX(size=6, flags=0)===
+ 0. throw new java/lang/IllegalAccessException("Failed to proper vm");
+ 1. if (java.lang.Character.toLowerCase(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != 96268669)
+ goto AX
+ 2. if (java.lang.Character.toLowerCase(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != {1217868518 ^ lvar10})
+ goto AX
+ 3. lvar122 = "[Constant] 800241795 -> 1217868518 predicate=1730513509";
+ 4. _consume({2124593970 ^ lvar10});
+ 5. throw new java/lang/IllegalAccessException("double");
+ -> ConditionalJump[IF_ICMPNE] #AX -> #AX
+ <- ConditionalJump[IF_ICMPNE] #AX -> #AX
+ <- DefaultSwitch #CZ -> #AX
+ <- Switch[1076723261] #CZ -> #AX
+ <- ConditionalJump[IF_ICMPNE] #AG -> #AX
+===#Block FM(size=1, flags=0)===
+ 0. switch (pslmxlxlobvpuknt.ycljuptvbdeihrjh.kdjdykfpmferaltc(lvar10)) {
+ case 813043267:
+ goto #FP
+ case 1215884168:
+ goto #FN
+ default:
+ goto #FR
+ }
+ -> DefaultSwitch #FM -> #FR
+ -> Switch[813043267] #FM -> #FP
+ -> Switch[1215884168] #FM -> #FN
+ <- TryCatch range: [AH...AG] -> FM ([Ljava/io/IOException;])
+ <- TryCatch range: [AH...AG] -> FM ([Ljava/io/IOException;])
+===#Block FN(size=3, flags=10100)===
+ 0. lvar10 = {217279881 ^ lvar10};
+ 1. if (lvar10 != 100430072)
+ goto FO
+ 2. goto AI
+ -> ConditionalJump[IF_ICMPNE] #FN -> #FO
+ -> UnconditionalJump[GOTO] #FN -> #AI
+ <- Switch[1215884168] #FM -> #FN
+===#Block FO(size=1, flags=0)===
+ 0. throw new java/lang/IllegalAccessException("FN --> AI # Failed to match seed of type Exception Range [Ljava/io/IOException;] and value 100430072");
+ <- ConditionalJump[IF_ICMPNE] #FN -> #FO
+===#Block FP(size=3, flags=10100)===
+ 0. lvar10 = dev.skidfuscator.testclasses.exclusion.ObfuscatedTestClass.gvprfwvilxtnyjar(lvar10, 1676849456);
+ 1. if (lvar10 != 100430072)
+ goto FQ
+ 2. goto AI
+ -> ConditionalJump[IF_ICMPNE] #FP -> #FQ
+ -> UnconditionalJump[GOTO] #FP -> #AI
+ <- Switch[813043267] #FM -> #FP
+===#Block AI(size=5, flags=0)===
+ 0. _consume(catch());
+ 1. lvar40 = "AI : var expect: 0";
+ 2. if (java.lang.Character.getType(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != 0)
+ goto AQ
+ 3. lvar174 = "AI -> P : c-loc - uncond : 825727288";
+ 4. goto BN
+ -> UnconditionalJump[GOTO] #AI -> #BN
+ -> ConditionalJump[IFNE] #AI -> #AQ
+ <- UnconditionalJump[GOTO] #FN -> #AI
+ <- UnconditionalJump[GOTO] #FP -> #AI
+===#Block AQ(size=11, flags=0)===
+ 0. throw new java/io/IOException("Failed to proper vm");
+ 1. if (java.lang.Integer.numberOfLeadingZeros(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != 4)
+ goto AQ
+ 2. if (java.lang.Integer.numberOfLeadingZeros(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != {1721181494 ^ lvar10})
+ goto AQ
+ 3. lvar168 = "[Constant] 1091931915 -> 1721181494 predicate=662874685";
+ 4. _consume({1424722734 ^ lvar10});
+ 5. throw new java/lang/IllegalAccessException("Failed to proper vm");
+ 6. if (java.lang.Character.getType(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != 0)
+ goto AQ
+ 7. if (java.lang.Character.getType(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != {1208442658 ^ lvar10})
+ goto AQ
+ 8. lvar166 = "[Constant] 1871050015 -> 1208442658 predicate=662874685";
+ 9. _consume({144412276 ^ lvar10});
+ 10. throw new java/lang/RuntimeException("double");
+ -> ConditionalJump[IF_ICMPNE] #AQ -> #AQ
+ <- ConditionalJump[IF_ICMPNE] #E -> #AQ
+ <- ConditionalJump[IFNE] #AI -> #AQ
+ <- ConditionalJump[IF_ICMPNE] #AQ -> #AQ
+ <- Switch[1806318142] #BQ -> #AQ
+ <- DefaultSwitch #BQ -> #AQ
+===#Block BN(size=2, flags=10100)===
+ 0. switch (pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) {
+ case 94153748:
+ goto #BO
+ case 198633181:
+ goto #AU
+ case 262085016:
+ goto #P
+ case 2071517964:
+ goto #BN
+ default:
+ goto #AU
+ }
+ 1. if (lvar10 != 825727288)
+ goto BP
+ -> Switch[262085016] #BN -> #P
+ -> Switch[2071517964] #BN -> #BN
+ -> Immediate #BN -> #BO
+ -> ConditionalJump[IF_ICMPNE] #BN -> #BP
+ -> DefaultSwitch #BN -> #AU
+ -> Switch[94153748] #BN -> #BO
+ -> Switch[198633181] #BN -> #AU
+ <- UnconditionalJump[GOTO] #AI -> #BN
+ <- Switch[2071517964] #BN -> #BN
+===#Block AU(size=6, flags=0)===
+ 0. throw new java/io/IOException("Failed to proper vm");
+ 1. if (java.lang.Math.max(1717058136, pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != 1717058136)
+ goto AU
+ 2. if (java.lang.Math.max(1717058136, pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != {135912782 ^ lvar10})
+ goto AU
+ 3. lvar82 = "[Constant] 224589921 -> 135912782 predicate=91956527";
+ 4. _consume({1938054222 ^ lvar10});
+ 5. throw new java/lang/IllegalAccessException("double");
+ -> ConditionalJump[IF_ICMPNE] #AU -> #AU
+ <- ConditionalJump[IF_ICMPNE] #D -> #AU
+ <- ConditionalJump[IF_ICMPNE] #AU -> #AU
+ <- DefaultSwitch #BN -> #AU
+ <- Switch[198633181] #BN -> #AU
+===#Block BP(size=1, flags=0)===
+ 0. throw new java/io/IOException("BN --> P # Failed to match seed of type Unconditional and value 825727288");
+ <- ConditionalJump[IF_ICMPNE] #BN -> #BP
+===#Block BO(size=2, flags=100)===
+ 0. lvar10 = {885778880 ^ lvar10};
+ 1. goto P
+ -> UnconditionalJump[GOTO] #BO -> #P
+ <- Immediate #BN -> #BO
+ <- Switch[94153748] #BN -> #BO
+===#Block FQ(size=1, flags=0)===
+ 0. throw new java/lang/IllegalAccessException("FP --> AI # Failed to match seed of type Exception Range [Ljava/io/IOException;] and value 100430072");
+ <- ConditionalJump[IF_ICMPNE] #FP -> #FQ
+===#Block FR(size=1, flags=0)===
+ 0. throw new java/io/IOException("Error in hash");
+ <- DefaultSwitch #FM -> #FR
+===#Block CU(size=4, flags=10100)===
+ 0. lvar10 = dev.skidfuscator.testclasses.exclusion.ObfuscatedTestClass.gvprfwvilxtnyjar(lvar10, 1664212590);
+ 1. lvar200 = "O -> I : c-loc - cond : 1868635510";
+ 2. if (lvar10 != 1868635510)
+ goto CV
+ 3. goto I
+ -> UnconditionalJump[GOTO] #CU -> #I
+ -> ConditionalJump[IF_ICMPNE] #CU -> #CV
+ <- ConditionalJump[IF_ICMPEQ] #O -> #CU
+===#Block CV(size=1, flags=0)===
+ 0. throw new java/io/IOException("CU --> I # Failed to match seed of type Conditional and value 1868635510");
+ <- ConditionalJump[IF_ICMPNE] #CU -> #CV
+===#Block I(size=6, flags=0)===
+ 0. lvar5 = new java.lang.IllegalArgumentException;
+ 1. _consume(lvar5.(dynamic_invoke(java.lang.invoke.StringConcatFactory.makeConcatWithConstants("Failed test! Stage: ", {1868635508 ^ lvar10}))));
+ 2. lvar148 = "[Constant] 2 -> 1868635508 predicate=1868635510";
+ 3. throw lvar5;
+ 4. lvar26 = "I : var expect: 130827894";
+ 5. if (java.lang.Math.incrementExact(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != 130827894)
+ goto AM
+ -> TryCatch range: [C...H] -> DC ([Ljava/lang/IllegalStateException;])
+ -> ConditionalJump[IF_ICMPNE] #I -> #AM
+ -> TryCatch range: [C...H] -> DS ([Ljavax/crypto/BadPaddingException;, Ljavax/crypto/IllegalBlockSizeException;, Ljavax/crypto/NoSuchPaddingException;, Ljava/security/InvalidKeyException;, Ljava/security/NoSuchAlgorithmException;])
+ <- UnconditionalJump[GOTO] #CU -> #I
+===#Block DS(size=1, flags=0)===
+ 0. switch (pslmxlxlobvpuknt.ycljuptvbdeihrjh.kdjdykfpmferaltc(lvar10)) {
+ case -1841343318:
+ goto #EB
+ case 692076544:
+ goto #DV
+ case 1185675456:
+ goto #DX
+ case 1190091466:
+ goto #EF
+ case 1967285113:
+ goto #DZ
+ case 1975679232:
+ goto #DT
+ case 2064182195:
+ goto #ED
+ default:
+ goto #EH
+ }
+ -> Switch[1975679232] #DS -> #DT
+ -> Switch[692076544] #DS -> #DV
+ -> Switch[1185675456] #DS -> #DX
+ -> Switch[2064182195] #DS -> #ED
+ -> Switch[1190091466] #DS -> #EF
+ -> Switch[-1841343318] #DS -> #EB
+ -> Switch[1967285113] #DS -> #DZ
+ -> DefaultSwitch #DS -> #EH
+ <- TryCatch range: [C...H] -> DS ([Ljavax/crypto/BadPaddingException;, Ljavax/crypto/IllegalBlockSizeException;, Ljavax/crypto/NoSuchPaddingException;, Ljava/security/InvalidKeyException;, Ljava/security/NoSuchAlgorithmException;])
+ <- TryCatch range: [C...H] -> DS ([Ljavax/crypto/BadPaddingException;, Ljavax/crypto/IllegalBlockSizeException;, Ljavax/crypto/NoSuchPaddingException;, Ljava/security/InvalidKeyException;, Ljava/security/NoSuchAlgorithmException;])
+ <- TryCatch range: [C...H] -> DS ([Ljavax/crypto/BadPaddingException;, Ljavax/crypto/IllegalBlockSizeException;, Ljavax/crypto/NoSuchPaddingException;, Ljava/security/InvalidKeyException;, Ljava/security/NoSuchAlgorithmException;])
+ <- TryCatch range: [C...H] -> DS ([Ljavax/crypto/BadPaddingException;, Ljavax/crypto/IllegalBlockSizeException;, Ljavax/crypto/NoSuchPaddingException;, Ljava/security/InvalidKeyException;, Ljava/security/NoSuchAlgorithmException;])
+ <- TryCatch range: [C...H] -> DS ([Ljavax/crypto/BadPaddingException;, Ljavax/crypto/IllegalBlockSizeException;, Ljavax/crypto/NoSuchPaddingException;, Ljava/security/InvalidKeyException;, Ljava/security/NoSuchAlgorithmException;])
+ <- TryCatch range: [C...H] -> DS ([Ljavax/crypto/BadPaddingException;, Ljavax/crypto/IllegalBlockSizeException;, Ljavax/crypto/NoSuchPaddingException;, Ljava/security/InvalidKeyException;, Ljava/security/NoSuchAlgorithmException;])
+ <- TryCatch range: [C...H] -> DS ([Ljavax/crypto/BadPaddingException;, Ljavax/crypto/IllegalBlockSizeException;, Ljavax/crypto/NoSuchPaddingException;, Ljava/security/InvalidKeyException;, Ljava/security/NoSuchAlgorithmException;])
+===#Block EH(size=1, flags=0)===
+ 0. throw new java/lang/RuntimeException("Error in hash");
+ <- DefaultSwitch #DS -> #EH
+===#Block DZ(size=3, flags=10100)===
+ 0. lvar10 = {1333204193 ^ lvar10};
+ 1. if (lvar10 != 1642027150)
+ goto EA
+ 2. goto J
+ -> ConditionalJump[IF_ICMPNE] #DZ -> #EA
+ -> UnconditionalJump[GOTO] #DZ -> #J
+ <- Switch[1967285113] #DS -> #DZ
+===#Block EA(size=1, flags=0)===
+ 0. throw new java/lang/IllegalAccessException("DZ --> J # Failed to match seed of type Exception Range [Ljavax/crypto/BadPaddingException;, Ljavax/crypto/IllegalBlockSizeException;, Ljavax/crypto/NoSuchPaddingException;, Ljava/security/InvalidKeyException;, Ljava/security/NoSuchAlgorithmException;] and value 1642027150");
+ <- ConditionalJump[IF_ICMPNE] #DZ -> #EA
+===#Block EB(size=3, flags=10100)===
+ 0. lvar10 = dev.skidfuscator.testclasses.exclusion.ObfuscatedTestClass.gvprfwvilxtnyjar(lvar10, 865645083);
+ 1. if (lvar10 != 1642027150)
+ goto EC
+ 2. goto J
+ -> UnconditionalJump[GOTO] #EB -> #J
+ -> ConditionalJump[IF_ICMPNE] #EB -> #EC
+ <- Switch[-1841343318] #DS -> #EB
+===#Block EC(size=1, flags=0)===
+ 0. throw new java/lang/IllegalAccessException("EB --> J # Failed to match seed of type Exception Range [Ljavax/crypto/BadPaddingException;, Ljavax/crypto/IllegalBlockSizeException;, Ljavax/crypto/NoSuchPaddingException;, Ljava/security/InvalidKeyException;, Ljava/security/NoSuchAlgorithmException;] and value 1642027150");
+ <- ConditionalJump[IF_ICMPNE] #EB -> #EC
+===#Block EF(size=3, flags=10100)===
+ 0. lvar10 = {688042967 ^ lvar10};
+ 1. if (lvar10 != 1642027150)
+ goto EG
+ 2. goto J
+ -> ConditionalJump[IF_ICMPNE] #EF -> #EG
+ -> UnconditionalJump[GOTO] #EF -> #J
+ <- Switch[1190091466] #DS -> #EF
+===#Block EG(size=1, flags=0)===
+ 0. throw new java/lang/IllegalAccessException("EF --> J # Failed to match seed of type Exception Range [Ljavax/crypto/BadPaddingException;, Ljavax/crypto/IllegalBlockSizeException;, Ljavax/crypto/NoSuchPaddingException;, Ljava/security/InvalidKeyException;, Ljava/security/NoSuchAlgorithmException;] and value 1642027150");
+ <- ConditionalJump[IF_ICMPNE] #EF -> #EG
+===#Block ED(size=3, flags=10100)===
+ 0. lvar10 = {247350776 ^ lvar10};
+ 1. if (lvar10 != 1642027150)
+ goto EE
+ 2. goto J
+ -> ConditionalJump[IF_ICMPNE] #ED -> #EE
+ -> UnconditionalJump[GOTO] #ED -> #J
+ <- Switch[2064182195] #DS -> #ED
+===#Block EE(size=1, flags=0)===
+ 0. throw new java/lang/RuntimeException("ED --> J # Failed to match seed of type Exception Range [Ljavax/crypto/BadPaddingException;, Ljavax/crypto/IllegalBlockSizeException;, Ljavax/crypto/NoSuchPaddingException;, Ljava/security/InvalidKeyException;, Ljava/security/NoSuchAlgorithmException;] and value 1642027150");
+ <- ConditionalJump[IF_ICMPNE] #ED -> #EE
+===#Block DX(size=3, flags=10100)===
+ 0. lvar10 = {1762273174 ^ lvar10};
+ 1. if (lvar10 != 1642027150)
+ goto DY
+ 2. goto J
+ -> ConditionalJump[IF_ICMPNE] #DX -> #DY
+ -> UnconditionalJump[GOTO] #DX -> #J
+ <- Switch[1185675456] #DS -> #DX
+===#Block DY(size=1, flags=0)===
+ 0. throw new java/io/IOException("DX --> J # Failed to match seed of type Exception Range [Ljavax/crypto/BadPaddingException;, Ljavax/crypto/IllegalBlockSizeException;, Ljavax/crypto/NoSuchPaddingException;, Ljava/security/InvalidKeyException;, Ljava/security/NoSuchAlgorithmException;] and value 1642027150");
+ <- ConditionalJump[IF_ICMPNE] #DX -> #DY
+===#Block DV(size=3, flags=10100)===
+ 0. lvar10 = dev.skidfuscator.testclasses.exclusion.ObfuscatedTestClass.gvprfwvilxtnyjar(lvar10, 1693929614);
+ 1. if (lvar10 != 1642027150)
+ goto DW
+ 2. goto J
+ -> ConditionalJump[IF_ICMPNE] #DV -> #DW
+ -> UnconditionalJump[GOTO] #DV -> #J
+ <- Switch[692076544] #DS -> #DV
+===#Block DW(size=1, flags=0)===
+ 0. throw new java/io/IOException("DV --> J # Failed to match seed of type Exception Range [Ljavax/crypto/BadPaddingException;, Ljavax/crypto/IllegalBlockSizeException;, Ljavax/crypto/NoSuchPaddingException;, Ljava/security/InvalidKeyException;, Ljava/security/NoSuchAlgorithmException;] and value 1642027150");
+ <- ConditionalJump[IF_ICMPNE] #DV -> #DW
+===#Block DT(size=3, flags=10100)===
+ 0. lvar10 = dev.skidfuscator.testclasses.exclusion.ObfuscatedTestClass.gvprfwvilxtnyjar(lvar10, 1869027246);
+ 1. if (lvar10 != 1642027150)
+ goto DU
+ 2. goto J
+ -> ConditionalJump[IF_ICMPNE] #DT -> #DU
+ -> UnconditionalJump[GOTO] #DT -> #J
+ <- Switch[1975679232] #DS -> #DT
+===#Block J(size=8, flags=0)===
+ 0. lvar1 = catch();
+ 1. _consume(lvar1.printStackTrace());
+ 2. lvar6 = {-1642027151 ^ lvar10};
+ 3. lvar84 = "[Constant] -1 -> -1642027151 predicate=1642027150";
+ 4. lvar36 = "J : var expect: 844826032";
+ 5. if (java.lang.Integer.reverse(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != 844826032)
+ goto AP
+ 6. lvar10 = {1463568412 ^ lvar10};
+ 7. if (lvar10 != 920850578)
+ goto BD
+ -> ConditionalJump[IF_ICMPNE] #J -> #AP
+ -> Immediate #J -> #L
+ -> ConditionalJump[IF_ICMPNE] #J -> #BD
+ <- UnconditionalJump[GOTO] #DT -> #J
+ <- UnconditionalJump[GOTO] #DZ -> #J
+ <- UnconditionalJump[GOTO] #EB -> #J
+ <- UnconditionalJump[GOTO] #EF -> #J
+ <- UnconditionalJump[GOTO] #DX -> #J
+ <- UnconditionalJump[GOTO] #ED -> #J
+ <- UnconditionalJump[GOTO] #DV -> #J
+===#Block BD(size=1, flags=0)===
+ 0. throw new java/lang/RuntimeException(new java/lang/StringBuilder("J --> L # Failed to match seed of type Immediate and value 920850578 and got ").append(lvar10).toString());
+ <- ConditionalJump[IF_ICMPNE] #J -> #BD
+===#Block AP(size=16, flags=0)===
+ 0. throw new java/lang/RuntimeException("Failed to proper vm");
+ 1. if (java.lang.Math.incrementExact(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != 174471872)
+ goto AP
+ 2. if (java.lang.Math.incrementExact(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != {2030182280 ^ lvar10})
+ goto AP
+ 3. lvar98 = "[Constant] 1632662628 -> 2030182280 predicate=408054764";
+ 4. _consume({1744682858 ^ lvar10});
+ 5. throw new java/io/IOException("Failed to proper vm");
+ 6. if (java.lang.Math.floorDiv(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10), 740656974) != 0)
+ goto AP
+ 7. if (java.lang.Math.floorDiv(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10), 740656974) != {2056186139 ^ lvar10})
+ goto AP
+ 8. lvar96 = "[Constant] 1658618615 -> 2056186139 predicate=408054764";
+ 9. _consume({1914135807 ^ lvar10});
+ 10. throw new java/lang/IllegalAccessException("Failed to proper vm");
+ 11. if (java.lang.Integer.reverse(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != 844826032)
+ goto AP
+ 12. if (java.lang.Integer.reverse(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != {1146406566 ^ lvar10})
+ goto AP
+ 13. lvar94 = "[Constant] 1543941450 -> 1146406566 predicate=408054764";
+ 14. _consume({1985284243 ^ lvar10});
+ 15. throw new java/lang/RuntimeException("double");
+ -> ConditionalJump[IF_ICMPNE] #AP -> #AP
+ <- ConditionalJump[IF_ICMPNE] #AP -> #AP
+ <- ConditionalJump[IF_ICMPNE] #J -> #AP
+ <- ConditionalJump[IFNE] #AE -> #AP
+ <- ConditionalJump[IF_ICMPNE] #G -> #AP
+===#Block DU(size=1, flags=0)===
+ 0. throw new java/lang/IllegalAccessException("DT --> J # Failed to match seed of type Exception Range [Ljavax/crypto/BadPaddingException;, Ljavax/crypto/IllegalBlockSizeException;, Ljavax/crypto/NoSuchPaddingException;, Ljava/security/InvalidKeyException;, Ljava/security/NoSuchAlgorithmException;] and value 1642027150");
+ <- ConditionalJump[IF_ICMPNE] #DT -> #DU
+===#Block AM(size=6, flags=0)===
+ 0. throw new java/lang/RuntimeException("Failed to proper vm");
+ 1. if (java.lang.Math.incrementExact(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != 130827894)
+ goto AM
+ 2. if (java.lang.Math.incrementExact(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != {534608025 ^ lvar10})
+ goto AM
+ 3. lvar150 = "[Constant] 799953346 -> 534608025 predicate=812853595";
+ 4. _consume({1482674342 ^ lvar10});
+ 5. throw new java/io/IOException("double");
+ -> ConditionalJump[IF_ICMPNE] #AM -> #AM
+ <- ConditionalJump[IF_ICMPNE] #AM -> #AM
+ <- ConditionalJump[IF_ICMPNE] #I -> #AM
+===#Block DC(size=1, flags=0)===
+ 0. switch (pslmxlxlobvpuknt.ycljuptvbdeihrjh.kdjdykfpmferaltc(lvar10)) {
+ case -1841343318:
+ goto #DL
+ case 692076544:
+ goto #DF
+ case 1185675456:
+ goto #DH
+ case 1190091466:
+ goto #DP
+ case 1967285113:
+ goto #DJ
+ case 1975679232:
+ goto #DD
+ case 2064182195:
+ goto #DN
+ default:
+ goto #DR
+ }
+ -> Switch[-1841343318] #DC -> #DL
+ -> Switch[1185675456] #DC -> #DH
+ -> Switch[1967285113] #DC -> #DJ
+ -> Switch[1190091466] #DC -> #DP
+ -> DefaultSwitch #DC -> #DR
+ -> Switch[1975679232] #DC -> #DD
+ -> Switch[692076544] #DC -> #DF
+ -> Switch[2064182195] #DC -> #DN
+ <- TryCatch range: [C...H] -> DC ([Ljava/lang/IllegalStateException;])
+ <- TryCatch range: [C...H] -> DC ([Ljava/lang/IllegalStateException;])
+ <- TryCatch range: [C...H] -> DC ([Ljava/lang/IllegalStateException;])
+ <- TryCatch range: [C...H] -> DC ([Ljava/lang/IllegalStateException;])
+ <- TryCatch range: [C...H] -> DC ([Ljava/lang/IllegalStateException;])
+ <- TryCatch range: [C...H] -> DC ([Ljava/lang/IllegalStateException;])
+ <- TryCatch range: [C...H] -> DC ([Ljava/lang/IllegalStateException;])
+===#Block DN(size=3, flags=10100)===
+ 0. lvar10 = {2083065225 ^ lvar10};
+ 1. if (lvar10 != 323490047)
+ goto DO
+ 2. goto K
+ -> ConditionalJump[IF_ICMPNE] #DN -> #DO
+ -> UnconditionalJump[GOTO] #DN -> #K
+ <- Switch[2064182195] #DC -> #DN
+===#Block DO(size=1, flags=0)===
+ 0. throw new java/io/IOException("DN --> K # Failed to match seed of type Exception Range [Ljava/lang/IllegalStateException;] and value 323490047");
+ <- ConditionalJump[IF_ICMPNE] #DN -> #DO
+===#Block DF(size=3, flags=10100)===
+ 0. lvar10 = {375396607 ^ lvar10};
+ 1. if (lvar10 != 323490047)
+ goto DG
+ 2. goto K
+ -> ConditionalJump[IF_ICMPNE] #DF -> #DG
+ -> UnconditionalJump[GOTO] #DF -> #K
+ <- Switch[692076544] #DC -> #DF
+===#Block DG(size=1, flags=0)===
+ 0. throw new java/lang/RuntimeException("DF --> K # Failed to match seed of type Exception Range [Ljava/lang/IllegalStateException;] and value 323490047");
+ <- ConditionalJump[IF_ICMPNE] #DF -> #DG
+===#Block DD(size=3, flags=10100)===
+ 0. lvar10 = {502292447 ^ lvar10};
+ 1. if (lvar10 != 323490047)
+ goto DE
+ 2. goto K
+ -> UnconditionalJump[GOTO] #DD -> #K
+ -> ConditionalJump[IF_ICMPNE] #DD -> #DE
+ <- Switch[1975679232] #DC -> #DD
+===#Block DE(size=1, flags=0)===
+ 0. throw new java/lang/IllegalAccessException("DD --> K # Failed to match seed of type Exception Range [Ljava/lang/IllegalStateException;] and value 323490047");
+ <- ConditionalJump[IF_ICMPNE] #DD -> #DE
+===#Block DR(size=1, flags=0)===
+ 0. throw new java/lang/RuntimeException("Error in hash");
+ <- DefaultSwitch #DC -> #DR
+===#Block DP(size=3, flags=10100)===
+ 0. lvar10 = dev.skidfuscator.testclasses.exclusion.ObfuscatedTestClass.gvprfwvilxtnyjar(lvar10, 1536555942);
+ 1. if (lvar10 != 323490047)
+ goto DQ
+ 2. goto K
+ -> ConditionalJump[IF_ICMPNE] #DP -> #DQ
+ -> UnconditionalJump[GOTO] #DP -> #K
+ <- Switch[1190091466] #DC -> #DP
+===#Block DQ(size=1, flags=0)===
+ 0. throw new java/io/IOException("DP --> K # Failed to match seed of type Exception Range [Ljava/lang/IllegalStateException;] and value 323490047");
+ <- ConditionalJump[IF_ICMPNE] #DP -> #DQ
+===#Block DJ(size=3, flags=10100)===
+ 0. lvar10 = dev.skidfuscator.testclasses.exclusion.ObfuscatedTestClass.gvprfwvilxtnyjar(lvar10, 1038113936);
+ 1. if (lvar10 != 323490047)
+ goto DK
+ 2. goto K
+ -> UnconditionalJump[GOTO] #DJ -> #K
+ -> ConditionalJump[IF_ICMPNE] #DJ -> #DK
+ <- Switch[1967285113] #DC -> #DJ
+===#Block DK(size=1, flags=0)===
+ 0. throw new java/lang/IllegalAccessException("DJ --> K # Failed to match seed of type Exception Range [Ljava/lang/IllegalStateException;] and value 323490047");
+ <- ConditionalJump[IF_ICMPNE] #DJ -> #DK
+===#Block DH(size=3, flags=10100)===
+ 0. lvar10 = {463302631 ^ lvar10};
+ 1. if (lvar10 != 323490047)
+ goto DI
+ 2. goto K
+ -> ConditionalJump[IF_ICMPNE] #DH -> #DI
+ -> UnconditionalJump[GOTO] #DH -> #K
+ <- Switch[1185675456] #DC -> #DH
+===#Block DI(size=1, flags=0)===
+ 0. throw new java/lang/RuntimeException("DH --> K # Failed to match seed of type Exception Range [Ljava/lang/IllegalStateException;] and value 323490047");
+ <- ConditionalJump[IF_ICMPNE] #DH -> #DI
+===#Block DL(size=3, flags=10100)===
+ 0. lvar10 = dev.skidfuscator.testclasses.exclusion.ObfuscatedTestClass.gvprfwvilxtnyjar(lvar10, 1091566186);
+ 1. if (lvar10 != 323490047)
+ goto DM
+ 2. goto K
+ -> UnconditionalJump[GOTO] #DL -> #K
+ -> ConditionalJump[IF_ICMPNE] #DL -> #DM
+ <- Switch[-1841343318] #DC -> #DL
+===#Block DM(size=1, flags=0)===
+ 0. throw new java/lang/IllegalAccessException("DL --> K # Failed to match seed of type Exception Range [Ljava/lang/IllegalStateException;] and value 323490047");
+ <- ConditionalJump[IF_ICMPNE] #DL -> #DM
+===#Block K(size=7, flags=0)===
+ 0. lvar4 = catch();
+ 1. lvar6 = {323490043 ^ lvar10};
+ 2. lvar80 = "[Constant] 4 -> 323490043 predicate=323490047";
+ 3. lvar20 = "K : var expect: 2096829093";
+ 4. if (java.lang.Integer.rotateRight(1053075807, pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != 2096829093)
+ goto AK
+ 5. lvar170 = "K -> Y : c-loc - uncond : 776308008";
+ 6. goto BI
+ -> UnconditionalJump[GOTO] #K -> #BI
+ -> ConditionalJump[IF_ICMPNE] #K -> #AK
+ <- UnconditionalJump[GOTO] #DN -> #K
+ <- UnconditionalJump[GOTO] #DJ -> #K
+ <- UnconditionalJump[GOTO] #DL -> #K
+ <- UnconditionalJump[GOTO] #DD -> #K
+ <- UnconditionalJump[GOTO] #DF -> #K
+ <- UnconditionalJump[GOTO] #DP -> #K
+ <- UnconditionalJump[GOTO] #DH -> #K
+===#Block BI(size=2, flags=10100)===
+ 0. switch (pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) {
+ case 89895846:
+ goto #BJ
+ case 1599618100:
+ goto #AN
+ case 1669565662:
+ goto #Y
+ case 2071590414:
+ goto #BI
+ default:
+ goto #AN
+ }
+ 1. if (lvar10 != 776308008)
+ goto BK
+ -> DefaultSwitch #BI -> #AN
+ -> Switch[89895846] #BI -> #BJ
+ -> Switch[2071590414] #BI -> #BI
+ -> Switch[1669565662] #BI -> #Y
+ -> Switch[1599618100] #BI -> #AN
+ -> Immediate #BI -> #BJ
+ -> ConditionalJump[IF_ICMPNE] #BI -> #BK
+ <- UnconditionalJump[GOTO] #K -> #BI
+ <- Switch[2071590414] #BI -> #BI
+===#Block BK(size=1, flags=0)===
+ 0. throw new java/lang/RuntimeException("BI --> Y # Failed to match seed of type Unconditional and value 776308008");
+ <- ConditionalJump[IF_ICMPNE] #BI -> #BK
+===#Block BJ(size=2, flags=100)===
+ 0. lvar10 = {1024300503 ^ lvar10};
+ 1. goto Y
+ -> UnconditionalJump[GOTO] #BJ -> #Y
+ <- Switch[89895846] #BI -> #BJ
+ <- Immediate #BI -> #BJ
+===#Block Y(size=4, flags=0)===
+ 0. if (pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10) == 161914808)
+ goto X
+ 1. throw nullconst;
+ 2. lvar30 = "Y : var expect: 161914808";
+ 3. if (java.lang.StrictMath.abs(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != 161914808)
+ goto AO
+ -> ConditionalJump[IF_ICMPEQ] #Y -> #X
+ -> ConditionalJump[IF_ICMPNE] #Y -> #AO
+ -> TryCatch range: [Y...X] -> EU ([Ljava/lang/RuntimeException;])
+ <- Switch[1669565662] #BI -> #Y
+ <- UnconditionalJump[GOTO] #BJ -> #Y
+===#Block X(size=3, flags=0)===
+ 0. throw new java/lang/RuntimeException();
+ 1. lvar34 = "X : var expect: 1";
+ 2. if (java.lang.Integer.lowestOneBit(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != 1)
+ goto AK
+ -> TryCatch range: [Y...X] -> EU ([Ljava/lang/RuntimeException;])
+ -> ConditionalJump[IF_ICMPNE] #X -> #AK
+ <- ConditionalJump[IF_ICMPEQ] #Y -> #X
+===#Block AK(size=11, flags=0)===
+ 0. throw new java/lang/RuntimeException("Failed to proper vm");
+ 1. if (java.lang.Integer.lowestOneBit(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != 1)
+ goto AK
+ 2. if (java.lang.Integer.lowestOneBit(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != {1320643140 ^ lvar10})
+ goto AK
+ 3. lvar164 = "[Constant] 799158104 -> 1320643140 predicate=1628783900";
+ 4. _consume({941867786 ^ lvar10});
+ 5. throw new java/io/IOException("Failed to proper vm");
+ 6. if (java.lang.Integer.rotateRight(1053075807, pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != 2096829093)
+ goto AK
+ 7. if (java.lang.Integer.rotateRight(1053075807, pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != {1992433651 ^ lvar10})
+ goto AK
+ 8. lvar162 = "[Constant] 399989487 -> 1992433651 predicate=1628783900";
+ 9. _consume({880283429 ^ lvar10});
+ 10. throw new java/lang/RuntimeException("double");
+ -> ConditionalJump[IF_ICMPNE] #AK -> #AK
+ <- ConditionalJump[IF_ICMPNE] #X -> #AK
+ <- ConditionalJump[IF_ICMPNE] #AK -> #AK
+ <- DefaultSwitch #CW -> #AK
+ <- ConditionalJump[IF_ICMPNE] #K -> #AK
+ <- Switch[1361632897] #CW -> #AK
+===#Block EU(size=1, flags=0)===
+ 0. switch (pslmxlxlobvpuknt.ycljuptvbdeihrjh.kdjdykfpmferaltc(lvar10)) {
+ case -1645243488:
+ goto #EX
+ case 1915496769:
+ goto #EV
+ default:
+ goto #EZ
+ }
+ -> Switch[1915496769] #EU -> #EV
+ -> DefaultSwitch #EU -> #EZ
+ -> Switch[-1645243488] #EU -> #EX
+ <- TryCatch range: [Y...X] -> EU ([Ljava/lang/RuntimeException;])
+ <- TryCatch range: [Y...X] -> EU ([Ljava/lang/RuntimeException;])
+===#Block EX(size=3, flags=10100)===
+ 0. lvar10 = {1767409931 ^ lvar10};
+ 1. if (lvar10 != 2061859711)
+ goto EY
+ 2. goto Z
+ -> UnconditionalJump[GOTO] #EX -> #Z
+ -> ConditionalJump[IF_ICMPNE] #EX -> #EY
+ <- Switch[-1645243488] #EU -> #EX
+===#Block EY(size=1, flags=0)===
+ 0. throw new java/lang/IllegalAccessException("EX --> Z # Failed to match seed of type Exception Range [Ljava/lang/RuntimeException;] and value 2061859711");
+ <- ConditionalJump[IF_ICMPNE] #EX -> #EY
+===#Block EZ(size=1, flags=0)===
+ 0. throw new java/lang/IllegalAccessException("Error in hash");
+ <- DefaultSwitch #EU -> #EZ
+===#Block EV(size=3, flags=10100)===
+ 0. lvar10 = dev.skidfuscator.testclasses.exclusion.ObfuscatedTestClass.gvprfwvilxtnyjar(lvar10, 1419837015);
+ 1. if (lvar10 != 2061859711)
+ goto EW
+ 2. goto Z
+ -> UnconditionalJump[GOTO] #EV -> #Z
+ -> ConditionalJump[IF_ICMPNE] #EV -> #EW
+ <- Switch[1915496769] #EU -> #EV
+===#Block EW(size=1, flags=0)===
+ 0. throw new java/lang/RuntimeException("EV --> Z # Failed to match seed of type Exception Range [Ljava/lang/RuntimeException;] and value 2061859711");
+ <- ConditionalJump[IF_ICMPNE] #EV -> #EW
+===#Block Z(size=5, flags=0)===
+ 0. _consume(catch());
+ 1. lvar16 = "Z : var expect: 1";
+ 2. if (java.lang.Integer.signum(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != 1)
+ goto AJ
+ 3. lvar186 = "Z -> L : c-loc - uncond : 920850578";
+ 4. goto CD
+ -> UnconditionalJump[GOTO] #Z -> #CD
+ -> ConditionalJump[IF_ICMPNE] #Z -> #AJ
+ <- UnconditionalJump[GOTO] #EV -> #Z
+ <- UnconditionalJump[GOTO] #EX -> #Z
+===#Block CD(size=3, flags=10100)===
+ 0. lvar10 = dev.skidfuscator.testclasses.exclusion.ObfuscatedTestClass.gvprfwvilxtnyjar(lvar10, 1275489261);
+ 1. if (lvar10 != 920850578)
+ goto CE
+ 2. goto L
+ -> ConditionalJump[IF_ICMPNE] #CD -> #CE
+ -> UnconditionalJump[GOTO] #CD -> #L
+ <- UnconditionalJump[GOTO] #Z -> #CD
+===#Block L(size=6, flags=0)===
+ 0. if (dev.skidfuscator.testclasses.exclusion.ObfuscatedTestClass.data[{920850576 ^ lvar10}] == lvar6)
+ goto CM
+ 1. lvar106 = "[Constant] 2 -> 920850576 predicate=920850578";
+ 2. lvar68 = "L : var expect: 173524729";
+ 3. if (java.lang.Math.min(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10), 400518036) != 173524729)
+ goto AR
+ 4. lvar10 = {2036461647 ^ lvar10};
+ 5. if (lvar10 != 1333977309)
+ goto BE
+ -> ConditionalJump[IF_ICMPEQ] #L -> #CM
+ -> ConditionalJump[IF_ICMPNE] #L -> #AR
+ -> Immediate #L -> #M
+ -> ConditionalJump[IF_ICMPNE] #L -> #BE
+ <- Immediate #J -> #L
+ <- UnconditionalJump[GOTO] #CD -> #L
+===#Block BE(size=1, flags=0)===
+ 0. throw new java/lang/RuntimeException(new java/lang/StringBuilder("L --> M # Failed to match seed of type Immediate and value 1333977309 and got ").append(lvar10).toString());
+ <- ConditionalJump[IF_ICMPNE] #L -> #BE
+===#Block M(size=5, flags=0)===
+ 0. lvar3 = new java.lang.IllegalArgumentException;
+ 1. _consume(lvar3.(dynamic_invoke(java.lang.invoke.StringConcatFactory.makeConcatWithConstants("Failed test! Stage: ", lvar6))));
+ 2. throw lvar3;
+ 3. lvar70 = "M : var expect: -1";
+ 4. if (java.lang.Character.digit(1730944408, pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != -1)
+ goto AY
+ -> ConditionalJump[IF_ICMPNE] #M -> #AY
+ <- Immediate #L -> #M
+===#Block AY(size=6, flags=0)===
+ 0. throw new java/lang/RuntimeException("Failed to proper vm");
+ 1. if (java.lang.Character.digit(1730944408, pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != -1)
+ goto AY
+ 2. if (java.lang.Character.digit(1730944408, pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != {1414932870 ^ lvar10})
+ goto AY
+ 3. lvar90 = "[Constant] 118288580 -> 1414932870 predicate=1398462786";
+ 4. _consume({1129199961 ^ lvar10});
+ 5. throw new java/io/IOException("double");
+ -> ConditionalJump[IF_ICMPNE] #AY -> #AY
+ <- ConditionalJump[IF_ICMPNE] #M -> #AY
+ <- ConditionalJump[IF_ICMPNE] #AY -> #AY
+===#Block AR(size=11, flags=0)===
+ 0. throw new java/lang/IllegalAccessException("Failed to proper vm");
+ 1. if (java.lang.Math.min(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10), 400518036) != 173524729)
+ goto AR
+ 2. if (java.lang.Math.min(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10), 400518036) != {1447666497 ^ lvar10})
+ goto AR
+ 3. lvar116 = "[Constant] 1788260121 -> 1447666497 predicate=1021250648";
+ 4. _consume({1374273480 ^ lvar10});
+ 5. throw new java/lang/RuntimeException("Failed to proper vm");
+ 6. if (java.lang.StrictMath.max(1707464269, pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != 1707464269)
+ goto AR
+ 7. if (java.lang.StrictMath.max(1707464269, pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != {1786344253 ^ lvar10})
+ goto AR
+ 8. lvar114 = "[Constant] 1453752165 -> 1786344253 predicate=1021250648";
+ 9. _consume({185204503 ^ lvar10});
+ 10. throw new java/lang/RuntimeException("double");
+ -> ConditionalJump[IF_ICMPNE] #AR -> #AR
+ <- ConditionalJump[IF_ICMPNE] #R -> #AR
+ <- ConditionalJump[IF_ICMPNE] #L -> #AR
+ <- ConditionalJump[IF_ICMPNE] #AR -> #AR
+===#Block CM(size=3, flags=10100)===
+ 0. switch (pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) {
+ case 173524729:
+ goto #CN
+ case 859283310:
+ goto #CM
+ case 1392462802:
+ goto #Q
+ case 1843582792:
+ goto #AW
+ default:
+ goto #AW
+ }
+ 1. lvar194 = "L -> Q : c-loc - cond : 1143532984";
+ 2. if (lvar10 != 1143532984)
+ goto CO
+ -> Switch[173524729] #CM -> #CN
+ -> Immediate #CM -> #CN
+ -> ConditionalJump[IF_ICMPNE] #CM -> #CO
+ -> DefaultSwitch #CM -> #AW
+ -> Switch[1843582792] #CM -> #AW
+ -> Switch[859283310] #CM -> #CM
+ -> Switch[1392462802] #CM -> #Q
+ <- ConditionalJump[IF_ICMPEQ] #L -> #CM
+ <- Switch[859283310] #CM -> #CM
+===#Block AW(size=6, flags=0)===
+ 0. throw new java/lang/IllegalAccessException("Failed to proper vm");
+ 1. if (java.lang.Integer.compareUnsigned(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10), 595440337) != -1)
+ goto AW
+ 2. if (java.lang.Integer.compareUnsigned(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10), 595440337) != {694575480 ^ lvar10})
+ goto AW
+ 3. lvar88 = "[Constant] 341965178 -> 694575480 predicate=1023907842";
+ 4. _consume({608760118 ^ lvar10});
+ 5. throw new java/io/IOException("double");
+ -> ConditionalJump[IF_ICMPNE] #AW -> #AW
+ <- ConditionalJump[IF_ICMPNE] #AW -> #AW
+ <- ConditionalJump[IF_ICMPNE] #S -> #AW
+ <- DefaultSwitch #CM -> #AW
+ <- Switch[1843582792] #CM -> #AW
+===#Block CO(size=1, flags=0)===
+ 0. throw new java/io/IOException("CM --> Q # Failed to match seed of type Conditional and value 1143532984");
+ <- ConditionalJump[IF_ICMPNE] #CM -> #CO
+===#Block CN(size=2, flags=100)===
+ 0. lvar10 = {1925971242 ^ lvar10};
+ 1. goto Q
+ -> UnconditionalJump[GOTO] #CN -> #Q
+ <- Switch[173524729] #CM -> #CN
+ <- Immediate #CM -> #CN
+===#Block Q(size=5, flags=0)===
+ 0. if (java.lang.Integer.numberOfLeadingZeros(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) == 5)
+ goto CP
+ 1. lvar12 = "Q : var expect: 68094140";
+ 2. if (java.lang.Integer.min(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10), 1105305961) != 68094140)
+ goto P
+ 3. lvar182 = "Q -> V : c-loc - uncond : 454175997";
+ 4. goto BY
+ -> UnconditionalJump[GOTO] #Q -> #BY
+ -> ConditionalJump[IF_ICMPEQ] #Q -> #CP
+ -> ConditionalJump[IF_ICMPNE] #Q -> #P
+ <- UnconditionalJump[GOTO] #CN -> #Q
+ <- Switch[1392462802] #CM -> #Q
+===#Block CP(size=3, flags=10100)===
+ 0. switch (pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) {
+ case 68094140:
+ goto #CQ
+ case 351568123:
+ goto #N
+ case 1052763495:
+ goto #AJ
+ case 1169167000:
+ goto #CP
+ default:
+ goto #AJ
+ }
+ 1. lvar196 = "Q -> N : c-loc - cond : 1943031651";
+ 2. if (lvar10 != 1943031651)
+ goto CR
+ -> Switch[1052763495] #CP -> #AJ
+ -> Switch[68094140] #CP -> #CQ
+ -> Immediate #CP -> #CQ
+ -> DefaultSwitch #CP -> #AJ
+ -> Switch[1169167000] #CP -> #CP
+ -> ConditionalJump[IF_ICMPNE] #CP -> #CR
+ -> Switch[351568123] #CP -> #N
+ <- ConditionalJump[IF_ICMPEQ] #Q -> #CP
+ <- Switch[1169167000] #CP -> #CP
+===#Block CR(size=1, flags=0)===
+ 0. throw new java/io/IOException("CP --> N # Failed to match seed of type Conditional and value 1943031651");
+ <- ConditionalJump[IF_ICMPNE] #CP -> #CR
+===#Block CQ(size=2, flags=100)===
+ 0. lvar10 = {939041499 ^ lvar10};
+ 1. goto N
+ -> UnconditionalJump[GOTO] #CQ -> #N
+ <- Switch[68094140] #CP -> #CQ
+ <- Immediate #CP -> #CQ
+===#Block N(size=3, flags=0)===
+ 0. return;
+ 1. lvar32 = "N : var expect: 314";
+ 2. if (java.lang.StrictMath.floorDiv(2061171791, pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != 314)
+ goto AJ
+ -> ConditionalJump[IF_ICMPNE] #N -> #AJ
+ <- UnconditionalJump[GOTO] #CQ -> #N
+ <- Switch[351568123] #CP -> #N
+===#Block AJ(size=26, flags=0)===
+ 0. throw new java/lang/RuntimeException("Failed to proper vm");
+ 1. if (java.lang.StrictMath.floorMod(6909346245057239445L, 1346717428) != 672834169)
+ goto AJ
+ 2. if (java.lang.StrictMath.floorMod(6909346245057239445L, 1346717428) != {1846725310 ^ lvar10})
+ goto AJ
+ 3. lvar158 = "[Constant] 655625094 -> 1846725310 predicate=1225179448";
+ 4. _consume({1218594415 ^ lvar10});
+ 5. throw new java/io/IOException("Failed to proper vm");
+ 6. if (java.lang.Math.floorDiv(304399280, pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != 1)
+ goto AJ
+ 7. if (java.lang.Math.floorDiv(304399280, pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != {433705380 ^ lvar10})
+ goto AJ
+ 8. lvar156 = "[Constant] 1356796060 -> 433705380 predicate=1225179448";
+ 9. _consume({1178814505 ^ lvar10});
+ 10. throw new java/lang/RuntimeException("Failed to proper vm");
+ 11. if (java.lang.StrictMath.floorDiv(2061171791, pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != 314)
+ goto AJ
+ 12. if (java.lang.StrictMath.floorDiv(2061171791, pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != {334178431 ^ lvar10})
+ goto AJ
+ 13. lvar154 = "[Constant] 1525541191 -> 334178431 predicate=1225179448";
+ 14. _consume({1912106380 ^ lvar10});
+ 15. throw new java/lang/RuntimeException("Failed to proper vm");
+ 16. if (java.lang.Integer.sum(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10), 2092181537) != -2115371073)
+ goto AJ
+ 17. if (java.lang.Integer.sum(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10), 2092181537) != {72919272 ^ lvar10})
+ goto AJ
+ 18. lvar160 = "[Constant] 1298033104 -> 72919272 predicate=1225179448";
+ 19. _consume({114206829 ^ lvar10});
+ 20. throw new java/lang/RuntimeException("Failed to proper vm");
+ 21. if (java.lang.Integer.signum(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != 1)
+ goto AJ
+ 22. if (java.lang.Integer.signum(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != {161741336 ^ lvar10})
+ goto AJ
+ 23. lvar152 = "[Constant] 1084570400 -> 161741336 predicate=1225179448";
+ 24. _consume({1314252186 ^ lvar10});
+ 25. throw new java/io/IOException("double");
+ -> ConditionalJump[IF_ICMPNE] #AJ -> #AJ
+ <- ConditionalJump[IF_ICMPNE] #AA -> #AJ
+ <- ConditionalJump[IF_ICMPNE] #N -> #AJ
+ <- Switch[1052763495] #CP -> #AJ
+ <- ConditionalJump[IF_ICMPNE] #AJ -> #AJ
+ <- DefaultSwitch #CP -> #AJ
+ <- ConditionalJump[IF_ICMPNE] #AF -> #AJ
+ <- ConditionalJump[IF_ICMPNE] #Z -> #AJ
+ <- ConditionalJump[IF_ICMPNE] #AD -> #AJ
+===#Block BY(size=3, flags=10100)===
+ 0. lvar10 = {1597686085 ^ lvar10};
+ 1. if (lvar10 != 454175997)
+ goto BZ
+ 2. goto V
+ -> UnconditionalJump[GOTO] #BY -> #V
+ -> ConditionalJump[IF_ICMPNE] #BY -> #BZ
+ <- UnconditionalJump[GOTO] #Q -> #BY
+===#Block BZ(size=1, flags=0)===
+ 0. throw new java/lang/RuntimeException("BY --> V # Failed to match seed of type Unconditional and value 454175997");
+ <- ConditionalJump[IF_ICMPNE] #BY -> #BZ
+===#Block V(size=4, flags=0)===
+ 0. if (pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10) == 74656824)
+ goto U
+ 1. throw nullconst;
+ 2. lvar60 = "V : var expect: 23";
+ 3. if (java.lang.StrictMath.floorDiv(1751083165, pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != 23)
+ goto AV
+ -> ConditionalJump[IF_ICMPNE] #V -> #AV
+ -> ConditionalJump[IF_ICMPEQ] #V -> #U
+ -> TryCatch range: [V...U] -> EO ([Ljava/lang/RuntimeException;])
+ <- UnconditionalJump[GOTO] #BY -> #V
+===#Block U(size=3, flags=0)===
+ 0. throw new java/lang/RuntimeException();
+ 1. lvar44 = "U : var expect: 118257104";
+ 2. if (java.lang.StrictMath.floorMod(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10), 218158239) != 118257104)
+ goto AO
+ -> ConditionalJump[IF_ICMPNE] #U -> #AO
+ -> TryCatch range: [V...U] -> EO ([Ljava/lang/RuntimeException;])
+ <- ConditionalJump[IF_ICMPEQ] #V -> #U
+===#Block EO(size=1, flags=0)===
+ 0. switch (pslmxlxlobvpuknt.ycljuptvbdeihrjh.kdjdykfpmferaltc(lvar10)) {
+ case -661559320:
+ goto #EP
+ case -481556704:
+ goto #ER
+ default:
+ goto #ET
+ }
+ -> Switch[-661559320] #EO -> #EP
+ -> Switch[-481556704] #EO -> #ER
+ -> DefaultSwitch #EO -> #ET
+ <- TryCatch range: [V...U] -> EO ([Ljava/lang/RuntimeException;])
+ <- TryCatch range: [V...U] -> EO ([Ljava/lang/RuntimeException;])
+===#Block ET(size=1, flags=0)===
+ 0. throw new java/lang/IllegalAccessException("Error in hash");
+ <- DefaultSwitch #EO -> #ET
+===#Block ER(size=3, flags=10100)===
+ 0. lvar10 = dev.skidfuscator.testclasses.exclusion.ObfuscatedTestClass.gvprfwvilxtnyjar(lvar10, 1516886624);
+ 1. if (lvar10 != 1174428292)
+ goto ES
+ 2. goto W
+ -> UnconditionalJump[GOTO] #ER -> #W
+ -> ConditionalJump[IF_ICMPNE] #ER -> #ES
+ <- Switch[-481556704] #EO -> #ER
+===#Block ES(size=1, flags=0)===
+ 0. throw new java/lang/IllegalAccessException("ER --> W # Failed to match seed of type Exception Range [Ljava/lang/RuntimeException;] and value 1174428292");
+ <- ConditionalJump[IF_ICMPNE] #ER -> #ES
+===#Block EP(size=3, flags=10100)===
+ 0. lvar10 = dev.skidfuscator.testclasses.exclusion.ObfuscatedTestClass.gvprfwvilxtnyjar(lvar10, 1561491065);
+ 1. if (lvar10 != 1174428292)
+ goto EQ
+ 2. goto W
+ -> ConditionalJump[IF_ICMPNE] #EP -> #EQ
+ -> UnconditionalJump[GOTO] #EP -> #W
+ <- Switch[-661559320] #EO -> #EP
+===#Block W(size=5, flags=0)===
+ 0. _consume(catch());
+ 1. lvar42 = "W : var expect: -199414816";
+ 2. if (java.lang.Integer.rotateRight(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10), 1529987227) != -199414816)
+ goto AL
+ 3. lvar188 = "W -> P : c-loc - uncond : 825727288";
+ 4. goto CF
+ -> UnconditionalJump[GOTO] #W -> #CF
+ -> ConditionalJump[IF_ICMPNE] #W -> #AL
+ <- UnconditionalJump[GOTO] #ER -> #W
+ <- UnconditionalJump[GOTO] #EP -> #W
+===#Block AL(size=11, flags=0)===
+ 0. throw new java/io/IOException("Failed to proper vm");
+ 1. if (java.lang.Integer.rotateRight(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10), 1529987227) != -199414816)
+ goto AL
+ 2. if (java.lang.Integer.rotateRight(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10), 1529987227) != {2144908761 ^ lvar10})
+ goto AL
+ 3. lvar108 = "[Constant] 1203066869 -> 2144908761 predicate=946725420";
+ 4. _consume({1316129242 ^ lvar10});
+ 5. throw new java/lang/IllegalAccessException("Failed to proper vm");
+ 6. if (java.lang.Math.subtractExact(1517175641, pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != 1307126627)
+ goto AL
+ 7. if (java.lang.Math.subtractExact(1517175641, pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != {326198746 ^ lvar10})
+ goto AL
+ 8. lvar110 = "[Constant] 723290102 -> 326198746 predicate=946725420";
+ 9. _consume({1375778798 ^ lvar10});
+ 10. throw new java/lang/RuntimeException("double");
+ -> ConditionalJump[IF_ICMPNE] #AL -> #AL
+ <- ConditionalJump[IF_ICMPNE] #C -> #AL
+ <- ConditionalJump[IF_ICMPNE] #AL -> #AL
+ <- DefaultSwitch #BT -> #AL
+ <- Switch[1824729686] #BT -> #AL
+ <- ConditionalJump[IF_ICMPNE] #W -> #AL
+===#Block CF(size=3, flags=10100)===
+ 0. lvar10 = {2000143292 ^ lvar10};
+ 1. if (lvar10 != 825727288)
+ goto CG
+ 2. goto P
+ -> ConditionalJump[IF_ICMPNE] #CF -> #CG
+ -> UnconditionalJump[GOTO] #CF -> #P
+ <- UnconditionalJump[GOTO] #W -> #CF
+===#Block P(size=23, flags=0)===
+ 0. throw new java/lang/RuntimeException("Failed to proper vm");
+ 1. if (java.lang.Character.digit(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10), 1157052188) != -1)
+ goto P
+ 2. if (java.lang.Character.digit(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10), 1157052188) != {2087345862 ^ lvar10})
+ goto P
+ 3. lvar132 = "[Constant] 1297991678 -> 2087345862 predicate=825727288";
+ 4. _consume({233399223 ^ lvar10});
+ 5. throw new java/lang/RuntimeException("Failed to proper vm");
+ 6. if (java.lang.Character.getNumericValue(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != -1)
+ goto P
+ 7. if (java.lang.Character.getNumericValue(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != {1431189994 ^ lvar10})
+ goto P
+ 8. lvar126 = "[Constant] 1685692626 -> 1431189994 predicate=825727288";
+ 9. _consume({2051377248 ^ lvar10});
+ 10. throw new java/lang/IllegalAccessException("Failed to proper vm");
+ 11. if (java.lang.Math.min(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10), 1127856956) != 21977833)
+ goto P
+ 12. if (java.lang.Math.min(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10), 1127856956) != {1630057163 ^ lvar10})
+ goto P
+ 13. lvar128 = "[Constant] 1344220147 -> 1630057163 predicate=825727288";
+ 14. _consume({370507441 ^ lvar10});
+ 15. throw new java/lang/IllegalAccessException("Failed to proper vm");
+ 16. if (java.lang.Integer.min(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10), 1105305961) != 68094140)
+ goto P
+ 17. if (java.lang.Integer.min(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10), 1105305961) != {201406604 ^ lvar10})
+ goto P
+ 18. lvar130 = "[Constant] 1026990516 -> 201406604 predicate=825727288";
+ 19. _consume({1445331241 ^ lvar10});
+ 20. throw new java/io/IOException();
+ 21. lvar76 = "P : var expect: 257657323";
+ 22. if (java.lang.Integer.hashCode(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != 257657323)
+ goto BA
+ -> ConditionalJump[IF_ICMPNE] #P -> #BA
+ -> ConditionalJump[IF_ICMPNE] #P -> #P
+ <- ConditionalJump[IF_ICMPNE] #P -> #P
+ <- Switch[262085016] #BN -> #P
+ <- UnconditionalJump[GOTO] #BO -> #P
+ <- ConditionalJump[IF_ICMPNE] #F -> #P
+ <- UnconditionalJump[GOTO] #CF -> #P
+ <- ConditionalJump[IF_ICMPNE] #Q -> #P
+ <- ConditionalJump[IF_ICMPNE] #T -> #P
+ <- ConditionalJump[IF_ICMPNE] #A -> #P
+===#Block BA(size=6, flags=0)===
+ 0. throw new java/io/IOException("Failed to proper vm");
+ 1. if (java.lang.Integer.hashCode(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != 257657323)
+ goto BA
+ 2. if (java.lang.Integer.hashCode(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != {2139306365 ^ lvar10})
+ goto BA
+ 3. lvar112 = "[Constant] 2133386653 -> 2139306365 predicate=11263200";
+ 4. _consume({1300692355 ^ lvar10});
+ 5. throw new java/lang/RuntimeException("double");
+ -> ConditionalJump[IF_ICMPNE] #BA -> #BA
+ <- ConditionalJump[IF_ICMPNE] #BA -> #BA
+ <- ConditionalJump[IF_ICMPNE] #P -> #BA
+===#Block CG(size=1, flags=0)===
+ 0. throw new java/io/IOException("CF --> P # Failed to match seed of type Unconditional and value 825727288");
+ <- ConditionalJump[IF_ICMPNE] #CF -> #CG
+===#Block EQ(size=1, flags=0)===
+ 0. throw new java/lang/IllegalAccessException("EP --> W # Failed to match seed of type Exception Range [Ljava/lang/RuntimeException;] and value 1174428292");
+ <- ConditionalJump[IF_ICMPNE] #EP -> #EQ
+===#Block AO(size=11, flags=0)===
+ 0. throw new java/lang/RuntimeException("Failed to proper vm");
+ 1. if (java.lang.StrictMath.floorMod(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10), 218158239) != 118257104)
+ goto AO
+ 2. if (java.lang.StrictMath.floorMod(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10), 218158239) != {1846145018 ^ lvar10})
+ goto AO
+ 3. lvar136 = "[Constant] 1748173870 -> 1846145018 predicate=104524756";
+ 4. _consume({1422396881 ^ lvar10});
+ 5. throw new java/lang/IllegalAccessException("Failed to proper vm");
+ 6. if (java.lang.StrictMath.abs(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != 161914808)
+ goto AO
+ 7. if (java.lang.StrictMath.abs(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != {1048097773 ^ lvar10})
+ goto AO
+ 8. lvar138 = "[Constant] 943872057 -> 1048097773 predicate=104524756";
+ 9. _consume({1106757231 ^ lvar10});
+ 10. throw new java/lang/RuntimeException("double");
+ -> ConditionalJump[IF_ICMPNE] #AO -> #AO
+ <- ConditionalJump[IF_ICMPNE] #Y -> #AO
+ <- ConditionalJump[IF_ICMPNE] #U -> #AO
+ <- ConditionalJump[IF_ICMPNE] #AO -> #AO
+ <- DefaultSwitch #CH -> #AO
+ <- Switch[1956248668] #CH -> #AO
+===#Block AV(size=6, flags=0)===
+ 0. throw new java/lang/IllegalAccessException("Failed to proper vm");
+ 1. if (java.lang.StrictMath.floorDiv(1751083165, pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != 23)
+ goto AV
+ 2. if (java.lang.StrictMath.floorDiv(1751083165, pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != {575435872 ^ lvar10})
+ goto AV
+ 3. lvar140 = "[Constant] 737862807 -> 575435872 predicate=162959607";
+ 4. _consume({2037543923 ^ lvar10});
+ 5. throw new java/lang/RuntimeException("double");
+ -> ConditionalJump[IF_ICMPNE] #AV -> #AV
+ <- ConditionalJump[IF_ICMPNE] #V -> #AV
+ <- Switch[158492781] #CA -> #AV
+ <- DefaultSwitch #CA -> #AV
+ <- ConditionalJump[IF_ICMPNE] #AV -> #AV
+===#Block CE(size=1, flags=0)===
+ 0. throw new java/lang/IllegalAccessException("CD --> L # Failed to match seed of type Unconditional and value 920850578");
+ <- ConditionalJump[IF_ICMPNE] #CD -> #CE
+===#Block AN(size=6, flags=0)===
+ 0. throw new java/lang/RuntimeException("Failed to proper vm");
+ 1. if (java.lang.Math.absExact(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != 26034181)
+ goto AN
+ 2. if (java.lang.Math.absExact(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != {776031309 ^ lvar10})
+ goto AN
+ 3. lvar86 = "[Constant] 1959685424 -> 776031309 predicate=1519329661";
+ 4. _consume({284603248 ^ lvar10});
+ 5. throw new java/lang/RuntimeException("double");
+ -> ConditionalJump[IF_ICMPNE] #AN -> #AN
+ <- DefaultSwitch #BI -> #AN
+ <- ConditionalJump[IF_ICMPNE] #AH -> #AN
+ <- ConditionalJump[IF_ICMPNE] #AN -> #AN
+ <- Switch[1599618100] #BI -> #AN
+===#Block BG(size=1, flags=0)===
+ 0. throw new java/lang/IllegalAccessException(new java/lang/StringBuilder("A --> B # Failed to match seed of type Immediate and value 1573158791 and got ").append(lvar10).toString());
+ <- ConditionalJump[IF_ICMPNE] #A -> #BG
diff --git a/dev.skidfuscator.obfuscator/skidfuscator-error-arq.txt b/dev.skidfuscator.obfuscator/skidfuscator-error-arq.txt
new file mode 100644
index 0000000..de948ac
--- /dev/null
+++ b/dev.skidfuscator.obfuscator/skidfuscator-error-arq.txt
@@ -0,0 +1,694 @@
+handler=Block #AX, types=[Ljava/lang/IllegalStateException;], range=[Block #C, Block #D, Block #E, Block #G, Block #F, Block #I, Block #H]
+handler=Block #BG, types=[Ljavax/crypto/BadPaddingException;, Ljavax/crypto/IllegalBlockSizeException;, Ljavax/crypto/NoSuchPaddingException;, Ljava/security/InvalidKeyException;, Ljava/security/NoSuchAlgorithmException;], range=[Block #C, Block #D, Block #E, Block #G, Block #F, Block #I, Block #H]
+handler=Block #BP, types=[Ljava/io/IOException;], range=[Block #P, Block #O]
+handler=Block #BT, types=[Ljava/lang/IllegalAccessException;], range=[Block #S, Block #R]
+handler=Block #BX, types=[Ljava/lang/IllegalAccessException;], range=[Block #V, Block #U]
+handler=Block #CB, types=[Ljava/io/IOException;], range=[Block #Y, Block #X]
+===#Block A(size=4, flags=1)===
+ 0. lvar10 = {121108282 ^ {411229400 ^ 973850498}};
+ 1. synth(lvar0 = lvar0);
+ 2. if ({65537 % {155 * ({1231600938 ^ java.lang.Integer.numberOfTrailingZeros(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {155 * ({1231600938 ^ 2})}})
+ goto AA
+ 3. lvar10 = {1245982948 ^ lvar10};
+ -> ConditionalJump[IF_ICMPNE] #A -> #AA
+ -> Immediate #A -> #B
+===#Block B(size=1, flags=0)===
+ 0. lvar10 = {342164135 ^ lvar10};
+ -> Immediate #B -> #C
+ <- Immediate #A -> #B
+===#Block C(size=4, flags=0)===
+ 0. _consume(dev.skidfuscator.testclasses.opaque.OpaqueConditionClazz$AES.main(new java.lang.String[{2074074659 ^ lvar10}]));
+ 1. if (dev.skidfuscator.testclasses.exclusion.UnobfuscatedTestClass.data[{2074074659 ^ lvar10}] != {2074074659 ^ lvar10})
+ goto AT
+ 2. if ({65537 % {93 * ({1687319821 ^ java.text.CollationElementIterator.primaryOrder(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {93 * ({1687319821 ^ 3973})}})
+ goto AI
+ 3. lvar10 = {2032112291 ^ lvar10};
+ -> TryCatch range: [C...H] -> AX ([Ljava/lang/IllegalStateException;])
+ -> Immediate #C -> #D
+ -> ConditionalJump[IF_ICMPNE] #C -> #AT
+ -> ConditionalJump[IF_ICMPNE] #C -> #AI
+ -> TryCatch range: [C...H] -> BG ([Ljavax/crypto/BadPaddingException;, Ljavax/crypto/IllegalBlockSizeException;, Ljavax/crypto/NoSuchPaddingException;, Ljava/security/InvalidKeyException;, Ljava/security/NoSuchAlgorithmException;])
+ <- Immediate #B -> #C
+===#Block AI(size=4, flags=0)===
+ 0. if ({65537 % {23 * ({1201895448 ^ java.text.CollationElementIterator.primaryOrder(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {23 * ({1201895448 ^ 3973})}})
+ goto AI
+ 1. if ({65537 % {37 * ({908644760 ^ java.text.CollationElementIterator.primaryOrder(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {37 * ({908644760 ^ {151745895 ^ lvar10}})}})
+ goto AI
+ 2. _consume({1449725187 ^ lvar10});
+ 3. throw new java/lang/RuntimeException("double");
+ -> ConditionalJump[IF_ICMPNE] #AI -> #AI
+ <- ConditionalJump[IF_ICMPNE] #AI -> #AI
+ <- ConditionalJump[IF_ICMPNE] #C -> #AI
+===#Block AT(size=1, flags=10100)===
+ 0. switch (dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10)) {
+ case 199801669:
+ goto #AB
+ case 260425212:
+ goto #AU
+ case 866115707:
+ goto #I
+ case 1930052144:
+ goto #AT
+ default:
+ goto #AB
+ }
+ -> Immediate #AT -> #AU
+ -> Switch[1930052144] #AT -> #AT
+ -> DefaultSwitch #AT -> #AB
+ -> Switch[866115707] #AT -> #I
+ -> Switch[260425212] #AT -> #AU
+ -> Switch[199801669] #AT -> #AB
+ <- Switch[1930052144] #AT -> #AT
+ <- ConditionalJump[IF_ICMPNE] #C -> #AT
+===#Block AU(size=2, flags=100)===
+ 0. lvar10 = {1394522035 ^ lvar10};
+ 1. goto I
+ -> UnconditionalJump[GOTO] #AU -> #I
+ <- Immediate #AT -> #AU
+ <- Switch[260425212] #AT -> #AU
+===#Block I(size=4, flags=0)===
+ 0. lvar5 = new java.lang.IllegalArgumentException;
+ 1. _consume(lvar5.(dynamic_invoke(java.lang.invoke.StringConcatFactory.makeConcatWithConstants("Failed test! Stage: ", {679569810 ^ lvar10}))));
+ 2. throw lvar5;
+ 3. if ({65537 % {125 * ({1324992040 ^ java.lang.Math.floorDiv(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10), 1688355228)})}} != {65537 % {125 * ({1324992040 ^ 0})}})
+ goto AB
+ -> ConditionalJump[IF_ICMPNE] #I -> #AB
+ -> TryCatch range: [C...H] -> AX ([Ljava/lang/IllegalStateException;])
+ -> TryCatch range: [C...H] -> BG ([Ljavax/crypto/BadPaddingException;, Ljavax/crypto/IllegalBlockSizeException;, Ljavax/crypto/NoSuchPaddingException;, Ljava/security/InvalidKeyException;, Ljava/security/NoSuchAlgorithmException;])
+ <- Switch[866115707] #AT -> #I
+ <- UnconditionalJump[GOTO] #AU -> #I
+===#Block D(size=3, flags=0)===
+ 0. svar12 = {dev.skidfuscator.testclasses.exclusion.UnobfuscatedTestClass.data[{41962625 ^ lvar10}] ^ lvar10};
+ 1. switch (dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(svar12)) {
+ case 39339320:
+ goto #AV
+ default:
+ goto #AW
+ }
+ 2. if ({65537 % {189 * ({788652090 ^ java.lang.Math.addExact(1373963789, dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {189 * ({788652090 ^ 1413303109})}})
+ goto AH
+ -> Switch[39339320] #D -> #AV
+ -> TryCatch range: [C...H] -> AX ([Ljava/lang/IllegalStateException;])
+ -> DefaultSwitch #D -> #AW
+ -> TryCatch range: [C...H] -> BG ([Ljavax/crypto/BadPaddingException;, Ljavax/crypto/IllegalBlockSizeException;, Ljavax/crypto/NoSuchPaddingException;, Ljava/security/InvalidKeyException;, Ljava/security/NoSuchAlgorithmException;])
+ -> ConditionalJump[IF_ICMPNE] #D -> #AH
+ <- Immediate #C -> #D
+===#Block AH(size=4, flags=0)===
+ 0. if ({65537 % {85 * ({877467349 ^ java.lang.Math.addExact(1373963789, dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {85 * ({877467349 ^ 1413303109})}})
+ goto AH
+ 1. if ({65537 % {45 * ({216586328 ^ java.lang.Math.addExact(1373963789, dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {45 * ({216586328 ^ {59536465 ^ lvar10}})}})
+ goto AH
+ 2. _consume({2076725377 ^ lvar10});
+ 3. throw new java/lang/IllegalAccessException("double");
+ -> ConditionalJump[IF_ICMPNE] #AH -> #AH
+ <- ConditionalJump[IF_ICMPNE] #AH -> #AH
+ <- ConditionalJump[IF_ICMPNE] #D -> #AH
+===#Block AW(size=2, flags=10100)===
+ 0. lvar10 = dev.skidfuscator.testclasses.exclusion.UnobfuscatedTestClass.eenrhxofanhihblp(lvar10, 2130205897);
+ 1. goto F
+ -> UnconditionalJump[GOTO] #AW -> #F
+ <- DefaultSwitch #D -> #AW
+===#Block F(size=3, flags=0)===
+ 0. lvar7 = {-2088243278 ^ lvar10};
+ 1. if ({65537 % {191 * ({39871346 ^ java.lang.Character.toLowerCase(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {191 * ({39871346 ^ 19457013})}})
+ goto AC
+ 2. goto AL
+ -> TryCatch range: [C...H] -> BG ([Ljavax/crypto/BadPaddingException;, Ljavax/crypto/IllegalBlockSizeException;, Ljavax/crypto/NoSuchPaddingException;, Ljava/security/InvalidKeyException;, Ljava/security/NoSuchAlgorithmException;])
+ -> UnconditionalJump[GOTO] #F -> #AL
+ -> ConditionalJump[IF_ICMPNE] #F -> #AC
+ -> TryCatch range: [C...H] -> AX ([Ljava/lang/IllegalStateException;])
+ <- UnconditionalJump[GOTO] #AW -> #F
+===#Block AL(size=2, flags=10100)===
+ 0. lvar10 = {1848747158 ^ lvar10};
+ 1. goto Y
+ -> UnconditionalJump[GOTO] #AL -> #Y
+ <- UnconditionalJump[GOTO] #F -> #AL
+===#Block Y(size=3, flags=0)===
+ 0. if ({65537 % {65 * ({1038450005 ^ dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10)})}} == {65537 % {65 * ({1038450005 ^ 57596985})}})
+ goto X
+ 1. throw nullconst;
+ 2. if ({65537 % {61 * ({32761098 ^ java.lang.Integer.reverseBytes(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {61 * ({32761098 ^ 970747395})}})
+ goto AA
+ -> ConditionalJump[IF_ICMPEQ] #Y -> #X
+ -> ConditionalJump[IF_ICMPNE] #Y -> #AA
+ -> TryCatch range: [Y...X] -> CB ([Ljava/io/IOException;])
+ <- UnconditionalJump[GOTO] #AL -> #Y
+===#Block X(size=2, flags=0)===
+ 0. throw new java/io/IOException();
+ 1. if ({65537 % {113 * ({67551708 ^ java.lang.Character.digit('', dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {113 * ({67551708 ^ -1})}})
+ goto AA
+ -> TryCatch range: [Y...X] -> CB ([Ljava/io/IOException;])
+ -> ConditionalJump[IF_ICMPNE] #X -> #AA
+ <- ConditionalJump[IF_ICMPEQ] #Y -> #X
+===#Block CB(size=1, flags=0)===
+ 0. switch (dzmtsyhedbeyduip.bgzkmtovhuxplopt.qdkqxmbnisxwndcp(lvar10)) {
+ case -1840404744:
+ goto #CC
+ case 1702273875:
+ goto #CD
+ default:
+ goto #CE
+ }
+ -> DefaultSwitch #CB -> #CE
+ -> Switch[-1840404744] #CB -> #CC
+ -> Switch[1702273875] #CB -> #CD
+ <- TryCatch range: [Y...X] -> CB ([Ljava/io/IOException;])
+ <- TryCatch range: [Y...X] -> CB ([Ljava/io/IOException;])
+===#Block CD(size=2, flags=10100)===
+ 0. lvar10 = dev.skidfuscator.testclasses.exclusion.UnobfuscatedTestClass.eenrhxofanhihblp(lvar10, 1785353420);
+ 1. goto Z
+ -> UnconditionalJump[GOTO] #CD -> #Z
+ <- Switch[1702273875] #CB -> #CD
+===#Block CC(size=2, flags=10100)===
+ 0. lvar10 = {344798329 ^ lvar10};
+ 1. goto Z
+ -> UnconditionalJump[GOTO] #CC -> #Z
+ <- Switch[-1840404744] #CB -> #CC
+===#Block Z(size=3, flags=0)===
+ 0. _consume(catch());
+ 1. if ({65537 % {149 * ({1737487068 ^ java.lang.Integer.rotateLeft(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10), 1835327768)})}} != {65537 % {149 * ({1737487068 ^ 1594251326})}})
+ goto AB
+ 2. goto AP
+ -> UnconditionalJump[GOTO] #Z -> #AP
+ -> ConditionalJump[IF_ICMPNE] #Z -> #AB
+ <- UnconditionalJump[GOTO] #CD -> #Z
+ <- UnconditionalJump[GOTO] #CC -> #Z
+===#Block AP(size=2, flags=10100)===
+ 0. lvar10 = {1240074118 ^ lvar10};
+ 1. goto H
+ -> UnconditionalJump[GOTO] #AP -> #H
+ <- UnconditionalJump[GOTO] #Z -> #AP
+===#Block CE(size=1, flags=0)===
+ 0. throw new java/lang/IllegalAccessException("Error in hash");
+ <- DefaultSwitch #CB -> #CE
+===#Block AV(size=2, flags=10100)===
+ 0. lvar10 = {1846021237 ^ lvar10};
+ 1. goto G
+ -> UnconditionalJump[GOTO] #AV -> #G
+ <- Switch[39339320] #D -> #AV
+===#Block G(size=3, flags=0)===
+ 0. lvar7 = {1820868854 ^ lvar10};
+ 1. if ({65537 % {45 * ({43072936 ^ java.lang.Integer.rotateLeft(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10), 2103019665)})}} != {65537 % {45 * ({43072936 ^ 581174415})}})
+ goto AC
+ 2. goto AN
+ -> TryCatch range: [C...H] -> BG ([Ljavax/crypto/BadPaddingException;, Ljavax/crypto/IllegalBlockSizeException;, Ljavax/crypto/NoSuchPaddingException;, Ljava/security/InvalidKeyException;, Ljava/security/NoSuchAlgorithmException;])
+ -> TryCatch range: [C...H] -> AX ([Ljava/lang/IllegalStateException;])
+ -> UnconditionalJump[GOTO] #G -> #AN
+ -> ConditionalJump[IF_ICMPNE] #G -> #AC
+ <- UnconditionalJump[GOTO] #AV -> #G
+===#Block AN(size=2, flags=10100)===
+ 0. lvar10 = dev.skidfuscator.testclasses.exclusion.UnobfuscatedTestClass.eenrhxofanhihblp(lvar10, 1320850292);
+ 1. goto S
+ -> UnconditionalJump[GOTO] #AN -> #S
+ <- UnconditionalJump[GOTO] #G -> #AN
+===#Block S(size=3, flags=0)===
+ 0. if ({65537 % {173 * ({1173346919 ^ dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10)})}} == {65537 % {173 * ({1173346919 ^ 37903355})}})
+ goto R
+ 1. throw nullconst;
+ 2. if ({65537 % {153 * ({1875527437 ^ java.lang.Character.toLowerCase(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {153 * ({1875527437 ^ 37903355})}})
+ goto AB
+ -> ConditionalJump[IF_ICMPNE] #S -> #AB
+ -> ConditionalJump[IF_ICMPEQ] #S -> #R
+ -> TryCatch range: [S...R] -> BT ([Ljava/lang/IllegalAccessException;])
+ <- UnconditionalJump[GOTO] #AN -> #S
+===#Block R(size=2, flags=0)===
+ 0. throw new java/lang/IllegalAccessException();
+ 1. if ({65537 % {179 * ({397001432 ^ java.lang.Integer.hashCode(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {179 * ({397001432 ^ 109960954})}})
+ goto AJ
+ -> ConditionalJump[IF_ICMPNE] #R -> #AJ
+ -> TryCatch range: [S...R] -> BT ([Ljava/lang/IllegalAccessException;])
+ <- ConditionalJump[IF_ICMPEQ] #S -> #R
+===#Block BT(size=1, flags=0)===
+ 0. switch (dzmtsyhedbeyduip.bgzkmtovhuxplopt.qdkqxmbnisxwndcp(lvar10)) {
+ case 295083017:
+ goto #BU
+ case 938318296:
+ goto #BV
+ default:
+ goto #BW
+ }
+ -> Switch[938318296] #BT -> #BV
+ -> DefaultSwitch #BT -> #BW
+ -> Switch[295083017] #BT -> #BU
+ <- TryCatch range: [S...R] -> BT ([Ljava/lang/IllegalAccessException;])
+ <- TryCatch range: [S...R] -> BT ([Ljava/lang/IllegalAccessException;])
+===#Block BU(size=2, flags=10100)===
+ 0. lvar10 = {581257794 ^ lvar10};
+ 1. goto T
+ -> UnconditionalJump[GOTO] #BU -> #T
+ <- Switch[295083017] #BT -> #BU
+===#Block BW(size=1, flags=0)===
+ 0. throw new java/lang/RuntimeException("Error in hash");
+ <- DefaultSwitch #BT -> #BW
+===#Block BV(size=2, flags=10100)===
+ 0. lvar10 = {107621112 ^ lvar10};
+ 1. goto T
+ -> UnconditionalJump[GOTO] #BV -> #T
+ <- Switch[938318296] #BT -> #BV
+===#Block T(size=3, flags=0)===
+ 0. _consume(catch());
+ 1. if ({65537 % {15 * ({1729336264 ^ java.awt.event.KeyEvent.getExtendedKeyCodeForChar(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {15 * ({1729336264 ^ 0})}})
+ goto AA
+ 2. goto AO
+ -> ConditionalJump[IF_ICMPNE] #T -> #AA
+ -> UnconditionalJump[GOTO] #T -> #AO
+ <- UnconditionalJump[GOTO] #BU -> #T
+ <- UnconditionalJump[GOTO] #BV -> #T
+===#Block AO(size=2, flags=10100)===
+ 0. lvar10 = {1337532131 ^ lvar10};
+ 1. goto H
+ -> UnconditionalJump[GOTO] #AO -> #H
+ <- UnconditionalJump[GOTO] #T -> #AO
+===#Block H(size=5, flags=0)===
+ 0. _consume(lvar0.self(lvar7, 1754638706));
+ 1. lvar2 = new java.lang.IllegalArgumentException;
+ 2. _consume(lvar2.(dynamic_invoke(java.lang.invoke.StringConcatFactory.makeConcatWithConstants("Failed test! Stage: ", lvar7))));
+ 3. throw lvar2;
+ 4. if ({65537 % {129 * ({2108348666 ^ java.lang.Integer.compare(1198832818, dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {129 * ({2108348666 ^ 1})}})
+ goto AD
+ -> TryCatch range: [C...H] -> AX ([Ljava/lang/IllegalStateException;])
+ -> TryCatch range: [C...H] -> BG ([Ljavax/crypto/BadPaddingException;, Ljavax/crypto/IllegalBlockSizeException;, Ljavax/crypto/NoSuchPaddingException;, Ljava/security/InvalidKeyException;, Ljava/security/NoSuchAlgorithmException;])
+ -> ConditionalJump[IF_ICMPNE] #H -> #AD
+ <- UnconditionalJump[GOTO] #AP -> #H
+ <- UnconditionalJump[GOTO] #AQ -> #H
+ <- UnconditionalJump[GOTO] #AO -> #H
+===#Block AJ(size=4, flags=0)===
+ 0. if ({65537 % {97 * ({1331006998 ^ java.lang.Integer.hashCode(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {97 * ({1331006998 ^ 109960954})}})
+ goto AJ
+ 1. if ({65537 % {103 * ({1085177758 ^ java.lang.Integer.hashCode(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {103 * ({1085177758 ^ {891184122 ^ lvar10}})}})
+ goto AJ
+ 2. _consume({675117789 ^ lvar10});
+ 3. throw new java/io/IOException("double");
+ -> ConditionalJump[IF_ICMPNE] #AJ -> #AJ
+ <- ConditionalJump[IF_ICMPNE] #R -> #AJ
+ <- ConditionalJump[IF_ICMPNE] #AJ -> #AJ
+===#Block BG(size=1, flags=0)===
+ 0. switch (dzmtsyhedbeyduip.bgzkmtovhuxplopt.qdkqxmbnisxwndcp(lvar10)) {
+ case -587271909:
+ goto #BH
+ case -473922997:
+ goto #BL
+ case 58845571:
+ goto #BJ
+ case 335700992:
+ goto #BI
+ case 1141591169:
+ goto #BM
+ case 1682048939:
+ goto #BK
+ case 2037659906:
+ goto #BN
+ default:
+ goto #BO
+ }
+ -> Switch[335700992] #BG -> #BI
+ -> DefaultSwitch #BG -> #BO
+ -> Switch[-587271909] #BG -> #BH
+ -> Switch[1682048939] #BG -> #BK
+ -> Switch[1141591169] #BG -> #BM
+ -> Switch[58845571] #BG -> #BJ
+ -> Switch[-473922997] #BG -> #BL
+ -> Switch[2037659906] #BG -> #BN
+ <- TryCatch range: [C...H] -> BG ([Ljavax/crypto/BadPaddingException;, Ljavax/crypto/IllegalBlockSizeException;, Ljavax/crypto/NoSuchPaddingException;, Ljava/security/InvalidKeyException;, Ljava/security/NoSuchAlgorithmException;])
+ <- TryCatch range: [C...H] -> BG ([Ljavax/crypto/BadPaddingException;, Ljavax/crypto/IllegalBlockSizeException;, Ljavax/crypto/NoSuchPaddingException;, Ljava/security/InvalidKeyException;, Ljava/security/NoSuchAlgorithmException;])
+ <- TryCatch range: [C...H] -> BG ([Ljavax/crypto/BadPaddingException;, Ljavax/crypto/IllegalBlockSizeException;, Ljavax/crypto/NoSuchPaddingException;, Ljava/security/InvalidKeyException;, Ljava/security/NoSuchAlgorithmException;])
+ <- TryCatch range: [C...H] -> BG ([Ljavax/crypto/BadPaddingException;, Ljavax/crypto/IllegalBlockSizeException;, Ljavax/crypto/NoSuchPaddingException;, Ljava/security/InvalidKeyException;, Ljava/security/NoSuchAlgorithmException;])
+ <- TryCatch range: [C...H] -> BG ([Ljavax/crypto/BadPaddingException;, Ljavax/crypto/IllegalBlockSizeException;, Ljavax/crypto/NoSuchPaddingException;, Ljava/security/InvalidKeyException;, Ljava/security/NoSuchAlgorithmException;])
+ <- TryCatch range: [C...H] -> BG ([Ljavax/crypto/BadPaddingException;, Ljavax/crypto/IllegalBlockSizeException;, Ljavax/crypto/NoSuchPaddingException;, Ljava/security/InvalidKeyException;, Ljava/security/NoSuchAlgorithmException;])
+ <- TryCatch range: [C...H] -> BG ([Ljavax/crypto/BadPaddingException;, Ljavax/crypto/IllegalBlockSizeException;, Ljavax/crypto/NoSuchPaddingException;, Ljava/security/InvalidKeyException;, Ljava/security/NoSuchAlgorithmException;])
+===#Block BN(size=2, flags=10100)===
+ 0. lvar10 = {2094980488 ^ lvar10};
+ 1. goto J
+ -> UnconditionalJump[GOTO] #BN -> #J
+ <- Switch[2037659906] #BG -> #BN
+===#Block BL(size=2, flags=10100)===
+ 0. lvar10 = {1334332129 ^ lvar10};
+ 1. goto J
+ -> UnconditionalJump[GOTO] #BL -> #J
+ <- Switch[-473922997] #BG -> #BL
+===#Block BJ(size=2, flags=10100)===
+ 0. lvar10 = {1400924056 ^ lvar10};
+ 1. goto J
+ -> UnconditionalJump[GOTO] #BJ -> #J
+ <- Switch[58845571] #BG -> #BJ
+===#Block BM(size=2, flags=10100)===
+ 0. lvar10 = {460403512 ^ lvar10};
+ 1. goto J
+ -> UnconditionalJump[GOTO] #BM -> #J
+ <- Switch[1141591169] #BG -> #BM
+===#Block BK(size=2, flags=10100)===
+ 0. lvar10 = {1601706589 ^ lvar10};
+ 1. goto J
+ -> UnconditionalJump[GOTO] #BK -> #J
+ <- Switch[1682048939] #BG -> #BK
+===#Block BH(size=2, flags=10100)===
+ 0. lvar10 = {1215267979 ^ lvar10};
+ 1. goto J
+ -> UnconditionalJump[GOTO] #BH -> #J
+ <- Switch[-587271909] #BG -> #BH
+===#Block BO(size=1, flags=0)===
+ 0. throw new java/lang/RuntimeException("Error in hash");
+ <- DefaultSwitch #BG -> #BO
+===#Block BI(size=2, flags=10100)===
+ 0. lvar10 = {829429288 ^ lvar10};
+ 1. goto J
+ -> UnconditionalJump[GOTO] #BI -> #J
+ <- Switch[335700992] #BG -> #BI
+===#Block J(size=5, flags=0)===
+ 0. lvar1 = catch();
+ 1. _consume(lvar1.printStackTrace());
+ 2. lvar6 = {-871389865 ^ lvar10};
+ 3. if ({65537 % {73 * ({704406811 ^ java.lang.StrictMath.absExact(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {73 * ({704406811 ^ 77700181})}})
+ goto AC
+ 4. lvar10 = {438503329 ^ lvar10};
+ -> Immediate #J -> #L
+ -> ConditionalJump[IF_ICMPNE] #J -> #AC
+ <- UnconditionalJump[GOTO] #BH -> #J
+ <- UnconditionalJump[GOTO] #BN -> #J
+ <- UnconditionalJump[GOTO] #BL -> #J
+ <- UnconditionalJump[GOTO] #BM -> #J
+ <- UnconditionalJump[GOTO] #BI -> #J
+ <- UnconditionalJump[GOTO] #BK -> #J
+ <- UnconditionalJump[GOTO] #BJ -> #J
+===#Block AX(size=1, flags=0)===
+ 0. switch (dzmtsyhedbeyduip.bgzkmtovhuxplopt.qdkqxmbnisxwndcp(lvar10)) {
+ case -587271909:
+ goto #AY
+ case -473922997:
+ goto #BC
+ case 58845571:
+ goto #BA
+ case 335700992:
+ goto #AZ
+ case 1141591169:
+ goto #BD
+ case 1682048939:
+ goto #BB
+ case 2037659906:
+ goto #BE
+ default:
+ goto #BF
+ }
+ -> Switch[1141591169] #AX -> #BD
+ -> Switch[335700992] #AX -> #AZ
+ -> Switch[58845571] #AX -> #BA
+ -> Switch[-587271909] #AX -> #AY
+ -> Switch[1682048939] #AX -> #BB
+ -> Switch[2037659906] #AX -> #BE
+ -> DefaultSwitch #AX -> #BF
+ -> Switch[-473922997] #AX -> #BC
+ <- TryCatch range: [C...H] -> AX ([Ljava/lang/IllegalStateException;])
+ <- TryCatch range: [C...H] -> AX ([Ljava/lang/IllegalStateException;])
+ <- TryCatch range: [C...H] -> AX ([Ljava/lang/IllegalStateException;])
+ <- TryCatch range: [C...H] -> AX ([Ljava/lang/IllegalStateException;])
+ <- TryCatch range: [C...H] -> AX ([Ljava/lang/IllegalStateException;])
+ <- TryCatch range: [C...H] -> AX ([Ljava/lang/IllegalStateException;])
+ <- TryCatch range: [C...H] -> AX ([Ljava/lang/IllegalStateException;])
+===#Block BC(size=2, flags=10100)===
+ 0. lvar10 = dev.skidfuscator.testclasses.exclusion.UnobfuscatedTestClass.eenrhxofanhihblp(lvar10, 1913741066);
+ 1. goto K
+ -> UnconditionalJump[GOTO] #BC -> #K
+ <- Switch[-473922997] #AX -> #BC
+===#Block BF(size=1, flags=0)===
+ 0. throw new java/io/IOException("Error in hash");
+ <- DefaultSwitch #AX -> #BF
+===#Block BE(size=2, flags=10100)===
+ 0. lvar10 = dev.skidfuscator.testclasses.exclusion.UnobfuscatedTestClass.eenrhxofanhihblp(lvar10, 1095223395);
+ 1. goto K
+ -> UnconditionalJump[GOTO] #BE -> #K
+ <- Switch[2037659906] #AX -> #BE
+===#Block BB(size=2, flags=10100)===
+ 0. lvar10 = {1658916790 ^ lvar10};
+ 1. goto K
+ -> UnconditionalJump[GOTO] #BB -> #K
+ <- Switch[1682048939] #AX -> #BB
+===#Block AY(size=2, flags=10100)===
+ 0. lvar10 = dev.skidfuscator.testclasses.exclusion.UnobfuscatedTestClass.eenrhxofanhihblp(lvar10, 1979093344);
+ 1. goto K
+ -> UnconditionalJump[GOTO] #AY -> #K
+ <- Switch[-587271909] #AX -> #AY
+===#Block BA(size=2, flags=10100)===
+ 0. lvar10 = dev.skidfuscator.testclasses.exclusion.UnobfuscatedTestClass.eenrhxofanhihblp(lvar10, 1847161459);
+ 1. goto K
+ -> UnconditionalJump[GOTO] #BA -> #K
+ <- Switch[58845571] #AX -> #BA
+===#Block AZ(size=2, flags=10100)===
+ 0. lvar10 = {216597443 ^ lvar10};
+ 1. goto K
+ -> UnconditionalJump[GOTO] #AZ -> #K
+ <- Switch[335700992] #AX -> #AZ
+===#Block BD(size=2, flags=10100)===
+ 0. lvar10 = {652748499 ^ lvar10};
+ 1. goto K
+ -> UnconditionalJump[GOTO] #BD -> #K
+ <- Switch[1141591169] #AX -> #BD
+===#Block K(size=4, flags=0)===
+ 0. lvar4 = catch();
+ 1. lvar6 = {241782599 ^ lvar10};
+ 2. if ({65537 % {123 * ({369185384 ^ java.lang.Integer.signum(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {123 * ({369185384 ^ 1})}})
+ goto AA
+ 3. goto AK
+ -> ConditionalJump[IF_ICMPNE] #K -> #AA
+ -> UnconditionalJump[GOTO] #K -> #AK
+ <- UnconditionalJump[GOTO] #BD -> #K
+ <- UnconditionalJump[GOTO] #AY -> #K
+ <- UnconditionalJump[GOTO] #BB -> #K
+ <- UnconditionalJump[GOTO] #BA -> #K
+ <- UnconditionalJump[GOTO] #BE -> #K
+ <- UnconditionalJump[GOTO] #BC -> #K
+ <- UnconditionalJump[GOTO] #AZ -> #K
+===#Block AK(size=2, flags=10100)===
+ 0. lvar10 = dev.skidfuscator.testclasses.exclusion.UnobfuscatedTestClass.eenrhxofanhihblp(lvar10, 916929795);
+ 1. goto V
+ -> UnconditionalJump[GOTO] #AK -> #V
+ <- UnconditionalJump[GOTO] #K -> #AK
+===#Block V(size=3, flags=0)===
+ 0. if ({65537 % {61 * ({1279470676 ^ dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10)})}} == {65537 % {61 * ({1279470676 ^ 235914642})}})
+ goto U
+ 1. throw nullconst;
+ 2. if ({65537 % {139 * ({1681635630 ^ java.lang.StrictMath.min(1394584022, dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {139 * ({1681635630 ^ 235914642})}})
+ goto AB
+ -> ConditionalJump[IF_ICMPEQ] #V -> #U
+ -> TryCatch range: [V...U] -> BX ([Ljava/lang/IllegalAccessException;])
+ -> ConditionalJump[IF_ICMPNE] #V -> #AB
+ <- UnconditionalJump[GOTO] #AK -> #V
+===#Block AB(size=13, flags=0)===
+ 0. if ({65537 % {197 * ({1678716225 ^ java.lang.Integer.rotateLeft(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10), 1835327768)})}} != {65537 % {197 * ({1678716225 ^ 1594251326})}})
+ goto AB
+ 1. if ({65537 % {199 * ({608936940 ^ java.lang.Integer.rotateLeft(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10), 1835327768)})}} != {65537 % {199 * ({608936940 ^ {249054319 ^ lvar10}})}})
+ goto AB
+ 2. _consume({1597765569 ^ lvar10});
+ 3. if ({65537 % {33 * ({986401313 ^ java.lang.Character.toLowerCase(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {33 * ({986401313 ^ 37903355})}})
+ goto AB
+ 4. if ({65537 % {147 * ({219066752 ^ java.lang.Character.toLowerCase(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {147 * ({219066752 ^ {1476657618 ^ lvar10}})}})
+ goto AB
+ 5. _consume({326075738 ^ lvar10});
+ 6. if ({65537 % {17 * ({581176272 ^ java.lang.StrictMath.min(1394584022, dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {17 * ({581176272 ^ 235914642})}})
+ goto AB
+ 7. if ({65537 % {165 * ({1147761769 ^ java.lang.StrictMath.min(1394584022, dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {165 * ({1147761769 ^ {1299469601 ^ lvar10}})}})
+ goto AB
+ 8. _consume({401168802 ^ lvar10});
+ 9. if ({65537 % {135 * ({954340815 ^ java.lang.Math.floorDiv(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10), 1688355228)})}} != {65537 % {135 * ({954340815 ^ 0})}})
+ goto AB
+ 10. if ({65537 % {75 * ({1167888247 ^ java.lang.Math.floorDiv(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10), 1688355228)})}} != {65537 % {75 * ({1167888247 ^ {2066039075 ^ lvar10}})}})
+ goto AB
+ 11. _consume({805523482 ^ lvar10});
+ 12. throw new java/lang/IllegalAccessException("double");
+ -> ConditionalJump[IF_ICMPNE] #AB -> #AB
+ <- ConditionalJump[IF_ICMPNE] #I -> #AB
+ <- ConditionalJump[IF_ICMPNE] #V -> #AB
+ <- ConditionalJump[IF_ICMPNE] #Z -> #AB
+ <- ConditionalJump[IF_ICMPNE] #S -> #AB
+ <- DefaultSwitch #AT -> #AB
+ <- ConditionalJump[IF_ICMPNE] #AB -> #AB
+ <- Switch[199801669] #AT -> #AB
+===#Block U(size=2, flags=0)===
+ 0. throw new java/lang/IllegalAccessException();
+ 1. if ({65537 % {147 * ({2110620885 ^ java.lang.Math.incrementExact(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {147 * ({2110620885 ^ 111804805})}})
+ goto AD
+ -> TryCatch range: [V...U] -> BX ([Ljava/lang/IllegalAccessException;])
+ -> ConditionalJump[IF_ICMPNE] #U -> #AD
+ <- ConditionalJump[IF_ICMPEQ] #V -> #U
+===#Block BX(size=1, flags=0)===
+ 0. switch (dzmtsyhedbeyduip.bgzkmtovhuxplopt.qdkqxmbnisxwndcp(lvar10)) {
+ case -965504511:
+ goto #BY
+ case -92411261:
+ goto #BZ
+ default:
+ goto #CA
+ }
+ -> Switch[-92411261] #BX -> #BZ
+ -> DefaultSwitch #BX -> #CA
+ -> Switch[-965504511] #BX -> #BY
+ <- TryCatch range: [V...U] -> BX ([Ljava/lang/IllegalAccessException;])
+ <- TryCatch range: [V...U] -> BX ([Ljava/lang/IllegalAccessException;])
+===#Block BY(size=2, flags=10100)===
+ 0. lvar10 = {920631171 ^ lvar10};
+ 1. goto W
+ -> UnconditionalJump[GOTO] #BY -> #W
+ <- Switch[-965504511] #BX -> #BY
+===#Block CA(size=1, flags=0)===
+ 0. throw new java/lang/IllegalAccessException("Error in hash");
+ <- DefaultSwitch #BX -> #CA
+===#Block BZ(size=2, flags=10100)===
+ 0. lvar10 = {1902016659 ^ lvar10};
+ 1. goto W
+ -> UnconditionalJump[GOTO] #BZ -> #W
+ <- Switch[-92411261] #BX -> #BZ
+===#Block W(size=3, flags=0)===
+ 0. _consume(catch());
+ 1. if ({65537 % {25 * ({1063640007 ^ java.lang.Character.digit('', dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {25 * ({1063640007 ^ -1})}})
+ goto AE
+ 2. goto AR
+ -> UnconditionalJump[GOTO] #W -> #AR
+ -> ConditionalJump[IF_ICMPNE] #W -> #AE
+ <- UnconditionalJump[GOTO] #BZ -> #W
+ <- UnconditionalJump[GOTO] #BY -> #W
+===#Block AR(size=2, flags=10100)===
+ 0. lvar10 = {667064522 ^ lvar10};
+ 1. goto L
+ -> UnconditionalJump[GOTO] #AR -> #L
+ <- UnconditionalJump[GOTO] #W -> #AR
+===#Block L(size=3, flags=0)===
+ 0. if (dev.skidfuscator.testclasses.exclusion.UnobfuscatedTestClass.data[{701717771 ^ lvar10}] == lvar6)
+ goto AS
+ 1. if ({65537 % {169 * ({1558692472 ^ java.lang.Integer.signum(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {169 * ({1558692472 ^ 1})}})
+ goto AE
+ 2. lvar10 = {392508312 ^ lvar10};
+ -> Immediate #L -> #M
+ -> ConditionalJump[IF_ICMPNE] #L -> #AE
+ -> ConditionalJump[IF_ICMPEQ] #L -> #AS
+ <- Immediate #J -> #L
+ <- UnconditionalJump[GOTO] #AR -> #L
+===#Block AS(size=2, flags=10100)===
+ 0. lvar10 = {459417745 ^ lvar10};
+ 1. goto N
+ -> UnconditionalJump[GOTO] #AS -> #N
+ <- ConditionalJump[IF_ICMPEQ] #L -> #AS
+===#Block N(size=2, flags=0)===
+ 0. return;
+ 1. if ({65537 % {129 * ({1465931937 ^ java.lang.Character.getType(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {129 * ({1465931937 ^ 0})}})
+ goto AC
+ -> ConditionalJump[IF_ICMPNE] #N -> #AC
+ <- UnconditionalJump[GOTO] #AS -> #N
+===#Block AC(size=13, flags=0)===
+ 0. if ({65537 % {65 * ({1301071467 ^ java.lang.Integer.rotateLeft(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10), 2103019665)})}} != {65537 % {65 * ({1301071467 ^ 581174415})}})
+ goto AC
+ 1. if ({65537 % {51 * ({1515029398 ^ java.lang.Integer.rotateLeft(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10), 2103019665)})}} != {65537 % {51 * ({1515029398 ^ {893981250 ^ lvar10}})}})
+ goto AC
+ 2. _consume({1446409840 ^ lvar10});
+ 3. if ({65537 % {115 * ({1178639310 ^ java.lang.Character.getType(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {115 * ({1178639310 ^ 0})}})
+ goto AC
+ 4. if ({65537 % {113 * ({1120077318 ^ java.lang.Character.getType(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {113 * ({1120077318 ^ {1156110062 ^ lvar10}})}})
+ goto AC
+ 5. _consume({906919752 ^ lvar10});
+ 6. if ({65537 % {31 * ({1643524366 ^ java.lang.Character.toLowerCase(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {31 * ({1643524366 ^ 19457013})}})
+ goto AC
+ 7. if ({65537 % {131 * ({1463875363 ^ java.lang.Character.toLowerCase(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {131 * ({1463875363 ^ {592625078 ^ lvar10}})}})
+ goto AC
+ 8. _consume({307640782 ^ lvar10});
+ 9. if ({65537 % {181 * ({1476078322 ^ java.lang.StrictMath.absExact(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {181 * ({1476078322 ^ 77700181})}})
+ goto AC
+ 10. if ({65537 % {17 * ({1506030693 ^ java.lang.StrictMath.absExact(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {17 * ({1506030693 ^ {833619153 ^ lvar10}})}})
+ goto AC
+ 11. _consume({271248693 ^ lvar10});
+ 12. throw new java/lang/RuntimeException("double");
+ -> ConditionalJump[IF_ICMPNE] #AC -> #AC
+ <- ConditionalJump[IF_ICMPNE] #F -> #AC
+ <- ConditionalJump[IF_ICMPNE] #G -> #AC
+ <- ConditionalJump[IF_ICMPNE] #J -> #AC
+ <- ConditionalJump[IF_ICMPNE] #N -> #AC
+ <- ConditionalJump[IF_ICMPNE] #AC -> #AC
+===#Block AE(size=7, flags=0)===
+ 0. if ({65537 % {171 * ({1117692001 ^ java.lang.Character.digit('', dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {171 * ({1117692001 ^ -1})}})
+ goto AE
+ 1. if ({65537 % {5 * ({330107120 ^ java.lang.Character.digit('', dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {5 * ({330107120 ^ {1216743580 ^ lvar10}})}})
+ goto AE
+ 2. _consume({1611630797 ^ lvar10});
+ 3. if ({65537 % {25 * ({1658682634 ^ java.lang.Integer.signum(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {25 * ({1658682634 ^ 1})}})
+ goto AE
+ 4. if ({65537 % {97 * ({1622527528 ^ java.lang.Integer.signum(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {97 * ({1622527528 ^ {1055780153 ^ lvar10}})}})
+ goto AE
+ 5. _consume({506337821 ^ lvar10});
+ 6. throw new java/lang/IllegalAccessException("double");
+ -> ConditionalJump[IF_ICMPNE] #AE -> #AE
+ <- ConditionalJump[IF_ICMPNE] #AE -> #AE
+ <- ConditionalJump[IF_ICMPNE] #L -> #AE
+ <- ConditionalJump[IF_ICMPNE] #W -> #AE
+===#Block M(size=4, flags=0)===
+ 0. lvar3 = new java.lang.IllegalArgumentException;
+ 1. _consume(lvar3.(dynamic_invoke(java.lang.invoke.StringConcatFactory.makeConcatWithConstants("Failed test! Stage: ", lvar6))));
+ 2. throw lvar3;
+ 3. if ({65537 % {195 * ({1354774324 ^ java.lang.StrictMath.floorMod(1820564784, dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {195 * ({1354774324 ^ 66420502})}})
+ goto AD
+ -> ConditionalJump[IF_ICMPNE] #M -> #AD
+ <- Immediate #L -> #M
+===#Block AD(size=10, flags=0)===
+ 0. if ({65537 % {119 * ({1537298630 ^ java.lang.Math.incrementExact(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {119 * ({1537298630 ^ 111804805})}})
+ goto AD
+ 1. if ({65537 % {195 * ({1386709888 ^ java.lang.Math.incrementExact(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {195 * ({1386709888 ^ {544039179 ^ lvar10}})}})
+ goto AD
+ 2. _consume({1904267273 ^ lvar10});
+ 3. if ({65537 % {149 * ({1260789343 ^ java.lang.StrictMath.floorMod(1820564784, dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {149 * ({1260789343 ^ 66420502})}})
+ goto AD
+ 4. if ({65537 % {137 * ({1710717329 ^ java.lang.StrictMath.floorMod(1820564784, dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {137 * ({1710717329 ^ {1652559946 ^ lvar10}})}})
+ goto AD
+ 5. _consume({110405781 ^ lvar10});
+ 6. if ({65537 % {17 * ({48513479 ^ java.lang.Integer.compare(1198832818, dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {17 * ({48513479 ^ 1})}})
+ goto AD
+ 7. if ({65537 % {57 * ({1232596160 ^ java.lang.Integer.compare(1198832818, dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {57 * ({1232596160 ^ {14925890 ^ lvar10}})}})
+ goto AD
+ 8. _consume({613660170 ^ lvar10});
+ 9. throw new java/lang/RuntimeException("double");
+ -> ConditionalJump[IF_ICMPNE] #AD -> #AD
+ <- ConditionalJump[IF_ICMPNE] #H -> #AD
+ <- ConditionalJump[IF_ICMPNE] #AD -> #AD
+ <- ConditionalJump[IF_ICMPNE] #M -> #AD
+ <- ConditionalJump[IF_ICMPNE] #U -> #AD
+===#Block AA(size=22, flags=0)===
+ 0. if ({65537 % {69 * ({557381387 ^ java.lang.StrictMath.incrementExact(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {69 * ({557381387 ^ 171031009})}})
+ goto AA
+ 1. if ({65537 % {179 * ({646373645 ^ java.lang.StrictMath.incrementExact(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {179 * ({646373645 ^ {2007615715 ^ lvar10}})}})
+ goto AA
+ 2. _consume({858338061 ^ lvar10});
+ 3. if ({65537 % {109 * ({1485820007 ^ java.awt.event.KeyEvent.getExtendedKeyCodeForChar(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {109 * ({1485820007 ^ 0})}})
+ goto AA
+ 4. if ({65537 % {105 * ({1198192893 ^ java.awt.event.KeyEvent.getExtendedKeyCodeForChar(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {105 * ({1198192893 ^ {678021821 ^ lvar10}})}})
+ goto AA
+ 5. _consume({1294142648 ^ lvar10});
+ 6. if ({65537 % {193 * ({917795662 ^ java.lang.Integer.reverseBytes(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {193 * ({917795662 ^ 970747395})}})
+ goto AA
+ 7. if ({65537 % {101 * ({404500609 ^ java.lang.Integer.reverseBytes(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {101 * ({404500609 ^ {330024636 ^ lvar10}})}})
+ goto AA
+ 8. _consume({347670800 ^ lvar10});
+ 9. if ({65537 % {69 * ({993499522 ^ java.lang.Integer.signum(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {69 * ({993499522 ^ 1})}})
+ goto AA
+ 10. if ({65537 % {77 * ({181296939 ^ java.lang.Integer.signum(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {77 * ({181296939 ^ {732805485 ^ lvar10}})}})
+ goto AA
+ 11. _consume({1619604414 ^ lvar10});
+ 12. if ({65537 % {95 * ({1207081061 ^ java.lang.Character.digit('', dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {95 * ({1207081061 ^ -1})}})
+ goto AA
+ 13. if ({65537 % {165 * ({1237374496 ^ java.lang.Character.digit('', dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {165 * ({1237374496 ^ {1045595117 ^ lvar10}})}})
+ goto AA
+ 14. _consume({427800009 ^ lvar10});
+ 15. if ({65537 % {85 * ({1100248794 ^ java.lang.Math.incrementExact(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {85 * ({1100248794 ^ 27441856})}})
+ goto AA
+ 16. if ({65537 % {123 * ({2025355521 ^ java.lang.Math.incrementExact(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {123 * ({2025355521 ^ {1065932738 ^ lvar10}})}})
+ goto AA
+ 17. _consume({20284411 ^ lvar10});
+ 18. if ({65537 % {187 * ({1124178481 ^ java.lang.Integer.numberOfTrailingZeros(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {187 * ({1124178481 ^ 2})}})
+ goto AA
+ 19. if ({65537 % {127 * ({2008412479 ^ java.lang.Integer.numberOfTrailingZeros(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {127 * ({2008412479 ^ {1463752575 ^ lvar10}})}})
+ goto AA
+ 20. _consume({2080369144 ^ lvar10});
+ 21. throw new java/io/IOException();
+ -> ConditionalJump[IF_ICMPNE] #AA -> #AA
+ <- ConditionalJump[IF_ICMPNE] #A -> #AA
+ <- ConditionalJump[IF_ICMPNE] #K -> #AA
+ <- ConditionalJump[IF_ICMPNE] #AA -> #AA
+ <- ConditionalJump[IF_ICMPNE] #O -> #AA
+ <- ConditionalJump[IF_ICMPNE] #T -> #AA
+ <- ConditionalJump[IF_ICMPNE] #X -> #AA
+ <- ConditionalJump[IF_ICMPNE] #Y -> #AA
+ <- ConditionalJump[IF_ICMPNE] #Q -> #AA
diff --git a/dev.skidfuscator.obfuscator/skidfuscator-error-rxp.txt b/dev.skidfuscator.obfuscator/skidfuscator-error-rxp.txt
new file mode 100644
index 0000000..3d2f1e5
--- /dev/null
+++ b/dev.skidfuscator.obfuscator/skidfuscator-error-rxp.txt
@@ -0,0 +1,388 @@
+handler=Block #K, types=[Ljava/lang/IllegalStateException;], range=[Block #C, Block #D, Block #E, Block #G, Block #F, Block #I, Block #H]
+handler=Block #J, types=[Ljavax/crypto/BadPaddingException;, Ljavax/crypto/IllegalBlockSizeException;, Ljavax/crypto/NoSuchPaddingException;, Ljava/security/InvalidKeyException;, Ljava/security/NoSuchAlgorithmException;], range=[Block #C, Block #D, Block #E, Block #G, Block #F, Block #I, Block #H]
+handler=Block #Q, types=[Ljava/io/IOException;], range=[Block #P, Block #O]
+handler=Block #T, types=[Ljava/lang/IllegalAccessException;], range=[Block #S, Block #R]
+handler=Block #W, types=[Ljava/lang/IllegalAccessException;], range=[Block #V, Block #U]
+handler=Block #Z, types=[Ljava/io/IOException;], range=[Block #Y, Block #X]
+===#Block A(size=2, flags=1)===
+ 0. synth(lvar0 = lvar0);
+ 1. if ({65537 % {155 * ({1231600938 ^ java.lang.Integer.numberOfTrailingZeros(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {155 * ({1231600938 ^ 2})}})
+ goto AA
+ -> ConditionalJump[IF_ICMPNE] #A -> #AA
+ -> Immediate #A -> #B
+===#Block B(size=0, flags=0)===
+ -> Immediate #B -> #C
+ <- Immediate #A -> #B
+===#Block C(size=3, flags=0)===
+ 0. _consume(dev.skidfuscator.testclasses.opaque.OpaqueConditionClazz$AES.main(new java.lang.String[{2074074659 ^ lvar10}]));
+ 1. if (dev.skidfuscator.testclasses.exclusion.UnobfuscatedTestClass.data[{2074074659 ^ lvar10}] != {2074074659 ^ lvar10})
+ goto I
+ 2. if ({65537 % {93 * ({1687319821 ^ java.text.CollationElementIterator.primaryOrder(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {93 * ({1687319821 ^ 3973})}})
+ goto AI
+ -> TryCatch range: [C...H] -> K ([Ljava/lang/IllegalStateException;])
+ -> ConditionalJump[IF_ICMPNE] #C -> #I
+ -> Immediate #C -> #D
+ -> ConditionalJump[IF_ICMPNE] #C -> #AI
+ -> TryCatch range: [C...H] -> J ([Ljavax/crypto/BadPaddingException;, Ljavax/crypto/IllegalBlockSizeException;, Ljavax/crypto/NoSuchPaddingException;, Ljava/security/InvalidKeyException;, Ljava/security/NoSuchAlgorithmException;])
+ <- Immediate #B -> #C
+===#Block AI(size=4, flags=0)===
+ 0. if ({65537 % {23 * ({1201895448 ^ java.text.CollationElementIterator.primaryOrder(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {23 * ({1201895448 ^ 3973})}})
+ goto AI
+ 1. if ({65537 % {37 * ({908644760 ^ java.text.CollationElementIterator.primaryOrder(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {37 * ({908644760 ^ {151745895 ^ lvar10}})}})
+ goto AI
+ 2. _consume({1449725187 ^ lvar10});
+ 3. throw new java/lang/RuntimeException("double");
+ -> ConditionalJump[IF_ICMPNE] #AI -> #AI
+ <- ConditionalJump[IF_ICMPNE] #AI -> #AI
+ <- ConditionalJump[IF_ICMPNE] #C -> #AI
+===#Block D(size=3, flags=0)===
+ 0. svar12 = {dev.skidfuscator.testclasses.exclusion.UnobfuscatedTestClass.data[{41962625 ^ lvar10}] ^ lvar10};
+ 1. switch (dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(svar12)) {
+ case 39339320:
+ goto #G
+ default:
+ goto #F
+ }
+ 2. if ({65537 % {189 * ({788652090 ^ java.lang.Math.addExact(1373963789, dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {189 * ({788652090 ^ 1413303109})}})
+ goto AH
+ -> TryCatch range: [C...H] -> J ([Ljavax/crypto/BadPaddingException;, Ljavax/crypto/IllegalBlockSizeException;, Ljavax/crypto/NoSuchPaddingException;, Ljava/security/InvalidKeyException;, Ljava/security/NoSuchAlgorithmException;])
+ -> DefaultSwitch #D -> #F
+ -> Switch[39339320] #D -> #G
+ -> TryCatch range: [C...H] -> K ([Ljava/lang/IllegalStateException;])
+ -> ConditionalJump[IF_ICMPNE] #D -> #AH
+ <- Immediate #C -> #D
+===#Block AH(size=4, flags=0)===
+ 0. if ({65537 % {85 * ({877467349 ^ java.lang.Math.addExact(1373963789, dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {85 * ({877467349 ^ 1413303109})}})
+ goto AH
+ 1. if ({65537 % {45 * ({216586328 ^ java.lang.Math.addExact(1373963789, dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {45 * ({216586328 ^ {59536465 ^ lvar10}})}})
+ goto AH
+ 2. _consume({2076725377 ^ lvar10});
+ 3. throw new java/lang/IllegalAccessException("double");
+ -> ConditionalJump[IF_ICMPNE] #AH -> #AH
+ <- ConditionalJump[IF_ICMPNE] #AH -> #AH
+ <- ConditionalJump[IF_ICMPNE] #D -> #AH
+===#Block G(size=3, flags=0)===
+ 0. lvar7 = {1820868854 ^ lvar10};
+ 1. if ({65537 % {45 * ({43072936 ^ java.lang.Integer.rotateLeft(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10), 2103019665)})}} != {65537 % {45 * ({43072936 ^ 581174415})}})
+ goto AC
+ 2. goto S
+ -> TryCatch range: [C...H] -> K ([Ljava/lang/IllegalStateException;])
+ -> TryCatch range: [C...H] -> J ([Ljavax/crypto/BadPaddingException;, Ljavax/crypto/IllegalBlockSizeException;, Ljavax/crypto/NoSuchPaddingException;, Ljava/security/InvalidKeyException;, Ljava/security/NoSuchAlgorithmException;])
+ -> ConditionalJump[IF_ICMPNE] #G -> #AC
+ -> UnconditionalJump[GOTO] #G -> #S
+ <- Switch[39339320] #D -> #G
+===#Block S(size=3, flags=0)===
+ 0. if ({65537 % {173 * ({1173346919 ^ dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10)})}} == {65537 % {173 * ({1173346919 ^ 37903355})}})
+ goto R
+ 1. throw nullconst;
+ 2. if ({65537 % {153 * ({1875527437 ^ java.lang.Character.toLowerCase(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {153 * ({1875527437 ^ 37903355})}})
+ goto AB
+ -> ConditionalJump[IF_ICMPNE] #S -> #AB
+ -> TryCatch range: [S...R] -> T ([Ljava/lang/IllegalAccessException;])
+ -> ConditionalJump[IF_ICMPEQ] #S -> #R
+ <- UnconditionalJump[GOTO] #G -> #S
+===#Block R(size=2, flags=0)===
+ 0. throw new java/lang/IllegalAccessException();
+ 1. if ({65537 % {179 * ({397001432 ^ java.lang.Integer.hashCode(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {179 * ({397001432 ^ 109960954})}})
+ goto AJ
+ -> ConditionalJump[IF_ICMPNE] #R -> #AJ
+ -> TryCatch range: [S...R] -> T ([Ljava/lang/IllegalAccessException;])
+ <- ConditionalJump[IF_ICMPEQ] #S -> #R
+===#Block AJ(size=4, flags=0)===
+ 0. if ({65537 % {97 * ({1331006998 ^ java.lang.Integer.hashCode(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {97 * ({1331006998 ^ 109960954})}})
+ goto AJ
+ 1. if ({65537 % {103 * ({1085177758 ^ java.lang.Integer.hashCode(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {103 * ({1085177758 ^ {891184122 ^ lvar10}})}})
+ goto AJ
+ 2. _consume({675117789 ^ lvar10});
+ 3. throw new java/io/IOException("double");
+ -> ConditionalJump[IF_ICMPNE] #AJ -> #AJ
+ <- ConditionalJump[IF_ICMPNE] #R -> #AJ
+ <- ConditionalJump[IF_ICMPNE] #AJ -> #AJ
+===#Block T(size=3, flags=0)===
+ 0. _consume(catch());
+ 1. if ({65537 % {15 * ({1729336264 ^ java.awt.event.KeyEvent.getExtendedKeyCodeForChar(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {15 * ({1729336264 ^ 0})}})
+ goto AA
+ 2. goto H
+ -> UnconditionalJump[GOTO] #T -> #H
+ -> ConditionalJump[IF_ICMPNE] #T -> #AA
+ <- TryCatch range: [S...R] -> T ([Ljava/lang/IllegalAccessException;])
+ <- TryCatch range: [S...R] -> T ([Ljava/lang/IllegalAccessException;])
+===#Block F(size=3, flags=0)===
+ 0. lvar7 = {-2088243278 ^ lvar10};
+ 1. if ({65537 % {191 * ({39871346 ^ java.lang.Character.toLowerCase(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {191 * ({39871346 ^ 19457013})}})
+ goto AC
+ 2. goto Y
+ -> TryCatch range: [C...H] -> J ([Ljavax/crypto/BadPaddingException;, Ljavax/crypto/IllegalBlockSizeException;, Ljavax/crypto/NoSuchPaddingException;, Ljava/security/InvalidKeyException;, Ljava/security/NoSuchAlgorithmException;])
+ -> UnconditionalJump[GOTO] #F -> #Y
+ -> ConditionalJump[IF_ICMPNE] #F -> #AC
+ -> TryCatch range: [C...H] -> K ([Ljava/lang/IllegalStateException;])
+ <- DefaultSwitch #D -> #F
+===#Block Y(size=3, flags=0)===
+ 0. if ({65537 % {65 * ({1038450005 ^ dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10)})}} == {65537 % {65 * ({1038450005 ^ 57596985})}})
+ goto X
+ 1. throw nullconst;
+ 2. if ({65537 % {61 * ({32761098 ^ java.lang.Integer.reverseBytes(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {61 * ({32761098 ^ 970747395})}})
+ goto AA
+ -> ConditionalJump[IF_ICMPEQ] #Y -> #X
+ -> TryCatch range: [Y...X] -> Z ([Ljava/io/IOException;])
+ -> ConditionalJump[IF_ICMPNE] #Y -> #AA
+ <- UnconditionalJump[GOTO] #F -> #Y
+===#Block X(size=2, flags=0)===
+ 0. throw new java/io/IOException();
+ 1. if ({65537 % {113 * ({67551708 ^ java.lang.Character.digit('', dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {113 * ({67551708 ^ -1})}})
+ goto AA
+ -> TryCatch range: [Y...X] -> Z ([Ljava/io/IOException;])
+ -> ConditionalJump[IF_ICMPNE] #X -> #AA
+ <- ConditionalJump[IF_ICMPEQ] #Y -> #X
+===#Block Z(size=3, flags=0)===
+ 0. _consume(catch());
+ 1. if ({65537 % {149 * ({1737487068 ^ java.lang.Integer.rotateLeft(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10), 1835327768)})}} != {65537 % {149 * ({1737487068 ^ 1594251326})}})
+ goto AB
+ 2. goto H
+ -> ConditionalJump[IF_ICMPNE] #Z -> #AB
+ -> UnconditionalJump[GOTO] #Z -> #H
+ <- TryCatch range: [Y...X] -> Z ([Ljava/io/IOException;])
+ <- TryCatch range: [Y...X] -> Z ([Ljava/io/IOException;])
+===#Block H(size=5, flags=0)===
+ 0. _consume(lvar0.self(lvar7, 1754638706));
+ 1. lvar2 = new java.lang.IllegalArgumentException;
+ 2. _consume(lvar2.(dynamic_invoke(java.lang.invoke.StringConcatFactory.makeConcatWithConstants("Failed test! Stage: ", lvar7))));
+ 3. throw lvar2;
+ 4. if ({65537 % {129 * ({2108348666 ^ java.lang.Integer.compare(1198832818, dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {129 * ({2108348666 ^ 1})}})
+ goto AD
+ -> TryCatch range: [C...H] -> J ([Ljavax/crypto/BadPaddingException;, Ljavax/crypto/IllegalBlockSizeException;, Ljavax/crypto/NoSuchPaddingException;, Ljava/security/InvalidKeyException;, Ljava/security/NoSuchAlgorithmException;])
+ -> ConditionalJump[IF_ICMPNE] #H -> #AD
+ -> TryCatch range: [C...H] -> K ([Ljava/lang/IllegalStateException;])
+ <- UnconditionalJump[GOTO] #T -> #H
+ <- UnconditionalJump[GOTO] #Q -> #H
+ <- UnconditionalJump[GOTO] #Z -> #H
+===#Block I(size=4, flags=0)===
+ 0. lvar5 = new java.lang.IllegalArgumentException;
+ 1. _consume(lvar5.(dynamic_invoke(java.lang.invoke.StringConcatFactory.makeConcatWithConstants("Failed test! Stage: ", {679569810 ^ lvar10}))));
+ 2. throw lvar5;
+ 3. if ({65537 % {125 * ({1324992040 ^ java.lang.Math.floorDiv(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10), 1688355228)})}} != {65537 % {125 * ({1324992040 ^ 0})}})
+ goto AB
+ -> TryCatch range: [C...H] -> K ([Ljava/lang/IllegalStateException;])
+ -> ConditionalJump[IF_ICMPNE] #I -> #AB
+ -> TryCatch range: [C...H] -> J ([Ljavax/crypto/BadPaddingException;, Ljavax/crypto/IllegalBlockSizeException;, Ljavax/crypto/NoSuchPaddingException;, Ljava/security/InvalidKeyException;, Ljava/security/NoSuchAlgorithmException;])
+ <- ConditionalJump[IF_ICMPNE] #C -> #I
+===#Block J(size=4, flags=0)===
+ 0. lvar1 = catch();
+ 1. _consume(lvar1.printStackTrace());
+ 2. lvar6 = {-871389865 ^ lvar10};
+ 3. if ({65537 % {73 * ({704406811 ^ java.lang.StrictMath.absExact(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {73 * ({704406811 ^ 77700181})}})
+ goto AC
+ -> Immediate #J -> #L
+ -> ConditionalJump[IF_ICMPNE] #J -> #AC
+ <- TryCatch range: [C...H] -> J ([Ljavax/crypto/BadPaddingException;, Ljavax/crypto/IllegalBlockSizeException;, Ljavax/crypto/NoSuchPaddingException;, Ljava/security/InvalidKeyException;, Ljava/security/NoSuchAlgorithmException;])
+ <- TryCatch range: [C...H] -> J ([Ljavax/crypto/BadPaddingException;, Ljavax/crypto/IllegalBlockSizeException;, Ljavax/crypto/NoSuchPaddingException;, Ljava/security/InvalidKeyException;, Ljava/security/NoSuchAlgorithmException;])
+ <- TryCatch range: [C...H] -> J ([Ljavax/crypto/BadPaddingException;, Ljavax/crypto/IllegalBlockSizeException;, Ljavax/crypto/NoSuchPaddingException;, Ljava/security/InvalidKeyException;, Ljava/security/NoSuchAlgorithmException;])
+ <- TryCatch range: [C...H] -> J ([Ljavax/crypto/BadPaddingException;, Ljavax/crypto/IllegalBlockSizeException;, Ljavax/crypto/NoSuchPaddingException;, Ljava/security/InvalidKeyException;, Ljava/security/NoSuchAlgorithmException;])
+ <- TryCatch range: [C...H] -> J ([Ljavax/crypto/BadPaddingException;, Ljavax/crypto/IllegalBlockSizeException;, Ljavax/crypto/NoSuchPaddingException;, Ljava/security/InvalidKeyException;, Ljava/security/NoSuchAlgorithmException;])
+ <- TryCatch range: [C...H] -> J ([Ljavax/crypto/BadPaddingException;, Ljavax/crypto/IllegalBlockSizeException;, Ljavax/crypto/NoSuchPaddingException;, Ljava/security/InvalidKeyException;, Ljava/security/NoSuchAlgorithmException;])
+ <- TryCatch range: [C...H] -> J ([Ljavax/crypto/BadPaddingException;, Ljavax/crypto/IllegalBlockSizeException;, Ljavax/crypto/NoSuchPaddingException;, Ljava/security/InvalidKeyException;, Ljava/security/NoSuchAlgorithmException;])
+===#Block K(size=4, flags=0)===
+ 0. lvar4 = catch();
+ 1. lvar6 = {241782599 ^ lvar10};
+ 2. if ({65537 % {123 * ({369185384 ^ java.lang.Integer.signum(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {123 * ({369185384 ^ 1})}})
+ goto AA
+ 3. goto V
+ -> ConditionalJump[IF_ICMPNE] #K -> #AA
+ -> UnconditionalJump[GOTO] #K -> #V
+ <- TryCatch range: [C...H] -> K ([Ljava/lang/IllegalStateException;])
+ <- TryCatch range: [C...H] -> K ([Ljava/lang/IllegalStateException;])
+ <- TryCatch range: [C...H] -> K ([Ljava/lang/IllegalStateException;])
+ <- TryCatch range: [C...H] -> K ([Ljava/lang/IllegalStateException;])
+ <- TryCatch range: [C...H] -> K ([Ljava/lang/IllegalStateException;])
+ <- TryCatch range: [C...H] -> K ([Ljava/lang/IllegalStateException;])
+ <- TryCatch range: [C...H] -> K ([Ljava/lang/IllegalStateException;])
+===#Block V(size=3, flags=0)===
+ 0. if ({65537 % {61 * ({1279470676 ^ dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10)})}} == {65537 % {61 * ({1279470676 ^ 235914642})}})
+ goto U
+ 1. throw nullconst;
+ 2. if ({65537 % {139 * ({1681635630 ^ java.lang.StrictMath.min(1394584022, dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {139 * ({1681635630 ^ 235914642})}})
+ goto AB
+ -> ConditionalJump[IF_ICMPEQ] #V -> #U
+ -> ConditionalJump[IF_ICMPNE] #V -> #AB
+ -> TryCatch range: [V...U] -> W ([Ljava/lang/IllegalAccessException;])
+ <- UnconditionalJump[GOTO] #K -> #V
+===#Block AB(size=13, flags=0)===
+ 0. if ({65537 % {197 * ({1678716225 ^ java.lang.Integer.rotateLeft(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10), 1835327768)})}} != {65537 % {197 * ({1678716225 ^ 1594251326})}})
+ goto AB
+ 1. if ({65537 % {199 * ({608936940 ^ java.lang.Integer.rotateLeft(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10), 1835327768)})}} != {65537 % {199 * ({608936940 ^ {249054319 ^ lvar10}})}})
+ goto AB
+ 2. _consume({1597765569 ^ lvar10});
+ 3. if ({65537 % {33 * ({986401313 ^ java.lang.Character.toLowerCase(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {33 * ({986401313 ^ 37903355})}})
+ goto AB
+ 4. if ({65537 % {147 * ({219066752 ^ java.lang.Character.toLowerCase(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {147 * ({219066752 ^ {1476657618 ^ lvar10}})}})
+ goto AB
+ 5. _consume({326075738 ^ lvar10});
+ 6. if ({65537 % {17 * ({581176272 ^ java.lang.StrictMath.min(1394584022, dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {17 * ({581176272 ^ 235914642})}})
+ goto AB
+ 7. if ({65537 % {165 * ({1147761769 ^ java.lang.StrictMath.min(1394584022, dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {165 * ({1147761769 ^ {1299469601 ^ lvar10}})}})
+ goto AB
+ 8. _consume({401168802 ^ lvar10});
+ 9. if ({65537 % {135 * ({954340815 ^ java.lang.Math.floorDiv(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10), 1688355228)})}} != {65537 % {135 * ({954340815 ^ 0})}})
+ goto AB
+ 10. if ({65537 % {75 * ({1167888247 ^ java.lang.Math.floorDiv(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10), 1688355228)})}} != {65537 % {75 * ({1167888247 ^ {2066039075 ^ lvar10}})}})
+ goto AB
+ 11. _consume({805523482 ^ lvar10});
+ 12. throw new java/lang/IllegalAccessException("double");
+ -> ConditionalJump[IF_ICMPNE] #AB -> #AB
+ <- ConditionalJump[IF_ICMPNE] #I -> #AB
+ <- ConditionalJump[IF_ICMPNE] #V -> #AB
+ <- ConditionalJump[IF_ICMPNE] #Z -> #AB
+ <- ConditionalJump[IF_ICMPNE] #S -> #AB
+ <- ConditionalJump[IF_ICMPNE] #AB -> #AB
+===#Block U(size=2, flags=0)===
+ 0. throw new java/lang/IllegalAccessException();
+ 1. if ({65537 % {147 * ({2110620885 ^ java.lang.Math.incrementExact(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {147 * ({2110620885 ^ 111804805})}})
+ goto AD
+ -> TryCatch range: [V...U] -> W ([Ljava/lang/IllegalAccessException;])
+ -> ConditionalJump[IF_ICMPNE] #U -> #AD
+ <- ConditionalJump[IF_ICMPEQ] #V -> #U
+===#Block W(size=3, flags=0)===
+ 0. _consume(catch());
+ 1. if ({65537 % {25 * ({1063640007 ^ java.lang.Character.digit('', dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {25 * ({1063640007 ^ -1})}})
+ goto AE
+ 2. goto L
+ -> UnconditionalJump[GOTO] #W -> #L
+ -> ConditionalJump[IF_ICMPNE] #W -> #AE
+ <- TryCatch range: [V...U] -> W ([Ljava/lang/IllegalAccessException;])
+ <- TryCatch range: [V...U] -> W ([Ljava/lang/IllegalAccessException;])
+===#Block L(size=2, flags=0)===
+ 0. if (dev.skidfuscator.testclasses.exclusion.UnobfuscatedTestClass.data[{701717771 ^ lvar10}] == lvar6)
+ goto N
+ 1. if ({65537 % {169 * ({1558692472 ^ java.lang.Integer.signum(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {169 * ({1558692472 ^ 1})}})
+ goto AE
+ -> ConditionalJump[IF_ICMPEQ] #L -> #N
+ -> Immediate #L -> #M
+ -> ConditionalJump[IF_ICMPNE] #L -> #AE
+ <- Immediate #J -> #L
+ <- UnconditionalJump[GOTO] #W -> #L
+===#Block AE(size=7, flags=0)===
+ 0. if ({65537 % {171 * ({1117692001 ^ java.lang.Character.digit('', dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {171 * ({1117692001 ^ -1})}})
+ goto AE
+ 1. if ({65537 % {5 * ({330107120 ^ java.lang.Character.digit('', dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {5 * ({330107120 ^ {1216743580 ^ lvar10}})}})
+ goto AE
+ 2. _consume({1611630797 ^ lvar10});
+ 3. if ({65537 % {25 * ({1658682634 ^ java.lang.Integer.signum(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {25 * ({1658682634 ^ 1})}})
+ goto AE
+ 4. if ({65537 % {97 * ({1622527528 ^ java.lang.Integer.signum(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {97 * ({1622527528 ^ {1055780153 ^ lvar10}})}})
+ goto AE
+ 5. _consume({506337821 ^ lvar10});
+ 6. throw new java/lang/IllegalAccessException("double");
+ -> ConditionalJump[IF_ICMPNE] #AE -> #AE
+ <- ConditionalJump[IF_ICMPNE] #AE -> #AE
+ <- ConditionalJump[IF_ICMPNE] #L -> #AE
+ <- ConditionalJump[IF_ICMPNE] #W -> #AE
+===#Block M(size=4, flags=0)===
+ 0. lvar3 = new java.lang.IllegalArgumentException;
+ 1. _consume(lvar3.(dynamic_invoke(java.lang.invoke.StringConcatFactory.makeConcatWithConstants("Failed test! Stage: ", lvar6))));
+ 2. throw lvar3;
+ 3. if ({65537 % {195 * ({1354774324 ^ java.lang.StrictMath.floorMod(1820564784, dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {195 * ({1354774324 ^ 66420502})}})
+ goto AD
+ -> ConditionalJump[IF_ICMPNE] #M -> #AD
+ <- Immediate #L -> #M
+===#Block AD(size=10, flags=0)===
+ 0. if ({65537 % {119 * ({1537298630 ^ java.lang.Math.incrementExact(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {119 * ({1537298630 ^ 111804805})}})
+ goto AD
+ 1. if ({65537 % {195 * ({1386709888 ^ java.lang.Math.incrementExact(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {195 * ({1386709888 ^ {544039179 ^ lvar10}})}})
+ goto AD
+ 2. _consume({1904267273 ^ lvar10});
+ 3. if ({65537 % {149 * ({1260789343 ^ java.lang.StrictMath.floorMod(1820564784, dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {149 * ({1260789343 ^ 66420502})}})
+ goto AD
+ 4. if ({65537 % {137 * ({1710717329 ^ java.lang.StrictMath.floorMod(1820564784, dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {137 * ({1710717329 ^ {1652559946 ^ lvar10}})}})
+ goto AD
+ 5. _consume({110405781 ^ lvar10});
+ 6. if ({65537 % {17 * ({48513479 ^ java.lang.Integer.compare(1198832818, dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {17 * ({48513479 ^ 1})}})
+ goto AD
+ 7. if ({65537 % {57 * ({1232596160 ^ java.lang.Integer.compare(1198832818, dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {57 * ({1232596160 ^ {14925890 ^ lvar10}})}})
+ goto AD
+ 8. _consume({613660170 ^ lvar10});
+ 9. throw new java/lang/RuntimeException("double");
+ -> ConditionalJump[IF_ICMPNE] #AD -> #AD
+ <- ConditionalJump[IF_ICMPNE] #H -> #AD
+ <- ConditionalJump[IF_ICMPNE] #AD -> #AD
+ <- ConditionalJump[IF_ICMPNE] #M -> #AD
+ <- ConditionalJump[IF_ICMPNE] #U -> #AD
+===#Block N(size=2, flags=0)===
+ 0. return;
+ 1. if ({65537 % {129 * ({1465931937 ^ java.lang.Character.getType(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {129 * ({1465931937 ^ 0})}})
+ goto AC
+ -> ConditionalJump[IF_ICMPNE] #N -> #AC
+ <- ConditionalJump[IF_ICMPEQ] #L -> #N
+===#Block AC(size=13, flags=0)===
+ 0. if ({65537 % {65 * ({1301071467 ^ java.lang.Integer.rotateLeft(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10), 2103019665)})}} != {65537 % {65 * ({1301071467 ^ 581174415})}})
+ goto AC
+ 1. if ({65537 % {51 * ({1515029398 ^ java.lang.Integer.rotateLeft(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10), 2103019665)})}} != {65537 % {51 * ({1515029398 ^ {893981250 ^ lvar10}})}})
+ goto AC
+ 2. _consume({1446409840 ^ lvar10});
+ 3. if ({65537 % {115 * ({1178639310 ^ java.lang.Character.getType(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {115 * ({1178639310 ^ 0})}})
+ goto AC
+ 4. if ({65537 % {113 * ({1120077318 ^ java.lang.Character.getType(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {113 * ({1120077318 ^ {1156110062 ^ lvar10}})}})
+ goto AC
+ 5. _consume({906919752 ^ lvar10});
+ 6. if ({65537 % {31 * ({1643524366 ^ java.lang.Character.toLowerCase(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {31 * ({1643524366 ^ 19457013})}})
+ goto AC
+ 7. if ({65537 % {131 * ({1463875363 ^ java.lang.Character.toLowerCase(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {131 * ({1463875363 ^ {592625078 ^ lvar10}})}})
+ goto AC
+ 8. _consume({307640782 ^ lvar10});
+ 9. if ({65537 % {181 * ({1476078322 ^ java.lang.StrictMath.absExact(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {181 * ({1476078322 ^ 77700181})}})
+ goto AC
+ 10. if ({65537 % {17 * ({1506030693 ^ java.lang.StrictMath.absExact(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {17 * ({1506030693 ^ {833619153 ^ lvar10}})}})
+ goto AC
+ 11. _consume({271248693 ^ lvar10});
+ 12. throw new java/lang/RuntimeException("double");
+ -> ConditionalJump[IF_ICMPNE] #AC -> #AC
+ <- ConditionalJump[IF_ICMPNE] #F -> #AC
+ <- ConditionalJump[IF_ICMPNE] #G -> #AC
+ <- ConditionalJump[IF_ICMPNE] #J -> #AC
+ <- ConditionalJump[IF_ICMPNE] #N -> #AC
+ <- ConditionalJump[IF_ICMPNE] #AC -> #AC
+===#Block AA(size=22, flags=0)===
+ 0. if ({65537 % {69 * ({557381387 ^ java.lang.StrictMath.incrementExact(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {69 * ({557381387 ^ 171031009})}})
+ goto AA
+ 1. if ({65537 % {179 * ({646373645 ^ java.lang.StrictMath.incrementExact(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {179 * ({646373645 ^ {2007615715 ^ lvar10}})}})
+ goto AA
+ 2. _consume({858338061 ^ lvar10});
+ 3. if ({65537 % {109 * ({1485820007 ^ java.awt.event.KeyEvent.getExtendedKeyCodeForChar(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {109 * ({1485820007 ^ 0})}})
+ goto AA
+ 4. if ({65537 % {105 * ({1198192893 ^ java.awt.event.KeyEvent.getExtendedKeyCodeForChar(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {105 * ({1198192893 ^ {678021821 ^ lvar10}})}})
+ goto AA
+ 5. _consume({1294142648 ^ lvar10});
+ 6. if ({65537 % {193 * ({917795662 ^ java.lang.Integer.reverseBytes(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {193 * ({917795662 ^ 970747395})}})
+ goto AA
+ 7. if ({65537 % {101 * ({404500609 ^ java.lang.Integer.reverseBytes(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {101 * ({404500609 ^ {330024636 ^ lvar10}})}})
+ goto AA
+ 8. _consume({347670800 ^ lvar10});
+ 9. if ({65537 % {69 * ({993499522 ^ java.lang.Integer.signum(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {69 * ({993499522 ^ 1})}})
+ goto AA
+ 10. if ({65537 % {77 * ({181296939 ^ java.lang.Integer.signum(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {77 * ({181296939 ^ {732805485 ^ lvar10}})}})
+ goto AA
+ 11. _consume({1619604414 ^ lvar10});
+ 12. if ({65537 % {95 * ({1207081061 ^ java.lang.Character.digit('', dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {95 * ({1207081061 ^ -1})}})
+ goto AA
+ 13. if ({65537 % {165 * ({1237374496 ^ java.lang.Character.digit('', dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {165 * ({1237374496 ^ {1045595117 ^ lvar10}})}})
+ goto AA
+ 14. _consume({427800009 ^ lvar10});
+ 15. if ({65537 % {85 * ({1100248794 ^ java.lang.Math.incrementExact(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {85 * ({1100248794 ^ 27441856})}})
+ goto AA
+ 16. if ({65537 % {123 * ({2025355521 ^ java.lang.Math.incrementExact(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {123 * ({2025355521 ^ {1065932738 ^ lvar10}})}})
+ goto AA
+ 17. _consume({20284411 ^ lvar10});
+ 18. if ({65537 % {187 * ({1124178481 ^ java.lang.Integer.numberOfTrailingZeros(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {187 * ({1124178481 ^ 2})}})
+ goto AA
+ 19. if ({65537 % {127 * ({2008412479 ^ java.lang.Integer.numberOfTrailingZeros(dzmtsyhedbeyduip.bgzkmtovhuxplopt.mozumcvumeseeeoo(lvar10))})}} != {65537 % {127 * ({2008412479 ^ {1463752575 ^ lvar10}})}})
+ goto AA
+ 20. _consume({2080369144 ^ lvar10});
+ 21. throw new java/io/IOException();
+ -> ConditionalJump[IF_ICMPNE] #AA -> #AA
+ <- ConditionalJump[IF_ICMPNE] #A -> #AA
+ <- ConditionalJump[IF_ICMPNE] #K -> #AA
+ <- ConditionalJump[IF_ICMPNE] #AA -> #AA
+ <- ConditionalJump[IF_ICMPNE] #O -> #AA
+ <- ConditionalJump[IF_ICMPNE] #T -> #AA
+ <- ConditionalJump[IF_ICMPNE] #X -> #AA
+ <- ConditionalJump[IF_ICMPNE] #Y -> #AA
+ <- ConditionalJump[IF_ICMPNE] #Q -> #AA
diff --git a/dev.skidfuscator.obfuscator/skidfuscator-error-zjl.txt b/dev.skidfuscator.obfuscator/skidfuscator-error-zjl.txt
new file mode 100644
index 0000000..6d0e912
--- /dev/null
+++ b/dev.skidfuscator.obfuscator/skidfuscator-error-zjl.txt
@@ -0,0 +1,673 @@
+handler=Block #K, types=[Ljava/lang/IllegalStateException;], range=[Block #C, Block #D, Block #F, Block #G, Block #E, Block #I, Block #H]
+handler=Block #J, types=[Ljavax/crypto/BadPaddingException;, Ljavax/crypto/IllegalBlockSizeException;, Ljavax/crypto/NoSuchPaddingException;, Ljava/security/InvalidKeyException;, Ljava/security/NoSuchAlgorithmException;], range=[Block #C, Block #D, Block #F, Block #G, Block #E, Block #I, Block #H]
+handler=Block #T, types=[Ljava/io/IOException;], range=[Block #S, Block #R]
+handler=Block #W, types=[Ljava/lang/RuntimeException;], range=[Block #V, Block #U]
+handler=Block #Z, types=[Ljava/lang/RuntimeException;], range=[Block #Y, Block #X]
+handler=Block #AC, types=[Ljava/io/IOException;], range=[Block #AB, Block #AA]
+handler=Block #AF, types=[Ljava/io/IOException;], range=[Block #AE, Block #AD]
+handler=Block #AI, types=[Ljava/io/IOException;], range=[Block #AH, Block #AG]
+===#Block A(size=3, flags=1)===
+ 0. synth(lvar0 = lvar0);
+ 1. lvar18 = "A : var expect: -1";
+ 2. if (java.lang.Character.getNumericValue(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != -1)
+ goto P
+ -> Immediate #A -> #B
+ -> ConditionalJump[IF_ICMPNE] #A -> #P
+===#Block B(size=0, flags=0)===
+ -> Immediate #B -> #C
+ <- Immediate #A -> #B
+===#Block C(size=7, flags=0)===
+ 0. _consume(dev.skidfuscator.testclasses.opaque.OpaqueConditionClazz$AES.main(new java.lang.String[{246959904 ^ lvar10}]));
+ 1. lvar142 = "[Constant] 0 -> 246959904 predicate=246959904";
+ 2. if (dev.skidfuscator.testclasses.exclusion.ObfuscatedTestClass.data[{246959904 ^ lvar10}] != {246959904 ^ lvar10})
+ goto O
+ 3. lvar146 = "[Constant] 0 -> 246959904 predicate=246959904";
+ 4. lvar144 = "[Constant] 0 -> 246959904 predicate=246959904";
+ 5. lvar22 = "C : var expect: 1307126627";
+ 6. if (java.lang.Math.subtractExact(1517175641, pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != 1307126627)
+ goto AL
+ -> ConditionalJump[IF_ICMPNE] #C -> #AL
+ -> ConditionalJump[IF_ICMPNE] #C -> #O
+ -> TryCatch range: [C...H] -> K ([Ljava/lang/IllegalStateException;])
+ -> TryCatch range: [C...H] -> J ([Ljavax/crypto/BadPaddingException;, Ljavax/crypto/IllegalBlockSizeException;, Ljavax/crypto/NoSuchPaddingException;, Ljava/security/InvalidKeyException;, Ljava/security/NoSuchAlgorithmException;])
+ -> Immediate #C -> #D
+ <- Immediate #B -> #C
+===#Block D(size=5, flags=0)===
+ 0. svar12 = {dev.skidfuscator.testclasses.exclusion.ObfuscatedTestClass.data[{86509569 ^ lvar10}] ^ lvar10};
+ 1. lvar102 = "[Constant] 1 -> 86509569 predicate=86509568";
+ 2. switch (pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(svar12)) {
+ case 81101480:
+ goto #G
+ default:
+ goto #E
+ }
+ 3. lvar56 = "D : var expect: 1717058136";
+ 4. if (java.lang.Math.max(1717058136, pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != 1717058136)
+ goto AU
+ -> Switch[81101480] #D -> #G
+ -> ConditionalJump[IF_ICMPNE] #D -> #AU
+ -> TryCatch range: [C...H] -> K ([Ljava/lang/IllegalStateException;])
+ -> DefaultSwitch #D -> #E
+ -> TryCatch range: [C...H] -> J ([Ljavax/crypto/BadPaddingException;, Ljavax/crypto/IllegalBlockSizeException;, Ljavax/crypto/NoSuchPaddingException;, Ljava/security/InvalidKeyException;, Ljava/security/NoSuchAlgorithmException;])
+ <- Immediate #C -> #D
+===#Block E(size=5, flags=0)===
+ 0. lvar7 = {-1380444818 ^ lvar10};
+ 1. lvar104 = "[Constant] -5 -> -1380444818 predicate=1380444821";
+ 2. lvar58 = "E : var expect: 4";
+ 3. if (java.lang.Integer.numberOfLeadingZeros(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != 4)
+ goto AQ
+ 4. goto AB
+ -> ConditionalJump[IF_ICMPNE] #E -> #AQ
+ -> TryCatch range: [C...H] -> K ([Ljava/lang/IllegalStateException;])
+ -> TryCatch range: [C...H] -> J ([Ljavax/crypto/BadPaddingException;, Ljavax/crypto/IllegalBlockSizeException;, Ljavax/crypto/NoSuchPaddingException;, Ljava/security/InvalidKeyException;, Ljava/security/NoSuchAlgorithmException;])
+ -> UnconditionalJump[GOTO] #E -> #AB
+ <- DefaultSwitch #D -> #E
+===#Block AB(size=4, flags=0)===
+ 0. if (pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10) == 119289491)
+ goto AA
+ 1. throw nullconst;
+ 2. lvar72 = "AB : var expect: 119289491";
+ 3. if (java.lang.Math.absExact(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != 119289491)
+ goto AZ
+ -> ConditionalJump[IF_ICMPNE] #AB -> #AZ
+ -> TryCatch range: [AB...AA] -> AC ([Ljava/io/IOException;])
+ -> ConditionalJump[IF_ICMPEQ] #AB -> #AA
+ <- UnconditionalJump[GOTO] #E -> #AB
+===#Block AA(size=3, flags=0)===
+ 0. throw new java/io/IOException();
+ 1. lvar24 = "AA : var expect: -2115371073";
+ 2. if (java.lang.Integer.sum(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10), 2092181537) != -2115371073)
+ goto AJ
+ -> ConditionalJump[IF_ICMPNE] #AA -> #AJ
+ -> TryCatch range: [AB...AA] -> AC ([Ljava/io/IOException;])
+ <- ConditionalJump[IF_ICMPEQ] #AB -> #AA
+===#Block AC(size=4, flags=0)===
+ 0. _consume(catch());
+ 1. lvar50 = "AC : var expect: 0";
+ 2. if (java.lang.Integer.numberOfTrailingZeros(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != 0)
+ goto AS
+ 3. goto H
+ -> ConditionalJump[IFNE] #AC -> #AS
+ -> UnconditionalJump[GOTO] #AC -> #H
+ <- TryCatch range: [AB...AA] -> AC ([Ljava/io/IOException;])
+ <- TryCatch range: [AB...AA] -> AC ([Ljava/io/IOException;])
+===#Block AS(size=6, flags=0)===
+ 0. throw new java/lang/IllegalAccessException("Failed to proper vm");
+ 1. if (java.lang.Integer.numberOfTrailingZeros(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != 0)
+ goto AS
+ 2. if (java.lang.Integer.numberOfTrailingZeros(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != {2126190611 ^ lvar10})
+ goto AS
+ 3. lvar100 = "[Constant] 1533136363 -> 2126190611 predicate=635098616";
+ 4. _consume({1372789340 ^ lvar10});
+ 5. throw new java/lang/IllegalAccessException("double");
+ -> ConditionalJump[IFNE] #AS -> #AS
+ <- ConditionalJump[IFNE] #AC -> #AS
+ <- ConditionalJump[IFNE] #AS -> #AS
+===#Block AZ(size=6, flags=0)===
+ 0. throw new java/lang/IllegalAccessException("Failed to proper vm");
+ 1. if (java.lang.Math.absExact(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != 119289491)
+ goto AZ
+ 2. if (java.lang.Math.absExact(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != {1415843332 ^ lvar10})
+ goto AZ
+ 3. lvar134 = "[Constant] 240830319 -> 1415843332 predicate=1514064235";
+ 4. _consume({213937309 ^ lvar10});
+ 5. throw new java/lang/RuntimeException("double");
+ -> ConditionalJump[IF_ICMPNE] #AZ -> #AZ
+ <- ConditionalJump[IF_ICMPNE] #AB -> #AZ
+ <- ConditionalJump[IF_ICMPNE] #AZ -> #AZ
+===#Block AU(size=6, flags=0)===
+ 0. throw new java/io/IOException("Failed to proper vm");
+ 1. if (java.lang.Math.max(1717058136, pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != 1717058136)
+ goto AU
+ 2. if (java.lang.Math.max(1717058136, pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != {135912782 ^ lvar10})
+ goto AU
+ 3. lvar82 = "[Constant] 224589921 -> 135912782 predicate=91956527";
+ 4. _consume({1938054222 ^ lvar10});
+ 5. throw new java/lang/IllegalAccessException("double");
+ -> ConditionalJump[IF_ICMPNE] #AU -> #AU
+ <- ConditionalJump[IF_ICMPNE] #D -> #AU
+ <- ConditionalJump[IF_ICMPNE] #AU -> #AU
+===#Block G(size=5, flags=0)===
+ 0. lvar7 = {782781548 ^ lvar10};
+ 1. lvar124 = "[Constant] 3 -> 782781548 predicate=782781551";
+ 2. lvar74 = "G : var expect: 174471872";
+ 3. if (java.lang.Math.incrementExact(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != 174471872)
+ goto AP
+ 4. goto AE
+ -> UnconditionalJump[GOTO] #G -> #AE
+ -> TryCatch range: [C...H] -> J ([Ljavax/crypto/BadPaddingException;, Ljavax/crypto/IllegalBlockSizeException;, Ljavax/crypto/NoSuchPaddingException;, Ljava/security/InvalidKeyException;, Ljava/security/NoSuchAlgorithmException;])
+ -> TryCatch range: [C...H] -> K ([Ljava/lang/IllegalStateException;])
+ -> ConditionalJump[IF_ICMPNE] #G -> #AP
+ <- Switch[81101480] #D -> #G
+===#Block AE(size=4, flags=0)===
+ 0. if (pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10) == 116000559)
+ goto AD
+ 1. throw nullconst;
+ 2. lvar52 = "AE : var expect: 0";
+ 3. if (java.lang.Math.floorDiv(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10), 740656974) != 0)
+ goto AP
+ -> ConditionalJump[IFNE] #AE -> #AP
+ -> TryCatch range: [AE...AD] -> AF ([Ljava/io/IOException;])
+ -> ConditionalJump[IF_ICMPEQ] #AE -> #AD
+ <- UnconditionalJump[GOTO] #G -> #AE
+===#Block AD(size=3, flags=0)===
+ 0. throw new java/io/IOException();
+ 1. lvar64 = "AD : var expect: 672834169";
+ 2. if (java.lang.StrictMath.floorMod(6909346245057239445L, 1346717428) != 672834169)
+ goto AJ
+ -> TryCatch range: [AE...AD] -> AF ([Ljava/io/IOException;])
+ -> ConditionalJump[IF_ICMPNE] #AD -> #AJ
+ <- ConditionalJump[IF_ICMPEQ] #AE -> #AD
+===#Block AF(size=4, flags=0)===
+ 0. _consume(catch());
+ 1. lvar46 = "AF : var expect: 1";
+ 2. if (java.lang.Math.floorDiv(304399280, pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != 1)
+ goto AJ
+ 3. goto H
+ -> ConditionalJump[IF_ICMPNE] #AF -> #AJ
+ -> UnconditionalJump[GOTO] #AF -> #H
+ <- TryCatch range: [AE...AD] -> AF ([Ljava/io/IOException;])
+ <- TryCatch range: [AE...AD] -> AF ([Ljava/io/IOException;])
+===#Block H(size=6, flags=0)===
+ 0. _consume(lvar0.self(lvar7, 1388402073));
+ 1. lvar2 = new java.lang.IllegalArgumentException;
+ 2. _consume(lvar2.(dynamic_invoke(java.lang.invoke.StringConcatFactory.makeConcatWithConstants("Failed test! Stage: ", lvar7))));
+ 3. throw lvar2;
+ 4. lvar54 = "H : var expect: -221101857";
+ 5. if (java.lang.StrictMath.negateExact(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != -221101857)
+ goto AT
+ -> ConditionalJump[IF_ICMPNE] #H -> #AT
+ -> TryCatch range: [C...H] -> J ([Ljavax/crypto/BadPaddingException;, Ljavax/crypto/IllegalBlockSizeException;, Ljavax/crypto/NoSuchPaddingException;, Ljava/security/InvalidKeyException;, Ljava/security/NoSuchAlgorithmException;])
+ -> TryCatch range: [C...H] -> K ([Ljava/lang/IllegalStateException;])
+ <- UnconditionalJump[GOTO] #AC -> #H
+ <- UnconditionalJump[GOTO] #T -> #H
+ <- UnconditionalJump[GOTO] #AF -> #H
+===#Block O(size=4, flags=0)===
+ 0. if (java.lang.Integer.highestOneBit(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) == 67108864)
+ goto I
+ 1. lvar78 = "O : var expect: 0";
+ 2. if (java.lang.Integer.divideUnsigned(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10), 717799781) != 0)
+ goto AT
+ 3. goto AH
+ -> UnconditionalJump[GOTO] #O -> #AH
+ -> ConditionalJump[IF_ICMPEQ] #O -> #I
+ -> ConditionalJump[IFNE] #O -> #AT
+ <- ConditionalJump[IF_ICMPNE] #C -> #O
+===#Block AT(size=11, flags=0)===
+ 0. throw new java/lang/RuntimeException("Failed to proper vm");
+ 1. if (java.lang.Integer.divideUnsigned(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10), 717799781) != 0)
+ goto AT
+ 2. if (java.lang.Integer.divideUnsigned(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10), 717799781) != {1875980090 ^ lvar10})
+ goto AT
+ 3. lvar118 = "[Constant] 1565228851 -> 1875980090 predicate=848973833";
+ 4. _consume({1279866343 ^ lvar10});
+ 5. throw new java/lang/IllegalAccessException("Failed to proper vm");
+ 6. if (java.lang.StrictMath.negateExact(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != -221101857)
+ goto AT
+ 7. if (java.lang.StrictMath.negateExact(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != {1435161180 ^ lvar10})
+ goto AT
+ 8. lvar120 = "[Constant] 1729135189 -> 1435161180 predicate=848973833";
+ 9. _consume({1670266440 ^ lvar10});
+ 10. throw new java/lang/IllegalAccessException("double");
+ -> ConditionalJump[IFNE] #AT -> #AT
+ <- ConditionalJump[IFNE] #AT -> #AT
+ <- ConditionalJump[IFNE] #O -> #AT
+ <- ConditionalJump[IF_ICMPNE] #H -> #AT
+===#Block I(size=6, flags=0)===
+ 0. lvar5 = new java.lang.IllegalArgumentException;
+ 1. _consume(lvar5.(dynamic_invoke(java.lang.invoke.StringConcatFactory.makeConcatWithConstants("Failed test! Stage: ", {1868635508 ^ lvar10}))));
+ 2. lvar148 = "[Constant] 2 -> 1868635508 predicate=1868635510";
+ 3. throw lvar5;
+ 4. lvar26 = "I : var expect: 130827894";
+ 5. if (java.lang.Math.incrementExact(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != 130827894)
+ goto AM
+ -> TryCatch range: [C...H] -> K ([Ljava/lang/IllegalStateException;])
+ -> TryCatch range: [C...H] -> J ([Ljavax/crypto/BadPaddingException;, Ljavax/crypto/IllegalBlockSizeException;, Ljavax/crypto/NoSuchPaddingException;, Ljava/security/InvalidKeyException;, Ljava/security/NoSuchAlgorithmException;])
+ -> ConditionalJump[IF_ICMPNE] #I -> #AM
+ <- ConditionalJump[IF_ICMPEQ] #O -> #I
+===#Block AM(size=6, flags=0)===
+ 0. throw new java/lang/RuntimeException("Failed to proper vm");
+ 1. if (java.lang.Math.incrementExact(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != 130827894)
+ goto AM
+ 2. if (java.lang.Math.incrementExact(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != {534608025 ^ lvar10})
+ goto AM
+ 3. lvar150 = "[Constant] 799953346 -> 534608025 predicate=812853595";
+ 4. _consume({1482674342 ^ lvar10});
+ 5. throw new java/io/IOException("double");
+ -> ConditionalJump[IF_ICMPNE] #AM -> #AM
+ <- ConditionalJump[IF_ICMPNE] #AM -> #AM
+ <- ConditionalJump[IF_ICMPNE] #I -> #AM
+===#Block J(size=6, flags=0)===
+ 0. lvar1 = catch();
+ 1. _consume(lvar1.printStackTrace());
+ 2. lvar6 = {-1642027151 ^ lvar10};
+ 3. lvar84 = "[Constant] -1 -> -1642027151 predicate=1642027150";
+ 4. lvar36 = "J : var expect: 844826032";
+ 5. if (java.lang.Integer.reverse(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != 844826032)
+ goto AP
+ -> ConditionalJump[IF_ICMPNE] #J -> #AP
+ -> Immediate #J -> #L
+ <- TryCatch range: [C...H] -> J ([Ljavax/crypto/BadPaddingException;, Ljavax/crypto/IllegalBlockSizeException;, Ljavax/crypto/NoSuchPaddingException;, Ljava/security/InvalidKeyException;, Ljava/security/NoSuchAlgorithmException;])
+ <- TryCatch range: [C...H] -> J ([Ljavax/crypto/BadPaddingException;, Ljavax/crypto/IllegalBlockSizeException;, Ljavax/crypto/NoSuchPaddingException;, Ljava/security/InvalidKeyException;, Ljava/security/NoSuchAlgorithmException;])
+ <- TryCatch range: [C...H] -> J ([Ljavax/crypto/BadPaddingException;, Ljavax/crypto/IllegalBlockSizeException;, Ljavax/crypto/NoSuchPaddingException;, Ljava/security/InvalidKeyException;, Ljava/security/NoSuchAlgorithmException;])
+ <- TryCatch range: [C...H] -> J ([Ljavax/crypto/BadPaddingException;, Ljavax/crypto/IllegalBlockSizeException;, Ljavax/crypto/NoSuchPaddingException;, Ljava/security/InvalidKeyException;, Ljava/security/NoSuchAlgorithmException;])
+ <- TryCatch range: [C...H] -> J ([Ljavax/crypto/BadPaddingException;, Ljavax/crypto/IllegalBlockSizeException;, Ljavax/crypto/NoSuchPaddingException;, Ljava/security/InvalidKeyException;, Ljava/security/NoSuchAlgorithmException;])
+ <- TryCatch range: [C...H] -> J ([Ljavax/crypto/BadPaddingException;, Ljavax/crypto/IllegalBlockSizeException;, Ljavax/crypto/NoSuchPaddingException;, Ljava/security/InvalidKeyException;, Ljava/security/NoSuchAlgorithmException;])
+ <- TryCatch range: [C...H] -> J ([Ljavax/crypto/BadPaddingException;, Ljavax/crypto/IllegalBlockSizeException;, Ljavax/crypto/NoSuchPaddingException;, Ljava/security/InvalidKeyException;, Ljava/security/NoSuchAlgorithmException;])
+===#Block AP(size=16, flags=0)===
+ 0. throw new java/lang/RuntimeException("Failed to proper vm");
+ 1. if (java.lang.Math.incrementExact(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != 174471872)
+ goto AP
+ 2. if (java.lang.Math.incrementExact(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != {2030182280 ^ lvar10})
+ goto AP
+ 3. lvar98 = "[Constant] 1632662628 -> 2030182280 predicate=408054764";
+ 4. _consume({1744682858 ^ lvar10});
+ 5. throw new java/io/IOException("Failed to proper vm");
+ 6. if (java.lang.Math.floorDiv(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10), 740656974) != 0)
+ goto AP
+ 7. if (java.lang.Math.floorDiv(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10), 740656974) != {2056186139 ^ lvar10})
+ goto AP
+ 8. lvar96 = "[Constant] 1658618615 -> 2056186139 predicate=408054764";
+ 9. _consume({1914135807 ^ lvar10});
+ 10. throw new java/lang/IllegalAccessException("Failed to proper vm");
+ 11. if (java.lang.Integer.reverse(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != 844826032)
+ goto AP
+ 12. if (java.lang.Integer.reverse(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != {1146406566 ^ lvar10})
+ goto AP
+ 13. lvar94 = "[Constant] 1543941450 -> 1146406566 predicate=408054764";
+ 14. _consume({1985284243 ^ lvar10});
+ 15. throw new java/lang/RuntimeException("double");
+ -> ConditionalJump[IF_ICMPNE] #AP -> #AP
+ <- ConditionalJump[IF_ICMPNE] #J -> #AP
+ <- ConditionalJump[IF_ICMPNE] #AP -> #AP
+ <- ConditionalJump[IFNE] #AE -> #AP
+ <- ConditionalJump[IF_ICMPNE] #G -> #AP
+===#Block K(size=6, flags=0)===
+ 0. lvar4 = catch();
+ 1. lvar6 = {323490043 ^ lvar10};
+ 2. lvar80 = "[Constant] 4 -> 323490043 predicate=323490047";
+ 3. lvar20 = "K : var expect: 2096829093";
+ 4. if (java.lang.Integer.rotateRight(1053075807, pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != 2096829093)
+ goto AK
+ 5. goto Y
+ -> ConditionalJump[IF_ICMPNE] #K -> #AK
+ -> UnconditionalJump[GOTO] #K -> #Y
+ <- TryCatch range: [C...H] -> K ([Ljava/lang/IllegalStateException;])
+ <- TryCatch range: [C...H] -> K ([Ljava/lang/IllegalStateException;])
+ <- TryCatch range: [C...H] -> K ([Ljava/lang/IllegalStateException;])
+ <- TryCatch range: [C...H] -> K ([Ljava/lang/IllegalStateException;])
+ <- TryCatch range: [C...H] -> K ([Ljava/lang/IllegalStateException;])
+ <- TryCatch range: [C...H] -> K ([Ljava/lang/IllegalStateException;])
+ <- TryCatch range: [C...H] -> K ([Ljava/lang/IllegalStateException;])
+===#Block Y(size=4, flags=0)===
+ 0. if (pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10) == 161914808)
+ goto X
+ 1. throw nullconst;
+ 2. lvar30 = "Y : var expect: 161914808";
+ 3. if (java.lang.StrictMath.abs(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != 161914808)
+ goto AO
+ -> ConditionalJump[IF_ICMPEQ] #Y -> #X
+ -> ConditionalJump[IF_ICMPNE] #Y -> #AO
+ -> TryCatch range: [Y...X] -> Z ([Ljava/lang/RuntimeException;])
+ <- UnconditionalJump[GOTO] #K -> #Y
+===#Block X(size=3, flags=0)===
+ 0. throw new java/lang/RuntimeException();
+ 1. lvar34 = "X : var expect: 1";
+ 2. if (java.lang.Integer.lowestOneBit(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != 1)
+ goto AK
+ -> ConditionalJump[IF_ICMPNE] #X -> #AK
+ -> TryCatch range: [Y...X] -> Z ([Ljava/lang/RuntimeException;])
+ <- ConditionalJump[IF_ICMPEQ] #Y -> #X
+===#Block Z(size=4, flags=0)===
+ 0. _consume(catch());
+ 1. lvar16 = "Z : var expect: 1";
+ 2. if (java.lang.Integer.signum(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != 1)
+ goto AJ
+ 3. goto L
+ -> UnconditionalJump[GOTO] #Z -> #L
+ -> ConditionalJump[IF_ICMPNE] #Z -> #AJ
+ <- TryCatch range: [Y...X] -> Z ([Ljava/lang/RuntimeException;])
+ <- TryCatch range: [Y...X] -> Z ([Ljava/lang/RuntimeException;])
+===#Block L(size=4, flags=0)===
+ 0. if (dev.skidfuscator.testclasses.exclusion.ObfuscatedTestClass.data[{920850576 ^ lvar10}] == lvar6)
+ goto Q
+ 1. lvar106 = "[Constant] 2 -> 920850576 predicate=920850578";
+ 2. lvar68 = "L : var expect: 173524729";
+ 3. if (java.lang.Math.min(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10), 400518036) != 173524729)
+ goto AR
+ -> ConditionalJump[IF_ICMPEQ] #L -> #Q
+ -> ConditionalJump[IF_ICMPNE] #L -> #AR
+ -> Immediate #L -> #M
+ <- UnconditionalJump[GOTO] #Z -> #L
+ <- Immediate #J -> #L
+===#Block M(size=5, flags=0)===
+ 0. lvar3 = new java.lang.IllegalArgumentException;
+ 1. _consume(lvar3.(dynamic_invoke(java.lang.invoke.StringConcatFactory.makeConcatWithConstants("Failed test! Stage: ", lvar6))));
+ 2. throw lvar3;
+ 3. lvar70 = "M : var expect: -1";
+ 4. if (java.lang.Character.digit(1730944408, pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != -1)
+ goto AY
+ -> ConditionalJump[IF_ICMPNE] #M -> #AY
+ <- Immediate #L -> #M
+===#Block AY(size=6, flags=0)===
+ 0. throw new java/lang/RuntimeException("Failed to proper vm");
+ 1. if (java.lang.Character.digit(1730944408, pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != -1)
+ goto AY
+ 2. if (java.lang.Character.digit(1730944408, pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != {1414932870 ^ lvar10})
+ goto AY
+ 3. lvar90 = "[Constant] 118288580 -> 1414932870 predicate=1398462786";
+ 4. _consume({1129199961 ^ lvar10});
+ 5. throw new java/io/IOException("double");
+ -> ConditionalJump[IF_ICMPNE] #AY -> #AY
+ <- ConditionalJump[IF_ICMPNE] #M -> #AY
+ <- ConditionalJump[IF_ICMPNE] #AY -> #AY
+===#Block AR(size=11, flags=0)===
+ 0. throw new java/lang/IllegalAccessException("Failed to proper vm");
+ 1. if (java.lang.Math.min(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10), 400518036) != 173524729)
+ goto AR
+ 2. if (java.lang.Math.min(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10), 400518036) != {1447666497 ^ lvar10})
+ goto AR
+ 3. lvar116 = "[Constant] 1788260121 -> 1447666497 predicate=1021250648";
+ 4. _consume({1374273480 ^ lvar10});
+ 5. throw new java/lang/RuntimeException("Failed to proper vm");
+ 6. if (java.lang.StrictMath.max(1707464269, pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != 1707464269)
+ goto AR
+ 7. if (java.lang.StrictMath.max(1707464269, pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != {1786344253 ^ lvar10})
+ goto AR
+ 8. lvar114 = "[Constant] 1453752165 -> 1786344253 predicate=1021250648";
+ 9. _consume({185204503 ^ lvar10});
+ 10. throw new java/lang/RuntimeException("double");
+ -> ConditionalJump[IF_ICMPNE] #AR -> #AR
+ <- ConditionalJump[IF_ICMPNE] #R -> #AR
+ <- ConditionalJump[IF_ICMPNE] #L -> #AR
+ <- ConditionalJump[IF_ICMPNE] #AR -> #AR
+===#Block Q(size=4, flags=0)===
+ 0. if (java.lang.Integer.numberOfLeadingZeros(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) == 5)
+ goto N
+ 1. lvar12 = "Q : var expect: 68094140";
+ 2. if (java.lang.Integer.min(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10), 1105305961) != 68094140)
+ goto P
+ 3. goto V
+ -> UnconditionalJump[GOTO] #Q -> #V
+ -> ConditionalJump[IF_ICMPEQ] #Q -> #N
+ -> ConditionalJump[IF_ICMPNE] #Q -> #P
+ <- ConditionalJump[IF_ICMPEQ] #L -> #Q
+===#Block N(size=3, flags=0)===
+ 0. return;
+ 1. lvar32 = "N : var expect: 314";
+ 2. if (java.lang.StrictMath.floorDiv(2061171791, pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != 314)
+ goto AJ
+ -> ConditionalJump[IF_ICMPNE] #N -> #AJ
+ <- ConditionalJump[IF_ICMPEQ] #Q -> #N
+===#Block AJ(size=26, flags=0)===
+ 0. throw new java/lang/RuntimeException("Failed to proper vm");
+ 1. if (java.lang.StrictMath.floorMod(6909346245057239445L, 1346717428) != 672834169)
+ goto AJ
+ 2. if (java.lang.StrictMath.floorMod(6909346245057239445L, 1346717428) != {1846725310 ^ lvar10})
+ goto AJ
+ 3. lvar158 = "[Constant] 655625094 -> 1846725310 predicate=1225179448";
+ 4. _consume({1218594415 ^ lvar10});
+ 5. throw new java/io/IOException("Failed to proper vm");
+ 6. if (java.lang.Math.floorDiv(304399280, pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != 1)
+ goto AJ
+ 7. if (java.lang.Math.floorDiv(304399280, pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != {433705380 ^ lvar10})
+ goto AJ
+ 8. lvar156 = "[Constant] 1356796060 -> 433705380 predicate=1225179448";
+ 9. _consume({1178814505 ^ lvar10});
+ 10. throw new java/lang/RuntimeException("Failed to proper vm");
+ 11. if (java.lang.StrictMath.floorDiv(2061171791, pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != 314)
+ goto AJ
+ 12. if (java.lang.StrictMath.floorDiv(2061171791, pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != {334178431 ^ lvar10})
+ goto AJ
+ 13. lvar154 = "[Constant] 1525541191 -> 334178431 predicate=1225179448";
+ 14. _consume({1912106380 ^ lvar10});
+ 15. throw new java/lang/RuntimeException("Failed to proper vm");
+ 16. if (java.lang.Integer.sum(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10), 2092181537) != -2115371073)
+ goto AJ
+ 17. if (java.lang.Integer.sum(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10), 2092181537) != {72919272 ^ lvar10})
+ goto AJ
+ 18. lvar160 = "[Constant] 1298033104 -> 72919272 predicate=1225179448";
+ 19. _consume({114206829 ^ lvar10});
+ 20. throw new java/lang/RuntimeException("Failed to proper vm");
+ 21. if (java.lang.Integer.signum(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != 1)
+ goto AJ
+ 22. if (java.lang.Integer.signum(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != {161741336 ^ lvar10})
+ goto AJ
+ 23. lvar152 = "[Constant] 1084570400 -> 161741336 predicate=1225179448";
+ 24. _consume({1314252186 ^ lvar10});
+ 25. throw new java/io/IOException("double");
+ -> ConditionalJump[IF_ICMPNE] #AJ -> #AJ
+ <- ConditionalJump[IF_ICMPNE] #AA -> #AJ
+ <- ConditionalJump[IF_ICMPNE] #N -> #AJ
+ <- ConditionalJump[IF_ICMPNE] #AJ -> #AJ
+ <- ConditionalJump[IF_ICMPNE] #AF -> #AJ
+ <- ConditionalJump[IF_ICMPNE] #Z -> #AJ
+ <- ConditionalJump[IF_ICMPNE] #AD -> #AJ
+===#Block V(size=4, flags=0)===
+ 0. if (pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10) == 74656824)
+ goto U
+ 1. throw nullconst;
+ 2. lvar60 = "V : var expect: 23";
+ 3. if (java.lang.StrictMath.floorDiv(1751083165, pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != 23)
+ goto AV
+ -> ConditionalJump[IF_ICMPNE] #V -> #AV
+ -> TryCatch range: [V...U] -> W ([Ljava/lang/RuntimeException;])
+ -> ConditionalJump[IF_ICMPEQ] #V -> #U
+ <- UnconditionalJump[GOTO] #Q -> #V
+===#Block U(size=3, flags=0)===
+ 0. throw new java/lang/RuntimeException();
+ 1. lvar44 = "U : var expect: 118257104";
+ 2. if (java.lang.StrictMath.floorMod(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10), 218158239) != 118257104)
+ goto AO
+ -> ConditionalJump[IF_ICMPNE] #U -> #AO
+ -> TryCatch range: [V...U] -> W ([Ljava/lang/RuntimeException;])
+ <- ConditionalJump[IF_ICMPEQ] #V -> #U
+===#Block AO(size=11, flags=0)===
+ 0. throw new java/lang/RuntimeException("Failed to proper vm");
+ 1. if (java.lang.StrictMath.floorMod(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10), 218158239) != 118257104)
+ goto AO
+ 2. if (java.lang.StrictMath.floorMod(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10), 218158239) != {1846145018 ^ lvar10})
+ goto AO
+ 3. lvar136 = "[Constant] 1748173870 -> 1846145018 predicate=104524756";
+ 4. _consume({1422396881 ^ lvar10});
+ 5. throw new java/lang/IllegalAccessException("Failed to proper vm");
+ 6. if (java.lang.StrictMath.abs(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != 161914808)
+ goto AO
+ 7. if (java.lang.StrictMath.abs(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != {1048097773 ^ lvar10})
+ goto AO
+ 8. lvar138 = "[Constant] 943872057 -> 1048097773 predicate=104524756";
+ 9. _consume({1106757231 ^ lvar10});
+ 10. throw new java/lang/RuntimeException("double");
+ -> ConditionalJump[IF_ICMPNE] #AO -> #AO
+ <- ConditionalJump[IF_ICMPNE] #Y -> #AO
+ <- ConditionalJump[IF_ICMPNE] #AO -> #AO
+ <- ConditionalJump[IF_ICMPNE] #U -> #AO
+===#Block W(size=4, flags=0)===
+ 0. _consume(catch());
+ 1. lvar42 = "W : var expect: -199414816";
+ 2. if (java.lang.Integer.rotateRight(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10), 1529987227) != -199414816)
+ goto AL
+ 3. goto P
+ -> ConditionalJump[IF_ICMPNE] #W -> #AL
+ -> UnconditionalJump[GOTO] #W -> #P
+ <- TryCatch range: [V...U] -> W ([Ljava/lang/RuntimeException;])
+ <- TryCatch range: [V...U] -> W ([Ljava/lang/RuntimeException;])
+===#Block AV(size=6, flags=0)===
+ 0. throw new java/lang/IllegalAccessException("Failed to proper vm");
+ 1. if (java.lang.StrictMath.floorDiv(1751083165, pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != 23)
+ goto AV
+ 2. if (java.lang.StrictMath.floorDiv(1751083165, pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != {575435872 ^ lvar10})
+ goto AV
+ 3. lvar140 = "[Constant] 737862807 -> 575435872 predicate=162959607";
+ 4. _consume({2037543923 ^ lvar10});
+ 5. throw new java/lang/RuntimeException("double");
+ -> ConditionalJump[IF_ICMPNE] #AV -> #AV
+ <- ConditionalJump[IF_ICMPNE] #V -> #AV
+ <- ConditionalJump[IF_ICMPNE] #AV -> #AV
+===#Block AK(size=11, flags=0)===
+ 0. throw new java/lang/RuntimeException("Failed to proper vm");
+ 1. if (java.lang.Integer.lowestOneBit(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != 1)
+ goto AK
+ 2. if (java.lang.Integer.lowestOneBit(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != {1320643140 ^ lvar10})
+ goto AK
+ 3. lvar164 = "[Constant] 799158104 -> 1320643140 predicate=1628783900";
+ 4. _consume({941867786 ^ lvar10});
+ 5. throw new java/io/IOException("Failed to proper vm");
+ 6. if (java.lang.Integer.rotateRight(1053075807, pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != 2096829093)
+ goto AK
+ 7. if (java.lang.Integer.rotateRight(1053075807, pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != {1992433651 ^ lvar10})
+ goto AK
+ 8. lvar162 = "[Constant] 399989487 -> 1992433651 predicate=1628783900";
+ 9. _consume({880283429 ^ lvar10});
+ 10. throw new java/lang/RuntimeException("double");
+ -> ConditionalJump[IF_ICMPNE] #AK -> #AK
+ <- ConditionalJump[IF_ICMPNE] #X -> #AK
+ <- ConditionalJump[IF_ICMPNE] #AK -> #AK
+ <- ConditionalJump[IF_ICMPNE] #K -> #AK
+===#Block AH(size=4, flags=0)===
+ 0. if (pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10) == 26034181)
+ goto AG
+ 1. throw nullconst;
+ 2. lvar28 = "AH : var expect: 26034181";
+ 3. if (java.lang.Math.absExact(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != 26034181)
+ goto AN
+ -> ConditionalJump[IF_ICMPNE] #AH -> #AN
+ -> ConditionalJump[IF_ICMPEQ] #AH -> #AG
+ -> TryCatch range: [AH...AG] -> AI ([Ljava/io/IOException;])
+ <- UnconditionalJump[GOTO] #O -> #AH
+===#Block AG(size=3, flags=0)===
+ 0. throw new java/io/IOException();
+ 1. lvar66 = "AG : var expect: 96268669";
+ 2. if (java.lang.Character.toLowerCase(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != 96268669)
+ goto AX
+ -> ConditionalJump[IF_ICMPNE] #AG -> #AX
+ -> TryCatch range: [AH...AG] -> AI ([Ljava/io/IOException;])
+ <- ConditionalJump[IF_ICMPEQ] #AH -> #AG
+===#Block AI(size=4, flags=0)===
+ 0. _consume(catch());
+ 1. lvar40 = "AI : var expect: 0";
+ 2. if (java.lang.Character.getType(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != 0)
+ goto AQ
+ 3. goto P
+ -> ConditionalJump[IFNE] #AI -> #AQ
+ -> UnconditionalJump[GOTO] #AI -> #P
+ <- TryCatch range: [AH...AG] -> AI ([Ljava/io/IOException;])
+ <- TryCatch range: [AH...AG] -> AI ([Ljava/io/IOException;])
+===#Block P(size=23, flags=0)===
+ 0. throw new java/lang/RuntimeException("Failed to proper vm");
+ 1. if (java.lang.Character.digit(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10), 1157052188) != -1)
+ goto P
+ 2. if (java.lang.Character.digit(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10), 1157052188) != {2087345862 ^ lvar10})
+ goto P
+ 3. lvar132 = "[Constant] 1297991678 -> 2087345862 predicate=825727288";
+ 4. _consume({233399223 ^ lvar10});
+ 5. throw new java/lang/RuntimeException("Failed to proper vm");
+ 6. if (java.lang.Character.getNumericValue(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != -1)
+ goto P
+ 7. if (java.lang.Character.getNumericValue(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != {1431189994 ^ lvar10})
+ goto P
+ 8. lvar126 = "[Constant] 1685692626 -> 1431189994 predicate=825727288";
+ 9. _consume({2051377248 ^ lvar10});
+ 10. throw new java/lang/IllegalAccessException("Failed to proper vm");
+ 11. if (java.lang.Math.min(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10), 1127856956) != 21977833)
+ goto P
+ 12. if (java.lang.Math.min(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10), 1127856956) != {1630057163 ^ lvar10})
+ goto P
+ 13. lvar128 = "[Constant] 1344220147 -> 1630057163 predicate=825727288";
+ 14. _consume({370507441 ^ lvar10});
+ 15. throw new java/lang/IllegalAccessException("Failed to proper vm");
+ 16. if (java.lang.Integer.min(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10), 1105305961) != 68094140)
+ goto P
+ 17. if (java.lang.Integer.min(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10), 1105305961) != {201406604 ^ lvar10})
+ goto P
+ 18. lvar130 = "[Constant] 1026990516 -> 201406604 predicate=825727288";
+ 19. _consume({1445331241 ^ lvar10});
+ 20. throw new java/io/IOException();
+ 21. lvar76 = "P : var expect: 257657323";
+ 22. if (java.lang.Integer.hashCode(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != 257657323)
+ goto BA
+ -> ConditionalJump[IF_ICMPNE] #P -> #BA
+ -> ConditionalJump[IF_ICMPNE] #P -> #P
+ <- ConditionalJump[IF_ICMPNE] #P -> #P
+ <- ConditionalJump[IF_ICMPNE] #F -> #P
+ <- UnconditionalJump[GOTO] #W -> #P
+ <- ConditionalJump[IF_ICMPNE] #Q -> #P
+ <- UnconditionalJump[GOTO] #AI -> #P
+ <- ConditionalJump[IF_ICMPNE] #T -> #P
+ <- ConditionalJump[IF_ICMPNE] #A -> #P
+===#Block BA(size=6, flags=0)===
+ 0. throw new java/io/IOException("Failed to proper vm");
+ 1. if (java.lang.Integer.hashCode(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != 257657323)
+ goto BA
+ 2. if (java.lang.Integer.hashCode(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != {2139306365 ^ lvar10})
+ goto BA
+ 3. lvar112 = "[Constant] 2133386653 -> 2139306365 predicate=11263200";
+ 4. _consume({1300692355 ^ lvar10});
+ 5. throw new java/lang/RuntimeException("double");
+ -> ConditionalJump[IF_ICMPNE] #BA -> #BA
+ <- ConditionalJump[IF_ICMPNE] #BA -> #BA
+ <- ConditionalJump[IF_ICMPNE] #P -> #BA
+===#Block AQ(size=11, flags=0)===
+ 0. throw new java/io/IOException("Failed to proper vm");
+ 1. if (java.lang.Integer.numberOfLeadingZeros(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != 4)
+ goto AQ
+ 2. if (java.lang.Integer.numberOfLeadingZeros(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != {1721181494 ^ lvar10})
+ goto AQ
+ 3. lvar168 = "[Constant] 1091931915 -> 1721181494 predicate=662874685";
+ 4. _consume({1424722734 ^ lvar10});
+ 5. throw new java/lang/IllegalAccessException("Failed to proper vm");
+ 6. if (java.lang.Character.getType(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != 0)
+ goto AQ
+ 7. if (java.lang.Character.getType(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != {1208442658 ^ lvar10})
+ goto AQ
+ 8. lvar166 = "[Constant] 1871050015 -> 1208442658 predicate=662874685";
+ 9. _consume({144412276 ^ lvar10});
+ 10. throw new java/lang/RuntimeException("double");
+ -> ConditionalJump[IF_ICMPNE] #AQ -> #AQ
+ <- ConditionalJump[IF_ICMPNE] #E -> #AQ
+ <- ConditionalJump[IFNE] #AI -> #AQ
+ <- ConditionalJump[IF_ICMPNE] #AQ -> #AQ
+===#Block AX(size=6, flags=0)===
+ 0. throw new java/lang/IllegalAccessException("Failed to proper vm");
+ 1. if (java.lang.Character.toLowerCase(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != 96268669)
+ goto AX
+ 2. if (java.lang.Character.toLowerCase(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != {1217868518 ^ lvar10})
+ goto AX
+ 3. lvar122 = "[Constant] 800241795 -> 1217868518 predicate=1730513509";
+ 4. _consume({2124593970 ^ lvar10});
+ 5. throw new java/lang/IllegalAccessException("double");
+ -> ConditionalJump[IF_ICMPNE] #AX -> #AX
+ <- ConditionalJump[IF_ICMPNE] #AX -> #AX
+ <- ConditionalJump[IF_ICMPNE] #AG -> #AX
+===#Block AN(size=6, flags=0)===
+ 0. throw new java/lang/RuntimeException("Failed to proper vm");
+ 1. if (java.lang.Math.absExact(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != 26034181)
+ goto AN
+ 2. if (java.lang.Math.absExact(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != {776031309 ^ lvar10})
+ goto AN
+ 3. lvar86 = "[Constant] 1959685424 -> 776031309 predicate=1519329661";
+ 4. _consume({284603248 ^ lvar10});
+ 5. throw new java/lang/RuntimeException("double");
+ -> ConditionalJump[IF_ICMPNE] #AN -> #AN
+ <- ConditionalJump[IF_ICMPNE] #AH -> #AN
+ <- ConditionalJump[IF_ICMPNE] #AN -> #AN
+===#Block AL(size=11, flags=0)===
+ 0. throw new java/io/IOException("Failed to proper vm");
+ 1. if (java.lang.Integer.rotateRight(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10), 1529987227) != -199414816)
+ goto AL
+ 2. if (java.lang.Integer.rotateRight(pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10), 1529987227) != {2144908761 ^ lvar10})
+ goto AL
+ 3. lvar108 = "[Constant] 1203066869 -> 2144908761 predicate=946725420";
+ 4. _consume({1316129242 ^ lvar10});
+ 5. throw new java/lang/IllegalAccessException("Failed to proper vm");
+ 6. if (java.lang.Math.subtractExact(1517175641, pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != 1307126627)
+ goto AL
+ 7. if (java.lang.Math.subtractExact(1517175641, pslmxlxlobvpuknt.ycljuptvbdeihrjh.rovephdzuhsjqppr(lvar10)) != {326198746 ^ lvar10})
+ goto AL
+ 8. lvar110 = "[Constant] 723290102 -> 326198746 predicate=946725420";
+ 9. _consume({1375778798 ^ lvar10});
+ 10. throw new java/lang/RuntimeException("double");
+ -> ConditionalJump[IF_ICMPNE] #AL -> #AL
+ <- ConditionalJump[IF_ICMPNE] #AL -> #AL
+ <- ConditionalJump[IF_ICMPNE] #C -> #AL
+ <- ConditionalJump[IF_ICMPNE] #W -> #AL
diff --git a/dev.skidfuscator.obfuscator/src/main/java/dev/skidfuscator/obfuscator/Skidfuscator.java b/dev.skidfuscator.obfuscator/src/main/java/dev/skidfuscator/obfuscator/Skidfuscator.java
index 70bc42d..73bc490 100644
--- a/dev.skidfuscator.obfuscator/src/main/java/dev/skidfuscator/obfuscator/Skidfuscator.java
+++ b/dev.skidfuscator.obfuscator/src/main/java/dev/skidfuscator/obfuscator/Skidfuscator.java
@@ -56,6 +56,7 @@
import dev.skidfuscator.obfuscator.transform.impl.hash.InstanceOfHashTransformer;
import dev.skidfuscator.obfuscator.transform.impl.hash.StringEqualsHashTransformer;
import dev.skidfuscator.obfuscator.transform.impl.hash.StringEqualsIgnoreCaseHashTransformer;
+import dev.skidfuscator.obfuscator.transform.impl.loop.LoopConditionTransformer;
import dev.skidfuscator.obfuscator.transform.impl.misc.AhegaoTransformer;
import dev.skidfuscator.obfuscator.transform.impl.number.NumberTransformer;
import dev.skidfuscator.obfuscator.transform.impl.pure.PureHashTransformer;
@@ -147,45 +148,6 @@ public class Skidfuscator {
public Skidfuscator(SkidfuscatorSession session) {
this.session = session;
this.exemptAnalysis = new ExemptManager();
- }
-
- /**
- * Runs the execution of the obfuscator.
- */
- public void run() {
- LOGGER.setDebug(session.isDebug());
- LOGGER.post("Beginning Skidfuscator Community...");
- _verifyEnvironment();
- if (session.isAnalytics()) {
- _runAnalytics();
- }
-
- if (session.isDex()) {
- // WIP
- }
-
- /*
- * Initializes a null skid directory. This skid directory is used as a
- * cache or a temporary directory, most often for silly things such as
- * JPhantom or in the near future as a cache for the Ghost pre-computed
- * mappings.
- */
- SkiddedDirectory.init(null);
-
- /*
- * Here is initialized the skid cache.
- *
- * The SkidCache is an extension of MapleIR's IRCache
- */
- this.irFactory = new SkidCache(this);
-
- /*
- * Here we initialize our opaque predicate type. As of right now
- * only one has been completed: the direct integer opaque predicate.
- * In the future, it will be possible to add compatibility for other
- * types such as longs, byte arrays etc...
- */
- LOGGER.post("Resolving predicate analysis...");
this.predicateAnalysis = new SimplePredicateAnalysis.Builder()
.skidfuscator(this)
/*
@@ -231,13 +193,54 @@ public void run() {
/* Builder */
.build();
+ }
+
+ /**
+ * Runs the execution of the obfuscator.
+ */
+ public void run() {
+ LOGGER.setDebug(session.isDebug());
+ LOGGER.post("Beginning Skidfuscator Community...");
+ _verifyEnvironment();
+ if (session.isAnalytics()) {
+ _runAnalytics();
+ }
+
+ if (session.isDex()) {
+ // WIP
+ }
+
+ /*
+ * Initializes a null skid directory. This skid directory is used as a
+ * cache or a temporary directory, most often for silly things such as
+ * JPhantom or in the near future as a cache for the Ghost pre-computed
+ * mappings.
+ */
+ SkiddedDirectory.init(null);
+
+ /*
+ * Here is initialized the skid cache.
+ *
+ * The SkidCache is an extension of MapleIR's IRCache
+ */
+ this.irFactory = new SkidCache(this);
+
+ /*
+ * Here we initialize our opaque predicate type. As of right now
+ * only one has been completed: the direct integer opaque predicate.
+ * In the future, it will be possible to add compatibility for other
+ * types such as longs, byte arrays etc...
+ */
+ LOGGER.post("Resolving predicate analysis...");
+
if (session.isDebug())
LOGGER.log("Finished resolving predicate analysis!");
_importConfig();
_importExempt();
_importClasspath();
- _importJvm();
+ final Set sources = _importJvm();
+ this.getClassSource().addLibraries(sources.toArray(new LibraryClassSource[0]));
if (!session.isFuckIt()) {
_verify();
@@ -476,8 +479,9 @@ protected void _importExempt() {
LOGGER.log("Finished importing exemptions");
}
- protected void _importJvm() {
+ public Set _importJvm() {
/* Import JVM */
+ final Set sources = new HashSet<>();
LOGGER.post("Beginning importing of the JVM...");
/*
@@ -498,7 +502,8 @@ protected void _importJvm() {
GhostHelper.getJvm(session, LOGGER, session.getRuntime()),
0
);
- this.classSource.addLibraries(jvmClassSource);
+
+ sources.add(jvmClassSource);
wrapper.tick();
}
LOGGER.post("✓ Success");
@@ -531,10 +536,11 @@ protected void _importJvm() {
continue;
}
- this.classSource.addLibraries((jvmClassSource = new LibraryClassSource(
+ jvmClassSource = new LibraryClassSource(
GhostHelper.getJvm(session, LOGGER, file),
0
- )));
+ );
+ sources.add(jvmClassSource);
wrapper.tick();
}
}
@@ -542,6 +548,8 @@ protected void _importJvm() {
}
LOGGER.log("Finished importing the JVM");
LOGGER.log(String.format("Imported %d jvm classes!", jvmClassSource.size()));
+
+ return sources;
}
protected void _importClasspath() {
@@ -709,6 +717,7 @@ public List getTransformers() {
new StringEqualsHashTransformer(this),
new StringEqualsIgnoreCaseHashTransformer(this),
new InstanceOfHashTransformer(this),
+ //new LoopConditionTransformer(this),
/*
new FlatteningFlowTransformer(this),*/
new AhegaoTransformer(this)
diff --git a/dev.skidfuscator.obfuscator/src/main/java/dev/skidfuscator/obfuscator/context/SkidfuscatorContext.java b/dev.skidfuscator.obfuscator/src/main/java/dev/skidfuscator/obfuscator/context/SkidfuscatorContext.java
new file mode 100644
index 0000000..d81ce38
--- /dev/null
+++ b/dev.skidfuscator.obfuscator/src/main/java/dev/skidfuscator/obfuscator/context/SkidfuscatorContext.java
@@ -0,0 +1,15 @@
+package dev.skidfuscator.obfuscator.context;
+
+import org.mapleir.app.service.ApplicationClassSource;
+
+public class SkidfuscatorContext {
+ private ApplicationClassSource mainSource;
+
+ public SkidfuscatorContext(ApplicationClassSource applicationClassSource) {
+ this.mainSource = applicationClassSource;
+ }
+
+ public void resolveJdk() {
+
+ }
+}
diff --git a/dev.skidfuscator.obfuscator/src/main/java/dev/skidfuscator/obfuscator/creator/SkidApplicationClassSource.java b/dev.skidfuscator.obfuscator/src/main/java/dev/skidfuscator/obfuscator/creator/SkidApplicationClassSource.java
index 6a34eb8..88f0802 100644
--- a/dev.skidfuscator.obfuscator/src/main/java/dev/skidfuscator/obfuscator/creator/SkidApplicationClassSource.java
+++ b/dev.skidfuscator.obfuscator/src/main/java/dev/skidfuscator/obfuscator/creator/SkidApplicationClassSource.java
@@ -1,19 +1,26 @@
package dev.skidfuscator.obfuscator.creator;
import dev.skidfuscator.obfuscator.Skidfuscator;
+import dev.skidfuscator.jghost.GhostHelper;
+import dev.skidfuscator.jghost.tree.GhostLibrary;
import org.mapleir.app.service.ApplicationClassSource;
import org.mapleir.app.service.ClassTree;
+import org.mapleir.app.service.LibraryClassSource;
+import org.mapleir.app.service.LocateableClassNode;
import org.mapleir.asm.ClassNode;
import org.topdank.byteengineer.commons.data.JarClassData;
import org.topdank.byteengineer.commons.data.JarContents;
import org.topdank.byteengineer.commons.data.LocateableJarContents;
+import java.io.File;
+import java.io.IOException;
import java.util.Collection;
+import java.util.HashSet;
import java.util.Map;
+import java.util.Set;
import java.util.stream.Collectors;
public class SkidApplicationClassSource extends ApplicationClassSource {
- //private final LocateableJarContents nodes;
private final Skidfuscator skidfuscator;
public SkidApplicationClassSource(String name, boolean phantom, JarContents nodes, Skidfuscator skidfuscator) {
@@ -39,4 +46,36 @@ public ClassTree getClassTree() {
}
return classTree;
}
+
+ public void importLibrary(File file) throws IOException {
+ final ApplicationClassSource libraryClassSource = GhostHelper.getLibraryClassSource(
+ skidfuscator.getSession(), Skidfuscator.LOGGER, file);
+ /* Add library source to class source */
+ this.addLibraries(new LibraryClassSource(
+ libraryClassSource,
+ 5
+ ));
+ }
+
+ public Set getMissingClassNames() {
+ Set missingClasses = new HashSet<>();
+ for (String className : nodeMap.keySet()) {
+ ClassNode node = nodeMap.get(className);
+ if (node != null) {
+ String superName = node.getName();
+ if (superName != null && !contains(superName)) {
+ missingClasses.add(superName.replace('/', '.'));
+ }
+ Collection interfaces = node.getInterfaces();
+ if (interfaces != null) {
+ for (String iface : interfaces) {
+ if (!contains(iface)) {
+ missingClasses.add(iface.replace('/', '.'));
+ }
+ }
+ }
+ }
+ }
+ return missingClasses;
+ }
}
diff --git a/dev.skidfuscator.obfuscator/src/main/java/dev/skidfuscator/obfuscator/creator/SkidClassTree.java b/dev.skidfuscator.obfuscator/src/main/java/dev/skidfuscator/obfuscator/creator/SkidClassTree.java
index 3dba567..eaa93d1 100644
--- a/dev.skidfuscator.obfuscator/src/main/java/dev/skidfuscator/obfuscator/creator/SkidClassTree.java
+++ b/dev.skidfuscator.obfuscator/src/main/java/dev/skidfuscator/obfuscator/creator/SkidClassTree.java
@@ -57,9 +57,13 @@ public void verifyVertex(ClassNode cn) {
}
if(cn != rootNode) {
- ClassNode sup = cn.node.superName != null
- ? requestClass0(cn.node.superName, cn.getName())
- : rootNode;
+ ClassNode sup;
+
+ try {
+ sup = requestClass0(cn.node.superName, cn.getName());
+ } catch (Exception e) {
+ throw new IllegalStateException(String.format("No superclass %s for %s", cn.node.superName, cn.getName()));
+ }
if(sup == null) {
throw new IllegalStateException(String.format("No superclass %s for %s", cn.node.superName, cn.getName()));
}
diff --git a/dev.skidfuscator.obfuscator/src/main/java/dev/skidfuscator/obfuscator/number/pure/VmHashTransformer.java b/dev.skidfuscator.obfuscator/src/main/java/dev/skidfuscator/obfuscator/number/pure/VmHashTransformer.java
index 7751d14..c8fabdb 100644
--- a/dev.skidfuscator.obfuscator/src/main/java/dev/skidfuscator/obfuscator/number/pure/VmHashTransformer.java
+++ b/dev.skidfuscator.obfuscator/src/main/java/dev/skidfuscator/obfuscator/number/pure/VmHashTransformer.java
@@ -133,6 +133,8 @@ public SkiddedHash hash(int starting, BasicBlock vertex, PredicateFlowGetter cal
this.selectRandomMethod();
+ System.out.println("Hashed: " + hashed + " Expr: " + hashExpr);
+
return new SkiddedHash(hashExpr, hashed);
} catch (VMException | PanicException e) {
e.printStackTrace();
diff --git a/dev.skidfuscator.obfuscator/src/main/java/dev/skidfuscator/obfuscator/predicate/renderer/IntegerBlockPredicateRenderer.java b/dev.skidfuscator.obfuscator/src/main/java/dev/skidfuscator/obfuscator/predicate/renderer/IntegerBlockPredicateRenderer.java
index 8138563..6d601f3 100644
--- a/dev.skidfuscator.obfuscator/src/main/java/dev/skidfuscator/obfuscator/predicate/renderer/IntegerBlockPredicateRenderer.java
+++ b/dev.skidfuscator.obfuscator/src/main/java/dev/skidfuscator/obfuscator/predicate/renderer/IntegerBlockPredicateRenderer.java
@@ -97,6 +97,10 @@ void handle(final InitSkidTransformEvent event) {
skidfuscator.setLegacyHasher(new LegacyHashTransformer(skidfuscator));
skidfuscator.setBitwiseHasher(new BitwiseHashTransformer(skidfuscator));
+
+ if (skidfuscator.getVmHasher() != null) {
+ throw new IllegalStateException("VmHasher is already initialized");
+ }
skidfuscator.setVmHasher(new BitwiseHashTransformer(skidfuscator));
}
diff --git a/dev.skidfuscator.obfuscator/src/main/java/dev/skidfuscator/obfuscator/skidasm/SkidClassNode.java b/dev.skidfuscator.obfuscator/src/main/java/dev/skidfuscator/obfuscator/skidasm/SkidClassNode.java
index bf9b1b2..a0235d9 100644
--- a/dev.skidfuscator.obfuscator/src/main/java/dev/skidfuscator/obfuscator/skidasm/SkidClassNode.java
+++ b/dev.skidfuscator.obfuscator/src/main/java/dev/skidfuscator/obfuscator/skidasm/SkidClassNode.java
@@ -26,9 +26,9 @@ public class SkidClassNode extends ClassNode {
@Getter
private final Skidfuscator skidfuscator;
@Getter
- private final ClassOpaquePredicate classPredicate;
+ private ClassOpaquePredicate classPredicate;
@Getter
- private final ClassOpaquePredicate staticPredicate;
+ private ClassOpaquePredicate staticPredicate;
private transient SkidMethodNode clinitNode;
private transient Boolean mixin;
@Getter
@@ -42,12 +42,15 @@ public class SkidClassNode extends ClassNode {
public SkidClassNode(org.objectweb.asm.tree.ClassNode node, Skidfuscator session) {
super(node, false);
this.skidfuscator = session;
- this.classPredicate = skidfuscator
- .getPredicateAnalysis()
- .getClassPredicate(this);
- this.staticPredicate = skidfuscator
- .getPredicateAnalysis()
- .getClassStaticPredicate(this);
+
+ if (skidfuscator != null) {
+ this.classPredicate = skidfuscator
+ .getPredicateAnalysis()
+ .getClassPredicate(this);
+ this.staticPredicate = skidfuscator
+ .getPredicateAnalysis()
+ .getClassStaticPredicate(this);
+ }
for (MethodNode method : node.methods) {
super.getMethods().add(new SkidMethodNode(method, this, session));
diff --git a/dev.skidfuscator.obfuscator/src/main/java/dev/skidfuscator/obfuscator/skidasm/SkidMethodNode.java b/dev.skidfuscator.obfuscator/src/main/java/dev/skidfuscator/obfuscator/skidasm/SkidMethodNode.java
index aae1823..106d7b4 100644
--- a/dev.skidfuscator.obfuscator/src/main/java/dev/skidfuscator/obfuscator/skidasm/SkidMethodNode.java
+++ b/dev.skidfuscator.obfuscator/src/main/java/dev/skidfuscator/obfuscator/skidasm/SkidMethodNode.java
@@ -35,7 +35,7 @@
@Getter
public class SkidMethodNode extends MethodNode {
private SkidControlFlowGraph cfg;
- private final BlockOpaquePredicate flowPredicate;
+ private BlockOpaquePredicate flowPredicate;
private final Skidfuscator skidfuscator;
private final List invokers;
private MethodOpaquePredicate predicate;
@@ -49,9 +49,12 @@ public SkidMethodNode(org.objectweb.asm.tree.MethodNode node, ClassNode owner, S
super(node, owner);
this.skidfuscator = skidfuscator;
this.invokers = new ArrayList<>();
- this.flowPredicate = skidfuscator
- .getPredicateAnalysis()
- .getBlockPredicate(this);
+
+ if (skidfuscator != null) {
+ this.flowPredicate = skidfuscator
+ .getPredicateAnalysis()
+ .getBlockPredicate(this);
+ }
this.attributes = new AttributeMap();
}
diff --git a/dev.skidfuscator.obfuscator/src/main/java/dev/skidfuscator/obfuscator/transform/AbstractExpressionTransformer.java b/dev.skidfuscator.obfuscator/src/main/java/dev/skidfuscator/obfuscator/transform/AbstractExpressionTransformer.java
index 44c67d3..96af0d9 100644
--- a/dev.skidfuscator.obfuscator/src/main/java/dev/skidfuscator/obfuscator/transform/AbstractExpressionTransformer.java
+++ b/dev.skidfuscator.obfuscator/src/main/java/dev/skidfuscator/obfuscator/transform/AbstractExpressionTransformer.java
@@ -19,7 +19,7 @@ public AbstractExpressionTransformer(Skidfuscator skidfuscator, String name) {
}
@Listen(EventPriority.LOWEST)
- void handle(final RunMethodTransformEvent event) {
+ protected void handle(final RunMethodTransformEvent event) {
final SkidMethodNode methodNode = event.getMethodNode();
if (shouldSkipMethod(methodNode)) {
diff --git a/dev.skidfuscator.obfuscator/src/main/java/dev/skidfuscator/obfuscator/transform/impl/flow/exception/BasicExceptionTransformer.java b/dev.skidfuscator.obfuscator/src/main/java/dev/skidfuscator/obfuscator/transform/impl/flow/exception/BasicExceptionTransformer.java
index ba1908a..14b4a3b 100644
--- a/dev.skidfuscator.obfuscator/src/main/java/dev/skidfuscator/obfuscator/transform/impl/flow/exception/BasicExceptionTransformer.java
+++ b/dev.skidfuscator.obfuscator/src/main/java/dev/skidfuscator/obfuscator/transform/impl/flow/exception/BasicExceptionTransformer.java
@@ -157,7 +157,7 @@ void handle(final RunMethodTransformEvent event) {
// Todo change blocks to be skiddedblocks to add method to directly add these
final ConstantExpr var_const = new AlertableConstantExpr(hash.getHash(), Type.INT_TYPE);
- final ConditionalJumpStmt jump_stmt = new FakeConditionalJumpStmt(hash.getExpr(), var_const, fuckup, ConditionalJumpStmt.ComparisonType.NE);
+ final ConditionalJumpStmt jump_stmt = new FakeConditionalJumpStmt(hash.getExpr().copy() , var_const, fuckup, ConditionalJumpStmt.ComparisonType.NE);
if (entry.get(entry.size() - 1) instanceof UnconditionalJumpStmt)
entry.add(entry.size() - 1, jump_stmt);
diff --git a/dev.skidfuscator.obfuscator/src/main/java/dev/skidfuscator/obfuscator/transform/impl/loop/LoopConditionTransformer.java b/dev.skidfuscator.obfuscator/src/main/java/dev/skidfuscator/obfuscator/transform/impl/loop/LoopConditionTransformer.java
new file mode 100644
index 0000000..f1c565c
--- /dev/null
+++ b/dev.skidfuscator.obfuscator/src/main/java/dev/skidfuscator/obfuscator/transform/impl/loop/LoopConditionTransformer.java
@@ -0,0 +1,105 @@
+package dev.skidfuscator.obfuscator.transform.impl.loop;
+
+import dev.skidfuscator.obfuscator.Skidfuscator;
+import dev.skidfuscator.obfuscator.transform.AbstractTransformer;
+import dev.skidfuscator.obfuscator.util.RandomUtil;
+import org.mapleir.ir.cfg.BasicBlock;
+import org.mapleir.ir.cfg.ControlFlowGraph;
+import org.mapleir.ir.code.Expr;
+import org.mapleir.ir.code.Stmt;
+import org.mapleir.ir.code.expr.ArithmeticExpr;
+import org.mapleir.ir.code.expr.ComparisonExpr;
+import org.mapleir.ir.code.expr.ConstantExpr;
+import org.mapleir.ir.code.stmt.ConditionalJumpStmt;
+import org.objectweb.asm.Type;
+import dev.skidfuscator.obfuscator.event.annotation.Listen;
+import dev.skidfuscator.obfuscator.event.impl.transform.method.RunMethodTransformEvent;
+
+import java.util.HashSet;
+
+public class LoopConditionTransformer extends AbstractTransformer {
+ public LoopConditionTransformer(Skidfuscator skidfuscator) {
+ super(skidfuscator, "Loop Condition");
+ }
+
+ @Listen
+ void handle(final RunMethodTransformEvent event) {
+ final ControlFlowGraph cfg = event.getMethodNode().getCfg();
+ if (cfg == null) {
+ return;
+ }
+
+ // We need to work on a copy since we'll be modifying the blocks
+ for (BasicBlock block : new HashSet<>(cfg.vertices())) {
+ for (Stmt stmt : new HashSet<>(block)) {
+ if (!(stmt instanceof ConditionalJumpStmt)) {
+ continue;
+ }
+
+ ConditionalJumpStmt jumpStmt = (ConditionalJumpStmt) stmt;
+ Expr left = jumpStmt.getLeft();
+ Expr right = jumpStmt.getRight();
+
+ // Only handle integer comparisons for now
+ if (!left.getType().equals(Type.INT_TYPE) ||
+ !right.getType().equals(Type.INT_TYPE)) {
+ continue;
+ }
+
+ transformCondition(jumpStmt);
+ this.success();
+ }
+ }
+ }
+
+ private void transformCondition(ConditionalJumpStmt jumpStmt) {
+ Expr left = jumpStmt.getLeft();
+ Expr right = jumpStmt.getRight();
+
+ // Generate random constants for obfuscation
+ int multiplier = RandomUtil.nextInt(10) + 1; // Small multiplier to reduce intermediate overflow
+ int mask = RandomUtil.nextInt();
+
+ // First apply XOR
+ Expr xorLeft = new ArithmeticExpr(
+ left.copy(),
+ new ConstantExpr(mask),
+ ArithmeticExpr.Operator.XOR
+ );
+
+ Expr xorRight = new ArithmeticExpr(
+ right.copy(),
+ new ConstantExpr(mask),
+ ArithmeticExpr.Operator.XOR
+ );
+
+ // Then multiply
+ Expr mulLeft = new ArithmeticExpr(
+ xorLeft,
+ new ConstantExpr(multiplier),
+ ArithmeticExpr.Operator.MUL
+ );
+
+ Expr mulRight = new ArithmeticExpr(
+ xorRight,
+ new ConstantExpr(multiplier),
+ ArithmeticExpr.Operator.MUL
+ );
+
+ // Finally, take modulo of the original value to preserve bounds
+ // This ensures array indices stay within bounds
+ Expr boundedLeft = new ArithmeticExpr(
+ mulLeft,
+ right.copy(), // Use the original right value (usually array length) for modulo
+ ArithmeticExpr.Operator.REM
+ );
+
+ // For the right side, we keep it unchanged if it's likely an array length
+ // Otherwise, apply the same transformation
+ Expr boundedRight = right;
+
+ // Update the jump condition with transformed expressions
+ jumpStmt.setLeft(boundedLeft);
+ jumpStmt.setRight(boundedRight);
+ }
+}
\ No newline at end of file
diff --git a/dev.skidfuscator.obfuscator/src/main/java/dev/skidfuscator/obfuscator/transform/impl/pure/PureHashTransformer.java b/dev.skidfuscator.obfuscator/src/main/java/dev/skidfuscator/obfuscator/transform/impl/pure/PureHashTransformer.java
index ca4dbce..a192fd5 100644
--- a/dev.skidfuscator.obfuscator/src/main/java/dev/skidfuscator/obfuscator/transform/impl/pure/PureHashTransformer.java
+++ b/dev.skidfuscator.obfuscator/src/main/java/dev/skidfuscator/obfuscator/transform/impl/pure/PureHashTransformer.java
@@ -12,7 +12,7 @@ public PureHashTransformer(Skidfuscator skidfuscator) {
super(skidfuscator, "Pure Encryption");
}
- @Listen
+ @Listen(EventPriority.HIGHEST)
void handle(final InitSkidTransformEvent event) {
if (skidfuscator.getVmHasher() == null) {
throw new IllegalStateException("VmHasher is null");
diff --git a/dev.skidfuscator.obfuscator/src/test/java/dev/skidfuscator/core/TestSkidfuscator.java b/dev.skidfuscator.obfuscator/src/test/java/dev/skidfuscator/core/TestSkidfuscator.java
index 928cafe..c67baa1 100644
--- a/dev.skidfuscator.obfuscator/src/test/java/dev/skidfuscator/core/TestSkidfuscator.java
+++ b/dev.skidfuscator.obfuscator/src/test/java/dev/skidfuscator/core/TestSkidfuscator.java
@@ -47,7 +47,7 @@ public TestSkidfuscator(Class>[] test, Consumer
this.test = test;
this.callback = callback;
- IntegerBlockPredicateRenderer.DEBUG = true;
+ IntegerBlockPredicateRenderer.DEBUG = false;
}
public static boolean SKIP = false;
diff --git a/dev.skidfuscator.obfuscator/src/test/java/dev/skidfuscator/test/SampleJarTest.java b/dev.skidfuscator.obfuscator/src/test/java/dev/skidfuscator/test/SampleJarTest.java
index d17119f..54cf564 100644
--- a/dev.skidfuscator.obfuscator/src/test/java/dev/skidfuscator/test/SampleJarTest.java
+++ b/dev.skidfuscator.obfuscator/src/test/java/dev/skidfuscator/test/SampleJarTest.java
@@ -23,7 +23,7 @@
public class SampleJarTest {
- @RepeatedTest(20)
+ @RepeatedTest(1)
public void test2() throws Exception {
final File input = new File("src/test/resources/test.jar");
final File output = new File("src/test/resources/test-out.jar");
diff --git a/dev.skidfuscator.obfuscator/src/test/java/dev/skidfuscator/test/loop/LoopTest.java b/dev.skidfuscator.obfuscator/src/test/java/dev/skidfuscator/test/loop/LoopTest.java
new file mode 100644
index 0000000..4d6e302
--- /dev/null
+++ b/dev.skidfuscator.obfuscator/src/test/java/dev/skidfuscator/test/loop/LoopTest.java
@@ -0,0 +1,22 @@
+package dev.skidfuscator.test.loop;
+
+import dev.skidfuscator.core.SkidTest;
+import dev.skidfuscator.obfuscator.util.RandomUtil;
+import dev.skidfuscator.testclasses.TestRun;
+import dev.skidfuscator.testclasses.java_lang_String.EqualsTestClass;
+import dev.skidfuscator.testclasses.loop.LoopConditionTestClass;
+
+public class LoopTest extends SkidTest {
+ @Override
+ public Class extends TestRun> getMainClass() {
+ return LoopConditionTestClass.class;
+ }
+
+ @Override
+ public Class>[] getClasses() {
+ return new Class[]{
+ LoopConditionTestClass.class,
+ RandomUtil.class
+ };
+ }
+}
diff --git a/dev.skidfuscator.obfuscator/src/test/java/dev/skidfuscator/testclasses/java_lang_String/EnumNameTestClass.java b/dev.skidfuscator.obfuscator/src/test/java/dev/skidfuscator/testclasses/java_lang_String/EnumNameTestClass.java
new file mode 100644
index 0000000..5b1561d
--- /dev/null
+++ b/dev.skidfuscator.obfuscator/src/test/java/dev/skidfuscator/testclasses/java_lang_String/EnumNameTestClass.java
@@ -0,0 +1,28 @@
+package dev.skidfuscator.testclasses.java_lang_String;
+
+import dev.skidfuscator.testclasses.TestRun;
+
+public class EnumNameTestClass implements TestRun {
+ private enum TestEnum {
+ FIRST_VALUE,
+ SECOND_VALUE,
+ THIRD_VALUE
+ }
+
+ @Override
+ public void run() {
+ // Test direct enum name comparison
+ assert TestEnum.FIRST_VALUE.name().equals("FIRST_VALUE") : "Failed enum name test #1";
+
+ // Test enum name comparison with variable
+ TestEnum value = TestEnum.SECOND_VALUE;
+ assert value.name().equals("SECOND_VALUE") : "Failed enum name test #2";
+
+ // Test enum name comparison with method call
+ assert getEnumValue().name().equals("THIRD_VALUE") : "Failed enum name test #3";
+ }
+
+ private TestEnum getEnumValue() {
+ return TestEnum.THIRD_VALUE;
+ }
+}
\ No newline at end of file
diff --git a/dev.skidfuscator.obfuscator/src/test/java/dev/skidfuscator/testclasses/loop/LoopConditionTestClass.java b/dev.skidfuscator.obfuscator/src/test/java/dev/skidfuscator/testclasses/loop/LoopConditionTestClass.java
new file mode 100644
index 0000000..49ab54d
--- /dev/null
+++ b/dev.skidfuscator.obfuscator/src/test/java/dev/skidfuscator/testclasses/loop/LoopConditionTestClass.java
@@ -0,0 +1,56 @@
+package dev.skidfuscator.testclasses.loop;
+
+import dev.skidfuscator.testclasses.TestRun;
+
+public class LoopConditionTestClass implements TestRun {
+ @Override
+ public void run() {
+ // Test simple for loop
+ int sum1 = 0;
+ for (int i = 0; i < 5; i++) {
+ sum1 += i;
+ }
+ assert sum1 == 10 : "Failed simple for loop test";
+
+ // Test while loop with variable condition
+ int sum2 = 0;
+ int count = 0;
+ int max = 5;
+ while (count < max) {
+ sum2 += count;
+ count++;
+ }
+ assert sum2 == 10 : "Failed while loop test";
+
+ // Test do-while loop
+ int sum3 = 0;
+ int j = 0;
+ do {
+ sum3 += j;
+ j++;
+ } while (j < 5);
+ assert sum3 == 10 : "Failed do-while loop test";
+
+ // Test nested loops
+ int sum4 = 0;
+ for (int x = 0; x < 3; x++) {
+ for (int y = 0; y < 2; y++) {
+ sum4 += x + y;
+ }
+ }
+ assert sum4 == 9 : "Failed nested loops test";
+
+ // Test loop with method call in condition
+ int sum5 = 0;
+ int k = 0;
+ while (k < getLimit()) {
+ sum5 += k;
+ k++;
+ }
+ assert sum5 == 10 : "Failed loop with method call test";
+ }
+
+ private int getLimit() {
+ return 5;
+ }
+}
\ No newline at end of file
diff --git a/dev.skidfuscator.obfuscator/src/test/resources/config/runtime_new.hocon b/dev.skidfuscator.obfuscator/src/test/resources/config/runtime_new.hocon
index f45204a..77ab5d3 100644
--- a/dev.skidfuscator.obfuscator/src/test/resources/config/runtime_new.hocon
+++ b/dev.skidfuscator.obfuscator/src/test/resources/config/runtime_new.hocon
@@ -55,3 +55,6 @@ flowException {
exempt: []
}
+flowCondition {
+ enabled: false
+}
diff --git a/dev.skidfuscator.sdk/src/main/java/sdk/SDK.java b/dev.skidfuscator.sdk/src/main/java/sdk/SDK.java
index 4d465e4..49b4db9 100644
--- a/dev.skidfuscator.sdk/src/main/java/sdk/SDK.java
+++ b/dev.skidfuscator.sdk/src/main/java/sdk/SDK.java
@@ -58,4 +58,14 @@ private static Set computeHierarchyHashes(Class> cls, int seed) {
return Collections.unmodifiableSet(hashes);
}
+
+ public static boolean checkEnumName(Enum> enumValue, String hashedName, int seed) {
+ if (enumValue == null) {
+ return false;
+ }
+
+ // Hash the enum's name and compare with the provided hash
+ String actualHash = LongHashFunction.xx3(seed).hashChars(enumValue.name()) + "";
+ return actualHash.equals(hashedName);
+ }
}
diff --git a/org.mapleir.parent/org.mapleir.app-services/src/main/java/org/mapleir/app/service/ClassTree.java b/org.mapleir.parent/org.mapleir.app-services/src/main/java/org/mapleir/app/service/ClassTree.java
index deef403..999874d 100644
--- a/org.mapleir.parent/org.mapleir.app-services/src/main/java/org/mapleir/app/service/ClassTree.java
+++ b/org.mapleir.parent/org.mapleir.app-services/src/main/java/org/mapleir/app/service/ClassTree.java
@@ -62,7 +62,7 @@ public List getMissingClasses() {
sup = cn.node.superName != null
? requestClass0(cn.node.superName, cn.getName())
: rootNode;
- } catch (RuntimeException e) {
+ } catch (Exception e) {
// ignore
}
if(sup == null) {
@@ -73,7 +73,7 @@ public List getMissingClasses() {
ClassNode iface = null;
try {
iface = requestClass0(s, cn.getName());
- } catch (RuntimeException e) {
+ } catch (Exception e) {
// ignore
}
if(iface == null) {