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 62
            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 107
            aconst_null
            astore 7 /* plaintexts */
        start local 7 // sun.security.ssl.Plaintext[] plaintexts
         1: .line 110
            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 109
            astore 7 /* plaintexts */
         3: .line 111
            goto 26
      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 113
            aload 0 /* context */
            getfield sun.security.ssl.TransportContext.sslContext:Lsun/security/ssl/SSLContextImpl;
            invokevirtual sun.security.ssl.SSLContextImpl.isDTLS:()Z
            ifne 9
         6: .line 114
            aload 0 /* context */
            getfield sun.security.ssl.TransportContext.outputRecord:Lsun/security/ssl/OutputRecord;
            invokevirtual sun.security.ssl.OutputRecord.encodeV2NoCipher:()V
         7: .line 115
            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 116
            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 120
      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 121
      StackMap locals: sun.security.ssl.TransportContext java.nio.ByteBuffer[] int int java.nio.ByteBuffer[] int int sun.security.ssl.Plaintext[]
      StackMap stack: javax.crypto.AEADBadTagException
            astore 8 /* bte */
        start local 8 // javax.crypto.AEADBadTagException bte
        11: .line 122
            aload 0 /* context */
            getstatic sun.security.ssl.Alert.BAD_RECORD_MAC:Lsun/security/ssl/Alert;
            aload 8 /* bte */
            invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/Throwable;)Ljavax/net/ssl/SSLException;
            athrow
        end local 8 // javax.crypto.AEADBadTagException bte
        12: .line 123
      StackMap locals:
      StackMap stack: javax.crypto.BadPaddingException
            astore 8 /* bpe */
        start local 8 // javax.crypto.BadPaddingException bpe
        13: .line 130
            aload 0 /* context */
            getfield sun.security.ssl.TransportContext.handshakeContext:Lsun/security/ssl/HandshakeContext;
            ifnull 15
        14: .line 131
            getstatic sun.security.ssl.Alert.HANDSHAKE_FAILURE:Lsun/security/ssl/Alert;
            goto 16
        15: .line 132
      StackMap locals: javax.crypto.BadPaddingException
      StackMap stack:
            getstatic sun.security.ssl.Alert.BAD_RECORD_MAC:Lsun/security/ssl/Alert;
        16: .line 130
      StackMap locals:
      StackMap stack: sun.security.ssl.Alert
            astore 9 /* alert */
        start local 9 // sun.security.ssl.Alert alert
        17: .line 133
            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
        18: .line 134
      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
        19: .line 136
            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
        20: .line 137
      StackMap locals:
      StackMap stack: java.io.EOFException
            astore 8 /* eofe */
        start local 8 // java.io.EOFException eofe
        21: .line 139
            aload 8 /* eofe */
            athrow
        end local 8 // java.io.EOFException eofe
        22: .line 140
      StackMap locals:
      StackMap stack: java.io.InterruptedIOException
            astore 8 /* iioe */
        start local 8 // java.io.InterruptedIOException iioe
        23: .line 142
            aload 8 /* iioe */
            athrow
        end local 8 // java.io.InterruptedIOException iioe
        24: .line 143
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 8 /* ioe */
        start local 8 // java.io.IOException ioe
        25: .line 144
            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
        26: .line 147
      StackMap locals:
      StackMap stack:
            aload 7 /* plaintexts */
            ifnull 27
            aload 7 /* plaintexts */
            arraylength
            ifne 28
        27: .line 149
      StackMap locals:
      StackMap stack:
            getstatic sun.security.ssl.Plaintext.PLAINTEXT_NULL:Lsun/security/ssl/Plaintext;
            areturn
        28: .line 152
      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
        29: .line 153
            aload 7 /* plaintexts */
            dup
            astore 12
            arraylength
            istore 11
            iconst_0
            istore 10
            goto 74
      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:
        30: aload 12
            iload 10
            aaload
            astore 9 /* plainText */
        start local 9 // sun.security.ssl.Plaintext plainText
        31: .line 155
            aload 9 /* plainText */
            getstatic sun.security.ssl.Plaintext.PLAINTEXT_NULL:Lsun/security/ssl/Plaintext;
            if_acmpne 39
        32: .line 160
            aload 0 /* context */
            getfield sun.security.ssl.TransportContext.handshakeContext:Lsun/security/ssl/HandshakeContext;
            ifnull 42
        33: .line 161
            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 42
        34: .line 162
            aload 0 /* context */
            getfield sun.security.ssl.TransportContext.sslContext:Lsun/security/ssl/SSLContextImpl;
            invokevirtual sun.security.ssl.SSLContextImpl.isDTLS:()Z
            ifeq 42
        35: .line 163
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 37
            ldc "ssl,verbose"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 37
        36: .line 164
            ldc "retransmited handshake flight"
            iconst_0
            anewarray java.lang.Object
            invokestatic sun.security.ssl.SSLLogger.finest:(Ljava/lang/String;[Ljava/lang/Object;)V
        37: .line 167
      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
        38: .line 169
            goto 42
      StackMap locals:
      StackMap stack:
        39: aload 9 /* plainText */
            ifnull 42
        40: .line 170
            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 42
        41: .line 171
            aload 0 /* context */
            aload 9 /* plainText */
            invokevirtual sun.security.ssl.TransportContext.dispatch:(Lsun/security/ssl/Plaintext;)V
        42: .line 174
      StackMap locals:
      StackMap stack:
            aload 9 /* plainText */
            ifnonnull 45
        43: .line 175
            getstatic sun.security.ssl.Plaintext.PLAINTEXT_NULL:Lsun/security/ssl/Plaintext;
            astore 9 /* plainText */
        44: .line 176
            goto 72
      StackMap locals:
      StackMap stack:
        45: aload 9 /* plainText */
            getfield sun.security.ssl.Plaintext.contentType:B
        46: .line 177
            getstatic sun.security.ssl.ContentType.APPLICATION_DATA:Lsun/security/ssl/ContentType;
            getfield sun.security.ssl.ContentType.id:B
            if_icmpne 72
        47: .line 182
            aload 0 /* context */
            getfield sun.security.ssl.TransportContext.isNegotiated:Z
            ifne 53
        48: .line 183
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 50
            ldc "ssl,verbose"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 50
        49: .line 184
            ldc "unexpected application data before handshake completion"
            iconst_0
            anewarray java.lang.Object
            invokestatic sun.security.ssl.SSLLogger.warning:(Ljava/lang/String;[Ljava/lang/Object;)V
        50: .line 188
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
            getstatic sun.security.ssl.Alert.UNEXPECTED_MESSAGE:Lsun/security/ssl/Alert;
        51: .line 189
            ldc "Receiving application data before handshake complete"
        52: .line 188
            invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
            athrow
        53: .line 193
      StackMap locals:
      StackMap stack:
            aload 4 /* dsts */
            ifnull 72
            iload 6 /* dstsLength */
            ifle 72
        54: .line 194
            aload 9 /* plainText */
            getfield sun.security.ssl.Plaintext.fragment:Ljava/nio/ByteBuffer;
            astore 13 /* fragment */
        start local 13 // java.nio.ByteBuffer fragment
        55: .line 195
            aload 13 /* fragment */
            invokevirtual java.nio.ByteBuffer.remaining:()I
            istore 14 /* remains */
        start local 14 // int remains
        56: .line 198
            iload 5 /* dstsOffset */
            iload 6 /* dstsLength */
            iadd
            istore 15 /* limit */
        start local 15 // int limit
        57: .line 199
            iload 5 /* dstsOffset */
            istore 16 /* i */
        start local 16 // int i
        58: .line 200
            goto 66
        59: .line 202
      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
        60: .line 203
            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
        61: .line 204
            aload 4 /* dsts */
            iload 16 /* i */
            aaload
            aload 13 /* fragment */
            invokevirtual java.nio.ByteBuffer.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
            pop
        62: .line 205
            iload 14 /* remains */
            iload 17 /* amount */
            isub
            istore 14 /* remains */
        63: .line 207
            aload 4 /* dsts */
            iload 16 /* i */
            aaload
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifne 65
        64: .line 208
            iinc 5 /* dstsOffset */ 1
        end local 17 // int amount
        65: .line 200
      StackMap locals:
      StackMap stack:
            iinc 16 /* i */ 1
      StackMap locals:
      StackMap stack:
        66: iload 16 /* i */
            iload 15 /* limit */
            if_icmpge 68
            iload 14 /* remains */
        67: .line 199
            ifgt 59
        end local 16 // int i
        68: .line 212
      StackMap locals:
      StackMap stack:
            iload 14 /* remains */
            ifle 72
        69: .line 213
            aload 0 /* context */
            getstatic sun.security.ssl.Alert.INTERNAL_ERROR:Lsun/security/ssl/Alert;
        70: .line 214
            ldc "no sufficient room in the destination buffers"
        71: .line 213
            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
        72: .line 219
      StackMap locals:
      StackMap stack:
            aload 9 /* plainText */
            astore 8 /* finalPlaintext */
        end local 9 // sun.security.ssl.Plaintext plainText
        73: .line 153
            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:
        74: iload 10
            iload 11
            if_icmplt 30
        75: .line 222
            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   76     0         context  Lsun/security/ssl/TransportContext;
            0   76     1            srcs  [Ljava/nio/ByteBuffer;
            0   76     2      srcsOffset  I
            0   76     3      srcsLength  I
            0   76     4            dsts  [Ljava/nio/ByteBuffer;
            0   76     5      dstsOffset  I
            0   76     6      dstsLength  I
            1   76     7      plaintexts  [Lsun/security/ssl/Plaintext;
            5   10     8           unsoe  Ljava/lang/UnsupportedOperationException;
           11   12     8             bte  Ljavax/crypto/AEADBadTagException;
           13   18     8             bpe  Ljavax/crypto/BadPaddingException;
           17   18     9           alert  Lsun/security/ssl/Alert;
           19   20     8             she  Ljavax/net/ssl/SSLHandshakeException;
           21   22     8            eofe  Ljava/io/EOFException;
           23   24     8            iioe  Ljava/io/InterruptedIOException;
           25   26     8             ioe  Ljava/io/IOException;
           29   76     8  finalPlaintext  Lsun/security/ssl/Plaintext;
           31   73     9       plainText  Lsun/security/ssl/Plaintext;
           55   72    13        fragment  Ljava/nio/ByteBuffer;
           56   72    14         remains  I
           57   72    15           limit  I
           58   68    16               i  I
           60   65    17          amount  I
      Exception table:
        from    to  target  type
           1     3       4  Class java.lang.UnsupportedOperationException
           1     3      10  Class javax.crypto.AEADBadTagException
           1     3      12  Class javax.crypto.BadPaddingException
           1     3      18  Class javax.net.ssl.SSLHandshakeException
           1     3      20  Class java.io.EOFException
           1     3      22  Class java.io.InterruptedIOException
           1     3      24  Class java.io.IOException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
            Name  Flags
      context     
      srcs        
      srcsOffset  
      srcsLength  
      dsts        
      dstsOffset  
      dstsLength  
}
SourceFile: "SSLTransport.java"