interface sun.security.ssl.SSLTransport
  minor version: 0
  major version: 59
  flags: flags: (0x0600) ACC_INTERFACE, ACC_ABSTRACT
  this_class: sun.security.ssl.SSLTransport
  super_class: java.lang.Object
{
  public abstract java.lang.String getPeerHost();
    descriptor: ()Ljava/lang/String;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract int getPeerPort();
    descriptor: ()I
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public void shutdown();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLTransport this
         0: .line 60
            return
        end local 0 // sun.security.ssl.SSLTransport this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/ssl/SSLTransport;
    Exceptions:
      throws java.io.IOException

  public abstract boolean useDelegatedTask();
    descriptor: ()Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public static sun.security.ssl.Plaintext decode(sun.security.ssl.TransportContext, java.nio.ByteBuffer[], int, int, java.nio.ByteBuffer[], int, int);
    descriptor: (Lsun/security/ssl/TransportContext;[Ljava/nio/ByteBuffer;II[Ljava/nio/ByteBuffer;II)Lsun/security/ssl/Plaintext;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=18, args_size=7
        start local 0 // sun.security.ssl.TransportContext context
        start local 1 // java.nio.ByteBuffer[] srcs
        start local 2 // int srcsOffset
        start local 3 // int srcsLength
        start local 4 // java.nio.ByteBuffer[] dsts
        start local 5 // int dstsOffset
        start local 6 // int dstsLength
         0: .line 105
            aconst_null
            astore 7 /* plaintexts */
        start local 7 // sun.security.ssl.Plaintext[] plaintexts
         1: .line 108
            aload 0 /* context */
            getfield sun.security.ssl.TransportContext.inputRecord:Lsun/security/ssl/InputRecord;
            aload 1 /* srcs */
            iload 2 /* srcsOffset */
            iload 3 /* srcsLength */
            invokevirtual sun.security.ssl.InputRecord.decode:([Ljava/nio/ByteBuffer;II)[Lsun/security/ssl/Plaintext;
         2: .line 107
            astore 7 /* plaintexts */
         3: .line 109
            goto 22
      StackMap locals: sun.security.ssl.TransportContext java.nio.ByteBuffer[] int int java.nio.ByteBuffer[] int int sun.security.ssl.Plaintext[]
      StackMap stack: java.lang.UnsupportedOperationException
         4: astore 8 /* unsoe */
        start local 8 // java.lang.UnsupportedOperationException unsoe
         5: .line 111
            aload 0 /* context */
            getfield sun.security.ssl.TransportContext.sslContext:Lsun/security/ssl/SSLContextImpl;
            invokevirtual sun.security.ssl.SSLContextImpl.isDTLS:()Z
            ifne 9
         6: .line 112
            aload 0 /* context */
            getfield sun.security.ssl.TransportContext.outputRecord:Lsun/security/ssl/OutputRecord;
            invokevirtual sun.security.ssl.OutputRecord.encodeV2NoCipher:()V
         7: .line 113
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 9
            ldc "ssl"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 9
         8: .line 114
            ldc "may be talking to SSLv2"
            iconst_0
            anewarray java.lang.Object
            invokestatic sun.security.ssl.SSLLogger.finest:(Ljava/lang/String;[Ljava/lang/Object;)V
         9: .line 118
      StackMap locals: java.lang.UnsupportedOperationException
      StackMap stack:
            aload 0 /* context */
            getstatic sun.security.ssl.Alert.UNEXPECTED_MESSAGE:Lsun/security/ssl/Alert;
            aload 8 /* unsoe */
            invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/Throwable;)Ljavax/net/ssl/SSLException;
            athrow
        end local 8 // java.lang.UnsupportedOperationException unsoe
        10: .line 119
      StackMap locals: sun.security.ssl.TransportContext java.nio.ByteBuffer[] int int java.nio.ByteBuffer[] int int sun.security.ssl.Plaintext[]
      StackMap stack: javax.crypto.BadPaddingException
            astore 8 /* bpe */
        start local 8 // javax.crypto.BadPaddingException bpe
        11: .line 126
            aload 0 /* context */
            getfield sun.security.ssl.TransportContext.handshakeContext:Lsun/security/ssl/HandshakeContext;
            ifnull 13
        12: .line 127
            getstatic sun.security.ssl.Alert.HANDSHAKE_FAILURE:Lsun/security/ssl/Alert;
            goto 14
        13: .line 128
      StackMap locals: javax.crypto.BadPaddingException
      StackMap stack:
            getstatic sun.security.ssl.Alert.BAD_RECORD_MAC:Lsun/security/ssl/Alert;
        14: .line 126
      StackMap locals:
      StackMap stack: sun.security.ssl.Alert
            astore 9 /* alert */
        start local 9 // sun.security.ssl.Alert alert
        15: .line 129
            aload 0 /* context */
            aload 9 /* alert */
            aload 8 /* bpe */
            invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/Throwable;)Ljavax/net/ssl/SSLException;
            athrow
        end local 9 // sun.security.ssl.Alert alert
        end local 8 // javax.crypto.BadPaddingException bpe
        16: .line 130
      StackMap locals: sun.security.ssl.TransportContext java.nio.ByteBuffer[] int int java.nio.ByteBuffer[] int int sun.security.ssl.Plaintext[]
      StackMap stack: javax.net.ssl.SSLHandshakeException
            astore 8 /* she */
        start local 8 // javax.net.ssl.SSLHandshakeException she
        17: .line 132
            aload 0 /* context */
            getstatic sun.security.ssl.Alert.HANDSHAKE_FAILURE:Lsun/security/ssl/Alert;
            aload 8 /* she */
            invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/Throwable;)Ljavax/net/ssl/SSLException;
            athrow
        end local 8 // javax.net.ssl.SSLHandshakeException she
        18: .line 133
      StackMap locals:
      StackMap stack: java.io.EOFException
            astore 8 /* eofe */
        start local 8 // java.io.EOFException eofe
        19: .line 135
            aload 8 /* eofe */
            athrow
        end local 8 // java.io.EOFException eofe
        20: .line 136
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 8 /* ioe */
        start local 8 // java.io.IOException ioe
        21: .line 137
            aload 0 /* context */
            getstatic sun.security.ssl.Alert.UNEXPECTED_MESSAGE:Lsun/security/ssl/Alert;
            aload 8 /* ioe */
            invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/Throwable;)Ljavax/net/ssl/SSLException;
            athrow
        end local 8 // java.io.IOException ioe
        22: .line 140
      StackMap locals:
      StackMap stack:
            aload 7 /* plaintexts */
            ifnull 23
            aload 7 /* plaintexts */
            arraylength
            ifne 24
        23: .line 142
      StackMap locals:
      StackMap stack:
            getstatic sun.security.ssl.Plaintext.PLAINTEXT_NULL:Lsun/security/ssl/Plaintext;
            areturn
        24: .line 145
      StackMap locals:
      StackMap stack:
            getstatic sun.security.ssl.Plaintext.PLAINTEXT_NULL:Lsun/security/ssl/Plaintext;
            astore 8 /* finalPlaintext */
        start local 8 // sun.security.ssl.Plaintext finalPlaintext
        25: .line 146
            aload 7 /* plaintexts */
            dup
            astore 12
            arraylength
            istore 11
            iconst_0
            istore 10
            goto 65
      StackMap locals: sun.security.ssl.TransportContext java.nio.ByteBuffer[] int int java.nio.ByteBuffer[] int int sun.security.ssl.Plaintext[] sun.security.ssl.Plaintext top int int sun.security.ssl.Plaintext[]
      StackMap stack:
        26: aload 12
            iload 10
            aaload
            astore 9 /* plainText */
        start local 9 // sun.security.ssl.Plaintext plainText
        27: .line 148
            aload 9 /* plainText */
            getstatic sun.security.ssl.Plaintext.PLAINTEXT_NULL:Lsun/security/ssl/Plaintext;
            if_acmpne 35
        28: .line 153
            aload 0 /* context */
            getfield sun.security.ssl.TransportContext.handshakeContext:Lsun/security/ssl/HandshakeContext;
            ifnull 38
        29: .line 154
            aload 0 /* context */
            getfield sun.security.ssl.TransportContext.handshakeContext:Lsun/security/ssl/HandshakeContext;
            getfield sun.security.ssl.HandshakeContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
            getfield sun.security.ssl.SSLConfiguration.enableRetransmissions:Z
            ifeq 38
        30: .line 155
            aload 0 /* context */
            getfield sun.security.ssl.TransportContext.sslContext:Lsun/security/ssl/SSLContextImpl;
            invokevirtual sun.security.ssl.SSLContextImpl.isDTLS:()Z
            ifeq 38
        31: .line 156
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 33
            ldc "ssl,verbose"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 33
        32: .line 157
            ldc "retransmited handshake flight"
            iconst_0
            anewarray java.lang.Object
            invokestatic sun.security.ssl.SSLLogger.finest:(Ljava/lang/String;[Ljava/lang/Object;)V
        33: .line 160
      StackMap locals: sun.security.ssl.TransportContext java.nio.ByteBuffer[] int int java.nio.ByteBuffer[] int int sun.security.ssl.Plaintext[] sun.security.ssl.Plaintext sun.security.ssl.Plaintext int int sun.security.ssl.Plaintext[]
      StackMap stack:
            aload 0 /* context */
            getfield sun.security.ssl.TransportContext.outputRecord:Lsun/security/ssl/OutputRecord;
            invokevirtual sun.security.ssl.OutputRecord.launchRetransmission:()V
        34: .line 162
            goto 38
      StackMap locals:
      StackMap stack:
        35: aload 9 /* plainText */
            ifnull 38
        36: .line 163
            aload 9 /* plainText */
            getfield sun.security.ssl.Plaintext.contentType:B
            getstatic sun.security.ssl.ContentType.APPLICATION_DATA:Lsun/security/ssl/ContentType;
            getfield sun.security.ssl.ContentType.id:B
            if_icmpeq 38
        37: .line 164
            aload 0 /* context */
            aload 9 /* plainText */
            invokevirtual sun.security.ssl.TransportContext.dispatch:(Lsun/security/ssl/Plaintext;)V
        38: .line 167
      StackMap locals:
      StackMap stack:
            aload 9 /* plainText */
            ifnonnull 41
        39: .line 168
            getstatic sun.security.ssl.Plaintext.PLAINTEXT_NULL:Lsun/security/ssl/Plaintext;
            astore 9 /* plainText */
        40: .line 169
            goto 63
        41: .line 171
      StackMap locals:
      StackMap stack:
            aload 4 /* dsts */
            ifnull 63
            iload 6 /* dstsLength */
            ifle 63
        42: .line 172
            aload 9 /* plainText */
            getfield sun.security.ssl.Plaintext.contentType:B
        43: .line 173
            getstatic sun.security.ssl.ContentType.APPLICATION_DATA:Lsun/security/ssl/ContentType;
            getfield sun.security.ssl.ContentType.id:B
        44: .line 172
            if_icmpne 63
        45: .line 175
            aload 9 /* plainText */
            getfield sun.security.ssl.Plaintext.fragment:Ljava/nio/ByteBuffer;
            astore 13 /* fragment */
        start local 13 // java.nio.ByteBuffer fragment
        46: .line 176
            aload 13 /* fragment */
            invokevirtual java.nio.ByteBuffer.remaining:()I
            istore 14 /* remains */
        start local 14 // int remains
        47: .line 179
            iload 5 /* dstsOffset */
            iload 6 /* dstsLength */
            iadd
            istore 15 /* limit */
        start local 15 // int limit
        48: .line 180
            iload 5 /* dstsOffset */
            istore 16 /* i */
        start local 16 // int i
        49: .line 181
            goto 57
        50: .line 183
      StackMap locals: sun.security.ssl.TransportContext java.nio.ByteBuffer[] int int java.nio.ByteBuffer[] int int sun.security.ssl.Plaintext[] sun.security.ssl.Plaintext sun.security.ssl.Plaintext int int sun.security.ssl.Plaintext[] java.nio.ByteBuffer int int int
      StackMap stack:
            aload 4 /* dsts */
            iload 16 /* i */
            aaload
            invokevirtual java.nio.ByteBuffer.remaining:()I
            iload 14 /* remains */
            invokestatic java.lang.Math.min:(II)I
            istore 17 /* amount */
        start local 17 // int amount
        51: .line 184
            aload 13 /* fragment */
            aload 13 /* fragment */
            invokevirtual java.nio.ByteBuffer.position:()I
            iload 17 /* amount */
            iadd
            invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/ByteBuffer;
            pop
        52: .line 185
            aload 4 /* dsts */
            iload 16 /* i */
            aaload
            aload 13 /* fragment */
            invokevirtual java.nio.ByteBuffer.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
            pop
        53: .line 186
            iload 14 /* remains */
            iload 17 /* amount */
            isub
            istore 14 /* remains */
        54: .line 188
            aload 4 /* dsts */
            iload 16 /* i */
            aaload
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifne 56
        55: .line 189
            iinc 5 /* dstsOffset */ 1
        end local 17 // int amount
        56: .line 181
      StackMap locals:
      StackMap stack:
            iinc 16 /* i */ 1
      StackMap locals:
      StackMap stack:
        57: iload 16 /* i */
            iload 15 /* limit */
            if_icmpge 59
            iload 14 /* remains */
        58: .line 180
            ifgt 50
        end local 16 // int i
        59: .line 193
      StackMap locals:
      StackMap stack:
            iload 14 /* remains */
            ifle 63
        60: .line 194
            aload 0 /* context */
            getstatic sun.security.ssl.Alert.INTERNAL_ERROR:Lsun/security/ssl/Alert;
        61: .line 195
            ldc "no sufficient room in the destination buffers"
        62: .line 194
            invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
            athrow
        end local 15 // int limit
        end local 14 // int remains
        end local 13 // java.nio.ByteBuffer fragment
        63: .line 200
      StackMap locals:
      StackMap stack:
            aload 9 /* plainText */
            astore 8 /* finalPlaintext */
        end local 9 // sun.security.ssl.Plaintext plainText
        64: .line 146
            iinc 10 1
      StackMap locals: sun.security.ssl.TransportContext java.nio.ByteBuffer[] int int java.nio.ByteBuffer[] int int sun.security.ssl.Plaintext[] sun.security.ssl.Plaintext top int int sun.security.ssl.Plaintext[]
      StackMap stack:
        65: iload 10
            iload 11
            if_icmplt 26
        66: .line 203
            aload 8 /* finalPlaintext */
            areturn
        end local 8 // sun.security.ssl.Plaintext finalPlaintext
        end local 7 // sun.security.ssl.Plaintext[] plaintexts
        end local 6 // int dstsLength
        end local 5 // int dstsOffset
        end local 4 // java.nio.ByteBuffer[] dsts
        end local 3 // int srcsLength
        end local 2 // int srcsOffset
        end local 1 // java.nio.ByteBuffer[] srcs
        end local 0 // sun.security.ssl.TransportContext context
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   67     0         context  Lsun/security/ssl/TransportContext;
            0   67     1            srcs  [Ljava/nio/ByteBuffer;
            0   67     2      srcsOffset  I
            0   67     3      srcsLength  I
            0   67     4            dsts  [Ljava/nio/ByteBuffer;
            0   67     5      dstsOffset  I
            0   67     6      dstsLength  I
            1   67     7      plaintexts  [Lsun/security/ssl/Plaintext;
            5   10     8           unsoe  Ljava/lang/UnsupportedOperationException;
           11   16     8             bpe  Ljavax/crypto/BadPaddingException;
           15   16     9           alert  Lsun/security/ssl/Alert;
           17   18     8             she  Ljavax/net/ssl/SSLHandshakeException;
           19   20     8            eofe  Ljava/io/EOFException;
           21   22     8             ioe  Ljava/io/IOException;
           25   67     8  finalPlaintext  Lsun/security/ssl/Plaintext;
           27   64     9       plainText  Lsun/security/ssl/Plaintext;
           46   63    13        fragment  Ljava/nio/ByteBuffer;
           47   63    14         remains  I
           48   63    15           limit  I
           49   59    16               i  I
           51   56    17          amount  I
      Exception table:
        from    to  target  type
           1     3       4  Class java.lang.UnsupportedOperationException
           1     3      10  Class javax.crypto.BadPaddingException
           1     3      16  Class javax.net.ssl.SSLHandshakeException
           1     3      18  Class java.io.EOFException
           1     3      20  Class java.io.IOException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
            Name  Flags
      context     
      srcs        
      srcsOffset  
      srcsLength  
      dsts        
      dstsOffset  
      dstsLength  
}
SourceFile: "SSLTransport.java"