public class io.netty.handler.ssl.ReferenceCountedOpenSslEngine extends javax.net.ssl.SSLEngine implements io.netty.util.ReferenceCounted, io.netty.handler.ssl.ApplicationProtocolAccessor
{
private static final io.netty.util.internal.logging.InternalLogger logger;
private static final io.netty.util.ResourceLeakDetector leakDetector;
private static final int OPENSSL_OP_NO_PROTOCOL_INDEX_SSLV2;
private static final int OPENSSL_OP_NO_PROTOCOL_INDEX_SSLV3;
private static final int OPENSSL_OP_NO_PROTOCOL_INDEX_TLSv;
private static final int OPENSSL_OP_NO_PROTOCOL_INDEX_TLSv;
private static final int OPENSSL_OP_NO_PROTOCOL_INDEX_TLSv;
private static final int OPENSSL_OP_NO_PROTOCOL_INDEX_TLSv;
private static final int[] OPENSSL_OP_NO_PROTOCOLS;
static final int MAX_PLAINTEXT_LENGTH;
static final int MAX_RECORD_SIZE;
private static final javax.net.ssl.SSLEngineResult NEED_UNWRAP_OK;
private static final javax.net.ssl.SSLEngineResult NEED_UNWRAP_CLOSED;
private static final javax.net.ssl.SSLEngineResult NEED_WRAP_OK;
private static final javax.net.ssl.SSLEngineResult NEED_WRAP_CLOSED;
private static final javax.net.ssl.SSLEngineResult CLOSED_NOT_HANDSHAKING;
private long ssl;
private long networkBIO;
private io.netty.handler.ssl.ReferenceCountedOpenSslEngine$HandshakeState handshakeState;
private boolean receivedShutdown;
private volatile boolean destroyed;
private volatile java.lang.String applicationProtocol;
private volatile boolean needTask;
private java.lang.String[] explicitlyEnabledProtocols;
private boolean sessionSet;
private final io.netty.util.ResourceLeakTracker leak;
private final io.netty.util.AbstractReferenceCounted refCnt;
private volatile io.netty.handler.ssl.ClientAuth clientAuth;
private volatile long lastAccessed;
private java.lang.String endPointIdentificationAlgorithm;
private java.lang.Object algorithmConstraints;
private java.util.List sniHostNames;
private volatile java.util.Collection matchers;
private boolean isInboundDone;
private boolean outboundClosed;
final boolean jdkCompatibilityMode;
private final boolean clientMode;
final io.netty.buffer.ByteBufAllocator alloc;
private final io.netty.handler.ssl.OpenSslEngineMap engineMap;
private final io.netty.handler.ssl.OpenSslApplicationProtocolNegotiator apn;
private final io.netty.handler.ssl.ReferenceCountedOpenSslContext parentContext;
private final io.netty.handler.ssl.OpenSslSession session;
private final java.nio.ByteBuffer[] singleSrcBuffer;
private final java.nio.ByteBuffer[] singleDstBuffer;
private final boolean enableOcsp;
private int maxWrapOverhead;
private int maxWrapBufferSize;
private java.lang.Throwable pendingException;
private static final javax.security.cert.X509Certificate[] JAVAX_CERTS_NOT_SUPPORTED;
static final boolean $assertionsDisabled;
void <init>(io.netty.handler.ssl.ReferenceCountedOpenSslContext, io.netty.buffer.ByteBufAllocator, java.lang.String, int, boolean, boolean)
{
io.netty.handler.ssl.ClientAuth v, v;
io.netty.handler.ssl.ApplicationProtocolNegotiator v;
java.util.concurrent.locks.ReadWriteLock v;
java.lang.Throwable v, v, v;
io.netty.handler.ssl.ReferenceCountedOpenSslEngine$DefaultOpenSslSession v, v;
long v, v, v, v, v, v, v, v, v, v, v, v;
java.lang.String v;
io.netty.handler.ssl.ReferenceCountedOpenSslEngine$HandshakeState v;
io.netty.handler.ssl.OpenSslSession v;
java.util.concurrent.locks.Lock v;
io.netty.handler.ssl.ReferenceCountedOpenSslContext v, v;
io.netty.buffer.ByteBufAllocator v;
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
boolean v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.nio.ByteBuffer[] v, v;
io.netty.handler.ssl.OpenSslEngineMap v;
io.netty.util.ResourceLeakDetector v;
java.util.List v, v;
io.netty.handler.ssl.OpenSslSessionContext v, v, v;
io.netty.handler.ssl.ReferenceCountedOpenSslEngine$1 v;
java.security.cert.Certificate[] v;
io.netty.handler.ssl.ReferenceCountedOpenSslEngine$2 v;
java.lang.String[] v, v, v;
int v, v, v, v, v, v, v, v, v, v, v;
io.netty.util.ResourceLeakTracker v;
java.lang.Object v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v := @parameter: io.netty.handler.ssl.ReferenceCountedOpenSslContext;
v := @parameter: io.netty.buffer.ByteBufAllocator;
v := @parameter: java.lang.String;
v := @parameter: int;
v := @parameter: boolean;
v := @parameter: boolean;
specialinvoke v.<javax.net.ssl.SSLEngine: void <init>(java.lang.String,int)>(v, v);
v = <io.netty.handler.ssl.ReferenceCountedOpenSslEngine$HandshakeState: io.netty.handler.ssl.ReferenceCountedOpenSslEngine$HandshakeState NOT_STARTED>;
v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: io.netty.handler.ssl.ReferenceCountedOpenSslEngine$HandshakeState handshakeState> = v;
v = new io.netty.handler.ssl.ReferenceCountedOpenSslEngine$1;
specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine$1: void <init>(io.netty.handler.ssl.ReferenceCountedOpenSslEngine)>(v);
v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: io.netty.util.AbstractReferenceCounted refCnt> = v;
v = <io.netty.handler.ssl.ClientAuth: io.netty.handler.ssl.ClientAuth NONE>;
v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: io.netty.handler.ssl.ClientAuth clientAuth> = v;
v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long lastAccessed> = -1L;
v = newarray (java.nio.ByteBuffer)[1];
v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: java.nio.ByteBuffer[] singleSrcBuffer> = v;
v = newarray (java.nio.ByteBuffer)[1];
v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: java.nio.ByteBuffer[] singleDstBuffer> = v;
staticinvoke <io.netty.handler.ssl.OpenSsl: void ensureAvailability()>();
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: io.netty.handler.ssl.OpenSslEngineMap engineMap>;
v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: io.netty.handler.ssl.OpenSslEngineMap engineMap> = v;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: boolean enableOcsp>;
v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean enableOcsp> = v;
v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean jdkCompatibilityMode> = v;
v = staticinvoke <io.netty.util.internal.ObjectUtil: java.lang.Object checkNotNull(java.lang.Object,java.lang.String)>(v, "alloc");
v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: io.netty.buffer.ByteBufAllocator alloc> = v;
v = virtualinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: io.netty.handler.ssl.ApplicationProtocolNegotiator applicationProtocolNegotiator()>();
v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: io.netty.handler.ssl.OpenSslApplicationProtocolNegotiator apn> = v;
v = virtualinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: boolean isClient()>();
v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean clientMode> = v;
v = staticinvoke <io.netty.util.internal.PlatformDependent: int javaVersion()>();
if v < 7 goto label;
v = new io.netty.handler.ssl.ReferenceCountedOpenSslEngine$2;
v = new io.netty.handler.ssl.ReferenceCountedOpenSslEngine$DefaultOpenSslSession;
v = virtualinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: io.netty.handler.ssl.OpenSslSessionContext sessionContext()>();
specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine$DefaultOpenSslSession: void <init>(io.netty.handler.ssl.ReferenceCountedOpenSslEngine,io.netty.handler.ssl.OpenSslSessionContext)>(v, v);
specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine$2: void <init>(io.netty.handler.ssl.ReferenceCountedOpenSslEngine,io.netty.handler.ssl.OpenSslSession)>(v, v);
v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: io.netty.handler.ssl.OpenSslSession session> = v;
goto label;
label:
v = new io.netty.handler.ssl.ReferenceCountedOpenSslEngine$DefaultOpenSslSession;
v = virtualinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: io.netty.handler.ssl.OpenSslSessionContext sessionContext()>();
specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine$DefaultOpenSslSession: void <init>(io.netty.handler.ssl.ReferenceCountedOpenSslEngine,io.netty.handler.ssl.OpenSslSessionContext)>(v, v);
v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: io.netty.handler.ssl.OpenSslSession session> = v;
label:
v = virtualinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: io.netty.handler.ssl.OpenSslSessionContext sessionContext()>();
v = virtualinvoke v.<io.netty.handler.ssl.OpenSslSessionContext: boolean useKeyManager()>();
if v != 0 goto label;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: io.netty.handler.ssl.OpenSslSession session>;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: java.security.cert.Certificate[] keyCertChain>;
interfaceinvoke v.<io.netty.handler.ssl.OpenSslSession: void setLocalCertificate(java.security.cert.Certificate[])>(v);
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: java.util.concurrent.locks.ReadWriteLock ctxLock>;
v = interfaceinvoke v.<java.util.concurrent.locks.ReadWriteLock: java.util.concurrent.locks.Lock readLock()>();
interfaceinvoke v.<java.util.concurrent.locks.Lock: void lock()>();
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: long ctx>;
v = virtualinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: boolean isClient()>();
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = staticinvoke <io.netty.internal.tcnative.SSL: long newSSL(long,boolean)>(v, v);
label:
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
goto label;
label:
v := @caughtexception;
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
throw v;
label:
entermonitor v;
label:
v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long ssl> = v;
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long ssl>;
v = virtualinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: int getBioNonApplicationBufferSize()>();
v = staticinvoke <io.netty.internal.tcnative.SSL: long bioNewByteBuffer(long,int)>(v, v);
v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long networkBIO> = v;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean clientMode>;
if v == 0 goto label;
v = <io.netty.handler.ssl.ClientAuth: io.netty.handler.ssl.ClientAuth NONE>;
goto label;
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: io.netty.handler.ssl.ClientAuth clientAuth>;
label:
specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: void setClientAuth(io.netty.handler.ssl.ClientAuth)>(v);
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: java.lang.String[] protocols>;
if v == null goto label;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: java.lang.String[] protocols>;
specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: void setEnabledProtocols0(java.lang.String[],boolean)>(v, 1);
goto label;
label:
v = virtualinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: java.lang.String[] getEnabledProtocols()>();
v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: java.lang.String[] explicitlyEnabledProtocols> = v;
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean clientMode>;
if v == 0 goto label;
v = staticinvoke <io.netty.handler.ssl.SslUtils: boolean isValidHostNameForSNI(java.lang.String)>(v);
if v == 0 goto label;
v = staticinvoke <io.netty.util.internal.PlatformDependent: int javaVersion()>();
if v < 8 goto label;
v = staticinvoke <io.netty.handler.ssl.Java8SslUtils: boolean isValidHostNameForSNI(java.lang.String)>(v);
if v == 0 goto label;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long ssl>;
staticinvoke <io.netty.internal.tcnative.SSL: void setTlsExtHostName(long,java.lang.String)>(v, v);
v = staticinvoke <java.util.Collections: java.util.List singletonList(java.lang.Object)>(v);
v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: java.util.List sniHostNames> = v;
goto label;
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long ssl>;
staticinvoke <io.netty.internal.tcnative.SSL: void setTlsExtHostName(long,java.lang.String)>(v, v);
v = staticinvoke <java.util.Collections: java.util.List singletonList(java.lang.Object)>(v);
v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: java.util.List sniHostNames> = v;
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean enableOcsp>;
if v == 0 goto label;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long ssl>;
staticinvoke <io.netty.internal.tcnative.SSL: void enableOcsp(long)>(v);
label:
if v != 0 goto label;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long ssl>;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long ssl>;
v = staticinvoke <io.netty.internal.tcnative.SSL: int getMode(long)>(v);
v = <io.netty.internal.tcnative.SSL: int SSL_MODE_ENABLE_PARTIAL_WRITE>;
v = v | v;
staticinvoke <io.netty.internal.tcnative.SSL: int setMode(long,int)>(v, v);
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long ssl>;
v = staticinvoke <io.netty.internal.tcnative.SSL: int getOptions(long)>(v);
v = <io.netty.internal.tcnative.SSL: int SSL_OP_NO_TLSv1_3>;
v = staticinvoke <io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean isProtocolEnabled(int,int,java.lang.String)>(v, v, "TLSv.3");
if v == 0 goto label;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean clientMode>;
if v == 0 goto label;
v = <io.netty.handler.ssl.ReferenceCountedOpenSslContext: boolean CLIENT_ENABLE_SESSION_TICKET_TLSV13>;
goto label;
label:
v = <io.netty.handler.ssl.ReferenceCountedOpenSslContext: boolean SERVER_ENABLE_SESSION_TICKET_TLSV13>;
label:
if v == 0 goto label;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long ssl>;
v = <io.netty.internal.tcnative.SSL: int SSL_OP_NO_TICKET>;
staticinvoke <io.netty.internal.tcnative.SSL: void clearOptions(long,int)>(v, v);
label:
v = staticinvoke <io.netty.handler.ssl.OpenSsl: boolean isBoringSSL()>();
if v == 0 goto label;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean clientMode>;
if v == 0 goto label;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long ssl>;
v = <io.netty.internal.tcnative.SSL: int SSL_RENEGOTIATE_ONCE>;
staticinvoke <io.netty.internal.tcnative.SSL: void setRenegotiateMode(long,int)>(v, v);
label:
specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: void calculateMaxWrapOverhead()>();
label:
goto label;
label:
v := @caughtexception;
virtualinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: void shutdown()>();
staticinvoke <io.netty.util.internal.PlatformDependent: void throwException(java.lang.Throwable)>(v);
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: io.netty.handler.ssl.ReferenceCountedOpenSslContext parentContext> = v;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: io.netty.handler.ssl.ReferenceCountedOpenSslContext parentContext>;
virtualinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: io.netty.util.ReferenceCounted retain()>();
if v == 0 goto label;
v = <io.netty.handler.ssl.ReferenceCountedOpenSslEngine: io.netty.util.ResourceLeakDetector leakDetector>;
v = virtualinvoke v.<io.netty.util.ResourceLeakDetector: io.netty.util.ResourceLeakTracker track(java.lang.Object)>(v);
goto label;
label:
v = null;
label:
v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: io.netty.util.ResourceLeakTracker leak> = v;
return;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
final synchronized java.lang.String[] authMethods()
{
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
java.lang.String[] v, v;
long v;
boolean v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean isDestroyed()>();
if v == 0 goto label;
v = <io.netty.util.internal.EmptyArrays: java.lang.String[] EMPTY_STRINGS>;
return v;
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long ssl>;
v = staticinvoke <io.netty.internal.tcnative.SSL: java.lang.String[] authenticationMethods(long)>(v);
return v;
}
final boolean setKeyMaterial(io.netty.handler.ssl.OpenSslKeyMaterial) throws java.lang.Exception
{
java.lang.Throwable v;
io.netty.handler.ssl.OpenSslSession v;
long v, v, v;
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
io.netty.handler.ssl.OpenSslKeyMaterial v;
java.security.cert.X509Certificate[] v;
boolean v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v := @parameter: io.netty.handler.ssl.OpenSslKeyMaterial;
entermonitor v;
label:
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean isDestroyed()>();
if v == 0 goto label;
exitmonitor v;
label:
return 0;
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long ssl>;
v = interfaceinvoke v.<io.netty.handler.ssl.OpenSslKeyMaterial: long certificateChainAddress()>();
v = interfaceinvoke v.<io.netty.handler.ssl.OpenSslKeyMaterial: long privateKeyAddress()>();
staticinvoke <io.netty.internal.tcnative.SSL: void setKeyMaterial(long,long,long)>(v, v, v);
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: io.netty.handler.ssl.OpenSslSession session>;
v = interfaceinvoke v.<io.netty.handler.ssl.OpenSslKeyMaterial: java.security.cert.X509Certificate[] certificateChain()>();
interfaceinvoke v.<io.netty.handler.ssl.OpenSslSession: void setLocalCertificate(java.security.cert.Certificate[])>(v);
return 1;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
final synchronized javax.crypto.spec.SecretKeySpec masterKey()
{
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
byte[] v;
javax.crypto.spec.SecretKeySpec v;
long v;
boolean v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean isDestroyed()>();
if v == 0 goto label;
return null;
label:
v = new javax.crypto.spec.SecretKeySpec;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long ssl>;
v = staticinvoke <io.netty.internal.tcnative.SSL: byte[] getMasterKey(long)>(v);
specialinvoke v.<javax.crypto.spec.SecretKeySpec: void <init>(byte[],java.lang.String)>(v, "AES");
return v;
}
synchronized boolean isSessionReused()
{
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
long v;
boolean v, v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean isDestroyed()>();
if v == 0 goto label;
return 0;
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long ssl>;
v = staticinvoke <io.netty.internal.tcnative.SSL: boolean isSessionReused(long)>(v);
return v;
}
public void setOcspResponse(byte[])
{
java.lang.Throwable v;
byte[] v;
java.lang.IllegalStateException v, v;
long v;
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
boolean v, v, v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v := @parameter: byte[];
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean enableOcsp>;
if v != 0 goto label;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("OCSP stapling is not enabled");
throw v;
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean clientMode>;
if v == 0 goto label;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("Not a server SSLEngine");
throw v;
label:
entermonitor v;
label:
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean isDestroyed()>();
if v != 0 goto label;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long ssl>;
staticinvoke <io.netty.internal.tcnative.SSL: void setOcspResponse(long,byte[])>(v, v);
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
public byte[] getOcspResponse()
{
java.lang.Throwable v;
byte[] v, v;
java.lang.IllegalStateException v, v;
long v;
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
boolean v, v, v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean enableOcsp>;
if v != 0 goto label;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("OCSP stapling is not enabled");
throw v;
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean clientMode>;
if v != 0 goto label;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("Not a client SSLEngine");
throw v;
label:
entermonitor v;
label:
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean isDestroyed()>();
if v == 0 goto label;
v = <io.netty.util.internal.EmptyArrays: byte[] EMPTY_BYTES>;
exitmonitor v;
label:
return v;
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long ssl>;
v = staticinvoke <io.netty.internal.tcnative.SSL: byte[] getOcspResponse(long)>(v);
exitmonitor v;
label:
return v;
label:
v := @caughtexception;
exitmonitor v;
throw v;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
public final int refCnt()
{
int v;
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
io.netty.util.AbstractReferenceCounted v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: io.netty.util.AbstractReferenceCounted refCnt>;
v = virtualinvoke v.<io.netty.util.AbstractReferenceCounted: int refCnt()>();
return v;
}
public final io.netty.util.ReferenceCounted retain()
{
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
io.netty.util.AbstractReferenceCounted v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: io.netty.util.AbstractReferenceCounted refCnt>;
virtualinvoke v.<io.netty.util.AbstractReferenceCounted: io.netty.util.ReferenceCounted retain()>();
return v;
}
public final io.netty.util.ReferenceCounted retain(int)
{
int v;
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
io.netty.util.AbstractReferenceCounted v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v := @parameter: int;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: io.netty.util.AbstractReferenceCounted refCnt>;
virtualinvoke v.<io.netty.util.AbstractReferenceCounted: io.netty.util.ReferenceCounted retain(int)>(v);
return v;
}
public final io.netty.util.ReferenceCounted touch()
{
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
io.netty.util.AbstractReferenceCounted v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: io.netty.util.AbstractReferenceCounted refCnt>;
virtualinvoke v.<io.netty.util.AbstractReferenceCounted: io.netty.util.ReferenceCounted touch()>();
return v;
}
public final io.netty.util.ReferenceCounted touch(java.lang.Object)
{
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
io.netty.util.AbstractReferenceCounted v;
java.lang.Object v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v := @parameter: java.lang.Object;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: io.netty.util.AbstractReferenceCounted refCnt>;
virtualinvoke v.<io.netty.util.AbstractReferenceCounted: io.netty.util.ReferenceCounted touch(java.lang.Object)>(v);
return v;
}
public final boolean release()
{
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
io.netty.util.AbstractReferenceCounted v;
boolean v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: io.netty.util.AbstractReferenceCounted refCnt>;
v = virtualinvoke v.<io.netty.util.AbstractReferenceCounted: boolean release()>();
return v;
}
public final boolean release(int)
{
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
int v;
io.netty.util.AbstractReferenceCounted v;
boolean v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v := @parameter: int;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: io.netty.util.AbstractReferenceCounted refCnt>;
v = virtualinvoke v.<io.netty.util.AbstractReferenceCounted: boolean release(int)>(v);
return v;
}
public java.lang.String getApplicationProtocol()
{
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
java.lang.String v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: java.lang.String applicationProtocol>;
return v;
}
public java.lang.String getHandshakeApplicationProtocol()
{
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
java.lang.String v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: java.lang.String applicationProtocol>;
return v;
}
public final synchronized javax.net.ssl.SSLSession getHandshakeSession()
{
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
int[] v;
io.netty.handler.ssl.OpenSslSession v;
int v, v;
io.netty.handler.ssl.ReferenceCountedOpenSslEngine$HandshakeState v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v = <io.netty.handler.ssl.ReferenceCountedOpenSslEngine$3: int[] $SwitchMap$io$netty$handler$ssl$ReferenceCountedOpenSslEngine$HandshakeState>;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: io.netty.handler.ssl.ReferenceCountedOpenSslEngine$HandshakeState handshakeState>;
v = virtualinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine$HandshakeState: int ordinal()>();
v = v[v];
lookupswitch(v)
{
case 1: goto label;
case 2: goto label;
default: goto label;
};
label:
return null;
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: io.netty.handler.ssl.OpenSslSession session>;
return v;
}
public final synchronized long sslPointer()
{
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
long v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long ssl>;
return v;
}
public final synchronized void shutdown()
{
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
io.netty.handler.ssl.OpenSslEngineMap v, v;
long v, v;
boolean v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean destroyed>;
if v != 0 goto label;
v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean destroyed> = 1;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: io.netty.handler.ssl.OpenSslEngineMap engineMap>;
if v == null goto label;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: io.netty.handler.ssl.OpenSslEngineMap engineMap>;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long ssl>;
interfaceinvoke v.<io.netty.handler.ssl.OpenSslEngineMap: io.netty.handler.ssl.ReferenceCountedOpenSslEngine remove(long)>(v);
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long ssl>;
staticinvoke <io.netty.internal.tcnative.SSL: void freeSSL(long)>(v);
v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long networkBIO> = 0L;
v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long ssl> = 0L;
v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean outboundClosed> = 1;
v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean isInboundDone> = 1;
label:
staticinvoke <io.netty.internal.tcnative.SSL: void clearError()>();
return;
}
private int writePlaintextData(java.nio.ByteBuffer, int)
{
java.lang.Throwable v;
io.netty.buffer.ByteBufAllocator v;
long v, v, v, v, v;
java.nio.ByteBuffer v;
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
io.netty.buffer.ByteBuf v;
int v, v, v, v, v, v, v;
boolean v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v := @parameter: java.nio.ByteBuffer;
v := @parameter: int;
v = virtualinvoke v.<java.nio.ByteBuffer: int position()>();
v = virtualinvoke v.<java.nio.ByteBuffer: int limit()>();
v = virtualinvoke v.<java.nio.ByteBuffer: boolean isDirect()>();
if v == 0 goto label;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long ssl>;
v = staticinvoke <io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long bufferAddress(java.nio.ByteBuffer)>(v);
v = v + v;
v = staticinvoke <io.netty.internal.tcnative.SSL: int writeToSSL(long,long,int)>(v, v, v);
if v <= 0 goto label;
v = v + v;
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer position(int)>(v);
goto label;
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: io.netty.buffer.ByteBufAllocator alloc>;
v = interfaceinvoke v.<io.netty.buffer.ByteBufAllocator: io.netty.buffer.ByteBuf directBuffer(int)>(v);
label:
v = v + v;
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer limit(int)>(v);
virtualinvoke v.<io.netty.buffer.ByteBuf: io.netty.buffer.ByteBuf setBytes(int,java.nio.ByteBuffer)>(0, v);
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer limit(int)>(v);
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long ssl>;
v = staticinvoke <io.netty.handler.ssl.OpenSsl: long memoryAddress(io.netty.buffer.ByteBuf)>(v);
v = staticinvoke <io.netty.internal.tcnative.SSL: int writeToSSL(long,long,int)>(v, v, v);
if v <= 0 goto label;
v = v + v;
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer position(int)>(v);
goto label;
label:
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer position(int)>(v);
label:
virtualinvoke v.<io.netty.buffer.ByteBuf: boolean release()>();
goto label;
label:
v := @caughtexception;
virtualinvoke v.<io.netty.buffer.ByteBuf: boolean release()>();
throw v;
label:
return v;
catch java.lang.Throwable from label to label with label;
}
synchronized void bioSetFd(int)
{
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
int v;
long v;
boolean v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v := @parameter: int;
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean isDestroyed()>();
if v != 0 goto label;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long ssl>;
staticinvoke <io.netty.internal.tcnative.SSL: void bioSetFd(long,int)>(v, v);
label:
return;
}
private io.netty.buffer.ByteBuf writeEncryptedData(java.nio.ByteBuffer, int) throws javax.net.ssl.SSLException
{
java.lang.Throwable v;
io.netty.buffer.ByteBufAllocator v;
long v, v, v, v, v;
java.nio.ByteBuffer v;
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
io.netty.buffer.ByteBuf v;
int v, v, v, v;
boolean v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v := @parameter: java.nio.ByteBuffer;
v := @parameter: int;
v = virtualinvoke v.<java.nio.ByteBuffer: int position()>();
v = virtualinvoke v.<java.nio.ByteBuffer: boolean isDirect()>();
if v == 0 goto label;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long networkBIO>;
v = staticinvoke <io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long bufferAddress(java.nio.ByteBuffer)>(v);
v = v + v;
staticinvoke <io.netty.internal.tcnative.SSL: void bioSetByteBuffer(long,long,int,boolean)>(v, v, v, 0);
goto label;
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: io.netty.buffer.ByteBufAllocator alloc>;
v = interfaceinvoke v.<io.netty.buffer.ByteBufAllocator: io.netty.buffer.ByteBuf directBuffer(int)>(v);
label:
v = virtualinvoke v.<java.nio.ByteBuffer: int limit()>();
v = v + v;
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer limit(int)>(v);
virtualinvoke v.<io.netty.buffer.ByteBuf: io.netty.buffer.ByteBuf writeBytes(java.nio.ByteBuffer)>(v);
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer position(int)>(v);
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer limit(int)>(v);
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long networkBIO>;
v = staticinvoke <io.netty.handler.ssl.OpenSsl: long memoryAddress(io.netty.buffer.ByteBuf)>(v);
staticinvoke <io.netty.internal.tcnative.SSL: void bioSetByteBuffer(long,long,int,boolean)>(v, v, v, 0);
label:
return v;
label:
v := @caughtexception;
virtualinvoke v.<io.netty.buffer.ByteBuf: boolean release()>();
staticinvoke <io.netty.util.internal.PlatformDependent: void throwException(java.lang.Throwable)>(v);
label:
return null;
catch java.lang.Throwable from label to label with label;
}
private int readPlaintextData(java.nio.ByteBuffer) throws javax.net.ssl.SSLException
{
java.lang.Throwable v;
io.netty.buffer.ByteBufAllocator v;
long v, v, v, v, v;
java.nio.ByteBuffer v;
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
io.netty.buffer.ByteBuf v;
int v, v, v, v, v, v, v, v, v, v, v;
boolean v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v := @parameter: java.nio.ByteBuffer;
v = virtualinvoke v.<java.nio.ByteBuffer: int position()>();
v = virtualinvoke v.<java.nio.ByteBuffer: boolean isDirect()>();
if v == 0 goto label;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long ssl>;
v = staticinvoke <io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long bufferAddress(java.nio.ByteBuffer)>(v);
v = v + v;
v = virtualinvoke v.<java.nio.ByteBuffer: int limit()>();
v = v - v;
v = staticinvoke <io.netty.internal.tcnative.SSL: int readFromSSL(long,long,int)>(v, v, v);
if v <= 0 goto label;
v = v + v;
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer position(int)>(v);
goto label;
label:
v = virtualinvoke v.<java.nio.ByteBuffer: int limit()>();
v = virtualinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: int maxEncryptedPacketLength0()>();
v = v - v;
v = staticinvoke <java.lang.Math: int min(int,int)>(v, v);
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: io.netty.buffer.ByteBufAllocator alloc>;
v = interfaceinvoke v.<io.netty.buffer.ByteBufAllocator: io.netty.buffer.ByteBuf directBuffer(int)>(v);
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long ssl>;
v = staticinvoke <io.netty.handler.ssl.OpenSsl: long memoryAddress(io.netty.buffer.ByteBuf)>(v);
v = staticinvoke <io.netty.internal.tcnative.SSL: int readFromSSL(long,long,int)>(v, v, v);
if v <= 0 goto label;
v = v + v;
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer limit(int)>(v);
v = virtualinvoke v.<io.netty.buffer.ByteBuf: int readerIndex()>();
virtualinvoke v.<io.netty.buffer.ByteBuf: io.netty.buffer.ByteBuf getBytes(int,java.nio.ByteBuffer)>(v, v);
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer limit(int)>(v);
label:
virtualinvoke v.<io.netty.buffer.ByteBuf: boolean release()>();
goto label;
label:
v := @caughtexception;
virtualinvoke v.<io.netty.buffer.ByteBuf: boolean release()>();
throw v;
label:
return v;
catch java.lang.Throwable from label to label with label;
}
final synchronized int maxWrapOverhead()
{
int v;
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: int maxWrapOverhead>;
return v;
}
final synchronized int maxEncryptedPacketLength()
{
int v;
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v = virtualinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: int maxEncryptedPacketLength0()>();
return v;
}
final int maxEncryptedPacketLength0()
{
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
int v, v, v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: int maxWrapOverhead>;
v = <io.netty.handler.ssl.ReferenceCountedOpenSslEngine: int MAX_PLAINTEXT_LENGTH>;
v = v + v;
return v;
}
final int calculateMaxLengthForWrap(int, int)
{
long v, v, v;
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
int v, v, v, v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v := @parameter: int;
v := @parameter: int;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: int maxWrapBufferSize>;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: int maxWrapOverhead>;
v = v * v;
v = v + v;
v = staticinvoke <java.lang.Math: long min(long,long)>(v, v);
return v;
}
final int calculateOutNetBufSize(int, int)
{
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
int v, v, v;
long v, v, v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v := @parameter: int;
v := @parameter: int;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: int maxWrapOverhead>;
v = v * v;
v = v + v;
v = staticinvoke <java.lang.Math: long min(long,long)>(2147483647L, v);
return v;
}
final synchronized int sslPending()
{
int v;
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: int sslPending0()>();
return v;
}
private void calculateMaxWrapOverhead()
{
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
int v, v, v;
long v;
boolean v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long ssl>;
v = staticinvoke <io.netty.internal.tcnative.SSL: int getMaxWrapOverhead(long)>(v);
v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: int maxWrapOverhead> = v;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean jdkCompatibilityMode>;
if v == 0 goto label;
v = virtualinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: int maxEncryptedPacketLength0()>();
goto label;
label:
v = virtualinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: int maxEncryptedPacketLength0()>();
v = v << 4;
label:
v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: int maxWrapBufferSize> = v;
return;
}
private int sslPending0()
{
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
int v;
long v;
io.netty.handler.ssl.ReferenceCountedOpenSslEngine$HandshakeState v, v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: io.netty.handler.ssl.ReferenceCountedOpenSslEngine$HandshakeState handshakeState>;
v = <io.netty.handler.ssl.ReferenceCountedOpenSslEngine$HandshakeState: io.netty.handler.ssl.ReferenceCountedOpenSslEngine$HandshakeState FINISHED>;
if v == v goto label;
v = 0;
goto label;
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long ssl>;
v = staticinvoke <io.netty.internal.tcnative.SSL: int sslPending(long)>(v);
label:
return v;
}
private boolean isBytesAvailableEnoughForWrap(int, int, int)
{
long v, v;
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
byte v;
int v, v, v, v;
boolean v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v := @parameter: int;
v := @parameter: int;
v := @parameter: int;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: int maxWrapOverhead>;
v = v * v;
v = v - v;
v = v cmp v;
if v < 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public final javax.net.ssl.SSLEngineResult wrap(java.nio.ByteBuffer[], int, int, java.nio.ByteBuffer) throws javax.net.ssl.SSLException
{
javax.net.ssl.SSLEngineResult$Status v, v, v, v;
java.nio.ReadOnlyBufferException v;
io.netty.buffer.ByteBufAllocator v;
javax.net.ssl.SSLEngineResult$HandshakeStatus v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
int v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.lang.AssertionError v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.lang.String v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
boolean v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
io.netty.buffer.ByteBuf v;
java.lang.IndexOutOfBoundsException v;
long v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
io.netty.handler.ssl.ReferenceCountedOpenSslEngine$HandshakeState v, v, v, v, v, v, v;
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
java.nio.ByteBuffer[] v;
javax.net.ssl.SSLException v, v;
java.lang.Throwable v, v, v, v, v;
javax.net.ssl.SSLEngineResult v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.nio.ByteBuffer v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.lang.IllegalArgumentException v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v := @parameter: java.nio.ByteBuffer[];
v := @parameter: int;
v := @parameter: int;
v := @parameter: java.nio.ByteBuffer;
staticinvoke <io.netty.util.internal.ObjectUtil: java.lang.Object checkNotNullWithIAE(java.lang.Object,java.lang.String)>(v, "srcs");
staticinvoke <io.netty.util.internal.ObjectUtil: java.lang.Object checkNotNullWithIAE(java.lang.Object,java.lang.String)>(v, "dst");
v = lengthof v;
if v >= v goto label;
v = v + v;
v = lengthof v;
if v <= v goto label;
label:
v = new java.lang.IndexOutOfBoundsException;
v = lengthof v;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int,int,int)>(v, v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("offset: \u, length: \u (expected: offset <= offset + length <= srcs.length (\u))");
specialinvoke v.<java.lang.IndexOutOfBoundsException: void <init>(java.lang.String)>(v);
throw v;
label:
v = virtualinvoke v.<java.nio.ByteBuffer: boolean isReadOnly()>();
if v == 0 goto label;
v = new java.nio.ReadOnlyBufferException;
specialinvoke v.<java.nio.ReadOnlyBufferException: void <init>()>();
throw v;
label:
entermonitor v;
label:
v = virtualinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean isOutboundDone()>();
if v == 0 goto label;
v = virtualinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean isInboundDone()>();
if v != 0 goto label;
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean isDestroyed()>();
if v == 0 goto label;
label:
v = <io.netty.handler.ssl.ReferenceCountedOpenSslEngine: javax.net.ssl.SSLEngineResult CLOSED_NOT_HANDSHAKING>;
goto label;
label:
v = <io.netty.handler.ssl.ReferenceCountedOpenSslEngine: javax.net.ssl.SSLEngineResult NEED_UNWRAP_CLOSED>;
label:
exitmonitor v;
label:
return v;
label:
v = 0;
v = null;
label:
v = virtualinvoke v.<java.nio.ByteBuffer: boolean isDirect()>();
if v == 0 goto label;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long networkBIO>;
v = staticinvoke <io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long bufferAddress(java.nio.ByteBuffer)>(v);
v = virtualinvoke v.<java.nio.ByteBuffer: int position()>();
v = v + v;
v = virtualinvoke v.<java.nio.ByteBuffer: int remaining()>();
staticinvoke <io.netty.internal.tcnative.SSL: void bioSetByteBuffer(long,long,int,boolean)>(v, v, v, 1);
goto label;
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: io.netty.buffer.ByteBufAllocator alloc>;
v = virtualinvoke v.<java.nio.ByteBuffer: int remaining()>();
v = interfaceinvoke v.<io.netty.buffer.ByteBufAllocator: io.netty.buffer.ByteBuf directBuffer(int)>(v);
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long networkBIO>;
v = staticinvoke <io.netty.handler.ssl.OpenSsl: long memoryAddress(io.netty.buffer.ByteBuf)>(v);
v = virtualinvoke v.<io.netty.buffer.ByteBuf: int writableBytes()>();
staticinvoke <io.netty.internal.tcnative.SSL: void bioSetByteBuffer(long,long,int,boolean)>(v, v, v, 1);
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long networkBIO>;
v = staticinvoke <io.netty.internal.tcnative.SSL: int bioLengthByteBuffer(long)>(v);
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean outboundClosed>;
if v == 0 goto label;
v = virtualinvoke v.<java.nio.ByteBuffer: int remaining()>();
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean isBytesAvailableEnoughForWrap(int,int,int)>(v, 2, 1);
if v != 0 goto label;
v = new javax.net.ssl.SSLEngineResult;
v = <javax.net.ssl.SSLEngineResult$Status: javax.net.ssl.SSLEngineResult$Status BUFFER_OVERFLOW>;
v = virtualinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: javax.net.ssl.SSLEngineResult$HandshakeStatus getHandshakeStatus()>();
specialinvoke v.<javax.net.ssl.SSLEngineResult: void <init>(javax.net.ssl.SSLEngineResult$Status,javax.net.ssl.SSLEngineResult$HandshakeStatus,int,int)>(v, v, 0, 0);
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long networkBIO>;
staticinvoke <io.netty.internal.tcnative.SSL: void bioClearByteBuffer(long)>(v);
if v != null goto label;
v = virtualinvoke v.<java.nio.ByteBuffer: int position()>();
v = v + 0;
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer position(int)>(v);
goto label;
label:
v = <io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean $assertionsDisabled>;
if v != 0 goto label;
v = virtualinvoke v.<io.netty.buffer.ByteBuf: int readableBytes()>();
v = virtualinvoke v.<java.nio.ByteBuffer: int remaining()>();
if v <= v goto label;
v = new java.lang.AssertionError;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.nio.ByteBuffer,io.netty.buffer.ByteBuf)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("The destination buffer \u didn\'t have enough remaining space to hold the encrypted content in \u0001");
specialinvoke v.<java.lang.AssertionError: void <init>(java.lang.Object)>(v);
throw v;
label:
v = virtualinvoke v.<io.netty.buffer.ByteBuf: int readerIndex()>();
v = virtualinvoke v.<io.netty.buffer.ByteBuf: java.nio.ByteBuffer internalNioBuffer(int,int)>(v, 0);
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer put(java.nio.ByteBuffer)>(v);
virtualinvoke v.<io.netty.buffer.ByteBuf: boolean release()>();
label:
exitmonitor v;
label:
return v;
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long networkBIO>;
v = staticinvoke <io.netty.internal.tcnative.SSL: int bioFlushByteBuffer(long)>(v);
if v > 0 goto label;
v = <javax.net.ssl.SSLEngineResult$HandshakeStatus: javax.net.ssl.SSLEngineResult$HandshakeStatus NOT_HANDSHAKING>;
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: javax.net.ssl.SSLEngineResult newResultMayFinishHandshake(javax.net.ssl.SSLEngineResult$HandshakeStatus,int,int)>(v, 0, 0);
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long networkBIO>;
staticinvoke <io.netty.internal.tcnative.SSL: void bioClearByteBuffer(long)>(v);
if v != null goto label;
v = virtualinvoke v.<java.nio.ByteBuffer: int position()>();
v = v + v;
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer position(int)>(v);
goto label;
label:
v = <io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean $assertionsDisabled>;
if v != 0 goto label;
v = virtualinvoke v.<io.netty.buffer.ByteBuf: int readableBytes()>();
v = virtualinvoke v.<java.nio.ByteBuffer: int remaining()>();
if v <= v goto label;
v = new java.lang.AssertionError;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.nio.ByteBuffer,io.netty.buffer.ByteBuf)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("The destination buffer \u didn\'t have enough remaining space to hold the encrypted content in \u0001");
specialinvoke v.<java.lang.AssertionError: void <init>(java.lang.Object)>(v);
throw v;
label:
v = virtualinvoke v.<io.netty.buffer.ByteBuf: int readerIndex()>();
v = virtualinvoke v.<io.netty.buffer.ByteBuf: java.nio.ByteBuffer internalNioBuffer(int,int)>(v, v);
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer put(java.nio.ByteBuffer)>(v);
virtualinvoke v.<io.netty.buffer.ByteBuf: boolean release()>();
label:
exitmonitor v;
label:
return v;
label:
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean doSSLShutdown()>();
if v != 0 goto label;
v = <javax.net.ssl.SSLEngineResult$HandshakeStatus: javax.net.ssl.SSLEngineResult$HandshakeStatus NOT_HANDSHAKING>;
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: javax.net.ssl.SSLEngineResult newResultMayFinishHandshake(javax.net.ssl.SSLEngineResult$HandshakeStatus,int,int)>(v, 0, v);
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long networkBIO>;
staticinvoke <io.netty.internal.tcnative.SSL: void bioClearByteBuffer(long)>(v);
if v != null goto label;
v = virtualinvoke v.<java.nio.ByteBuffer: int position()>();
v = v + v;
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer position(int)>(v);
goto label;
label:
v = <io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean $assertionsDisabled>;
if v != 0 goto label;
v = virtualinvoke v.<io.netty.buffer.ByteBuf: int readableBytes()>();
v = virtualinvoke v.<java.nio.ByteBuffer: int remaining()>();
if v <= v goto label;
v = new java.lang.AssertionError;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.nio.ByteBuffer,io.netty.buffer.ByteBuf)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("The destination buffer \u didn\'t have enough remaining space to hold the encrypted content in \u0001");
specialinvoke v.<java.lang.AssertionError: void <init>(java.lang.Object)>(v);
throw v;
label:
v = virtualinvoke v.<io.netty.buffer.ByteBuf: int readerIndex()>();
v = virtualinvoke v.<io.netty.buffer.ByteBuf: java.nio.ByteBuffer internalNioBuffer(int,int)>(v, v);
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer put(java.nio.ByteBuffer)>(v);
virtualinvoke v.<io.netty.buffer.ByteBuf: boolean release()>();
label:
exitmonitor v;
label:
return v;
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long networkBIO>;
v = staticinvoke <io.netty.internal.tcnative.SSL: int bioLengthByteBuffer(long)>(v);
v = v - v;
v = <javax.net.ssl.SSLEngineResult$HandshakeStatus: javax.net.ssl.SSLEngineResult$HandshakeStatus NEED_WRAP>;
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: javax.net.ssl.SSLEngineResult newResultMayFinishHandshake(javax.net.ssl.SSLEngineResult$HandshakeStatus,int,int)>(v, 0, v);
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long networkBIO>;
staticinvoke <io.netty.internal.tcnative.SSL: void bioClearByteBuffer(long)>(v);
if v != null goto label;
v = virtualinvoke v.<java.nio.ByteBuffer: int position()>();
v = v + v;
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer position(int)>(v);
goto label;
label:
v = <io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean $assertionsDisabled>;
if v != 0 goto label;
v = virtualinvoke v.<io.netty.buffer.ByteBuf: int readableBytes()>();
v = virtualinvoke v.<java.nio.ByteBuffer: int remaining()>();
if v <= v goto label;
v = new java.lang.AssertionError;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.nio.ByteBuffer,io.netty.buffer.ByteBuf)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("The destination buffer \u didn\'t have enough remaining space to hold the encrypted content in \u0001");
specialinvoke v.<java.lang.AssertionError: void <init>(java.lang.Object)>(v);
throw v;
label:
v = virtualinvoke v.<io.netty.buffer.ByteBuf: int readerIndex()>();
v = virtualinvoke v.<io.netty.buffer.ByteBuf: java.nio.ByteBuffer internalNioBuffer(int,int)>(v, v);
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer put(java.nio.ByteBuffer)>(v);
virtualinvoke v.<io.netty.buffer.ByteBuf: boolean release()>();
label:
exitmonitor v;
label:
return v;
label:
v = <javax.net.ssl.SSLEngineResult$HandshakeStatus: javax.net.ssl.SSLEngineResult$HandshakeStatus NOT_HANDSHAKING>;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: io.netty.handler.ssl.ReferenceCountedOpenSslEngine$HandshakeState handshakeState>;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: io.netty.handler.ssl.ReferenceCountedOpenSslEngine$HandshakeState handshakeState>;
v = <io.netty.handler.ssl.ReferenceCountedOpenSslEngine$HandshakeState: io.netty.handler.ssl.ReferenceCountedOpenSslEngine$HandshakeState FINISHED>;
if v == v goto label;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: io.netty.handler.ssl.ReferenceCountedOpenSslEngine$HandshakeState handshakeState>;
v = <io.netty.handler.ssl.ReferenceCountedOpenSslEngine$HandshakeState: io.netty.handler.ssl.ReferenceCountedOpenSslEngine$HandshakeState STARTED_EXPLICITLY>;
if v == v goto label;
v = <io.netty.handler.ssl.ReferenceCountedOpenSslEngine$HandshakeState: io.netty.handler.ssl.ReferenceCountedOpenSslEngine$HandshakeState STARTED_IMPLICITLY>;
v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: io.netty.handler.ssl.ReferenceCountedOpenSslEngine$HandshakeState handshakeState> = v;
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long networkBIO>;
v = staticinvoke <io.netty.internal.tcnative.SSL: int bioFlushByteBuffer(long)>(v);
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: java.lang.Throwable pendingException>;
if v == null goto label;
if v <= 0 goto label;
v = <javax.net.ssl.SSLEngineResult$HandshakeStatus: javax.net.ssl.SSLEngineResult$HandshakeStatus NEED_WRAP>;
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: javax.net.ssl.SSLEngineResult newResult(javax.net.ssl.SSLEngineResult$HandshakeStatus,int,int)>(v, 0, v);
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long networkBIO>;
staticinvoke <io.netty.internal.tcnative.SSL: void bioClearByteBuffer(long)>(v);
if v != null goto label;
v = virtualinvoke v.<java.nio.ByteBuffer: int position()>();
v = v + v;
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer position(int)>(v);
goto label;
label:
v = <io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean $assertionsDisabled>;
if v != 0 goto label;
v = virtualinvoke v.<io.netty.buffer.ByteBuf: int readableBytes()>();
v = virtualinvoke v.<java.nio.ByteBuffer: int remaining()>();
if v <= v goto label;
v = new java.lang.AssertionError;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.nio.ByteBuffer,io.netty.buffer.ByteBuf)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("The destination buffer \u didn\'t have enough remaining space to hold the encrypted content in \u0001");
specialinvoke v.<java.lang.AssertionError: void <init>(java.lang.Object)>(v);
throw v;
label:
v = virtualinvoke v.<io.netty.buffer.ByteBuf: int readerIndex()>();
v = virtualinvoke v.<io.netty.buffer.ByteBuf: java.nio.ByteBuffer internalNioBuffer(int,int)>(v, v);
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer put(java.nio.ByteBuffer)>(v);
virtualinvoke v.<io.netty.buffer.ByteBuf: boolean release()>();
label:
exitmonitor v;
label:
return v;
label:
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: javax.net.ssl.SSLEngineResult$HandshakeStatus handshakeException()>();
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: javax.net.ssl.SSLEngineResult newResult(javax.net.ssl.SSLEngineResult$HandshakeStatus,int,int)>(v, 0, 0);
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long networkBIO>;
staticinvoke <io.netty.internal.tcnative.SSL: void bioClearByteBuffer(long)>(v);
if v != null goto label;
v = virtualinvoke v.<java.nio.ByteBuffer: int position()>();
v = v + v;
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer position(int)>(v);
goto label;
label:
v = <io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean $assertionsDisabled>;
if v != 0 goto label;
v = virtualinvoke v.<io.netty.buffer.ByteBuf: int readableBytes()>();
v = virtualinvoke v.<java.nio.ByteBuffer: int remaining()>();
if v <= v goto label;
v = new java.lang.AssertionError;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.nio.ByteBuffer,io.netty.buffer.ByteBuf)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("The destination buffer \u didn\'t have enough remaining space to hold the encrypted content in \u0001");
specialinvoke v.<java.lang.AssertionError: void <init>(java.lang.Object)>(v);
throw v;
label:
v = virtualinvoke v.<io.netty.buffer.ByteBuf: int readerIndex()>();
v = virtualinvoke v.<io.netty.buffer.ByteBuf: java.nio.ByteBuffer internalNioBuffer(int,int)>(v, v);
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer put(java.nio.ByteBuffer)>(v);
virtualinvoke v.<io.netty.buffer.ByteBuf: boolean release()>();
label:
exitmonitor v;
label:
return v;
label:
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: javax.net.ssl.SSLEngineResult$HandshakeStatus handshake()>();
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long networkBIO>;
v = staticinvoke <io.netty.internal.tcnative.SSL: int bioLengthByteBuffer(long)>(v);
v = v - v;
v = <javax.net.ssl.SSLEngineResult$HandshakeStatus: javax.net.ssl.SSLEngineResult$HandshakeStatus NEED_TASK>;
if v != v goto label;
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: javax.net.ssl.SSLEngineResult newResult(javax.net.ssl.SSLEngineResult$HandshakeStatus,int,int)>(v, 0, v);
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long networkBIO>;
staticinvoke <io.netty.internal.tcnative.SSL: void bioClearByteBuffer(long)>(v);
if v != null goto label;
v = virtualinvoke v.<java.nio.ByteBuffer: int position()>();
v = v + v;
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer position(int)>(v);
goto label;
label:
v = <io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean $assertionsDisabled>;
if v != 0 goto label;
v = virtualinvoke v.<io.netty.buffer.ByteBuf: int readableBytes()>();
v = virtualinvoke v.<java.nio.ByteBuffer: int remaining()>();
if v <= v goto label;
v = new java.lang.AssertionError;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.nio.ByteBuffer,io.netty.buffer.ByteBuf)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("The destination buffer \u didn\'t have enough remaining space to hold the encrypted content in \u0001");
specialinvoke v.<java.lang.AssertionError: void <init>(java.lang.Object)>(v);
throw v;
label:
v = virtualinvoke v.<io.netty.buffer.ByteBuf: int readerIndex()>();
v = virtualinvoke v.<io.netty.buffer.ByteBuf: java.nio.ByteBuffer internalNioBuffer(int,int)>(v, v);
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer put(java.nio.ByteBuffer)>(v);
virtualinvoke v.<io.netty.buffer.ByteBuf: boolean release()>();
label:
exitmonitor v;
label:
return v;
label:
if v <= 0 goto label;
v = <javax.net.ssl.SSLEngineResult$HandshakeStatus: javax.net.ssl.SSLEngineResult$HandshakeStatus FINISHED>;
if v == v goto label;
if v != v goto label;
v = <javax.net.ssl.SSLEngineResult$HandshakeStatus: javax.net.ssl.SSLEngineResult$HandshakeStatus NEED_WRAP>;
goto label;
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long networkBIO>;
v = staticinvoke <io.netty.internal.tcnative.SSL: int bioLengthNonApplication(long)>(v);
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: javax.net.ssl.SSLEngineResult$HandshakeStatus getHandshakeStatus(int)>(v);
goto label;
label:
v = <javax.net.ssl.SSLEngineResult$HandshakeStatus: javax.net.ssl.SSLEngineResult$HandshakeStatus FINISHED>;
label:
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: javax.net.ssl.SSLEngineResult$HandshakeStatus mayFinishHandshake(javax.net.ssl.SSLEngineResult$HandshakeStatus)>(v);
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: javax.net.ssl.SSLEngineResult newResult(javax.net.ssl.SSLEngineResult$HandshakeStatus,int,int)>(v, 0, v);
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long networkBIO>;
staticinvoke <io.netty.internal.tcnative.SSL: void bioClearByteBuffer(long)>(v);
if v != null goto label;
v = virtualinvoke v.<java.nio.ByteBuffer: int position()>();
v = v + v;
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer position(int)>(v);
goto label;
label:
v = <io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean $assertionsDisabled>;
if v != 0 goto label;
v = virtualinvoke v.<io.netty.buffer.ByteBuf: int readableBytes()>();
v = virtualinvoke v.<java.nio.ByteBuffer: int remaining()>();
if v <= v goto label;
v = new java.lang.AssertionError;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.nio.ByteBuffer,io.netty.buffer.ByteBuf)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("The destination buffer \u didn\'t have enough remaining space to hold the encrypted content in \u0001");
specialinvoke v.<java.lang.AssertionError: void <init>(java.lang.Object)>(v);
throw v;
label:
v = virtualinvoke v.<io.netty.buffer.ByteBuf: int readerIndex()>();
v = virtualinvoke v.<io.netty.buffer.ByteBuf: java.nio.ByteBuffer internalNioBuffer(int,int)>(v, v);
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer put(java.nio.ByteBuffer)>(v);
virtualinvoke v.<io.netty.buffer.ByteBuf: boolean release()>();
label:
exitmonitor v;
label:
return v;
label:
v = <javax.net.ssl.SSLEngineResult$HandshakeStatus: javax.net.ssl.SSLEngineResult$HandshakeStatus NEED_UNWRAP>;
if v != v goto label;
v = virtualinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean isOutboundDone()>();
if v == 0 goto label;
v = <io.netty.handler.ssl.ReferenceCountedOpenSslEngine: javax.net.ssl.SSLEngineResult NEED_UNWRAP_CLOSED>;
goto label;
label:
v = <io.netty.handler.ssl.ReferenceCountedOpenSslEngine: javax.net.ssl.SSLEngineResult NEED_UNWRAP_OK>;
label:
v = v;
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long networkBIO>;
staticinvoke <io.netty.internal.tcnative.SSL: void bioClearByteBuffer(long)>(v);
if v != null goto label;
v = virtualinvoke v.<java.nio.ByteBuffer: int position()>();
v = v + v;
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer position(int)>(v);
goto label;
label:
v = <io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean $assertionsDisabled>;
if v != 0 goto label;
v = virtualinvoke v.<io.netty.buffer.ByteBuf: int readableBytes()>();
v = virtualinvoke v.<java.nio.ByteBuffer: int remaining()>();
if v <= v goto label;
v = new java.lang.AssertionError;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.nio.ByteBuffer,io.netty.buffer.ByteBuf)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("The destination buffer \u didn\'t have enough remaining space to hold the encrypted content in \u0001");
specialinvoke v.<java.lang.AssertionError: void <init>(java.lang.Object)>(v);
throw v;
label:
v = virtualinvoke v.<io.netty.buffer.ByteBuf: int readerIndex()>();
v = virtualinvoke v.<io.netty.buffer.ByteBuf: java.nio.ByteBuffer internalNioBuffer(int,int)>(v, v);
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer put(java.nio.ByteBuffer)>(v);
virtualinvoke v.<io.netty.buffer.ByteBuf: boolean release()>();
label:
exitmonitor v;
label:
return v;
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean outboundClosed>;
if v == 0 goto label;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long networkBIO>;
v = staticinvoke <io.netty.internal.tcnative.SSL: int bioFlushByteBuffer(long)>(v);
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: javax.net.ssl.SSLEngineResult newResultMayFinishHandshake(javax.net.ssl.SSLEngineResult$HandshakeStatus,int,int)>(v, 0, v);
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long networkBIO>;
staticinvoke <io.netty.internal.tcnative.SSL: void bioClearByteBuffer(long)>(v);
if v != null goto label;
v = virtualinvoke v.<java.nio.ByteBuffer: int position()>();
v = v + v;
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer position(int)>(v);
goto label;
label:
v = <io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean $assertionsDisabled>;
if v != 0 goto label;
v = virtualinvoke v.<io.netty.buffer.ByteBuf: int readableBytes()>();
v = virtualinvoke v.<java.nio.ByteBuffer: int remaining()>();
if v <= v goto label;
v = new java.lang.AssertionError;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.nio.ByteBuffer,io.netty.buffer.ByteBuf)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("The destination buffer \u didn\'t have enough remaining space to hold the encrypted content in \u0001");
specialinvoke v.<java.lang.AssertionError: void <init>(java.lang.Object)>(v);
throw v;
label:
v = virtualinvoke v.<io.netty.buffer.ByteBuf: int readerIndex()>();
v = virtualinvoke v.<io.netty.buffer.ByteBuf: java.nio.ByteBuffer internalNioBuffer(int,int)>(v, v);
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer put(java.nio.ByteBuffer)>(v);
virtualinvoke v.<io.netty.buffer.ByteBuf: boolean release()>();
label:
exitmonitor v;
label:
return v;
label:
v = v + v;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean jdkCompatibilityMode>;
if v != 0 goto label;
v = <io.netty.handler.ssl.ReferenceCountedOpenSslEngine$HandshakeState: io.netty.handler.ssl.ReferenceCountedOpenSslEngine$HandshakeState FINISHED>;
if v == v goto label;
label:
v = 0;
v = v;
label:
if v >= v goto label;
v = v[v];
if v != null goto label;
v = new java.lang.IllegalArgumentException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("srcs[\u] is null");
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>(v);
throw v;
label:
v = <io.netty.handler.ssl.ReferenceCountedOpenSslEngine: int MAX_PLAINTEXT_LENGTH>;
if v == v goto label;
v = virtualinvoke v.<java.nio.ByteBuffer: int remaining()>();
v = v + v;
v = <io.netty.handler.ssl.ReferenceCountedOpenSslEngine: int MAX_PLAINTEXT_LENGTH>;
if v > v goto label;
if v >= 0 goto label;
label:
v = <io.netty.handler.ssl.ReferenceCountedOpenSslEngine: int MAX_PLAINTEXT_LENGTH>;
label:
v = v + 1;
goto label;
label:
v = virtualinvoke v.<java.nio.ByteBuffer: int remaining()>();
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean isBytesAvailableEnoughForWrap(int,int,int)>(v, v, 1);
if v != 0 goto label;
v = new javax.net.ssl.SSLEngineResult;
v = <javax.net.ssl.SSLEngineResult$Status: javax.net.ssl.SSLEngineResult$Status BUFFER_OVERFLOW>;
v = virtualinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: javax.net.ssl.SSLEngineResult$HandshakeStatus getHandshakeStatus()>();
specialinvoke v.<javax.net.ssl.SSLEngineResult: void <init>(javax.net.ssl.SSLEngineResult$Status,javax.net.ssl.SSLEngineResult$HandshakeStatus,int,int)>(v, v, 0, 0);
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long networkBIO>;
staticinvoke <io.netty.internal.tcnative.SSL: void bioClearByteBuffer(long)>(v);
if v != null goto label;
v = virtualinvoke v.<java.nio.ByteBuffer: int position()>();
v = v + v;
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer position(int)>(v);
goto label;
label:
v = <io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean $assertionsDisabled>;
if v != 0 goto label;
v = virtualinvoke v.<io.netty.buffer.ByteBuf: int readableBytes()>();
v = virtualinvoke v.<java.nio.ByteBuffer: int remaining()>();
if v <= v goto label;
v = new java.lang.AssertionError;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.nio.ByteBuffer,io.netty.buffer.ByteBuf)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("The destination buffer \u didn\'t have enough remaining space to hold the encrypted content in \u0001");
specialinvoke v.<java.lang.AssertionError: void <init>(java.lang.Object)>(v);
throw v;
label:
v = virtualinvoke v.<io.netty.buffer.ByteBuf: int readerIndex()>();
v = virtualinvoke v.<io.netty.buffer.ByteBuf: java.nio.ByteBuffer internalNioBuffer(int,int)>(v, v);
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer put(java.nio.ByteBuffer)>(v);
virtualinvoke v.<io.netty.buffer.ByteBuf: boolean release()>();
label:
exitmonitor v;
label:
return v;
label:
v = 0;
v = <io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean $assertionsDisabled>;
if v != 0 goto label;
if v == 0 goto label;
v = new java.lang.AssertionError;
specialinvoke v.<java.lang.AssertionError: void <init>()>();
throw v;
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long networkBIO>;
v = staticinvoke <io.netty.internal.tcnative.SSL: int bioFlushByteBuffer(long)>(v);
if v <= 0 goto label;
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: javax.net.ssl.SSLEngineResult newResultMayFinishHandshake(javax.net.ssl.SSLEngineResult$HandshakeStatus,int,int)>(v, 0, v);
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long networkBIO>;
staticinvoke <io.netty.internal.tcnative.SSL: void bioClearByteBuffer(long)>(v);
if v != null goto label;
v = virtualinvoke v.<java.nio.ByteBuffer: int position()>();
v = v + v;
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer position(int)>(v);
goto label;
label:
v = <io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean $assertionsDisabled>;
if v != 0 goto label;
v = virtualinvoke v.<io.netty.buffer.ByteBuf: int readableBytes()>();
v = virtualinvoke v.<java.nio.ByteBuffer: int remaining()>();
if v <= v goto label;
v = new java.lang.AssertionError;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.nio.ByteBuffer,io.netty.buffer.ByteBuf)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("The destination buffer \u didn\'t have enough remaining space to hold the encrypted content in \u0001");
specialinvoke v.<java.lang.AssertionError: void <init>(java.lang.Object)>(v);
throw v;
label:
v = virtualinvoke v.<io.netty.buffer.ByteBuf: int readerIndex()>();
v = virtualinvoke v.<io.netty.buffer.ByteBuf: java.nio.ByteBuffer internalNioBuffer(int,int)>(v, v);
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer put(java.nio.ByteBuffer)>(v);
virtualinvoke v.<io.netty.buffer.ByteBuf: boolean release()>();
label:
exitmonitor v;
label:
return v;
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: java.lang.Throwable pendingException>;
if v == null goto label;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: java.lang.Throwable pendingException>;
v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: java.lang.Throwable pendingException> = null;
virtualinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: void shutdown()>();
v = new javax.net.ssl.SSLException;
specialinvoke v.<javax.net.ssl.SSLException: void <init>(java.lang.Throwable)>(v);
throw v;
label:
if v >= v goto label;
v = v[v];
v = virtualinvoke v.<java.nio.ByteBuffer: int remaining()>();
if v == 0 goto label;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean jdkCompatibilityMode>;
if v == 0 goto label;
v = <io.netty.handler.ssl.ReferenceCountedOpenSslEngine: int MAX_PLAINTEXT_LENGTH>;
v = v - v;
v = staticinvoke <java.lang.Math: int min(int,int)>(v, v);
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: int writePlaintextData(java.nio.ByteBuffer,int)>(v, v);
goto label;
label:
v = virtualinvoke v.<java.nio.ByteBuffer: int remaining()>();
v = v - v;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: int maxWrapOverhead>;
v = v - v;
if v > 0 goto label;
v = new javax.net.ssl.SSLEngineResult;
v = <javax.net.ssl.SSLEngineResult$Status: javax.net.ssl.SSLEngineResult$Status BUFFER_OVERFLOW>;
v = virtualinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: javax.net.ssl.SSLEngineResult$HandshakeStatus getHandshakeStatus()>();
specialinvoke v.<javax.net.ssl.SSLEngineResult: void <init>(javax.net.ssl.SSLEngineResult$Status,javax.net.ssl.SSLEngineResult$HandshakeStatus,int,int)>(v, v, v, v);
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long networkBIO>;
staticinvoke <io.netty.internal.tcnative.SSL: void bioClearByteBuffer(long)>(v);
if v != null goto label;
v = virtualinvoke v.<java.nio.ByteBuffer: int position()>();
v = v + v;
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer position(int)>(v);
goto label;
label:
v = <io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean $assertionsDisabled>;
if v != 0 goto label;
v = virtualinvoke v.<io.netty.buffer.ByteBuf: int readableBytes()>();
v = virtualinvoke v.<java.nio.ByteBuffer: int remaining()>();
if v <= v goto label;
v = new java.lang.AssertionError;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.nio.ByteBuffer,io.netty.buffer.ByteBuf)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("The destination buffer \u didn\'t have enough remaining space to hold the encrypted content in \u0001");
specialinvoke v.<java.lang.AssertionError: void <init>(java.lang.Object)>(v);
throw v;
label:
v = virtualinvoke v.<io.netty.buffer.ByteBuf: int readerIndex()>();
v = virtualinvoke v.<io.netty.buffer.ByteBuf: java.nio.ByteBuffer internalNioBuffer(int,int)>(v, v);
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer put(java.nio.ByteBuffer)>(v);
virtualinvoke v.<io.netty.buffer.ByteBuf: boolean release()>();
label:
exitmonitor v;
label:
return v;
label:
v = staticinvoke <java.lang.Math: int min(int,int)>(v, v);
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: int writePlaintextData(java.nio.ByteBuffer,int)>(v, v);
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long networkBIO>;
v = staticinvoke <io.netty.internal.tcnative.SSL: int bioLengthByteBuffer(long)>(v);
v = v - v;
v = v + v;
v = v;
if v <= 0 goto label;
v = v + v;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean jdkCompatibilityMode>;
if v != 0 goto label;
v = virtualinvoke v.<java.nio.ByteBuffer: int remaining()>();
if v != v goto label;
label:
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: javax.net.ssl.SSLEngineResult newResultMayFinishHandshake(javax.net.ssl.SSLEngineResult$HandshakeStatus,int,int)>(v, v, v);
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long networkBIO>;
staticinvoke <io.netty.internal.tcnative.SSL: void bioClearByteBuffer(long)>(v);
if v != null goto label;
v = virtualinvoke v.<java.nio.ByteBuffer: int position()>();
v = v + v;
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer position(int)>(v);
goto label;
label:
v = <io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean $assertionsDisabled>;
if v != 0 goto label;
v = virtualinvoke v.<io.netty.buffer.ByteBuf: int readableBytes()>();
v = virtualinvoke v.<java.nio.ByteBuffer: int remaining()>();
if v <= v goto label;
v = new java.lang.AssertionError;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.nio.ByteBuffer,io.netty.buffer.ByteBuf)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("The destination buffer \u didn\'t have enough remaining space to hold the encrypted content in \u0001");
specialinvoke v.<java.lang.AssertionError: void <init>(java.lang.Object)>(v);
throw v;
label:
v = virtualinvoke v.<io.netty.buffer.ByteBuf: int readerIndex()>();
v = virtualinvoke v.<io.netty.buffer.ByteBuf: java.nio.ByteBuffer internalNioBuffer(int,int)>(v, v);
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer put(java.nio.ByteBuffer)>(v);
virtualinvoke v.<io.netty.buffer.ByteBuf: boolean release()>();
label:
exitmonitor v;
label:
return v;
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long ssl>;
v = staticinvoke <io.netty.internal.tcnative.SSL: int getError(long,int)>(v, v);
v = <io.netty.internal.tcnative.SSL: int SSL_ERROR_ZERO_RETURN>;
if v != v goto label;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean receivedShutdown>;
if v != 0 goto label;
specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: void closeAll()>();
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long networkBIO>;
v = staticinvoke <io.netty.internal.tcnative.SSL: int bioLengthByteBuffer(long)>(v);
v = v - v;
v = v + v;
v = <javax.net.ssl.SSLEngineResult$HandshakeStatus: javax.net.ssl.SSLEngineResult$HandshakeStatus FINISHED>;
if v == v goto label;
v = virtualinvoke v.<java.nio.ByteBuffer: int remaining()>();
if v != v goto label;
v = <javax.net.ssl.SSLEngineResult$HandshakeStatus: javax.net.ssl.SSLEngineResult$HandshakeStatus NEED_WRAP>;
goto label;
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long networkBIO>;
v = staticinvoke <io.netty.internal.tcnative.SSL: int bioLengthNonApplication(long)>(v);
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: javax.net.ssl.SSLEngineResult$HandshakeStatus getHandshakeStatus(int)>(v);
goto label;
label:
v = <javax.net.ssl.SSLEngineResult$HandshakeStatus: javax.net.ssl.SSLEngineResult$HandshakeStatus FINISHED>;
label:
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: javax.net.ssl.SSLEngineResult$HandshakeStatus mayFinishHandshake(javax.net.ssl.SSLEngineResult$HandshakeStatus)>(v);
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: javax.net.ssl.SSLEngineResult newResult(javax.net.ssl.SSLEngineResult$HandshakeStatus,int,int)>(v, v, v);
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long networkBIO>;
staticinvoke <io.netty.internal.tcnative.SSL: void bioClearByteBuffer(long)>(v);
if v != null goto label;
v = virtualinvoke v.<java.nio.ByteBuffer: int position()>();
v = v + v;
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer position(int)>(v);
goto label;
label:
v = <io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean $assertionsDisabled>;
if v != 0 goto label;
v = virtualinvoke v.<io.netty.buffer.ByteBuf: int readableBytes()>();
v = virtualinvoke v.<java.nio.ByteBuffer: int remaining()>();
if v <= v goto label;
v = new java.lang.AssertionError;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.nio.ByteBuffer,io.netty.buffer.ByteBuf)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("The destination buffer \u didn\'t have enough remaining space to hold the encrypted content in \u0001");
specialinvoke v.<java.lang.AssertionError: void <init>(java.lang.Object)>(v);
throw v;
label:
v = virtualinvoke v.<io.netty.buffer.ByteBuf: int readerIndex()>();
v = virtualinvoke v.<io.netty.buffer.ByteBuf: java.nio.ByteBuffer internalNioBuffer(int,int)>(v, v);
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer put(java.nio.ByteBuffer)>(v);
virtualinvoke v.<io.netty.buffer.ByteBuf: boolean release()>();
label:
exitmonitor v;
label:
return v;
label:
v = <javax.net.ssl.SSLEngineResult$HandshakeStatus: javax.net.ssl.SSLEngineResult$HandshakeStatus NOT_HANDSHAKING>;
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: javax.net.ssl.SSLEngineResult newResult(javax.net.ssl.SSLEngineResult$HandshakeStatus,int,int)>(v, v, v);
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long networkBIO>;
staticinvoke <io.netty.internal.tcnative.SSL: void bioClearByteBuffer(long)>(v);
if v != null goto label;
v = virtualinvoke v.<java.nio.ByteBuffer: int position()>();
v = v + v;
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer position(int)>(v);
goto label;
label:
v = <io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean $assertionsDisabled>;
if v != 0 goto label;
v = virtualinvoke v.<io.netty.buffer.ByteBuf: int readableBytes()>();
v = virtualinvoke v.<java.nio.ByteBuffer: int remaining()>();
if v <= v goto label;
v = new java.lang.AssertionError;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.nio.ByteBuffer,io.netty.buffer.ByteBuf)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("The destination buffer \u didn\'t have enough remaining space to hold the encrypted content in \u0001");
specialinvoke v.<java.lang.AssertionError: void <init>(java.lang.Object)>(v);
throw v;
label:
v = virtualinvoke v.<io.netty.buffer.ByteBuf: int readerIndex()>();
v = virtualinvoke v.<io.netty.buffer.ByteBuf: java.nio.ByteBuffer internalNioBuffer(int,int)>(v, v);
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer put(java.nio.ByteBuffer)>(v);
virtualinvoke v.<io.netty.buffer.ByteBuf: boolean release()>();
label:
exitmonitor v;
label:
return v;
label:
v = <io.netty.internal.tcnative.SSL: int SSL_ERROR_WANT_READ>;
if v != v goto label;
v = <javax.net.ssl.SSLEngineResult$HandshakeStatus: javax.net.ssl.SSLEngineResult$HandshakeStatus NEED_UNWRAP>;
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: javax.net.ssl.SSLEngineResult newResult(javax.net.ssl.SSLEngineResult$HandshakeStatus,int,int)>(v, v, v);
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long networkBIO>;
staticinvoke <io.netty.internal.tcnative.SSL: void bioClearByteBuffer(long)>(v);
if v != null goto label;
v = virtualinvoke v.<java.nio.ByteBuffer: int position()>();
v = v + v;
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer position(int)>(v);
goto label;
label:
v = <io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean $assertionsDisabled>;
if v != 0 goto label;
v = virtualinvoke v.<io.netty.buffer.ByteBuf: int readableBytes()>();
v = virtualinvoke v.<java.nio.ByteBuffer: int remaining()>();
if v <= v goto label;
v = new java.lang.AssertionError;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.nio.ByteBuffer,io.netty.buffer.ByteBuf)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("The destination buffer \u didn\'t have enough remaining space to hold the encrypted content in \u0001");
specialinvoke v.<java.lang.AssertionError: void <init>(java.lang.Object)>(v);
throw v;
label:
v = virtualinvoke v.<io.netty.buffer.ByteBuf: int readerIndex()>();
v = virtualinvoke v.<io.netty.buffer.ByteBuf: java.nio.ByteBuffer internalNioBuffer(int,int)>(v, v);
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer put(java.nio.ByteBuffer)>(v);
virtualinvoke v.<io.netty.buffer.ByteBuf: boolean release()>();
label:
exitmonitor v;
label:
return v;
label:
v = <io.netty.internal.tcnative.SSL: int SSL_ERROR_WANT_WRITE>;
if v != v goto label;
if v <= 0 goto label;
v = <javax.net.ssl.SSLEngineResult$HandshakeStatus: javax.net.ssl.SSLEngineResult$HandshakeStatus NEED_WRAP>;
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: javax.net.ssl.SSLEngineResult newResult(javax.net.ssl.SSLEngineResult$HandshakeStatus,int,int)>(v, v, v);
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long networkBIO>;
staticinvoke <io.netty.internal.tcnative.SSL: void bioClearByteBuffer(long)>(v);
if v != null goto label;
v = virtualinvoke v.<java.nio.ByteBuffer: int position()>();
v = v + v;
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer position(int)>(v);
goto label;
label:
v = <io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean $assertionsDisabled>;
if v != 0 goto label;
v = virtualinvoke v.<io.netty.buffer.ByteBuf: int readableBytes()>();
v = virtualinvoke v.<java.nio.ByteBuffer: int remaining()>();
if v <= v goto label;
v = new java.lang.AssertionError;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.nio.ByteBuffer,io.netty.buffer.ByteBuf)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("The destination buffer \u didn\'t have enough remaining space to hold the encrypted content in \u0001");
specialinvoke v.<java.lang.AssertionError: void <init>(java.lang.Object)>(v);
throw v;
label:
v = virtualinvoke v.<io.netty.buffer.ByteBuf: int readerIndex()>();
v = virtualinvoke v.<io.netty.buffer.ByteBuf: java.nio.ByteBuffer internalNioBuffer(int,int)>(v, v);
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer put(java.nio.ByteBuffer)>(v);
virtualinvoke v.<io.netty.buffer.ByteBuf: boolean release()>();
label:
exitmonitor v;
label:
return v;
label:
v = <javax.net.ssl.SSLEngineResult$Status: javax.net.ssl.SSLEngineResult$Status BUFFER_OVERFLOW>;
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: javax.net.ssl.SSLEngineResult newResult(javax.net.ssl.SSLEngineResult$Status,javax.net.ssl.SSLEngineResult$HandshakeStatus,int,int)>(v, v, v, v);
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long networkBIO>;
staticinvoke <io.netty.internal.tcnative.SSL: void bioClearByteBuffer(long)>(v);
if v != null goto label;
v = virtualinvoke v.<java.nio.ByteBuffer: int position()>();
v = v + v;
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer position(int)>(v);
goto label;
label:
v = <io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean $assertionsDisabled>;
if v != 0 goto label;
v = virtualinvoke v.<io.netty.buffer.ByteBuf: int readableBytes()>();
v = virtualinvoke v.<java.nio.ByteBuffer: int remaining()>();
if v <= v goto label;
v = new java.lang.AssertionError;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.nio.ByteBuffer,io.netty.buffer.ByteBuf)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("The destination buffer \u didn\'t have enough remaining space to hold the encrypted content in \u0001");
specialinvoke v.<java.lang.AssertionError: void <init>(java.lang.Object)>(v);
throw v;
label:
v = virtualinvoke v.<io.netty.buffer.ByteBuf: int readerIndex()>();
v = virtualinvoke v.<io.netty.buffer.ByteBuf: java.nio.ByteBuffer internalNioBuffer(int,int)>(v, v);
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer put(java.nio.ByteBuffer)>(v);
virtualinvoke v.<io.netty.buffer.ByteBuf: boolean release()>();
label:
exitmonitor v;
label:
return v;
label:
v = <io.netty.internal.tcnative.SSL: int SSL_ERROR_WANT_X509_LOOKUP>;
if v == v goto label;
v = <io.netty.internal.tcnative.SSL: int SSL_ERROR_WANT_CERTIFICATE_VERIFY>;
if v == v goto label;
v = <io.netty.internal.tcnative.SSL: int SSL_ERROR_WANT_PRIVATE_KEY_OPERATION>;
if v != v goto label;
label:
v = <javax.net.ssl.SSLEngineResult$HandshakeStatus: javax.net.ssl.SSLEngineResult$HandshakeStatus NEED_TASK>;
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: javax.net.ssl.SSLEngineResult newResult(javax.net.ssl.SSLEngineResult$HandshakeStatus,int,int)>(v, v, v);
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long networkBIO>;
staticinvoke <io.netty.internal.tcnative.SSL: void bioClearByteBuffer(long)>(v);
if v != null goto label;
v = virtualinvoke v.<java.nio.ByteBuffer: int position()>();
v = v + v;
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer position(int)>(v);
goto label;
label:
v = <io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean $assertionsDisabled>;
if v != 0 goto label;
v = virtualinvoke v.<io.netty.buffer.ByteBuf: int readableBytes()>();
v = virtualinvoke v.<java.nio.ByteBuffer: int remaining()>();
if v <= v goto label;
v = new java.lang.AssertionError;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.nio.ByteBuffer,io.netty.buffer.ByteBuf)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("The destination buffer \u didn\'t have enough remaining space to hold the encrypted content in \u0001");
specialinvoke v.<java.lang.AssertionError: void <init>(java.lang.Object)>(v);
throw v;
label:
v = virtualinvoke v.<io.netty.buffer.ByteBuf: int readerIndex()>();
v = virtualinvoke v.<io.netty.buffer.ByteBuf: java.nio.ByteBuffer internalNioBuffer(int,int)>(v, v);
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer put(java.nio.ByteBuffer)>(v);
virtualinvoke v.<io.netty.buffer.ByteBuf: boolean release()>();
label:
exitmonitor v;
label:
return v;
label:
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: javax.net.ssl.SSLException shutdownWithError(java.lang.String,int)>("SSL_write", v);
throw v;
label:
v = v + 1;
goto label;
label:
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: javax.net.ssl.SSLEngineResult newResultMayFinishHandshake(javax.net.ssl.SSLEngineResult$HandshakeStatus,int,int)>(v, v, v);
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long networkBIO>;
staticinvoke <io.netty.internal.tcnative.SSL: void bioClearByteBuffer(long)>(v);
if v != null goto label;
v = virtualinvoke v.<java.nio.ByteBuffer: int position()>();
v = v + v;
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer position(int)>(v);
goto label;
label:
v = <io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean $assertionsDisabled>;
if v != 0 goto label;
v = virtualinvoke v.<io.netty.buffer.ByteBuf: int readableBytes()>();
v = virtualinvoke v.<java.nio.ByteBuffer: int remaining()>();
if v <= v goto label;
v = new java.lang.AssertionError;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.nio.ByteBuffer,io.netty.buffer.ByteBuf)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("The destination buffer \u didn\'t have enough remaining space to hold the encrypted content in \u0001");
specialinvoke v.<java.lang.AssertionError: void <init>(java.lang.Object)>(v);
throw v;
label:
v = virtualinvoke v.<io.netty.buffer.ByteBuf: int readerIndex()>();
v = virtualinvoke v.<io.netty.buffer.ByteBuf: java.nio.ByteBuffer internalNioBuffer(int,int)>(v, v);
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer put(java.nio.ByteBuffer)>(v);
virtualinvoke v.<io.netty.buffer.ByteBuf: boolean release()>();
label:
exitmonitor v;
label:
return v;
label:
v := @caughtexception;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long networkBIO>;
staticinvoke <io.netty.internal.tcnative.SSL: void bioClearByteBuffer(long)>(v);
if v != null goto label;
v = virtualinvoke v.<java.nio.ByteBuffer: int position()>();
v = v + v;
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer position(int)>(v);
goto label;
label:
v = <io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean $assertionsDisabled>;
if v != 0 goto label;
v = virtualinvoke v.<io.netty.buffer.ByteBuf: int readableBytes()>();
v = virtualinvoke v.<java.nio.ByteBuffer: int remaining()>();
if v <= v goto label;
v = new java.lang.AssertionError;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.nio.ByteBuffer,io.netty.buffer.ByteBuf)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("The destination buffer \u didn\'t have enough remaining space to hold the encrypted content in \u0001");
specialinvoke v.<java.lang.AssertionError: void <init>(java.lang.Object)>(v);
throw v;
label:
v = virtualinvoke v.<io.netty.buffer.ByteBuf: int readerIndex()>();
v = virtualinvoke v.<io.netty.buffer.ByteBuf: java.nio.ByteBuffer internalNioBuffer(int,int)>(v, v);
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer put(java.nio.ByteBuffer)>(v);
virtualinvoke v.<io.netty.buffer.ByteBuf: boolean release()>();
label:
throw v;
label:
v := @caughtexception;
exitmonitor v;
throw v;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
private javax.net.ssl.SSLEngineResult newResult(javax.net.ssl.SSLEngineResult$HandshakeStatus, int, int)
{
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
javax.net.ssl.SSLEngineResult v;
int v, v;
javax.net.ssl.SSLEngineResult$HandshakeStatus v;
javax.net.ssl.SSLEngineResult$Status v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v := @parameter: javax.net.ssl.SSLEngineResult$HandshakeStatus;
v := @parameter: int;
v := @parameter: int;
v = <javax.net.ssl.SSLEngineResult$Status: javax.net.ssl.SSLEngineResult$Status OK>;
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: javax.net.ssl.SSLEngineResult newResult(javax.net.ssl.SSLEngineResult$Status,javax.net.ssl.SSLEngineResult$HandshakeStatus,int,int)>(v, v, v, v);
return v;
}
private javax.net.ssl.SSLEngineResult newResult(javax.net.ssl.SSLEngineResult$Status, javax.net.ssl.SSLEngineResult$HandshakeStatus, int, int)
{
javax.net.ssl.SSLEngineResult$HandshakeStatus v, v;
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
javax.net.ssl.SSLEngineResult v, v;
int v, v;
javax.net.ssl.SSLEngineResult$Status v, v;
boolean v, v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v := @parameter: javax.net.ssl.SSLEngineResult$Status;
v := @parameter: javax.net.ssl.SSLEngineResult$HandshakeStatus;
v := @parameter: int;
v := @parameter: int;
v = virtualinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean isOutboundDone()>();
if v == 0 goto label;
v = virtualinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean isInboundDone()>();
if v == 0 goto label;
v = <javax.net.ssl.SSLEngineResult$HandshakeStatus: javax.net.ssl.SSLEngineResult$HandshakeStatus NOT_HANDSHAKING>;
virtualinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: void shutdown()>();
label:
v = new javax.net.ssl.SSLEngineResult;
v = <javax.net.ssl.SSLEngineResult$Status: javax.net.ssl.SSLEngineResult$Status CLOSED>;
specialinvoke v.<javax.net.ssl.SSLEngineResult: void <init>(javax.net.ssl.SSLEngineResult$Status,javax.net.ssl.SSLEngineResult$HandshakeStatus,int,int)>(v, v, v, v);
return v;
label:
v = <javax.net.ssl.SSLEngineResult$HandshakeStatus: javax.net.ssl.SSLEngineResult$HandshakeStatus NEED_TASK>;
if v != v goto label;
v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean needTask> = 1;
label:
v = new javax.net.ssl.SSLEngineResult;
specialinvoke v.<javax.net.ssl.SSLEngineResult: void <init>(javax.net.ssl.SSLEngineResult$Status,javax.net.ssl.SSLEngineResult$HandshakeStatus,int,int)>(v, v, v, v);
return v;
}
private javax.net.ssl.SSLEngineResult newResultMayFinishHandshake(javax.net.ssl.SSLEngineResult$HandshakeStatus, int, int) throws javax.net.ssl.SSLException
{
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
javax.net.ssl.SSLEngineResult v;
int v, v;
javax.net.ssl.SSLEngineResult$HandshakeStatus v, v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v := @parameter: javax.net.ssl.SSLEngineResult$HandshakeStatus;
v := @parameter: int;
v := @parameter: int;
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: javax.net.ssl.SSLEngineResult$HandshakeStatus mayFinishHandshake(javax.net.ssl.SSLEngineResult$HandshakeStatus,int,int)>(v, v, v);
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: javax.net.ssl.SSLEngineResult newResult(javax.net.ssl.SSLEngineResult$HandshakeStatus,int,int)>(v, v, v);
return v;
}
private javax.net.ssl.SSLEngineResult newResultMayFinishHandshake(javax.net.ssl.SSLEngineResult$Status, javax.net.ssl.SSLEngineResult$HandshakeStatus, int, int) throws javax.net.ssl.SSLException
{
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
javax.net.ssl.SSLEngineResult v;
int v, v;
javax.net.ssl.SSLEngineResult$HandshakeStatus v, v;
javax.net.ssl.SSLEngineResult$Status v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v := @parameter: javax.net.ssl.SSLEngineResult$Status;
v := @parameter: javax.net.ssl.SSLEngineResult$HandshakeStatus;
v := @parameter: int;
v := @parameter: int;
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: javax.net.ssl.SSLEngineResult$HandshakeStatus mayFinishHandshake(javax.net.ssl.SSLEngineResult$HandshakeStatus,int,int)>(v, v, v);
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: javax.net.ssl.SSLEngineResult newResult(javax.net.ssl.SSLEngineResult$Status,javax.net.ssl.SSLEngineResult$HandshakeStatus,int,int)>(v, v, v, v);
return v;
}
private javax.net.ssl.SSLException shutdownWithError(java.lang.String, int)
{
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
javax.net.ssl.SSLException v;
int v, v;
java.lang.String v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v := @parameter: java.lang.String;
v := @parameter: int;
v = staticinvoke <io.netty.internal.tcnative.SSL: int getLastErrorNumber()>();
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: javax.net.ssl.SSLException shutdownWithError(java.lang.String,int,int)>(v, v, v);
return v;
}
private javax.net.ssl.SSLException shutdownWithError(java.lang.String, int, int)
{
java.lang.Throwable v, v;
java.lang.Object[] v;
java.lang.Integer v, v;
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
javax.net.ssl.SSLException v;
io.netty.util.internal.logging.InternalLogger v, v;
int v, v;
java.lang.String v, v;
boolean v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v := @parameter: java.lang.String;
v := @parameter: int;
v := @parameter: int;
v = <io.netty.handler.ssl.ReferenceCountedOpenSslEngine: io.netty.util.internal.logging.InternalLogger logger>;
v = interfaceinvoke v.<io.netty.util.internal.logging.InternalLogger: boolean isDebugEnabled()>();
if v == 0 goto label;
v = staticinvoke <io.netty.internal.tcnative.SSL: java.lang.String getErrorString(long)>(v);
v = <io.netty.handler.ssl.ReferenceCountedOpenSslEngine: io.netty.util.internal.logging.InternalLogger logger>;
v = newarray (java.lang.Object)[4];
v[0] = v;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[1] = v;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[2] = v;
v[3] = v;
interfaceinvoke v.<io.netty.util.internal.logging.InternalLogger: void debug(java.lang.String,java.lang.Object[])>("{} failed with {}: OpenSSL error: {} {}", v);
label:
virtualinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: void shutdown()>();
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: javax.net.ssl.SSLException newSSLExceptionForError(int)>(v);
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: java.lang.Throwable pendingException>;
if v == null goto label;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: java.lang.Throwable pendingException>;
virtualinvoke v.<javax.net.ssl.SSLException: java.lang.Throwable initCause(java.lang.Throwable)>(v);
v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: java.lang.Throwable pendingException> = null;
label:
return v;
}
private javax.net.ssl.SSLEngineResult handleUnwrapException(int, int, javax.net.ssl.SSLException) throws javax.net.ssl.SSLException
{
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
javax.net.ssl.SSLEngineResult v;
javax.net.ssl.SSLException v;
int v, v, v, v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v := @parameter: int;
v := @parameter: int;
v := @parameter: javax.net.ssl.SSLException;
v = staticinvoke <io.netty.internal.tcnative.SSL: int getLastErrorNumber()>();
if v == 0 goto label;
v = <io.netty.internal.tcnative.SSL: int SSL_ERROR_SSL>;
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: javax.net.ssl.SSLEngineResult sslReadErrorResult(int,int,int,int)>(v, v, v, v);
return v;
label:
throw v;
}
public final javax.net.ssl.SSLEngineResult unwrap(java.nio.ByteBuffer[], int, int, java.nio.ByteBuffer[], int, int) throws javax.net.ssl.SSLException
{
java.lang.IndexOutOfBoundsException v, v;
byte v, v, v, v, v, v;
long v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
javax.net.ssl.SSLEngineResult$Status v, v, v, v, v, v, v, v, v, v;
io.netty.handler.ssl.ReferenceCountedOpenSslEngine$HandshakeState v, v, v, v, v, v, v;
io.netty.handler.ssl.OpenSslSession v, v;
java.nio.ReadOnlyBufferException v;
javax.net.ssl.SSLEngineResult$HandshakeStatus v, v, v, v;
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
java.nio.ByteBuffer[] v, v;
io.netty.handler.ssl.NotSslRecordException v;
int v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.lang.Object v, v;
javax.net.ssl.SSLException v, v, v;
java.lang.Throwable v, v, v;
java.lang.AssertionError v, v;
javax.net.ssl.SSLEngineResult v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.lang.String v, v, v;
java.nio.ByteBuffer v, v, v, v;
boolean v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
io.netty.buffer.ByteBuf v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v := @parameter: java.nio.ByteBuffer[];
v := @parameter: int;
v := @parameter: int;
v := @parameter: java.nio.ByteBuffer[];
v := @parameter: int;
v := @parameter: int;
staticinvoke <io.netty.util.internal.ObjectUtil: java.lang.Object checkNotNullWithIAE(java.lang.Object,java.lang.String)>(v, "srcs");
v = lengthof v;
if v >= v goto label;
v = v + v;
v = lengthof v;
if v <= v goto label;
label:
v = new java.lang.IndexOutOfBoundsException;
v = lengthof v;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int,int,int)>(v, v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("offset: \u, length: \u (expected: offset <= offset + length <= srcs.length (\u))");
specialinvoke v.<java.lang.IndexOutOfBoundsException: void <init>(java.lang.String)>(v);
throw v;
label:
staticinvoke <io.netty.util.internal.ObjectUtil: java.lang.Object checkNotNullWithIAE(java.lang.Object,java.lang.String)>(v, "dsts");
v = lengthof v;
if v >= v goto label;
v = v + v;
v = lengthof v;
if v <= v goto label;
label:
v = new java.lang.IndexOutOfBoundsException;
v = lengthof v;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int,int,int)>(v, v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("offset: \u, length: \u (expected: offset <= offset + length <= dsts.length (\u))");
specialinvoke v.<java.lang.IndexOutOfBoundsException: void <init>(java.lang.String)>(v);
throw v;
label:
v = 0L;
v = v + v;
v = v;
label:
if v >= v goto label;
v = v[v];
v = staticinvoke <io.netty.util.internal.ObjectUtil: java.lang.Object checkNotNullArrayParam(java.lang.Object,int,java.lang.String)>(v, v, "dsts");
v = virtualinvoke v.<java.nio.ByteBuffer: boolean isReadOnly()>();
if v == 0 goto label;
v = new java.nio.ReadOnlyBufferException;
specialinvoke v.<java.nio.ReadOnlyBufferException: void <init>()>();
throw v;
label:
v = virtualinvoke v.<java.nio.ByteBuffer: int remaining()>();
v = v + v;
v = v + 1;
goto label;
label:
v = v + v;
v = 0L;
v = v;
label:
if v >= v goto label;
v = v[v];
v = staticinvoke <io.netty.util.internal.ObjectUtil: java.lang.Object checkNotNullArrayParam(java.lang.Object,int,java.lang.String)>(v, v, "srcs");
v = virtualinvoke v.<java.nio.ByteBuffer: int remaining()>();
v = v + v;
v = v + 1;
goto label;
label:
entermonitor v;
label:
v = virtualinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean isInboundDone()>();
if v == 0 goto label;
v = virtualinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean isOutboundDone()>();
if v != 0 goto label;
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean isDestroyed()>();
if v == 0 goto label;
label:
v = <io.netty.handler.ssl.ReferenceCountedOpenSslEngine: javax.net.ssl.SSLEngineResult CLOSED_NOT_HANDSHAKING>;
goto label;
label:
v = <io.netty.handler.ssl.ReferenceCountedOpenSslEngine: javax.net.ssl.SSLEngineResult NEED_WRAP_CLOSED>;
label:
exitmonitor v;
label:
return v;
label:
v = <javax.net.ssl.SSLEngineResult$HandshakeStatus: javax.net.ssl.SSLEngineResult$HandshakeStatus NOT_HANDSHAKING>;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: io.netty.handler.ssl.ReferenceCountedOpenSslEngine$HandshakeState handshakeState>;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: io.netty.handler.ssl.ReferenceCountedOpenSslEngine$HandshakeState handshakeState>;
v = <io.netty.handler.ssl.ReferenceCountedOpenSslEngine$HandshakeState: io.netty.handler.ssl.ReferenceCountedOpenSslEngine$HandshakeState FINISHED>;
if v == v goto label;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: io.netty.handler.ssl.ReferenceCountedOpenSslEngine$HandshakeState handshakeState>;
v = <io.netty.handler.ssl.ReferenceCountedOpenSslEngine$HandshakeState: io.netty.handler.ssl.ReferenceCountedOpenSslEngine$HandshakeState STARTED_EXPLICITLY>;
if v == v goto label;
v = <io.netty.handler.ssl.ReferenceCountedOpenSslEngine$HandshakeState: io.netty.handler.ssl.ReferenceCountedOpenSslEngine$HandshakeState STARTED_IMPLICITLY>;
v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: io.netty.handler.ssl.ReferenceCountedOpenSslEngine$HandshakeState handshakeState> = v;
label:
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: javax.net.ssl.SSLEngineResult$HandshakeStatus handshake()>();
v = <javax.net.ssl.SSLEngineResult$HandshakeStatus: javax.net.ssl.SSLEngineResult$HandshakeStatus NEED_TASK>;
if v != v goto label;
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: javax.net.ssl.SSLEngineResult newResult(javax.net.ssl.SSLEngineResult$HandshakeStatus,int,int)>(v, 0, 0);
exitmonitor v;
label:
return v;
label:
v = <javax.net.ssl.SSLEngineResult$HandshakeStatus: javax.net.ssl.SSLEngineResult$HandshakeStatus NEED_WRAP>;
if v != v goto label;
v = <io.netty.handler.ssl.ReferenceCountedOpenSslEngine: javax.net.ssl.SSLEngineResult NEED_WRAP_OK>;
exitmonitor v;
label:
return v;
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean isInboundDone>;
if v == 0 goto label;
v = <io.netty.handler.ssl.ReferenceCountedOpenSslEngine: javax.net.ssl.SSLEngineResult NEED_WRAP_CLOSED>;
exitmonitor v;
label:
return v;
label:
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: int sslPending0()>();
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean jdkCompatibilityMode>;
if v != 0 goto label;
v = <io.netty.handler.ssl.ReferenceCountedOpenSslEngine$HandshakeState: io.netty.handler.ssl.ReferenceCountedOpenSslEngine$HandshakeState FINISHED>;
if v == v goto label;
label:
v = v cmp 5L;
if v >= 0 goto label;
v = <javax.net.ssl.SSLEngineResult$Status: javax.net.ssl.SSLEngineResult$Status BUFFER_UNDERFLOW>;
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: javax.net.ssl.SSLEngineResult newResultMayFinishHandshake(javax.net.ssl.SSLEngineResult$Status,javax.net.ssl.SSLEngineResult$HandshakeStatus,int,int)>(v, v, 0, 0);
exitmonitor v;
label:
return v;
label:
v = staticinvoke <io.netty.handler.ssl.SslUtils: int getEncryptedPacketLength(java.nio.ByteBuffer[],int)>(v, v);
v = (int) -2;
if v != v goto label;
v = new io.netty.handler.ssl.NotSslRecordException;
specialinvoke v.<io.netty.handler.ssl.NotSslRecordException: void <init>(java.lang.String)>("not an SSL/TLS record");
throw v;
label:
v = v - 5;
v = v cmp v;
if v <= 0 goto label;
v = <io.netty.handler.ssl.ReferenceCountedOpenSslEngine: int MAX_RECORD_SIZE>;
if v <= v goto label;
v = new javax.net.ssl.SSLException;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: io.netty.handler.ssl.OpenSslSession session>;
v = interfaceinvoke v.<io.netty.handler.ssl.OpenSslSession: int getApplicationBufferSize()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int,int)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Illegal packet length: \u > \u0001");
specialinvoke v.<javax.net.ssl.SSLException: void <init>(java.lang.String)>(v);
throw v;
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: io.netty.handler.ssl.OpenSslSession session>;
interfaceinvoke v.<io.netty.handler.ssl.OpenSslSession: void tryExpandApplicationBufferSize(int)>(v);
v = <javax.net.ssl.SSLEngineResult$Status: javax.net.ssl.SSLEngineResult$Status BUFFER_OVERFLOW>;
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: javax.net.ssl.SSLEngineResult newResultMayFinishHandshake(javax.net.ssl.SSLEngineResult$Status,javax.net.ssl.SSLEngineResult$HandshakeStatus,int,int)>(v, v, 0, 0);
exitmonitor v;
label:
return v;
label:
v = v cmp v;
if v >= 0 goto label;
v = <javax.net.ssl.SSLEngineResult$Status: javax.net.ssl.SSLEngineResult$Status BUFFER_UNDERFLOW>;
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: javax.net.ssl.SSLEngineResult newResultMayFinishHandshake(javax.net.ssl.SSLEngineResult$Status,javax.net.ssl.SSLEngineResult$HandshakeStatus,int,int)>(v, v, 0, 0);
exitmonitor v;
label:
return v;
label:
v = v cmp 0L;
if v != 0 goto label;
if v > 0 goto label;
v = <javax.net.ssl.SSLEngineResult$Status: javax.net.ssl.SSLEngineResult$Status BUFFER_UNDERFLOW>;
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: javax.net.ssl.SSLEngineResult newResultMayFinishHandshake(javax.net.ssl.SSLEngineResult$Status,javax.net.ssl.SSLEngineResult$HandshakeStatus,int,int)>(v, v, 0, 0);
exitmonitor v;
label:
return v;
label:
v = v cmp 0L;
if v != 0 goto label;
v = <javax.net.ssl.SSLEngineResult$Status: javax.net.ssl.SSLEngineResult$Status BUFFER_OVERFLOW>;
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: javax.net.ssl.SSLEngineResult newResultMayFinishHandshake(javax.net.ssl.SSLEngineResult$Status,javax.net.ssl.SSLEngineResult$HandshakeStatus,int,int)>(v, v, 0, 0);
exitmonitor v;
label:
return v;
label:
v = staticinvoke <java.lang.Math: long min(long,long)>(2147483647L, v);
label:
v = <io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean $assertionsDisabled>;
if v != 0 goto label;
if v < v goto label;
v = new java.lang.AssertionError;
specialinvoke v.<java.lang.AssertionError: void <init>()>();
throw v;
label:
v = <io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean $assertionsDisabled>;
if v != 0 goto label;
v = v cmp 0L;
if v > 0 goto label;
v = new java.lang.AssertionError;
specialinvoke v.<java.lang.AssertionError: void <init>()>();
throw v;
label:
v = 0;
v = 0;
label:
v = v[v];
v = virtualinvoke v.<java.nio.ByteBuffer: int remaining()>();
if v != 0 goto label;
if v > 0 goto label;
v = v + 1;
if v < v goto label;
goto label;
label:
v = null;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long networkBIO>;
v = staticinvoke <io.netty.internal.tcnative.SSL: int bioLengthByteBuffer(long)>(v);
goto label;
label:
v = staticinvoke <java.lang.Math: int min(int,int)>(v, v);
label:
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: io.netty.buffer.ByteBuf writeEncryptedData(java.nio.ByteBuffer,int)>(v, v);
label:
goto label;
label:
v := @caughtexception;
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: javax.net.ssl.SSLEngineResult handleUnwrapException(int,int,javax.net.ssl.SSLException)>(v, v, v);
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long networkBIO>;
staticinvoke <io.netty.internal.tcnative.SSL: void bioClearByteBuffer(long)>(v);
specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: void rejectRemoteInitiatedRenegotiation()>();
exitmonitor v;
label:
return v;
label:
v = v[v];
v = virtualinvoke v.<java.nio.ByteBuffer: boolean hasRemaining()>();
if v != 0 goto label;
v = v + 1;
if v < v goto label;
label:
if v == null goto label;
virtualinvoke v.<io.netty.buffer.ByteBuf: boolean release()>();
goto label;
label:
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: int readPlaintextData(java.nio.ByteBuffer)>(v);
label:
goto label;
label:
v := @caughtexception;
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: javax.net.ssl.SSLEngineResult handleUnwrapException(int,int,javax.net.ssl.SSLException)>(v, v, v);
label:
if v == null goto label;
virtualinvoke v.<io.netty.buffer.ByteBuf: boolean release()>();
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long networkBIO>;
staticinvoke <io.netty.internal.tcnative.SSL: void bioClearByteBuffer(long)>(v);
specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: void rejectRemoteInitiatedRenegotiation()>();
exitmonitor v;
label:
return v;
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long networkBIO>;
v = staticinvoke <io.netty.internal.tcnative.SSL: int bioLengthByteBuffer(long)>(v);
v = v - v;
v = v + v;
v = v - v;
v = v - v;
v = virtualinvoke v.<java.nio.ByteBuffer: int position()>();
v = v + v;
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer position(int)>(v);
if v <= 0 goto label;
v = v + v;
v = virtualinvoke v.<java.nio.ByteBuffer: boolean hasRemaining()>();
if v != 0 goto label;
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: int sslPending0()>();
v = v + 1;
if v < v goto label;
if v <= 0 goto label;
v = <javax.net.ssl.SSLEngineResult$Status: javax.net.ssl.SSLEngineResult$Status BUFFER_OVERFLOW>;
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: javax.net.ssl.SSLEngineResult newResult(javax.net.ssl.SSLEngineResult$Status,javax.net.ssl.SSLEngineResult$HandshakeStatus,int,int)>(v, v, v, v);
goto label;
label:
v = virtualinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean isInboundDone()>();
if v == 0 goto label;
v = <javax.net.ssl.SSLEngineResult$Status: javax.net.ssl.SSLEngineResult$Status CLOSED>;
goto label;
label:
v = <javax.net.ssl.SSLEngineResult$Status: javax.net.ssl.SSLEngineResult$Status OK>;
label:
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: javax.net.ssl.SSLEngineResult newResultMayFinishHandshake(javax.net.ssl.SSLEngineResult$Status,javax.net.ssl.SSLEngineResult$HandshakeStatus,int,int)>(v, v, v, v);
label:
v = v;
label:
if v == null goto label;
virtualinvoke v.<io.netty.buffer.ByteBuf: boolean release()>();
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long networkBIO>;
staticinvoke <io.netty.internal.tcnative.SSL: void bioClearByteBuffer(long)>(v);
specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: void rejectRemoteInitiatedRenegotiation()>();
exitmonitor v;
label:
return v;
label:
if v == 0 goto label;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean jdkCompatibilityMode>;
if v == 0 goto label;
label:
if v == null goto label;
virtualinvoke v.<io.netty.buffer.ByteBuf: boolean release()>();
goto label;
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long ssl>;
v = staticinvoke <io.netty.internal.tcnative.SSL: int getError(long,int)>(v, v);
v = <io.netty.internal.tcnative.SSL: int SSL_ERROR_WANT_READ>;
if v == v goto label;
v = <io.netty.internal.tcnative.SSL: int SSL_ERROR_WANT_WRITE>;
if v == v goto label;
v = <io.netty.internal.tcnative.SSL: int SSL_ERROR_ZERO_RETURN>;
if v != v goto label;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean receivedShutdown>;
if v != 0 goto label;
specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: void closeAll()>();
label:
v = virtualinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean isInboundDone()>();
if v == 0 goto label;
v = <javax.net.ssl.SSLEngineResult$Status: javax.net.ssl.SSLEngineResult$Status CLOSED>;
goto label;
label:
v = <javax.net.ssl.SSLEngineResult$Status: javax.net.ssl.SSLEngineResult$Status OK>;
label:
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: javax.net.ssl.SSLEngineResult newResultMayFinishHandshake(javax.net.ssl.SSLEngineResult$Status,javax.net.ssl.SSLEngineResult$HandshakeStatus,int,int)>(v, v, v, v);
label:
if v == null goto label;
virtualinvoke v.<io.netty.buffer.ByteBuf: boolean release()>();
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long networkBIO>;
staticinvoke <io.netty.internal.tcnative.SSL: void bioClearByteBuffer(long)>(v);
specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: void rejectRemoteInitiatedRenegotiation()>();
exitmonitor v;
label:
return v;
label:
v = <io.netty.internal.tcnative.SSL: int SSL_ERROR_WANT_X509_LOOKUP>;
if v == v goto label;
v = <io.netty.internal.tcnative.SSL: int SSL_ERROR_WANT_CERTIFICATE_VERIFY>;
if v == v goto label;
v = <io.netty.internal.tcnative.SSL: int SSL_ERROR_WANT_PRIVATE_KEY_OPERATION>;
if v != v goto label;
label:
v = virtualinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean isInboundDone()>();
if v == 0 goto label;
v = <javax.net.ssl.SSLEngineResult$Status: javax.net.ssl.SSLEngineResult$Status CLOSED>;
goto label;
label:
v = <javax.net.ssl.SSLEngineResult$Status: javax.net.ssl.SSLEngineResult$Status OK>;
label:
v = <javax.net.ssl.SSLEngineResult$HandshakeStatus: javax.net.ssl.SSLEngineResult$HandshakeStatus NEED_TASK>;
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: javax.net.ssl.SSLEngineResult newResult(javax.net.ssl.SSLEngineResult$Status,javax.net.ssl.SSLEngineResult$HandshakeStatus,int,int)>(v, v, v, v);
label:
if v == null goto label;
virtualinvoke v.<io.netty.buffer.ByteBuf: boolean release()>();
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long networkBIO>;
staticinvoke <io.netty.internal.tcnative.SSL: void bioClearByteBuffer(long)>(v);
specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: void rejectRemoteInitiatedRenegotiation()>();
exitmonitor v;
label:
return v;
label:
v = staticinvoke <io.netty.internal.tcnative.SSL: int getLastErrorNumber()>();
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: javax.net.ssl.SSLEngineResult sslReadErrorResult(int,int,int,int)>(v, v, v, v);
label:
if v == null goto label;
virtualinvoke v.<io.netty.buffer.ByteBuf: boolean release()>();
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long networkBIO>;
staticinvoke <io.netty.internal.tcnative.SSL: void bioClearByteBuffer(long)>(v);
specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: void rejectRemoteInitiatedRenegotiation()>();
exitmonitor v;
label:
return v;
label:
v = v + 1;
if v < v goto label;
label:
if v == null goto label;
virtualinvoke v.<io.netty.buffer.ByteBuf: boolean release()>();
goto label;
label:
if v == null goto label;
virtualinvoke v.<io.netty.buffer.ByteBuf: boolean release()>();
goto label;
label:
v := @caughtexception;
if v == null goto label;
virtualinvoke v.<io.netty.buffer.ByteBuf: boolean release()>();
label:
throw v;
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long networkBIO>;
staticinvoke <io.netty.internal.tcnative.SSL: void bioClearByteBuffer(long)>(v);
specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: void rejectRemoteInitiatedRenegotiation()>();
goto label;
label:
v := @caughtexception;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long networkBIO>;
staticinvoke <io.netty.internal.tcnative.SSL: void bioClearByteBuffer(long)>(v);
specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: void rejectRemoteInitiatedRenegotiation()>();
throw v;
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean receivedShutdown>;
if v != 0 goto label;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long ssl>;
v = staticinvoke <io.netty.internal.tcnative.SSL: int getShutdown(long)>(v);
v = <io.netty.internal.tcnative.SSL: int SSL_RECEIVED_SHUTDOWN>;
v = v & v;
v = <io.netty.internal.tcnative.SSL: int SSL_RECEIVED_SHUTDOWN>;
if v != v goto label;
specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: void closeAll()>();
label:
v = virtualinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean isInboundDone()>();
if v == 0 goto label;
v = <javax.net.ssl.SSLEngineResult$Status: javax.net.ssl.SSLEngineResult$Status CLOSED>;
goto label;
label:
v = <javax.net.ssl.SSLEngineResult$Status: javax.net.ssl.SSLEngineResult$Status OK>;
label:
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: javax.net.ssl.SSLEngineResult newResultMayFinishHandshake(javax.net.ssl.SSLEngineResult$Status,javax.net.ssl.SSLEngineResult$HandshakeStatus,int,int)>(v, v, v, v);
exitmonitor v;
label:
return v;
label:
v := @caughtexception;
exitmonitor v;
throw v;
catch javax.net.ssl.SSLException from label to label with label;
catch javax.net.ssl.SSLException from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
private boolean needWrapAgain(int)
{
java.lang.Throwable v, v, v;
long v;
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
javax.net.ssl.SSLException v, v;
int v, v;
boolean v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v := @parameter: int;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long networkBIO>;
v = staticinvoke <io.netty.internal.tcnative.SSL: int bioLengthNonApplication(long)>(v);
if v <= 0 goto label;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: java.lang.Throwable pendingException>;
if v != null goto label;
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: javax.net.ssl.SSLException newSSLExceptionForError(int)>(v);
v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: java.lang.Throwable pendingException> = v;
goto label;
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: java.lang.Throwable pendingException>;
v = staticinvoke <io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean shouldAddSuppressed(java.lang.Throwable,int)>(v, v);
if v == 0 goto label;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: java.lang.Throwable pendingException>;
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: javax.net.ssl.SSLException newSSLExceptionForError(int)>(v);
staticinvoke <io.netty.util.internal.ThrowableUtil: void addSuppressed(java.lang.Throwable,java.lang.Throwable)>(v, v);
label:
staticinvoke <io.netty.internal.tcnative.SSL: void clearError()>();
return 1;
label:
return 0;
}
private javax.net.ssl.SSLException newSSLExceptionForError(int)
{
io.netty.handler.ssl.ReferenceCountedOpenSslEngine$OpenSslHandshakeException v;
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
javax.net.ssl.SSLException v;
int v;
io.netty.handler.ssl.ReferenceCountedOpenSslEngine$OpenSslException v;
java.lang.String v;
io.netty.handler.ssl.ReferenceCountedOpenSslEngine$HandshakeState v, v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v := @parameter: int;
v = staticinvoke <io.netty.internal.tcnative.SSL: java.lang.String getErrorString(long)>(v);
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: io.netty.handler.ssl.ReferenceCountedOpenSslEngine$HandshakeState handshakeState>;
v = <io.netty.handler.ssl.ReferenceCountedOpenSslEngine$HandshakeState: io.netty.handler.ssl.ReferenceCountedOpenSslEngine$HandshakeState FINISHED>;
if v != v goto label;
v = new io.netty.handler.ssl.ReferenceCountedOpenSslEngine$OpenSslException;
v = v;
specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine$OpenSslException: void <init>(java.lang.String,int)>(v, v);
goto label;
label:
v = new io.netty.handler.ssl.ReferenceCountedOpenSslEngine$OpenSslHandshakeException;
v = v;
specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine$OpenSslHandshakeException: void <init>(java.lang.String,int)>(v, v);
label:
return v;
}
private static boolean shouldAddSuppressed(java.lang.Throwable, int)
{
java.lang.Throwable v, v;
java.lang.Throwable[] v;
int v, v, v, v;
boolean v;
v := @parameter: java.lang.Throwable;
v := @parameter: int;
v = staticinvoke <io.netty.util.internal.ThrowableUtil: java.lang.Throwable[] getSuppressed(java.lang.Throwable)>(v);
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = v instanceof io.netty.handler.ssl.ReferenceCountedOpenSslEngine$NativeSslException;
if v == 0 goto label;
v = interfaceinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine$NativeSslException: int errorCode()>();
if v != v goto label;
return 0;
label:
v = v + 1;
goto label;
label:
return 1;
}
private javax.net.ssl.SSLEngineResult sslReadErrorResult(int, int, int, int) throws javax.net.ssl.SSLException
{
javax.net.ssl.SSLEngineResult$HandshakeStatus v;
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
javax.net.ssl.SSLEngineResult v;
javax.net.ssl.SSLException v;
int v, v, v, v;
javax.net.ssl.SSLEngineResult$Status v;
boolean v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v := @parameter: int;
v := @parameter: int;
v := @parameter: int;
v := @parameter: int;
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean needWrapAgain(int)>(v);
if v == 0 goto label;
v = new javax.net.ssl.SSLEngineResult;
v = <javax.net.ssl.SSLEngineResult$Status: javax.net.ssl.SSLEngineResult$Status OK>;
v = <javax.net.ssl.SSLEngineResult$HandshakeStatus: javax.net.ssl.SSLEngineResult$HandshakeStatus NEED_WRAP>;
specialinvoke v.<javax.net.ssl.SSLEngineResult: void <init>(javax.net.ssl.SSLEngineResult$Status,javax.net.ssl.SSLEngineResult$HandshakeStatus,int,int)>(v, v, v, v);
return v;
label:
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: javax.net.ssl.SSLException shutdownWithError(java.lang.String,int,int)>("SSL_read", v, v);
throw v;
}
private void closeAll() throws javax.net.ssl.SSLException
{
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean receivedShutdown> = 1;
virtualinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: void closeOutbound()>();
virtualinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: void closeInbound()>();
return;
}
private void rejectRemoteInitiatedRenegotiation() throws javax.net.ssl.SSLHandshakeException
{
javax.net.ssl.SSLHandshakeException v;
io.netty.handler.ssl.OpenSslSession v;
long v, v;
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
int v, v;
java.lang.String v, v;
io.netty.handler.ssl.ReferenceCountedOpenSslEngine$HandshakeState v, v;
boolean v, v, v, v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean isDestroyed()>();
if v != 0 goto label;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean clientMode>;
if v != 0 goto label;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long ssl>;
v = staticinvoke <io.netty.internal.tcnative.SSL: int getHandshakeCount(long)>(v);
if v > 1 goto label;
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean clientMode>;
if v == 0 goto label;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long ssl>;
v = staticinvoke <io.netty.internal.tcnative.SSL: int getHandshakeCount(long)>(v);
if v <= 2 goto label;
label:
v = "TLSv.3";
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: io.netty.handler.ssl.OpenSslSession session>;
v = interfaceinvoke v.<io.netty.handler.ssl.OpenSslSession: java.lang.String getProtocol()>();
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: io.netty.handler.ssl.ReferenceCountedOpenSslEngine$HandshakeState handshakeState>;
v = <io.netty.handler.ssl.ReferenceCountedOpenSslEngine$HandshakeState: io.netty.handler.ssl.ReferenceCountedOpenSslEngine$HandshakeState FINISHED>;
if v != v goto label;
virtualinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: void shutdown()>();
v = new javax.net.ssl.SSLHandshakeException;
specialinvoke v.<javax.net.ssl.SSLHandshakeException: void <init>(java.lang.String)>("remote-initiated renegotiation not allowed");
throw v;
label:
return;
}
public final javax.net.ssl.SSLEngineResult unwrap(java.nio.ByteBuffer[], java.nio.ByteBuffer[]) throws javax.net.ssl.SSLException
{
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
java.nio.ByteBuffer[] v, v;
javax.net.ssl.SSLEngineResult v;
int v, v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v := @parameter: java.nio.ByteBuffer[];
v := @parameter: java.nio.ByteBuffer[];
v = lengthof v;
v = lengthof v;
v = virtualinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: javax.net.ssl.SSLEngineResult unwrap(java.nio.ByteBuffer[],int,int,java.nio.ByteBuffer[],int,int)>(v, 0, v, v, 0, v);
return v;
}
private java.nio.ByteBuffer[] singleSrcBuffer(java.nio.ByteBuffer)
{
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
java.nio.ByteBuffer[] v, v;
java.nio.ByteBuffer v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v := @parameter: java.nio.ByteBuffer;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: java.nio.ByteBuffer[] singleSrcBuffer>;
v[0] = v;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: java.nio.ByteBuffer[] singleSrcBuffer>;
return v;
}
private void resetSingleSrcBuffer()
{
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
java.nio.ByteBuffer[] v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: java.nio.ByteBuffer[] singleSrcBuffer>;
v[0] = null;
return;
}
private java.nio.ByteBuffer[] singleDstBuffer(java.nio.ByteBuffer)
{
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
java.nio.ByteBuffer[] v, v;
java.nio.ByteBuffer v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v := @parameter: java.nio.ByteBuffer;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: java.nio.ByteBuffer[] singleDstBuffer>;
v[0] = v;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: java.nio.ByteBuffer[] singleDstBuffer>;
return v;
}
private void resetSingleDstBuffer()
{
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
java.nio.ByteBuffer[] v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: java.nio.ByteBuffer[] singleDstBuffer>;
v[0] = null;
return;
}
public final synchronized javax.net.ssl.SSLEngineResult unwrap(java.nio.ByteBuffer, java.nio.ByteBuffer[], int, int) throws javax.net.ssl.SSLException
{
java.lang.Throwable v;
java.nio.ByteBuffer[] v, v;
java.nio.ByteBuffer v;
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
javax.net.ssl.SSLEngineResult v;
int v, v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v := @parameter: java.nio.ByteBuffer;
v := @parameter: java.nio.ByteBuffer[];
v := @parameter: int;
v := @parameter: int;
label:
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: java.nio.ByteBuffer[] singleSrcBuffer(java.nio.ByteBuffer)>(v);
v = virtualinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: javax.net.ssl.SSLEngineResult unwrap(java.nio.ByteBuffer[],int,int,java.nio.ByteBuffer[],int,int)>(v, 0, 1, v, v, v);
label:
specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: void resetSingleSrcBuffer()>();
return v;
label:
v := @caughtexception;
specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: void resetSingleSrcBuffer()>();
throw v;
catch java.lang.Throwable from label to label with label;
}
public final synchronized javax.net.ssl.SSLEngineResult wrap(java.nio.ByteBuffer, java.nio.ByteBuffer) throws javax.net.ssl.SSLException
{
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
java.lang.Throwable v;
java.nio.ByteBuffer[] v;
javax.net.ssl.SSLEngineResult v;
java.nio.ByteBuffer v, v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v := @parameter: java.nio.ByteBuffer;
v := @parameter: java.nio.ByteBuffer;
label:
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: java.nio.ByteBuffer[] singleSrcBuffer(java.nio.ByteBuffer)>(v);
v = virtualinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: javax.net.ssl.SSLEngineResult wrap(java.nio.ByteBuffer[],java.nio.ByteBuffer)>(v, v);
label:
specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: void resetSingleSrcBuffer()>();
return v;
label:
v := @caughtexception;
specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: void resetSingleSrcBuffer()>();
throw v;
catch java.lang.Throwable from label to label with label;
}
public final synchronized javax.net.ssl.SSLEngineResult unwrap(java.nio.ByteBuffer, java.nio.ByteBuffer) throws javax.net.ssl.SSLException
{
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
java.lang.Throwable v;
java.nio.ByteBuffer[] v, v;
javax.net.ssl.SSLEngineResult v;
java.nio.ByteBuffer v, v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v := @parameter: java.nio.ByteBuffer;
v := @parameter: java.nio.ByteBuffer;
label:
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: java.nio.ByteBuffer[] singleSrcBuffer(java.nio.ByteBuffer)>(v);
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: java.nio.ByteBuffer[] singleDstBuffer(java.nio.ByteBuffer)>(v);
v = virtualinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: javax.net.ssl.SSLEngineResult unwrap(java.nio.ByteBuffer[],java.nio.ByteBuffer[])>(v, v);
label:
specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: void resetSingleSrcBuffer()>();
specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: void resetSingleDstBuffer()>();
return v;
label:
v := @caughtexception;
specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: void resetSingleSrcBuffer()>();
specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: void resetSingleDstBuffer()>();
throw v;
catch java.lang.Throwable from label to label with label;
}
public final synchronized javax.net.ssl.SSLEngineResult unwrap(java.nio.ByteBuffer, java.nio.ByteBuffer[]) throws javax.net.ssl.SSLException
{
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
java.lang.Throwable v;
java.nio.ByteBuffer[] v, v;
javax.net.ssl.SSLEngineResult v;
java.nio.ByteBuffer v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v := @parameter: java.nio.ByteBuffer;
v := @parameter: java.nio.ByteBuffer[];
label:
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: java.nio.ByteBuffer[] singleSrcBuffer(java.nio.ByteBuffer)>(v);
v = virtualinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: javax.net.ssl.SSLEngineResult unwrap(java.nio.ByteBuffer[],java.nio.ByteBuffer[])>(v, v);
label:
specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: void resetSingleSrcBuffer()>();
return v;
label:
v := @caughtexception;
specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: void resetSingleSrcBuffer()>();
throw v;
catch java.lang.Throwable from label to label with label;
}
private synchronized void runAndResetNeedTask(java.lang.Runnable)
{
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
java.lang.Throwable v;
java.lang.Runnable v;
boolean v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v := @parameter: java.lang.Runnable;
label:
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean isDestroyed()>();
if v == 0 goto label;
label:
v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean needTask> = 0;
return;
label:
interfaceinvoke v.<java.lang.Runnable: void run()>();
label:
v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean needTask> = 0;
goto label;
label:
v := @caughtexception;
v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean needTask> = 0;
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
public final synchronized java.lang.Runnable getDelegatedTask()
{
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
io.netty.handler.ssl.ReferenceCountedOpenSslEngine$TaskDecorator v;
long v;
io.netty.handler.ssl.ReferenceCountedOpenSslEngine$AsyncTaskDecorator v;
java.lang.Runnable v;
boolean v, v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean isDestroyed()>();
if v == 0 goto label;
return null;
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long ssl>;
v = staticinvoke <io.netty.internal.tcnative.SSL: java.lang.Runnable getTask(long)>(v);
if v != null goto label;
return null;
label:
v = v instanceof io.netty.internal.tcnative.AsyncTask;
if v == 0 goto label;
v = new io.netty.handler.ssl.ReferenceCountedOpenSslEngine$AsyncTaskDecorator;
specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine$AsyncTaskDecorator: void <init>(io.netty.handler.ssl.ReferenceCountedOpenSslEngine,io.netty.internal.tcnative.AsyncTask)>(v, v);
return v;
label:
v = new io.netty.handler.ssl.ReferenceCountedOpenSslEngine$TaskDecorator;
specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine$TaskDecorator: void <init>(io.netty.handler.ssl.ReferenceCountedOpenSslEngine,java.lang.Runnable)>(v, v);
return v;
}
public final synchronized void closeInbound() throws javax.net.ssl.SSLException
{
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
javax.net.ssl.SSLException v;
io.netty.handler.ssl.ReferenceCountedOpenSslEngine$HandshakeState v, v;
boolean v, v, v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean isInboundDone>;
if v == 0 goto label;
return;
label:
v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean isInboundDone> = 1;
v = virtualinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean isOutboundDone()>();
if v == 0 goto label;
virtualinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: void shutdown()>();
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: io.netty.handler.ssl.ReferenceCountedOpenSslEngine$HandshakeState handshakeState>;
v = <io.netty.handler.ssl.ReferenceCountedOpenSslEngine$HandshakeState: io.netty.handler.ssl.ReferenceCountedOpenSslEngine$HandshakeState NOT_STARTED>;
if v == v goto label;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean receivedShutdown>;
if v != 0 goto label;
v = new javax.net.ssl.SSLException;
specialinvoke v.<javax.net.ssl.SSLException: void <init>(java.lang.String)>("Inbound closed before receiving peer\'s close_notify: possible truncation attack?");
throw v;
label:
return;
}
public final synchronized boolean isInboundDone()
{
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
boolean v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean isInboundDone>;
return v;
}
public final synchronized void closeOutbound()
{
long v;
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
int v, v, v, v;
io.netty.handler.ssl.ReferenceCountedOpenSslEngine$HandshakeState v, v;
boolean v, v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean outboundClosed>;
if v == 0 goto label;
return;
label:
v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean outboundClosed> = 1;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: io.netty.handler.ssl.ReferenceCountedOpenSslEngine$HandshakeState handshakeState>;
v = <io.netty.handler.ssl.ReferenceCountedOpenSslEngine$HandshakeState: io.netty.handler.ssl.ReferenceCountedOpenSslEngine$HandshakeState NOT_STARTED>;
if v == v goto label;
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean isDestroyed()>();
if v != 0 goto label;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long ssl>;
v = staticinvoke <io.netty.internal.tcnative.SSL: int getShutdown(long)>(v);
v = <io.netty.internal.tcnative.SSL: int SSL_SENT_SHUTDOWN>;
v = v & v;
v = <io.netty.internal.tcnative.SSL: int SSL_SENT_SHUTDOWN>;
if v == v goto label;
specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean doSSLShutdown()>();
goto label;
label:
virtualinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: void shutdown()>();
label:
return;
}
private boolean doSSLShutdown()
{
long v, v, v;
java.lang.Integer v;
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
io.netty.util.internal.logging.InternalLogger v, v;
int v, v, v, v, v, v;
java.lang.String v;
boolean v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long ssl>;
v = staticinvoke <io.netty.internal.tcnative.SSL: int isInInit(long)>(v);
if v == 0 goto label;
return 0;
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long ssl>;
v = staticinvoke <io.netty.internal.tcnative.SSL: int shutdownSSL(long)>(v);
if v >= 0 goto label;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long ssl>;
v = staticinvoke <io.netty.internal.tcnative.SSL: int getError(long,int)>(v, v);
v = <io.netty.internal.tcnative.SSL: int SSL_ERROR_SYSCALL>;
if v == v goto label;
v = <io.netty.internal.tcnative.SSL: int SSL_ERROR_SSL>;
if v != v goto label;
label:
v = <io.netty.handler.ssl.ReferenceCountedOpenSslEngine: io.netty.util.internal.logging.InternalLogger logger>;
v = interfaceinvoke v.<io.netty.util.internal.logging.InternalLogger: boolean isDebugEnabled()>();
if v == 0 goto label;
v = staticinvoke <io.netty.internal.tcnative.SSL: int getLastErrorNumber()>();
v = <io.netty.handler.ssl.ReferenceCountedOpenSslEngine: io.netty.util.internal.logging.InternalLogger logger>;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v = staticinvoke <io.netty.internal.tcnative.SSL: java.lang.String getErrorString(long)>(v);
interfaceinvoke v.<io.netty.util.internal.logging.InternalLogger: void debug(java.lang.String,java.lang.Object,java.lang.Object)>("SSL_shutdown failed: OpenSSL error: {} {}", v, v);
label:
virtualinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: void shutdown()>();
return 0;
label:
staticinvoke <io.netty.internal.tcnative.SSL: void clearError()>();
label:
return 1;
}
public final synchronized boolean isOutboundDone()
{
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
byte v;
int v;
long v, v;
boolean v, v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean outboundClosed>;
if v == 0 goto label;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long networkBIO>;
v = v cmp 0L;
if v == 0 goto label;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long networkBIO>;
v = staticinvoke <io.netty.internal.tcnative.SSL: int bioLengthNonApplication(long)>(v);
if v != 0 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public final java.lang.String[] getSupportedCipherSuites()
{
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
java.lang.Object[] v;
java.util.Set v;
java.lang.String[] v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v = <io.netty.handler.ssl.OpenSsl: java.util.Set AVAILABLE_CIPHER_SUITES>;
v = <io.netty.util.internal.EmptyArrays: java.lang.String[] EMPTY_STRINGS>;
v = interfaceinvoke v.<java.util.Set: java.lang.Object[] toArray(java.lang.Object[])>(v);
return v;
}
public final java.lang.String[] getEnabledCipherSuites()
{
java.lang.Throwable v, v;
java.lang.Object[] v;
java.lang.String[] v, v, v, v, v;
long v, v;
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
int v, v, v, v, v, v, v;
java.lang.String v, v, v, v;
java.util.LinkedHashSet v;
boolean v, v, v, v, v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
entermonitor v;
label:
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean isDestroyed()>();
if v != 0 goto label;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long ssl>;
v = staticinvoke <io.netty.internal.tcnative.SSL: java.lang.String[] getCiphers(long)>(v);
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long ssl>;
v = staticinvoke <io.netty.internal.tcnative.SSL: int getOptions(long)>(v);
v = <io.netty.internal.tcnative.SSL: int SSL_OP_NO_TLSv1_3>;
v = staticinvoke <io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean isProtocolEnabled(int,int,java.lang.String)>(v, v, "TLSv.3");
if v == 0 goto label;
v = <io.netty.handler.ssl.OpenSsl: java.lang.String[] EXTRA_SUPPORTED_TLS_1_3_CIPHERS>;
v = 1;
goto label;
label:
v = <io.netty.util.internal.EmptyArrays: java.lang.String[] EMPTY_STRINGS>;
v = 0;
goto label;
label:
v = <io.netty.util.internal.EmptyArrays: java.lang.String[] EMPTY_STRINGS>;
exitmonitor v;
label:
return v;
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
if v != null goto label;
v = <io.netty.util.internal.EmptyArrays: java.lang.String[] EMPTY_STRINGS>;
return v;
label:
v = new java.util.LinkedHashSet;
v = lengthof v;
v = lengthof v;
v = v + v;
specialinvoke v.<java.util.LinkedHashSet: void <init>(int)>(v);
entermonitor v;
label:
v = 0;
label:
v = lengthof v;
if v >= v goto label;
v = v[v];
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: java.lang.String toJavaCipherSuite(java.lang.String)>(v);
if v != null goto label;
v = v[v];
goto label;
label:
v = v;
label:
v = v;
if v == 0 goto label;
v = staticinvoke <io.netty.handler.ssl.OpenSsl: boolean isTlsv13Supported()>();
if v != 0 goto label;
label:
v = staticinvoke <io.netty.handler.ssl.SslUtils: boolean isTLSv13Cipher(java.lang.String)>(v);
if v != 0 goto label;
label:
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
label:
v = v + 1;
goto label;
label:
staticinvoke <java.util.Collections: boolean addAll(java.util.Collection,java.lang.Object[])>(v, v);
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
v = <io.netty.util.internal.EmptyArrays: java.lang.String[] EMPTY_STRINGS>;
v = interfaceinvoke v.<java.util.Set: java.lang.Object[] toArray(java.lang.Object[])>(v);
return v;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
public final void setEnabledCipherSuites(java.lang.String[])
{
java.lang.Throwable v;
java.lang.IllegalStateException v, v;
java.lang.Object[] v;
java.lang.String[] v, v, v, v;
long v, v;
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
java.util.HashSet v;
int v;
java.lang.String v, v, v, v, v;
boolean v, v, v, v, v, v, v;
java.lang.IllegalArgumentException v;
java.lang.Exception v;
java.util.List v;
io.netty.util.internal.logging.InternalLogger v;
java.lang.StringBuilder v, v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v := @parameter: java.lang.String[];
staticinvoke <io.netty.util.internal.ObjectUtil: java.lang.Object checkNotNull(java.lang.Object,java.lang.String)>(v, "cipherSuites");
v = new java.lang.StringBuilder;
specialinvoke v.<java.lang.StringBuilder: void <init>()>();
v = new java.lang.StringBuilder;
specialinvoke v.<java.lang.StringBuilder: void <init>()>();
v = staticinvoke <java.util.Arrays: java.util.List asList(java.lang.Object[])>(v);
v = staticinvoke <io.netty.handler.ssl.OpenSsl: boolean isBoringSSL()>();
staticinvoke <io.netty.handler.ssl.CipherSuiteConverter: void convertToCipherStrings(java.lang.Iterable,java.lang.StringBuilder,java.lang.StringBuilder,boolean)>(v, v, v, v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.String toString()>();
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.String toString()>();
v = staticinvoke <io.netty.handler.ssl.OpenSsl: boolean isTlsv13Supported()>();
if v != 0 goto label;
v = virtualinvoke v.<java.lang.String: boolean isEmpty()>();
if v != 0 goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("TLSv.3 is not supported by this java version.");
throw v;
label:
entermonitor v;
label:
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean isDestroyed()>();
if v != 0 goto label;
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long ssl>;
staticinvoke <io.netty.internal.tcnative.SSL: boolean setCipherSuites(long,java.lang.String,boolean)>(v, v, 0);
v = staticinvoke <io.netty.handler.ssl.OpenSsl: boolean isTlsv13Supported()>();
if v == 0 goto label;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long ssl>;
v = <io.netty.handler.ssl.ReferenceCountedOpenSslEngine: io.netty.util.internal.logging.InternalLogger logger>;
v = staticinvoke <io.netty.handler.ssl.OpenSsl: java.lang.String checkTls13Ciphers(io.netty.util.internal.logging.InternalLogger,java.lang.String)>(v, v);
staticinvoke <io.netty.internal.tcnative.SSL: boolean setCipherSuites(long,java.lang.String,boolean)>(v, v, 1);
label:
v = new java.util.HashSet;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: java.lang.String[] explicitlyEnabledProtocols>;
v = lengthof v;
specialinvoke v.<java.util.HashSet: void <init>(int)>(v);
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: java.lang.String[] explicitlyEnabledProtocols>;
staticinvoke <java.util.Collections: boolean addAll(java.util.Collection,java.lang.Object[])>(v, v);
v = virtualinvoke v.<java.lang.String: boolean isEmpty()>();
if v == 0 goto label;
interfaceinvoke v.<java.util.Set: boolean remove(java.lang.Object)>("TLSv1");
interfaceinvoke v.<java.util.Set: boolean remove(java.lang.Object)>("TLSv.1");
interfaceinvoke v.<java.util.Set: boolean remove(java.lang.Object)>("TLSv.2");
interfaceinvoke v.<java.util.Set: boolean remove(java.lang.Object)>("SSLv3");
interfaceinvoke v.<java.util.Set: boolean remove(java.lang.Object)>("SSLv2");
interfaceinvoke v.<java.util.Set: boolean remove(java.lang.Object)>("SSLv2Hello");
label:
v = virtualinvoke v.<java.lang.String: boolean isEmpty()>();
if v == 0 goto label;
interfaceinvoke v.<java.util.Set: boolean remove(java.lang.Object)>("TLSv.3");
label:
v = <io.netty.util.internal.EmptyArrays: java.lang.String[] EMPTY_STRINGS>;
v = interfaceinvoke v.<java.util.Set: java.lang.Object[] toArray(java.lang.Object[])>(v);
specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: void setEnabledProtocols0(java.lang.String[],boolean)>(v, 0);
label:
goto label;
label:
v := @caughtexception;
v = new java.lang.IllegalStateException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("failed to enable cipher suites: \u0001");
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
label:
v = new java.lang.IllegalStateException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("failed to enable cipher suites: \u0001");
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>(v);
throw v;
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
return;
catch java.lang.Exception from label to label with label;
catch java.lang.Throwable from label to label with label;
}
public final java.lang.String[] getSupportedProtocols()
{
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
java.lang.Object[] v;
java.util.Set v;
java.lang.String[] v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v = <io.netty.handler.ssl.OpenSsl: java.util.Set SUPPORTED_PROTOCOLS_SET>;
v = <io.netty.util.internal.EmptyArrays: java.lang.String[] EMPTY_STRINGS>;
v = interfaceinvoke v.<java.util.Set: java.lang.Object[] toArray(java.lang.Object[])>(v);
return v;
}
public final java.lang.String[] getEnabledProtocols()
{
java.lang.Throwable v;
java.lang.Object[] v, v;
java.lang.String[] v, v;
long v;
java.util.ArrayList v;
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
int v, v, v, v, v, v, v;
boolean v, v, v, v, v, v, v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>(int)>(6);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>("SSLv2Hello");
entermonitor v;
label:
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean isDestroyed()>();
if v != 0 goto label;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long ssl>;
v = staticinvoke <io.netty.internal.tcnative.SSL: int getOptions(long)>(v);
goto label;
label:
v = <io.netty.util.internal.EmptyArrays: java.lang.String[] EMPTY_STRINGS>;
v = interfaceinvoke v.<java.util.List: java.lang.Object[] toArray(java.lang.Object[])>(v);
exitmonitor v;
label:
return v;
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
v = <io.netty.internal.tcnative.SSL: int SSL_OP_NO_TLSv1>;
v = staticinvoke <io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean isProtocolEnabled(int,int,java.lang.String)>(v, v, "TLSv1");
if v == 0 goto label;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>("TLSv1");
label:
v = <io.netty.internal.tcnative.SSL: int SSL_OP_NO_TLSv1_1>;
v = staticinvoke <io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean isProtocolEnabled(int,int,java.lang.String)>(v, v, "TLSv.1");
if v == 0 goto label;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>("TLSv.1");
label:
v = <io.netty.internal.tcnative.SSL: int SSL_OP_NO_TLSv1_2>;
v = staticinvoke <io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean isProtocolEnabled(int,int,java.lang.String)>(v, v, "TLSv.2");
if v == 0 goto label;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>("TLSv.2");
label:
v = <io.netty.internal.tcnative.SSL: int SSL_OP_NO_TLSv1_3>;
v = staticinvoke <io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean isProtocolEnabled(int,int,java.lang.String)>(v, v, "TLSv.3");
if v == 0 goto label;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>("TLSv.3");
label:
v = <io.netty.internal.tcnative.SSL: int SSL_OP_NO_SSLv2>;
v = staticinvoke <io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean isProtocolEnabled(int,int,java.lang.String)>(v, v, "SSLv2");
if v == 0 goto label;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>("SSLv2");
label:
v = <io.netty.internal.tcnative.SSL: int SSL_OP_NO_SSLv3>;
v = staticinvoke <io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean isProtocolEnabled(int,int,java.lang.String)>(v, v, "SSLv3");
if v == 0 goto label;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>("SSLv3");
label:
v = <io.netty.util.internal.EmptyArrays: java.lang.String[] EMPTY_STRINGS>;
v = interfaceinvoke v.<java.util.List: java.lang.Object[] toArray(java.lang.Object[])>(v);
return v;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
private static boolean isProtocolEnabled(int, int, java.lang.String)
{
int v, v, v;
java.util.Set v;
java.lang.String v;
boolean v, v;
v := @parameter: int;
v := @parameter: int;
v := @parameter: java.lang.String;
v = v & v;
if v != 0 goto label;
v = <io.netty.handler.ssl.OpenSsl: java.util.Set SUPPORTED_PROTOCOLS_SET>;
v = interfaceinvoke v.<java.util.Set: boolean contains(java.lang.Object)>(v);
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public final void setEnabledProtocols(java.lang.String[])
{
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
java.lang.String[] v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v := @parameter: java.lang.String[];
specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: void setEnabledProtocols0(java.lang.String[],boolean)>(v, 1);
return;
}
private void setEnabledProtocols0(java.lang.String[], boolean)
{
java.lang.IllegalStateException v;
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
byte v;
int[] v, v, v, v;
boolean v, v, v, v, v, v, v, v, v, v;
java.util.Set v;
java.util.List v;
java.lang.Throwable v;
java.lang.String[] v;
long v, v;
java.lang.AssertionError v;
int v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.lang.String v, v, v;
java.lang.IllegalArgumentException v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v := @parameter: java.lang.String[];
v := @parameter: boolean;
staticinvoke <io.netty.util.internal.ObjectUtil: java.lang.Object checkNotNullWithIAE(java.lang.Object,java.lang.String)>(v, "protocols");
v = <io.netty.handler.ssl.ReferenceCountedOpenSslEngine: int[] OPENSSL_OP_NO_PROTOCOLS>;
v = lengthof v;
v = 0;
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = <io.netty.handler.ssl.OpenSsl: java.util.Set SUPPORTED_PROTOCOLS_SET>;
v = interfaceinvoke v.<java.util.Set: boolean contains(java.lang.Object)>(v);
if v != 0 goto label;
v = new java.lang.IllegalArgumentException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Protocol \u is not supported.");
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>(v);
throw v;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("SSLv2");
if v == 0 goto label;
if v <= 0 goto label;
v = 0;
label:
if v >= 0 goto label;
v = 0;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("SSLv3");
if v == 0 goto label;
if v <= 1 goto label;
v = 1;
label:
if v >= 1 goto label;
v = 1;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("TLSv1");
if v == 0 goto label;
if v <= 2 goto label;
v = 2;
label:
if v >= 2 goto label;
v = 2;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("TLSv.1");
if v == 0 goto label;
if v <= 3 goto label;
v = 3;
label:
if v >= 3 goto label;
v = 3;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("TLSv.2");
if v == 0 goto label;
if v <= 4 goto label;
v = 4;
label:
if v >= 4 goto label;
v = 4;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("TLSv.3");
if v == 0 goto label;
if v <= 5 goto label;
v = 5;
label:
if v >= 5 goto label;
v = 5;
label:
v = v + 1;
goto label;
label:
entermonitor v;
label:
if v == 0 goto label;
v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: java.lang.String[] explicitlyEnabledProtocols> = v;
label:
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean isDestroyed()>();
if v != 0 goto label;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long ssl>;
v = <io.netty.internal.tcnative.SSL: int SSL_OP_NO_SSLv2>;
v = <io.netty.internal.tcnative.SSL: int SSL_OP_NO_SSLv3>;
v = v | v;
v = <io.netty.internal.tcnative.SSL: int SSL_OP_NO_TLSv1>;
v = v | v;
v = <io.netty.internal.tcnative.SSL: int SSL_OP_NO_TLSv1_1>;
v = v | v;
v = <io.netty.internal.tcnative.SSL: int SSL_OP_NO_TLSv1_2>;
v = v | v;
v = <io.netty.internal.tcnative.SSL: int SSL_OP_NO_TLSv1_3>;
v = v | v;
staticinvoke <io.netty.internal.tcnative.SSL: void clearOptions(long,int)>(v, v);
v = 0;
v = 0;
label:
if v >= v goto label;
v = <io.netty.handler.ssl.ReferenceCountedOpenSslEngine: int[] OPENSSL_OP_NO_PROTOCOLS>;
v = v[v];
v = v | v;
v = v + 1;
goto label;
label:
v = <io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean $assertionsDisabled>;
if v != 0 goto label;
if v != 2147483647 goto label;
v = new java.lang.AssertionError;
specialinvoke v.<java.lang.AssertionError: void <init>()>();
throw v;
label:
v = v + 1;
label:
v = <io.netty.handler.ssl.ReferenceCountedOpenSslEngine: int[] OPENSSL_OP_NO_PROTOCOLS>;
v = lengthof v;
if v >= v goto label;
v = <io.netty.handler.ssl.ReferenceCountedOpenSslEngine: int[] OPENSSL_OP_NO_PROTOCOLS>;
v = v[v];
v = v | v;
v = v + 1;
goto label;
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long ssl>;
staticinvoke <io.netty.internal.tcnative.SSL: void setOptions(long,int)>(v, v);
goto label;
label:
v = new java.lang.IllegalStateException;
v = staticinvoke <java.util.Arrays: java.util.List asList(java.lang.Object[])>(v);
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.util.List)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("failed to enable protocols: \u0001");
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>(v);
throw v;
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
public final javax.net.ssl.SSLSession getSession()
{
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
io.netty.handler.ssl.OpenSslSession v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: io.netty.handler.ssl.OpenSslSession session>;
return v;
}
public final synchronized void beginHandshake() throws javax.net.ssl.SSLException
{
java.lang.Error v;
javax.net.ssl.SSLEngineResult$HandshakeStatus v, v;
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
javax.net.ssl.SSLException v;
int[] v;
int v, v;
io.netty.handler.ssl.ReferenceCountedOpenSslEngine$HandshakeState v, v, v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v = <io.netty.handler.ssl.ReferenceCountedOpenSslEngine$3: int[] $SwitchMap$io$netty$handler$ssl$ReferenceCountedOpenSslEngine$HandshakeState>;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: io.netty.handler.ssl.ReferenceCountedOpenSslEngine$HandshakeState handshakeState>;
v = virtualinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine$HandshakeState: int ordinal()>();
v = v[v];
tableswitch(v)
{
case 1: goto label;
case 2: goto label;
case 3: goto label;
case 4: goto label;
default: goto label;
};
label:
specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: void checkEngineClosed()>();
v = <io.netty.handler.ssl.ReferenceCountedOpenSslEngine$HandshakeState: io.netty.handler.ssl.ReferenceCountedOpenSslEngine$HandshakeState STARTED_EXPLICITLY>;
v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: io.netty.handler.ssl.ReferenceCountedOpenSslEngine$HandshakeState handshakeState> = v;
specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: void calculateMaxWrapOverhead()>();
goto label;
label:
v = new javax.net.ssl.SSLException;
specialinvoke v.<javax.net.ssl.SSLException: void <init>(java.lang.String)>("renegotiation unsupported");
throw v;
label:
v = <io.netty.handler.ssl.ReferenceCountedOpenSslEngine$HandshakeState: io.netty.handler.ssl.ReferenceCountedOpenSslEngine$HandshakeState STARTED_EXPLICITLY>;
v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: io.netty.handler.ssl.ReferenceCountedOpenSslEngine$HandshakeState handshakeState> = v;
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: javax.net.ssl.SSLEngineResult$HandshakeStatus handshake()>();
v = <javax.net.ssl.SSLEngineResult$HandshakeStatus: javax.net.ssl.SSLEngineResult$HandshakeStatus NEED_TASK>;
if v != v goto label;
v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean needTask> = 1;
label:
specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: void calculateMaxWrapOverhead()>();
goto label;
label:
v = new java.lang.Error;
specialinvoke v.<java.lang.Error: void <init>()>();
throw v;
label:
return;
}
private void checkEngineClosed() throws javax.net.ssl.SSLException
{
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
javax.net.ssl.SSLException v;
boolean v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean isDestroyed()>();
if v == 0 goto label;
v = new javax.net.ssl.SSLException;
specialinvoke v.<javax.net.ssl.SSLException: void <init>(java.lang.String)>("engine closed");
throw v;
label:
return;
}
private static javax.net.ssl.SSLEngineResult$HandshakeStatus pendingStatus(int)
{
int v;
javax.net.ssl.SSLEngineResult$HandshakeStatus v;
v := @parameter: int;
if v <= 0 goto label;
v = <javax.net.ssl.SSLEngineResult$HandshakeStatus: javax.net.ssl.SSLEngineResult$HandshakeStatus NEED_WRAP>;
goto label;
label:
v = <javax.net.ssl.SSLEngineResult$HandshakeStatus: javax.net.ssl.SSLEngineResult$HandshakeStatus NEED_UNWRAP>;
label:
return v;
}
private static boolean isEmpty(java.lang.Object[])
{
int v;
java.lang.Object[] v;
boolean v;
v := @parameter: java.lang.Object[];
if v == null goto label;
v = lengthof v;
if v != 0 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
private static boolean isEmpty(byte[])
{
int v;
byte[] v;
boolean v;
v := @parameter: byte[];
if v == null goto label;
v = lengthof v;
if v != 0 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
private javax.net.ssl.SSLEngineResult$HandshakeStatus handshakeException() throws javax.net.ssl.SSLException
{
java.lang.Throwable v;
javax.net.ssl.SSLHandshakeException v;
javax.net.ssl.SSLEngineResult$HandshakeStatus v;
long v;
java.lang.AssertionError v;
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
int v;
boolean v, v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long networkBIO>;
v = staticinvoke <io.netty.internal.tcnative.SSL: int bioLengthNonApplication(long)>(v);
if v <= 0 goto label;
v = <javax.net.ssl.SSLEngineResult$HandshakeStatus: javax.net.ssl.SSLEngineResult$HandshakeStatus NEED_WRAP>;
return v;
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: java.lang.Throwable pendingException>;
v = <io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean $assertionsDisabled>;
if v != 0 goto label;
if v != null goto label;
v = new java.lang.AssertionError;
specialinvoke v.<java.lang.AssertionError: void <init>()>();
throw v;
label:
v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: java.lang.Throwable pendingException> = null;
virtualinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: void shutdown()>();
v = v instanceof javax.net.ssl.SSLHandshakeException;
if v == 0 goto label;
throw v;
label:
v = new javax.net.ssl.SSLHandshakeException;
specialinvoke v.<javax.net.ssl.SSLHandshakeException: void <init>(java.lang.String)>("General OpenSslEngine problem");
virtualinvoke v.<javax.net.ssl.SSLHandshakeException: java.lang.Throwable initCause(java.lang.Throwable)>(v);
throw v;
}
final void initHandshakeException(java.lang.Throwable)
{
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
java.lang.Throwable v, v, v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v := @parameter: java.lang.Throwable;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: java.lang.Throwable pendingException>;
if v != null goto label;
v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: java.lang.Throwable pendingException> = v;
goto label;
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: java.lang.Throwable pendingException>;
staticinvoke <io.netty.util.internal.ThrowableUtil: void addSuppressed(java.lang.Throwable,java.lang.Throwable)>(v, v);
label:
return;
}
private javax.net.ssl.SSLEngineResult$HandshakeStatus handshake() throws javax.net.ssl.SSLException
{
byte[] v, v;
javax.net.ssl.SSLEngineResult$HandshakeStatus v, v, v, v, v, v, v, v, v;
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
byte v;
boolean v, v, v;
io.netty.handler.ssl.OpenSslEngineMap v;
byte[][] v;
javax.net.ssl.SSLException v;
io.netty.handler.ssl.OpenSslSessionContext v;
java.lang.Throwable v, v;
long v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
int v, v, v, v, v, v, v, v, v, v, v, v;
java.lang.String v, v, v;
io.netty.handler.ssl.ReferenceCountedOpenSslEngine$HandshakeState v, v;
io.netty.handler.ssl.OpenSslSession v;
io.netty.handler.ssl.ReferenceCountedOpenSslContext v, v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean needTask>;
if v == 0 goto label;
v = <javax.net.ssl.SSLEngineResult$HandshakeStatus: javax.net.ssl.SSLEngineResult$HandshakeStatus NEED_TASK>;
return v;
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: io.netty.handler.ssl.ReferenceCountedOpenSslEngine$HandshakeState handshakeState>;
v = <io.netty.handler.ssl.ReferenceCountedOpenSslEngine$HandshakeState: io.netty.handler.ssl.ReferenceCountedOpenSslEngine$HandshakeState FINISHED>;
if v != v goto label;
v = <javax.net.ssl.SSLEngineResult$HandshakeStatus: javax.net.ssl.SSLEngineResult$HandshakeStatus FINISHED>;
return v;
label:
specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: void checkEngineClosed()>();
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: java.lang.Throwable pendingException>;
if v == null goto label;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long ssl>;
v = staticinvoke <io.netty.internal.tcnative.SSL: int doHandshake(long)>(v);
if v > 0 goto label;
staticinvoke <io.netty.internal.tcnative.SSL: void clearError()>();
label:
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: javax.net.ssl.SSLEngineResult$HandshakeStatus handshakeException()>();
return v;
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: io.netty.handler.ssl.OpenSslEngineMap engineMap>;
interfaceinvoke v.<io.netty.handler.ssl.OpenSslEngineMap: void add(io.netty.handler.ssl.ReferenceCountedOpenSslEngine)>(v);
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean sessionSet>;
if v != 0 goto label;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: io.netty.handler.ssl.ReferenceCountedOpenSslContext parentContext>;
v = virtualinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: io.netty.handler.ssl.OpenSslSessionContext sessionContext()>();
v = virtualinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: java.lang.String getPeerHost()>();
v = virtualinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: int getPeerPort()>();
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long ssl>;
virtualinvoke v.<io.netty.handler.ssl.OpenSslSessionContext: void setSessionFromCache(java.lang.String,int,long)>(v, v, v);
v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean sessionSet> = 1;
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long lastAccessed>;
v = v cmp -1L;
if v != 0 goto label;
v = staticinvoke <java.lang.System: long currentTimeMillis()>();
v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long lastAccessed> = v;
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long ssl>;
v = staticinvoke <io.netty.internal.tcnative.SSL: int doHandshake(long)>(v);
if v > 0 goto label;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long ssl>;
v = staticinvoke <io.netty.internal.tcnative.SSL: int getError(long,int)>(v, v);
v = <io.netty.internal.tcnative.SSL: int SSL_ERROR_WANT_READ>;
if v == v goto label;
v = <io.netty.internal.tcnative.SSL: int SSL_ERROR_WANT_WRITE>;
if v != v goto label;
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long networkBIO>;
v = staticinvoke <io.netty.internal.tcnative.SSL: int bioLengthNonApplication(long)>(v);
v = staticinvoke <io.netty.handler.ssl.ReferenceCountedOpenSslEngine: javax.net.ssl.SSLEngineResult$HandshakeStatus pendingStatus(int)>(v);
return v;
label:
v = <io.netty.internal.tcnative.SSL: int SSL_ERROR_WANT_X509_LOOKUP>;
if v == v goto label;
v = <io.netty.internal.tcnative.SSL: int SSL_ERROR_WANT_CERTIFICATE_VERIFY>;
if v == v goto label;
v = <io.netty.internal.tcnative.SSL: int SSL_ERROR_WANT_PRIVATE_KEY_OPERATION>;
if v != v goto label;
label:
v = <javax.net.ssl.SSLEngineResult$HandshakeStatus: javax.net.ssl.SSLEngineResult$HandshakeStatus NEED_TASK>;
return v;
label:
v = staticinvoke <io.netty.internal.tcnative.SSL: int getLastErrorNumber()>();
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean needWrapAgain(int)>(v);
if v == 0 goto label;
v = <javax.net.ssl.SSLEngineResult$HandshakeStatus: javax.net.ssl.SSLEngineResult$HandshakeStatus NEED_WRAP>;
return v;
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: java.lang.Throwable pendingException>;
if v == null goto label;
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: javax.net.ssl.SSLEngineResult$HandshakeStatus handshakeException()>();
return v;
label:
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: javax.net.ssl.SSLException shutdownWithError(java.lang.String,int)>("SSL_do_handshake", v);
throw v;
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long networkBIO>;
v = staticinvoke <io.netty.internal.tcnative.SSL: int bioLengthNonApplication(long)>(v);
if v <= 0 goto label;
v = <javax.net.ssl.SSLEngineResult$HandshakeStatus: javax.net.ssl.SSLEngineResult$HandshakeStatus NEED_WRAP>;
return v;
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: io.netty.handler.ssl.OpenSslSession session>;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long ssl>;
v = staticinvoke <io.netty.internal.tcnative.SSL: byte[] getSessionId(long)>(v);
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long ssl>;
v = staticinvoke <io.netty.internal.tcnative.SSL: java.lang.String getCipherForSSL(long)>(v);
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long ssl>;
v = staticinvoke <io.netty.internal.tcnative.SSL: java.lang.String getVersion(long)>(v);
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long ssl>;
v = staticinvoke <io.netty.internal.tcnative.SSL: byte[] getPeerCertificate(long)>(v);
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long ssl>;
v = staticinvoke <io.netty.internal.tcnative.SSL: byte[][] getPeerCertChain(long)>(v);
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long ssl>;
v = staticinvoke <io.netty.internal.tcnative.SSL: long getTime(long)>(v);
v = v * 1000L;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: io.netty.handler.ssl.ReferenceCountedOpenSslContext parentContext>;
v = virtualinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: long sessionTimeout()>();
v = v * 1000L;
interfaceinvoke v.<io.netty.handler.ssl.OpenSslSession: void handshakeFinished(byte[],java.lang.String,java.lang.String,byte[],byte[][],long,long)>(v, v, v, v, v, v, v);
specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: void selectApplicationProtocol()>();
v = <javax.net.ssl.SSLEngineResult$HandshakeStatus: javax.net.ssl.SSLEngineResult$HandshakeStatus FINISHED>;
return v;
}
private javax.net.ssl.SSLEngineResult$HandshakeStatus mayFinishHandshake(javax.net.ssl.SSLEngineResult$HandshakeStatus, int, int) throws javax.net.ssl.SSLException
{
javax.net.ssl.SSLEngineResult$HandshakeStatus v, v, v, v, v, v;
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
int v, v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v := @parameter: javax.net.ssl.SSLEngineResult$HandshakeStatus;
v := @parameter: int;
v := @parameter: int;
v = <javax.net.ssl.SSLEngineResult$HandshakeStatus: javax.net.ssl.SSLEngineResult$HandshakeStatus NEED_UNWRAP>;
if v != v goto label;
if v > 0 goto label;
label:
v = <javax.net.ssl.SSLEngineResult$HandshakeStatus: javax.net.ssl.SSLEngineResult$HandshakeStatus NEED_WRAP>;
if v != v goto label;
if v <= 0 goto label;
label:
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: javax.net.ssl.SSLEngineResult$HandshakeStatus handshake()>();
goto label;
label:
v = <javax.net.ssl.SSLEngineResult$HandshakeStatus: javax.net.ssl.SSLEngineResult$HandshakeStatus FINISHED>;
if v == v goto label;
v = virtualinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: javax.net.ssl.SSLEngineResult$HandshakeStatus getHandshakeStatus()>();
goto label;
label:
v = <javax.net.ssl.SSLEngineResult$HandshakeStatus: javax.net.ssl.SSLEngineResult$HandshakeStatus FINISHED>;
label:
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: javax.net.ssl.SSLEngineResult$HandshakeStatus mayFinishHandshake(javax.net.ssl.SSLEngineResult$HandshakeStatus)>(v);
label:
return v;
}
private javax.net.ssl.SSLEngineResult$HandshakeStatus mayFinishHandshake(javax.net.ssl.SSLEngineResult$HandshakeStatus) throws javax.net.ssl.SSLException
{
javax.net.ssl.SSLEngineResult$HandshakeStatus v, v, v, v;
long v;
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
int v;
io.netty.handler.ssl.ReferenceCountedOpenSslEngine$HandshakeState v, v;
boolean v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v := @parameter: javax.net.ssl.SSLEngineResult$HandshakeStatus;
v = <javax.net.ssl.SSLEngineResult$HandshakeStatus: javax.net.ssl.SSLEngineResult$HandshakeStatus NOT_HANDSHAKING>;
if v != v goto label;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: io.netty.handler.ssl.ReferenceCountedOpenSslEngine$HandshakeState handshakeState>;
v = <io.netty.handler.ssl.ReferenceCountedOpenSslEngine$HandshakeState: io.netty.handler.ssl.ReferenceCountedOpenSslEngine$HandshakeState FINISHED>;
if v == v goto label;
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: javax.net.ssl.SSLEngineResult$HandshakeStatus handshake()>();
return v;
label:
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean isDestroyed()>();
if v != 0 goto label;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long networkBIO>;
v = staticinvoke <io.netty.internal.tcnative.SSL: int bioLengthNonApplication(long)>(v);
if v <= 0 goto label;
v = <javax.net.ssl.SSLEngineResult$HandshakeStatus: javax.net.ssl.SSLEngineResult$HandshakeStatus NEED_WRAP>;
return v;
label:
return v;
}
public final synchronized javax.net.ssl.SSLEngineResult$HandshakeStatus getHandshakeStatus()
{
javax.net.ssl.SSLEngineResult$HandshakeStatus v, v, v;
long v;
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
int v;
boolean v, v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean needPendingStatus()>();
if v == 0 goto label;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean needTask>;
if v == 0 goto label;
v = <javax.net.ssl.SSLEngineResult$HandshakeStatus: javax.net.ssl.SSLEngineResult$HandshakeStatus NEED_TASK>;
return v;
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long networkBIO>;
v = staticinvoke <io.netty.internal.tcnative.SSL: int bioLengthNonApplication(long)>(v);
v = staticinvoke <io.netty.handler.ssl.ReferenceCountedOpenSslEngine: javax.net.ssl.SSLEngineResult$HandshakeStatus pendingStatus(int)>(v);
return v;
label:
v = <javax.net.ssl.SSLEngineResult$HandshakeStatus: javax.net.ssl.SSLEngineResult$HandshakeStatus NOT_HANDSHAKING>;
return v;
}
private javax.net.ssl.SSLEngineResult$HandshakeStatus getHandshakeStatus(int)
{
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
int v;
javax.net.ssl.SSLEngineResult$HandshakeStatus v, v, v;
boolean v, v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v := @parameter: int;
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean needPendingStatus()>();
if v == 0 goto label;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean needTask>;
if v == 0 goto label;
v = <javax.net.ssl.SSLEngineResult$HandshakeStatus: javax.net.ssl.SSLEngineResult$HandshakeStatus NEED_TASK>;
return v;
label:
v = staticinvoke <io.netty.handler.ssl.ReferenceCountedOpenSslEngine: javax.net.ssl.SSLEngineResult$HandshakeStatus pendingStatus(int)>(v);
return v;
label:
v = <javax.net.ssl.SSLEngineResult$HandshakeStatus: javax.net.ssl.SSLEngineResult$HandshakeStatus NOT_HANDSHAKING>;
return v;
}
private boolean needPendingStatus()
{
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
io.netty.handler.ssl.ReferenceCountedOpenSslEngine$HandshakeState v, v, v, v;
boolean v, v, v, v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: io.netty.handler.ssl.ReferenceCountedOpenSslEngine$HandshakeState handshakeState>;
v = <io.netty.handler.ssl.ReferenceCountedOpenSslEngine$HandshakeState: io.netty.handler.ssl.ReferenceCountedOpenSslEngine$HandshakeState NOT_STARTED>;
if v == v goto label;
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean isDestroyed()>();
if v != 0 goto label;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: io.netty.handler.ssl.ReferenceCountedOpenSslEngine$HandshakeState handshakeState>;
v = <io.netty.handler.ssl.ReferenceCountedOpenSslEngine$HandshakeState: io.netty.handler.ssl.ReferenceCountedOpenSslEngine$HandshakeState FINISHED>;
if v != v goto label;
v = virtualinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean isInboundDone()>();
if v != 0 goto label;
v = virtualinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean isOutboundDone()>();
if v == 0 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
private java.lang.String toJavaCipherSuite(java.lang.String)
{
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
long v;
java.lang.String v, v, v, v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v := @parameter: java.lang.String;
if v != null goto label;
return null;
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long ssl>;
v = staticinvoke <io.netty.internal.tcnative.SSL: java.lang.String getVersion(long)>(v);
v = staticinvoke <io.netty.handler.ssl.ReferenceCountedOpenSslEngine: java.lang.String toJavaCipherSuitePrefix(java.lang.String)>(v);
v = staticinvoke <io.netty.handler.ssl.CipherSuiteConverter: java.lang.String toJava(java.lang.String,java.lang.String)>(v, v);
return v;
}
private static java.lang.String toJavaCipherSuitePrefix(java.lang.String)
{
int v;
java.lang.String v;
boolean v;
v := @parameter: java.lang.String;
if v == null goto label;
v = virtualinvoke v.<java.lang.String: boolean isEmpty()>();
if v == 0 goto label;
label:
v = 0;
goto label;
label:
v = virtualinvoke v.<java.lang.String: char charAt(int)>(0);
label:
lookupswitch(v)
{
case 83: goto label;
case 84: goto label;
default: goto label;
};
label:
return "TLS";
label:
return "SSL";
label:
return "UNKNOWN";
}
public final void setUseClientMode(boolean)
{
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
java.lang.UnsupportedOperationException v;
boolean v, v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v := @parameter: boolean;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean clientMode>;
if v == v goto label;
v = new java.lang.UnsupportedOperationException;
specialinvoke v.<java.lang.UnsupportedOperationException: void <init>()>();
throw v;
label:
return;
}
public final boolean getUseClientMode()
{
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
boolean v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean clientMode>;
return v;
}
public final void setNeedClientAuth(boolean)
{
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
io.netty.handler.ssl.ClientAuth v;
boolean v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v := @parameter: boolean;
if v == 0 goto label;
v = <io.netty.handler.ssl.ClientAuth: io.netty.handler.ssl.ClientAuth REQUIRE>;
goto label;
label:
v = <io.netty.handler.ssl.ClientAuth: io.netty.handler.ssl.ClientAuth NONE>;
label:
specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: void setClientAuth(io.netty.handler.ssl.ClientAuth)>(v);
return;
}
public final boolean getNeedClientAuth()
{
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
io.netty.handler.ssl.ClientAuth v, v;
boolean v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: io.netty.handler.ssl.ClientAuth clientAuth>;
v = <io.netty.handler.ssl.ClientAuth: io.netty.handler.ssl.ClientAuth REQUIRE>;
if v != v goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public final void setWantClientAuth(boolean)
{
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
io.netty.handler.ssl.ClientAuth v;
boolean v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v := @parameter: boolean;
if v == 0 goto label;
v = <io.netty.handler.ssl.ClientAuth: io.netty.handler.ssl.ClientAuth OPTIONAL>;
goto label;
label:
v = <io.netty.handler.ssl.ClientAuth: io.netty.handler.ssl.ClientAuth NONE>;
label:
specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: void setClientAuth(io.netty.handler.ssl.ClientAuth)>(v);
return;
}
public final boolean getWantClientAuth()
{
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
io.netty.handler.ssl.ClientAuth v, v;
boolean v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: io.netty.handler.ssl.ClientAuth clientAuth>;
v = <io.netty.handler.ssl.ClientAuth: io.netty.handler.ssl.ClientAuth OPTIONAL>;
if v != v goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public final synchronized void setVerify(int, int)
{
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
int v, v;
long v;
boolean v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v := @parameter: int;
v := @parameter: int;
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean isDestroyed()>();
if v != 0 goto label;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long ssl>;
staticinvoke <io.netty.internal.tcnative.SSL: void setVerify(long,int,int)>(v, v, v);
label:
return;
}
private void setClientAuth(io.netty.handler.ssl.ClientAuth)
{
java.lang.Throwable v;
java.lang.Error v;
long v, v, v;
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
io.netty.handler.ssl.ClientAuth v, v;
int[] v;
int v, v;
java.lang.String v;
boolean v, v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v := @parameter: io.netty.handler.ssl.ClientAuth;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean clientMode>;
if v == 0 goto label;
return;
label:
entermonitor v;
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: io.netty.handler.ssl.ClientAuth clientAuth>;
if v != v goto label;
exitmonitor v;
label:
return;
label:
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean isDestroyed()>();
if v != 0 goto label;
v = <io.netty.handler.ssl.ReferenceCountedOpenSslEngine$3: int[] $SwitchMap$io$netty$handler$ssl$ClientAuth>;
v = virtualinvoke v.<io.netty.handler.ssl.ClientAuth: int ordinal()>();
v = v[v];
tableswitch(v)
{
case 1: goto label;
case 2: goto label;
case 3: goto label;
default: goto label;
};
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long ssl>;
staticinvoke <io.netty.internal.tcnative.SSL: void setVerify(long,int,int)>(v, 0, 10);
goto label;
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long ssl>;
staticinvoke <io.netty.internal.tcnative.SSL: void setVerify(long,int,int)>(v, 2, 10);
goto label;
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long ssl>;
staticinvoke <io.netty.internal.tcnative.SSL: void setVerify(long,int,int)>(v, 1, 10);
goto label;
label:
v = new java.lang.Error;
v = virtualinvoke v.<io.netty.handler.ssl.ClientAuth: java.lang.String toString()>();
specialinvoke v.<java.lang.Error: void <init>(java.lang.String)>(v);
throw v;
label:
v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: io.netty.handler.ssl.ClientAuth clientAuth> = v;
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
public final void setEnableSessionCreation(boolean)
{
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
java.lang.UnsupportedOperationException v;
boolean v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v := @parameter: boolean;
if v == 0 goto label;
v = new java.lang.UnsupportedOperationException;
specialinvoke v.<java.lang.UnsupportedOperationException: void <init>()>();
throw v;
label:
return;
}
public final boolean getEnableSessionCreation()
{
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
return 0;
}
public final synchronized javax.net.ssl.SSLParameters getSSLParameters()
{
java.util.Collection v;
javax.net.ssl.SSLParameters v;
long v;
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
java.util.List v, v;
int v, v, v, v;
java.lang.Object v;
java.lang.String v;
boolean v, v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v = specialinvoke v.<javax.net.ssl.SSLEngine: javax.net.ssl.SSLParameters getSSLParameters()>();
v = staticinvoke <io.netty.util.internal.PlatformDependent: int javaVersion()>();
if v < 7 goto label;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: java.lang.String endPointIdentificationAlgorithm>;
virtualinvoke v.<javax.net.ssl.SSLParameters: void setEndpointIdentificationAlgorithm(java.lang.String)>(v);
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: java.lang.Object algorithmConstraints>;
staticinvoke <io.netty.handler.ssl.Java7SslParametersUtils: void setAlgorithmConstraints(javax.net.ssl.SSLParameters,java.lang.Object)>(v, v);
if v < 8 goto label;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: java.util.List sniHostNames>;
if v == null goto label;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: java.util.List sniHostNames>;
staticinvoke <io.netty.handler.ssl.Java8SslUtils: void setSniHostNames(javax.net.ssl.SSLParameters,java.util.List)>(v, v);
label:
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean isDestroyed()>();
if v != 0 goto label;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long ssl>;
v = staticinvoke <io.netty.internal.tcnative.SSL: int getOptions(long)>(v);
v = <io.netty.internal.tcnative.SSL: int SSL_OP_CIPHER_SERVER_PREFERENCE>;
v = v & v;
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
staticinvoke <io.netty.handler.ssl.Java8SslUtils: void setUseCipherSuitesOrder(javax.net.ssl.SSLParameters,boolean)>(v, v);
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: java.util.Collection matchers>;
staticinvoke <io.netty.handler.ssl.Java8SslUtils: void setSNIMatchers(javax.net.ssl.SSLParameters,java.util.Collection)>(v, v);
label:
return v;
}
public final synchronized void setSSLParameters(javax.net.ssl.SSLParameters)
{
javax.net.ssl.SSLParameters v;
long v, v, v, v;
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
int v, v, v, v;
java.lang.String v;
boolean v, v, v, v, v, v;
java.util.Iterator v;
java.util.Collection v;
java.lang.IllegalArgumentException v;
java.util.List v;
java.security.AlgorithmConstraints v, v;
java.lang.Object v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v := @parameter: javax.net.ssl.SSLParameters;
v = staticinvoke <io.netty.util.internal.PlatformDependent: int javaVersion()>();
if v < 7 goto label;
v = virtualinvoke v.<javax.net.ssl.SSLParameters: java.security.AlgorithmConstraints getAlgorithmConstraints()>();
if v == null goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("AlgorithmConstraints are not supported.");
throw v;
label:
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean isDestroyed()>();
if v < 8 goto label;
if v != 0 goto label;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean clientMode>;
if v == 0 goto label;
v = staticinvoke <io.netty.handler.ssl.Java8SslUtils: java.util.List getSniHostNames(javax.net.ssl.SSLParameters)>(v);
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long ssl>;
staticinvoke <io.netty.internal.tcnative.SSL: void setTlsExtHostName(long,java.lang.String)>(v, v);
goto label;
label:
v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: java.util.List sniHostNames> = v;
label:
v = staticinvoke <io.netty.handler.ssl.Java8SslUtils: boolean getUseCipherSuitesOrder(javax.net.ssl.SSLParameters)>(v);
if v == 0 goto label;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long ssl>;
v = <io.netty.internal.tcnative.SSL: int SSL_OP_CIPHER_SERVER_PREFERENCE>;
staticinvoke <io.netty.internal.tcnative.SSL: void setOptions(long,int)>(v, v);
goto label;
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long ssl>;
v = <io.netty.internal.tcnative.SSL: int SSL_OP_CIPHER_SERVER_PREFERENCE>;
staticinvoke <io.netty.internal.tcnative.SSL: void clearOptions(long,int)>(v, v);
label:
v = virtualinvoke v.<javax.net.ssl.SSLParameters: java.util.Collection getSNIMatchers()>();
v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: java.util.Collection matchers> = v;
label:
v = virtualinvoke v.<javax.net.ssl.SSLParameters: java.lang.String getEndpointIdentificationAlgorithm()>();
if v != 0 goto label;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean clientMode>;
if v == 0 goto label;
v = staticinvoke <io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean isEndPointVerificationEnabled(java.lang.String)>(v);
if v == 0 goto label;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long ssl>;
v = (int) -1;
staticinvoke <io.netty.internal.tcnative.SSL: void setVerify(long,int,int)>(v, 2, v);
label:
v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: java.lang.String endPointIdentificationAlgorithm> = v;
v = virtualinvoke v.<javax.net.ssl.SSLParameters: java.security.AlgorithmConstraints getAlgorithmConstraints()>();
v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: java.lang.Object algorithmConstraints> = v;
label:
specialinvoke v.<javax.net.ssl.SSLEngine: void setSSLParameters(javax.net.ssl.SSLParameters)>(v);
return;
}
private static boolean isEndPointVerificationEnabled(java.lang.String)
{
java.lang.String v;
boolean v, v;
v := @parameter: java.lang.String;
if v == null goto label;
v = virtualinvoke v.<java.lang.String: boolean isEmpty()>();
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
private boolean isDestroyed()
{
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
boolean v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean destroyed>;
return v;
}
final boolean checkSniHostnameMatch(byte[])
{
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
byte[] v;
java.util.Collection v;
boolean v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v := @parameter: byte[];
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: java.util.Collection matchers>;
v = staticinvoke <io.netty.handler.ssl.Java8SslUtils: boolean checkSniHostnameMatch(java.util.Collection,byte[])>(v, v);
return v;
}
public java.lang.String getNegotiatedApplicationProtocol()
{
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
java.lang.String v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: java.lang.String applicationProtocol>;
return v;
}
private static long bufferAddress(java.nio.ByteBuffer)
{
long v, v;
java.lang.AssertionError v;
java.nio.ByteBuffer v;
boolean v, v, v;
v := @parameter: java.nio.ByteBuffer;
v = <io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean $assertionsDisabled>;
if v != 0 goto label;
v = virtualinvoke v.<java.nio.ByteBuffer: boolean isDirect()>();
if v != 0 goto label;
v = new java.lang.AssertionError;
specialinvoke v.<java.lang.AssertionError: void <init>()>();
throw v;
label:
v = staticinvoke <io.netty.util.internal.PlatformDependent: boolean hasUnsafe()>();
if v == 0 goto label;
v = staticinvoke <io.netty.util.internal.PlatformDependent: long directBufferAddress(java.nio.ByteBuffer)>(v);
return v;
label:
v = staticinvoke <io.netty.internal.tcnative.Buffer: long address(java.nio.ByteBuffer)>(v);
return v;
}
private void selectApplicationProtocol() throws javax.net.ssl.SSLException
{
java.lang.Error v;
long v, v, v, v;
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
io.netty.handler.ssl.ApplicationProtocolConfig$Protocol v;
io.netty.handler.ssl.ApplicationProtocolConfig$SelectedListenerFailureBehavior v;
int[] v;
int v, v;
java.lang.String v, v, v, v, v, v;
java.util.List v;
io.netty.handler.ssl.OpenSslApplicationProtocolNegotiator v, v, v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: io.netty.handler.ssl.OpenSslApplicationProtocolNegotiator apn>;
v = interfaceinvoke v.<io.netty.handler.ssl.OpenSslApplicationProtocolNegotiator: io.netty.handler.ssl.ApplicationProtocolConfig$SelectedListenerFailureBehavior selectedListenerFailureBehavior()>();
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: io.netty.handler.ssl.OpenSslApplicationProtocolNegotiator apn>;
v = interfaceinvoke v.<io.netty.handler.ssl.OpenSslApplicationProtocolNegotiator: java.util.List protocols()>();
v = <io.netty.handler.ssl.ReferenceCountedOpenSslEngine$3: int[] $SwitchMap$io$netty$handler$ssl$ApplicationProtocolConfig$Protocol>;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: io.netty.handler.ssl.OpenSslApplicationProtocolNegotiator apn>;
v = interfaceinvoke v.<io.netty.handler.ssl.OpenSslApplicationProtocolNegotiator: io.netty.handler.ssl.ApplicationProtocolConfig$Protocol protocol()>();
v = virtualinvoke v.<io.netty.handler.ssl.ApplicationProtocolConfig$Protocol: int ordinal()>();
v = v[v];
tableswitch(v)
{
case 1: goto label;
case 2: goto label;
case 3: goto label;
case 4: goto label;
default: goto label;
};
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long ssl>;
v = staticinvoke <io.netty.internal.tcnative.SSL: java.lang.String getAlpnSelected(long)>(v);
if v == null goto label;
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: java.lang.String selectApplicationProtocol(java.util.List,io.netty.handler.ssl.ApplicationProtocolConfig$SelectedListenerFailureBehavior,java.lang.String)>(v, v, v);
v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: java.lang.String applicationProtocol> = v;
goto label;
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long ssl>;
v = staticinvoke <io.netty.internal.tcnative.SSL: java.lang.String getNextProtoNegotiated(long)>(v);
if v == null goto label;
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: java.lang.String selectApplicationProtocol(java.util.List,io.netty.handler.ssl.ApplicationProtocolConfig$SelectedListenerFailureBehavior,java.lang.String)>(v, v, v);
v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: java.lang.String applicationProtocol> = v;
goto label;
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long ssl>;
v = staticinvoke <io.netty.internal.tcnative.SSL: java.lang.String getAlpnSelected(long)>(v);
if v != null goto label;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: long ssl>;
v = staticinvoke <io.netty.internal.tcnative.SSL: java.lang.String getNextProtoNegotiated(long)>(v);
label:
if v == null goto label;
v = specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: java.lang.String selectApplicationProtocol(java.util.List,io.netty.handler.ssl.ApplicationProtocolConfig$SelectedListenerFailureBehavior,java.lang.String)>(v, v, v);
v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: java.lang.String applicationProtocol> = v;
goto label;
label:
v = new java.lang.Error;
specialinvoke v.<java.lang.Error: void <init>()>();
throw v;
label:
return;
}
private java.lang.String selectApplicationProtocol(java.util.List, io.netty.handler.ssl.ApplicationProtocolConfig$SelectedListenerFailureBehavior, java.lang.String) throws javax.net.ssl.SSLException
{
java.lang.AssertionError v;
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
java.util.List v;
javax.net.ssl.SSLException v;
io.netty.handler.ssl.ApplicationProtocolConfig$SelectedListenerFailureBehavior v, v, v;
int v, v;
java.lang.Object v;
java.lang.String v, v;
boolean v, v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v := @parameter: java.util.List;
v := @parameter: io.netty.handler.ssl.ApplicationProtocolConfig$SelectedListenerFailureBehavior;
v := @parameter: java.lang.String;
v = <io.netty.handler.ssl.ApplicationProtocolConfig$SelectedListenerFailureBehavior: io.netty.handler.ssl.ApplicationProtocolConfig$SelectedListenerFailureBehavior ACCEPT>;
if v != v goto label;
return v;
label:
v = interfaceinvoke v.<java.util.List: int size()>();
v = <io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean $assertionsDisabled>;
if v != 0 goto label;
if v > 0 goto label;
v = new java.lang.AssertionError;
specialinvoke v.<java.lang.AssertionError: void <init>()>();
throw v;
label:
v = interfaceinvoke v.<java.util.List: boolean contains(java.lang.Object)>(v);
if v == 0 goto label;
return v;
label:
v = <io.netty.handler.ssl.ApplicationProtocolConfig$SelectedListenerFailureBehavior: io.netty.handler.ssl.ApplicationProtocolConfig$SelectedListenerFailureBehavior CHOOSE_MY_LAST_PROTOCOL>;
if v != v goto label;
v = v - 1;
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(v);
return v;
label:
v = new javax.net.ssl.SSLException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("unknown protocol \u0001");
specialinvoke v.<javax.net.ssl.SSLException: void <init>(java.lang.String)>(v);
throw v;
}
final void setSessionId(io.netty.handler.ssl.OpenSslSessionId)
{
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
io.netty.handler.ssl.OpenSslSessionId v;
io.netty.handler.ssl.OpenSslSession v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
v := @parameter: io.netty.handler.ssl.OpenSslSessionId;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: io.netty.handler.ssl.OpenSslSession session>;
interfaceinvoke v.<io.netty.handler.ssl.OpenSslSession: void setSessionId(io.netty.handler.ssl.OpenSslSessionId)>(v);
return;
}
static void <clinit>()
{
javax.security.cert.X509Certificate[] v;
javax.net.ssl.SSLEngineResult$HandshakeStatus v, v, v, v, v;
javax.net.ssl.SSLEngineResult v, v, v, v, v;
int[] v;
int v, v, v, v, v, v, v, v;
javax.net.ssl.SSLEngineResult$Status v, v, v, v, v;
boolean v, v;
io.netty.util.ResourceLeakDetector v;
io.netty.util.internal.logging.InternalLogger v;
io.netty.util.ResourceLeakDetectorFactory v;
java.lang.Class v;
v = class "Lio/netty/handler/ssl/ReferenceCountedOpenSslEngine;";
v = virtualinvoke v.<java.lang.Class: boolean desiredAssertionStatus()>();
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: boolean $assertionsDisabled> = v;
v = staticinvoke <io.netty.util.internal.logging.InternalLoggerFactory: io.netty.util.internal.logging.InternalLogger getInstance(java.lang.Class)>(class "Lio/netty/handler/ssl/ReferenceCountedOpenSslEngine;");
<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: io.netty.util.internal.logging.InternalLogger logger> = v;
v = staticinvoke <io.netty.util.ResourceLeakDetectorFactory: io.netty.util.ResourceLeakDetectorFactory instance()>();
v = virtualinvoke v.<io.netty.util.ResourceLeakDetectorFactory: io.netty.util.ResourceLeakDetector newResourceLeakDetector(java.lang.Class)>(class "Lio/netty/handler/ssl/ReferenceCountedOpenSslEngine;");
<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: io.netty.util.ResourceLeakDetector leakDetector> = v;
v = newarray (int)[6];
v = <io.netty.internal.tcnative.SSL: int SSL_OP_NO_SSLv2>;
v[0] = v;
v = <io.netty.internal.tcnative.SSL: int SSL_OP_NO_SSLv3>;
v[1] = v;
v = <io.netty.internal.tcnative.SSL: int SSL_OP_NO_TLSv1>;
v[2] = v;
v = <io.netty.internal.tcnative.SSL: int SSL_OP_NO_TLSv1_1>;
v[3] = v;
v = <io.netty.internal.tcnative.SSL: int SSL_OP_NO_TLSv1_2>;
v[4] = v;
v = <io.netty.internal.tcnative.SSL: int SSL_OP_NO_TLSv1_3>;
v[5] = v;
<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: int[] OPENSSL_OP_NO_PROTOCOLS> = v;
v = <io.netty.internal.tcnative.SSL: int SSL_MAX_PLAINTEXT_LENGTH>;
<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: int MAX_PLAINTEXT_LENGTH> = v;
v = <io.netty.internal.tcnative.SSL: int SSL_MAX_RECORD_LENGTH>;
<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: int MAX_RECORD_SIZE> = v;
v = new javax.net.ssl.SSLEngineResult;
v = <javax.net.ssl.SSLEngineResult$Status: javax.net.ssl.SSLEngineResult$Status OK>;
v = <javax.net.ssl.SSLEngineResult$HandshakeStatus: javax.net.ssl.SSLEngineResult$HandshakeStatus NEED_UNWRAP>;
specialinvoke v.<javax.net.ssl.SSLEngineResult: void <init>(javax.net.ssl.SSLEngineResult$Status,javax.net.ssl.SSLEngineResult$HandshakeStatus,int,int)>(v, v, 0, 0);
<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: javax.net.ssl.SSLEngineResult NEED_UNWRAP_OK> = v;
v = new javax.net.ssl.SSLEngineResult;
v = <javax.net.ssl.SSLEngineResult$Status: javax.net.ssl.SSLEngineResult$Status CLOSED>;
v = <javax.net.ssl.SSLEngineResult$HandshakeStatus: javax.net.ssl.SSLEngineResult$HandshakeStatus NEED_UNWRAP>;
specialinvoke v.<javax.net.ssl.SSLEngineResult: void <init>(javax.net.ssl.SSLEngineResult$Status,javax.net.ssl.SSLEngineResult$HandshakeStatus,int,int)>(v, v, 0, 0);
<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: javax.net.ssl.SSLEngineResult NEED_UNWRAP_CLOSED> = v;
v = new javax.net.ssl.SSLEngineResult;
v = <javax.net.ssl.SSLEngineResult$Status: javax.net.ssl.SSLEngineResult$Status OK>;
v = <javax.net.ssl.SSLEngineResult$HandshakeStatus: javax.net.ssl.SSLEngineResult$HandshakeStatus NEED_WRAP>;
specialinvoke v.<javax.net.ssl.SSLEngineResult: void <init>(javax.net.ssl.SSLEngineResult$Status,javax.net.ssl.SSLEngineResult$HandshakeStatus,int,int)>(v, v, 0, 0);
<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: javax.net.ssl.SSLEngineResult NEED_WRAP_OK> = v;
v = new javax.net.ssl.SSLEngineResult;
v = <javax.net.ssl.SSLEngineResult$Status: javax.net.ssl.SSLEngineResult$Status CLOSED>;
v = <javax.net.ssl.SSLEngineResult$HandshakeStatus: javax.net.ssl.SSLEngineResult$HandshakeStatus NEED_WRAP>;
specialinvoke v.<javax.net.ssl.SSLEngineResult: void <init>(javax.net.ssl.SSLEngineResult$Status,javax.net.ssl.SSLEngineResult$HandshakeStatus,int,int)>(v, v, 0, 0);
<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: javax.net.ssl.SSLEngineResult NEED_WRAP_CLOSED> = v;
v = new javax.net.ssl.SSLEngineResult;
v = <javax.net.ssl.SSLEngineResult$Status: javax.net.ssl.SSLEngineResult$Status CLOSED>;
v = <javax.net.ssl.SSLEngineResult$HandshakeStatus: javax.net.ssl.SSLEngineResult$HandshakeStatus NOT_HANDSHAKING>;
specialinvoke v.<javax.net.ssl.SSLEngineResult: void <init>(javax.net.ssl.SSLEngineResult$Status,javax.net.ssl.SSLEngineResult$HandshakeStatus,int,int)>(v, v, 0, 0);
<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: javax.net.ssl.SSLEngineResult CLOSED_NOT_HANDSHAKING> = v;
v = newarray (javax.security.cert.X509Certificate)[0];
<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: javax.security.cert.X509Certificate[] JAVAX_CERTS_NOT_SUPPORTED> = v;
return;
}
}