/*
 * Decompiled with CFR 0.152.
 * 
 * Could not load the following classes:
 *  com.l7tech.gateway.common.audit.Audit
 *  com.l7tech.policy.assertion.xmlsec.RequireSaml
 *  com.l7tech.security.saml.SamlConstants
 *  com.l7tech.util.ArrayUtils
 *  com.l7tech.util.Option
 *  com.l7tech.util.TextUtils
 *  x0Assertion.oasisNamesTcSAML2.AudienceRestrictionType
 *  x0Assertion.oasisNamesTcSAML2.ConditionsType
 *  x0Assertion.oasisNamesTcSAML2.NameIDType
 *  x0Assertion.oasisNamesTcSAML2.SubjectConfirmationType
 *  x0Assertion.oasisNamesTcSAML2.SubjectType
 */
package com.l7tech.server.policy.assertion.xmlsec;

import com.l7tech.gateway.common.audit.Audit;
import com.l7tech.policy.assertion.xmlsec.RequireSaml;
import com.l7tech.security.saml.SamlConstants;
import com.l7tech.server.policy.assertion.xmlsec.SamlAssertionValidate;
import com.l7tech.server.policy.assertion.xmlsec.f;
import com.l7tech.server.policy.variable.ExpandVariables;
import com.l7tech.server.util.ContextVariableUtils;
import com.l7tech.util.ArrayUtils;
import com.l7tech.util.Option;
import com.l7tech.util.TextUtils;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;
import x0Assertion.oasisNamesTcSAML2.AudienceRestrictionType;
import x0Assertion.oasisNamesTcSAML2.ConditionsType;
import x0Assertion.oasisNamesTcSAML2.NameIDType;
import x0Assertion.oasisNamesTcSAML2.SubjectConfirmationType;
import x0Assertion.oasisNamesTcSAML2.SubjectType;

class e {
    private static final Logger a;
    private static final String[] b;

    e() {
    }

    static void a(RequireSaml requireSaml, SubjectType subjectType, Calendar calendar, Collection<String> collection, Collection<SamlAssertionValidate.Error> collection2, Map<String, Object> map, Audit audit) {
        Object object;
        String string;
        String[] stringArray;
        if (subjectType == null) {
            String[] stringArray2 = b;
            collection2.add(new SamlAssertionValidate.Error(stringArray2[4], null, new Object[0]));
            return;
        }
        String string2 = requireSaml.getNameQualifier();
        String string3 = string2 == null ? string2 : ExpandVariables.process(string2, map, audit);
        NameIDType nameIDType = subjectType.getNameID();
        if (string3 != null && !"".equals(string3) && nameIDType != null) {
            String string4 = nameIDType.getNameQualifier();
            if (!string3.equals(string4)) {
                String[] stringArray3 = b;
                SamlAssertionValidate.Error error = new SamlAssertionValidate.Error(stringArray3[19], null, string4, string3);
                collection2.add(error);
                a.finer(error.toString());
                return;
            }
            stringArray = b;
            a.fine(stringArray[1] + string3);
        }
        boolean bl2 = false;
        String[] stringArray4 = requireSaml.getNameFormats();
        String string4 = string = nameIDType != null && nameIDType.getFormat() != null ? nameIDType.getFormat() : SamlConstants.NAMEIDENTIFIER_UNSPECIFIED;
        if (nameIDType != null && stringArray4 != null) {
            for (String object22 : stringArray4) {
                if (object22.equals(string)) {
                    bl2 = true;
                    stringArray = b;
                    a.fine(stringArray[28] + object22);
                    break;
                }
                if (!object22.equals(SamlConstants.NAMEIDENTIFIER_UNSPECIFIED)) continue;
                bl2 = true;
                stringArray = b;
                a.fine(stringArray[23] + object22);
                break;
            }
        }
        if (!bl2) {
            stringArray = b;
            object = new SamlAssertionValidate.Error(stringArray[11], null, string, Arrays.asList(stringArray4));
            collection2.add((SamlAssertionValidate.Error)object);
            a.finer(((SamlAssertionValidate.Error)object).toString());
            return;
        }
        object = (String[])ArrayUtils.copy((Object[])requireSaml.getSubjectConfirmations());
        for (int i2 = 0; i2 < ((String[])object).length; ++i2) {
            String string6 = object[i2];
            String string5 = (String)SamlConstants.CONF_MAP_SAML_1TO2.get(string6);
            if (string5 == null) continue;
            object[i2] = string5;
        }
        ArrayList<SamlAssertionValidate.Error> arrayList = new ArrayList<SamlAssertionValidate.Error>();
        SubjectConfirmationType[] subjectConfirmationTypeArray = subjectType.getSubjectConfirmationArray();
        ArrayList<String> arrayList2 = new ArrayList<String>();
        boolean bl3 = false;
        if (subjectConfirmationTypeArray != null) {
            for (SubjectConfirmationType subjectConfirmationType : subjectConfirmationTypeArray) {
                Object object2 = subjectConfirmationType.getSubjectConfirmationData();
                boolean bl4 = true;
                if (object2 != null) {
                    Object object3;
                    Object object4;
                    if (requireSaml.isSubjectConfirmationDataCheckValidity()) {
                        Calendar calendar2;
                        object4 = object2.getNotBefore();
                        if (object4 != null && calendar.before(e.b((Calendar)object4))) {
                            stringArray = b;
                            e.a(arrayList, stringArray[8], calendar.getTime().toString(), ((Calendar)object4).getTime().toString());
                            bl4 = false;
                        }
                        if ((object3 = object2.getNotOnOrAfter()) != null && (calendar.equals(calendar2 = e.a((Calendar)object3)) || calendar.after(calendar2))) {
                            stringArray = b;
                            e.a(arrayList, stringArray[27], calendar.getTime().toString(), ((Calendar)object3).getTime().toString());
                            bl4 = false;
                        }
                        if (object4 != null && object3 != null && !((Calendar)object4).before(object3)) {
                            stringArray = b;
                            a.finer(stringArray[30] + ((Calendar)object3).getTime().toString() + stringArray[26] + ((Calendar)object4).getTime().toString());
                            collection2.add(new SamlAssertionValidate.Error(stringArray[35], null, ((Calendar)object3).getTime().toString(), ((Calendar)object4).getTime().toString()));
                            bl4 = false;
                        }
                    }
                    if (requireSaml.isSubjectConfirmationDataCheckAddress() && object2.getAddress() != null && (collection == null || !collection.contains(object2.getAddress()))) {
                        stringArray = b;
                        e.a(arrayList, stringArray[10], object2.getAddress());
                        bl4 = false;
                    }
                    Object object5 = object3 = (object4 = requireSaml.getSubjectConfirmationDataRecipient()) == null ? object4 : ExpandVariables.process((String)object4, map, audit);
                    if (object3 != null && object2.getRecipient() != null && !((String)object3).equals(object2.getRecipient())) {
                        stringArray = b;
                        e.a(arrayList, stringArray[13], object2.getRecipient(), object3);
                        bl4 = false;
                    }
                }
                if (bl4) {
                    arrayList2.add(subjectConfirmationType.getMethod());
                    continue;
                }
                bl3 = true;
            }
        }
        if (arrayList2.isEmpty() && requireSaml.isNoSubjectConfirmation()) {
            stringArray = b;
            a.fine(stringArray[31]);
            return;
        }
        boolean bl5 = false;
        for (Object object2 : object) {
            if (!arrayList2.contains(object2)) continue;
            bl5 = true;
            stringArray = b;
            a.fine(stringArray[34] + (String)object2);
            break;
        }
        if (!bl5) {
            String string6;
            collection2.addAll(arrayList);
            ArrayList arrayList3 = new ArrayList(Arrays.asList(object));
            if (requireSaml.isNoSubjectConfirmation()) {
                stringArray = b;
                arrayList3.add(stringArray[12]);
            }
            if (bl3) {
                stringArray = b;
                string6 = stringArray[32];
            } else {
                string6 = "";
            }
            stringArray = b;
            SamlAssertionValidate.Error error = new SamlAssertionValidate.Error(stringArray[15] + string6 + stringArray[21], null, arrayList2, arrayList3);
            collection2.add(error);
            a.finer(error.toString());
        }
    }

    private static void a(Collection<SamlAssertionValidate.Error> collection, String string, Object ... objectArray) {
        SamlAssertionValidate.Error error = new SamlAssertionValidate.Error(string, null, objectArray);
        if (a.isLoggable(Level.FINE)) {
            a.fine(error.toString());
        }
        collection.add(error);
    }

    static void a(RequireSaml requireSaml, ConditionsType conditionsType, Calendar calendar, Collection<SamlAssertionValidate.Error> collection, Map<String, Object> map, Audit audit) {
        String[] stringArray;
        if (!requireSaml.isCheckAssertionValidity()) {
            stringArray = b;
            a.finer(stringArray[18]);
        } else if (conditionsType == null) {
            stringArray = b;
            a.finer(stringArray[0]);
            collection.add(new SamlAssertionValidate.Error(stringArray[24], null, new Object[0]));
        } else {
            Calendar calendar2 = conditionsType.getNotBefore();
            Calendar calendar3 = conditionsType.getNotOnOrAfter();
            if (calendar2 == null || calendar3 == null) {
                stringArray = b;
                a.finer(stringArray[5]);
                collection.add(new SamlAssertionValidate.Error(stringArray[25], null, new Object[0]));
            } else {
                calendar2 = SamlAssertionValidate.b(calendar2);
                calendar3 = SamlAssertionValidate.a(calendar3);
                if (calendar.before(calendar2)) {
                    stringArray = b;
                    a.finer(stringArray[6] + calendar.getTime().toString() + stringArray[3] + calendar2.getTime().toString());
                    collection.add(new SamlAssertionValidate.Error(stringArray[20], null, calendar2.getTime().toString()));
                }
                if (calendar.equals(calendar3) || calendar.after(calendar3)) {
                    stringArray = b;
                    a.finer(stringArray[37] + calendar.getTime().toString() + stringArray[22] + calendar3.getTime().toString());
                    collection.add(new SamlAssertionValidate.Error(stringArray[14], null, calendar3.getTime().toString()));
                }
            }
        }
        e.a(requireSaml, conditionsType, collection, map, audit);
        if (conditionsType != null) {
            if (conditionsType.getOneTimeUseArray() != null && conditionsType.getOneTimeUseArray().length > 1) {
                stringArray = b;
                a.finer(stringArray[7]);
                collection.add(new SamlAssertionValidate.Error(stringArray[38], null, new Object[0]));
            }
            if (conditionsType.getProxyRestrictionArray() != null && conditionsType.getProxyRestrictionArray().length > 1) {
                stringArray = b;
                a.finer(stringArray[29]);
                collection.add(new SamlAssertionValidate.Error(stringArray[2], null, new Object[0]));
            }
        }
    }

    private static void a(RequireSaml requireSaml, ConditionsType conditionsType, Collection<SamlAssertionValidate.Error> collection, Map<String, Object> map, Audit audit) {
        List<String> list;
        String string = requireSaml.getAudienceRestriction();
        Option option = Option.optional((Object)requireSaml.getAudienceRestriction());
        List<String> list2 = list = !option.isSome() ? Collections.emptyList() : ContextVariableUtils.getAllResolvedStrings(string, map, audit, TextUtils.URI_STRING_SPLIT_PATTERN, new f());
        if (list.isEmpty()) {
            String[] stringArray = b;
            a.finer(stringArray[16]);
            return;
        }
        if (conditionsType == null) {
            String[] stringArray = b;
            SamlAssertionValidate.Error error = new SamlAssertionValidate.Error(stringArray[33], null, new Object[0]);
            collection.add(error);
            a.finer(error.toString());
            return;
        }
        AudienceRestrictionType[] audienceRestrictionTypeArray = conditionsType.getAudienceRestrictionArray();
        if (audienceRestrictionTypeArray.length <= 0) {
            String[] stringArray = b;
            SamlAssertionValidate.Error error = new SamlAssertionValidate.Error(stringArray[36], null, list);
            a.finer(error.toString());
            collection.add(error);
            return;
        }
        boolean bl2 = false;
        StringBuilder stringBuilder = new StringBuilder();
        for (AudienceRestrictionType audienceRestrictionType : audienceRestrictionTypeArray) {
            Object[] objectArray;
            if (a.isLoggable(Level.FINE)) {
                String[] stringArray = b;
                a.fine(stringArray[9] + String.valueOf(list));
            }
            if (ArrayUtils.containsAny((Object[])(objectArray = audienceRestrictionType.getAudienceArray()), (Object[])list.toArray(new String[list.size()]))) {
                bl2 = true;
                break;
            }
            stringBuilder.append(Arrays.asList(objectArray));
        }
        if (!bl2) {
            SamlAssertionValidate.Error error = new SamlAssertionValidate.Error(b[17], null, stringBuilder, list);
            a.finer(error.toString());
            collection.add(error);
        }
    }

    static Calendar a(Calendar calendar) {
        return SamlAssertionValidate.a(calendar);
    }

    static Calendar b(Calendar calendar) {
        return SamlAssertionValidate.b(calendar);
    }

    /*
     * Unable to fully structure code
     */
    static {
        block10: {
            block9: {
                var5 = new String[39];
                var3_1 = 0;
                var2_2 = "\u0017+2w3{c5&54&/pt)3>#2a=%2#k{{;j\u001f?)?| #3>4{}5<9p%>p:j,\"\"(p:>94\u0017\u0019+(3/>qt\u0004==\"{D!+09!2p&j7\u0019?0$.+y1j\f\"(#l\u0006//$52v #3>g8z:.5$.4{'j=\"\"{{;>| \")x=>(5#u\ft\u00043$g\u0019p2%.5}\u0010\u0007?>:\"8at\u00189!22g1.M\u001a%|\u0006&7|0#()g\u000bp&#34g8z:.5$.4{'j411>56/9>g+g199>3>qxj?1)5z j*1+2q5>9p\u00044{0#(9(5f*\u0017%24./|;$|w\t4at\b96()psj?8\"8~t,=9+>qxj2?0{/1\u0019?0$.+y1j\u0013>\"\u000f|9/\t#\"{v;$8932z:9|15>5:%(p7>g9#($\"?;<\u0017%24./|;$|w\t4at\b96()psj?8\"8~t,=9+>qxj2?0{//z!p\t4at\b96()pn1m-8\u0002+09#:a=$;p&.q=/23\"{g19(\".8a=%2#g:r5#2#3{g193<1>qt&5#3a5L\u0007>=$\"6p:>|3(5q=>5?){|'j5>1:y=.pp`\u001aq089#4|5/z!p#4p'j2?3{x5>?8g8y=/2$g:q089#4u5\u001a+15g\u001dz&'=$g?z19|>(/59+(3/{e&//5)/p0e.56.|&/8p<kh{1m-\u0004\u001a%25R\u0007>=$\"6p:>|3(5q=>5?){|'j5>1:y=.pp`\tp7#,9\"5asj'`:{q;//p)4at'=$$35&/-%.)p0j*1+.pt1m-i\"\u0007\u000b\u0011\u001cg/|7!9$g3t'j9(72g1.|14{z2p|+w&\u001f\u0007?>:\"8at\t3>!2g9+(9(5ft'5#*:a7\"|!\u001a%|12?|1$?5g)p'>.9$/|;$|\"\"*`19(5#B\u0015?89\"5v1j\u000e54/g=)(9(55\u0017\"93,{S5#05#{g1)991>qt1l-g>m$/?$\"?5;$9p(=5/{!\u001f\u001a%|\u00114(p&>5?){C5&54./lt89!2>f /89\u001a+15g\n`5&56.>g'j8?\"(5:%(p*:a7\"| 5>f1$(5#tg1;)95>qt1l-h $),\u0007\u000b\u0011\u001cg/|7!9$g?z19|>(/56/??*>5\"+09#{`:>5<}{nd7\u001a$89#\"5a1.s1$8p$>94g %)e'a:\ft\u00043$g\u0019p2%.5}\u0014\u0019+(3/>qt\u0004==\"{S;8113{<\u0017+2w3{c5&54&/pt)3>#2a=%2#k{{;j\u001f?)?| #3>4{}5<9p%>p:j,\"\"(p:>94M\u001a%|\u0006&7|0#()g\u000bp&#34g8z:.5$.4{'j411>56/9>g+g199>3>qxj?1)5z j*1+2q5>9p\u00044{0#(9(5f!t\u0007\t\u0003\u0013{w1j013>gt>41){2\u001a%(p\u0005>s;89wgG\u0017%24./|;$|w\t4at\u00052p\b)5\u0015,(55|57\"93,{s5#05#w5:%+jg %)j\u0012?3{Z:j\u0013\"g\u001as /.jg $)\u0014\u0019+(3/>qt\u0004==\"{S;8113{7\u0019?0$.+y1j\f\"(#l\u0006//$52v #3>g8z:.5$.4{'j=\"\"{{;>| \")x=>(5#u2\u0007>=$\"6p:>|3(5q=>5?){|'j5>1:y=.pp`\u0015z j\u0013>g\u0014gt\u000b:$\")2t#\u0019+(3/>qt\u0019)2->v j\u001f?)=|&'=$.4{tm\u0012?)>2#|93=\"{v;$:956t #3>4{b189p5>\u007f1)(5#r58\u0017+2w3{c5&54&/pt)3>#2a=%2#k{{;j\u001f?)?| #3>4{}5<9p%>p:j:?25q\u001d\u0019+(3/>qt\u0019)2->v j\u001f?)=|&'=$.4{tZ\u0007>=$\"6p:>|3(5q=>5?){|'j5>1:y=.pp`\u0015z j\u0013>g\u0014gt\u000b:$\")2t\u0007\t\u0003\u0013{w1j013>gt>41){2\u001a%(p\u0005>s;89w}{nd7s+v&]\u0015?89\"5v1j\u000e54/g=)(9(55\u0017\"93,{S5#05#{=59/55/|;$|4(>ft$3$g(e1)56>{t!.55)8pt89#3)|7>5?){v;$8932z:c";
                var4_3 = "\u0017+2w3{c5&54&/pt)3>#2a=%2#k{{;j\u001f?)?| #3>4{}5<9p%>p:j,\"\"(p:>94\u0017\u0019+(3/>qt\u0004==\"{D!+09!2p&j7\u0019?0$.+y1j\f\"(#l\u0006//$52v #3>g8z:.5$.4{'j=\"\"{{;>| \")x=>(5#u\ft\u00043$g\u0019p2%.5}\u0010\u0007?>:\"8at\u00189!22g1.M\u001a%|\u0006&7|0#()g\u000bp&#34g8z:.5$.4{'j411>56/9>g+g199>3>qxj?1)5z j*1+2q5>9p\u00044{0#(9(5f*\u0017%24./|;$|w\t4at\b96()psj?8\"8~t,=9+>qxj2?0{/1\u0019?0$.+y1j\u0013>\"\u000f|9/\t#\"{v;$8932z:9|15>5:%(p7>g9#($\"?;<\u0017%24./|;$|w\t4at\b96()psj?8\"8~t,=9+>qxj2?0{//z!p\t4at\b96()pn1m-8\u0002+09#:a=$;p&.q=/23\"{g19(\".8a=%2#g:r5#2#3{g193<1>qt&5#3a5L\u0007>=$\"6p:>|3(5q=>5?){|'j5>1:y=.pp`\u001aq089#4|5/z!p#4p'j2?3{x5>?8g8y=/2$g:q089#4u5\u001a+15g\u001dz&'=$g?z19|>(/59+(3/{e&//5)/p0e.56.|&/8p<kh{1m-\u0004\u001a%25R\u0007>=$\"6p:>|3(5q=>5?){|'j5>1:y=.pp`\tp7#,9\"5asj'`:{q;//p)4at'=$$35&/-%.)p0j*1+.pt1m-i\"\u0007\u000b\u0011\u001cg/|7!9$g3t'j9(72g1.|14{z2p|+w&\u001f\u0007?>:\"8at\t3>!2g9+(9(5ft'5#*:a7\"|!\u001a%|12?|1$?5g)p'>.9$/|;$|\"\"*`19(5#B\u0015?89\"5v1j\u000e54/g=)(9(55\u0017\"93,{S5#05#{g1)991>qt1l-g>m$/?$\"?5;$9p(=5/{!\u001f\u001a%|\u00114(p&>5?){C5&54./lt89!2>f /89\u001a+15g\n`5&56.>g'j8?\"(5:%(p*:a7\"| 5>f1$(5#tg1;)95>qt1l-h $),\u0007\u000b\u0011\u001cg/|7!9$g?z19|>(/56/??*>5\"+09#{`:>5<}{nd7\u001a$89#\"5a1.s1$8p$>94g %)e'a:\ft\u00043$g\u0019p2%.5}\u0014\u0019+(3/>qt\u0004==\"{S;8113{<\u0017+2w3{c5&54&/pt)3>#2a=%2#k{{;j\u001f?)?| #3>4{}5<9p%>p:j,\"\"(p:>94M\u001a%|\u0006&7|0#()g\u000bp&#34g8z:.5$.4{'j411>56/9>g+g199>3>qxj?1)5z j*1+2q5>9p\u00044{0#(9(5f!t\u0007\t\u0003\u0013{w1j013>gt>41){2\u001a%(p\u0005>s;89wgG\u0017%24./|;$|w\t4at\u00052p\b)5\u0015,(55|57\"93,{s5#05#w5:%+jg %)j\u0012?3{Z:j\u0013\"g\u001as /.jg $)\u0014\u0019+(3/>qt\u0004==\"{S;8113{7\u0019?0$.+y1j\f\"(#l\u0006//$52v #3>g8z:.5$.4{'j=\"\"{{;>| \")x=>(5#u2\u0007>=$\"6p:>|3(5q=>5?){|'j5>1:y=.pp`\u0015z j\u0013>g\u0014gt\u000b:$\")2t#\u0019+(3/>qt\u0019)2->v j\u001f?)=|&'=$.4{tm\u0012?)>2#|93=\"{v;$:956t #3>4{b189p5>\u007f1)(5#r58\u0017+2w3{c5&54&/pt)3>#2a=%2#k{{;j\u001f?)?| #3>4{}5<9p%>p:j:?25q\u001d\u0019+(3/>qt\u0019)2->v j\u001f?)=|&'=$.4{tZ\u0007>=$\"6p:>|3(5q=>5?){|'j5>1:y=.pp`\u0015z j\u0013>g\u0014gt\u000b:$\")2t\u0007\t\u0003\u0013{w1j013>gt>41){2\u001a%(p\u0005>s;89w}{nd7s+v&]\u0015?89\"5v1j\u000e54/g=)(9(55\u0017\"93,{S5#05#{=59/55/|;$|4(>ft$3$g(e1)56>{t!.55)8pt89#3)|7>5?){v;$8932z:c".length();
                var1_4 = 60;
                var0_5 = -1;
lbl7:
                // 2 sources

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

                while (true) {
                    var5[var3_1++] = e.a(v0, e.a(v2));
                    if ((var0_5 += var1_4) < var4_3) {
                        var1_4 = var2_2.charAt(var0_5);
                        ** continue;
                    }
                    var2_2 = "}OX^DE\u0016QN\u0016\u001dc^\u000b\u001eoX\u001abC_\u007fFB__\u0016_]HSYF\u0011\u0019_IZ_I\u001d_POA\u001a\u00171sUZNDA\u0013[\u0000yTHe\u0016SEcIH\u0011\u001cQNRSYX\u0010PS\u0016[_T_POB\u001a]T\rSIBNHUQ";
                    var4_3 = "}OX^DE\u0016QN\u0016\u001dc^\u000b\u001eoX\u001abC_\u007fFB__\u0016_]HSYF\u0011\u0019_IZ_I\u001d_POA\u001a\u00171sUZNDA\u0013[\u0000yTHe\u0016SEcIH\u0011\u001cQNRSYX\u0010PS\u0016[_T_POB\u001a]T\rSIBNHUQ".length();
                    var1_4 = 47;
                    var0_5 = -1;
lbl22:
                    // 2 sources

                    while (true) {
                        v0 = 86;
                        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++] = e.a(v0, e.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;
            }
        }
        e.b = var5;
        e.a = Logger.getLogger(e.class.getName());
    }

    private static char[] a(String string) {
        char[] cArray = string.toCharArray();
        if (cArray.length < 2) {
            cArray = cArray;
            cArray[0] = (char)(cArray[0] ^ 0x29);
        }
        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 -> 104;
                    case 1 -> 118;
                    case 2 -> 96;
                    case 3 -> 108;
                    case 4 -> 123;
                    case 5 -> 103;
                    default -> 41;
                })));
                ++n3;
                n4 = n4;
            } while (n4 > n3);
        }
        return new String(cArray2).intern();
    }
}

