abstract class sun.security.ssl.InputRecord implements sun.security.ssl.Record, java.io.Closeable
  minor version: 0
  major version: 59
  flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
  this_class: sun.security.ssl.InputRecord
  super_class: java.lang.Object
{
  sun.security.ssl.SSLCipher$SSLReadCipher readCipher;
    descriptor: Lsun/security/ssl/SSLCipher$SSLReadCipher;
    flags: (0x0000) 

  sun.security.ssl.TransportContext tc;
    descriptor: Lsun/security/ssl/TransportContext;
    flags: (0x0000) 

  final sun.security.ssl.HandshakeHash handshakeHash;
    descriptor: Lsun/security/ssl/HandshakeHash;
    flags: (0x0010) ACC_FINAL

  volatile boolean isClosed;
    descriptor: Z
    flags: (0x0040) ACC_VOLATILE

  sun.security.ssl.ProtocolVersion helloVersion;
    descriptor: Lsun/security/ssl/ProtocolVersion;
    flags: (0x0000) 

  int fragmentSize;
    descriptor: I
    flags: (0x0000) 

  final java.util.concurrent.locks.ReentrantLock recordLock;
    descriptor: Ljava/util/concurrent/locks/ReentrantLock;
    flags: (0x0010) ACC_FINAL

  void <init>(sun.security.ssl.HandshakeHash, sun.security.ssl.SSLCipher$SSLReadCipher);
    descriptor: (Lsun/security/ssl/HandshakeHash;Lsun/security/ssl/SSLCipher$SSLReadCipher;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // sun.security.ssl.InputRecord this
        start local 1 // sun.security.ssl.HandshakeHash handshakeHash
        start local 2 // sun.security.ssl.SSLCipher$SSLReadCipher readCipher
         0: .line 62
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 60
            aload 0 /* this */
            new java.util.concurrent.locks.ReentrantLock
            dup
            invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
            putfield sun.security.ssl.InputRecord.recordLock:Ljava/util/concurrent/locks/ReentrantLock;
         2: .line 63
            aload 0 /* this */
            aload 2 /* readCipher */
            putfield sun.security.ssl.InputRecord.readCipher:Lsun/security/ssl/SSLCipher$SSLReadCipher;
         3: .line 64
            aload 0 /* this */
            getstatic sun.security.ssl.ProtocolVersion.TLS10:Lsun/security/ssl/ProtocolVersion;
            putfield sun.security.ssl.InputRecord.helloVersion:Lsun/security/ssl/ProtocolVersion;
         4: .line 65
            aload 0 /* this */
            aload 1 /* handshakeHash */
            putfield sun.security.ssl.InputRecord.handshakeHash:Lsun/security/ssl/HandshakeHash;
         5: .line 66
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.InputRecord.isClosed:Z
         6: .line 67
            aload 0 /* this */
            sipush 16384
            putfield sun.security.ssl.InputRecord.fragmentSize:I
         7: .line 68
            return
        end local 2 // sun.security.ssl.SSLCipher$SSLReadCipher readCipher
        end local 1 // sun.security.ssl.HandshakeHash handshakeHash
        end local 0 // sun.security.ssl.InputRecord this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    8     0           this  Lsun/security/ssl/InputRecord;
            0    8     1  handshakeHash  Lsun/security/ssl/HandshakeHash;
            0    8     2     readCipher  Lsun/security/ssl/SSLCipher$SSLReadCipher;
    MethodParameters:
               Name  Flags
      handshakeHash  
      readCipher     

  void setHelloVersion(sun.security.ssl.ProtocolVersion);
    descriptor: (Lsun/security/ssl/ProtocolVersion;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.security.ssl.InputRecord this
        start local 1 // sun.security.ssl.ProtocolVersion helloVersion
         0: .line 71
            aload 0 /* this */
            aload 1 /* helloVersion */
            putfield sun.security.ssl.InputRecord.helloVersion:Lsun/security/ssl/ProtocolVersion;
         1: .line 72
            return
        end local 1 // sun.security.ssl.ProtocolVersion helloVersion
        end local 0 // sun.security.ssl.InputRecord this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Lsun/security/ssl/InputRecord;
            0    2     1  helloVersion  Lsun/security/ssl/ProtocolVersion;
    MethodParameters:
              Name  Flags
      helloVersion  

  boolean seqNumIsHuge();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.ssl.InputRecord this
         0: .line 75
            aload 0 /* this */
            getfield sun.security.ssl.InputRecord.readCipher:Lsun/security/ssl/SSLCipher$SSLReadCipher;
            getfield sun.security.ssl.SSLCipher$SSLReadCipher.authenticator:Lsun/security/ssl/Authenticator;
            ifnull 3
         1: .line 76
            aload 0 /* this */
            getfield sun.security.ssl.InputRecord.readCipher:Lsun/security/ssl/SSLCipher$SSLReadCipher;
            getfield sun.security.ssl.SSLCipher$SSLReadCipher.authenticator:Lsun/security/ssl/Authenticator;
            invokevirtual sun.security.ssl.Authenticator.seqNumIsHuge:()Z
            ifeq 3
         2: .line 75
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_0
            ireturn
        end local 0 // sun.security.ssl.InputRecord this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lsun/security/ssl/InputRecord;

  boolean isEmpty();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.ssl.InputRecord this
         0: .line 80
            iconst_0
            ireturn
        end local 0 // sun.security.ssl.InputRecord this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/ssl/InputRecord;

  void expectingFinishFlight();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // sun.security.ssl.InputRecord this
         0: .line 86
            return
        end local 0 // sun.security.ssl.InputRecord this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/ssl/InputRecord;

  void finishHandshake();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // sun.security.ssl.InputRecord this
         0: .line 91
            return
        end local 0 // sun.security.ssl.InputRecord this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/ssl/InputRecord;

  public void close();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // sun.security.ssl.InputRecord this
         0: .line 99
            aload 0 /* this */
            getfield sun.security.ssl.InputRecord.recordLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 101
            aload 0 /* this */
            getfield sun.security.ssl.InputRecord.isClosed:Z
            ifne 8
         2: .line 102
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.InputRecord.isClosed:Z
         3: .line 103
            aload 0 /* this */
            getfield sun.security.ssl.InputRecord.readCipher:Lsun/security/ssl/SSLCipher$SSLReadCipher;
            invokevirtual sun.security.ssl.SSLCipher$SSLReadCipher.dispose:()V
         4: .line 105
            goto 8
      StackMap locals:
      StackMap stack: java.lang.Throwable
         5: astore 1
         6: .line 106
            aload 0 /* this */
            getfield sun.security.ssl.InputRecord.recordLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         7: .line 107
            aload 1
            athrow
         8: .line 106
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.InputRecord.recordLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         9: .line 108
            return
        end local 0 // sun.security.ssl.InputRecord this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Lsun/security/ssl/InputRecord;
      Exception table:
        from    to  target  type
           1     5       5  any
    Exceptions:
      throws java.io.IOException

  boolean isClosed();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.ssl.InputRecord this
         0: .line 111
            aload 0 /* this */
            getfield sun.security.ssl.InputRecord.isClosed:Z
            ireturn
        end local 0 // sun.security.ssl.InputRecord this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/ssl/InputRecord;

  void changeReadCiphers(sun.security.ssl.SSLCipher$SSLReadCipher);
    descriptor: (Lsun/security/ssl/SSLCipher$SSLReadCipher;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.security.ssl.InputRecord this
        start local 1 // sun.security.ssl.SSLCipher$SSLReadCipher readCipher
         0: .line 125
            aload 1 /* readCipher */
            invokevirtual sun.security.ssl.SSLCipher$SSLReadCipher.dispose:()V
         1: .line 127
            aload 0 /* this */
            aload 1 /* readCipher */
            putfield sun.security.ssl.InputRecord.readCipher:Lsun/security/ssl/SSLCipher$SSLReadCipher;
         2: .line 128
            return
        end local 1 // sun.security.ssl.SSLCipher$SSLReadCipher readCipher
        end local 0 // sun.security.ssl.InputRecord this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lsun/security/ssl/InputRecord;
            0    3     1  readCipher  Lsun/security/ssl/SSLCipher$SSLReadCipher;
    MethodParameters:
            Name  Flags
      readCipher  

  void changeFragmentSize(int);
    descriptor: (I)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.security.ssl.InputRecord this
        start local 1 // int fragmentSize
         0: .line 132
            aload 0 /* this */
            iload 1 /* fragmentSize */
            putfield sun.security.ssl.InputRecord.fragmentSize:I
         1: .line 133
            return
        end local 1 // int fragmentSize
        end local 0 // sun.security.ssl.InputRecord this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Lsun/security/ssl/InputRecord;
            0    2     1  fragmentSize  I
    MethodParameters:
              Name  Flags
      fragmentSize  

  int bytesInCompletePacket(java.nio.ByteBuffer[], int, int);
    descriptor: ([Ljava/nio/ByteBuffer;II)I
    flags: (0x0000) 
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // sun.security.ssl.InputRecord this
        start local 1 // java.nio.ByteBuffer[] srcs
        start local 2 // int srcsOffset
        start local 3 // int srcsLength
         0: .line 145
            new java.lang.UnsupportedOperationException
            dup
            ldc "Not supported yet."
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // int srcsLength
        end local 2 // int srcsOffset
        end local 1 // java.nio.ByteBuffer[] srcs
        end local 0 // sun.security.ssl.InputRecord this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lsun/security/ssl/InputRecord;
            0    1     1        srcs  [Ljava/nio/ByteBuffer;
            0    1     2  srcsOffset  I
            0    1     3  srcsLength  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
            Name  Flags
      srcs        
      srcsOffset  
      srcsLength  

  int bytesInCompletePacket();
    descriptor: ()I
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.security.ssl.InputRecord this
         0: .line 150
            new java.lang.UnsupportedOperationException
            dup
            invokespecial java.lang.UnsupportedOperationException.<init>:()V
            athrow
        end local 0 // sun.security.ssl.InputRecord this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/ssl/InputRecord;
    Exceptions:
      throws java.io.IOException

  void setReceiverStream(java.io.InputStream);
    descriptor: (Ljava/io/InputStream;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.security.ssl.InputRecord this
        start local 1 // java.io.InputStream inputStream
         0: .line 155
            new java.lang.UnsupportedOperationException
            dup
            invokespecial java.lang.UnsupportedOperationException.<init>:()V
            athrow
        end local 1 // java.io.InputStream inputStream
        end local 0 // sun.security.ssl.InputRecord this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lsun/security/ssl/InputRecord;
            0    1     1  inputStream  Ljava/io/InputStream;
    MethodParameters:
             Name  Flags
      inputStream  

  sun.security.ssl.Plaintext acquirePlaintext();
    descriptor: ()Lsun/security/ssl/Plaintext;
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.security.ssl.InputRecord this
         0: .line 161
            new java.lang.UnsupportedOperationException
            dup
            invokespecial java.lang.UnsupportedOperationException.<init>:()V
            athrow
        end local 0 // sun.security.ssl.InputRecord this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/ssl/InputRecord;
    Exceptions:
      throws java.io.IOException, javax.crypto.BadPaddingException

  abstract sun.security.ssl.Plaintext[] decode(java.nio.ByteBuffer[], int, int);
    descriptor: ([Ljava/nio/ByteBuffer;II)[Lsun/security/ssl/Plaintext;
    flags: (0x0400) ACC_ABSTRACT
    Exceptions:
      throws java.io.IOException, javax.crypto.BadPaddingException
    MethodParameters:
            Name  Flags
      srcs        
      srcsOffset  
      srcsLength  

  void setDeliverStream(java.io.OutputStream);
    descriptor: (Ljava/io/OutputStream;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.security.ssl.InputRecord this
        start local 1 // java.io.OutputStream outputStream
         0: .line 171
            new java.lang.UnsupportedOperationException
            dup
            invokespecial java.lang.UnsupportedOperationException.<init>:()V
            athrow
        end local 1 // java.io.OutputStream outputStream
        end local 0 // sun.security.ssl.InputRecord this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lsun/security/ssl/InputRecord;
            0    1     1  outputStream  Ljava/io/OutputStream;
    MethodParameters:
              Name  Flags
      outputStream  

  int estimateFragmentSize(int);
    descriptor: (I)I
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.security.ssl.InputRecord this
        start local 1 // int packetSize
         0: .line 178
            new java.lang.UnsupportedOperationException
            dup
            invokespecial java.lang.UnsupportedOperationException.<init>:()V
            athrow
        end local 1 // int packetSize
        end local 0 // sun.security.ssl.InputRecord this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lsun/security/ssl/InputRecord;
            0    1     1  packetSize  I
    MethodParameters:
            Name  Flags
      packetSize  

  static java.nio.ByteBuffer convertToClientHello(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=16, args_size=1
        start local 0 // java.nio.ByteBuffer packet
         0: .line 187
            aload 0 /* packet */
            invokevirtual java.nio.ByteBuffer.position:()I
            istore 1 /* srcPos */
        start local 1 // int srcPos
         1: .line 189
            aload 0 /* packet */
            invokevirtual java.nio.ByteBuffer.get:()B
            istore 2 /* firstByte */
        start local 2 // byte firstByte
         2: .line 190
            aload 0 /* packet */
            invokevirtual java.nio.ByteBuffer.get:()B
            istore 3 /* secondByte */
        start local 3 // byte secondByte
         3: .line 191
            iload 2 /* firstByte */
            bipush 127
            iand
            bipush 8
            ishl
            iload 3 /* secondByte */
            sipush 255
            iand
            ior
            iconst_2
            iadd
            istore 4 /* recordLen */
        start local 4 // int recordLen
         4: .line 193
            aload 0 /* packet */
            iload 1 /* srcPos */
            iconst_3
            iadd
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
            pop
         5: .line 195
            aload 0 /* packet */
            invokevirtual java.nio.ByteBuffer.get:()B
            istore 5 /* majorVersion */
        start local 5 // byte majorVersion
         6: .line 196
            aload 0 /* packet */
            invokevirtual java.nio.ByteBuffer.get:()B
            istore 6 /* minorVersion */
        start local 6 // byte minorVersion
         7: .line 198
            aload 0 /* packet */
            invokevirtual java.nio.ByteBuffer.get:()B
            sipush 255
            iand
            bipush 8
            ishl
         8: .line 199
            aload 0 /* packet */
            invokevirtual java.nio.ByteBuffer.get:()B
            sipush 255
            iand
         9: .line 198
            iadd
            istore 7 /* cipherSpecLen */
        start local 7 // int cipherSpecLen
        10: .line 200
            aload 0 /* packet */
            invokevirtual java.nio.ByteBuffer.get:()B
            sipush 255
            iand
            bipush 8
            ishl
        11: .line 201
            aload 0 /* packet */
            invokevirtual java.nio.ByteBuffer.get:()B
            sipush 255
            iand
        12: .line 200
            iadd
            istore 8 /* sessionIdLen */
        start local 8 // int sessionIdLen
        13: .line 202
            aload 0 /* packet */
            invokevirtual java.nio.ByteBuffer.get:()B
            sipush 255
            iand
            bipush 8
            ishl
        14: .line 203
            aload 0 /* packet */
            invokevirtual java.nio.ByteBuffer.get:()B
            sipush 255
            iand
        15: .line 202
            iadd
            istore 9 /* nonceLen */
        start local 9 // int nonceLen
        16: .line 213
            bipush 48
            iload 8 /* sessionIdLen */
            iadd
            iload 7 /* cipherSpecLen */
            iconst_2
            imul
            iconst_3
            idiv
            iadd
            istore 10 /* requiredSize */
        start local 10 // int requiredSize
        17: .line 214
            iload 10 /* requiredSize */
            newarray 8
            astore 11 /* converted */
        start local 11 // byte[] converted
        18: .line 221
            aload 11 /* converted */
            iconst_0
            getstatic sun.security.ssl.ContentType.HANDSHAKE:Lsun/security/ssl/ContentType;
            getfield sun.security.ssl.ContentType.id:B
            bastore
        19: .line 222
            aload 11 /* converted */
            iconst_1
            iload 5 /* majorVersion */
            bastore
        20: .line 223
            aload 11 /* converted */
            iconst_2
            iload 6 /* minorVersion */
            bastore
        21: .line 230
            aload 11 /* converted */
            iconst_5
            iconst_1
            bastore
        22: .line 237
            aload 11 /* converted */
            bipush 9
            iload 5 /* majorVersion */
            bastore
        23: .line 238
            aload 11 /* converted */
            bipush 10
            iload 6 /* minorVersion */
            bastore
        24: .line 240
            bipush 11
            istore 12 /* pointer */
        start local 12 // int pointer
        25: .line 247
            iload 1 /* srcPos */
            bipush 11
            iadd
            iload 7 /* cipherSpecLen */
            iadd
            iload 8 /* sessionIdLen */
            iadd
            istore 13 /* offset */
        start local 13 // int offset
        26: .line 249
            iload 9 /* nonceLen */
            bipush 32
            if_icmpge 36
        27: .line 250
            iconst_0
            istore 14 /* i */
        start local 14 // int i
        28: goto 31
        29: .line 251
      StackMap locals: java.nio.ByteBuffer int int int int int int int int int int byte[] int int int
      StackMap stack:
            aload 11 /* converted */
            iload 12 /* pointer */
            iinc 12 /* pointer */ 1
            iconst_0
            bastore
        30: .line 250
            iinc 14 /* i */ 1
      StackMap locals:
      StackMap stack:
        31: iload 14 /* i */
            bipush 32
            iload 9 /* nonceLen */
            isub
            if_icmplt 29
        end local 14 // int i
        32: .line 253
            aload 0 /* packet */
            iload 13 /* offset */
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
            pop
        33: .line 254
            aload 0 /* packet */
            aload 11 /* converted */
            iload 12 /* pointer */
            iload 9 /* nonceLen */
            invokevirtual java.nio.ByteBuffer.get:([BII)Ljava/nio/ByteBuffer;
            pop
        34: .line 256
            iload 12 /* pointer */
            iload 9 /* nonceLen */
            iadd
            istore 12 /* pointer */
        35: .line 257
            goto 39
        36: .line 258
      StackMap locals:
      StackMap stack:
            aload 0 /* packet */
            iload 13 /* offset */
            iload 9 /* nonceLen */
            iadd
            bipush 32
            isub
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
            pop
        37: .line 259
            aload 0 /* packet */
            aload 11 /* converted */
            iload 12 /* pointer */
            bipush 32
            invokevirtual java.nio.ByteBuffer.get:([BII)Ljava/nio/ByteBuffer;
            pop
        38: .line 261
            iinc 12 /* pointer */ 32
        39: .line 267
      StackMap locals:
      StackMap stack:
            iload 13 /* offset */
            iload 8 /* sessionIdLen */
            isub
            istore 13 /* offset */
        40: .line 268
            aload 11 /* converted */
            iload 12 /* pointer */
            iinc 12 /* pointer */ 1
            iload 8 /* sessionIdLen */
            sipush 255
            iand
            i2b
            bastore
        41: .line 269
            aload 0 /* packet */
            iload 13 /* offset */
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
            pop
        42: .line 270
            aload 0 /* packet */
            aload 11 /* converted */
            iload 12 /* pointer */
            iload 8 /* sessionIdLen */
            invokevirtual java.nio.ByteBuffer.get:([BII)Ljava/nio/ByteBuffer;
            pop
        43: .line 288
            iload 13 /* offset */
            iload 7 /* cipherSpecLen */
            isub
            istore 13 /* offset */
        44: .line 289
            aload 0 /* packet */
            iload 13 /* offset */
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
            pop
        45: .line 291
            iload 12 /* pointer */
            iconst_2
            iadd
            istore 14 /* j */
        start local 14 // int j
        46: .line 292
            iconst_0
            istore 15 /* i */
        start local 15 // int i
        47: goto 55
        48: .line 293
      StackMap locals: int int
      StackMap stack:
            aload 0 /* packet */
            invokevirtual java.nio.ByteBuffer.get:()B
            ifeq 52
        49: .line 297
            aload 0 /* packet */
            invokevirtual java.nio.ByteBuffer.get:()B
            pop
        50: .line 298
            aload 0 /* packet */
            invokevirtual java.nio.ByteBuffer.get:()B
            pop
        51: .line 299
            goto 54
        52: .line 302
      StackMap locals:
      StackMap stack:
            aload 11 /* converted */
            iload 14 /* j */
            iinc 14 /* j */ 1
            aload 0 /* packet */
            invokevirtual java.nio.ByteBuffer.get:()B
            bastore
        53: .line 303
            aload 11 /* converted */
            iload 14 /* j */
            iinc 14 /* j */ 1
            aload 0 /* packet */
            invokevirtual java.nio.ByteBuffer.get:()B
            bastore
        54: .line 292
      StackMap locals:
      StackMap stack:
            iinc 15 /* i */ 3
      StackMap locals:
      StackMap stack:
        55: iload 15 /* i */
            iload 7 /* cipherSpecLen */
            if_icmplt 48
        end local 15 // int i
        56: .line 306
            iload 14 /* j */
            iload 12 /* pointer */
            iconst_2
            iadd
            isub
            istore 14 /* j */
        57: .line 307
            aload 11 /* converted */
            iload 12 /* pointer */
            iinc 12 /* pointer */ 1
            iload 14 /* j */
            bipush 8
            iushr
            sipush 255
            iand
            i2b
            bastore
        58: .line 308
            aload 11 /* converted */
            iload 12 /* pointer */
            iinc 12 /* pointer */ 1
            iload 14 /* j */
            sipush 255
            iand
            i2b
            bastore
        59: .line 309
            iload 12 /* pointer */
            iload 14 /* j */
            iadd
            istore 12 /* pointer */
        60: .line 314
            aload 11 /* converted */
            iload 12 /* pointer */
            iinc 12 /* pointer */ 1
            iconst_1
            bastore
        61: .line 315
            aload 11 /* converted */
            iload 12 /* pointer */
            iinc 12 /* pointer */ 1
            iconst_0
            bastore
        62: .line 322
            iload 12 /* pointer */
            iconst_5
            isub
            istore 15 /* fragLen */
        start local 15 // int fragLen
        63: .line 323
            aload 11 /* converted */
            iconst_3
            iload 15 /* fragLen */
            bipush 8
            iushr
            sipush 255
            iand
            i2b
            bastore
        64: .line 324
            aload 11 /* converted */
            iconst_4
            iload 15 /* fragLen */
            sipush 255
            iand
            i2b
            bastore
        65: .line 329
            iload 12 /* pointer */
            bipush 9
            isub
            istore 15 /* fragLen */
        66: .line 330
            aload 11 /* converted */
            bipush 6
            iload 15 /* fragLen */
            bipush 16
            iushr
            sipush 255
            iand
            i2b
            bastore
        67: .line 331
            aload 11 /* converted */
            bipush 7
            iload 15 /* fragLen */
            bipush 8
            iushr
            sipush 255
            iand
            i2b
            bastore
        68: .line 332
            aload 11 /* converted */
            bipush 8
            iload 15 /* fragLen */
            sipush 255
            iand
            i2b
            bastore
        69: .line 335
            aload 0 /* packet */
            iload 1 /* srcPos */
            iload 4 /* recordLen */
            iadd
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
            pop
        70: .line 338
            aload 11 /* converted */
            iconst_5
            iload 12 /* pointer */
            iconst_5
            isub
            invokestatic java.nio.ByteBuffer.wrap:([BII)Ljava/nio/ByteBuffer;
            areturn
        end local 15 // int fragLen
        end local 14 // int j
        end local 13 // int offset
        end local 12 // int pointer
        end local 11 // byte[] converted
        end local 10 // int requiredSize
        end local 9 // int nonceLen
        end local 8 // int sessionIdLen
        end local 7 // int cipherSpecLen
        end local 6 // byte minorVersion
        end local 5 // byte majorVersion
        end local 4 // int recordLen
        end local 3 // byte secondByte
        end local 2 // byte firstByte
        end local 1 // int srcPos
        end local 0 // java.nio.ByteBuffer packet
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   71     0         packet  Ljava/nio/ByteBuffer;
            1   71     1         srcPos  I
            2   71     2      firstByte  B
            3   71     3     secondByte  B
            4   71     4      recordLen  I
            6   71     5   majorVersion  B
            7   71     6   minorVersion  B
           10   71     7  cipherSpecLen  I
           13   71     8   sessionIdLen  I
           16   71     9       nonceLen  I
           17   71    10   requiredSize  I
           18   71    11      converted  [B
           25   71    12        pointer  I
           26   71    13         offset  I
           28   32    14              i  I
           46   71    14              j  I
           47   56    15              i  I
           63   71    15        fragLen  I
    MethodParameters:
        Name  Flags
      packet  

  static java.nio.ByteBuffer extract(java.nio.ByteBuffer[], int, int, int);
    descriptor: ([Ljava/nio/ByteBuffer;III)Ljava/nio/ByteBuffer;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=13, args_size=4
        start local 0 // java.nio.ByteBuffer[] buffers
        start local 1 // int offset
        start local 2 // int length
        start local 3 // int headerSize
         0: .line 345
            iconst_0
            istore 4 /* hasFullHeader */
        start local 4 // boolean hasFullHeader
         1: .line 346
            iconst_m1
            istore 5 /* contentLen */
        start local 5 // int contentLen
         2: .line 347
            iload 1 /* offset */
            istore 6 /* i */
        start local 6 // int i
         3: iconst_0
            istore 7 /* j */
        start local 7 // int j
         4: .line 348
            goto 20
         5: .line 349
      StackMap locals: java.nio.ByteBuffer[] int int int int int int int
      StackMap stack:
            aload 0 /* buffers */
            iload 6 /* i */
            aaload
            invokevirtual java.nio.ByteBuffer.remaining:()I
            istore 8 /* remains */
        start local 8 // int remains
         6: .line 350
            aload 0 /* buffers */
            iload 6 /* i */
            aaload
            invokevirtual java.nio.ByteBuffer.position:()I
            istore 9 /* pos */
        start local 9 // int pos
         7: .line 351
            iconst_0
            istore 10 /* k */
        start local 10 // int k
         8: goto 18
         9: .line 352
      StackMap locals: int int int
      StackMap stack:
            aload 0 /* buffers */
            iload 6 /* i */
            aaload
            iload 9 /* pos */
            iload 10 /* k */
            iadd
            invokevirtual java.nio.ByteBuffer.get:(I)B
            istore 11 /* b */
        start local 11 // byte b
        10: .line 353
            iload 7 /* j */
            iload 3 /* headerSize */
            iconst_2
            isub
            if_icmpne 13
        11: .line 354
            iload 11 /* b */
            sipush 255
            iand
            bipush 8
            ishl
            istore 5 /* contentLen */
        12: .line 355
            goto 17
      StackMap locals: int
      StackMap stack:
        13: iload 7 /* j */
            iload 3 /* headerSize */
            iconst_1
            isub
            if_icmpne 17
        14: .line 356
            iload 5 /* contentLen */
            iload 11 /* b */
            sipush 255
            iand
            ior
            istore 5 /* contentLen */
        15: .line 357
            iconst_1
            istore 4 /* hasFullHeader */
        16: .line 358
            goto 19
        end local 11 // byte b
        17: .line 351
      StackMap locals:
      StackMap stack:
            iinc 7 /* j */ 1
            iinc 10 /* k */ 1
      StackMap locals:
      StackMap stack:
        18: iload 10 /* k */
            iload 8 /* remains */
            if_icmpge 19
            iload 7 /* j */
            iload 3 /* headerSize */
            if_icmplt 9
        end local 10 // int k
        end local 9 // int pos
        end local 8 // int remains
        19: .line 348
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        20: iload 6 /* i */
            iload 1 /* offset */
            iload 2 /* length */
            iadd
            if_icmpge 22
            iload 7 /* j */
            iload 3 /* headerSize */
        21: .line 347
            if_icmplt 5
        end local 7 // int j
        end local 6 // int i
        22: .line 363
      StackMap locals:
      StackMap stack:
            iload 4 /* hasFullHeader */
            ifne 24
        23: .line 364
            new java.nio.BufferUnderflowException
            dup
            invokespecial java.nio.BufferUnderflowException.<init>:()V
            athrow
        24: .line 367
      StackMap locals:
      StackMap stack:
            iload 3 /* headerSize */
            iload 5 /* contentLen */
            iadd
            istore 6 /* packetLen */
        start local 6 // int packetLen
        25: .line 368
            iconst_0
            istore 7 /* remains */
        start local 7 // int remains
        26: .line 369
            iload 1 /* offset */
            istore 8 /* i */
        start local 8 // int i
        27: goto 32
        28: .line 370
      StackMap locals: int int int
      StackMap stack:
            iload 7 /* remains */
            aload 0 /* buffers */
            iload 8 /* i */
            aaload
            invokevirtual java.nio.ByteBuffer.remaining:()I
            iadd
            istore 7 /* remains */
        29: .line 371
            iload 7 /* remains */
            iload 6 /* packetLen */
            if_icmplt 31
        30: .line 372
            goto 33
        31: .line 369
      StackMap locals:
      StackMap stack:
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        32: iload 8 /* i */
            iload 1 /* offset */
            iload 2 /* length */
            iadd
            if_icmplt 28
        end local 8 // int i
        33: .line 376
      StackMap locals:
      StackMap stack:
            iload 7 /* remains */
            iload 6 /* packetLen */
            if_icmpge 35
        34: .line 377
            new java.nio.BufferUnderflowException
            dup
            invokespecial java.nio.BufferUnderflowException.<init>:()V
            athrow
        35: .line 380
      StackMap locals:
      StackMap stack:
            iload 6 /* packetLen */
            newarray 8
            astore 8 /* packet */
        start local 8 // byte[] packet
        36: .line 381
            iconst_0
            istore 9 /* packetOffset */
        start local 9 // int packetOffset
        37: .line 382
            iload 6 /* packetLen */
            istore 10 /* packetSpaces */
        start local 10 // int packetSpaces
        38: .line 383
            iload 1 /* offset */
            istore 11 /* i */
        start local 11 // int i
        39: goto 48
        40: .line 384
      StackMap locals: java.nio.ByteBuffer[] int int int int int int int byte[] int int int
      StackMap stack:
            aload 0 /* buffers */
            iload 11 /* i */
            aaload
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifeq 45
        41: .line 385
            iload 10 /* packetSpaces */
            aload 0 /* buffers */
            iload 11 /* i */
            aaload
            invokevirtual java.nio.ByteBuffer.remaining:()I
            invokestatic java.lang.Math.min:(II)I
            istore 12 /* len */
        start local 12 // int len
        42: .line 386
            aload 0 /* buffers */
            iload 11 /* i */
            aaload
            aload 8 /* packet */
            iload 9 /* packetOffset */
            iload 12 /* len */
            invokevirtual java.nio.ByteBuffer.get:([BII)Ljava/nio/ByteBuffer;
            pop
        43: .line 387
            iload 9 /* packetOffset */
            iload 12 /* len */
            iadd
            istore 9 /* packetOffset */
        44: .line 388
            iload 10 /* packetSpaces */
            iload 12 /* len */
            isub
            istore 10 /* packetSpaces */
        end local 12 // int len
        45: .line 391
      StackMap locals:
      StackMap stack:
            iload 10 /* packetSpaces */
            ifgt 47
        46: .line 392
            goto 49
        47: .line 383
      StackMap locals:
      StackMap stack:
            iinc 11 /* i */ 1
      StackMap locals:
      StackMap stack:
        48: iload 11 /* i */
            iload 1 /* offset */
            iload 2 /* length */
            iadd
            if_icmplt 40
        end local 11 // int i
        49: .line 396
      StackMap locals:
      StackMap stack:
            aload 8 /* packet */
            invokestatic java.nio.ByteBuffer.wrap:([B)Ljava/nio/ByteBuffer;
            areturn
        end local 10 // int packetSpaces
        end local 9 // int packetOffset
        end local 8 // byte[] packet
        end local 7 // int remains
        end local 6 // int packetLen
        end local 5 // int contentLen
        end local 4 // boolean hasFullHeader
        end local 3 // int headerSize
        end local 2 // int length
        end local 1 // int offset
        end local 0 // java.nio.ByteBuffer[] buffers
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   50     0        buffers  [Ljava/nio/ByteBuffer;
            0   50     1         offset  I
            0   50     2         length  I
            0   50     3     headerSize  I
            1   50     4  hasFullHeader  Z
            2   50     5     contentLen  I
            3   22     6              i  I
            4   22     7              j  I
            6   19     8        remains  I
            7   19     9            pos  I
            8   19    10              k  I
           10   17    11              b  B
           25   50     6      packetLen  I
           26   50     7        remains  I
           27   33     8              i  I
           36   50     8         packet  [B
           37   50     9   packetOffset  I
           38   50    10   packetSpaces  I
           39   49    11              i  I
           42   45    12            len  I
    MethodParameters:
            Name  Flags
      buffers     
      offset      
      length      
      headerSize  
}
SourceFile: "InputRecord.java"
InnerClasses:
  abstract SSLReadCipher = sun.security.ssl.SSLCipher$SSLReadCipher of sun.security.ssl.SSLCipher