public final class io.netty.handler.ssl.OpenSsl
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: io.netty.handler.ssl.OpenSsl
  super_class: java.lang.Object
{
  private static final io.netty.util.internal.logging.InternalLogger logger;
    descriptor: Lio/netty/util/internal/logging/InternalLogger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.Throwable UNAVAILABILITY_CAUSE;
    descriptor: Ljava/lang/Throwable;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static final java.util.List<java.lang.String> DEFAULT_CIPHERS;
    descriptor: Ljava/util/List;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/List<Ljava/lang/String;>;

  static final java.util.Set<java.lang.String> AVAILABLE_CIPHER_SUITES;
    descriptor: Ljava/util/Set;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Set<Ljava/lang/String;>;

  private static final java.util.Set<java.lang.String> AVAILABLE_OPENSSL_CIPHER_SUITES;
    descriptor: Ljava/util/Set;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Set<Ljava/lang/String;>;

  private static final java.util.Set<java.lang.String> AVAILABLE_JAVA_CIPHER_SUITES;
    descriptor: Ljava/util/Set;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Set<Ljava/lang/String;>;

  private static final boolean SUPPORTS_KEYMANAGER_FACTORY;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final boolean SUPPORTS_HOSTNAME_VALIDATION;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final boolean USE_KEYMANAGER_FACTORY;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final boolean SUPPORTS_OCSP;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static final java.util.Set<java.lang.String> SUPPORTED_PROTOCOLS_SET;
    descriptor: Ljava/util/Set;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Set<Ljava/lang/String;>;

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=19, args_size=0
         0: .line 56
            ldc Lio/netty/handler/ssl/OpenSsl;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic io.netty.handler.ssl.OpenSsl.$assertionsDisabled:Z
         3: .line 58
            ldc Lio/netty/handler/ssl/OpenSsl;
            invokestatic io.netty.util.internal.logging.InternalLoggerFactory.getInstance:(Ljava/lang/Class;)Lio/netty/util/internal/logging/InternalLogger;
            putstatic io.netty.handler.ssl.OpenSsl.logger:Lio/netty/util/internal/logging/InternalLogger;
         4: .line 73
            aconst_null
            astore 0 /* cause */
        start local 0 // java.lang.Throwable cause
         5: .line 75
            ldc "io.netty.handler.ssl.noOpenSsl"
            iconst_0
            invokestatic io.netty.util.internal.SystemPropertyUtil.getBoolean:(Ljava/lang/String;Z)Z
            ifeq 16
         6: .line 76
            new java.lang.UnsupportedOperationException
            dup
         7: .line 77
            ldc "OpenSSL was explicit disabled with -Dio.netty.handler.ssl.noOpenSsl=true"
         8: .line 76
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            astore 0 /* cause */
         9: .line 79
            getstatic io.netty.handler.ssl.OpenSsl.logger:Lio/netty/util/internal/logging/InternalLogger;
        10: .line 80
            new java.lang.StringBuilder
            dup
            ldc "netty-tcnative explicit disabled; "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        11: .line 81
            ldc Lio/netty/handler/ssl/OpenSslEngine;
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " will be unavailable."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        12: .line 80
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        13: .line 81
            aload 0 /* cause */
        14: .line 79
            invokeinterface io.netty.util.internal.logging.InternalLogger.debug:(Ljava/lang/String;Ljava/lang/Throwable;)V
        15: .line 82
            goto 51
        16: .line 85
      StackMap locals: java.lang.Throwable
      StackMap stack:
            ldc "io.netty.internal.tcnative.SSL"
            iconst_0
            ldc Lio/netty/handler/ssl/OpenSsl;
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            invokestatic java.lang.Class.forName:(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
            pop
        17: .line 86
            goto 25
      StackMap locals:
      StackMap stack: java.lang.ClassNotFoundException
        18: astore 1 /* t */
        start local 1 // java.lang.ClassNotFoundException t
        19: .line 87
            aload 1 /* t */
            astore 0 /* cause */
        20: .line 88
            getstatic io.netty.handler.ssl.OpenSsl.logger:Lio/netty/util/internal/logging/InternalLogger;
        21: .line 89
            new java.lang.StringBuilder
            dup
            ldc "netty-tcnative not in the classpath; "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        22: .line 90
            ldc Lio/netty/handler/ssl/OpenSslEngine;
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " will be unavailable."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        23: .line 89
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        24: .line 88
            invokeinterface io.netty.util.internal.logging.InternalLogger.debug:(Ljava/lang/String;)V
        end local 1 // java.lang.ClassNotFoundException t
        25: .line 94
      StackMap locals:
      StackMap stack:
            aload 0 /* cause */
            ifnonnull 51
        26: .line 97
            invokestatic io.netty.handler.ssl.OpenSsl.loadTcNative:()V
        27: .line 98
            goto 38
      StackMap locals:
      StackMap stack: java.lang.Throwable
        28: astore 1 /* t */
        start local 1 // java.lang.Throwable t
        29: .line 99
            aload 1 /* t */
            astore 0 /* cause */
        30: .line 100
            getstatic io.netty.handler.ssl.OpenSsl.logger:Lio/netty/util/internal/logging/InternalLogger;
        31: .line 101
            new java.lang.StringBuilder
            dup
            ldc "Failed to load netty-tcnative; "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        32: .line 102
            ldc Lio/netty/handler/ssl/OpenSslEngine;
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " will be unavailable, unless the "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        33: .line 103
            ldc "application has already loaded the symbols by some other means. "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        34: .line 104
            ldc "See http://netty.io/wiki/forked-tomcat-native.html for more information."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        35: .line 101
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        36: .line 104
            aload 1 /* t */
        37: .line 100
            invokeinterface io.netty.util.internal.logging.InternalLogger.debug:(Ljava/lang/String;Ljava/lang/Throwable;)V
        end local 1 // java.lang.Throwable t
        38: .line 108
      StackMap locals:
      StackMap stack:
            invokestatic io.netty.handler.ssl.OpenSsl.initializeTcNative:()Z
            pop
        39: .line 113
            aconst_null
            astore 0 /* cause */
        40: .line 114
            goto 51
      StackMap locals:
      StackMap stack: java.lang.Throwable
        41: astore 1 /* t */
        start local 1 // java.lang.Throwable t
        42: .line 115
            aload 0 /* cause */
            ifnonnull 44
        43: .line 116
            aload 1 /* t */
            astore 0 /* cause */
        44: .line 118
      StackMap locals: java.lang.Throwable
      StackMap stack:
            getstatic io.netty.handler.ssl.OpenSsl.logger:Lio/netty/util/internal/logging/InternalLogger;
        45: .line 119
            new java.lang.StringBuilder
            dup
            ldc "Failed to initialize netty-tcnative; "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        46: .line 120
            ldc Lio/netty/handler/ssl/OpenSslEngine;
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " will be unavailable. "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        47: .line 121
            ldc "See http://netty.io/wiki/forked-tomcat-native.html for more information."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        48: .line 119
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        49: .line 121
            aload 1 /* t */
        50: .line 118
            invokeinterface io.netty.util.internal.logging.InternalLogger.debug:(Ljava/lang/String;Ljava/lang/Throwable;)V
        end local 1 // java.lang.Throwable t
        51: .line 126
      StackMap locals:
      StackMap stack:
            aload 0 /* cause */
            putstatic io.netty.handler.ssl.OpenSsl.UNAVAILABILITY_CAUSE:Ljava/lang/Throwable;
        52: .line 128
            aload 0 /* cause */
            ifnonnull 148
        53: .line 129
            getstatic io.netty.handler.ssl.OpenSsl.logger:Lio/netty/util/internal/logging/InternalLogger;
            ldc "netty-tcnative using native library: {}"
            invokestatic io.netty.internal.tcnative.SSL.versionString:()Ljava/lang/String;
            invokeinterface io.netty.util.internal.logging.InternalLogger.debug:(Ljava/lang/String;Ljava/lang/Object;)V
        54: .line 131
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 1 /* defaultCiphers */
        start local 1 // java.util.List defaultCiphers
        55: .line 132
            new java.util.LinkedHashSet
            dup
            sipush 128
            invokespecial java.util.LinkedHashSet.<init>:(I)V
            astore 2 /* availableOpenSslCipherSuites */
        start local 2 // java.util.Set availableOpenSslCipherSuites
        56: .line 133
            iconst_0
            istore 3 /* supportsKeyManagerFactory */
        start local 3 // boolean supportsKeyManagerFactory
        57: .line 134
            iconst_0
            istore 4 /* useKeyManagerFactory */
        start local 4 // boolean useKeyManagerFactory
        58: .line 135
            iconst_0
            istore 5 /* supportsHostNameValidation */
        start local 5 // boolean supportsHostNameValidation
        59: .line 137
            bipush 31
            iconst_1
            invokestatic io.netty.internal.tcnative.SSLContext.make:(II)J
            lstore 6 /* sslCtx */
        start local 6 // long sslCtx
        60: .line 138
            lconst_0
            lstore 8 /* certBio */
        start local 8 // long certBio
        61: .line 139
            aconst_null
            astore 10 /* cert */
        start local 10 // io.netty.handler.ssl.util.SelfSignedCertificate cert
        62: .line 141
            lload 6 /* sslCtx */
            ldc "ALL"
            invokestatic io.netty.internal.tcnative.SSLContext.setCipherSuite:(JLjava/lang/String;)Z
            pop
        63: .line 142
            lload 6 /* sslCtx */
            iconst_1
            invokestatic io.netty.internal.tcnative.SSL.newSSL:(JZ)J
            lstore 11 /* ssl */
        start local 11 // long ssl
        64: .line 144
            lload 11 /* ssl */
            invokestatic io.netty.internal.tcnative.SSL.getCiphers:(J)[Ljava/lang/String;
            dup
            astore 16
            arraylength
            istore 15
            iconst_0
            istore 14
            goto 70
      StackMap locals: java.lang.Throwable java.util.List java.util.Set int int int long long io.netty.handler.ssl.util.SelfSignedCertificate long top int int java.lang.String[]
      StackMap stack:
        65: aload 16
            iload 14
            aaload
            astore 13 /* c */
        start local 13 // java.lang.String c
        66: .line 146
            aload 13 /* c */
            ifnull 69
            aload 13 /* c */
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 69
            aload 2 /* availableOpenSslCipherSuites */
            aload 13 /* c */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 68
        67: .line 147
            goto 69
        68: .line 149
      StackMap locals: java.lang.Throwable java.util.List java.util.Set int int int long long io.netty.handler.ssl.util.SelfSignedCertificate long java.lang.String int int java.lang.String[]
      StackMap stack:
            aload 2 /* availableOpenSslCipherSuites */
            aload 13 /* c */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 13 // java.lang.String c
        69: .line 144
      StackMap locals: java.lang.Throwable java.util.List java.util.Set int int int long long io.netty.handler.ssl.util.SelfSignedCertificate long top int int java.lang.String[]
      StackMap stack:
            iinc 14 1
      StackMap locals:
      StackMap stack:
        70: iload 14
            iload 15
            if_icmplt 65
        71: .line 153
            lload 11 /* ssl */
            iconst_0
            ldc "netty.io"
            invokestatic io.netty.internal.tcnative.SSL.setHostNameValidation:(JILjava/lang/String;)V
        72: .line 154
            iconst_1
            istore 5 /* supportsHostNameValidation */
        73: .line 155
            goto 76
      StackMap locals: java.lang.Throwable java.util.List java.util.Set int int int long long io.netty.handler.ssl.util.SelfSignedCertificate long
      StackMap stack: java.lang.Throwable
        74: pop
        75: .line 156
            getstatic io.netty.handler.ssl.OpenSsl.logger:Lio/netty/util/internal/logging/InternalLogger;
            ldc "Hostname Verification not supported."
            invokeinterface io.netty.util.internal.logging.InternalLogger.debug:(Ljava/lang/String;)V
        76: .line 159
      StackMap locals:
      StackMap stack:
            new io.netty.handler.ssl.util.SelfSignedCertificate
            dup
            invokespecial io.netty.handler.ssl.util.SelfSignedCertificate.<init>:()V
            astore 10 /* cert */
        77: .line 160
            iconst_1
            anewarray java.security.cert.X509Certificate
            dup
            iconst_0
            aload 10 /* cert */
            invokevirtual io.netty.handler.ssl.util.SelfSignedCertificate.cert:()Ljava/security/cert/X509Certificate;
            aastore
            invokestatic io.netty.handler.ssl.ReferenceCountedOpenSslContext.toBIO:([Ljava/security/cert/X509Certificate;)J
            lstore 8 /* certBio */
        78: .line 161
            lload 11 /* ssl */
            lload 8 /* certBio */
            iconst_0
            invokestatic io.netty.internal.tcnative.SSL.setCertificateChainBio:(JJZ)V
        79: .line 162
            iconst_1
            istore 3 /* supportsKeyManagerFactory */
        80: .line 164
            new io.netty.handler.ssl.OpenSsl$1
            dup
            invokespecial io.netty.handler.ssl.OpenSsl$1.<init>:()V
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            istore 4 /* useKeyManagerFactory */
        81: .line 171
            goto 95
      StackMap locals:
      StackMap stack: java.lang.Throwable
        82: pop
        83: .line 172
            getstatic io.netty.handler.ssl.OpenSsl.logger:Lio/netty/util/internal/logging/InternalLogger;
            ldc "Failed to get useKeyManagerFactory system property."
            invokeinterface io.netty.util.internal.logging.InternalLogger.debug:(Ljava/lang/String;)V
        84: .line 174
            goto 95
      StackMap locals:
      StackMap stack: java.lang.Throwable
        85: pop
        86: .line 175
            getstatic io.netty.handler.ssl.OpenSsl.logger:Lio/netty/util/internal/logging/InternalLogger;
            ldc "KeyManagerFactory not supported."
            invokeinterface io.netty.util.internal.logging.InternalLogger.debug:(Ljava/lang/String;)V
        87: .line 177
            goto 95
      StackMap locals:
      StackMap stack: java.lang.Throwable
        88: astore 17
        89: .line 178
            lload 11 /* ssl */
            invokestatic io.netty.internal.tcnative.SSL.freeSSL:(J)V
        90: .line 179
            lload 8 /* certBio */
            lconst_0
            lcmp
            ifeq 92
        91: .line 180
            lload 8 /* certBio */
            invokestatic io.netty.internal.tcnative.SSL.freeBIO:(J)V
        92: .line 182
      StackMap locals: java.lang.Throwable java.util.List java.util.Set int int int long long io.netty.handler.ssl.util.SelfSignedCertificate long top top top top java.lang.Throwable
      StackMap stack:
            aload 10 /* cert */
            ifnull 94
        93: .line 183
            aload 10 /* cert */
            invokevirtual io.netty.handler.ssl.util.SelfSignedCertificate.delete:()V
        94: .line 185
      StackMap locals:
      StackMap stack:
            aload 17
            athrow
        95: .line 178
      StackMap locals: java.lang.Throwable java.util.List java.util.Set int int int long long io.netty.handler.ssl.util.SelfSignedCertificate long
      StackMap stack:
            lload 11 /* ssl */
            invokestatic io.netty.internal.tcnative.SSL.freeSSL:(J)V
        96: .line 179
            lload 8 /* certBio */
            lconst_0
            lcmp
            ifeq 98
        97: .line 180
            lload 8 /* certBio */
            invokestatic io.netty.internal.tcnative.SSL.freeBIO:(J)V
        98: .line 182
      StackMap locals:
      StackMap stack:
            aload 10 /* cert */
            ifnull 104
        99: .line 183
            aload 10 /* cert */
            invokevirtual io.netty.handler.ssl.util.SelfSignedCertificate.delete:()V
        end local 11 // long ssl
       100: .line 186
            goto 104
      StackMap locals: java.lang.Throwable java.util.List java.util.Set int int int long long io.netty.handler.ssl.util.SelfSignedCertificate
      StackMap stack: java.lang.Throwable
       101: astore 18
       102: .line 187
            lload 6 /* sslCtx */
            invokestatic io.netty.internal.tcnative.SSLContext.free:(J)I
            pop
       103: .line 188
            aload 18
            athrow
       104: .line 187
      StackMap locals:
      StackMap stack:
            lload 6 /* sslCtx */
            invokestatic io.netty.internal.tcnative.SSLContext.free:(J)I
            pop
        end local 10 // io.netty.handler.ssl.util.SelfSignedCertificate cert
        end local 8 // long certBio
        end local 6 // long sslCtx
       105: .line 189
            goto 108
      StackMap locals: java.lang.Throwable java.util.List java.util.Set int int int
      StackMap stack: java.lang.Exception
       106: astore 6 /* e */
        start local 6 // java.lang.Exception e
       107: .line 190
            getstatic io.netty.handler.ssl.OpenSsl.logger:Lio/netty/util/internal/logging/InternalLogger;
            ldc "Failed to get the list of available OpenSSL cipher suites."
            aload 6 /* e */
            invokeinterface io.netty.util.internal.logging.InternalLogger.warn:(Ljava/lang/String;Ljava/lang/Throwable;)V
        end local 6 // java.lang.Exception e
       108: .line 192
      StackMap locals:
      StackMap stack:
            aload 2 /* availableOpenSslCipherSuites */
            invokestatic java.util.Collections.unmodifiableSet:(Ljava/util/Set;)Ljava/util/Set;
            putstatic io.netty.handler.ssl.OpenSsl.AVAILABLE_OPENSSL_CIPHER_SUITES:Ljava/util/Set;
       109: .line 193
            new java.util.LinkedHashSet
            dup
       110: .line 194
            getstatic io.netty.handler.ssl.OpenSsl.AVAILABLE_OPENSSL_CIPHER_SUITES:Ljava/util/Set;
            invokeinterface java.util.Set.size:()I
            iconst_2
            imul
       111: .line 193
            invokespecial java.util.LinkedHashSet.<init>:(I)V
            astore 6 /* availableJavaCipherSuites */
        start local 6 // java.util.Set availableJavaCipherSuites
       112: .line 195
            getstatic io.netty.handler.ssl.OpenSsl.AVAILABLE_OPENSSL_CIPHER_SUITES:Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 8
            goto 116
      StackMap locals: java.lang.Throwable java.util.List java.util.Set int int int java.util.Set top java.util.Iterator
      StackMap stack:
       113: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 7 /* cipher */
        start local 7 // java.lang.String cipher
       114: .line 197
            aload 6 /* availableJavaCipherSuites */
            aload 7 /* cipher */
            ldc "TLS"
            invokestatic io.netty.handler.ssl.CipherSuiteConverter.toJava:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
       115: .line 198
            aload 6 /* availableJavaCipherSuites */
            aload 7 /* cipher */
            ldc "SSL"
            invokestatic io.netty.handler.ssl.CipherSuiteConverter.toJava:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 7 // java.lang.String cipher
       116: .line 195
      StackMap locals:
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 113
       117: .line 201
            aload 6 /* availableJavaCipherSuites */
            aload 1 /* defaultCiphers */
            getstatic io.netty.handler.ssl.SslUtils.DEFAULT_CIPHER_SUITES:[Ljava/lang/String;
            invokestatic io.netty.handler.ssl.SslUtils.addIfSupported:(Ljava/util/Set;Ljava/util/List;[Ljava/lang/String;)V
       118: .line 202
            aload 1 /* defaultCiphers */
            aload 6 /* availableJavaCipherSuites */
            invokestatic io.netty.handler.ssl.SslUtils.useFallbackCiphersIfDefaultIsEmpty:(Ljava/util/List;Ljava/lang/Iterable;)V
       119: .line 203
            aload 1 /* defaultCiphers */
            invokestatic java.util.Collections.unmodifiableList:(Ljava/util/List;)Ljava/util/List;
            putstatic io.netty.handler.ssl.OpenSsl.DEFAULT_CIPHERS:Ljava/util/List;
       120: .line 205
            aload 6 /* availableJavaCipherSuites */
            invokestatic java.util.Collections.unmodifiableSet:(Ljava/util/Set;)Ljava/util/Set;
            putstatic io.netty.handler.ssl.OpenSsl.AVAILABLE_JAVA_CIPHER_SUITES:Ljava/util/Set;
       121: .line 207
            new java.util.LinkedHashSet
            dup
       122: .line 208
            getstatic io.netty.handler.ssl.OpenSsl.AVAILABLE_OPENSSL_CIPHER_SUITES:Ljava/util/Set;
            invokeinterface java.util.Set.size:()I
            getstatic io.netty.handler.ssl.OpenSsl.AVAILABLE_JAVA_CIPHER_SUITES:Ljava/util/Set;
            invokeinterface java.util.Set.size:()I
            iadd
       123: .line 207
            invokespecial java.util.LinkedHashSet.<init>:(I)V
            astore 7 /* availableCipherSuites */
        start local 7 // java.util.Set availableCipherSuites
       124: .line 209
            aload 7 /* availableCipherSuites */
            getstatic io.netty.handler.ssl.OpenSsl.AVAILABLE_OPENSSL_CIPHER_SUITES:Ljava/util/Set;
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
       125: .line 210
            aload 7 /* availableCipherSuites */
            getstatic io.netty.handler.ssl.OpenSsl.AVAILABLE_JAVA_CIPHER_SUITES:Ljava/util/Set;
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
       126: .line 212
            aload 7 /* availableCipherSuites */
            putstatic io.netty.handler.ssl.OpenSsl.AVAILABLE_CIPHER_SUITES:Ljava/util/Set;
       127: .line 213
            iload 3 /* supportsKeyManagerFactory */
            putstatic io.netty.handler.ssl.OpenSsl.SUPPORTS_KEYMANAGER_FACTORY:Z
       128: .line 214
            iload 5 /* supportsHostNameValidation */
            putstatic io.netty.handler.ssl.OpenSsl.SUPPORTS_HOSTNAME_VALIDATION:Z
       129: .line 215
            iload 4 /* useKeyManagerFactory */
            putstatic io.netty.handler.ssl.OpenSsl.USE_KEYMANAGER_FACTORY:Z
       130: .line 217
            new java.util.LinkedHashSet
            dup
            bipush 6
            invokespecial java.util.LinkedHashSet.<init>:(I)V
            astore 8 /* protocols */
        start local 8 // java.util.Set protocols
       131: .line 219
            aload 8 /* protocols */
            ldc "SSLv2Hello"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
       132: .line 220
            iconst_1
            invokestatic io.netty.handler.ssl.OpenSsl.doesSupportProtocol:(I)Z
            ifeq 134
       133: .line 221
            aload 8 /* protocols */
            ldc "SSLv2"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
       134: .line 223
      StackMap locals: java.lang.Throwable java.util.List java.util.Set int int int java.util.Set java.util.Set java.util.Set
      StackMap stack:
            iconst_2
            invokestatic io.netty.handler.ssl.OpenSsl.doesSupportProtocol:(I)Z
            ifeq 136
       135: .line 224
            aload 8 /* protocols */
            ldc "SSLv3"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
       136: .line 226
      StackMap locals:
      StackMap stack:
            iconst_4
            invokestatic io.netty.handler.ssl.OpenSsl.doesSupportProtocol:(I)Z
            ifeq 138
       137: .line 227
            aload 8 /* protocols */
            ldc "TLSv1"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
       138: .line 229
      StackMap locals:
      StackMap stack:
            bipush 8
            invokestatic io.netty.handler.ssl.OpenSsl.doesSupportProtocol:(I)Z
            ifeq 140
       139: .line 230
            aload 8 /* protocols */
            ldc "TLSv1.1"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
       140: .line 232
      StackMap locals:
      StackMap stack:
            bipush 16
            invokestatic io.netty.handler.ssl.OpenSsl.doesSupportProtocol:(I)Z
            ifeq 142
       141: .line 233
            aload 8 /* protocols */
            ldc "TLSv1.2"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
       142: .line 236
      StackMap locals:
      StackMap stack:
            aload 8 /* protocols */
            invokestatic java.util.Collections.unmodifiableSet:(Ljava/util/Set;)Ljava/util/Set;
            putstatic io.netty.handler.ssl.OpenSsl.SUPPORTED_PROTOCOLS_SET:Ljava/util/Set;
       143: .line 237
            invokestatic io.netty.handler.ssl.OpenSsl.doesSupportOcsp:()Z
            putstatic io.netty.handler.ssl.OpenSsl.SUPPORTS_OCSP:Z
       144: .line 239
            getstatic io.netty.handler.ssl.OpenSsl.logger:Lio/netty/util/internal/logging/InternalLogger;
            invokeinterface io.netty.util.internal.logging.InternalLogger.isDebugEnabled:()Z
            ifeq 157
       145: .line 240
            getstatic io.netty.handler.ssl.OpenSsl.logger:Lio/netty/util/internal/logging/InternalLogger;
            ldc "Supported protocols (OpenSSL): {} "
            iconst_1
            anewarray java.util.Set
            dup
            iconst_0
            getstatic io.netty.handler.ssl.OpenSsl.SUPPORTED_PROTOCOLS_SET:Ljava/util/Set;
            aastore
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            invokeinterface io.netty.util.internal.logging.InternalLogger.debug:(Ljava/lang/String;Ljava/lang/Object;)V
       146: .line 241
            getstatic io.netty.handler.ssl.OpenSsl.logger:Lio/netty/util/internal/logging/InternalLogger;
            ldc "Default cipher suites (OpenSSL): {}"
            getstatic io.netty.handler.ssl.OpenSsl.DEFAULT_CIPHERS:Ljava/util/List;
            invokeinterface io.netty.util.internal.logging.InternalLogger.debug:(Ljava/lang/String;Ljava/lang/Object;)V
        end local 8 // java.util.Set protocols
        end local 7 // java.util.Set availableCipherSuites
        end local 6 // java.util.Set availableJavaCipherSuites
        end local 5 // boolean supportsHostNameValidation
        end local 4 // boolean useKeyManagerFactory
        end local 3 // boolean supportsKeyManagerFactory
        end local 2 // java.util.Set availableOpenSslCipherSuites
        end local 1 // java.util.List defaultCiphers
       147: .line 243
            goto 157
       148: .line 244
      StackMap locals: java.lang.Throwable
      StackMap stack:
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            putstatic io.netty.handler.ssl.OpenSsl.DEFAULT_CIPHERS:Ljava/util/List;
       149: .line 245
            invokestatic java.util.Collections.emptySet:()Ljava/util/Set;
            putstatic io.netty.handler.ssl.OpenSsl.AVAILABLE_OPENSSL_CIPHER_SUITES:Ljava/util/Set;
       150: .line 246
            invokestatic java.util.Collections.emptySet:()Ljava/util/Set;
            putstatic io.netty.handler.ssl.OpenSsl.AVAILABLE_JAVA_CIPHER_SUITES:Ljava/util/Set;
       151: .line 247
            invokestatic java.util.Collections.emptySet:()Ljava/util/Set;
            putstatic io.netty.handler.ssl.OpenSsl.AVAILABLE_CIPHER_SUITES:Ljava/util/Set;
       152: .line 248
            iconst_0
            putstatic io.netty.handler.ssl.OpenSsl.SUPPORTS_KEYMANAGER_FACTORY:Z
       153: .line 249
            iconst_0
            putstatic io.netty.handler.ssl.OpenSsl.SUPPORTS_HOSTNAME_VALIDATION:Z
       154: .line 250
            iconst_0
            putstatic io.netty.handler.ssl.OpenSsl.USE_KEYMANAGER_FACTORY:Z
       155: .line 251
            invokestatic java.util.Collections.emptySet:()Ljava/util/Set;
            putstatic io.netty.handler.ssl.OpenSsl.SUPPORTED_PROTOCOLS_SET:Ljava/util/Set;
       156: .line 252
            iconst_0
            putstatic io.netty.handler.ssl.OpenSsl.SUPPORTS_OCSP:Z
        end local 0 // java.lang.Throwable cause
       157: .line 254
      StackMap locals:
      StackMap stack:
            return
      LocalVariableTable:
        Start  End  Slot                          Name  Signature
            5  157     0                         cause  Ljava/lang/Throwable;
           19   25     1                             t  Ljava/lang/ClassNotFoundException;
           29   38     1                             t  Ljava/lang/Throwable;
           42   51     1                             t  Ljava/lang/Throwable;
           55  147     1                defaultCiphers  Ljava/util/List<Ljava/lang/String;>;
           56  147     2  availableOpenSslCipherSuites  Ljava/util/Set<Ljava/lang/String;>;
           57  147     3     supportsKeyManagerFactory  Z
           58  147     4          useKeyManagerFactory  Z
           59  147     5    supportsHostNameValidation  Z
           60  105     6                        sslCtx  J
           61  105     8                       certBio  J
           62  105    10                          cert  Lio/netty/handler/ssl/util/SelfSignedCertificate;
           64  100    11                           ssl  J
           66   69    13                             c  Ljava/lang/String;
          107  108     6                             e  Ljava/lang/Exception;
          112  147     6     availableJavaCipherSuites  Ljava/util/Set<Ljava/lang/String;>;
          114  116     7                        cipher  Ljava/lang/String;
          124  147     7         availableCipherSuites  Ljava/util/Set<Ljava/lang/String;>;
          131  147     8                     protocols  Ljava/util/Set<Ljava/lang/String;>;
      Exception table:
        from    to  target  type
          16    17      18  Class java.lang.ClassNotFoundException
          26    27      28  Class java.lang.Throwable
          38    40      41  Class java.lang.Throwable
          71    73      74  Class java.lang.Throwable
          80    81      82  Class java.lang.Throwable
          76    84      85  Class java.lang.Throwable
          64    88      88  any
          62   101     101  any
          59   105     106  Class java.lang.Exception

  private static boolean doesSupportOcsp();
    descriptor: ()Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=0
         0: .line 257
            iconst_0
            istore 0 /* supportsOcsp */
        start local 0 // boolean supportsOcsp
         1: .line 258
            invokestatic io.netty.handler.ssl.OpenSsl.version:()I
            i2l
            ldc 268443648
            lcmp
            iflt 16
         2: .line 259
            ldc -1
            lstore 1 /* sslCtx */
        start local 1 // long sslCtx
         3: .line 261
            bipush 16
            iconst_1
            invokestatic io.netty.internal.tcnative.SSLContext.make:(II)J
            lstore 1 /* sslCtx */
         4: .line 262
            lload 1 /* sslCtx */
            iconst_0
            invokestatic io.netty.internal.tcnative.SSLContext.enableOcsp:(JZ)V
         5: .line 263
            iconst_1
            istore 0 /* supportsOcsp */
         6: .line 264
            goto 14
      StackMap locals: int long
      StackMap stack: java.lang.Exception
         7: pop
         8: .line 267
            lload 1 /* sslCtx */
            ldc -1
            lcmp
            ifeq 16
         9: .line 268
            lload 1 /* sslCtx */
            invokestatic io.netty.internal.tcnative.SSLContext.free:(J)I
            pop
            goto 16
        10: .line 266
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 3
        11: .line 267
            lload 1 /* sslCtx */
            ldc -1
            lcmp
            ifeq 13
        12: .line 268
            lload 1 /* sslCtx */
            invokestatic io.netty.internal.tcnative.SSLContext.free:(J)I
            pop
        13: .line 270
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 3
            athrow
        14: .line 267
      StackMap locals:
      StackMap stack:
            lload 1 /* sslCtx */
            ldc -1
            lcmp
            ifeq 16
        15: .line 268
            lload 1 /* sslCtx */
            invokestatic io.netty.internal.tcnative.SSLContext.free:(J)I
            pop
        end local 1 // long sslCtx
        16: .line 272
      StackMap locals:
      StackMap stack:
            iload 0 /* supportsOcsp */
            ireturn
        end local 0 // boolean supportsOcsp
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            1   17     0  supportsOcsp  Z
            3   16     1        sslCtx  J
      Exception table:
        from    to  target  type
           3     6       7  Class java.lang.Exception
           3     8      10  any

  private static boolean doesSupportProtocol(int);
    descriptor: (I)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // int protocol
         0: .line 275
            ldc -1
            lstore 1 /* sslCtx */
        start local 1 // long sslCtx
         1: .line 277
            iload 0 /* protocol */
            iconst_2
            invokestatic io.netty.internal.tcnative.SSLContext.make:(II)J
            lstore 1 /* sslCtx */
         2: .line 282
            lload 1 /* sslCtx */
            ldc -1
            lcmp
            ifeq 4
         3: .line 283
            lload 1 /* sslCtx */
            invokestatic io.netty.internal.tcnative.SSLContext.free:(J)I
            pop
         4: .line 278
      StackMap locals: long
      StackMap stack:
            iconst_1
            ireturn
         5: .line 279
      StackMap locals:
      StackMap stack: java.lang.Exception
            pop
         6: .line 282
            lload 1 /* sslCtx */
            ldc -1
            lcmp
            ifeq 8
         7: .line 283
            lload 1 /* sslCtx */
            invokestatic io.netty.internal.tcnative.SSLContext.free:(J)I
            pop
         8: .line 280
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         9: .line 281
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 3
        10: .line 282
            lload 1 /* sslCtx */
            ldc -1
            lcmp
            ifeq 12
        11: .line 283
            lload 1 /* sslCtx */
            invokestatic io.netty.internal.tcnative.SSLContext.free:(J)I
            pop
        12: .line 285
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 3
            athrow
        end local 1 // long sslCtx
        end local 0 // int protocol
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   13     0  protocol  I
            1   13     1    sslCtx  J
      Exception table:
        from    to  target  type
           1     2       5  Class java.lang.Exception
           1     2       9  any
           5     6       9  any
    MethodParameters:
          Name  Flags
      protocol  

  public static boolean isAvailable();
    descriptor: ()Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 294
            getstatic io.netty.handler.ssl.OpenSsl.UNAVAILABILITY_CAUSE:Ljava/lang/Throwable;
            ifnonnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static boolean isAlpnSupported();
    descriptor: ()Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 302
            invokestatic io.netty.handler.ssl.OpenSsl.version:()I
            i2l
            ldc 268443648
            lcmp
            iflt 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static boolean isOcspSupported();
    descriptor: ()Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 309
            getstatic io.netty.handler.ssl.OpenSsl.SUPPORTS_OCSP:Z
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static int version();
    descriptor: ()I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 317
            invokestatic io.netty.handler.ssl.OpenSsl.isAvailable:()Z
            ifeq 1
            invokestatic io.netty.internal.tcnative.SSL.version:()I
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_m1
      StackMap locals:
      StackMap stack: int
         2: ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static java.lang.String versionString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 325
            invokestatic io.netty.handler.ssl.OpenSsl.isAvailable:()Z
            ifeq 1
            invokestatic io.netty.internal.tcnative.SSL.versionString:()Ljava/lang/String;
            goto 2
      StackMap locals:
      StackMap stack:
         1: aconst_null
      StackMap locals:
      StackMap stack: java.lang.String
         2: areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static void ensureAvailability();
    descriptor: ()V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 335
            getstatic io.netty.handler.ssl.OpenSsl.UNAVAILABILITY_CAUSE:Ljava/lang/Throwable;
            ifnull 6
         1: .line 336
            new java.lang.UnsatisfiedLinkError
            dup
         2: .line 337
            ldc "failed to load the required native library"
         3: .line 336
            invokespecial java.lang.UnsatisfiedLinkError.<init>:(Ljava/lang/String;)V
         4: .line 337
            getstatic io.netty.handler.ssl.OpenSsl.UNAVAILABILITY_CAUSE:Ljava/lang/Throwable;
            invokevirtual java.lang.UnsatisfiedLinkError.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
         5: .line 336
            checkcast java.lang.Error
            athrow
         6: .line 339
      StackMap locals:
      StackMap stack:
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static java.lang.Throwable unavailabilityCause();
    descriptor: ()Ljava/lang/Throwable;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 348
            getstatic io.netty.handler.ssl.OpenSsl.UNAVAILABILITY_CAUSE:Ljava/lang/Throwable;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static java.util.Set<java.lang.String> availableCipherSuites();
    descriptor: ()Ljava/util/Set;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 356
            invokestatic io.netty.handler.ssl.OpenSsl.availableOpenSslCipherSuites:()Ljava/util/Set;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Signature: ()Ljava/util/Set<Ljava/lang/String;>;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public static java.util.Set<java.lang.String> availableOpenSslCipherSuites();
    descriptor: ()Ljava/util/Set;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 364
            getstatic io.netty.handler.ssl.OpenSsl.AVAILABLE_OPENSSL_CIPHER_SUITES:Ljava/util/Set;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Signature: ()Ljava/util/Set<Ljava/lang/String;>;

  public static java.util.Set<java.lang.String> availableJavaCipherSuites();
    descriptor: ()Ljava/util/Set;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 372
            getstatic io.netty.handler.ssl.OpenSsl.AVAILABLE_JAVA_CIPHER_SUITES:Ljava/util/Set;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Signature: ()Ljava/util/Set<Ljava/lang/String;>;

  public static boolean isCipherSuiteAvailable(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // java.lang.String cipherSuite
         0: .line 380
            aload 0 /* cipherSuite */
            invokestatic io.netty.handler.ssl.CipherSuiteConverter.toOpenSsl:(Ljava/lang/String;)Ljava/lang/String;
            astore 1 /* converted */
        start local 1 // java.lang.String converted
         1: .line 381
            aload 1 /* converted */
            ifnull 3
         2: .line 382
            aload 1 /* converted */
            astore 0 /* cipherSuite */
         3: .line 384
      StackMap locals: java.lang.String
      StackMap stack:
            getstatic io.netty.handler.ssl.OpenSsl.AVAILABLE_OPENSSL_CIPHER_SUITES:Ljava/util/Set;
            aload 0 /* cipherSuite */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // java.lang.String converted
        end local 0 // java.lang.String cipherSuite
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    4     0  cipherSuite  Ljava/lang/String;
            1    4     1    converted  Ljava/lang/String;
    MethodParameters:
             Name  Flags
      cipherSuite  

  public static boolean supportsKeyManagerFactory();
    descriptor: ()Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 391
            getstatic io.netty.handler.ssl.OpenSsl.SUPPORTS_KEYMANAGER_FACTORY:Z
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static boolean supportsHostnameValidation();
    descriptor: ()Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 399
            getstatic io.netty.handler.ssl.OpenSsl.SUPPORTS_HOSTNAME_VALIDATION:Z
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  static boolean useKeyManagerFactory();
    descriptor: ()Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 403
            getstatic io.netty.handler.ssl.OpenSsl.USE_KEYMANAGER_FACTORY:Z
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  static long memoryAddress(io.netty.buffer.ByteBuf);
    descriptor: (Lio/netty/buffer/ByteBuf;)J
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.netty.buffer.ByteBuf buf
         0: .line 407
            getstatic io.netty.handler.ssl.OpenSsl.$assertionsDisabled:Z
            ifne 1
            aload 0 /* buf */
            invokevirtual io.netty.buffer.ByteBuf.isDirect:()Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 408
      StackMap locals:
      StackMap stack:
            aload 0 /* buf */
            invokevirtual io.netty.buffer.ByteBuf.hasMemoryAddress:()Z
            ifeq 2
            aload 0 /* buf */
            invokevirtual io.netty.buffer.ByteBuf.memoryAddress:()J
            goto 3
      StackMap locals:
      StackMap stack:
         2: aload 0 /* buf */
            invokevirtual io.netty.buffer.ByteBuf.nioBuffer:()Ljava/nio/ByteBuffer;
            invokestatic io.netty.internal.tcnative.Buffer.address:(Ljava/nio/ByteBuffer;)J
      StackMap locals:
      StackMap stack: long
         3: lreturn
        end local 0 // io.netty.buffer.ByteBuf buf
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0   buf  Lio/netty/buffer/ByteBuf;
    MethodParameters:
      Name  Flags
      buf   

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.netty.handler.ssl.OpenSsl this
         0: .line 411
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // io.netty.handler.ssl.OpenSsl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/handler/ssl/OpenSsl;

  private static void loadTcNative();
    descriptor: ()V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=0
         0: .line 414
            invokestatic io.netty.util.internal.PlatformDependent.normalizedOs:()Ljava/lang/String;
            astore 0 /* os */
        start local 0 // java.lang.String os
         1: .line 415
            invokestatic io.netty.util.internal.PlatformDependent.normalizedArch:()Ljava/lang/String;
            astore 1 /* arch */
        start local 1 // java.lang.String arch
         2: .line 417
            new java.util.LinkedHashSet
            dup
            iconst_4
            invokespecial java.util.LinkedHashSet.<init>:(I)V
            astore 2 /* libNames */
        start local 2 // java.util.Set libNames
         3: .line 418
            ldc "netty_tcnative"
            astore 3 /* staticLibName */
        start local 3 // java.lang.String staticLibName
         4: .line 422
            aload 2 /* libNames */
            new java.lang.StringBuilder
            dup
            aload 3 /* staticLibName */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "_"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* os */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            bipush 95
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 1 /* arch */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         5: .line 423
            ldc "linux"
            aload 0 /* os */
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 7
         6: .line 425
            aload 2 /* libNames */
            new java.lang.StringBuilder
            dup
            aload 3 /* staticLibName */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "_"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* os */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            bipush 95
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 1 /* arch */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "_fedora"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         7: .line 427
      StackMap locals: java.lang.String java.lang.String java.util.Set java.lang.String
      StackMap stack:
            aload 2 /* libNames */
            new java.lang.StringBuilder
            dup
            aload 3 /* staticLibName */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "_"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* arch */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         8: .line 428
            aload 2 /* libNames */
            aload 3 /* staticLibName */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         9: .line 430
            ldc Lio/netty/internal/tcnative/SSL;
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
        10: .line 431
            aload 2 /* libNames */
            aload 2 /* libNames */
            invokeinterface java.util.Set.size:()I
            anewarray java.lang.String
            invokeinterface java.util.Set.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.String[]
        11: .line 430
            invokestatic io.netty.util.internal.NativeLibraryLoader.loadFirstAvailable:(Ljava/lang/ClassLoader;[Ljava/lang/String;)V
        12: .line 432
            return
        end local 3 // java.lang.String staticLibName
        end local 2 // java.util.Set libNames
        end local 1 // java.lang.String arch
        end local 0 // java.lang.String os
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            1   13     0             os  Ljava/lang/String;
            2   13     1           arch  Ljava/lang/String;
            3   13     2       libNames  Ljava/util/Set<Ljava/lang/String;>;
            4   13     3  staticLibName  Ljava/lang/String;
    Exceptions:
      throws java.lang.Exception

  private static boolean initializeTcNative();
    descriptor: ()Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 435
            invokestatic io.netty.internal.tcnative.Library.initialize:()Z
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws java.lang.Exception

  static void releaseIfNeeded(io.netty.util.ReferenceCounted);
    descriptor: (Lio/netty/util/ReferenceCounted;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.netty.util.ReferenceCounted counted
         0: .line 439
            aload 0 /* counted */
            invokeinterface io.netty.util.ReferenceCounted.refCnt:()I
            ifle 2
         1: .line 440
            aload 0 /* counted */
            invokestatic io.netty.util.ReferenceCountUtil.safeRelease:(Ljava/lang/Object;)V
         2: .line 442
      StackMap locals:
      StackMap stack:
            return
        end local 0 // io.netty.util.ReferenceCounted counted
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0  counted  Lio/netty/util/ReferenceCounted;
    MethodParameters:
         Name  Flags
      counted  
}
SourceFile: "OpenSsl.java"
NestMembers:
  io.netty.handler.ssl.OpenSsl$1
InnerClasses:
  io.netty.handler.ssl.OpenSsl$1