/*
 * Decompiled with CFR 0.152.
 * 
 * Could not load the following classes:
 *  com.l7tech.common.io.XmlUtil
 *  com.l7tech.common.mime.ContentTypeHeader
 *  com.l7tech.common.mime.StashManager
 *  com.l7tech.gateway.common.audit.AssertionMessages
 *  com.l7tech.gateway.common.audit.AuditDetailMessage
 *  com.l7tech.message.Header
 *  com.l7tech.message.HeadersKnob
 *  com.l7tech.message.JmsKnob
 *  com.l7tech.message.Message
 *  com.l7tech.message.MessageRole
 *  com.l7tech.policy.assertion.AssertionStatus
 *  com.l7tech.policy.assertion.JmsRoutingAssertion
 *  com.l7tech.policy.assertion.MessageTargetable
 *  com.l7tech.policy.assertion.RoutingStatus
 *  com.l7tech.policy.variable.NoSuchVariableException
 *  com.l7tech.util.ExceptionUtils
 *  com.l7tech.util.Pair
 *  com.l7tech.util.ValidationUtils
 *  javax.jms.BytesMessage
 *  javax.jms.Destination
 *  javax.jms.JMSException
 *  javax.jms.MessageFormatException
 *  javax.jms.TextMessage
 */
package com.l7tech.server.policy.assertion;

import com.l7tech.common.io.XmlUtil;
import com.l7tech.common.mime.ContentTypeHeader;
import com.l7tech.common.mime.StashManager;
import com.l7tech.gateway.common.audit.AssertionMessages;
import com.l7tech.gateway.common.audit.AuditDetailMessage;
import com.l7tech.message.Header;
import com.l7tech.message.HeadersKnob;
import com.l7tech.message.JmsKnob;
import com.l7tech.message.Message;
import com.l7tech.message.MessageRole;
import com.l7tech.policy.assertion.AssertionStatus;
import com.l7tech.policy.assertion.JmsRoutingAssertion;
import com.l7tech.policy.assertion.MessageTargetable;
import com.l7tech.policy.assertion.RoutingStatus;
import com.l7tech.policy.variable.NoSuchVariableException;
import com.l7tech.server.message.PolicyEnforcementContext;
import com.l7tech.server.policy.assertion.AssertionStatusException;
import com.l7tech.server.policy.assertion.ServerJmsRoutingAssertion;
import com.l7tech.server.policy.assertion.ac;
import com.l7tech.server.policy.variable.ExpandVariables;
import com.l7tech.server.transport.jms.BytesMessageInputStream;
import com.l7tech.server.transport.jms.JmsBag;
import com.l7tech.server.transport.jms.JmsMessageExpiredException;
import com.l7tech.server.transport.jms.JmsUtil;
import com.l7tech.server.transport.jms2.JmsEndpointConfig;
import com.l7tech.server.transport.jms2.JmsResourceManager;
import com.l7tech.util.ExceptionUtils;
import com.l7tech.util.Pair;
import com.l7tech.util.ValidationUtils;
import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.Map;
import java.util.logging.Level;
import javax.jms.BytesMessage;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.MessageFormatException;
import javax.jms.TextMessage;
import javax.naming.NamingException;
import org.xml.sax.SAXException;

final class ab
implements JmsResourceManager.JmsResourceCallback {
    private final JmsEndpointConfig a;
    private final PolicyEnforcementContext b;
    private final Message c;
    private final Destination[] d;
    private Exception e;
    private boolean f;
    final ServerJmsRoutingAssertion this$0;
    private static final String[] g;

    ab(ServerJmsRoutingAssertion serverJmsRoutingAssertion, PolicyEnforcementContext policyEnforcementContext, JmsEndpointConfig jmsEndpointConfig, Destination[] destinationArray) {
        this.this$0 = serverJmsRoutingAssertion;
        this.f = false;
        this.b = policyEnforcementContext;
        this.a = jmsEndpointConfig;
        this.d = destinationArray;
        try {
            this.c = policyEnforcementContext.getTargetMessage((MessageTargetable)((JmsRoutingAssertion)serverJmsRoutingAssertion.assertion).getRequestTarget());
        }
        catch (NoSuchVariableException noSuchVariableException) {
            serverJmsRoutingAssertion.logAndAudit((AuditDetailMessage)AssertionMessages.MESSAGE_TARGET_ERROR, noSuchVariableException.getVariable(), ExceptionUtils.getMessage((Throwable)noSuchVariableException));
            throw new AssertionStatusException(AssertionStatus.SERVER_ERROR, noSuchVariableException.getMessage(), noSuchVariableException);
        }
    }

    Exception a() {
        return this.e;
    }

    private boolean b() {
        return this.f;
    }

    private void c() throws IOException, SAXException, NamingException, JMSException {
        block13: {
            block14: {
                try {
                    try {
                        if (this.e == null) break block13;
                        if (!(this.e instanceof JMSException)) break block14;
                    }
                    catch (IOException iOException) {
                        throw ab.a(iOException);
                    }
                    throw (JMSException)this.e;
                }
                catch (IOException iOException) {
                    throw ab.a(iOException);
                }
            }
            try {
                if (this.e instanceof SAXException) {
                    throw (SAXException)this.e;
                }
            }
            catch (IOException iOException) {
                throw ab.a(iOException);
            }
            try {
                if (this.e instanceof IOException) {
                    throw (IOException)this.e;
                }
            }
            catch (IOException iOException) {
                throw ab.a(iOException);
            }
            try {
                if (this.e instanceof NamingException) {
                    throw (NamingException)this.e;
                }
            }
            catch (IOException iOException) {
                throw ab.a(iOException);
            }
            throw ExceptionUtils.wrap((Throwable)this.e);
        }
    }

    /*
     * WARNING - Removed try catching itself - possible behaviour change.
     * Could not resolve type clashes
     * Unable to fully structure code
     */
    @Override
    public void doWork(JmsBag var1_1, JmsResourceManager.JndiContextProvider var2_2) {
        block121: {
            block116: {
                block120: {
                    block119: {
                        block118: {
                            block117: {
                                block115: {
                                    block114: {
                                        block113: {
                                            block112: {
                                                var3_3 = false;
                                                var4_4 = false;
                                                var5_5 = this.this$0.a(this.b, var1_1.getSession(), var2_2, this.a);
                                                try {
                                                    if (this.d[0] == null) {
                                                        this.d[0] = var5_5.getJMSReplyTo();
                                                    }
                                                }
                                                catch (MessageFormatException v0) {
                                                    throw ab.a((Exception)v0);
                                                }
                                                var6_7 = this.d[0];
                                                var7_8 = (HeadersKnob)this.c.getKnob(HeadersKnob.class);
                                                var8_9 = new HashMap<String, Object>();
                                                var9_10 = new HashMap<String, Object>();
                                                if (var7_8 != null) {
                                                    var36_11 = ab.g;
                                                    var10_12 = var7_8.getHeaders(var36_11[13]);
                                                    var11_13 = new HashMap<K, V>();
                                                    var12_15 = var10_12.iterator();
                                                    while (var12_15.hasNext()) {
                                                        var13_16 /* !! */  = (Header)var12_15.next();
                                                        var11_13.put((String)var13_16 /* !! */ .getKey(), var13_16 /* !! */ .getValue());
                                                    }
                                                    for (Header var13_16 : var11_13.keySet()) {
                                                        var8_9.put((String)var13_16 /* !! */ , var11_13.get(var13_16 /* !! */ ));
                                                    }
                                                    var36_11 = ab.g;
                                                    var12_15 = var7_8.getHeaders(var36_11[4]);
                                                    var13_16 /* !! */  = var12_15.iterator();
                                                    while (var13_16 /* !! */ .hasNext()) {
                                                        var14_20 = (Header)var13_16 /* !! */ .next();
                                                        var9_10.put((String)var14_20.getKey(), var14_20.getValue());
                                                    }
                                                }
                                                var10_12 = new HashMap<K, V>();
                                                this.this$0.a(this.b, ((JmsRoutingAssertion)this.this$0.assertion).getRequestJmsMessagePropertyRuleSet(), var8_9, (Map<String, Object>)var10_12);
                                                for (Object var12_15 : var10_12.keySet()) {
                                                    try {
                                                        var5_5.setObjectProperty((String)var12_15, var10_12.get(var12_15));
                                                    }
                                                    catch (MessageFormatException var13_17) {
                                                        block110: {
                                                            if (var13_17.getErrorCode() == null) break block110;
                                                            try {
                                                                block124: {
                                                                    if (!var13_17.getErrorCode().startsWith(ab.g[16])) break block110;
                                                                    break block124;
                                                                    catch (MessageFormatException v1) {
                                                                        throw ab.a((Exception)v1);
                                                                    }
                                                                }
                                                                this.this$0.logAndAudit((AuditDetailMessage)AssertionMessages.JMS_ROUTING_NON_SETTABLE_JMS_PROPERTY, new String[]{var12_15, var10_12.get(var12_15).toString(), ExceptionUtils.getMessage((Throwable)var13_17)}, ExceptionUtils.getDebugException((Throwable)var13_17));
                                                                continue;
                                                            }
                                                            catch (MessageFormatException v2) {
                                                                throw ab.a((Exception)v2);
                                                            }
                                                        }
                                                        this.this$0.logAndAudit((AuditDetailMessage)AssertionMessages.JMS_ROUTING_MESSAGE_FORMAT_ERROR, new String[]{var13_17.getMessage()}, ExceptionUtils.getDebugException((Throwable)var13_17));
                                                    }
                                                    catch (NumberFormatException var13_18) {
                                                        try {
                                                            v3 = this.this$0;
                                                            v4 = AssertionMessages.JMS_ROUTING_NOT_SETTABLE_JMS_PROPERTY;
                                                            v5 = new String[3];
                                                            v5[0] = var12_15;
                                                            v6 = v5;
                                                            v7 = v5;
                                                            v8 = 1;
                                                            v9 = var10_12.get(var12_15) == null ? ab.g[1] : var10_12.get(var12_15).toString();
                                                        }
                                                        catch (MessageFormatException v10) {
                                                            throw ab.a((Exception)v10);
                                                        }
                                                        v6[v8] = v9;
                                                        v7[2] = ExceptionUtils.getMessage((Throwable)var13_18);
                                                        v3.logAndAudit((AuditDetailMessage)v4, v7, ExceptionUtils.getDebugException((Throwable)var13_18));
                                                    }
                                                }
                                                for (Object var12_15 : var9_10.entrySet()) {
                                                    try {
                                                        block125: {
                                                            block127: {
                                                                block111: {
                                                                    if (!JmsUtil.isJmsHeader((String)var12_15.getKey())) break block125;
                                                                    var13_16 /* !! */  = null;
                                                                    if (((String)var12_15.getKey()).equals(ab.g[10])) ** GOTO lbl86
                                                                    try {
                                                                        block126: {
                                                                            if (!((String)var12_15.getKey()).equals(ab.g[21])) break block111;
                                                                            break block126;
                                                                            catch (MessageFormatException v11) {
                                                                                throw ab.a((Exception)v11);
                                                                            }
                                                                        }
                                                                        if (!(var12_15.getValue() instanceof String)) break block111;
                                                                    }
                                                                    catch (MessageFormatException v12) {
                                                                        throw ab.a((Exception)v12);
                                                                    }
                                                                    var13_16 /* !! */  = JmsUtil.cast(var2_2.lookup((String)var12_15.getValue()), Destination.class);
                                                                    break block127;
                                                                }
                                                                var13_16 /* !! */  = var12_15.getValue();
                                                            }
                                                            try {
                                                                if (JmsUtil.setJmsHeader(var5_5, (Pair<String, Object>)new Pair((Object)((String)var12_15.getKey()), (Object)var13_16 /* !! */ ))) continue;
                                                                this.this$0.logAndAudit((AuditDetailMessage)AssertionMessages.JMS_ROUTING_NOT_SETTABLE_JMS_HEADER, new String[]{(String)var12_15.getKey()});
                                                                continue;
                                                            }
                                                            catch (MessageFormatException v13) {
                                                                throw ab.a((Exception)v13);
                                                            }
                                                        }
                                                        this.this$0.logAndAudit((AuditDetailMessage)AssertionMessages.JMS_ROUTING_NOT_SUPPORTED_JMS_HEADER, new String[]{(String)var12_15.getKey(), (String)var12_15.getValue()});
                                                    }
                                                    catch (JMSException var13_19) {
                                                        try {
                                                            if (JmsUtil.getCause(var13_19) instanceof ClassCastException) {
                                                                this.this$0.logAndAudit((AuditDetailMessage)AssertionMessages.JMS_ROUTING_INCOMPATIBLE_JMS_HEADER_TYPE, new String[]{(String)var12_15.getKey()}, ExceptionUtils.getDebugException((Throwable)var13_19));
                                                            }
                                                        }
                                                        catch (MessageFormatException v14) {
                                                            throw ab.a((Exception)v14);
                                                        }
                                                        this.f = true;
                                                        throw var13_19;
                                                    }
                                                }
                                                if (!this.b.isReplyExpected()) break block112;
                                                try {
                                                    block128: {
                                                        if (var6_7 == null) break block112;
                                                        break block128;
                                                        catch (MessageFormatException v15) {
                                                            throw ab.a((Exception)v15);
                                                        }
                                                    }
                                                    v16 = true;
                                                    break block113;
                                                }
                                                catch (MessageFormatException v17) {
                                                    throw ab.a((Exception)v17);
                                                }
                                            }
                                            v16 = false;
                                        }
                                        var11_14 = v16;
                                        this.this$0.logAndAudit((AuditDetailMessage)AssertionMessages.JMS_ROUTING_REQUEST_ROUTED);
                                        var12_15 = this.b.getVariableMap(((JmsRoutingAssertion)this.this$0.assertion).getVariablesUsed(), this.this$0.getAudit());
                                        var13_16 /* !! */  = var1_1.getMessageProducer();
                                        try {
                                            v18 = ((JmsRoutingAssertion)this.this$0.assertion).getRequestDeliveryMode() != null ? ((JmsRoutingAssertion)this.this$0.assertion).getRequestDeliveryMode().getValue() : var5_5.getJMSDeliveryMode();
                                        }
                                        catch (MessageFormatException v19) {
                                            throw ab.a((Exception)v19);
                                        }
                                        var14_21 = v18;
                                        try {
                                            v20 = ((JmsRoutingAssertion)this.this$0.assertion).getRequestPriority() != null ? this.a(((JmsRoutingAssertion)this.this$0.assertion).getRequestPriority(), ab.g[0], 0, 9, (Map<String, Object>)var12_15).intValue() : var5_5.getJMSPriority();
                                        }
                                        catch (MessageFormatException v21) {
                                            throw ab.a((Exception)v21);
                                        }
                                        var15_22 = v20;
                                        try {
                                            if (((JmsRoutingAssertion)this.this$0.assertion).getRequestTimeToLive() == null) break block114;
                                            v22 = this.a(((JmsRoutingAssertion)this.this$0.assertion).getRequestTimeToLive(), ab.g[12], 0L, 0x7FFFFFFFFFFFFFFFL, (Map<String, Object>)var12_15);
                                            break block115;
                                        }
                                        catch (MessageFormatException v23) {
                                            throw ab.a((Exception)v23);
                                        }
                                    }
                                    try {
                                        v22 = var5_5.getJMSExpiration() > 0L ? var5_5.getJMSExpiration() - System.currentTimeMillis() : 0L;
                                    }
                                    catch (MessageFormatException v24) {
                                        throw ab.a((Exception)v24);
                                    }
                                }
                                var16_23 = v22;
                                try {
                                    if (var16_23 < 0L) {
                                        this.this$0.logAndAudit((AuditDetailMessage)AssertionMessages.JMS_ROUTING_ERROR_SENDING_MESSAGE, new String[]{var13_16 /* !! */ .getDestination().toString(), ab.g[2]});
                                        this.f = true;
                                        throw new JmsMessageExpiredException();
                                    }
                                }
                                catch (MessageFormatException v25) {
                                    throw ab.a((Exception)v25);
                                }
                                this.b.routingStarted();
                                var3_3 = true;
                                try {
                                    if (ServerJmsRoutingAssertion.e.isLoggable(Level.FINE)) {
                                        ServerJmsRoutingAssertion.e.fine(ab.g[15]);
                                    }
                                }
                                catch (MessageFormatException v26) {
                                    throw ab.a((Exception)v26);
                                }
                                try {
                                    var13_16 /* !! */ .send(var5_5, var14_21, var15_22, var16_23);
                                    this.f = true;
                                    if (ServerJmsRoutingAssertion.e.isLoggable(Level.FINE)) {
                                        ServerJmsRoutingAssertion.e.fine(ab.g[3]);
                                    }
                                }
                                catch (MessageFormatException v27) {
                                    throw ab.a((Exception)v27);
                                }
                                if (!var11_14) {
                                    this.b.routingFinished();
                                    var4_4 = true;
                                    this.this$0.logAndAudit((AuditDetailMessage)AssertionMessages.JMS_ROUTING_NO_RESPONSE_EXPECTED);
                                    this.b.setRoutingStatus(RoutingStatus.ROUTED);
                                    break block116;
                                }
                                var18_24 = this.this$0.a(var5_5, this.a.getEndpoint());
                                var19_25 = 10000;
                                var20_26 = ((JmsRoutingAssertion)this.this$0.assertion).getResponseTimeout();
                                if (var20_26 == null) {
                                    var36_11 = ab.g;
                                    var21_27 = this.this$0.v.getIntProperty(var36_11[20], var19_25);
                                } else {
                                    var20_26 = ExpandVariables.process(var20_26, var12_15, this.this$0.getAudit());
                                    try {
                                        var21_27 = Integer.parseInt(var20_26);
                                        if (var21_27 <= 0) {
                                            var36_11 = ab.g;
                                            var21_27 = this.this$0.v.getIntProperty(var36_11[19], var19_25);
                                            ServerJmsRoutingAssertion.e.info(var36_11[7] + var21_27 + var36_11[9]);
                                        }
                                    }
                                    catch (NumberFormatException var22_28) {
                                        var21_27 = var19_25;
                                        var36_11 = ab.g;
                                        ServerJmsRoutingAssertion.e.warning(var36_11[18] + var19_25 + var36_11[22] + this.this$0.v.getClusterPropertyName(var36_11[19]));
                                    }
                                }
                                var22_29 = null;
                                try {
                                    var22_29 = JmsUtil.createMessageConsumer(var1_1.getSession(), var6_7, var18_24);
                                    this.this$0.logAndAudit((AuditDetailMessage)AssertionMessages.JMS_ROUTING_GETTING_RESPONSE);
                                    var23_30 = var22_29.receive((long)var21_27);
                                    try {
                                        if (var23_30 == null) break block117;
                                        var23_30.acknowledge();
                                        break block117;
                                    }
                                    catch (NumberFormatException v28) {
                                        throw ab.a(v28);
                                    }
                                    {
                                        catch (JMSException var24_31) {
                                            var36_11 = ab.g;
                                            ServerJmsRoutingAssertion.e.log(Level.WARNING, var36_11[14], var24_31);
                                        }
                                    }
                                }
                                catch (Throwable var25_33) {
                                    try {
                                        if (var22_29 != null) {
                                            var22_29.close();
                                        }
                                    }
                                    catch (MessageFormatException v29) {
                                        throw ab.a((Exception)v29);
                                    }
                                    throw var25_33;
                                }
                            }
                            try {
                                if (var22_29 == null) ** GOTO lbl236
                                var22_29.close();
                            }
                            catch (MessageFormatException v30) {
                                throw ab.a((Exception)v30);
                            }
lbl236:
                            // 2 sources

                            this.b.routingFinished();
                            var4_4 = true;
                            try {
                                if (var23_30 == null) {
                                    this.this$0.logAndAudit((AuditDetailMessage)AssertionMessages.JMS_ROUTING_NO_RESPONSE, new String[]{String.valueOf(var21_27)});
                                    throw new AssertionStatusException(AssertionStatus.FAILED);
                                }
                            }
                            catch (MessageFormatException v31) {
                                throw ab.a((Exception)v31);
                            }
                            if (((JmsRoutingAssertion)this.this$0.assertion).getResponseSize() == null) {
                                var36_11 = ab.g;
                                var26_34 = this.this$0.v.getLongProperty(var36_11[17], 0x280000L);
                                var24_32 = var26_34 >= 0L ? var26_34 : Message.getMaxBytes();
                            } else {
                                var36_11 = ab.g;
                                var24_32 = this.a(((JmsRoutingAssertion)this.this$0.assertion).getResponseSize(), var36_11[5], 0L, 0x7FFFFFFFFFFFFFFFL, (Map<String, Object>)var12_15);
                            }
                            if (var23_30 instanceof TextMessage) {
                                var26_34 = ((TextMessage)var23_30).getText().length();
                            } else if (var23_30 instanceof BytesMessage) {
                                var26_34 = ((BytesMessage)var23_30).getBodyLength();
                            } else {
                                this.this$0.logAndAudit((AuditDetailMessage)AssertionMessages.JMS_ROUTING_UNSUPPORTED_RESPONSE_MSG_TYPE, new String[]{var23_30.getClass().getName()});
                                throw new AssertionStatusException(AssertionStatus.FAILED);
                            }
                            if (var24_32 <= 0L) break block118;
                            try {
                                block129: {
                                    if (var26_34 <= var24_32) break block118;
                                    break block129;
                                    catch (MessageFormatException v32) {
                                        throw ab.a((Exception)v32);
                                    }
                                }
                                this.this$0.logAndAudit((AuditDetailMessage)AssertionMessages.JMS_ROUTING_RESPONSE_TOO_LARGE);
                                throw new AssertionStatusException(AssertionStatus.FAILED);
                            }
                            catch (MessageFormatException v33) {
                                throw ab.a((Exception)v33);
                            }
                        }
                        try {
                            var28_35 = this.b.getOrCreateTargetMessage((MessageTargetable)((JmsRoutingAssertion)this.this$0.assertion).getResponseTarget(), false);
                        }
                        catch (NoSuchVariableException var29_36) {
                            throw new AssertionStatusException(AssertionStatus.SERVER_ERROR, var29_36.getMessage(), var29_36);
                        }
                        try {
                            if (!(var23_30 instanceof TextMessage)) break block119;
                            var28_35.initialize(XmlUtil.stringToDocument((String)((TextMessage)var23_30).getText()), 0L);
                            break block120;
                        }
                        catch (MessageFormatException v34) {
                            throw ab.a((Exception)v34);
                        }
                    }
                    if (var23_30 instanceof BytesMessage) {
                        var29_37 = (BytesMessage)var23_30;
                        var30_38 = this.this$0.y.createStashManager();
                        var28_35.initialize((StashManager)var30_38, ContentTypeHeader.XML_DEFAULT, (InputStream)new BytesMessageInputStream((BytesMessage)var29_37), 0L);
                    } else {
                        this.this$0.logAndAudit((AuditDetailMessage)AssertionMessages.JMS_ROUTING_UNSUPPORTED_RESPONSE_MSG_TYPE, new String[]{var23_30.getClass().getName()});
                        throw new AssertionStatusException(AssertionStatus.FAILED);
                    }
                }
                this.this$0.logAndAudit((AuditDetailMessage)AssertionMessages.JMS_ROUTING_GOT_RESPONSE);
                var29_37 = new HashMap<K, V>();
                var30_38 = var23_30.getPropertyNames();
                while (var30_38.hasMoreElements()) {
                    var31_39 = (String)var30_38.nextElement();
                    var32_40 = var23_30.getObjectProperty((String)var31_39);
                    var29_37.put(var31_39, var32_40);
                }
                var30_38 = JmsUtil.getJmsHeaders(var23_30);
                var28_35.attachJmsKnob((JmsKnob)new ac(this, var23_30, (Map)var29_37, (Map)var30_38));
                var31_39 = new HashMap<K, V>();
                this.this$0.a(this.b, ((JmsRoutingAssertion)this.this$0.assertion).getResponseJmsMessagePropertyRuleSet(), (Map<String, Object>)var29_37, (Map<String, Object>)var31_39);
                var28_35.getJmsKnob().getJmsMsgPropMap().clear();
                var28_35.getJmsKnob().getJmsMsgPropMap().putAll(var31_39);
                var32_40 = var28_35.getHeadersKnob();
                for (Map.Entry<K, V> var34_42 : var31_39.entrySet()) {
                    var32_40.addHeader((String)var34_42.getKey(), var34_42.getValue(), ab.g[6]);
                }
                this.b.setRoutingStatus(RoutingStatus.ROUTED);
                this.c.notifyMessage(var28_35, MessageRole.RESPONSE);
                var28_35.notifyMessage(this.c, MessageRole.REQUEST);
            }
            try {
                if (this.this$0.a(this.d[0], this.a.getReplyType())) {
                    this.d[0] = null;
                }
            }
            catch (MessageFormatException v35) {
                throw ab.a((Exception)v35);
            }
            if (!var3_3) break block121;
            try {
                block130: {
                    if (var4_4) break block121;
                    break block130;
                    catch (MessageFormatException v36) {
                        throw ab.a((Exception)v36);
                    }
                }
                this.b.routingFinished();
                break block121;
            }
            catch (MessageFormatException v37) {
                throw ab.a((Exception)v37);
            }
            catch (IOException | NumberFormatException | JMSException | NamingException | SAXException var5_6) {
                block122: {
                    try {
                        this.e = var5_6;
                        if (!this.this$0.a(this.d[0], this.a.getReplyType())) break block122;
                        this.d[0] = null;
                    }
                    catch (Throwable var35_43) {
                        block123: {
                            try {
                                if (this.this$0.a(this.d[0], this.a.getReplyType())) {
                                    this.d[0] = null;
                                }
                            }
                            catch (MessageFormatException v38) {
                                throw ab.a((Exception)v38);
                            }
                            try {
                                try {
                                    if (!var3_3 || var4_4) break block123;
                                }
                                catch (MessageFormatException v39) {
                                    throw ab.a((Exception)v39);
                                }
                                this.b.routingFinished();
                            }
                            catch (MessageFormatException v40) {
                                throw ab.a((Exception)v40);
                            }
                        }
                        throw var35_43;
                    }
                }
                if (!var3_3) break block121;
                try {
                    block131: {
                        if (var4_4) break block121;
                        break block131;
                        catch (MessageFormatException v41) {
                            throw ab.a((Exception)v41);
                        }
                    }
                    this.b.routingFinished();
                }
                catch (MessageFormatException v42) {
                    throw ab.a((Exception)v42);
                }
            }
        }
    }

    /*
     * Enabled force condition propagation
     * Lifted jumps to return sites
     */
    private Integer a(String string, String string2, int n2, int n3, Map<String, Object> map) {
        if (string == null) return null;
        String string3 = ExpandVariables.process(string, map, this.this$0.getAudit()).trim();
        if (ValidationUtils.isValidInteger((String)string3, (boolean)false, (int)n2, (int)n3)) {
            return Integer.parseInt(string3);
        }
        this.this$0.logAndAudit((AuditDetailMessage)AssertionMessages.JMS_ROUTING_CONFIGURATION_ERROR, string2 + g[8] + string3);
        throw new AssertionStatusException(AssertionStatus.FAILED);
    }

    /*
     * Enabled force condition propagation
     * Lifted jumps to return sites
     */
    private Long a(String string, String string2, long l2, long l3, Map<String, Object> map) {
        if (string == null) return null;
        String string3 = ExpandVariables.process(string, map, this.this$0.getAudit()).trim();
        if (ValidationUtils.isValidLong((String)string3, (boolean)false, (long)l2, (long)l3)) {
            return Long.parseLong(string3);
        }
        this.this$0.logAndAudit((AuditDetailMessage)AssertionMessages.JMS_ROUTING_CONFIGURATION_ERROR, string2 + g[11] + string3);
        throw new AssertionStatusException(AssertionStatus.FAILED);
    }

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

    /*
     * Unable to fully structure code
     */
    static {
        block10: {
            block9: {
                var5 = new String[23];
                var3_1 = 0;
                var2_2 = "}\u0017\u0019\u0010tu*t\u0004c\u0010\u001c\u0013\u0013G(#_ky-~\u0004\u0017\u001a&y&}\f\u0002\u001ab\u0019G(#_ii*o\n\u0005\u0011b<3h\u0016\u0003\u001eay~~\u0000\u001e\u000b\nG(#_Ny?i\u0000\u0002\u0015\u007f\u0000\u0003\u000fir-hE\u001d\u001auo?j\u0000P\fof;\fG(#_Vn1}\u0000\u0002\u000b\u007f\u001cX\u0016\u0019\u0011a<-h\u0017\u0006\u001at<:h\u0003\u0011\njh~{\u0004\u001c\nc<v\n-\f\u001e\tgp7i_P\u001b$E\u0016\u0010t<\u0014@6P\rco.b\u000b\u0003\u001a&h7`\u0000\u001f\nr2\nG(#-cl2t1\u001f\n-\f\u001e\tgp7i_P\fy\f\u001d\u001a&h1-\t\u0019\tc\fG(#_Vn1}\u0000\u0002\u000b\u007f#H\u0017\u0002\u0010t<?n\u000e\u001e\u0010qp;i\u0002\u0015_es0~\u0010\u001d\u001ab<3h\u0016\u0003\u001eayp\u001c^\u0000\u001e\u001bor9-/=,&s+y\u0007\u001f\nhx~`\u0000\u0003\fg{;\u0002@4\u0014d\n:\u0012uQ;~\u0016\u0011\u0018cQ?u'\t\u000bco\u0015X\u0016\u0019\u0011a<:h\u0003\u0011\njh~{\u0004\u001c\nc<v\u0014d\n:\u0012uN;~\u0015\u001f\u0011uy\nd\b\u0015\u0010sh\u0014d\n:\u0012uN;~\u0015\u001f\u0011uy\nd\b\u0015\u0010sh";
                var4_3 = "}\u0017\u0019\u0010tu*t\u0004c\u0010\u001c\u0013\u0013G(#_ky-~\u0004\u0017\u001a&y&}\f\u0002\u001ab\u0019G(#_ii*o\n\u0005\u0011b<3h\u0016\u0003\u001eay~~\u0000\u001e\u000b\nG(#_Ny?i\u0000\u0002\u0015\u007f\u0000\u0003\u000fir-hE\u001d\u001auo?j\u0000P\fof;\fG(#_Vn1}\u0000\u0002\u000b\u007f\u001cX\u0016\u0019\u0011a<-h\u0017\u0006\u001at<:h\u0003\u0011\njh~{\u0004\u001c\nc<v\n-\f\u001e\tgp7i_P\u001b$E\u0016\u0010t<\u0014@6P\rco.b\u000b\u0003\u001a&h7`\u0000\u001f\nr2\nG(#-cl2t1\u001f\n-\f\u001e\tgp7i_P\fy\f\u001d\u001a&h1-\t\u0019\tc\fG(#_Vn1}\u0000\u0002\u000b\u007f#H\u0017\u0002\u0010t<?n\u000e\u001e\u0010qp;i\u0002\u0015_es0~\u0010\u001d\u001ab<3h\u0016\u0003\u001eayp\u001c^\u0000\u001e\u001bor9-/=,&s+y\u0007\u001f\nhx~`\u0000\u0003\fg{;\u0002@4\u0014d\n:\u0012uQ;~\u0016\u0011\u0018cQ?u'\t\u000bco\u0015X\u0016\u0019\u0011a<:h\u0003\u0011\njh~{\u0004\u001c\nc<v\u0014d\n:\u0012uN;~\u0015\u001f\u0011uy\nd\b\u0015\u0010sh\u0014d\n:\u0012uN;~\u0015\u001f\u0011uy\nd\b\u0015\u0010sh".length();
                var1_4 = 8;
                var0_5 = -1;
lbl7:
                // 2 sources

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

                while (true) {
                    var5[var3_1++] = ab.a(v0, ab.a(v2));
                    if ((var0_5 += var1_4) < var4_3) {
                        var1_4 = var2_2.charAt(var0_5);
                        ** continue;
                    }
                    var2_2 = "\u0013|wo7;~0_E_;'d\"p\u0011BD h\u007f7UAM;&o=\u0011GG';~<C\u0004[ 'z<CPRhh";
                    var4_3 = "\u0013|wo7;~0_E_;'d\"p\u0011BD h\u007f7UAM;&o=\u0011GG';~<C\u0004[ 'z<CPRhh".length();
                    var1_4 = 14;
                    var0_5 = -1;
lbl22:
                    // 2 sources

                    while (true) {
                        v0 = 27;
                        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++] = ab.a(v0, ab.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;
            }
        }
        ab.g = var5;
    }

    private static char[] a(String string) {
        char[] cArray = string.toCharArray();
        if (cArray.length < 2) {
            cArray = cArray;
            cArray[0] = (char)(cArray[0] ^ 0x11);
        }
        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 -> 66;
                    case 1 -> 42;
                    case 2 -> 63;
                    case 3 -> 48;
                    case 4 -> 73;
                    case 5 -> 83;
                    default -> 17;
                })));
                ++n3;
                n4 = n4;
            } while (n4 > n3);
        }
        return new String(cArray2).intern();
    }
}

