final class sun.security.ssl.DTLSInputRecord$DTLSReassembler
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: sun.security.ssl.DTLSInputRecord$DTLSReassembler
  super_class: java.lang.Object
{
  final int handshakeEpoch;
    descriptor: I
    flags: (0x0010) ACC_FINAL

  java.util.TreeSet<sun.security.ssl.DTLSInputRecord$RecordFragment> bufferedFragments;
    descriptor: Ljava/util/TreeSet;
    flags: (0x0000) 
    Signature: Ljava/util/TreeSet<Lsun/security/ssl/DTLSInputRecord$RecordFragment;>;

  sun.security.ssl.DTLSInputRecord$HandshakeFlight handshakeFlight;
    descriptor: Lsun/security/ssl/DTLSInputRecord$HandshakeFlight;
    flags: (0x0000) 

  sun.security.ssl.DTLSInputRecord$HandshakeFlight precedingFlight;
    descriptor: Lsun/security/ssl/DTLSInputRecord$HandshakeFlight;
    flags: (0x0000) 

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

  long nextRecordSeq;
    descriptor: J
    flags: (0x0000) 

  boolean expectCCSFlight;
    descriptor: Z
    flags: (0x0000) 

  boolean flightIsReady;
    descriptor: Z
    flags: (0x0000) 

  boolean needToCheckFlight;
    descriptor: Z
    flags: (0x0000) 

  final sun.security.ssl.DTLSInputRecord this$0;
    descriptor: Lsun/security/ssl/DTLSInputRecord;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  void <init>(sun.security.ssl.DTLSInputRecord, int);
    descriptor: (Lsun/security/ssl/DTLSInputRecord;I)V
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // sun.security.ssl.DTLSInputRecord$DTLSReassembler this
        start local 2 // int handshakeEpoch
         0: .line 620
            aload 0 /* this */
            aload 1
            putfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.this$0:Lsun/security/ssl/DTLSInputRecord;
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 600
            aload 0 /* this */
            new java.util.TreeSet
            dup
            invokespecial java.util.TreeSet.<init>:()V
            putfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.bufferedFragments:Ljava/util/TreeSet;
         2: .line 603
            aload 0 /* this */
            new sun.security.ssl.DTLSInputRecord$HandshakeFlight
            dup
            invokespecial sun.security.ssl.DTLSInputRecord$HandshakeFlight.<init>:()V
            putfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.handshakeFlight:Lsun/security/ssl/DTLSInputRecord$HandshakeFlight;
         3: .line 606
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.precedingFlight:Lsun/security/ssl/DTLSInputRecord$HandshakeFlight;
         4: .line 611
            aload 0 /* this */
            lconst_0
            putfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.nextRecordSeq:J
         5: .line 614
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.expectCCSFlight:Z
         6: .line 617
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.flightIsReady:Z
         7: .line 618
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.needToCheckFlight:Z
         8: .line 621
            aload 0 /* this */
            iload 2 /* handshakeEpoch */
            putfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.handshakeEpoch:I
         9: .line 622
            aload 0 /* this */
            iload 2 /* handshakeEpoch */
            putfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.nextRecordEpoch:I
        10: .line 624
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.handshakeFlight:Lsun/security/ssl/DTLSInputRecord$HandshakeFlight;
            iload 2 /* handshakeEpoch */
            putfield sun.security.ssl.DTLSInputRecord$HandshakeFlight.flightEpoch:I
        11: .line 625
            return
        end local 2 // int handshakeEpoch
        end local 0 // sun.security.ssl.DTLSInputRecord$DTLSReassembler this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   12     0            this  Lsun/security/ssl/DTLSInputRecord$DTLSReassembler;
            0   12     2  handshakeEpoch  I
    MethodParameters:
                Name  Flags
      this$0          final
      handshakeEpoch  

  void expectingFinishFlight();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.security.ssl.DTLSInputRecord$DTLSReassembler this
         0: .line 628
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.expectCCSFlight:Z
         1: .line 629
            return
        end local 0 // sun.security.ssl.DTLSInputRecord$DTLSReassembler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/security/ssl/DTLSInputRecord$DTLSReassembler;

  void queueUpHandshake(sun.security.ssl.DTLSInputRecord$HandshakeFragment);
    descriptor: (Lsun/security/ssl/DTLSInputRecord$HandshakeFragment;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=8, args_size=2
        start local 0 // sun.security.ssl.DTLSInputRecord$DTLSReassembler this
        start local 1 // sun.security.ssl.DTLSInputRecord$HandshakeFragment hsf
         0: .line 633
            aload 0 /* this */
            aload 1 /* hsf */
            invokevirtual sun.security.ssl.DTLSInputRecord$DTLSReassembler.isDesirable:(Lsun/security/ssl/DTLSInputRecord$RecordFragment;)Z
            ifne 2
         1: .line 635
            return
         2: .line 639
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* hsf */
            invokevirtual sun.security.ssl.DTLSInputRecord$DTLSReassembler.cleanUpRetransmit:(Lsun/security/ssl/DTLSInputRecord$RecordFragment;)V
         3: .line 644
            iconst_0
            istore 2 /* isMinimalFlightMessage */
        start local 2 // boolean isMinimalFlightMessage
         4: .line 645
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.handshakeFlight:Lsun/security/ssl/DTLSInputRecord$HandshakeFlight;
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFlight.minMessageSeq:I
            aload 1 /* hsf */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFragment.messageSeq:I
            if_icmpne 7
         5: .line 646
            iconst_1
            istore 2 /* isMinimalFlightMessage */
         6: .line 647
            goto 10
      StackMap locals: int
      StackMap stack:
         7: aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.precedingFlight:Lsun/security/ssl/DTLSInputRecord$HandshakeFlight;
            ifnull 10
         8: .line 648
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.precedingFlight:Lsun/security/ssl/DTLSInputRecord$HandshakeFlight;
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFlight.minMessageSeq:I
            aload 1 /* hsf */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFragment.messageSeq:I
            if_icmpne 10
         9: .line 649
            iconst_1
            istore 2 /* isMinimalFlightMessage */
        10: .line 652
      StackMap locals:
      StackMap stack:
            iload 2 /* isMinimalFlightMessage */
            ifeq 15
            aload 1 /* hsf */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFragment.fragmentOffset:I
            ifne 15
        11: .line 653
            aload 1 /* hsf */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFragment.handshakeType:B
            getstatic sun.security.ssl.SSLHandshake.FINISHED:Lsun/security/ssl/SSLHandshake;
            getfield sun.security.ssl.SSLHandshake.id:B
            if_icmpeq 15
        12: .line 656
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.handshakeFlight:Lsun/security/ssl/DTLSInputRecord$HandshakeFlight;
            aload 1 /* hsf */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFragment.handshakeType:B
            putfield sun.security.ssl.DTLSInputRecord$HandshakeFlight.handshakeType:B
        13: .line 657
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.handshakeFlight:Lsun/security/ssl/DTLSInputRecord$HandshakeFlight;
            aload 1 /* hsf */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFragment.recordEpoch:I
            putfield sun.security.ssl.DTLSInputRecord$HandshakeFlight.flightEpoch:I
        14: .line 658
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.handshakeFlight:Lsun/security/ssl/DTLSInputRecord$HandshakeFlight;
            aload 1 /* hsf */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFragment.messageSeq:I
            putfield sun.security.ssl.DTLSInputRecord$HandshakeFlight.minMessageSeq:I
        15: .line 661
      StackMap locals:
      StackMap stack:
            aload 1 /* hsf */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFragment.handshakeType:B
            getstatic sun.security.ssl.SSLHandshake.FINISHED:Lsun/security/ssl/SSLHandshake;
            getfield sun.security.ssl.SSLHandshake.id:B
            if_icmpne 20
        16: .line 662
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.handshakeFlight:Lsun/security/ssl/DTLSInputRecord$HandshakeFlight;
            aload 1 /* hsf */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFragment.messageSeq:I
            putfield sun.security.ssl.DTLSInputRecord$HandshakeFlight.maxMessageSeq:I
        17: .line 663
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.handshakeFlight:Lsun/security/ssl/DTLSInputRecord$HandshakeFlight;
            aload 1 /* hsf */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFragment.recordEpoch:I
            putfield sun.security.ssl.DTLSInputRecord$HandshakeFlight.maxRecordEpoch:I
        18: .line 664
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.handshakeFlight:Lsun/security/ssl/DTLSInputRecord$HandshakeFlight;
            aload 1 /* hsf */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFragment.recordSeq:J
            putfield sun.security.ssl.DTLSInputRecord$HandshakeFlight.maxRecordSeq:J
        19: .line 665
            goto 30
        20: .line 666
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.handshakeFlight:Lsun/security/ssl/DTLSInputRecord$HandshakeFlight;
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFlight.maxMessageSeq:I
            aload 1 /* hsf */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFragment.messageSeq:I
            if_icmpge 22
        21: .line 667
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.handshakeFlight:Lsun/security/ssl/DTLSInputRecord$HandshakeFlight;
            aload 1 /* hsf */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFragment.messageSeq:I
            putfield sun.security.ssl.DTLSInputRecord$HandshakeFlight.maxMessageSeq:I
        22: .line 670
      StackMap locals:
      StackMap stack:
            aload 1 /* hsf */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFragment.recordEpoch:I
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.handshakeFlight:Lsun/security/ssl/DTLSInputRecord$HandshakeFlight;
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFlight.maxRecordEpoch:I
            isub
            istore 3 /* n */
        start local 3 // int n
        23: .line 671
            iload 3 /* n */
            ifle 27
        24: .line 672
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.handshakeFlight:Lsun/security/ssl/DTLSInputRecord$HandshakeFlight;
            aload 1 /* hsf */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFragment.recordEpoch:I
            putfield sun.security.ssl.DTLSInputRecord$HandshakeFlight.maxRecordEpoch:I
        25: .line 673
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.handshakeFlight:Lsun/security/ssl/DTLSInputRecord$HandshakeFlight;
            aload 1 /* hsf */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFragment.recordSeq:J
            putfield sun.security.ssl.DTLSInputRecord$HandshakeFlight.maxRecordSeq:J
        26: .line 674
            goto 30
      StackMap locals: int
      StackMap stack:
        27: iload 3 /* n */
            ifne 30
        28: .line 676
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.handshakeFlight:Lsun/security/ssl/DTLSInputRecord$HandshakeFlight;
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFlight.maxRecordSeq:J
            aload 1 /* hsf */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFragment.recordSeq:J
            lcmp
            ifge 30
        29: .line 677
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.handshakeFlight:Lsun/security/ssl/DTLSInputRecord$HandshakeFlight;
            aload 1 /* hsf */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFragment.recordSeq:J
            putfield sun.security.ssl.DTLSInputRecord$HandshakeFlight.maxRecordSeq:J
        end local 3 // int n
        30: .line 682
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 3 /* fragmented */
        start local 3 // boolean fragmented
        31: .line 683
            aload 1 /* hsf */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFragment.fragmentOffset:I
            ifne 33
        32: .line 684
            aload 1 /* hsf */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFragment.fragmentLength:I
            aload 1 /* hsf */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFragment.messageLength:I
            if_icmpeq 34
        33: .line 686
      StackMap locals: int
      StackMap stack:
            iconst_1
            istore 3 /* fragmented */
        34: .line 690
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.handshakeFlight:Lsun/security/ssl/DTLSInputRecord$HandshakeFlight;
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFlight.holesMap:Ljava/util/HashMap;
            aload 1 /* hsf */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFragment.handshakeType:B
            invokestatic java.lang.Byte.valueOf:(B)Ljava/lang/Byte;
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.List
        35: .line 689
            astore 4 /* holes */
        start local 4 // java.util.List holes
        36: .line 691
            aload 4 /* holes */
            ifnonnull 44
        37: .line 692
            iload 3 /* fragmented */
            ifne 40
        38: .line 693
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            astore 4 /* holes */
        39: .line 694
            goto 42
        40: .line 695
      StackMap locals: java.util.List
      StackMap stack:
            new java.util.LinkedList
            dup
            invokespecial java.util.LinkedList.<init>:()V
            astore 4 /* holes */
        41: .line 696
            aload 4 /* holes */
            new sun.security.ssl.DTLSInputRecord$HoleDescriptor
            dup
            iconst_0
            aload 1 /* hsf */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFragment.messageLength:I
            invokespecial sun.security.ssl.DTLSInputRecord$HoleDescriptor.<init>:(II)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        42: .line 698
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.handshakeFlight:Lsun/security/ssl/DTLSInputRecord$HandshakeFlight;
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFlight.holesMap:Ljava/util/HashMap;
            aload 1 /* hsf */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFragment.handshakeType:B
            invokestatic java.lang.Byte.valueOf:(B)Ljava/lang/Byte;
            aload 4 /* holes */
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        43: .line 699
            goto 48
      StackMap locals:
      StackMap stack:
        44: aload 4 /* holes */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 48
        45: .line 706
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 47
            ldc "verbose"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 47
        46: .line 707
            ldc "Have got the full message, discard it."
            iconst_0
            anewarray java.lang.Object
            invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
        47: .line 710
      StackMap locals:
      StackMap stack:
            return
        48: .line 713
      StackMap locals:
      StackMap stack:
            iload 3 /* fragmented */
            ifeq 75
        49: .line 714
            aload 1 /* hsf */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFragment.fragmentOffset:I
            aload 1 /* hsf */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFragment.fragmentLength:I
            iadd
            istore 5 /* fragmentLimit */
        start local 5 // int fragmentLimit
        50: .line 715
            iconst_0
            istore 6 /* i */
        start local 6 // int i
        51: goto 74
        52: .line 717
      StackMap locals: int int
      StackMap stack:
            aload 4 /* holes */
            iload 6 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast sun.security.ssl.DTLSInputRecord$HoleDescriptor
            astore 7 /* hole */
        start local 7 // sun.security.ssl.DTLSInputRecord$HoleDescriptor hole
        53: .line 718
            aload 7 /* hole */
            getfield sun.security.ssl.DTLSInputRecord$HoleDescriptor.limit:I
            aload 1 /* hsf */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFragment.fragmentOffset:I
            if_icmple 73
        54: .line 719
            aload 7 /* hole */
            getfield sun.security.ssl.DTLSInputRecord$HoleDescriptor.offset:I
            iload 5 /* fragmentLimit */
            if_icmplt 56
        55: .line 721
            goto 73
        56: .line 725
      StackMap locals: sun.security.ssl.DTLSInputRecord$HoleDescriptor
      StackMap stack:
            aload 7 /* hole */
            getfield sun.security.ssl.DTLSInputRecord$HoleDescriptor.offset:I
            aload 1 /* hsf */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFragment.fragmentOffset:I
            if_icmple 58
        57: .line 726
            aload 7 /* hole */
            getfield sun.security.ssl.DTLSInputRecord$HoleDescriptor.offset:I
            iload 5 /* fragmentLimit */
            if_icmplt 60
        58: .line 727
      StackMap locals:
      StackMap stack:
            aload 7 /* hole */
            getfield sun.security.ssl.DTLSInputRecord$HoleDescriptor.limit:I
            aload 1 /* hsf */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFragment.fragmentOffset:I
            if_icmple 63
        59: .line 728
            aload 7 /* hole */
            getfield sun.security.ssl.DTLSInputRecord$HoleDescriptor.limit:I
            iload 5 /* fragmentLimit */
            if_icmpge 63
        60: .line 730
      StackMap locals:
      StackMap stack:
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 62
            ldc "ssl"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 62
        61: .line 731
            ldc "Discard invalid record: handshake fragment ranges are overlapping"
            iconst_0
            anewarray java.lang.Object
            invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
        62: .line 736
      StackMap locals:
      StackMap stack:
            return
        63: .line 740
      StackMap locals:
      StackMap stack:
            aload 4 /* holes */
            iload 6 /* i */
            invokeinterface java.util.List.remove:(I)Ljava/lang/Object;
            pop
        64: .line 743
            aload 1 /* hsf */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFragment.fragmentOffset:I
            aload 7 /* hole */
            getfield sun.security.ssl.DTLSInputRecord$HoleDescriptor.offset:I
            if_icmple 68
        65: .line 744
            aload 4 /* holes */
            new sun.security.ssl.DTLSInputRecord$HoleDescriptor
            dup
        66: .line 745
            aload 7 /* hole */
            getfield sun.security.ssl.DTLSInputRecord$HoleDescriptor.offset:I
            aload 1 /* hsf */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFragment.fragmentOffset:I
            invokespecial sun.security.ssl.DTLSInputRecord$HoleDescriptor.<init>:(II)V
        67: .line 744
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        68: .line 749
      StackMap locals:
      StackMap stack:
            iload 5 /* fragmentLimit */
            aload 7 /* hole */
            getfield sun.security.ssl.DTLSInputRecord$HoleDescriptor.limit:I
            if_icmpge 75
        69: .line 750
            aload 4 /* holes */
            new sun.security.ssl.DTLSInputRecord$HoleDescriptor
            dup
        70: .line 751
            iload 5 /* fragmentLimit */
            aload 7 /* hole */
            getfield sun.security.ssl.DTLSInputRecord$HoleDescriptor.limit:I
            invokespecial sun.security.ssl.DTLSInputRecord$HoleDescriptor.<init>:(II)V
        71: .line 750
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        72: .line 756
            goto 75
        end local 7 // sun.security.ssl.DTLSInputRecord$HoleDescriptor hole
        73: .line 715
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        74: iload 6 /* i */
            aload 4 /* holes */
            invokeinterface java.util.List.size:()I
            if_icmplt 52
        end local 6 // int i
        end local 5 // int fragmentLimit
        75: .line 761
      StackMap locals:
      StackMap stack:
            aload 1 /* hsf */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFragment.handshakeType:B
            getstatic sun.security.ssl.SSLHandshake.FINISHED:Lsun/security/ssl/SSLHandshake;
            getfield sun.security.ssl.SSLHandshake.id:B
            if_icmpne 78
        76: .line 763
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.bufferedFragments:Ljava/util/TreeSet;
            aload 1 /* hsf */
            invokevirtual java.util.TreeSet.add:(Ljava/lang/Object;)Z
            pop
        77: .line 764
            goto 79
        78: .line 765
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* hsf */
            invokevirtual sun.security.ssl.DTLSInputRecord$DTLSReassembler.bufferFragment:(Lsun/security/ssl/DTLSInputRecord$RecordFragment;)V
        79: .line 767
      StackMap locals:
      StackMap stack:
            return
        end local 4 // java.util.List holes
        end local 3 // boolean fragmented
        end local 2 // boolean isMinimalFlightMessage
        end local 1 // sun.security.ssl.DTLSInputRecord$HandshakeFragment hsf
        end local 0 // sun.security.ssl.DTLSInputRecord$DTLSReassembler this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   80     0                    this  Lsun/security/ssl/DTLSInputRecord$DTLSReassembler;
            0   80     1                     hsf  Lsun/security/ssl/DTLSInputRecord$HandshakeFragment;
            4   80     2  isMinimalFlightMessage  Z
           23   30     3                       n  I
           31   80     3              fragmented  Z
           36   80     4                   holes  Ljava/util/List<Lsun/security/ssl/DTLSInputRecord$HoleDescriptor;>;
           50   75     5           fragmentLimit  I
           51   75     6                       i  I
           53   73     7                    hole  Lsun/security/ssl/DTLSInputRecord$HoleDescriptor;
    MethodParameters:
      Name  Flags
      hsf   

  void queueUpChangeCipherSpec(sun.security.ssl.DTLSInputRecord$RecordFragment);
    descriptor: (Lsun/security/ssl/DTLSInputRecord$RecordFragment;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // sun.security.ssl.DTLSInputRecord$DTLSReassembler this
        start local 1 // sun.security.ssl.DTLSInputRecord$RecordFragment rf
         0: .line 771
            aload 0 /* this */
            aload 1 /* rf */
            invokevirtual sun.security.ssl.DTLSInputRecord$DTLSReassembler.isDesirable:(Lsun/security/ssl/DTLSInputRecord$RecordFragment;)Z
            ifne 2
         1: .line 773
            return
         2: .line 777
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* rf */
            invokevirtual sun.security.ssl.DTLSInputRecord$DTLSReassembler.cleanUpRetransmit:(Lsun/security/ssl/DTLSInputRecord$RecordFragment;)V
         3: .line 782
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.expectCCSFlight:Z
            ifeq 6
         4: .line 783
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.handshakeFlight:Lsun/security/ssl/DTLSInputRecord$HandshakeFlight;
            getstatic sun.security.ssl.DTLSInputRecord$HandshakeFlight.HF_UNKNOWN:B
            putfield sun.security.ssl.DTLSInputRecord$HandshakeFlight.handshakeType:B
         5: .line 784
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.handshakeFlight:Lsun/security/ssl/DTLSInputRecord$HandshakeFlight;
            aload 1 /* rf */
            getfield sun.security.ssl.DTLSInputRecord$RecordFragment.recordEpoch:I
            putfield sun.security.ssl.DTLSInputRecord$HandshakeFlight.flightEpoch:I
         6: .line 788
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.handshakeFlight:Lsun/security/ssl/DTLSInputRecord$HandshakeFlight;
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFlight.maxRecordSeq:J
            aload 1 /* rf */
            getfield sun.security.ssl.DTLSInputRecord$RecordFragment.recordSeq:J
            lcmp
            ifge 8
         7: .line 789
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.handshakeFlight:Lsun/security/ssl/DTLSInputRecord$HandshakeFlight;
            aload 1 /* rf */
            getfield sun.security.ssl.DTLSInputRecord$RecordFragment.recordSeq:J
            putfield sun.security.ssl.DTLSInputRecord$HandshakeFlight.maxRecordSeq:J
         8: .line 793
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* rf */
            invokevirtual sun.security.ssl.DTLSInputRecord$DTLSReassembler.bufferFragment:(Lsun/security/ssl/DTLSInputRecord$RecordFragment;)V
         9: .line 794
            return
        end local 1 // sun.security.ssl.DTLSInputRecord$RecordFragment rf
        end local 0 // sun.security.ssl.DTLSInputRecord$DTLSReassembler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Lsun/security/ssl/DTLSInputRecord$DTLSReassembler;
            0   10     1    rf  Lsun/security/ssl/DTLSInputRecord$RecordFragment;
    MethodParameters:
      Name  Flags
      rf    

  void queueUpFragment(sun.security.ssl.DTLSInputRecord$RecordFragment);
    descriptor: (Lsun/security/ssl/DTLSInputRecord$RecordFragment;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.security.ssl.DTLSInputRecord$DTLSReassembler this
        start local 1 // sun.security.ssl.DTLSInputRecord$RecordFragment rf
         0: .line 800
            aload 0 /* this */
            aload 1 /* rf */
            invokevirtual sun.security.ssl.DTLSInputRecord$DTLSReassembler.isDesirable:(Lsun/security/ssl/DTLSInputRecord$RecordFragment;)Z
            ifne 2
         1: .line 802
            return
         2: .line 806
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* rf */
            invokevirtual sun.security.ssl.DTLSInputRecord$DTLSReassembler.cleanUpRetransmit:(Lsun/security/ssl/DTLSInputRecord$RecordFragment;)V
         3: .line 809
            aload 0 /* this */
            aload 1 /* rf */
            invokevirtual sun.security.ssl.DTLSInputRecord$DTLSReassembler.bufferFragment:(Lsun/security/ssl/DTLSInputRecord$RecordFragment;)V
         4: .line 810
            return
        end local 1 // sun.security.ssl.DTLSInputRecord$RecordFragment rf
        end local 0 // sun.security.ssl.DTLSInputRecord$DTLSReassembler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lsun/security/ssl/DTLSInputRecord$DTLSReassembler;
            0    5     1    rf  Lsun/security/ssl/DTLSInputRecord$RecordFragment;
    MethodParameters:
      Name  Flags
      rf    

  private void bufferFragment(sun.security.ssl.DTLSInputRecord$RecordFragment);
    descriptor: (Lsun/security/ssl/DTLSInputRecord$RecordFragment;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.security.ssl.DTLSInputRecord$DTLSReassembler this
        start local 1 // sun.security.ssl.DTLSInputRecord$RecordFragment rf
         0: .line 814
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.bufferedFragments:Ljava/util/TreeSet;
            aload 1 /* rf */
            invokevirtual java.util.TreeSet.add:(Ljava/lang/Object;)Z
            pop
         1: .line 816
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.flightIsReady:Z
            ifeq 3
         2: .line 817
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.flightIsReady:Z
         3: .line 820
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.needToCheckFlight:Z
            ifne 5
         4: .line 821
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.needToCheckFlight:Z
         5: .line 823
      StackMap locals:
      StackMap stack:
            return
        end local 1 // sun.security.ssl.DTLSInputRecord$RecordFragment rf
        end local 0 // sun.security.ssl.DTLSInputRecord$DTLSReassembler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lsun/security/ssl/DTLSInputRecord$DTLSReassembler;
            0    6     1    rf  Lsun/security/ssl/DTLSInputRecord$RecordFragment;
    MethodParameters:
      Name  Flags
      rf    

  private void cleanUpRetransmit(sun.security.ssl.DTLSInputRecord$RecordFragment);
    descriptor: (Lsun/security/ssl/DTLSInputRecord$RecordFragment;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=7, args_size=2
        start local 0 // sun.security.ssl.DTLSInputRecord$DTLSReassembler this
        start local 1 // sun.security.ssl.DTLSInputRecord$RecordFragment rf
         0: .line 827
            iconst_0
            istore 2 /* isNewFlight */
        start local 2 // boolean isNewFlight
         1: .line 828
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.precedingFlight:Lsun/security/ssl/DTLSInputRecord$HandshakeFlight;
            ifnull 13
         2: .line 829
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.precedingFlight:Lsun/security/ssl/DTLSInputRecord$HandshakeFlight;
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFlight.flightEpoch:I
            aload 1 /* rf */
            getfield sun.security.ssl.DTLSInputRecord$RecordFragment.recordEpoch:I
            if_icmpge 5
         3: .line 830
            iconst_1
            istore 2 /* isNewFlight */
         4: .line 831
            goto 13
         5: .line 832
      StackMap locals: int
      StackMap stack:
            aload 1 /* rf */
            instanceof sun.security.ssl.DTLSInputRecord$HandshakeFragment
            ifeq 10
         6: .line 833
            aload 1 /* rf */
            checkcast sun.security.ssl.DTLSInputRecord$HandshakeFragment
            astore 3 /* hsf */
        start local 3 // sun.security.ssl.DTLSInputRecord$HandshakeFragment hsf
         7: .line 834
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.precedingFlight:Lsun/security/ssl/DTLSInputRecord$HandshakeFlight;
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFlight.maxMessageSeq:I
            aload 3 /* hsf */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFragment.messageSeq:I
            if_icmpge 13
         8: .line 835
            iconst_1
            istore 2 /* isNewFlight */
        end local 3 // sun.security.ssl.DTLSInputRecord$HandshakeFragment hsf
         9: .line 837
            goto 13
        10: .line 838
      StackMap locals:
      StackMap stack:
            aload 1 /* rf */
            getfield sun.security.ssl.DTLSInputRecord$RecordFragment.contentType:B
            getstatic sun.security.ssl.ContentType.CHANGE_CIPHER_SPEC:Lsun/security/ssl/ContentType;
            getfield sun.security.ssl.ContentType.id:B
            if_icmpeq 13
        11: .line 841
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.precedingFlight:Lsun/security/ssl/DTLSInputRecord$HandshakeFlight;
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFlight.maxRecordEpoch:I
            aload 1 /* rf */
            getfield sun.security.ssl.DTLSInputRecord$RecordFragment.recordEpoch:I
            if_icmpge 13
        12: .line 842
            iconst_1
            istore 2 /* isNewFlight */
        13: .line 848
      StackMap locals:
      StackMap stack:
            iload 2 /* isNewFlight */
            ifne 15
        14: .line 850
            return
        15: .line 854
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.bufferedFragments:Ljava/util/TreeSet;
            invokevirtual java.util.TreeSet.iterator:()Ljava/util/Iterator;
            astore 3 /* it */
        start local 3 // java.util.Iterator it
        16: .line 855
            goto 32
        17: .line 857
      StackMap locals: java.util.Iterator
      StackMap stack:
            aload 3 /* it */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast sun.security.ssl.DTLSInputRecord$RecordFragment
            astore 4 /* frag */
        start local 4 // sun.security.ssl.DTLSInputRecord$RecordFragment frag
        18: .line 858
            iconst_0
            istore 5 /* isOld */
        start local 5 // boolean isOld
        19: .line 859
            aload 4 /* frag */
            getfield sun.security.ssl.DTLSInputRecord$RecordFragment.recordEpoch:I
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.precedingFlight:Lsun/security/ssl/DTLSInputRecord$HandshakeFlight;
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFlight.maxRecordEpoch:I
            if_icmpge 22
        20: .line 860
            iconst_1
            istore 5 /* isOld */
        21: .line 861
            goto 25
      StackMap locals: sun.security.ssl.DTLSInputRecord$RecordFragment int
      StackMap stack:
        22: aload 4 /* frag */
            getfield sun.security.ssl.DTLSInputRecord$RecordFragment.recordEpoch:I
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.precedingFlight:Lsun/security/ssl/DTLSInputRecord$HandshakeFlight;
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFlight.maxRecordEpoch:I
            if_icmpne 25
        23: .line 862
            aload 4 /* frag */
            getfield sun.security.ssl.DTLSInputRecord$RecordFragment.recordSeq:J
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.precedingFlight:Lsun/security/ssl/DTLSInputRecord$HandshakeFlight;
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFlight.maxRecordSeq:J
            lcmp
            ifgt 25
        24: .line 863
            iconst_1
            istore 5 /* isOld */
        25: .line 867
      StackMap locals:
      StackMap stack:
            iload 5 /* isOld */
            ifne 30
            aload 4 /* frag */
            instanceof sun.security.ssl.DTLSInputRecord$HandshakeFragment
            ifeq 30
        26: .line 868
            aload 4 /* frag */
            checkcast sun.security.ssl.DTLSInputRecord$HandshakeFragment
            astore 6 /* hsf */
        start local 6 // sun.security.ssl.DTLSInputRecord$HandshakeFragment hsf
        27: .line 869
            aload 6 /* hsf */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFragment.messageSeq:I
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.precedingFlight:Lsun/security/ssl/DTLSInputRecord$HandshakeFlight;
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFlight.maxMessageSeq:I
            if_icmpgt 28
            iconst_1
            goto 29
      StackMap locals: sun.security.ssl.DTLSInputRecord$HandshakeFragment
      StackMap stack:
        28: iconst_0
      StackMap locals:
      StackMap stack: int
        29: istore 5 /* isOld */
        end local 6 // sun.security.ssl.DTLSInputRecord$HandshakeFragment hsf
        30: .line 872
      StackMap locals:
      StackMap stack:
            iload 5 /* isOld */
            ifeq 33
        31: .line 873
            aload 3 /* it */
            invokeinterface java.util.Iterator.remove:()V
        end local 5 // boolean isOld
        end local 4 // sun.security.ssl.DTLSInputRecord$RecordFragment frag
        32: .line 855
      StackMap locals:
      StackMap stack:
            aload 3 /* it */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 17
        end local 3 // java.util.Iterator it
        33: .line 881
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.precedingFlight:Lsun/security/ssl/DTLSInputRecord$HandshakeFlight;
        34: .line 882
            return
        end local 2 // boolean isNewFlight
        end local 1 // sun.security.ssl.DTLSInputRecord$RecordFragment rf
        end local 0 // sun.security.ssl.DTLSInputRecord$DTLSReassembler this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   35     0         this  Lsun/security/ssl/DTLSInputRecord$DTLSReassembler;
            0   35     1           rf  Lsun/security/ssl/DTLSInputRecord$RecordFragment;
            1   35     2  isNewFlight  Z
            7    9     3          hsf  Lsun/security/ssl/DTLSInputRecord$HandshakeFragment;
           16   33     3           it  Ljava/util/Iterator<Lsun/security/ssl/DTLSInputRecord$RecordFragment;>;
           18   32     4         frag  Lsun/security/ssl/DTLSInputRecord$RecordFragment;
           19   32     5        isOld  Z
           27   30     6          hsf  Lsun/security/ssl/DTLSInputRecord$HandshakeFragment;
    MethodParameters:
      Name  Flags
      rf    

  private boolean isDesirable(sun.security.ssl.DTLSInputRecord$RecordFragment);
    descriptor: (Lsun/security/ssl/DTLSInputRecord$RecordFragment;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // sun.security.ssl.DTLSInputRecord$DTLSReassembler this
        start local 1 // sun.security.ssl.DTLSInputRecord$RecordFragment rf
         0: .line 891
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.nextRecordEpoch:I
            iconst_1
            isub
            istore 2 /* previousEpoch */
        start local 2 // int previousEpoch
         1: .line 892
            aload 1 /* rf */
            getfield sun.security.ssl.DTLSInputRecord$RecordFragment.recordEpoch:I
            iload 2 /* previousEpoch */
            if_icmpge 6
         2: .line 894
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 5
            ldc "verbose"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 5
         3: .line 896
            ldc "Too old epoch to use this record, discard it."
            iconst_0
            anewarray java.lang.Object
         4: .line 895
            invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
         5: .line 899
      StackMap locals: int
      StackMap stack:
            iconst_0
            ireturn
         6: .line 913
      StackMap locals:
      StackMap stack:
            aload 1 /* rf */
            getfield sun.security.ssl.DTLSInputRecord$RecordFragment.recordEpoch:I
            iload 2 /* previousEpoch */
            if_icmpne 29
         7: .line 914
            iconst_1
            istore 3 /* isDesired */
        start local 3 // boolean isDesired
         8: .line 915
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.precedingFlight:Lsun/security/ssl/DTLSInputRecord$HandshakeFlight;
            ifnonnull 11
         9: .line 916
            iconst_0
            istore 3 /* isDesired */
        10: .line 917
            goto 24
        11: .line 918
      StackMap locals: int
      StackMap stack:
            aload 1 /* rf */
            instanceof sun.security.ssl.DTLSInputRecord$HandshakeFragment
            ifeq 16
        12: .line 919
            aload 1 /* rf */
            checkcast sun.security.ssl.DTLSInputRecord$HandshakeFragment
            astore 4 /* hsf */
        start local 4 // sun.security.ssl.DTLSInputRecord$HandshakeFragment hsf
        13: .line 920
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.precedingFlight:Lsun/security/ssl/DTLSInputRecord$HandshakeFlight;
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFlight.minMessageSeq:I
            aload 4 /* hsf */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFragment.messageSeq:I
            if_icmple 24
        14: .line 921
            iconst_0
            istore 3 /* isDesired */
        end local 4 // sun.security.ssl.DTLSInputRecord$HandshakeFragment hsf
        15: .line 923
            goto 24
        16: .line 924
      StackMap locals:
      StackMap stack:
            aload 1 /* rf */
            getfield sun.security.ssl.DTLSInputRecord$RecordFragment.contentType:B
            getstatic sun.security.ssl.ContentType.CHANGE_CIPHER_SPEC:Lsun/security/ssl/ContentType;
            getfield sun.security.ssl.ContentType.id:B
            if_icmpne 20
        17: .line 927
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.precedingFlight:Lsun/security/ssl/DTLSInputRecord$HandshakeFlight;
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFlight.flightEpoch:I
            aload 1 /* rf */
            getfield sun.security.ssl.DTLSInputRecord$RecordFragment.recordEpoch:I
            if_icmpeq 24
        18: .line 928
            iconst_0
            istore 3 /* isDesired */
        19: .line 930
            goto 24
        20: .line 931
      StackMap locals:
      StackMap stack:
            aload 1 /* rf */
            getfield sun.security.ssl.DTLSInputRecord$RecordFragment.recordEpoch:I
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.precedingFlight:Lsun/security/ssl/DTLSInputRecord$HandshakeFlight;
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFlight.maxRecordEpoch:I
            if_icmplt 23
        21: .line 932
            aload 1 /* rf */
            getfield sun.security.ssl.DTLSInputRecord$RecordFragment.recordEpoch:I
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.precedingFlight:Lsun/security/ssl/DTLSInputRecord$HandshakeFlight;
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFlight.maxRecordEpoch:I
            if_icmpne 24
        22: .line 933
            aload 1 /* rf */
            getfield sun.security.ssl.DTLSInputRecord$RecordFragment.recordSeq:J
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.precedingFlight:Lsun/security/ssl/DTLSInputRecord$HandshakeFlight;
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFlight.maxRecordSeq:J
            lcmp
            ifgt 24
        23: .line 934
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 3 /* isDesired */
        24: .line 939
      StackMap locals:
      StackMap stack:
            iload 3 /* isDesired */
            ifne 35
        25: .line 941
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 28
            ldc "verbose"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 28
        26: .line 943
            ldc "Too old retransmission to use, discard it."
            iconst_0
            anewarray java.lang.Object
        27: .line 942
            invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
        28: .line 946
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 3 // boolean isDesired
        29: .line 948
      StackMap locals:
      StackMap stack:
            aload 1 /* rf */
            getfield sun.security.ssl.DTLSInputRecord$RecordFragment.recordEpoch:I
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.nextRecordEpoch:I
            if_icmpne 35
        30: .line 949
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.nextRecordSeq:J
            aload 1 /* rf */
            getfield sun.security.ssl.DTLSInputRecord$RecordFragment.recordSeq:J
            lcmp
            ifle 35
        31: .line 954
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 34
            ldc "verbose"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 34
        32: .line 956
            ldc "Lagging behind record (sequence), discard it."
            iconst_0
            anewarray java.lang.Object
        33: .line 955
            invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
        34: .line 959
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        35: .line 962
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 2 // int previousEpoch
        end local 1 // sun.security.ssl.DTLSInputRecord$RecordFragment rf
        end local 0 // sun.security.ssl.DTLSInputRecord$DTLSReassembler this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   36     0           this  Lsun/security/ssl/DTLSInputRecord$DTLSReassembler;
            0   36     1             rf  Lsun/security/ssl/DTLSInputRecord$RecordFragment;
            1   36     2  previousEpoch  I
            8   29     3      isDesired  Z
           13   15     4            hsf  Lsun/security/ssl/DTLSInputRecord$HandshakeFragment;
    MethodParameters:
      Name  Flags
      rf    

  private boolean isEmpty();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.ssl.DTLSInputRecord$DTLSReassembler this
         0: .line 966
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.bufferedFragments:Ljava/util/TreeSet;
            invokevirtual java.util.TreeSet.isEmpty:()Z
            ifne 4
         1: .line 967
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.flightIsReady:Z
            ifne 2
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.needToCheckFlight:Z
            ifeq 4
         2: .line 968
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.needToCheckFlight:Z
            ifeq 3
            aload 0 /* this */
            invokevirtual sun.security.ssl.DTLSInputRecord$DTLSReassembler.flightIsReady:()Z
            ifeq 4
         3: .line 966
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         4: iconst_1
            ireturn
        end local 0 // sun.security.ssl.DTLSInputRecord$DTLSReassembler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lsun/security/ssl/DTLSInputRecord$DTLSReassembler;

  sun.security.ssl.Plaintext acquirePlaintext();
    descriptor: ()Lsun/security/ssl/Plaintext;
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // sun.security.ssl.DTLSInputRecord$DTLSReassembler this
         0: .line 972
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.bufferedFragments:Ljava/util/TreeSet;
            invokevirtual java.util.TreeSet.isEmpty:()Z
            ifeq 4
         1: .line 973
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 3
            ldc "verbose"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 3
         2: .line 974
            ldc "No received handshake messages"
            iconst_0
            anewarray java.lang.Object
            invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
         3: .line 976
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
         4: .line 979
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.flightIsReady:Z
            ifne 14
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.needToCheckFlight:Z
            ifeq 14
         5: .line 981
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual sun.security.ssl.DTLSInputRecord$DTLSReassembler.flightIsReady:()Z
            putfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.flightIsReady:Z
         6: .line 984
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.flightIsReady:Z
            ifeq 13
         7: .line 987
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.handshakeFlight:Lsun/security/ssl/DTLSInputRecord$HandshakeFlight;
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.precedingFlight:Lsun/security/ssl/DTLSInputRecord$HandshakeFlight;
            invokevirtual sun.security.ssl.DTLSInputRecord$HandshakeFlight.isRetransmitOf:(Lsun/security/ssl/DTLSInputRecord$HandshakeFlight;)Z
            ifeq 13
         8: .line 989
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.bufferedFragments:Ljava/util/TreeSet;
            invokevirtual java.util.TreeSet.clear:()V
         9: .line 992
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.precedingFlight:Lsun/security/ssl/DTLSInputRecord$HandshakeFlight;
            invokevirtual sun.security.ssl.DTLSInputRecord$DTLSReassembler.resetHandshakeFlight:(Lsun/security/ssl/DTLSInputRecord$HandshakeFlight;)V
        10: .line 994
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 12
            ldc "verbose"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 12
        11: .line 995
            ldc "Received a retransmission flight."
            iconst_0
            anewarray java.lang.Object
            invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
        12: .line 998
      StackMap locals:
      StackMap stack:
            getstatic sun.security.ssl.Plaintext.PLAINTEXT_NULL:Lsun/security/ssl/Plaintext;
            areturn
        13: .line 1002
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.needToCheckFlight:Z
        14: .line 1005
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.flightIsReady:Z
            ifne 21
        15: .line 1006
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 20
            ldc "verbose"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 20
        16: .line 1008
            new java.lang.StringBuilder
            dup
            ldc "The handshake flight is not ready to use: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        17: .line 1009
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.handshakeFlight:Lsun/security/ssl/DTLSInputRecord$HandshakeFlight;
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFlight.handshakeType:B
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        18: .line 1008
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            iconst_0
            anewarray java.lang.Object
        19: .line 1007
            invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
        20: .line 1011
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        21: .line 1014
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.bufferedFragments:Ljava/util/TreeSet;
            invokevirtual java.util.TreeSet.first:()Ljava/lang/Object;
            checkcast sun.security.ssl.DTLSInputRecord$RecordFragment
            astore 1 /* rFrag */
        start local 1 // sun.security.ssl.DTLSInputRecord$RecordFragment rFrag
        22: .line 1016
            aload 1 /* rFrag */
            getfield sun.security.ssl.DTLSInputRecord$RecordFragment.isCiphertext:Z
            ifne 34
        23: .line 1018
            aload 0 /* this */
            invokevirtual sun.security.ssl.DTLSInputRecord$DTLSReassembler.acquireHandshakeMessage:()Lsun/security/ssl/Plaintext;
            astore 2 /* plaintext */
        start local 2 // sun.security.ssl.Plaintext plaintext
        24: .line 1021
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.bufferedFragments:Ljava/util/TreeSet;
            invokevirtual java.util.TreeSet.isEmpty:()Z
            ifeq 35
        25: .line 1023
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.handshakeFlight:Lsun/security/ssl/DTLSInputRecord$HandshakeFlight;
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFlight.holesMap:Ljava/util/HashMap;
            invokevirtual java.util.HashMap.clear:()V
        26: .line 1026
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.handshakeFlight:Lsun/security/ssl/DTLSInputRecord$HandshakeFlight;
            invokevirtual sun.security.ssl.DTLSInputRecord$HandshakeFlight.clone:()Ljava/lang/Object;
            checkcast sun.security.ssl.DTLSInputRecord$HandshakeFlight
            putfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.precedingFlight:Lsun/security/ssl/DTLSInputRecord$HandshakeFlight;
        27: .line 1029
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.precedingFlight:Lsun/security/ssl/DTLSInputRecord$HandshakeFlight;
            invokevirtual sun.security.ssl.DTLSInputRecord$DTLSReassembler.resetHandshakeFlight:(Lsun/security/ssl/DTLSInputRecord$HandshakeFlight;)V
        28: .line 1031
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.expectCCSFlight:Z
            ifeq 35
        29: .line 1032
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.precedingFlight:Lsun/security/ssl/DTLSInputRecord$HandshakeFlight;
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFlight.handshakeType:B
        30: .line 1033
            getstatic sun.security.ssl.DTLSInputRecord$HandshakeFlight.HF_UNKNOWN:B
        31: .line 1032
            if_icmpne 35
        32: .line 1034
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.expectCCSFlight:Z
        33: .line 1037
            goto 35
        end local 2 // sun.security.ssl.Plaintext plaintext
        34: .line 1039
      StackMap locals: sun.security.ssl.DTLSInputRecord$RecordFragment
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.DTLSInputRecord$DTLSReassembler.acquireCachedMessage:()Lsun/security/ssl/Plaintext;
            astore 2 /* plaintext */
        start local 2 // sun.security.ssl.Plaintext plaintext
        35: .line 1042
      StackMap locals: sun.security.ssl.Plaintext
      StackMap stack:
            aload 2 /* plaintext */
            areturn
        end local 2 // sun.security.ssl.Plaintext plaintext
        end local 1 // sun.security.ssl.DTLSInputRecord$RecordFragment rFrag
        end local 0 // sun.security.ssl.DTLSInputRecord$DTLSReassembler this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   36     0       this  Lsun/security/ssl/DTLSInputRecord$DTLSReassembler;
           22   36     1      rFrag  Lsun/security/ssl/DTLSInputRecord$RecordFragment;
           24   34     2  plaintext  Lsun/security/ssl/Plaintext;
           35   36     2  plaintext  Lsun/security/ssl/Plaintext;

  private void resetHandshakeFlight(sun.security.ssl.DTLSInputRecord$HandshakeFlight);
    descriptor: (Lsun/security/ssl/DTLSInputRecord$HandshakeFlight;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // sun.security.ssl.DTLSInputRecord$DTLSReassembler this
        start local 1 // sun.security.ssl.DTLSInputRecord$HandshakeFlight prev
         0: .line 1050
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.handshakeFlight:Lsun/security/ssl/DTLSInputRecord$HandshakeFlight;
            getstatic sun.security.ssl.DTLSInputRecord$HandshakeFlight.HF_UNKNOWN:B
            putfield sun.security.ssl.DTLSInputRecord$HandshakeFlight.handshakeType:B
         1: .line 1051
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.handshakeFlight:Lsun/security/ssl/DTLSInputRecord$HandshakeFlight;
            aload 1 /* prev */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFlight.maxRecordEpoch:I
            putfield sun.security.ssl.DTLSInputRecord$HandshakeFlight.flightEpoch:I
         2: .line 1052
            aload 1 /* prev */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFlight.flightEpoch:I
            aload 1 /* prev */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFlight.maxRecordEpoch:I
            if_icmpeq 5
         3: .line 1054
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.handshakeFlight:Lsun/security/ssl/DTLSInputRecord$HandshakeFlight;
            iconst_0
            putfield sun.security.ssl.DTLSInputRecord$HandshakeFlight.minMessageSeq:I
         4: .line 1055
            goto 6
         5: .line 1060
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.handshakeFlight:Lsun/security/ssl/DTLSInputRecord$HandshakeFlight;
            aload 1 /* prev */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFlight.maxMessageSeq:I
            iconst_1
            iadd
            putfield sun.security.ssl.DTLSInputRecord$HandshakeFlight.minMessageSeq:I
         6: .line 1069
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.handshakeFlight:Lsun/security/ssl/DTLSInputRecord$HandshakeFlight;
            iconst_0
            putfield sun.security.ssl.DTLSInputRecord$HandshakeFlight.maxMessageSeq:I
         7: .line 1070
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.handshakeFlight:Lsun/security/ssl/DTLSInputRecord$HandshakeFlight;
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.handshakeFlight:Lsun/security/ssl/DTLSInputRecord$HandshakeFlight;
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFlight.flightEpoch:I
            putfield sun.security.ssl.DTLSInputRecord$HandshakeFlight.maxRecordEpoch:I
         8: .line 1073
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.handshakeFlight:Lsun/security/ssl/DTLSInputRecord$HandshakeFlight;
            aload 1 /* prev */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFlight.maxRecordSeq:J
            lconst_1
            ladd
            putfield sun.security.ssl.DTLSInputRecord$HandshakeFlight.maxRecordSeq:J
         9: .line 1076
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.handshakeFlight:Lsun/security/ssl/DTLSInputRecord$HandshakeFlight;
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFlight.holesMap:Ljava/util/HashMap;
            invokevirtual java.util.HashMap.clear:()V
        10: .line 1079
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.flightIsReady:Z
        11: .line 1080
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.needToCheckFlight:Z
        12: .line 1081
            return
        end local 1 // sun.security.ssl.DTLSInputRecord$HandshakeFlight prev
        end local 0 // sun.security.ssl.DTLSInputRecord$DTLSReassembler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   13     0  this  Lsun/security/ssl/DTLSInputRecord$DTLSReassembler;
            0   13     1  prev  Lsun/security/ssl/DTLSInputRecord$HandshakeFlight;
    MethodParameters:
      Name  Flags
      prev  

  private sun.security.ssl.Plaintext acquireCachedMessage();
    descriptor: ()Lsun/security/ssl/Plaintext;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=9, locals=5, args_size=1
        start local 0 // sun.security.ssl.DTLSInputRecord$DTLSReassembler this
         0: .line 1084
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.bufferedFragments:Ljava/util/TreeSet;
            invokevirtual java.util.TreeSet.first:()Ljava/lang/Object;
            checkcast sun.security.ssl.DTLSInputRecord$RecordFragment
            astore 1 /* rFrag */
        start local 1 // sun.security.ssl.DTLSInputRecord$RecordFragment rFrag
         1: .line 1085
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.this$0:Lsun/security/ssl/DTLSInputRecord;
            getfield sun.security.ssl.DTLSInputRecord.readEpoch:I
            aload 1 /* rFrag */
            getfield sun.security.ssl.DTLSInputRecord$RecordFragment.recordEpoch:I
            if_icmpeq 13
         2: .line 1086
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.this$0:Lsun/security/ssl/DTLSInputRecord;
            getfield sun.security.ssl.DTLSInputRecord.readEpoch:I
            aload 1 /* rFrag */
            getfield sun.security.ssl.DTLSInputRecord$RecordFragment.recordEpoch:I
            if_icmple 7
         3: .line 1088
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 6
            ldc "verbose"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 6
         4: .line 1090
            ldc "Discard old buffered ciphertext fragments."
            iconst_0
            anewarray java.lang.Object
         5: .line 1089
            invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
         6: .line 1092
      StackMap locals: sun.security.ssl.DTLSInputRecord$RecordFragment
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.bufferedFragments:Ljava/util/TreeSet;
            aload 1 /* rFrag */
            invokevirtual java.util.TreeSet.remove:(Ljava/lang/Object;)Z
            pop
         7: .line 1096
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.flightIsReady:Z
            ifeq 9
         8: .line 1097
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.flightIsReady:Z
         9: .line 1100
      StackMap locals:
      StackMap stack:
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 12
            ldc "verbose"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 12
        10: .line 1102
            ldc "Not yet ready to decrypt the cached fragments."
            iconst_0
            anewarray java.lang.Object
        11: .line 1101
            invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
        12: .line 1104
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        13: .line 1107
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.bufferedFragments:Ljava/util/TreeSet;
            aload 1 /* rFrag */
            invokevirtual java.util.TreeSet.remove:(Ljava/lang/Object;)Z
            pop
        14: .line 1109
            aload 1 /* rFrag */
            getfield sun.security.ssl.DTLSInputRecord$RecordFragment.fragment:[B
            invokestatic java.nio.ByteBuffer.wrap:([B)Ljava/nio/ByteBuffer;
            astore 2 /* fragment */
        start local 2 // java.nio.ByteBuffer fragment
        15: .line 1110
            aconst_null
            astore 3 /* plaintextFragment */
        start local 3 // java.nio.ByteBuffer plaintextFragment
        16: .line 1112
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.this$0:Lsun/security/ssl/DTLSInputRecord;
            getfield sun.security.ssl.DTLSInputRecord.readCipher:Lsun/security/ssl/SSLCipher$SSLReadCipher;
        17: .line 1113
            aload 1 /* rFrag */
            getfield sun.security.ssl.DTLSInputRecord$RecordFragment.contentType:B
            aload 2 /* fragment */
            aload 1 /* rFrag */
            getfield sun.security.ssl.DTLSInputRecord$RecordFragment.recordEnS:[B
        18: .line 1112
            invokevirtual sun.security.ssl.SSLCipher$SSLReadCipher.decrypt:(BLjava/nio/ByteBuffer;[B)Lsun/security/ssl/Plaintext;
            astore 4 /* plaintext */
        start local 4 // sun.security.ssl.Plaintext plaintext
        19: .line 1114
            aload 4 /* plaintext */
            getfield sun.security.ssl.Plaintext.fragment:Ljava/nio/ByteBuffer;
            astore 3 /* plaintextFragment */
        20: .line 1115
            aload 1 /* rFrag */
            aload 4 /* plaintext */
            getfield sun.security.ssl.Plaintext.contentType:B
            putfield sun.security.ssl.DTLSInputRecord$RecordFragment.contentType:B
        end local 4 // sun.security.ssl.Plaintext plaintext
        21: .line 1116
            goto 26
      StackMap locals: sun.security.ssl.DTLSInputRecord$DTLSReassembler sun.security.ssl.DTLSInputRecord$RecordFragment java.nio.ByteBuffer java.nio.ByteBuffer
      StackMap stack: java.security.GeneralSecurityException
        22: astore 4 /* gse */
        start local 4 // java.security.GeneralSecurityException gse
        23: .line 1117
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 25
            ldc "verbose"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 25
        24: .line 1118
            ldc "Discard invalid record: "
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 4 /* gse */
            aastore
            invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
        25: .line 1122
      StackMap locals: java.security.GeneralSecurityException
      StackMap stack:
            aconst_null
            areturn
        end local 4 // java.security.GeneralSecurityException gse
        26: .line 1129
      StackMap locals:
      StackMap stack:
            aload 1 /* rFrag */
            getfield sun.security.ssl.DTLSInputRecord$RecordFragment.contentType:B
            getstatic sun.security.ssl.ContentType.HANDSHAKE:Lsun/security/ssl/ContentType;
            getfield sun.security.ssl.ContentType.id:B
            if_icmpne 45
        27: .line 1130
            goto 43
        28: .line 1132
      StackMap locals:
      StackMap stack:
            aload 1 /* rFrag */
            getfield sun.security.ssl.DTLSInputRecord$RecordFragment.contentType:B
        29: .line 1133
            aload 1 /* rFrag */
            getfield sun.security.ssl.DTLSInputRecord$RecordFragment.majorVersion:B
            aload 1 /* rFrag */
            getfield sun.security.ssl.DTLSInputRecord$RecordFragment.minorVersion:B
        30: .line 1134
            aload 1 /* rFrag */
            getfield sun.security.ssl.DTLSInputRecord$RecordFragment.recordEnS:[B
            aload 1 /* rFrag */
            getfield sun.security.ssl.DTLSInputRecord$RecordFragment.recordEpoch:I
            aload 1 /* rFrag */
            getfield sun.security.ssl.DTLSInputRecord$RecordFragment.recordSeq:J
        31: .line 1135
            aload 3 /* plaintextFragment */
        32: .line 1131
            invokestatic sun.security.ssl.DTLSInputRecord.parseHandshakeMessage:(BBB[BIJLjava/nio/ByteBuffer;)Lsun/security/ssl/DTLSInputRecord$HandshakeFragment;
            astore 4 /* hsFrag */
        start local 4 // sun.security.ssl.DTLSInputRecord$HandshakeFragment hsFrag
        33: .line 1137
            aload 4 /* hsFrag */
            ifnonnull 39
        34: .line 1139
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 38
            ldc "verbose"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 38
        35: .line 1141
            ldc "Invalid handshake fragment, discard it"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
        36: .line 1142
            aload 3 /* plaintextFragment */
            aastore
        37: .line 1140
            invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
        38: .line 1144
      StackMap locals: sun.security.ssl.DTLSInputRecord$HandshakeFragment
      StackMap stack:
            aconst_null
            areturn
        39: .line 1147
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 4 /* hsFrag */
            invokevirtual sun.security.ssl.DTLSInputRecord$DTLSReassembler.queueUpHandshake:(Lsun/security/ssl/DTLSInputRecord$HandshakeFragment;)V
        40: .line 1152
            aload 4 /* hsFrag */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFragment.handshakeType:B
            getstatic sun.security.ssl.SSLHandshake.FINISHED:Lsun/security/ssl/SSLHandshake;
            getfield sun.security.ssl.SSLHandshake.id:B
            if_icmpeq 43
        41: .line 1153
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.flightIsReady:Z
        42: .line 1154
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.needToCheckFlight:Z
        end local 4 // sun.security.ssl.DTLSInputRecord$HandshakeFragment hsFrag
        43: .line 1130
      StackMap locals:
      StackMap stack:
            aload 3 /* plaintextFragment */
            invokevirtual java.nio.ByteBuffer.remaining:()I
            ifgt 28
        44: .line 1158
            aload 0 /* this */
            invokevirtual sun.security.ssl.DTLSInputRecord$DTLSReassembler.acquirePlaintext:()Lsun/security/ssl/Plaintext;
            areturn
        45: .line 1160
      StackMap locals:
      StackMap stack:
            new sun.security.ssl.Plaintext
            dup
            aload 1 /* rFrag */
            getfield sun.security.ssl.DTLSInputRecord$RecordFragment.contentType:B
        46: .line 1161
            aload 1 /* rFrag */
            getfield sun.security.ssl.DTLSInputRecord$RecordFragment.majorVersion:B
            aload 1 /* rFrag */
            getfield sun.security.ssl.DTLSInputRecord$RecordFragment.minorVersion:B
        47: .line 1162
            aload 1 /* rFrag */
            getfield sun.security.ssl.DTLSInputRecord$RecordFragment.recordEpoch:I
        48: .line 1163
            aload 1 /* rFrag */
            getfield sun.security.ssl.DTLSInputRecord$RecordFragment.recordEnS:[B
            invokestatic sun.security.ssl.Authenticator.toLong:([B)J
        49: .line 1164
            aload 3 /* plaintextFragment */
        50: .line 1160
            invokespecial sun.security.ssl.Plaintext.<init>:(BBBIJLjava/nio/ByteBuffer;)V
            areturn
        end local 3 // java.nio.ByteBuffer plaintextFragment
        end local 2 // java.nio.ByteBuffer fragment
        end local 1 // sun.security.ssl.DTLSInputRecord$RecordFragment rFrag
        end local 0 // sun.security.ssl.DTLSInputRecord$DTLSReassembler this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   51     0               this  Lsun/security/ssl/DTLSInputRecord$DTLSReassembler;
            1   51     1              rFrag  Lsun/security/ssl/DTLSInputRecord$RecordFragment;
           15   51     2           fragment  Ljava/nio/ByteBuffer;
           16   51     3  plaintextFragment  Ljava/nio/ByteBuffer;
           19   21     4          plaintext  Lsun/security/ssl/Plaintext;
           23   26     4                gse  Ljava/security/GeneralSecurityException;
           33   43     4             hsFrag  Lsun/security/ssl/DTLSInputRecord$HandshakeFragment;
      Exception table:
        from    to  target  type
          16    21      22  Class java.security.GeneralSecurityException

  private sun.security.ssl.Plaintext acquireHandshakeMessage();
    descriptor: ()Lsun/security/ssl/Plaintext;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=9, locals=9, args_size=1
        start local 0 // sun.security.ssl.DTLSInputRecord$DTLSReassembler this
         0: .line 1170
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.bufferedFragments:Ljava/util/TreeSet;
            invokevirtual java.util.TreeSet.first:()Ljava/lang/Object;
            checkcast sun.security.ssl.DTLSInputRecord$RecordFragment
            astore 1 /* rFrag */
        start local 1 // sun.security.ssl.DTLSInputRecord$RecordFragment rFrag
         1: .line 1171
            aload 1 /* rFrag */
            getfield sun.security.ssl.DTLSInputRecord$RecordFragment.contentType:B
            getstatic sun.security.ssl.ContentType.CHANGE_CIPHER_SPEC:Lsun/security/ssl/ContentType;
            getfield sun.security.ssl.ContentType.id:B
            if_icmpne 11
         2: .line 1172
            aload 0 /* this */
            aload 1 /* rFrag */
            getfield sun.security.ssl.DTLSInputRecord$RecordFragment.recordEpoch:I
            iconst_1
            iadd
            putfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.nextRecordEpoch:I
         3: .line 1178
            aload 0 /* this */
            lconst_0
            putfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.nextRecordSeq:J
         4: .line 1181
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.bufferedFragments:Ljava/util/TreeSet;
            aload 1 /* rFrag */
            invokevirtual java.util.TreeSet.remove:(Ljava/lang/Object;)Z
            pop
         5: .line 1182
            new sun.security.ssl.Plaintext
            dup
            aload 1 /* rFrag */
            getfield sun.security.ssl.DTLSInputRecord$RecordFragment.contentType:B
         6: .line 1183
            aload 1 /* rFrag */
            getfield sun.security.ssl.DTLSInputRecord$RecordFragment.majorVersion:B
            aload 1 /* rFrag */
            getfield sun.security.ssl.DTLSInputRecord$RecordFragment.minorVersion:B
         7: .line 1184
            aload 1 /* rFrag */
            getfield sun.security.ssl.DTLSInputRecord$RecordFragment.recordEpoch:I
         8: .line 1185
            aload 1 /* rFrag */
            getfield sun.security.ssl.DTLSInputRecord$RecordFragment.recordEnS:[B
            invokestatic sun.security.ssl.Authenticator.toLong:([B)J
         9: .line 1186
            aload 1 /* rFrag */
            getfield sun.security.ssl.DTLSInputRecord$RecordFragment.fragment:[B
            invokestatic java.nio.ByteBuffer.wrap:([B)Ljava/nio/ByteBuffer;
        10: .line 1182
            invokespecial sun.security.ssl.Plaintext.<init>:(BBBIJLjava/nio/ByteBuffer;)V
            areturn
        11: .line 1188
      StackMap locals: sun.security.ssl.DTLSInputRecord$RecordFragment
      StackMap stack:
            aload 1 /* rFrag */
            checkcast sun.security.ssl.DTLSInputRecord$HandshakeFragment
            astore 2 /* hsFrag */
        start local 2 // sun.security.ssl.DTLSInputRecord$HandshakeFragment hsFrag
        12: .line 1189
            aload 2 /* hsFrag */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFragment.messageLength:I
            aload 2 /* hsFrag */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFragment.fragmentLength:I
            if_icmpne 37
        13: .line 1190
            aload 2 /* hsFrag */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFragment.fragmentOffset:I
            ifne 37
        14: .line 1192
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.bufferedFragments:Ljava/util/TreeSet;
            aload 1 /* rFrag */
            invokevirtual java.util.TreeSet.remove:(Ljava/lang/Object;)Z
            pop
        15: .line 1195
            aload 0 /* this */
            aload 2 /* hsFrag */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFragment.recordSeq:J
            lconst_1
            ladd
            putfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.nextRecordSeq:J
        16: .line 1198
            aload 2 /* hsFrag */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFragment.messageLength:I
            iconst_4
            iadd
            newarray 8
            astore 3 /* recordFrag */
        start local 3 // byte[] recordFrag
        17: .line 1199
            new sun.security.ssl.Plaintext
            dup
        18: .line 1200
            aload 2 /* hsFrag */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFragment.contentType:B
        19: .line 1201
            aload 2 /* hsFrag */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFragment.majorVersion:B
            aload 2 /* hsFrag */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFragment.minorVersion:B
        20: .line 1202
            aload 2 /* hsFrag */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFragment.recordEpoch:I
        21: .line 1203
            aload 2 /* hsFrag */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFragment.recordEnS:[B
            invokestatic sun.security.ssl.Authenticator.toLong:([B)J
        22: .line 1204
            aload 3 /* recordFrag */
            invokestatic java.nio.ByteBuffer.wrap:([B)Ljava/nio/ByteBuffer;
        23: .line 1199
            invokespecial sun.security.ssl.Plaintext.<init>:(BBBIJLjava/nio/ByteBuffer;)V
            astore 4 /* plaintext */
        start local 4 // sun.security.ssl.Plaintext plaintext
        24: .line 1207
            aload 3 /* recordFrag */
            iconst_0
            aload 2 /* hsFrag */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFragment.handshakeType:B
            bastore
        25: .line 1208
            aload 3 /* recordFrag */
            iconst_1
        26: .line 1209
            aload 2 /* hsFrag */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFragment.messageLength:I
            bipush 16
            iushr
            sipush 255
            iand
            i2b
        27: .line 1208
            bastore
        28: .line 1210
            aload 3 /* recordFrag */
            iconst_2
        29: .line 1211
            aload 2 /* hsFrag */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFragment.messageLength:I
            bipush 8
            iushr
            sipush 255
            iand
            i2b
        30: .line 1210
            bastore
        31: .line 1212
            aload 3 /* recordFrag */
            iconst_3
            aload 2 /* hsFrag */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFragment.messageLength:I
            sipush 255
            iand
            i2b
            bastore
        32: .line 1214
            aload 2 /* hsFrag */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFragment.fragment:[B
            iconst_0
        33: .line 1215
            aload 3 /* recordFrag */
            iconst_4
            aload 2 /* hsFrag */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFragment.fragmentLength:I
        34: .line 1214
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        35: .line 1218
            aload 0 /* this */
            aload 2 /* hsFrag */
            aload 4 /* plaintext */
            invokevirtual sun.security.ssl.DTLSInputRecord$DTLSReassembler.handshakeHashing:(Lsun/security/ssl/DTLSInputRecord$HandshakeFragment;Lsun/security/ssl/Plaintext;)V
        36: .line 1220
            aload 4 /* plaintext */
            areturn
        end local 4 // sun.security.ssl.Plaintext plaintext
        end local 3 // byte[] recordFrag
        37: .line 1225
      StackMap locals: sun.security.ssl.DTLSInputRecord$HandshakeFragment
      StackMap stack:
            aload 2 /* hsFrag */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFragment.messageLength:I
            iconst_4
            iadd
            newarray 8
            astore 3 /* recordFrag */
        start local 3 // byte[] recordFrag
        38: .line 1226
            new sun.security.ssl.Plaintext
            dup
        39: .line 1227
            aload 2 /* hsFrag */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFragment.contentType:B
        40: .line 1228
            aload 2 /* hsFrag */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFragment.majorVersion:B
            aload 2 /* hsFrag */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFragment.minorVersion:B
        41: .line 1229
            aload 2 /* hsFrag */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFragment.recordEpoch:I
        42: .line 1230
            aload 2 /* hsFrag */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFragment.recordEnS:[B
            invokestatic sun.security.ssl.Authenticator.toLong:([B)J
        43: .line 1231
            aload 3 /* recordFrag */
            invokestatic java.nio.ByteBuffer.wrap:([B)Ljava/nio/ByteBuffer;
        44: .line 1226
            invokespecial sun.security.ssl.Plaintext.<init>:(BBBIJLjava/nio/ByteBuffer;)V
            astore 4 /* plaintext */
        start local 4 // sun.security.ssl.Plaintext plaintext
        45: .line 1234
            aload 3 /* recordFrag */
            iconst_0
            aload 2 /* hsFrag */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFragment.handshakeType:B
            bastore
        46: .line 1235
            aload 3 /* recordFrag */
            iconst_1
        47: .line 1236
            aload 2 /* hsFrag */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFragment.messageLength:I
            bipush 16
            iushr
            sipush 255
            iand
            i2b
        48: .line 1235
            bastore
        49: .line 1237
            aload 3 /* recordFrag */
            iconst_2
        50: .line 1238
            aload 2 /* hsFrag */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFragment.messageLength:I
            bipush 8
            iushr
            sipush 255
            iand
            i2b
        51: .line 1237
            bastore
        52: .line 1239
            aload 3 /* recordFrag */
            iconst_3
            aload 2 /* hsFrag */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFragment.messageLength:I
            sipush 255
            iand
            i2b
            bastore
        53: .line 1241
            aload 2 /* hsFrag */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFragment.messageSeq:I
            istore 5 /* msgSeq */
        start local 5 // int msgSeq
        54: .line 1242
            aload 2 /* hsFrag */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFragment.recordSeq:J
            lstore 6 /* maxRecodeSN */
        start local 6 // long maxRecodeSN
        55: .line 1243
            aload 2 /* hsFrag */
            astore 8 /* hmFrag */
        start local 8 // sun.security.ssl.DTLSInputRecord$HandshakeFragment hmFrag
        56: .line 1245
      StackMap locals: sun.security.ssl.DTLSInputRecord$DTLSReassembler sun.security.ssl.DTLSInputRecord$RecordFragment sun.security.ssl.DTLSInputRecord$HandshakeFragment byte[] sun.security.ssl.Plaintext int long sun.security.ssl.DTLSInputRecord$HandshakeFragment
      StackMap stack:
            aload 8 /* hmFrag */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFragment.fragment:[B
            iconst_0
        57: .line 1246
            aload 3 /* recordFrag */
            aload 8 /* hmFrag */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFragment.fragmentOffset:I
            iconst_4
            iadd
        58: .line 1247
            aload 8 /* hmFrag */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFragment.fragmentLength:I
        59: .line 1245
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        60: .line 1249
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.bufferedFragments:Ljava/util/TreeSet;
            aload 1 /* rFrag */
            invokevirtual java.util.TreeSet.remove:(Ljava/lang/Object;)Z
            pop
        61: .line 1251
            lload 6 /* maxRecodeSN */
            aload 8 /* hmFrag */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFragment.recordSeq:J
            lcmp
            ifge 63
        62: .line 1252
            aload 8 /* hmFrag */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFragment.recordSeq:J
            lstore 6 /* maxRecodeSN */
        63: .line 1259
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.bufferedFragments:Ljava/util/TreeSet;
            invokevirtual java.util.TreeSet.isEmpty:()Z
            ifne 68
        64: .line 1260
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.bufferedFragments:Ljava/util/TreeSet;
            invokevirtual java.util.TreeSet.first:()Ljava/lang/Object;
            checkcast sun.security.ssl.DTLSInputRecord$RecordFragment
            astore 1 /* rFrag */
        65: .line 1261
            aload 1 /* rFrag */
            getfield sun.security.ssl.DTLSInputRecord$RecordFragment.contentType:B
            getstatic sun.security.ssl.ContentType.HANDSHAKE:Lsun/security/ssl/ContentType;
            getfield sun.security.ssl.ContentType.id:B
            if_icmpeq 67
        66: .line 1262
            goto 70
        67: .line 1264
      StackMap locals:
      StackMap stack:
            aload 1 /* rFrag */
            checkcast sun.security.ssl.DTLSInputRecord$HandshakeFragment
            astore 8 /* hmFrag */
        68: .line 1267
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.bufferedFragments:Ljava/util/TreeSet;
            invokevirtual java.util.TreeSet.isEmpty:()Z
            ifne 70
        69: .line 1268
            iload 5 /* msgSeq */
            aload 8 /* hmFrag */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFragment.messageSeq:I
            if_icmpeq 56
        70: .line 1271
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* hsFrag */
            aload 4 /* plaintext */
            invokevirtual sun.security.ssl.DTLSInputRecord$DTLSReassembler.handshakeHashing:(Lsun/security/ssl/DTLSInputRecord$HandshakeFragment;Lsun/security/ssl/Plaintext;)V
        71: .line 1273
            aload 0 /* this */
            lload 6 /* maxRecodeSN */
            lconst_1
            ladd
            putfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.nextRecordSeq:J
        72: .line 1275
            aload 4 /* plaintext */
            areturn
        end local 8 // sun.security.ssl.DTLSInputRecord$HandshakeFragment hmFrag
        end local 6 // long maxRecodeSN
        end local 5 // int msgSeq
        end local 4 // sun.security.ssl.Plaintext plaintext
        end local 3 // byte[] recordFrag
        end local 2 // sun.security.ssl.DTLSInputRecord$HandshakeFragment hsFrag
        end local 1 // sun.security.ssl.DTLSInputRecord$RecordFragment rFrag
        end local 0 // sun.security.ssl.DTLSInputRecord$DTLSReassembler this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   73     0         this  Lsun/security/ssl/DTLSInputRecord$DTLSReassembler;
            1   73     1        rFrag  Lsun/security/ssl/DTLSInputRecord$RecordFragment;
           12   73     2       hsFrag  Lsun/security/ssl/DTLSInputRecord$HandshakeFragment;
           17   37     3   recordFrag  [B
           24   37     4    plaintext  Lsun/security/ssl/Plaintext;
           38   73     3   recordFrag  [B
           45   73     4    plaintext  Lsun/security/ssl/Plaintext;
           54   73     5       msgSeq  I
           55   73     6  maxRecodeSN  J
           56   73     8       hmFrag  Lsun/security/ssl/DTLSInputRecord$HandshakeFragment;

  boolean flightIsReady();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // sun.security.ssl.DTLSInputRecord$DTLSReassembler this
         0: .line 1282
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.handshakeFlight:Lsun/security/ssl/DTLSInputRecord$HandshakeFlight;
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFlight.handshakeType:B
            istore 1 /* flightType */
        start local 1 // byte flightType
         1: .line 1283
            iload 1 /* flightType */
            getstatic sun.security.ssl.DTLSInputRecord$HandshakeFlight.HF_UNKNOWN:B
            if_icmpne 11
         2: .line 1287
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.expectCCSFlight:Z
            ifeq 8
         3: .line 1289
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.bufferedFragments:Ljava/util/TreeSet;
            invokevirtual sun.security.ssl.DTLSInputRecord$DTLSReassembler.hasFinishedMessage:(Ljava/util/Set;)Z
            istore 2 /* isReady */
        start local 2 // boolean isReady
         4: .line 1290
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 7
            ldc "verbose"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 7
         5: .line 1292
            new java.lang.StringBuilder
            dup
            ldc "Has the final flight been received? "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 2 /* isReady */
            invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            iconst_0
            anewarray java.lang.Object
         6: .line 1291
            invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
         7: .line 1295
      StackMap locals: int int
      StackMap stack:
            iload 2 /* isReady */
            ireturn
        end local 2 // boolean isReady
         8: .line 1298
      StackMap locals:
      StackMap stack:
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 10
            ldc "verbose"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 10
         9: .line 1299
            ldc "No flight is received yet."
            iconst_0
            anewarray java.lang.Object
            invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
        10: .line 1302
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        11: .line 1305
      StackMap locals:
      StackMap stack:
            iload 1 /* flightType */
            getstatic sun.security.ssl.SSLHandshake.CLIENT_HELLO:Lsun/security/ssl/SSLHandshake;
            getfield sun.security.ssl.SSLHandshake.id:B
            if_icmpeq 14
        12: .line 1306
            iload 1 /* flightType */
            getstatic sun.security.ssl.SSLHandshake.HELLO_REQUEST:Lsun/security/ssl/SSLHandshake;
            getfield sun.security.ssl.SSLHandshake.id:B
            if_icmpeq 14
        13: .line 1307
            iload 1 /* flightType */
            getstatic sun.security.ssl.SSLHandshake.HELLO_VERIFY_REQUEST:Lsun/security/ssl/SSLHandshake;
            getfield sun.security.ssl.SSLHandshake.id:B
            if_icmpne 19
        14: .line 1310
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* flightType */
            invokevirtual sun.security.ssl.DTLSInputRecord$DTLSReassembler.hasCompleted:(B)Z
            istore 2 /* isReady */
        start local 2 // boolean isReady
        15: .line 1311
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 18
            ldc "verbose"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 18
        16: .line 1313
            new java.lang.StringBuilder
            dup
            ldc "Is the handshake message completed? "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 2 /* isReady */
            invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            iconst_0
            anewarray java.lang.Object
        17: .line 1312
            invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
        18: .line 1316
      StackMap locals: int
      StackMap stack:
            iload 2 /* isReady */
            ireturn
        end local 2 // boolean isReady
        19: .line 1322
      StackMap locals:
      StackMap stack:
            iload 1 /* flightType */
            getstatic sun.security.ssl.SSLHandshake.SERVER_HELLO:Lsun/security/ssl/SSLHandshake;
            getfield sun.security.ssl.SSLHandshake.id:B
            if_icmpne 49
        20: .line 1324
            aload 0 /* this */
            iload 1 /* flightType */
            invokevirtual sun.security.ssl.DTLSInputRecord$DTLSReassembler.hasCompleted:(B)Z
            ifne 25
        21: .line 1325
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 24
            ldc "verbose"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 24
        22: .line 1327
            ldc "The ServerHello message is not completed yet."
            iconst_0
            anewarray java.lang.Object
        23: .line 1326
            invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
        24: .line 1330
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        25: .line 1336
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.bufferedFragments:Ljava/util/TreeSet;
            invokevirtual sun.security.ssl.DTLSInputRecord$DTLSReassembler.hasFinishedMessage:(Ljava/util/Set;)Z
            ifeq 29
        26: .line 1337
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 28
            ldc "verbose"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 28
        27: .line 1338
            ldc "It's an abbreviated handshake."
            iconst_0
            anewarray java.lang.Object
            invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
        28: .line 1341
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        29: .line 1347
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.handshakeFlight:Lsun/security/ssl/DTLSInputRecord$HandshakeFlight;
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFlight.holesMap:Ljava/util/HashMap;
        30: .line 1348
            getstatic sun.security.ssl.SSLHandshake.SERVER_HELLO_DONE:Lsun/security/ssl/SSLHandshake;
            getfield sun.security.ssl.SSLHandshake.id:B
            invokestatic java.lang.Byte.valueOf:(B)Ljava/lang/Byte;
        31: .line 1347
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.List
            astore 2 /* holes */
        start local 2 // java.util.List holes
        32: .line 1349
            aload 2 /* holes */
            ifnull 33
            aload 2 /* holes */
            invokeinterface java.util.List.isEmpty:()Z
            ifne 37
        33: .line 1351
      StackMap locals: java.util.List
      StackMap stack:
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 36
            ldc "verbose"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 36
        34: .line 1353
            ldc "Not yet got the ServerHelloDone message"
            iconst_0
            anewarray java.lang.Object
        35: .line 1352
            invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
        36: .line 1356
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        37: .line 1360
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.bufferedFragments:Ljava/util/TreeSet;
        38: .line 1361
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.handshakeFlight:Lsun/security/ssl/DTLSInputRecord$HandshakeFlight;
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFlight.minMessageSeq:I
        39: .line 1362
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.handshakeFlight:Lsun/security/ssl/DTLSInputRecord$HandshakeFlight;
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFlight.maxMessageSeq:I
        40: .line 1360
            invokevirtual sun.security.ssl.DTLSInputRecord$DTLSReassembler.hasCompleted:(Ljava/util/Set;II)Z
            istore 3 /* isReady */
        start local 3 // boolean isReady
        41: .line 1363
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 48
            ldc "verbose"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 48
        42: .line 1365
            new java.lang.StringBuilder
            dup
            ldc "Is the ServerHello flight (message "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        43: .line 1366
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.handshakeFlight:Lsun/security/ssl/DTLSInputRecord$HandshakeFlight;
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFlight.minMessageSeq:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "-"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        44: .line 1367
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.handshakeFlight:Lsun/security/ssl/DTLSInputRecord$HandshakeFlight;
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFlight.maxMessageSeq:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        45: .line 1368
            ldc ") completed? "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 3 /* isReady */
            invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
        46: .line 1365
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            iconst_0
            anewarray java.lang.Object
        47: .line 1364
            invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
        48: .line 1371
      StackMap locals: int
      StackMap stack:
            iload 3 /* isReady */
            ireturn
        end local 3 // boolean isReady
        end local 2 // java.util.List holes
        49: .line 1381
      StackMap locals:
      StackMap stack:
            iload 1 /* flightType */
            getstatic sun.security.ssl.SSLHandshake.CERTIFICATE:Lsun/security/ssl/SSLHandshake;
            getfield sun.security.ssl.SSLHandshake.id:B
            if_icmpeq 51
        50: .line 1382
            iload 1 /* flightType */
            getstatic sun.security.ssl.SSLHandshake.CLIENT_KEY_EXCHANGE:Lsun/security/ssl/SSLHandshake;
            getfield sun.security.ssl.SSLHandshake.id:B
            if_icmpne 80
        51: .line 1385
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* flightType */
            invokevirtual sun.security.ssl.DTLSInputRecord$DTLSReassembler.hasCompleted:(B)Z
            ifne 56
        52: .line 1386
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 55
            ldc "verbose"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 55
        53: .line 1388
            ldc "The ClientKeyExchange or client Certificate message is not completed yet."
            iconst_0
            anewarray java.lang.Object
        54: .line 1387
            invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
        55: .line 1392
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        56: .line 1396
      StackMap locals:
      StackMap stack:
            iload 1 /* flightType */
            getstatic sun.security.ssl.SSLHandshake.CERTIFICATE:Lsun/security/ssl/SSLHandshake;
            getfield sun.security.ssl.SSLHandshake.id:B
            if_icmpne 63
        57: .line 1397
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.bufferedFragments:Ljava/util/TreeSet;
            invokevirtual sun.security.ssl.DTLSInputRecord$DTLSReassembler.needClientVerify:(Ljava/util/Set;)Z
            ifeq 63
        58: .line 1398
            aload 0 /* this */
            getstatic sun.security.ssl.SSLHandshake.CERTIFICATE_VERIFY:Lsun/security/ssl/SSLHandshake;
            getfield sun.security.ssl.SSLHandshake.id:B
            invokevirtual sun.security.ssl.DTLSInputRecord$DTLSReassembler.hasCompleted:(B)Z
            ifne 63
        59: .line 1400
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 62
            ldc "verbose"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 62
        60: .line 1402
            ldc "Not yet have the CertificateVerify message"
            iconst_0
            anewarray java.lang.Object
        61: .line 1401
            invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
        62: .line 1405
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        63: .line 1409
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.bufferedFragments:Ljava/util/TreeSet;
            invokevirtual sun.security.ssl.DTLSInputRecord$DTLSReassembler.hasFinishedMessage:(Ljava/util/Set;)Z
            ifne 68
        64: .line 1411
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 67
            ldc "verbose"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 67
        65: .line 1413
            ldc "Not yet have the ChangeCipherSpec and Finished messages"
            iconst_0
            anewarray java.lang.Object
        66: .line 1412
            invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
        67: .line 1417
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        68: .line 1421
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.bufferedFragments:Ljava/util/TreeSet;
        69: .line 1422
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.handshakeFlight:Lsun/security/ssl/DTLSInputRecord$HandshakeFlight;
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFlight.minMessageSeq:I
        70: .line 1423
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.handshakeFlight:Lsun/security/ssl/DTLSInputRecord$HandshakeFlight;
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFlight.maxMessageSeq:I
        71: .line 1421
            invokevirtual sun.security.ssl.DTLSInputRecord$DTLSReassembler.hasCompleted:(Ljava/util/Set;II)Z
            istore 2 /* isReady */
        start local 2 // boolean isReady
        72: .line 1424
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 79
            ldc "verbose"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 79
        73: .line 1426
            new java.lang.StringBuilder
            dup
            ldc "Is the ClientKeyExchange flight (message "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        74: .line 1427
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.handshakeFlight:Lsun/security/ssl/DTLSInputRecord$HandshakeFlight;
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFlight.minMessageSeq:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "-"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        75: .line 1428
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.handshakeFlight:Lsun/security/ssl/DTLSInputRecord$HandshakeFlight;
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFlight.maxMessageSeq:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        76: .line 1429
            ldc ") completed? "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 2 /* isReady */
            invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
        77: .line 1426
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            iconst_0
            anewarray java.lang.Object
        78: .line 1425
            invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
        79: .line 1432
      StackMap locals: int
      StackMap stack:
            iload 2 /* isReady */
            ireturn
        end local 2 // boolean isReady
        80: .line 1438
      StackMap locals:
      StackMap stack:
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 82
            ldc "verbose"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 82
        81: .line 1439
            ldc "Need to receive more handshake messages"
            iconst_0
            anewarray java.lang.Object
            invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
        82: .line 1442
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // byte flightType
        end local 0 // sun.security.ssl.DTLSInputRecord$DTLSReassembler this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   83     0        this  Lsun/security/ssl/DTLSInputRecord$DTLSReassembler;
            1   83     1  flightType  B
            4    8     2     isReady  Z
           15   19     2     isReady  Z
           32   49     2       holes  Ljava/util/List<Lsun/security/ssl/DTLSInputRecord$HoleDescriptor;>;
           41   49     3     isReady  Z
           72   80     2     isReady  Z

  private boolean hasFinishedMessage(java.util.Set<sun.security.ssl.DTLSInputRecord$RecordFragment>);
    descriptor: (Ljava/util/Set;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=6, args_size=2
        start local 0 // sun.security.ssl.DTLSInputRecord$DTLSReassembler this
        start local 1 // java.util.Set fragments
         0: .line 1454
            iconst_0
            istore 2 /* hasCCS */
        start local 2 // boolean hasCCS
         1: .line 1455
            iconst_0
            istore 3 /* hasFin */
        start local 3 // boolean hasFin
         2: .line 1456
            aload 1 /* fragments */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5
            goto 14
      StackMap locals: sun.security.ssl.DTLSInputRecord$DTLSReassembler java.util.Set int int top java.util.Iterator
      StackMap stack:
         3: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast sun.security.ssl.DTLSInputRecord$RecordFragment
            astore 4 /* fragment */
        start local 4 // sun.security.ssl.DTLSInputRecord$RecordFragment fragment
         4: .line 1457
            aload 4 /* fragment */
            getfield sun.security.ssl.DTLSInputRecord$RecordFragment.contentType:B
            getstatic sun.security.ssl.ContentType.CHANGE_CIPHER_SPEC:Lsun/security/ssl/ContentType;
            getfield sun.security.ssl.ContentType.id:B
            if_icmpne 9
         5: .line 1458
            iload 3 /* hasFin */
            ifeq 7
         6: .line 1459
            iconst_1
            ireturn
         7: .line 1461
      StackMap locals: sun.security.ssl.DTLSInputRecord$DTLSReassembler java.util.Set int int sun.security.ssl.DTLSInputRecord$RecordFragment java.util.Iterator
      StackMap stack:
            iconst_1
            istore 2 /* hasCCS */
         8: .line 1462
            goto 14
      StackMap locals:
      StackMap stack:
         9: aload 4 /* fragment */
            getfield sun.security.ssl.DTLSInputRecord$RecordFragment.contentType:B
            getstatic sun.security.ssl.ContentType.HANDSHAKE:Lsun/security/ssl/ContentType;
            getfield sun.security.ssl.ContentType.id:B
            if_icmpne 14
        10: .line 1464
            aload 4 /* fragment */
            getfield sun.security.ssl.DTLSInputRecord$RecordFragment.isCiphertext:Z
            ifeq 14
        11: .line 1465
            iload 2 /* hasCCS */
            ifeq 13
        12: .line 1466
            iconst_1
            ireturn
        13: .line 1468
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 3 /* hasFin */
        end local 4 // sun.security.ssl.DTLSInputRecord$RecordFragment fragment
        14: .line 1456
      StackMap locals: sun.security.ssl.DTLSInputRecord$DTLSReassembler java.util.Set int int top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
        15: .line 1473
            iload 3 /* hasFin */
            ifeq 16
            iload 2 /* hasCCS */
            ifeq 16
            iconst_1
            ireturn
      StackMap locals: sun.security.ssl.DTLSInputRecord$DTLSReassembler java.util.Set int int
      StackMap stack:
        16: iconst_0
            ireturn
        end local 3 // boolean hasFin
        end local 2 // boolean hasCCS
        end local 1 // java.util.Set fragments
        end local 0 // sun.security.ssl.DTLSInputRecord$DTLSReassembler this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   17     0       this  Lsun/security/ssl/DTLSInputRecord$DTLSReassembler;
            0   17     1  fragments  Ljava/util/Set<Lsun/security/ssl/DTLSInputRecord$RecordFragment;>;
            1   17     2     hasCCS  Z
            2   17     3     hasFin  Z
            4   14     4   fragment  Lsun/security/ssl/DTLSInputRecord$RecordFragment;
    Signature: (Ljava/util/Set<Lsun/security/ssl/DTLSInputRecord$RecordFragment;>;)Z
    MethodParameters:
           Name  Flags
      fragments  

  private boolean needClientVerify(java.util.Set<sun.security.ssl.DTLSInputRecord$RecordFragment>);
    descriptor: (Ljava/util/Set;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // sun.security.ssl.DTLSInputRecord$DTLSReassembler this
        start local 1 // java.util.Set fragments
         0: .line 1484
            aload 1 /* fragments */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3
            goto 12
      StackMap locals: sun.security.ssl.DTLSInputRecord$DTLSReassembler java.util.Set top java.util.Iterator
      StackMap stack:
         1: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast sun.security.ssl.DTLSInputRecord$RecordFragment
            astore 2 /* rFrag */
        start local 2 // sun.security.ssl.DTLSInputRecord$RecordFragment rFrag
         2: .line 1485
            aload 2 /* rFrag */
            getfield sun.security.ssl.DTLSInputRecord$RecordFragment.contentType:B
            getstatic sun.security.ssl.ContentType.HANDSHAKE:Lsun/security/ssl/ContentType;
            getfield sun.security.ssl.ContentType.id:B
            if_icmpne 13
         3: .line 1486
            aload 2 /* rFrag */
            getfield sun.security.ssl.DTLSInputRecord$RecordFragment.isCiphertext:Z
            ifeq 5
         4: .line 1487
            goto 13
         5: .line 1490
      StackMap locals: sun.security.ssl.DTLSInputRecord$DTLSReassembler java.util.Set sun.security.ssl.DTLSInputRecord$RecordFragment java.util.Iterator
      StackMap stack:
            aload 2 /* rFrag */
            checkcast sun.security.ssl.DTLSInputRecord$HandshakeFragment
            astore 4 /* hsFrag */
        start local 4 // sun.security.ssl.DTLSInputRecord$HandshakeFragment hsFrag
         6: .line 1491
            aload 4 /* hsFrag */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFragment.handshakeType:B
            getstatic sun.security.ssl.SSLHandshake.CERTIFICATE:Lsun/security/ssl/SSLHandshake;
            getfield sun.security.ssl.SSLHandshake.id:B
            if_icmpeq 8
         7: .line 1492
            goto 12
         8: .line 1495
      StackMap locals: sun.security.ssl.DTLSInputRecord$HandshakeFragment
      StackMap stack:
            aload 2 /* rFrag */
            getfield sun.security.ssl.DTLSInputRecord$RecordFragment.fragment:[B
            ifnull 11
         9: .line 1496
            aload 2 /* rFrag */
            getfield sun.security.ssl.DTLSInputRecord$RecordFragment.fragment:[B
            arraylength
            bipush 28
        10: .line 1495
            if_icmple 11
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
        11: iconst_0
            ireturn
        end local 4 // sun.security.ssl.DTLSInputRecord$HandshakeFragment hsFrag
        end local 2 // sun.security.ssl.DTLSInputRecord$RecordFragment rFrag
        12: .line 1484
      StackMap locals: sun.security.ssl.DTLSInputRecord$DTLSReassembler java.util.Set top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
        13: .line 1499
      StackMap locals: sun.security.ssl.DTLSInputRecord$DTLSReassembler java.util.Set
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // java.util.Set fragments
        end local 0 // sun.security.ssl.DTLSInputRecord$DTLSReassembler this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   14     0       this  Lsun/security/ssl/DTLSInputRecord$DTLSReassembler;
            0   14     1  fragments  Ljava/util/Set<Lsun/security/ssl/DTLSInputRecord$RecordFragment;>;
            2   12     2      rFrag  Lsun/security/ssl/DTLSInputRecord$RecordFragment;
            6   12     4     hsFrag  Lsun/security/ssl/DTLSInputRecord$HandshakeFragment;
    Signature: (Ljava/util/Set<Lsun/security/ssl/DTLSInputRecord$RecordFragment;>;)Z
    MethodParameters:
           Name  Flags
      fragments  

  private boolean hasCompleted(byte);
    descriptor: (B)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // sun.security.ssl.DTLSInputRecord$DTLSReassembler this
        start local 1 // byte handshakeType
         0: .line 1504
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.handshakeFlight:Lsun/security/ssl/DTLSInputRecord$HandshakeFlight;
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFlight.holesMap:Ljava/util/HashMap;
            iload 1 /* handshakeType */
            invokestatic java.lang.Byte.valueOf:(B)Ljava/lang/Byte;
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.List
         1: .line 1503
            astore 2 /* holes */
        start local 2 // java.util.List holes
         2: .line 1505
            aload 2 /* holes */
            ifnonnull 4
         3: .line 1507
            iconst_0
            ireturn
         4: .line 1510
      StackMap locals: java.util.List
      StackMap stack:
            aload 2 /* holes */
            invokeinterface java.util.List.isEmpty:()Z
            ireturn
        end local 2 // java.util.List holes
        end local 1 // byte handshakeType
        end local 0 // sun.security.ssl.DTLSInputRecord$DTLSReassembler this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    5     0           this  Lsun/security/ssl/DTLSInputRecord$DTLSReassembler;
            0    5     1  handshakeType  B
            2    5     2          holes  Ljava/util/List<Lsun/security/ssl/DTLSInputRecord$HoleDescriptor;>;
    MethodParameters:
               Name  Flags
      handshakeType  

  private boolean hasCompleted(java.util.Set<sun.security.ssl.DTLSInputRecord$RecordFragment>, int, );
    descriptor: (Ljava/util/Set;II)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=7, args_size=4
        start local 0 // sun.security.ssl.DTLSInputRecord$DTLSReassembler this
        start local 1 // java.util.Set fragments
        start local 2 // int presentMsgSeq
        start local 3 // int endMsgSeq
         0: .line 1519
            aload 1 /* fragments */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5
            goto 12
      StackMap locals: sun.security.ssl.DTLSInputRecord$DTLSReassembler java.util.Set int int top java.util.Iterator
      StackMap stack:
         1: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast sun.security.ssl.DTLSInputRecord$RecordFragment
            astore 4 /* rFrag */
        start local 4 // sun.security.ssl.DTLSInputRecord$RecordFragment rFrag
         2: .line 1520
            aload 4 /* rFrag */
            getfield sun.security.ssl.DTLSInputRecord$RecordFragment.contentType:B
            getstatic sun.security.ssl.ContentType.HANDSHAKE:Lsun/security/ssl/ContentType;
            getfield sun.security.ssl.ContentType.id:B
            if_icmpne 13
         3: .line 1521
            aload 4 /* rFrag */
            getfield sun.security.ssl.DTLSInputRecord$RecordFragment.isCiphertext:Z
            ifeq 5
         4: .line 1522
            goto 13
         5: .line 1525
      StackMap locals: sun.security.ssl.DTLSInputRecord$DTLSReassembler java.util.Set int int sun.security.ssl.DTLSInputRecord$RecordFragment java.util.Iterator
      StackMap stack:
            aload 4 /* rFrag */
            checkcast sun.security.ssl.DTLSInputRecord$HandshakeFragment
            astore 6 /* hsFrag */
        start local 6 // sun.security.ssl.DTLSInputRecord$HandshakeFragment hsFrag
         6: .line 1526
            aload 6 /* hsFrag */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFragment.messageSeq:I
            iload 2 /* presentMsgSeq */
            if_icmpne 8
         7: .line 1527
            goto 12
         8: .line 1528
      StackMap locals: sun.security.ssl.DTLSInputRecord$HandshakeFragment
      StackMap stack:
            aload 6 /* hsFrag */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFragment.messageSeq:I
            iload 2 /* presentMsgSeq */
            iconst_1
            iadd
            if_icmpne 13
         9: .line 1530
            aload 0 /* this */
            aload 6 /* hsFrag */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFragment.handshakeType:B
            invokevirtual sun.security.ssl.DTLSInputRecord$DTLSReassembler.hasCompleted:(B)Z
            ifne 11
        10: .line 1531
            iconst_0
            ireturn
        11: .line 1534
      StackMap locals:
      StackMap stack:
            aload 6 /* hsFrag */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFragment.messageSeq:I
            istore 2 /* presentMsgSeq */
        end local 6 // sun.security.ssl.DTLSInputRecord$HandshakeFragment hsFrag
        end local 4 // sun.security.ssl.DTLSInputRecord$RecordFragment rFrag
        12: .line 1519
      StackMap locals: sun.security.ssl.DTLSInputRecord$DTLSReassembler java.util.Set int int top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
        13: .line 1541
      StackMap locals: sun.security.ssl.DTLSInputRecord$DTLSReassembler java.util.Set int int
      StackMap stack:
            iload 2 /* presentMsgSeq */
            iload 3 /* endMsgSeq */
            if_icmplt 14
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
        14: iconst_0
            ireturn
        end local 3 // int endMsgSeq
        end local 2 // int presentMsgSeq
        end local 1 // java.util.Set fragments
        end local 0 // sun.security.ssl.DTLSInputRecord$DTLSReassembler this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   15     0           this  Lsun/security/ssl/DTLSInputRecord$DTLSReassembler;
            0   15     1      fragments  Ljava/util/Set<Lsun/security/ssl/DTLSInputRecord$RecordFragment;>;
            0   15     2  presentMsgSeq  I
            0   15     3      endMsgSeq  I
            2   12     4          rFrag  Lsun/security/ssl/DTLSInputRecord$RecordFragment;
            6   12     6         hsFrag  Lsun/security/ssl/DTLSInputRecord$HandshakeFragment;
    Signature: (Ljava/util/Set<Lsun/security/ssl/DTLSInputRecord$RecordFragment;>;II)Z
    MethodParameters:
               Name  Flags
      fragments      
      presentMsgSeq  
      endMsgSeq      

  private void handshakeHashing(sun.security.ssl.DTLSInputRecord$HandshakeFragment, sun.security.ssl.Plaintext);
    descriptor: (Lsun/security/ssl/DTLSInputRecord$HandshakeFragment;Lsun/security/ssl/Plaintext;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // sun.security.ssl.DTLSInputRecord$DTLSReassembler this
        start local 1 // sun.security.ssl.DTLSInputRecord$HandshakeFragment hsFrag
        start local 2 // sun.security.ssl.Plaintext plaintext
         0: .line 1547
            aload 1 /* hsFrag */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFragment.handshakeType:B
            istore 3 /* hsType */
        start local 3 // byte hsType
         1: .line 1548
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.this$0:Lsun/security/ssl/DTLSInputRecord;
            getfield sun.security.ssl.DTLSInputRecord.handshakeHash:Lsun/security/ssl/HandshakeHash;
            iload 3 /* hsType */
            invokevirtual sun.security.ssl.HandshakeHash.isHashable:(B)Z
            ifne 3
         2: .line 1550
            return
         3: .line 1554
      StackMap locals: int
      StackMap stack:
            aload 2 /* plaintext */
            getfield sun.security.ssl.Plaintext.fragment:Ljava/nio/ByteBuffer;
            iconst_4
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
            pop
         4: .line 1555
            aload 2 /* plaintext */
            getfield sun.security.ssl.Plaintext.fragment:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.remaining:()I
            bipush 12
            iadd
            newarray 8
            astore 4 /* temporary */
        start local 4 // byte[] temporary
         5: .line 1559
            aload 4 /* temporary */
            iconst_0
            aload 1 /* hsFrag */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFragment.handshakeType:B
            bastore
         6: .line 1562
            aload 4 /* temporary */
            iconst_1
            aload 1 /* hsFrag */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFragment.messageLength:I
            bipush 16
            ishr
            sipush 255
            iand
            i2b
            bastore
         7: .line 1563
            aload 4 /* temporary */
            iconst_2
            aload 1 /* hsFrag */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFragment.messageLength:I
            bipush 8
            ishr
            sipush 255
            iand
            i2b
            bastore
         8: .line 1564
            aload 4 /* temporary */
            iconst_3
            aload 1 /* hsFrag */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFragment.messageLength:I
            sipush 255
            iand
            i2b
            bastore
         9: .line 1567
            aload 4 /* temporary */
            iconst_4
            aload 1 /* hsFrag */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFragment.messageSeq:I
            bipush 8
            ishr
            sipush 255
            iand
            i2b
            bastore
        10: .line 1568
            aload 4 /* temporary */
            iconst_5
            aload 1 /* hsFrag */
            getfield sun.security.ssl.DTLSInputRecord$HandshakeFragment.messageSeq:I
            sipush 255
            iand
            i2b
            bastore
        11: .line 1571
            aload 4 /* temporary */
            bipush 6
            iconst_0
            bastore
        12: .line 1572
            aload 4 /* temporary */
            bipush 7
            iconst_0
            bastore
        13: .line 1573
            aload 4 /* temporary */
            bipush 8
            iconst_0
            bastore
        14: .line 1576
            aload 4 /* temporary */
            bipush 9
            aload 4 /* temporary */
            iconst_1
            baload
            bastore
        15: .line 1577
            aload 4 /* temporary */
            bipush 10
            aload 4 /* temporary */
            iconst_2
            baload
            bastore
        16: .line 1578
            aload 4 /* temporary */
            bipush 11
            aload 4 /* temporary */
            iconst_3
            baload
            bastore
        17: .line 1580
            aload 2 /* plaintext */
            getfield sun.security.ssl.Plaintext.fragment:Ljava/nio/ByteBuffer;
            aload 4 /* temporary */
        18: .line 1581
            bipush 12
            aload 2 /* plaintext */
            getfield sun.security.ssl.Plaintext.fragment:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.remaining:()I
        19: .line 1580
            invokevirtual java.nio.ByteBuffer.get:([BII)Ljava/nio/ByteBuffer;
            pop
        20: .line 1582
            aload 0 /* this */
            getfield sun.security.ssl.DTLSInputRecord$DTLSReassembler.this$0:Lsun/security/ssl/DTLSInputRecord;
            getfield sun.security.ssl.DTLSInputRecord.handshakeHash:Lsun/security/ssl/HandshakeHash;
            aload 4 /* temporary */
            invokevirtual sun.security.ssl.HandshakeHash.receive:([B)V
        21: .line 1583
            aload 2 /* plaintext */
            getfield sun.security.ssl.Plaintext.fragment:Ljava/nio/ByteBuffer;
            iconst_0
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
            pop
        22: .line 1584
            return
        end local 4 // byte[] temporary
        end local 3 // byte hsType
        end local 2 // sun.security.ssl.Plaintext plaintext
        end local 1 // sun.security.ssl.DTLSInputRecord$HandshakeFragment hsFrag
        end local 0 // sun.security.ssl.DTLSInputRecord$DTLSReassembler this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   23     0       this  Lsun/security/ssl/DTLSInputRecord$DTLSReassembler;
            0   23     1     hsFrag  Lsun/security/ssl/DTLSInputRecord$HandshakeFragment;
            0   23     2  plaintext  Lsun/security/ssl/Plaintext;
            1   23     3     hsType  B
            5   23     4  temporary  [B
    MethodParameters:
           Name  Flags
      hsFrag     
      plaintext  
}
SourceFile: "DTLSInputRecord.java"
NestHost: sun.security.ssl.DTLSInputRecord
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
  abstract SSLReadCipher = sun.security.ssl.SSLCipher$SSLReadCipher of sun.security.ssl.SSLCipher