Info Call to dynamic code loading API

Description

List of all dynamic code loading API calls in the application. Loading code from untrsuted sources could allow the execution of malicious code in the context of the current application.

Recommendation

This entry is informative, no recommendations applicable.

Technical details

Method org.spongycastle.util.Strings$1.run() calling method java.lang.System.getProperty()


    public String run()
    {
        return System.getProperty("line.separator");
    }

Method org.spongycastle.util.Properties$1.run() calling method java.lang.System.getProperty()


    public Object run()
    {
        String v1_1;
        String v0 = System.getProperty(this.val$propertyName);
        if (v0 != null) {
            v1_1 = org.spongycastle.util.Strings.toLowerCase(v0);
        } else {
            v1_1 = 0;
        }
        return v1_1;
    }

Method org.spongycastle.pqc.math.ntru.util.Util.is64BitJVM() calling method java.lang.System.getProperty()


    public static boolean is64BitJVM()
    {
        if (!org.spongycastle.pqc.math.ntru.util.Util.IS_64_BITNESS_KNOWN) {
            int v2_8;
            String v0 = System.getProperty("os.arch");
            String v1 = System.getProperty("sun.arch.data.model");
            if ((!"amd64".equals(v0)) && ((!"x86_64".equals(v0)) && ((!"ppc64".equals(v0)) && (!"64".equals(v1))))) {
                v2_8 = 0;
            } else {
                v2_8 = 1;
            }
            org.spongycastle.pqc.math.ntru.util.Util.IS_64_BIT_JVM = v2_8;
            org.spongycastle.pqc.math.ntru.util.Util.IS_64_BITNESS_KNOWN = 1;
        }
        return org.spongycastle.pqc.math.ntru.util.Util.IS_64_BIT_JVM;
    }

Method org.spongycastle.crypto.encodings.PKCS1Encoding$2.run() calling method java.lang.System.getProperty()


    public Object run()
    {
        return System.getProperty("org.spongycastle.pkcs1.not_strict");
    }

Method org.spongycastle.crypto.encodings.PKCS1Encoding$1.run() calling method java.lang.System.getProperty()


    public Object run()
    {
        return System.getProperty("org.spongycastle.pkcs1.strict");
    }

Method org.apache.http.util.VersionInfo.getUserAgent() calling method java.lang.System.getProperty()


    public static String getUserAgent(String p5, String p6, Class p7)
    {
        String v1;
        org.apache.http.util.VersionInfo v2 = org.apache.http.util.VersionInfo.loadVersionInfo(p6, p7.getClassLoader());
        if (v2 == null) {
            v1 = "UNAVAILABLE";
        } else {
            v1 = v2.getRelease();
        }
        return new StringBuilder().append(p5).append("/").append(v1).append(" (Java 1.5 minimum; Java/").append(System.getProperty("java.version")).append(")").toString();
    }

Method org.apache.commons.net.io.FromNetASCIIInputStream.<clinit>() calling method java.lang.System.getProperty()


    static FromNetASCIIInputStream()
    {
        org.apache.commons.net.io.FromNetASCIIInputStream._lineSeparator = System.getProperty("line.separator");
        org.apache.commons.net.io.FromNetASCIIInputStream._noConversionRequired = org.apache.commons.net.io.FromNetASCIIInputStream._lineSeparator.equals("\r\n");
        org.apache.commons.net.io.FromNetASCIIInputStream._lineSeparatorBytes = org.apache.commons.net.io.FromNetASCIIInputStream._lineSeparator.getBytes();
        return;
    }

Method org.apache.commons.net.ftp.parser.RegexFTPFileEntryParserImpl.getGroupsAsString() calling method java.lang.System.getProperty()


    public String getGroupsAsString()
    {
        StringBuilder v0_1 = new StringBuilder();
        int v1 = 1;
        while (v1 <= this.result.groupCount()) {
            v0_1.append(v1).append(") ").append(this.result.group(v1)).append(System.getProperty("line.separator"));
            v1++;
        }
        return v0_1.toString();
    }

Method org.apache.commons.net.ftp.FTPClient.initiateListParsing() calling method java.lang.System.getProperty()


    public org.apache.commons.net.ftp.FTPListParseEngine initiateListParsing(String p6, String p7)
    {
        if ((this.__entryParser == null) || (!this.__entryParserKey.equals(p6))) {
            if (p6 == null) {
                if (this.__configuration == null) {
                    String v2 = System.getProperty("org.apache.commons.net.ftp.systemType");
                    if (v2 == null) {
                        v2 = this.getSystemType();
                        java.util.Properties v1 = org.apache.commons.net.ftp.FTPClient.getOverrideProperties();
                        if (v1 != null) {
                            String v0 = v1.getProperty(v2);
                            if (v0 != null) {
                                v2 = v0;
                            }
                        }
                    }
                    this.__entryParser = this.__parserFactory.createFileEntryParser(v2);
                    this.__entryParserKey = v2;
                } else {
                    this.__entryParser = this.__parserFactory.createFileEntryParser(this.__configuration);
                    this.__entryParserKey = this.__configuration.getServerSystemKey();
                }
            } else {
                this.__entryParser = this.__parserFactory.createFileEntryParser(p6);
                this.__entryParserKey = p6;
            }
        }
        return this.initiateListParsing(this.__entryParser, p7);
    }

Method org.apache.commons.net.ftp.FTPClient.getSystemType() calling method java.lang.System.getProperty()


    public String getSystemType()
    {
        if (this.__systemName == null) {
            if (!org.apache.commons.net.ftp.FTPReply.isPositiveCompletion(this.syst())) {
                String v0 = System.getProperty("org.apache.commons.net.ftp.systemType.default");
                if (v0 == null) {
                    throw new java.io.IOException(new StringBuilder().append("Unable to determine system type - response: ").append(this.getReplyString()).toString());
                } else {
                    this.__systemName = v0;
                }
            } else {
                this.__systemName = ((String) this._replyLines.get((this._replyLines.size() - 1))).substring(4);
            }
        }
        return this.__systemName;
    }

Method org.apache.commons.lang3.SystemUtils.getUserHome() calling method java.lang.System.getProperty()


    public static java.io.File getUserHome()
    {
        return new java.io.File(System.getProperty("user.home"));
    }

Method org.apache.commons.lang3.SystemUtils.getUserDir() calling method java.lang.System.getProperty()


    public static java.io.File getUserDir()
    {
        return new java.io.File(System.getProperty("user.dir"));
    }

Method org.apache.commons.lang3.SystemUtils.getSystemProperty() calling method java.lang.System.getProperty()


    private static String getSystemProperty(String p4)
    {
        try {
            int v1_0 = System.getProperty(p4);
        } catch (SecurityException v0) {
            System.err.println(new StringBuilder().append("Caught a SecurityException reading the system property \'").append(p4).append("\'; the SystemUtils property value will default to null.").toString());
            v1_0 = 0;
        }
        return v1_0;
    }

Method org.apache.commons.lang3.SystemUtils.getJavaIoTmpDir() calling method java.lang.System.getProperty()


    public static java.io.File getJavaIoTmpDir()
    {
        return new java.io.File(System.getProperty("java.io.tmpdir"));
    }

Method org.apache.commons.lang3.SystemUtils.getJavaHome() calling method java.lang.System.getProperty()


    public static java.io.File getJavaHome()
    {
        return new java.io.File(System.getProperty("java.home"));
    }

Method org.apache.commons.lang3.JavaVersion.maxVersion() calling method java.lang.System.getProperty()


    private static float maxVersion()
    {
        int v0 = org.apache.commons.lang3.JavaVersion.toFloatVersion(System.getProperty("java.version", "2.0"));
        if (v0 <= 0) {
            v0 = 1073741824;
        }
        return v0;
    }

Method org.apache.commons.io.output.LockableFileWriter.<init>() calling method java.lang.System.getProperty()


    public LockableFileWriter(java.io.File p5, String p6, boolean p7, String p8)
    {
        java.io.File v5_1 = p5.getAbsoluteFile();
        if (v5_1.getParentFile() != null) {
            org.apache.commons.io.FileUtils.forceMkdir(v5_1.getParentFile());
        }
        if (!v5_1.isDirectory()) {
            if (p8 == null) {
                p8 = System.getProperty("java.io.tmpdir");
            }
            java.io.File v0_1 = new java.io.File(p8);
            org.apache.commons.io.FileUtils.forceMkdir(v0_1);
            this.testLockDir(v0_1);
            this.lockFile = new java.io.File(v0_1, new StringBuilder().append(v5_1.getName()).append(".lck").toString());
            this.createLock();
            this.out = this.initWriter(v5_1, p6, p7);
            return;
        } else {
            throw new java.io.IOException("File specified is a directory");
        }
    }

Method org.apache.commons.io.HexDump.<clinit>() calling method java.lang.System.getProperty()


    static HexDump()
    {
        org.apache.commons.io.HexDump.EOL = System.getProperty("line.separator");
        int[] v0_3 = new char[16];
        v0_3 = {48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 65, 66, 67, 68, 69, 70};
        org.apache.commons.io.HexDump._hexcodes = v0_3;
        int[] v0_5 = new int[8];
        v0_5 = {28, 24, 20, 16, 12, 8, 4, 0};
        org.apache.commons.io.HexDump._shifts = v0_5;
        return;
    }

Method org.apache.commons.io.FileUtils.getUserDirectoryPath() calling method java.lang.System.getProperty()


    public static String getUserDirectoryPath()
    {
        return System.getProperty("user.home");
    }

Method org.apache.commons.io.FileUtils.getTempDirectoryPath() calling method java.lang.System.getProperty()


    public static String getTempDirectoryPath()
    {
        return System.getProperty("java.io.tmpdir");
    }

Method org.apache.commons.io.FileSystemUtils.<clinit>() calling method java.lang.System.getProperty()


    static FileSystemUtils()
    {
        org.apache.commons.io.FileSystemUtils.INSTANCE = new org.apache.commons.io.FileSystemUtils();
        String v0 = "df";
        try {
            String v3_1 = System.getProperty("os.name");
        } catch (Exception v1) {
            int v2 = -1;
            org.apache.commons.io.FileSystemUtils.OS = v2;
            org.apache.commons.io.FileSystemUtils.DF = v0;
            return;
        }
        if (v3_1 != null) {
            String v3_0 = v3_1.toLowerCase(java.util.Locale.ENGLISH);
            if (v3_0.indexOf("windows") == -1) {
                if ((v3_0.indexOf("linux") == -1) && ((v3_0.indexOf("mpe/ix") == -1) && ((v3_0.indexOf("freebsd") == -1) && ((v3_0.indexOf("irix") == -1) && ((v3_0.indexOf("digital unix") == -1) && ((v3_0.indexOf("unix") == -1) && (v3_0.indexOf("mac os x") == -1))))))) {
                    if ((v3_0.indexOf("sun os") == -1) && ((v3_0.indexOf("sunos") == -1) && (v3_0.indexOf("solaris") == -1))) {
                        if ((v3_0.indexOf("hp-ux") == -1) && (v3_0.indexOf("aix") == -1)) {
                            v2 = 0;
                            org.apache.commons.io.FileSystemUtils.OS = v2;
                            org.apache.commons.io.FileSystemUtils.DF = v0;
                            return;
                        } else {
                            v2 = 3;
                            org.apache.commons.io.FileSystemUtils.OS = v2;
                            org.apache.commons.io.FileSystemUtils.DF = v0;
                            return;
                        }
                    } else {
                        v2 = 3;
                        v0 = "/usr/xpg4/bin/df";
                        org.apache.commons.io.FileSystemUtils.OS = v2;
                        org.apache.commons.io.FileSystemUtils.DF = v0;
                        return;
                    }
                } else {
                    v2 = 2;
                    org.apache.commons.io.FileSystemUtils.OS = v2;
                    org.apache.commons.io.FileSystemUtils.DF = v0;
                    return;
                }
            } else {
                v2 = 1;
                org.apache.commons.io.FileSystemUtils.OS = v2;
                org.apache.commons.io.FileSystemUtils.DF = v0;
                return;
            }
        } else {
            throw new java.io.IOException("os.name not found");
        }
    }

Method com.zebra.sdk.printer.internal.FormatUtilZpl.printStoredFormat() calling method java.lang.System.getProperty()


    public void printStoredFormat(String p2, java.util.Map p3)
    {
        try {
            this.printStoredFormat(p2, p3, System.getProperty("file.encoding"));
        } catch (java.io.UnsupportedEncodingException v0_2) {
            v0_2.printStackTrace();
        }
        return;
    }

Method com.zebra.sdk.printer.internal.FormatUtilLinkOsImpl.printStoredFormatWithVarGraphics() calling method java.lang.System.getProperty()


    public void printStoredFormatWithVarGraphics(String p2, java.util.Map p3, java.util.Map p4)
    {
        this.printStoredFormatWithVarGraphics(p2, p3, p4, System.getProperty("file.encoding"));
        return;
    }

Method com.zebra.sdk.printer.internal.FormatUtilLinkOsImpl.printStoredFormatWithVarGraphics() calling method java.lang.System.getProperty()


    public void printStoredFormatWithVarGraphics(String p2, java.util.Map p3)
    {
        this.printStoredFormatWithVarGraphics(p2, p3, System.getProperty("file.encoding"));
        return;
    }

Method com.zebra.sdk.printer.internal.FormatUtilCpcl.printStoredFormat() calling method java.lang.System.getProperty()


    public void printStoredFormat(String p2, java.util.Map p3)
    {
        try {
            this.printStoredFormat(p2, p3, System.getProperty("file.encoding"));
        } catch (java.io.UnsupportedEncodingException v0_2) {
            v0_2.printStackTrace();
        }
        return;
    }

Method com.zebra.sdk.printer.internal.FormatUtilA.printStoredFormat() calling method java.lang.System.getProperty()


    public void printStoredFormat(String p2, String[] p3)
    {
        try {
            this.printStoredFormat(p2, p3, System.getProperty("file.encoding"));
        } catch (java.io.UnsupportedEncodingException v0_2) {
            v0_2.printStackTrace();
        }
        return;
    }

Method com.zebra.sdk.comm.internal.ConnectionBuilderInternal.createClassesToTestMessage() calling method java.lang.System.getProperty()


    private static String createClassesToTestMessage(java.util.List p4)
    {
        String v0_2 = new StringBuilder().append("The following are possible connection types:").append(System.getProperty("line.separator")).toString();
        java.util.Iterator v2 = p4.iterator();
        String v1_0 = v0_2;
        while (v2.hasNext()) {
            v1_0 = new StringBuilder().append(v1_0).append("   ").append(((com.zebra.sdk.comm.Connection) v2.next()).getClass().getSimpleName()).append(System.getProperty("line.separator")).toString();
        }
        return v1_0;
    }

Method com.zebra.sdk.comm.internal.ConnectionBuilderInternal.build() calling method java.lang.System.getProperty()


    public static com.zebra.sdk.comm.Connection build(String p7)
    {
        if (com.zebra.sdk.comm.internal.ConnectionBuilderInternal.implementingClasses != null) {
            String v1_7 = new com.zebra.sdk.printer.internal.VerbosePrinter(com.zebra.sdk.comm.internal.ConnectionBuilderInternal.isConnBuilderVerbose);
            v1_7.println(new StringBuilder().append("Building connection for the string \"").append(p7).append("\"").toString());
            String v2_6 = new com.zebra.sdk.comm.internal.ConnectionInfo(p7);
            String v3_1 = new java.util.ArrayList();
            java.util.Iterator v4 = com.zebra.sdk.comm.internal.ConnectionBuilderInternal.implementingClasses.iterator();
            while (v4.hasNext()) {
                com.zebra.sdk.comm.ConnectionException v0_7 = ((Class) v4.next());
                try {
                    v3_1.add(com.zebra.sdk.comm.internal.ConnectionBuilderInternal.reflectivelyInstatiateConnection(v2_6, v0_7));
                } catch (com.zebra.sdk.comm.ConnectionException v0) {
                } catch (String v1) {
                    throw new com.zebra.sdk.comm.ConnectionException(new StringBuilder().append(v0_7.getName()).append(" does not implement a constructor that takes a ConnectionInfo object").toString());
                } catch (com.zebra.sdk.comm.ConnectionException v0_8) {
                    throw new com.zebra.sdk.comm.ConnectionException(v0_8.getMessage());
                }
            }
            if (!v3_1.isEmpty()) {
                com.zebra.sdk.comm.ConnectionException v0_23;
                if (v3_1.size() != 1) {
                    v0_23 = com.zebra.sdk.comm.internal.ConnectionBuilderInternal.determineConnectionToTry(v3_1, v1_7);
                    if (v0_23 != null) {
                        v1_7.println(new StringBuilder().append("Success!").append(System.getProperty("line.separator")).toString());
                    } else {
                        throw new com.zebra.sdk.comm.ConnectionException(new StringBuilder().append("Could not open connection string \"").append(p7).append("\"").toString());
                    }
                } else {
                    v1_7.println(new StringBuilder().append("Determined connection string \"").append(p7).append("\" is of type ").append(((com.zebra.sdk.comm.Connection) v3_1.get(0)).getClass().getSimpleName()).toString());
                    v0_23 = ((com.zebra.sdk.comm.Connection) v3_1.get(0));
                }
                return v0_23;
            } else {
                v1_7.println(new StringBuilder().append("Could not determine connection type of the value \"").append(p7).append("\"").toString());
                throw new com.zebra.sdk.comm.ConnectionException("Invalid connection type");
            }
        } else {
            throw new RuntimeException("Builder not correctly implemented");
        }
    }

Method com.scandit.base.camera.profiles.DeviceProfile.isCyanogenMod() calling method java.lang.System.getProperty()


    private boolean isCyanogenMod()
    {
        if ((!System.getProperty("os.version").contains("cyanogenmod")) && (!android.os.Build.HOST.contains("cyanogenmod"))) {
            int v0_2 = 0;
        } else {
            v0_2 = 1;
        }
        return v0_2;
    }

Method com.fasterxml.jackson.core.util.DefaultPrettyPrinter$Lf2SpacesIndenter.<clinit>() calling method java.lang.System.getProperty()


    static DefaultPrettyPrinter$Lf2SpacesIndenter()
    {
        com.fasterxml.jackson.core.util.DefaultPrettyPrinter$Lf2SpacesIndenter.instance = new com.fasterxml.jackson.core.util.DefaultPrettyPrinter$Lf2SpacesIndenter();
        try {
            char[] v0_5 = System.getProperty("line.separator");
        } catch (int v1) {
        }
        if (v0_5 == null) {
            v0_5 = "\n";
        }
        com.fasterxml.jackson.core.util.DefaultPrettyPrinter$Lf2SpacesIndenter.SYS_LF = v0_5;
        char[] v0_3 = new char[64];
        com.fasterxml.jackson.core.util.DefaultPrettyPrinter$Lf2SpacesIndenter.SPACES = v0_3;
        java.util.Arrays.fill(com.fasterxml.jackson.core.util.DefaultPrettyPrinter$Lf2SpacesIndenter.SPACES, 32);
        return;
    }

Method android.support.multidex.MultiDex.install() calling method java.lang.System.getProperty()


    public static void install(android.content.Context p11)
    {
        android.util.Log.i("MultiDex", "install");
        if (!android.support.multidex.MultiDex.IS_VM_MULTIDEX_CAPABLE) {
            if (android.os.Build$VERSION.SDK_INT >= 4) {
                try {
                    android.content.pm.ApplicationInfo v1 = android.support.multidex.MultiDex.getApplicationInfo(p11);
                } catch (RuntimeException v3_0) {
                    android.util.Log.e("MultiDex", "Multidex installation failure", v3_0);
                    throw new RuntimeException(new StringBuilder().append("Multi dex installation failed (").append(v3_0.getMessage()).append(").").toString());
                }
                if (v1 != null) {
                    String v0 = v1.sourceDir;
                    if (!android.support.multidex.MultiDex.installedApk.contains(v0)) {
                        android.support.multidex.MultiDex.installedApk.add(v0);
                        if (android.os.Build$VERSION.SDK_INT > 20) {
                            android.util.Log.w("MultiDex", new StringBuilder().append("MultiDex is not guaranteed to work in SDK version ").append(android.os.Build$VERSION.SDK_INT).append(": SDK version higher than ").append(20).append(" should be backed by ").append("runtime with built-in multidex capabilty but it\'s not the ").append("case here: java.vm.version=\"").append(System.getProperty("java.vm.version")).append("\"").toString());
                        }
                        try {
                            ClassLoader v5 = p11.getClassLoader();
                        } catch (RuntimeException v3_1) {
                            android.util.Log.w("MultiDex", "Failure while trying to obtain Context class loader. Must be running in test mode. Skip patching.", v3_1);
                        }
                        if (v5 != null) {
                            try {
                                android.support.multidex.MultiDex.clearOldDexDir(p11);
                            } catch (Throwable v6) {
                                android.util.Log.w("MultiDex", "Something went wrong when trying to clear old MultiDex extraction, continuing without cleaning.", v6);
                            }
                            java.io.File v2_1 = new java.io.File(v1.dataDir, android.support.multidex.MultiDex.SECONDARY_FOLDER_NAME);
                            java.util.List v4_0 = android.support.multidex.MultiDexExtractor.load(p11, v1, v2_1, 0);
                            if (!android.support.multidex.MultiDex.checkValidZipFiles(v4_0)) {
                                android.util.Log.w("MultiDex", "Files were not valid zip files.  Forcing a reload.");
                                java.util.List v4_1 = android.support.multidex.MultiDexExtractor.load(p11, v1, v2_1, 1);
                                if (!android.support.multidex.MultiDex.checkValidZipFiles(v4_1)) {
                                    throw new RuntimeException("Zip files were not valid.");
                                } else {
                                    android.support.multidex.MultiDex.installSecondaryDexes(v5, v2_1, v4_1);
                                }
                            } else {
                                android.support.multidex.MultiDex.installSecondaryDexes(v5, v2_1, v4_0);
                            }
                            android.util.Log.i("MultiDex", "install done");
                        } else {
                            android.util.Log.e("MultiDex", "Context class loader is null. Must be running in test mode. Skip patching.");
                        }
                    } else {
                    }
                }
            } else {
                throw new RuntimeException(new StringBuilder().append("Multi dex installation failed. SDK ").append(android.os.Build$VERSION.SDK_INT).append(" is unsupported. Min SDK version is ").append(4).append(".").toString());
            }
        } else {
            android.util.Log.i("MultiDex", "VM has multidex support, MultiDex support library is disabled.");
        }
        return;
    }

Method android.support.multidex.MultiDex.<clinit>() calling method java.lang.System.getProperty()


    static MultiDex()
    {
        android.support.multidex.MultiDex.SECONDARY_FOLDER_NAME = new StringBuilder().append("code_cache").append(java.io.File.separator).append("secondary-dexes").toString();
        android.support.multidex.MultiDex.installedApk = new java.util.HashSet();
        android.support.multidex.MultiDex.IS_VM_MULTIDEX_CAPABLE = android.support.multidex.MultiDex.isVMMultidexCapable(System.getProperty("java.vm.version"));
        return;
    }

Method mono.MonoPackageManager.LoadApplication() calling method java.lang.System.loadLibrary()


    public static void LoadApplication(android.content.Context p11, android.content.pm.ApplicationInfo p12, String[] p13)
    {
        try {
            if ((p11 instanceof android.app.Application)) {
                mono.MonoPackageManager.Context = p11;
            }
        } catch (int v0_2) {
            throw v0_2;
        }
        if (!mono.MonoPackageManager.initialized) {
            p11.registerReceiver(new mono.android.app.NotifyTimeZoneChanges(), new android.content.IntentFilter("android.intent.action.TIMEZONE_CHANGED"));
            System.loadLibrary("monodroid");
            int v0_4 = java.util.Locale.getDefault();
            int v0_7 = new StringBuilder().append(v0_4.getLanguage()).append("-").append(v0_4.getCountry()).toString();
            String[] v1_7 = p11.getFilesDir().getAbsolutePath();
            String[] v5_0 = p11.getCacheDir().getAbsolutePath();
            String[] v6_0 = mono.MonoPackageManager.getNativeLibraryPath(p11);
            ClassLoader v4 = p11.getClassLoader();
            String v2_3 = android.os.Environment.getExternalStorageDirectory();
            String v7_6 = new java.io.File(v2_3, new StringBuilder().append("Android/data/").append(p11.getPackageName()).append("/files/.__override__").toString()).getAbsolutePath();
            String v9_9 = new java.io.File(v2_3, new StringBuilder().append("../legacy/Android/data/").append(p11.getPackageName()).append("/files/.__override__").toString()).getAbsolutePath();
            String v2_4 = mono.MonoPackageManager.getNativeLibraryPath(p12);
            String[] v3_5 = new String[3];
            v3_5[0] = v1_7;
            v3_5[1] = v5_0;
            v3_5[2] = v6_0;
            String[] v5_1 = new String[2];
            v5_1[0] = v7_6;
            v5_1[1] = v9_9;
            mono.android.Runtime.init(v0_7, p13, v2_4, v3_5, v4, v5_1, mono.MonoPackageManager_Resources.Assemblies, p11.getPackageName());
            mono.android.app.ApplicationRegistration.registerApplications();
            mono.MonoPackageManager.initialized = 1;
        }
        return;
    }

Method com.scandit.recognition.Native.<clinit>() calling method java.lang.System.loadLibrary()


    static Native()
    {
        System.loadLibrary("scanditsdk-android-5.4.2");
        return;
    }

Method android.support.multidex.MultiDex$V4.install() calling method dalvik.system.DexFile.loadDex()


    private static void install(ClassLoader p13, java.util.List p14)
    {
        int v5 = p14.size();
        reflect.Field v10 = android.support.multidex.MultiDex.access$300(p13, "path");
        StringBuilder v9_1 = new StringBuilder(((String) v10.get(p13)));
        String[] v4 = new String[v5];
        java.io.File[] v3 = new java.io.File[v5];
        java.util.zip.ZipFile[] v6 = new java.util.zip.ZipFile[v5];
        dalvik.system.DexFile[] v2 = new dalvik.system.DexFile[v5];
        java.util.ListIterator v8 = p14.listIterator();
        while (v8.hasNext()) {
            java.io.File v0_1 = ((java.io.File) v8.next());
            String v1 = v0_1.getAbsolutePath();
            v9_1.append(58).append(v1);
            int v7 = v8.previousIndex();
            v4[v7] = v1;
            v3[v7] = v0_1;
            v6[v7] = new java.util.zip.ZipFile(v0_1);
            v2[v7] = dalvik.system.DexFile.loadDex(v1, new StringBuilder().append(v1).append(".dex").toString(), 0);
        }
        v10.set(p13, v9_1.toString());
        android.support.multidex.MultiDex.access$400(p13, "mPaths", v4);
        android.support.multidex.MultiDex.access$400(p13, "mFiles", v3);
        android.support.multidex.MultiDex.access$400(p13, "mZips", v6);
        android.support.multidex.MultiDex.access$400(p13, "mDexs", v2);
        return;
    }