final class sun.security.ssl.DTLSInputRecord extends sun.security.ssl.InputRecord implements sun.security.ssl.DTLSRecord
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: sun.security.ssl.DTLSInputRecord
  super_class: sun.security.ssl.InputRecord
{
  private sun.security.ssl.DTLSInputRecord$DTLSReassembler reassembler;
    descriptor: Lsun/security/ssl/DTLSInputRecord$DTLSReassembler;
    flags: (0x0002) ACC_PRIVATE

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

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

  sun.security.ssl.Authenticator prevReadAuthenticator;
    descriptor: Lsun/security/ssl/Authenticator;
    flags: (0x0000) 

  sun.security.ssl.CipherBox prevReadCipher;
    descriptor: Lsun/security/ssl/CipherBox;
    flags: (0x0000) 

  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // sun.security.ssl.DTLSInputRecord this
         0: .line 51
            aload 0 /* this */
            invokespecial sun.security.ssl.InputRecord.<init>:()V
         1: .line 43
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.DTLSInputRecord.reassembler:Lsun/security/ssl/DTLSInputRecord$DTLSReassembler;
         2: .line 52
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.DTLSInputRecord.readEpoch:I
         3: .line 53
            aload 0 /* this */
            new sun.security.ssl.MAC
            dup
            iconst_1
            invokespecial sun.security.ssl.MAC.<init>:(Z)V
            putfield sun.security.ssl.DTLSInputRecord.readAuthenticator:Lsun/security/ssl/Authenticator;
         4: .line 55
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.DTLSInputRecord.prevReadEpoch:I
         5: .line 56
            aload 0 /* this */
            getstatic sun.security.ssl.CipherBox.NULL:Lsun/security/ssl/CipherBox;
            putfield sun.security.ssl.DTLSInputRecord.prevReadCipher:Lsun/security/ssl/CipherBox;
         6: .line 57
            aload 0 /* this */
            new sun.security.ssl.MAC
            dup
            iconst_1
            invokespecial sun.security.ssl.MAC.<init>:(Z)V
            putfield sun.security.ssl.DTLSInputRecord.prevReadAuthenticator:Lsun/security/ssl/Authenticator;
         7: .line 58
            return
        end local 0 // sun.security.ssl.DTLSInputRecord this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lsun/security/ssl/DTLSInputRecord;

  void changeReadCiphers(sun.security.ssl.Authenticator, sun.security.ssl.CipherBox);
    descriptor: (Lsun/security/ssl/Authenticator;Lsun/security/ssl/CipherBox;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // sun.security.ssl.DTLSInputRecord this
        start local 1 // sun.security.ssl.Authenticator readAuthenticator
        start local 2 // sun.security.ssl.CipherBox readCipher
         0: .line 64
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord.prevReadCipher:Lsun/security/ssl/CipherBox;
            invokevirtual sun.security.ssl.CipherBox.dispose:()V
         1: .line 66
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord.readAuthenticator:Lsun/security/ssl/Authenticator;
            putfield sun.security.ssl.DTLSInputRecord.prevReadAuthenticator:Lsun/security/ssl/Authenticator;
         2: .line 67
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord.readCipher:Lsun/security/ssl/CipherBox;
            putfield sun.security.ssl.DTLSInputRecord.prevReadCipher:Lsun/security/ssl/CipherBox;
         3: .line 68
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord.readEpoch:I
            putfield sun.security.ssl.DTLSInputRecord.prevReadEpoch:I
         4: .line 70
            aload 0 /* this */
            aload 1 /* readAuthenticator */
            putfield sun.security.ssl.DTLSInputRecord.readAuthenticator:Lsun/security/ssl/Authenticator;
         5: .line 71
            aload 0 /* this */
            aload 2 /* readCipher */
            putfield sun.security.ssl.DTLSInputRecord.readCipher:Lsun/security/ssl/CipherBox;
         6: .line 72
            aload 0 /* this */
            dup
            getfield sun.security.ssl.DTLSInputRecord.readEpoch:I
            iconst_1
            iadd
            putfield sun.security.ssl.DTLSInputRecord.readEpoch:I
         7: .line 73
            return
        end local 2 // sun.security.ssl.CipherBox readCipher
        end local 1 // sun.security.ssl.Authenticator readAuthenticator
        end local 0 // sun.security.ssl.DTLSInputRecord this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    8     0               this  Lsun/security/ssl/DTLSInputRecord;
            0    8     1  readAuthenticator  Lsun/security/ssl/Authenticator;
            0    8     2         readCipher  Lsun/security/ssl/CipherBox;
    MethodParameters:
                   Name  Flags
      readAuthenticator  
      readCipher         

  public synchronized void close();
    descriptor: ()V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.ssl.DTLSInputRecord this
         0: .line 77
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord.isClosed:Z
            ifne 3
         1: .line 78
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord.prevReadCipher:Lsun/security/ssl/CipherBox;
            invokevirtual sun.security.ssl.CipherBox.dispose:()V
         2: .line 79
            aload 0 /* this */
            invokespecial sun.security.ssl.InputRecord.close:()V
         3: .line 81
      StackMap locals:
      StackMap stack:
            return
        end local 0 // sun.security.ssl.DTLSInputRecord this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lsun/security/ssl/DTLSInputRecord;
    Exceptions:
      throws java.io.IOException

  boolean isEmpty();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.ssl.DTLSInputRecord this
         0: .line 85
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord.reassembler:Lsun/security/ssl/DTLSInputRecord$DTLSReassembler;
            ifnull 1
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord.reassembler:Lsun/security/ssl/DTLSInputRecord$DTLSReassembler;
            invokevirtual sun.security.ssl.DTLSInputRecord$DTLSReassembler.isEmpty:()Z
            ifne 1
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_1
            ireturn
        end local 0 // sun.security.ssl.DTLSInputRecord this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/security/ssl/DTLSInputRecord;

  int estimateFragmentSize(int);
    descriptor: (I)I
    flags: (0x0000) 
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // sun.security.ssl.DTLSInputRecord this
        start local 1 // int packetSize
         0: .line 90
            iconst_0
            istore 2 /* macLen */
        start local 2 // int macLen
         1: .line 91
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord.readAuthenticator:Lsun/security/ssl/Authenticator;
            instanceof sun.security.ssl.MAC
            ifeq 3
         2: .line 92
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord.readAuthenticator:Lsun/security/ssl/Authenticator;
            checkcast sun.security.ssl.MAC
            invokevirtual sun.security.ssl.MAC.MAClen:()I
            istore 2 /* macLen */
         3: .line 95
      StackMap locals: int
      StackMap stack:
            iload 1 /* packetSize */
            ifle 7
         4: .line 96
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord.readCipher:Lsun/security/ssl/CipherBox;
         5: .line 97
            iload 1 /* packetSize */
            iload 2 /* macLen */
            bipush 13
         6: .line 96
            invokevirtual sun.security.ssl.CipherBox.estimateFragmentSize:(III)I
            ireturn
         7: .line 99
      StackMap locals:
      StackMap stack:
            sipush 16384
            ireturn
        end local 2 // int macLen
        end local 1 // int packetSize
        end local 0 // sun.security.ssl.DTLSInputRecord this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    8     0        this  Lsun/security/ssl/DTLSInputRecord;
            0    8     1  packetSize  I
            1    8     2      macLen  I
    MethodParameters:
            Name  Flags
      packetSize  

  void expectingFinishFlight();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.ssl.DTLSInputRecord this
         0: .line 105
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord.reassembler:Lsun/security/ssl/DTLSInputRecord$DTLSReassembler;
            ifnull 2
         1: .line 106
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord.reassembler:Lsun/security/ssl/DTLSInputRecord$DTLSReassembler;
            invokevirtual sun.security.ssl.DTLSInputRecord$DTLSReassembler.expectingFinishFlight:()V
         2: .line 108
      StackMap locals:
      StackMap stack:
            return
        end local 0 // sun.security.ssl.DTLSInputRecord this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lsun/security/ssl/DTLSInputRecord;

  sun.security.ssl.Plaintext acquirePlaintext();
    descriptor: ()Lsun/security/ssl/Plaintext;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.ssl.DTLSInputRecord this
         0: .line 112
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord.reassembler:Lsun/security/ssl/DTLSInputRecord$DTLSReassembler;
            ifnull 2
         1: .line 113
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord.reassembler:Lsun/security/ssl/DTLSInputRecord$DTLSReassembler;
            invokevirtual sun.security.ssl.DTLSInputRecord$DTLSReassembler.acquirePlaintext:()Lsun/security/ssl/Plaintext;
            areturn
         2: .line 116
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 0 // sun.security.ssl.DTLSInputRecord this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lsun/security/ssl/DTLSInputRecord;

  sun.security.ssl.Plaintext decode(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)Lsun/security/ssl/Plaintext;
    flags: (0x0000) 
    Code:
      stack=12, locals=18, args_size=2
        start local 0 // sun.security.ssl.DTLSInputRecord this
        start local 1 // java.nio.ByteBuffer packet
         0: .line 122
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord.isClosed:Z
            ifeq 2
         1: .line 123
            aconst_null
            areturn
         2: .line 126
      StackMap locals:
      StackMap stack:
            getstatic sun.security.ssl.DTLSInputRecord.debug:Lsun/security/ssl/Debug;
            ifnull 5
            ldc "packet"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 5
         3: .line 128
            new java.lang.StringBuilder
            dup
            ldc "[Raw read]: length = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* packet */
            invokevirtual java.nio.ByteBuffer.remaining:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 1 /* packet */
         4: .line 127
            invokestatic sun.security.ssl.Debug.printHex:(Ljava/lang/String;Ljava/nio/ByteBuffer;)V
         5: .line 132
      StackMap locals:
      StackMap stack:
            aload 1 /* packet */
            invokevirtual java.nio.ByteBuffer.position:()I
            istore 2 /* srcPos */
        start local 2 // int srcPos
         6: .line 133
            aload 1 /* packet */
            invokevirtual java.nio.ByteBuffer.limit:()I
            istore 3 /* srcLim */
        start local 3 // int srcLim
         7: .line 135
            aload 1 /* packet */
            invokevirtual java.nio.ByteBuffer.get:()B
            istore 4 /* contentType */
        start local 4 // byte contentType
         8: .line 136
            aload 1 /* packet */
            invokevirtual java.nio.ByteBuffer.get:()B
            istore 5 /* majorVersion */
        start local 5 // byte majorVersion
         9: .line 137
            aload 1 /* packet */
            invokevirtual java.nio.ByteBuffer.get:()B
            istore 6 /* minorVersion */
        start local 6 // byte minorVersion
        10: .line 138
            bipush 8
            newarray 8
            astore 7 /* recordEnS */
        start local 7 // byte[] recordEnS
        11: .line 139
            aload 1 /* packet */
            aload 7 /* recordEnS */
            invokevirtual java.nio.ByteBuffer.get:([B)Ljava/nio/ByteBuffer;
            pop
        12: .line 140
            aload 7 /* recordEnS */
            iconst_0
            baload
            sipush 255
            iand
            bipush 8
            ishl
        13: .line 141
            aload 7 /* recordEnS */
            iconst_1
            baload
            sipush 255
            iand
        14: .line 140
            ior
            istore 8 /* recordEpoch */
        start local 8 // int recordEpoch
        15: .line 142
            aload 7 /* recordEnS */
            iconst_2
            baload
            i2l
            ldc 255
            land
            bipush 40
            lshl
        16: .line 143
            aload 7 /* recordEnS */
            iconst_3
            baload
            i2l
            ldc 255
            land
            bipush 32
            lshl
        17: .line 142
            lor
        18: .line 144
            aload 7 /* recordEnS */
            iconst_4
            baload
            i2l
            ldc 255
            land
            bipush 24
            lshl
        19: .line 142
            lor
        20: .line 145
            aload 7 /* recordEnS */
            iconst_5
            baload
            i2l
            ldc 255
            land
            bipush 16
            lshl
        21: .line 142
            lor
        22: .line 146
            aload 7 /* recordEnS */
            bipush 6
            baload
            i2l
            ldc 255
            land
            bipush 8
            lshl
        23: .line 142
            lor
        24: .line 147
            aload 7 /* recordEnS */
            bipush 7
            baload
            i2l
            ldc 255
            land
        25: .line 142
            lor
            lstore 9 /* recordSeq */
        start local 9 // long recordSeq
        26: .line 149
            aload 1 /* packet */
            invokevirtual java.nio.ByteBuffer.get:()B
            sipush 255
            iand
            bipush 8
            ishl
        27: .line 150
            aload 1 /* packet */
            invokevirtual java.nio.ByteBuffer.get:()B
            sipush 255
            iand
        28: .line 149
            ior
            istore 11 /* contentLen */
        start local 11 // int contentLen
        29: .line 152
            getstatic sun.security.ssl.DTLSInputRecord.debug:Lsun/security/ssl/Debug;
            ifnull 35
            ldc "record"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 35
        30: .line 153
            new java.lang.StringBuilder
            dup
            ldc "READ: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        31: .line 154
            iload 5 /* majorVersion */
            iload 6 /* minorVersion */
            invokestatic sun.security.ssl.ProtocolVersion.valueOf:(II)Lsun/security/ssl/ProtocolVersion;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        32: .line 155
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 4 /* contentType */
            invokestatic sun.security.ssl.Record.contentName:(B)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ", length = "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        33: .line 156
            iload 11 /* contentLen */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        34: .line 153
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic sun.security.ssl.Debug.log:(Ljava/lang/String;)V
        35: .line 159
      StackMap locals: sun.security.ssl.DTLSInputRecord java.nio.ByteBuffer int int int int int byte[] int long int
      StackMap stack:
            iload 2 /* srcPos */
            bipush 13
            iadd
            iload 11 /* contentLen */
            iadd
            istore 12 /* recLim */
        start local 12 // int recLim
        36: .line 161
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord.prevReadEpoch:I
            iload 8 /* recordEpoch */
            if_icmple 41
        37: .line 163
            aload 1 /* packet */
            iload 12 /* recLim */
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
            pop
        38: .line 164
            getstatic sun.security.ssl.DTLSInputRecord.debug:Lsun/security/ssl/Debug;
            ifnull 40
            ldc "record"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 40
        39: .line 165
            ldc "READ: discard this old record"
            aload 7 /* recordEnS */
            invokestatic sun.security.ssl.Debug.printHex:(Ljava/lang/String;[B)V
        40: .line 167
      StackMap locals: int
      StackMap stack:
            aconst_null
            areturn
        41: .line 171
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord.readEpoch:I
            iload 8 /* recordEpoch */
            if_icmpge 58
        42: .line 175
            iload 4 /* contentType */
            bipush 22
            if_icmpeq 44
        43: .line 176
            iload 4 /* contentType */
            bipush 20
            if_icmpne 45
        44: .line 177
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord.readEpoch:I
            iload 8 /* recordEpoch */
            iconst_1
            isub
            if_icmpge 49
        45: .line 179
      StackMap locals:
      StackMap stack:
            aload 1 /* packet */
            iload 12 /* recLim */
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
            pop
        46: .line 181
            getstatic sun.security.ssl.DTLSInputRecord.debug:Lsun/security/ssl/Debug;
            ifnull 48
            ldc "verbose"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 48
        47: .line 182
            ldc "Premature record (epoch), discard it."
            invokestatic sun.security.ssl.Debug.log:(Ljava/lang/String;)V
        48: .line 185
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        49: .line 190
      StackMap locals:
      StackMap stack:
            iload 11 /* contentLen */
            newarray 8
            astore 13 /* fragment */
        start local 13 // byte[] fragment
        50: .line 191
            aload 1 /* packet */
            aload 13 /* fragment */
            invokevirtual java.nio.ByteBuffer.get:([B)Ljava/nio/ByteBuffer;
            pop
        51: .line 192
            new sun.security.ssl.DTLSInputRecord$RecordFragment
            dup
            aload 13 /* fragment */
            iload 4 /* contentType */
        52: .line 193
            iload 5 /* majorVersion */
            iload 6 /* minorVersion */
        53: .line 194
            aload 7 /* recordEnS */
            iload 8 /* recordEpoch */
            lload 9 /* recordSeq */
            iconst_1
        54: .line 192
            invokespecial sun.security.ssl.DTLSInputRecord$RecordFragment.<init>:([BBBB[BIJZ)V
            astore 14 /* buffered */
        start local 14 // sun.security.ssl.DTLSInputRecord$RecordFragment buffered
        55: .line 196
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord.reassembler:Lsun/security/ssl/DTLSInputRecord$DTLSReassembler;
            aload 14 /* buffered */
            invokevirtual sun.security.ssl.DTLSInputRecord$DTLSReassembler.queueUpFragment:(Lsun/security/ssl/DTLSInputRecord$RecordFragment;)V
        56: .line 199
            aload 1 /* packet */
            iload 12 /* recLim */
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
            pop
        57: .line 201
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord.reassembler:Lsun/security/ssl/DTLSInputRecord$DTLSReassembler;
            invokevirtual sun.security.ssl.DTLSInputRecord$DTLSReassembler.acquirePlaintext:()Lsun/security/ssl/Plaintext;
            areturn
        end local 14 // sun.security.ssl.DTLSInputRecord$RecordFragment buffered
        end local 13 // byte[] fragment
        58: .line 209
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord.readEpoch:I
            iload 8 /* recordEpoch */
            if_icmpne 62
        59: .line 210
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord.readAuthenticator:Lsun/security/ssl/Authenticator;
            astore 13 /* decodeAuthenticator */
        start local 13 // sun.security.ssl.Authenticator decodeAuthenticator
        60: .line 211
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord.readCipher:Lsun/security/ssl/CipherBox;
            astore 14 /* decodeCipher */
        start local 14 // sun.security.ssl.CipherBox decodeCipher
        61: .line 212
            goto 64
        end local 14 // sun.security.ssl.CipherBox decodeCipher
        end local 13 // sun.security.ssl.Authenticator decodeAuthenticator
        62: .line 213
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord.prevReadAuthenticator:Lsun/security/ssl/Authenticator;
            astore 13 /* decodeAuthenticator */
        start local 13 // sun.security.ssl.Authenticator decodeAuthenticator
        63: .line 214
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord.prevReadCipher:Lsun/security/ssl/CipherBox;
            astore 14 /* decodeCipher */
        start local 14 // sun.security.ssl.CipherBox decodeCipher
        64: .line 218
      StackMap locals: sun.security.ssl.Authenticator sun.security.ssl.CipherBox
      StackMap stack:
            aload 1 /* packet */
            iload 12 /* recLim */
            invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/ByteBuffer;
            pop
        65: .line 219
            aload 1 /* packet */
            iload 2 /* srcPos */
            bipush 13
            iadd
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
            pop
        66: .line 223
            aload 13 /* decodeAuthenticator */
        67: .line 224
            aload 14 /* decodeCipher */
            iload 4 /* contentType */
            aload 1 /* packet */
            aload 7 /* recordEnS */
        68: .line 223
            invokestatic sun.security.ssl.DTLSInputRecord.decrypt:(Lsun/security/ssl/Authenticator;Lsun/security/ssl/CipherBox;BLjava/nio/ByteBuffer;[B)Ljava/nio/ByteBuffer;
            astore 15 /* plaintextFragment */
        start local 15 // java.nio.ByteBuffer plaintextFragment
        69: .line 225
            goto 80
        end local 15 // java.nio.ByteBuffer plaintextFragment
      StackMap locals:
      StackMap stack: javax.crypto.BadPaddingException
        70: astore 16 /* bpe */
        start local 16 // javax.crypto.BadPaddingException bpe
        71: .line 226
            getstatic sun.security.ssl.DTLSInputRecord.debug:Lsun/security/ssl/Debug;
            ifnull 73
            ldc "ssl"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 73
        72: .line 227
            new java.lang.StringBuilder
            dup
            ldc "Discard invalid record: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 16 /* bpe */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic sun.security.ssl.Debug.log:(Ljava/lang/String;)V
        73: .line 234
      StackMap locals: sun.security.ssl.DTLSInputRecord java.nio.ByteBuffer int int int int int byte[] int long int int sun.security.ssl.Authenticator sun.security.ssl.CipherBox top javax.crypto.BadPaddingException
      StackMap stack:
            aload 1 /* packet */
            iload 3 /* srcLim */
            invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/ByteBuffer;
            pop
        74: .line 235
            aload 1 /* packet */
            iload 12 /* recLim */
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
            pop
        75: .line 231
            aconst_null
            areturn
        end local 16 // javax.crypto.BadPaddingException bpe
        76: .line 232
      StackMap locals: sun.security.ssl.DTLSInputRecord java.nio.ByteBuffer int int int int int byte[] int long int int sun.security.ssl.Authenticator sun.security.ssl.CipherBox
      StackMap stack: java.lang.Throwable
            astore 17
        77: .line 234
            aload 1 /* packet */
            iload 3 /* srcLim */
            invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/ByteBuffer;
            pop
        78: .line 235
            aload 1 /* packet */
            iload 12 /* recLim */
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
            pop
        79: .line 236
            aload 17
            athrow
        start local 15 // java.nio.ByteBuffer plaintextFragment
        80: .line 234
      StackMap locals: java.nio.ByteBuffer
      StackMap stack:
            aload 1 /* packet */
            iload 3 /* srcLim */
            invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/ByteBuffer;
            pop
        81: .line 235
            aload 1 /* packet */
            iload 12 /* recLim */
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
            pop
        82: .line 238
            iload 4 /* contentType */
            bipush 20
            if_icmpeq 93
        83: .line 239
            iload 4 /* contentType */
            bipush 22
            if_icmpeq 93
        84: .line 242
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord.reassembler:Lsun/security/ssl/DTLSInputRecord$DTLSReassembler;
            ifnull 89
        85: .line 243
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord.reassembler:Lsun/security/ssl/DTLSInputRecord$DTLSReassembler;
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.handshakeEpoch:I
            iload 8 /* recordEpoch */
            if_icmpge 89
        86: .line 244
            getstatic sun.security.ssl.DTLSInputRecord.debug:Lsun/security/ssl/Debug;
            ifnull 88
            ldc "verbose"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 88
        87: .line 245
            ldc "Cleanup the handshake reassembler"
            invokestatic sun.security.ssl.Debug.log:(Ljava/lang/String;)V
        88: .line 248
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.DTLSInputRecord.reassembler:Lsun/security/ssl/DTLSInputRecord$DTLSReassembler;
        89: .line 251
      StackMap locals:
      StackMap stack:
            new sun.security.ssl.Plaintext
            dup
            iload 4 /* contentType */
            iload 5 /* majorVersion */
            iload 6 /* minorVersion */
        90: .line 252
            iload 8 /* recordEpoch */
            aload 7 /* recordEnS */
            invokestatic sun.security.ssl.Authenticator.toLong:([B)J
        91: .line 253
            aload 15 /* plaintextFragment */
        92: .line 251
            invokespecial sun.security.ssl.Plaintext.<init>:(BBBIJLjava/nio/ByteBuffer;)V
            areturn
        93: .line 256
      StackMap locals:
      StackMap stack:
            iload 4 /* contentType */
            bipush 20
            if_icmpne 123
        94: .line 257
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord.reassembler:Lsun/security/ssl/DTLSInputRecord$DTLSReassembler;
            ifnonnull 101
        95: .line 258
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord.readEpoch:I
            iload 8 /* recordEpoch */
            if_icmpeq 100
        96: .line 262
            getstatic sun.security.ssl.DTLSInputRecord.debug:Lsun/security/ssl/Debug;
            ifnull 99
            ldc "verbose"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 99
        97: .line 264
            ldc "Lagging behind ChangeCipherSpec, discard it."
        98: .line 263
            invokestatic sun.security.ssl.Debug.log:(Ljava/lang/String;)V
        99: .line 267
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
       100: .line 270
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new sun.security.ssl.DTLSInputRecord$DTLSReassembler
            dup
            aload 0 /* this */
            iload 8 /* recordEpoch */
            invokespecial sun.security.ssl.DTLSInputRecord$DTLSReassembler.<init>:(Lsun/security/ssl/DTLSInputRecord;I)V
            putfield sun.security.ssl.DTLSInputRecord.reassembler:Lsun/security/ssl/DTLSInputRecord$DTLSReassembler;
       101: .line 273
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord.reassembler:Lsun/security/ssl/DTLSInputRecord$DTLSReassembler;
       102: .line 274
            new sun.security.ssl.DTLSInputRecord$RecordFragment
            dup
            aload 15 /* plaintextFragment */
            iload 4 /* contentType */
       103: .line 275
            iload 5 /* majorVersion */
            iload 6 /* minorVersion */
       104: .line 276
            aload 7 /* recordEnS */
            iload 8 /* recordEpoch */
            lload 9 /* recordSeq */
            iconst_0
       105: .line 274
            invokespecial sun.security.ssl.DTLSInputRecord$RecordFragment.<init>:(Ljava/nio/ByteBuffer;BBB[BIJZ)V
       106: .line 273
            invokevirtual sun.security.ssl.DTLSInputRecord$DTLSReassembler.queueUpChangeCipherSpec:(Lsun/security/ssl/DTLSInputRecord$RecordFragment;)V
       107: .line 277
            goto 124
       108: .line 282
      StackMap locals:
      StackMap stack:
            iload 4 /* contentType */
            iload 5 /* majorVersion */
            iload 6 /* minorVersion */
       109: .line 283
            aload 7 /* recordEnS */
            iload 8 /* recordEpoch */
            lload 9 /* recordSeq */
            aload 15 /* plaintextFragment */
       110: .line 281
            invokestatic sun.security.ssl.DTLSInputRecord.parseHandshakeMessage:(BBB[BIJLjava/nio/ByteBuffer;)Lsun/security/ssl/DTLSInputRecord$HandshakeFragment;
            astore 16 /* hsFrag */
        start local 16 // sun.security.ssl.DTLSInputRecord$HandshakeFragment hsFrag
       111: .line 285
            aload 16 /* hsFrag */
            ifnonnull 115
       112: .line 287
            getstatic sun.security.ssl.DTLSInputRecord.debug:Lsun/security/ssl/Debug;
            ifnull 114
            ldc "verbose"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 114
       113: .line 288
            ldc "Invalid handshake message, discard it."
            invokestatic sun.security.ssl.Debug.log:(Ljava/lang/String;)V
       114: .line 291
      StackMap locals: sun.security.ssl.DTLSInputRecord$HandshakeFragment
      StackMap stack:
            aconst_null
            areturn
       115: .line 294
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord.reassembler:Lsun/security/ssl/DTLSInputRecord$DTLSReassembler;
            ifnonnull 122
       116: .line 295
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord.readEpoch:I
            iload 8 /* recordEpoch */
            if_icmpeq 121
       117: .line 299
            getstatic sun.security.ssl.DTLSInputRecord.debug:Lsun/security/ssl/Debug;
            ifnull 120
            ldc "verbose"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 120
       118: .line 301
            ldc "Lagging behind handshake record, discard it."
       119: .line 300
            invokestatic sun.security.ssl.Debug.log:(Ljava/lang/String;)V
       120: .line 304
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
       121: .line 307
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new sun.security.ssl.DTLSInputRecord$DTLSReassembler
            dup
            aload 0 /* this */
            iload 8 /* recordEpoch */
            invokespecial sun.security.ssl.DTLSInputRecord$DTLSReassembler.<init>:(Lsun/security/ssl/DTLSInputRecord;I)V
            putfield sun.security.ssl.DTLSInputRecord.reassembler:Lsun/security/ssl/DTLSInputRecord$DTLSReassembler;
       122: .line 310
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord.reassembler:Lsun/security/ssl/DTLSInputRecord$DTLSReassembler;
            aload 16 /* hsFrag */
            invokevirtual sun.security.ssl.DTLSInputRecord$DTLSReassembler.queueUpHandshake:(Lsun/security/ssl/DTLSInputRecord$HandshakeFragment;)V
        end local 16 // sun.security.ssl.DTLSInputRecord$HandshakeFragment hsFrag
       123: .line 279
      StackMap locals:
      StackMap stack:
            aload 15 /* plaintextFragment */
            invokevirtual java.nio.ByteBuffer.remaining:()I
            ifgt 108
       124: .line 316
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord.reassembler:Lsun/security/ssl/DTLSInputRecord$DTLSReassembler;
            ifnull 126
       125: .line 317
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord.reassembler:Lsun/security/ssl/DTLSInputRecord$DTLSReassembler;
            invokevirtual sun.security.ssl.DTLSInputRecord$DTLSReassembler.acquirePlaintext:()Lsun/security/ssl/Plaintext;
            areturn
       126: .line 320
      StackMap locals:
      StackMap stack:
            getstatic sun.security.ssl.DTLSInputRecord.debug:Lsun/security/ssl/Debug;
            ifnull 128
            ldc "verbose"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 128
       127: .line 321
            ldc "The reassembler is not initialized yet."
            invokestatic sun.security.ssl.Debug.log:(Ljava/lang/String;)V
       128: .line 324
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 15 // java.nio.ByteBuffer plaintextFragment
        end local 14 // sun.security.ssl.CipherBox decodeCipher
        end local 13 // sun.security.ssl.Authenticator decodeAuthenticator
        end local 12 // int recLim
        end local 11 // int contentLen
        end local 9 // long recordSeq
        end local 8 // int recordEpoch
        end local 7 // byte[] recordEnS
        end local 6 // byte minorVersion
        end local 5 // byte majorVersion
        end local 4 // byte contentType
        end local 3 // int srcLim
        end local 2 // int srcPos
        end local 1 // java.nio.ByteBuffer packet
        end local 0 // sun.security.ssl.DTLSInputRecord this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0  129     0                 this  Lsun/security/ssl/DTLSInputRecord;
            0  129     1               packet  Ljava/nio/ByteBuffer;
            6  129     2               srcPos  I
            7  129     3               srcLim  I
            8  129     4          contentType  B
            9  129     5         majorVersion  B
           10  129     6         minorVersion  B
           11  129     7            recordEnS  [B
           15  129     8          recordEpoch  I
           26  129     9            recordSeq  J
           29  129    11           contentLen  I
           36  129    12               recLim  I
           50   58    13             fragment  [B
           55   58    14             buffered  Lsun/security/ssl/DTLSInputRecord$RecordFragment;
           60   62    13  decodeAuthenticator  Lsun/security/ssl/Authenticator;
           63  129    13  decodeAuthenticator  Lsun/security/ssl/Authenticator;
           61   62    14         decodeCipher  Lsun/security/ssl/CipherBox;
           64  129    14         decodeCipher  Lsun/security/ssl/CipherBox;
           69   70    15    plaintextFragment  Ljava/nio/ByteBuffer;
           80  129    15    plaintextFragment  Ljava/nio/ByteBuffer;
           71   76    16                  bpe  Ljavax/crypto/BadPaddingException;
          111  123    16               hsFrag  Lsun/security/ssl/DTLSInputRecord$HandshakeFragment;
      Exception table:
        from    to  target  type
          66    69      70  Class javax.crypto.BadPaddingException
          66    73      76  any
    MethodParameters:
        Name  Flags
      packet  

  int bytesInCompletePacket(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)I
    flags: (0x0000) 
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // sun.security.ssl.DTLSInputRecord this
        start local 1 // java.nio.ByteBuffer packet
         0: .line 331
            aload 1 /* packet */
            invokevirtual java.nio.ByteBuffer.remaining:()I
            bipush 13
            if_icmpge 2
         1: .line 332
            iconst_m1
            ireturn
         2: .line 336
      StackMap locals:
      StackMap stack:
            aload 1 /* packet */
            invokevirtual java.nio.ByteBuffer.position:()I
            istore 2 /* pos */
        start local 2 // int pos
         3: .line 339
            aload 1 /* packet */
            iload 2 /* pos */
            invokevirtual java.nio.ByteBuffer.get:(I)B
            istore 3 /* contentType */
        start local 3 // byte contentType
         4: .line 340
            iload 3 /* contentType */
            invokestatic sun.security.ssl.Record.isValidContentType:(B)Z
            ifne 8
         5: .line 341
            new javax.net.ssl.SSLException
            dup
         6: .line 342
            ldc "Unrecognized SSL message, plaintext connection?"
         7: .line 341
            invokespecial javax.net.ssl.SSLException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 347
      StackMap locals: int int
      StackMap stack:
            aload 1 /* packet */
            iload 2 /* pos */
            iconst_1
            iadd
            invokevirtual java.nio.ByteBuffer.get:(I)B
            aload 1 /* packet */
            iload 2 /* pos */
            iconst_2
            iadd
            invokevirtual java.nio.ByteBuffer.get:(I)B
            invokestatic sun.security.ssl.ProtocolVersion.valueOf:(II)Lsun/security/ssl/ProtocolVersion;
         9: .line 346
            astore 4 /* recordVersion */
        start local 4 // sun.security.ssl.ProtocolVersion recordVersion
        10: .line 348
            aload 0 /* this */
            aload 4 /* recordVersion */
            iconst_0
            invokevirtual sun.security.ssl.DTLSInputRecord.checkRecordVersion:(Lsun/security/ssl/ProtocolVersion;Z)V
        11: .line 351
            aload 1 /* packet */
            iload 2 /* pos */
            bipush 11
            iadd
            invokevirtual java.nio.ByteBuffer.get:(I)B
            sipush 255
            iand
            bipush 8
            ishl
        12: .line 352
            aload 1 /* packet */
            iload 2 /* pos */
            bipush 12
            iadd
            invokevirtual java.nio.ByteBuffer.get:(I)B
            sipush 255
            iand
        13: .line 351
            iadd
        14: .line 352
            bipush 13
        15: .line 351
            iadd
            istore 5 /* fragLen */
        start local 5 // int fragLen
        16: .line 353
            iload 5 /* fragLen */
            sipush 18432
            if_icmple 22
        17: .line 354
            new javax.net.ssl.SSLException
            dup
        18: .line 355
            new java.lang.StringBuilder
            dup
            ldc "Record overflow, fragment length ("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 5 /* fragLen */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        19: .line 356
            ldc ") MUST not exceed "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            sipush 18432
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        20: .line 355
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        21: .line 354
            invokespecial javax.net.ssl.SSLException.<init>:(Ljava/lang/String;)V
            athrow
        22: .line 359
      StackMap locals: sun.security.ssl.ProtocolVersion int
      StackMap stack:
            iload 5 /* fragLen */
            ireturn
        end local 5 // int fragLen
        end local 4 // sun.security.ssl.ProtocolVersion recordVersion
        end local 3 // byte contentType
        end local 2 // int pos
        end local 1 // java.nio.ByteBuffer packet
        end local 0 // sun.security.ssl.DTLSInputRecord this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   23     0           this  Lsun/security/ssl/DTLSInputRecord;
            0   23     1         packet  Ljava/nio/ByteBuffer;
            3   23     2            pos  I
            4   23     3    contentType  B
           10   23     4  recordVersion  Lsun/security/ssl/ProtocolVersion;
           16   23     5        fragLen  I
    Exceptions:
      throws javax.net.ssl.SSLException
    MethodParameters:
        Name  Flags
      packet  

  void checkRecordVersion(sun.security.ssl.ProtocolVersion, boolean);
    descriptor: (Lsun/security/ssl/ProtocolVersion;Z)V
    flags: (0x0000) 
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // sun.security.ssl.DTLSInputRecord this
        start local 1 // sun.security.ssl.ProtocolVersion recordVersion
        start local 2 // boolean allowSSL20Hello
         0: .line 366
            aload 1 /* recordVersion */
            invokevirtual sun.security.ssl.ProtocolVersion.maybeDTLSProtocol:()Z
            ifne 6
         1: .line 367
            new javax.net.ssl.SSLException
            dup
         2: .line 368
            new java.lang.StringBuilder
            dup
            ldc "Unrecognized record version "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* recordVersion */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
         3: .line 369
            ldc " , plaintext connection?"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         4: .line 368
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         5: .line 367
            invokespecial javax.net.ssl.SSLException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 371
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean allowSSL20Hello
        end local 1 // sun.security.ssl.ProtocolVersion recordVersion
        end local 0 // sun.security.ssl.DTLSInputRecord this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    7     0             this  Lsun/security/ssl/DTLSInputRecord;
            0    7     1    recordVersion  Lsun/security/ssl/ProtocolVersion;
            0    7     2  allowSSL20Hello  Z
    Exceptions:
      throws javax.net.ssl.SSLException
    MethodParameters:
                 Name  Flags
      recordVersion    
      allowSSL20Hello  

  private static sun.security.ssl.DTLSInputRecord$HandshakeFragment parseHandshakeMessage(byte, byte, byte, byte[], int, long, java.nio.ByteBuffer);
    descriptor: (BBB[BIJLjava/nio/ByteBuffer;)Lsun/security/ssl/DTLSInputRecord$HandshakeFragment;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=15, locals=15, args_size=7
        start local 0 // byte contentType
        start local 1 // byte majorVersion
        start local 2 // byte minorVersion
        start local 3 // byte[] recordEnS
        start local 4 // int recordEpoch
        start local 5 // long recordSeq
        start local 7 // java.nio.ByteBuffer plaintextFragment
         0: .line 378
            aload 7 /* plaintextFragment */
            invokevirtual java.nio.ByteBuffer.remaining:()I
            istore 8 /* remaining */
        start local 8 // int remaining
         1: .line 379
            iload 8 /* remaining */
            bipush 12
            if_icmpge 5
         2: .line 380
            getstatic sun.security.ssl.DTLSInputRecord.debug:Lsun/security/ssl/Debug;
            ifnull 4
            ldc "ssl"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 4
         3: .line 381
            ldc "Discard invalid record: too small record to hold a handshake fragment"
            invokestatic sun.security.ssl.Debug.log:(Ljava/lang/String;)V
         4: .line 386
      StackMap locals: int
      StackMap stack:
            aconst_null
            areturn
         5: .line 389
      StackMap locals:
      StackMap stack:
            aload 7 /* plaintextFragment */
            invokevirtual java.nio.ByteBuffer.get:()B
            istore 9 /* handshakeType */
        start local 9 // byte handshakeType
         6: .line 391
            aload 7 /* plaintextFragment */
            invokevirtual java.nio.ByteBuffer.get:()B
            sipush 255
            iand
            bipush 16
            ishl
         7: .line 392
            aload 7 /* plaintextFragment */
            invokevirtual java.nio.ByteBuffer.get:()B
            sipush 255
            iand
            bipush 8
            ishl
         8: .line 391
            ior
         9: .line 393
            aload 7 /* plaintextFragment */
            invokevirtual java.nio.ByteBuffer.get:()B
            sipush 255
            iand
        10: .line 391
            ior
        11: .line 390
            istore 10 /* messageLength */
        start local 10 // int messageLength
        12: .line 395
            aload 7 /* plaintextFragment */
            invokevirtual java.nio.ByteBuffer.get:()B
            sipush 255
            iand
            bipush 8
            ishl
        13: .line 396
            aload 7 /* plaintextFragment */
            invokevirtual java.nio.ByteBuffer.get:()B
            sipush 255
            iand
        14: .line 395
            ior
        15: .line 394
            istore 11 /* messageSeq */
        start local 11 // int messageSeq
        16: .line 398
            aload 7 /* plaintextFragment */
            invokevirtual java.nio.ByteBuffer.get:()B
            sipush 255
            iand
            bipush 16
            ishl
        17: .line 399
            aload 7 /* plaintextFragment */
            invokevirtual java.nio.ByteBuffer.get:()B
            sipush 255
            iand
            bipush 8
            ishl
        18: .line 398
            ior
        19: .line 400
            aload 7 /* plaintextFragment */
            invokevirtual java.nio.ByteBuffer.get:()B
            sipush 255
            iand
        20: .line 398
            ior
        21: .line 397
            istore 12 /* fragmentOffset */
        start local 12 // int fragmentOffset
        22: .line 402
            aload 7 /* plaintextFragment */
            invokevirtual java.nio.ByteBuffer.get:()B
            sipush 255
            iand
            bipush 16
            ishl
        23: .line 403
            aload 7 /* plaintextFragment */
            invokevirtual java.nio.ByteBuffer.get:()B
            sipush 255
            iand
            bipush 8
            ishl
        24: .line 402
            ior
        25: .line 404
            aload 7 /* plaintextFragment */
            invokevirtual java.nio.ByteBuffer.get:()B
            sipush 255
            iand
        26: .line 402
            ior
        27: .line 401
            istore 13 /* fragmentLength */
        start local 13 // int fragmentLength
        28: .line 405
            iload 8 /* remaining */
            bipush 12
            isub
            iload 13 /* fragmentLength */
            if_icmpge 32
        29: .line 406
            getstatic sun.security.ssl.DTLSInputRecord.debug:Lsun/security/ssl/Debug;
            ifnull 31
            ldc "ssl"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 31
        30: .line 407
            ldc "Discard invalid record: not a complete handshake fragment in the record"
            invokestatic sun.security.ssl.Debug.log:(Ljava/lang/String;)V
        31: .line 412
      StackMap locals: int int int byte[] int long java.nio.ByteBuffer int int int int int int
      StackMap stack:
            aconst_null
            areturn
        32: .line 415
      StackMap locals:
      StackMap stack:
            iload 13 /* fragmentLength */
            newarray 8
            astore 14 /* fragment */
        start local 14 // byte[] fragment
        33: .line 416
            aload 7 /* plaintextFragment */
            aload 14 /* fragment */
            invokevirtual java.nio.ByteBuffer.get:([B)Ljava/nio/ByteBuffer;
            pop
        34: .line 418
            new sun.security.ssl.DTLSInputRecord$HandshakeFragment
            dup
            aload 14 /* fragment */
            iload 0 /* contentType */
        35: .line 419
            iload 1 /* majorVersion */
            iload 2 /* minorVersion */
        36: .line 420
            aload 3 /* recordEnS */
            iload 4 /* recordEpoch */
            lload 5 /* recordSeq */
        37: .line 421
            iload 9 /* handshakeType */
            iload 10 /* messageLength */
        38: .line 422
            iload 11 /* messageSeq */
            iload 12 /* fragmentOffset */
            iload 13 /* fragmentLength */
        39: .line 418
            invokespecial sun.security.ssl.DTLSInputRecord$HandshakeFragment.<init>:([BBBB[BIJBIIII)V
            areturn
        end local 14 // byte[] fragment
        end local 13 // int fragmentLength
        end local 12 // int fragmentOffset
        end local 11 // int messageSeq
        end local 10 // int messageLength
        end local 9 // byte handshakeType
        end local 8 // int remaining
        end local 7 // java.nio.ByteBuffer plaintextFragment
        end local 5 // long recordSeq
        end local 4 // int recordEpoch
        end local 3 // byte[] recordEnS
        end local 2 // byte minorVersion
        end local 1 // byte majorVersion
        end local 0 // byte contentType
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   40     0        contentType  B
            0   40     1       majorVersion  B
            0   40     2       minorVersion  B
            0   40     3          recordEnS  [B
            0   40     4        recordEpoch  I
            0   40     5          recordSeq  J
            0   40     7  plaintextFragment  Ljava/nio/ByteBuffer;
            1   40     8          remaining  I
            6   40     9      handshakeType  B
           12   40    10      messageLength  I
           16   40    11         messageSeq  I
           22   40    12     fragmentOffset  I
           28   40    13     fragmentLength  I
           33   40    14           fragment  [B
    MethodParameters:
                   Name  Flags
      contentType        
      majorVersion       
      minorVersion       
      recordEnS          
      recordEpoch        
      recordSeq          
      plaintextFragment  
}
SourceFile: "DTLSInputRecord.java"
NestMembers:
  sun.security.ssl.DTLSInputRecord$DTLSReassembler  sun.security.ssl.DTLSInputRecord$HandshakeFlight  sun.security.ssl.DTLSInputRecord$HandshakeFragment  sun.security.ssl.DTLSInputRecord$HoleDescriptor  sun.security.ssl.DTLSInputRecord$RecordFragment
InnerClasses:
  final DTLSReassembler = sun.security.ssl.DTLSInputRecord$DTLSReassembler of sun.security.ssl.DTLSInputRecord
  private final HandshakeFlight = sun.security.ssl.DTLSInputRecord$HandshakeFlight of sun.security.ssl.DTLSInputRecord
  private final HandshakeFragment = sun.security.ssl.DTLSInputRecord$HandshakeFragment of sun.security.ssl.DTLSInputRecord
  private final HoleDescriptor = sun.security.ssl.DTLSInputRecord$HoleDescriptor of sun.security.ssl.DTLSInputRecord
  private RecordFragment = sun.security.ssl.DTLSInputRecord$RecordFragment of sun.security.ssl.DTLSInputRecord