/*
 * Decompiled with CFR 0.152.
 * 
 * Could not load the following classes:
 *  com.l7tech.gateway.common.InvalidLicenseException
 *  com.l7tech.gateway.common.licensing.FeatureLicense
 *  com.l7tech.gateway.common.licensing.LicenseDocument
 *  com.l7tech.gateway.common.licensing.LicenseUtils
 *  com.l7tech.util.TooManyChildElementsException
 *  org.jetbrains.annotations.NotNull
 *  org.jetbrains.annotations.Nullable
 */
package com.l7tech.server.licensing;

import com.l7tech.gateway.common.InvalidLicenseException;
import com.l7tech.gateway.common.licensing.FeatureLicense;
import com.l7tech.gateway.common.licensing.LicenseDocument;
import com.l7tech.gateway.common.licensing.LicenseUtils;
import com.l7tech.util.TooManyChildElementsException;
import java.security.cert.X509Certificate;
import java.util.Collections;
import java.util.Date;
import java.util.Set;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.w3c.dom.Document;

public class FeatureLicenseFactory {
    private static final String[] a;

    public FeatureLicense newInstance(@NotNull LicenseDocument licenseDocument) throws InvalidLicenseException {
        try {
            if (licenseDocument == null) {
                FeatureLicenseFactory.a(0);
            }
        }
        catch (InvalidLicenseException invalidLicenseException) {
            throw FeatureLicenseFactory.a((Exception)((Object)invalidLicenseException));
        }
        return this.newInstance(licenseDocument, null);
    }

    public FeatureLicense newInstance(@NotNull LicenseDocument licenseDocument, @Nullable X509Certificate[] x509CertificateArray) throws InvalidLicenseException {
        String string;
        String string2;
        String string3;
        String string4;
        String string5;
        String string6;
        Set set;
        Set set2;
        String string7;
        Date date;
        Date date2;
        String string8;
        String string9;
        String string10;
        long l2;
        X509Certificate x509Certificate;
        block7: {
            try {
                if (licenseDocument == null) {
                    FeatureLicenseFactory.a(1);
                }
            }
            catch (TooManyChildElementsException tooManyChildElementsException) {
                throw FeatureLicenseFactory.a((Exception)((Object)tooManyChildElementsException));
            }
            x509Certificate = null;
            Document document = LicenseUtils.parseLicenseDocument((String)licenseDocument.getContents());
            try {
                l2 = LicenseUtils.getId((Document)document);
                string10 = LicenseUtils.getDescription((Document)document);
                string9 = LicenseUtils.getLicenseeName((Document)document);
                string8 = LicenseUtils.getLicenseeEmail((Document)document);
                date2 = LicenseUtils.getStartDate((Document)document);
                date = LicenseUtils.getExpiryDate((Document)document);
                string7 = LicenseUtils.parseEulaText((Document)document);
                set2 = Collections.unmodifiableSet(LicenseUtils.getAttributes((Document)document));
                set = LicenseUtils.getFeatureSets((Document)document);
                string6 = LicenseUtils.getHostname((Document)document);
                string5 = LicenseUtils.getIpAddress((Document)document);
                string4 = LicenseUtils.getProductName((Document)document);
                string3 = LicenseUtils.getMajorVersionNumber((Document)document);
                string2 = LicenseUtils.getMinorVersionNumber((Document)document);
                string = LicenseUtils.getFeatureLabel((Document)document);
                try {
                    if (null == x509CertificateArray || x509CertificateArray.length <= 0) break block7;
                }
                catch (TooManyChildElementsException tooManyChildElementsException) {
                    throw FeatureLicenseFactory.a((Exception)((Object)tooManyChildElementsException));
                }
                x509Certificate = LicenseUtils.getTrustedIssuer((Document)document, (X509Certificate[])x509CertificateArray);
            }
            catch (TooManyChildElementsException tooManyChildElementsException) {
                throw new InvalidLicenseException(a[4], (Throwable)tooManyChildElementsException);
            }
        }
        return new FeatureLicense(l2, string10, string9, string8, date2, date, string7, set2, set, string6, string5, string4, string3, string2, string, x509Certificate, licenseDocument);
    }

    private static /* synthetic */ void a(int n2) {
        String[] stringArray = a;
        throw new IllegalArgumentException(String.format(stringArray[2], stringArray[1], stringArray[0], stringArray[3]));
    }

    private static Exception a(Exception exception) {
        return exception;
    }

    /*
     * Unable to fully structure code
     */
    static {
        block10: {
            block9: {
                var5 = new String[5];
                var3_1 = 0;
                var2_2 = "lhe\u001d\u000b0>jd`\u001d\u0014b8ybz\u001d\u000bn)ji{[\t`eIbiF\u0012u/CnkW\tt/IfkF\bu3\u000fcnkW\tt/KhkG\nb${>NuoG\nb${'n]\u0015'\nAh||\u0012k&/wi@\u0006j/{bz\u0012@\"9('gTG\"9!\"{\u0012\nr9{'f]\u0013'(j'fG\u000bk";
                var4_3 = "lhe\u001d\u000b0>jd`\u001d\u0014b8ybz\u001d\u000bn)ji{[\t`eIbiF\u0012u/CnkW\tt/IfkF\bu3\u000fcnkW\tt/KhkG\nb${>NuoG\nb${'n]\u0015'\nAh||\u0012k&/wi@\u0006j/{bz\u0012@\"9('gTG\"9!\"{\u0012\nr9{'f]\u0013'(j'fG\u000bk".length();
                var1_4 = 49;
                var0_5 = -1;
lbl7:
                // 2 sources

                while (true) {
                    v0 = 86;
                    v1 = ++var0_5;
                    v2 = var2_2.substring(v1, v1 + var1_4);
                    v3 = -1;
                    break block9;
                    break;
                }
lbl13:
                // 1 sources

                while (true) {
                    var5[var3_1++] = FeatureLicenseFactory.a(v0, FeatureLicenseFactory.a(v2));
                    if ((var0_5 += var1_4) < var4_3) {
                        var1_4 = var2_2.charAt(var0_5);
                        ** continue;
                    }
                    var2_2 = "{xea\u0013n$tsqM\u0014YtqM\u0013n55E_d]t>c|~A\u00193";
                    var4_3 = "{xea\u0013n$tsqM\u0014YtqM\u0013n55E_d]t>c|~A\u00193".length();
                    var1_4 = 11;
                    var0_5 = -1;
lbl22:
                    // 2 sources

                    while (true) {
                        v0 = 76;
                        v4 = ++var0_5;
                        v2 = var2_2.substring(v4, v4 + var1_4);
                        v3 = 0;
                        break block9;
                        break;
                    }
                    break;
                }
lbl28:
                // 1 sources

                while (true) {
                    var5[var3_1++] = FeatureLicenseFactory.a(v0, FeatureLicenseFactory.a(v2));
                    if ((var0_5 += var1_4) < var4_3) {
                        var1_4 = var2_2.charAt(var0_5);
                        ** continue;
                    }
                    break block10;
                    break;
                }
            }
            switch (v3) {
                default: {
                    ** continue;
                }
                ** case 0:
lbl39:
                // 1 sources

                ** continue;
            }
        }
        FeatureLicenseFactory.a = var5;
    }

    private static char[] a(String string) {
        char[] cArray = string.toCharArray();
        if (cArray.length < 2) {
            cArray = cArray;
            cArray[0] = (char)(cArray[0] ^ 0x1C);
        }
        return cArray;
    }

    /*
     * Handled impossible loop by duplicating code
     * Enabled aggressive block sorting
     */
    private static String a(int n2, char[] cArray) {
        char[] cArray2;
        block11: {
            int n3;
            int n4;
            int n5;
            block10: {
                n5 = n2;
                cArray2 = cArray;
                n4 = cArray.length;
                n3 = 0;
                if (!true) break block10;
                n4 = n4;
                if (n4 <= n3) break block11;
            }
            do {
                n5 = n5;
                cArray2 = cArray2;
                int n6 = n3;
                cArray2[n6] = (char)(cArray2[n6] ^ (n5 ^ (switch (n3 % 7) {
                    case 0 -> 89;
                    case 1 -> 81;
                    case 2 -> 94;
                    case 3 -> 100;
                    case 4 -> 49;
                    case 5 -> 81;
                    default -> 28;
                })));
                ++n3;
                n4 = n4;
            } while (n4 > n3);
        }
        return new String(cArray2).intern();
    }
}

