public class sun.text.DictionaryBasedBreakIterator extends sun.text.RuleBasedBreakIterator
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: sun.text.DictionaryBasedBreakIterator
  super_class: sun.text.RuleBasedBreakIterator
{
  private sun.text.BreakDictionary dictionary;
    descriptor: Lsun/text/BreakDictionary;
    flags: (0x0002) ACC_PRIVATE

  private boolean[] categoryFlags;
    descriptor: [Z
    flags: (0x0002) ACC_PRIVATE

  private int dictionaryCharCount;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int[] cachedBreakPositions;
    descriptor: [I
    flags: (0x0002) ACC_PRIVATE

  private int positionInCache;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  public void <init>(java.lang.String, byte[], java.lang.String, byte[]);
    descriptor: (Ljava/lang/String;[BLjava/lang/String;[B)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=5
        start local 0 // sun.text.DictionaryBasedBreakIterator this
        start local 1 // java.lang.String ruleFile
        start local 2 // byte[] ruleData
        start local 3 // java.lang.String dictionaryFile
        start local 4 // byte[] dictionaryData
         0: .line 119
            aload 0 /* this */
            aload 1 /* ruleFile */
            aload 2 /* ruleData */
            invokespecial sun.text.RuleBasedBreakIterator.<init>:(Ljava/lang/String;[B)V
         1: .line 120
            aload 0 /* this */
            invokespecial sun.text.RuleBasedBreakIterator.getAdditionalData:()[B
            astore 5 /* tmp */
        start local 5 // byte[] tmp
         2: .line 121
            aload 5 /* tmp */
            ifnull 5
         3: .line 122
            aload 0 /* this */
            aload 5 /* tmp */
            invokevirtual sun.text.DictionaryBasedBreakIterator.prepareCategoryFlags:([B)V
         4: .line 123
            aload 0 /* this */
            aconst_null
            invokespecial sun.text.RuleBasedBreakIterator.setAdditionalData:([B)V
         5: .line 125
      StackMap locals: sun.text.DictionaryBasedBreakIterator java.lang.String byte[] java.lang.String byte[] byte[]
      StackMap stack:
            aload 0 /* this */
            new sun.text.BreakDictionary
            dup
            aload 3 /* dictionaryFile */
            aload 4 /* dictionaryData */
            invokespecial sun.text.BreakDictionary.<init>:(Ljava/lang/String;[B)V
            putfield sun.text.DictionaryBasedBreakIterator.dictionary:Lsun/text/BreakDictionary;
         6: .line 126
            return
        end local 5 // byte[] tmp
        end local 4 // byte[] dictionaryData
        end local 3 // java.lang.String dictionaryFile
        end local 2 // byte[] ruleData
        end local 1 // java.lang.String ruleFile
        end local 0 // sun.text.DictionaryBasedBreakIterator this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    7     0            this  Lsun/text/DictionaryBasedBreakIterator;
            0    7     1        ruleFile  Ljava/lang/String;
            0    7     2        ruleData  [B
            0    7     3  dictionaryFile  Ljava/lang/String;
            0    7     4  dictionaryData  [B
            2    7     5             tmp  [B
    MethodParameters:
                Name  Flags
      ruleFile        
      ruleData        
      dictionaryFile  
      dictionaryData  

  private void prepareCategoryFlags(byte[]);
    descriptor: ([B)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // sun.text.DictionaryBasedBreakIterator this
        start local 1 // byte[] data
         0: .line 129
            aload 0 /* this */
            aload 1 /* data */
            arraylength
            newarray 4
            putfield sun.text.DictionaryBasedBreakIterator.categoryFlags:[Z
         1: .line 130
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: goto 7
         3: .line 131
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield sun.text.DictionaryBasedBreakIterator.categoryFlags:[Z
            iload 2 /* i */
            aload 1 /* data */
            iload 2 /* i */
            baload
            iconst_1
            if_icmpne 4
            iconst_1
            goto 5
      StackMap locals: sun.text.DictionaryBasedBreakIterator byte[] int
      StackMap stack: boolean[] int
         4: iconst_0
      StackMap locals: sun.text.DictionaryBasedBreakIterator byte[] int
      StackMap stack: boolean[] int int
         5: bastore
         6: .line 130
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 2 /* i */
            aload 1 /* data */
            arraylength
            if_icmplt 3
        end local 2 // int i
         8: .line 133
            return
        end local 1 // byte[] data
        end local 0 // sun.text.DictionaryBasedBreakIterator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lsun/text/DictionaryBasedBreakIterator;
            0    9     1  data  [B
            2    8     2     i  I
    MethodParameters:
      Name  Flags
      data  

  public void setText(java.text.CharacterIterator);
    descriptor: (Ljava/text/CharacterIterator;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.text.DictionaryBasedBreakIterator this
        start local 1 // java.text.CharacterIterator newText
         0: .line 137
            aload 0 /* this */
            aload 1 /* newText */
            invokespecial sun.text.RuleBasedBreakIterator.setText:(Ljava/text/CharacterIterator;)V
         1: .line 138
            aload 0 /* this */
            aconst_null
            putfield sun.text.DictionaryBasedBreakIterator.cachedBreakPositions:[I
         2: .line 139
            aload 0 /* this */
            iconst_0
            putfield sun.text.DictionaryBasedBreakIterator.dictionaryCharCount:I
         3: .line 140
            aload 0 /* this */
            iconst_0
            putfield sun.text.DictionaryBasedBreakIterator.positionInCache:I
         4: .line 141
            return
        end local 1 // java.text.CharacterIterator newText
        end local 0 // sun.text.DictionaryBasedBreakIterator this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Lsun/text/DictionaryBasedBreakIterator;
            0    5     1  newText  Ljava/text/CharacterIterator;
    MethodParameters:
         Name  Flags
      newText  

  public int first();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.text.DictionaryBasedBreakIterator this
         0: .line 150
            aload 0 /* this */
            aconst_null
            putfield sun.text.DictionaryBasedBreakIterator.cachedBreakPositions:[I
         1: .line 151
            aload 0 /* this */
            iconst_0
            putfield sun.text.DictionaryBasedBreakIterator.dictionaryCharCount:I
         2: .line 152
            aload 0 /* this */
            iconst_0
            putfield sun.text.DictionaryBasedBreakIterator.positionInCache:I
         3: .line 153
            aload 0 /* this */
            invokespecial sun.text.RuleBasedBreakIterator.first:()I
            ireturn
        end local 0 // sun.text.DictionaryBasedBreakIterator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lsun/text/DictionaryBasedBreakIterator;

  public int last();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.text.DictionaryBasedBreakIterator this
         0: .line 163
            aload 0 /* this */
            aconst_null
            putfield sun.text.DictionaryBasedBreakIterator.cachedBreakPositions:[I
         1: .line 164
            aload 0 /* this */
            iconst_0
            putfield sun.text.DictionaryBasedBreakIterator.dictionaryCharCount:I
         2: .line 165
            aload 0 /* this */
            iconst_0
            putfield sun.text.DictionaryBasedBreakIterator.positionInCache:I
         3: .line 166
            aload 0 /* this */
            invokespecial sun.text.RuleBasedBreakIterator.last:()I
            ireturn
        end local 0 // sun.text.DictionaryBasedBreakIterator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lsun/text/DictionaryBasedBreakIterator;

  public int previous();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // sun.text.DictionaryBasedBreakIterator this
         0: .line 176
            aload 0 /* this */
            invokevirtual sun.text.DictionaryBasedBreakIterator.getText:()Ljava/text/CharacterIterator;
            astore 1 /* text */
        start local 1 // java.text.CharacterIterator text
         1: .line 180
            aload 0 /* this */
            getfield sun.text.DictionaryBasedBreakIterator.cachedBreakPositions:[I
            ifnull 5
            aload 0 /* this */
            getfield sun.text.DictionaryBasedBreakIterator.positionInCache:I
            ifle 5
         2: .line 181
            aload 0 /* this */
            dup
            getfield sun.text.DictionaryBasedBreakIterator.positionInCache:I
            iconst_1
            isub
            putfield sun.text.DictionaryBasedBreakIterator.positionInCache:I
         3: .line 182
            aload 1 /* text */
            aload 0 /* this */
            getfield sun.text.DictionaryBasedBreakIterator.cachedBreakPositions:[I
            aload 0 /* this */
            getfield sun.text.DictionaryBasedBreakIterator.positionInCache:I
            iaload
            invokeinterface java.text.CharacterIterator.setIndex:(I)C
            pop
         4: .line 183
            aload 0 /* this */
            getfield sun.text.DictionaryBasedBreakIterator.cachedBreakPositions:[I
            aload 0 /* this */
            getfield sun.text.DictionaryBasedBreakIterator.positionInCache:I
            iaload
            ireturn
         5: .line 190
      StackMap locals: java.text.CharacterIterator
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield sun.text.DictionaryBasedBreakIterator.cachedBreakPositions:[I
         6: .line 191
            aload 0 /* this */
            invokespecial sun.text.RuleBasedBreakIterator.previous:()I
            istore 2 /* result */
        start local 2 // int result
         7: .line 192
            aload 0 /* this */
            getfield sun.text.DictionaryBasedBreakIterator.cachedBreakPositions:[I
            ifnull 9
         8: .line 193
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.text.DictionaryBasedBreakIterator.cachedBreakPositions:[I
            arraylength
            iconst_2
            isub
            putfield sun.text.DictionaryBasedBreakIterator.positionInCache:I
         9: .line 195
      StackMap locals: int
      StackMap stack:
            iload 2 /* result */
            ireturn
        end local 2 // int result
        end local 1 // java.text.CharacterIterator text
        end local 0 // sun.text.DictionaryBasedBreakIterator this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   10     0    this  Lsun/text/DictionaryBasedBreakIterator;
            1   10     1    text  Ljava/text/CharacterIterator;
            7   10     2  result  I

  public int preceding(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // sun.text.DictionaryBasedBreakIterator this
        start local 1 // int offset
         0: .line 207
            aload 0 /* this */
            invokevirtual sun.text.DictionaryBasedBreakIterator.getText:()Ljava/text/CharacterIterator;
            astore 2 /* text */
        start local 2 // java.text.CharacterIterator text
         1: .line 208
            iload 1 /* offset */
            aload 2 /* text */
            invokestatic sun.text.DictionaryBasedBreakIterator.checkOffset:(ILjava/text/CharacterIterator;)V
         2: .line 214
            aload 0 /* this */
            getfield sun.text.DictionaryBasedBreakIterator.cachedBreakPositions:[I
            ifnull 4
            iload 1 /* offset */
            aload 0 /* this */
            getfield sun.text.DictionaryBasedBreakIterator.cachedBreakPositions:[I
            iconst_0
            iaload
            if_icmple 4
         3: .line 215
            iload 1 /* offset */
            aload 0 /* this */
            getfield sun.text.DictionaryBasedBreakIterator.cachedBreakPositions:[I
            aload 0 /* this */
            getfield sun.text.DictionaryBasedBreakIterator.cachedBreakPositions:[I
            arraylength
            iconst_1
            isub
            iaload
            if_icmple 6
         4: .line 216
      StackMap locals: java.text.CharacterIterator
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield sun.text.DictionaryBasedBreakIterator.cachedBreakPositions:[I
         5: .line 217
            aload 0 /* this */
            iload 1 /* offset */
            invokespecial sun.text.RuleBasedBreakIterator.preceding:(I)I
            ireturn
         6: .line 224
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield sun.text.DictionaryBasedBreakIterator.positionInCache:I
         7: .line 225
            goto 9
         8: .line 227
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield sun.text.DictionaryBasedBreakIterator.positionInCache:I
            iconst_1
            iadd
            putfield sun.text.DictionaryBasedBreakIterator.positionInCache:I
         9: .line 225
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.text.DictionaryBasedBreakIterator.positionInCache:I
            aload 0 /* this */
            getfield sun.text.DictionaryBasedBreakIterator.cachedBreakPositions:[I
            arraylength
            if_icmpge 12
        10: .line 226
            iload 1 /* offset */
            aload 0 /* this */
            getfield sun.text.DictionaryBasedBreakIterator.cachedBreakPositions:[I
            aload 0 /* this */
            getfield sun.text.DictionaryBasedBreakIterator.positionInCache:I
            iaload
        11: .line 225
            if_icmpgt 8
        12: .line 229
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield sun.text.DictionaryBasedBreakIterator.positionInCache:I
            iconst_1
            isub
            putfield sun.text.DictionaryBasedBreakIterator.positionInCache:I
        13: .line 230
            aload 2 /* text */
            aload 0 /* this */
            getfield sun.text.DictionaryBasedBreakIterator.cachedBreakPositions:[I
            aload 0 /* this */
            getfield sun.text.DictionaryBasedBreakIterator.positionInCache:I
            iaload
            invokeinterface java.text.CharacterIterator.setIndex:(I)C
            pop
        14: .line 231
            aload 2 /* text */
            invokeinterface java.text.CharacterIterator.getIndex:()I
            ireturn
        end local 2 // java.text.CharacterIterator text
        end local 1 // int offset
        end local 0 // sun.text.DictionaryBasedBreakIterator this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   15     0    this  Lsun/text/DictionaryBasedBreakIterator;
            0   15     1  offset  I
            1   15     2    text  Ljava/text/CharacterIterator;
    MethodParameters:
        Name  Flags
      offset  

  public int following(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // sun.text.DictionaryBasedBreakIterator this
        start local 1 // int offset
         0: .line 243
            aload 0 /* this */
            invokevirtual sun.text.DictionaryBasedBreakIterator.getText:()Ljava/text/CharacterIterator;
            astore 2 /* text */
        start local 2 // java.text.CharacterIterator text
         1: .line 244
            iload 1 /* offset */
            aload 2 /* text */
            invokestatic sun.text.DictionaryBasedBreakIterator.checkOffset:(ILjava/text/CharacterIterator;)V
         2: .line 250
            aload 0 /* this */
            getfield sun.text.DictionaryBasedBreakIterator.cachedBreakPositions:[I
            ifnull 4
            iload 1 /* offset */
            aload 0 /* this */
            getfield sun.text.DictionaryBasedBreakIterator.cachedBreakPositions:[I
            iconst_0
            iaload
            if_icmplt 4
         3: .line 251
            iload 1 /* offset */
            aload 0 /* this */
            getfield sun.text.DictionaryBasedBreakIterator.cachedBreakPositions:[I
            aload 0 /* this */
            getfield sun.text.DictionaryBasedBreakIterator.cachedBreakPositions:[I
            arraylength
            iconst_1
            isub
            iaload
            if_icmplt 6
         4: .line 252
      StackMap locals: java.text.CharacterIterator
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield sun.text.DictionaryBasedBreakIterator.cachedBreakPositions:[I
         5: .line 253
            aload 0 /* this */
            iload 1 /* offset */
            invokespecial sun.text.RuleBasedBreakIterator.following:(I)I
            ireturn
         6: .line 260
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield sun.text.DictionaryBasedBreakIterator.positionInCache:I
         7: .line 261
            goto 9
         8: .line 263
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield sun.text.DictionaryBasedBreakIterator.positionInCache:I
            iconst_1
            iadd
            putfield sun.text.DictionaryBasedBreakIterator.positionInCache:I
         9: .line 261
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.text.DictionaryBasedBreakIterator.positionInCache:I
            aload 0 /* this */
            getfield sun.text.DictionaryBasedBreakIterator.cachedBreakPositions:[I
            arraylength
            if_icmpge 12
        10: .line 262
            iload 1 /* offset */
            aload 0 /* this */
            getfield sun.text.DictionaryBasedBreakIterator.cachedBreakPositions:[I
            aload 0 /* this */
            getfield sun.text.DictionaryBasedBreakIterator.positionInCache:I
            iaload
        11: .line 261
            if_icmpge 8
        12: .line 265
      StackMap locals:
      StackMap stack:
            aload 2 /* text */
            aload 0 /* this */
            getfield sun.text.DictionaryBasedBreakIterator.cachedBreakPositions:[I
            aload 0 /* this */
            getfield sun.text.DictionaryBasedBreakIterator.positionInCache:I
            iaload
            invokeinterface java.text.CharacterIterator.setIndex:(I)C
            pop
        13: .line 266
            aload 2 /* text */
            invokeinterface java.text.CharacterIterator.getIndex:()I
            ireturn
        end local 2 // java.text.CharacterIterator text
        end local 1 // int offset
        end local 0 // sun.text.DictionaryBasedBreakIterator this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   14     0    this  Lsun/text/DictionaryBasedBreakIterator;
            0   14     1  offset  I
            1   14     2    text  Ljava/text/CharacterIterator;
    MethodParameters:
        Name  Flags
      offset  

  protected int handleNext();
    descriptor: ()I
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // sun.text.DictionaryBasedBreakIterator this
         0: .line 275
            aload 0 /* this */
            invokevirtual sun.text.DictionaryBasedBreakIterator.getText:()Ljava/text/CharacterIterator;
            astore 1 /* text */
        start local 1 // java.text.CharacterIterator text
         1: .line 280
            aload 0 /* this */
            getfield sun.text.DictionaryBasedBreakIterator.cachedBreakPositions:[I
            ifnull 3
         2: .line 281
            aload 0 /* this */
            getfield sun.text.DictionaryBasedBreakIterator.positionInCache:I
            aload 0 /* this */
            getfield sun.text.DictionaryBasedBreakIterator.cachedBreakPositions:[I
            arraylength
            iconst_1
            isub
            if_icmpne 11
         3: .line 286
      StackMap locals: java.text.CharacterIterator
      StackMap stack:
            aload 1 /* text */
            invokeinterface java.text.CharacterIterator.getIndex:()I
            istore 2 /* startPos */
        start local 2 // int startPos
         4: .line 287
            aload 0 /* this */
            iconst_0
            putfield sun.text.DictionaryBasedBreakIterator.dictionaryCharCount:I
         5: .line 288
            aload 0 /* this */
            invokespecial sun.text.RuleBasedBreakIterator.handleNext:()I
            istore 3 /* result */
        start local 3 // int result
         6: .line 293
            aload 0 /* this */
            getfield sun.text.DictionaryBasedBreakIterator.dictionaryCharCount:I
            iconst_1
            if_icmple 9
            iload 3 /* result */
            iload 2 /* startPos */
            isub
            iconst_1
            if_icmple 9
         7: .line 294
            aload 0 /* this */
            iload 2 /* startPos */
            iload 3 /* result */
            invokevirtual sun.text.DictionaryBasedBreakIterator.divideUpDictionaryRange:(II)V
         8: .line 295
            goto 11
         9: .line 300
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield sun.text.DictionaryBasedBreakIterator.cachedBreakPositions:[I
        10: .line 301
            iload 3 /* result */
            ireturn
        end local 3 // int result
        end local 2 // int startPos
        11: .line 308
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.text.DictionaryBasedBreakIterator.cachedBreakPositions:[I
            ifnull 15
        12: .line 309
            aload 0 /* this */
            dup
            getfield sun.text.DictionaryBasedBreakIterator.positionInCache:I
            iconst_1
            iadd
            putfield sun.text.DictionaryBasedBreakIterator.positionInCache:I
        13: .line 310
            aload 1 /* text */
            aload 0 /* this */
            getfield sun.text.DictionaryBasedBreakIterator.cachedBreakPositions:[I
            aload 0 /* this */
            getfield sun.text.DictionaryBasedBreakIterator.positionInCache:I
            iaload
            invokeinterface java.text.CharacterIterator.setIndex:(I)C
            pop
        14: .line 311
            aload 0 /* this */
            getfield sun.text.DictionaryBasedBreakIterator.cachedBreakPositions:[I
            aload 0 /* this */
            getfield sun.text.DictionaryBasedBreakIterator.positionInCache:I
            iaload
            ireturn
        15: .line 313
      StackMap locals:
      StackMap stack:
            sipush -9999
            ireturn
        end local 1 // java.text.CharacterIterator text
        end local 0 // sun.text.DictionaryBasedBreakIterator this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   16     0      this  Lsun/text/DictionaryBasedBreakIterator;
            1   16     1      text  Ljava/text/CharacterIterator;
            4   11     2  startPos  I
            6   11     3    result  I

  protected int lookupCategory(int);
    descriptor: (I)I
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // sun.text.DictionaryBasedBreakIterator this
        start local 1 // int c
         0: .line 326
            aload 0 /* this */
            iload 1 /* c */
            invokespecial sun.text.RuleBasedBreakIterator.lookupCategory:(I)I
            istore 2 /* result */
        start local 2 // int result
         1: .line 327
            iload 2 /* result */
            iconst_m1
            if_icmpeq 3
            aload 0 /* this */
            getfield sun.text.DictionaryBasedBreakIterator.categoryFlags:[Z
            iload 2 /* result */
            baload
            ifeq 3
         2: .line 328
            aload 0 /* this */
            dup
            getfield sun.text.DictionaryBasedBreakIterator.dictionaryCharCount:I
            iconst_1
            iadd
            putfield sun.text.DictionaryBasedBreakIterator.dictionaryCharCount:I
         3: .line 330
      StackMap locals: int
      StackMap stack:
            iload 2 /* result */
            ireturn
        end local 2 // int result
        end local 1 // int c
        end local 0 // sun.text.DictionaryBasedBreakIterator this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lsun/text/DictionaryBasedBreakIterator;
            0    4     1       c  I
            1    4     2  result  I
    MethodParameters:
      Name  Flags
      c     

  private void divideUpDictionaryRange(int, int);
    descriptor: (II)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=14, args_size=3
        start local 0 // sun.text.DictionaryBasedBreakIterator this
        start local 1 // int startPos
        start local 2 // int endPos
         0: .line 343
            aload 0 /* this */
            invokevirtual sun.text.DictionaryBasedBreakIterator.getText:()Ljava/text/CharacterIterator;
            astore 3 /* text */
        start local 3 // java.text.CharacterIterator text
         1: .line 349
            aload 3 /* text */
            iload 1 /* startPos */
            invokeinterface java.text.CharacterIterator.setIndex:(I)C
            pop
         2: .line 350
            aload 0 /* this */
            invokevirtual sun.text.DictionaryBasedBreakIterator.getCurrent:()I
            istore 4 /* c */
        start local 4 // int c
         3: .line 351
            aload 0 /* this */
            iload 4 /* c */
            invokevirtual sun.text.DictionaryBasedBreakIterator.lookupCategory:(I)I
            istore 5 /* category */
        start local 5 // int category
         4: .line 352
            goto 7
         5: .line 353
      StackMap locals: java.text.CharacterIterator int int
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.text.DictionaryBasedBreakIterator.getNext:()I
            istore 4 /* c */
         6: .line 354
            aload 0 /* this */
            iload 4 /* c */
            invokevirtual sun.text.DictionaryBasedBreakIterator.lookupCategory:(I)I
            istore 5 /* category */
         7: .line 352
      StackMap locals:
      StackMap stack:
            iload 5 /* category */
            iconst_m1
            if_icmpeq 5
            aload 0 /* this */
            getfield sun.text.DictionaryBasedBreakIterator.categoryFlags:[Z
            iload 5 /* category */
            baload
            ifeq 5
         8: .line 368
            new java.util.Stack
            dup
            invokespecial java.util.Stack.<init>:()V
            astore 6 /* currentBreakPositions */
        start local 6 // java.util.Stack currentBreakPositions
         9: .line 369
            new java.util.Stack
            dup
            invokespecial java.util.Stack.<init>:()V
            astore 7 /* possibleBreakPositions */
        start local 7 // java.util.Stack possibleBreakPositions
        10: .line 370
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 8 /* wrongBreakPositions */
        start local 8 // java.util.List wrongBreakPositions
        11: .line 376
            iconst_0
            istore 9 /* state */
        start local 9 // int state
        12: .line 385
            aload 3 /* text */
            invokeinterface java.text.CharacterIterator.getIndex:()I
            istore 10 /* farthestEndPoint */
        start local 10 // int farthestEndPoint
        13: .line 386
            aconst_null
            astore 11 /* bestBreakPositions */
        start local 11 // java.util.Stack bestBreakPositions
        14: .line 389
            aload 0 /* this */
            invokevirtual sun.text.DictionaryBasedBreakIterator.getCurrent:()I
            istore 4 /* c */
        15: .line 395
      StackMap locals: sun.text.DictionaryBasedBreakIterator int int java.text.CharacterIterator int int java.util.Stack java.util.Stack java.util.List int int java.util.Stack
      StackMap stack:
            aload 0 /* this */
            getfield sun.text.DictionaryBasedBreakIterator.dictionary:Lsun/text/BreakDictionary;
            iload 9 /* state */
            iconst_0
            invokevirtual sun.text.BreakDictionary.getNextState:(II)S
            iconst_m1
            if_icmpne 17
        16: .line 396
            aload 7 /* possibleBreakPositions */
            aload 3 /* text */
            invokeinterface java.text.CharacterIterator.getIndex:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.Stack.push:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        17: .line 400
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.text.DictionaryBasedBreakIterator.dictionary:Lsun/text/BreakDictionary;
            iload 9 /* state */
            iload 4 /* c */
            invokevirtual sun.text.BreakDictionary.getNextStateFromCharacter:(II)S
            istore 9 /* state */
        18: .line 406
            iload 9 /* state */
            iconst_m1
            if_icmpne 21
        19: .line 407
            aload 6 /* currentBreakPositions */
            aload 3 /* text */
            invokeinterface java.text.CharacterIterator.getIndex:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.Stack.push:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        20: .line 408
            goto 58
        21: .line 415
      StackMap locals:
      StackMap stack:
            iload 9 /* state */
            ifeq 22
            aload 3 /* text */
            invokeinterface java.text.CharacterIterator.getIndex:()I
            iload 2 /* endPos */
            if_icmplt 56
        22: .line 419
      StackMap locals:
      StackMap stack:
            aload 3 /* text */
            invokeinterface java.text.CharacterIterator.getIndex:()I
            iload 10 /* farthestEndPoint */
            if_icmple 28
        23: .line 420
            aload 3 /* text */
            invokeinterface java.text.CharacterIterator.getIndex:()I
            istore 10 /* farthestEndPoint */
        24: .line 423
            aload 6 /* currentBreakPositions */
            invokevirtual java.util.Stack.clone:()Ljava/lang/Object;
            checkcast java.util.Stack
            astore 12 /* currentBreakPositionsCopy */
        start local 12 // java.util.Stack currentBreakPositionsCopy
        25: .line 425
            aload 12 /* currentBreakPositionsCopy */
            astore 11 /* bestBreakPositions */
        end local 12 // java.util.Stack currentBreakPositionsCopy
        26: .line 441
            goto 28
        27: .line 443
      StackMap locals:
      StackMap stack:
            aload 7 /* possibleBreakPositions */
            invokevirtual java.util.Stack.pop:()Ljava/lang/Object;
            pop
        28: .line 441
      StackMap locals:
      StackMap stack:
            aload 7 /* possibleBreakPositions */
            invokevirtual java.util.Stack.isEmpty:()Z
            ifne 30
        29: .line 442
            aload 8 /* wrongBreakPositions */
            aload 7 /* possibleBreakPositions */
            invokevirtual java.util.Stack.peek:()Ljava/lang/Object;
            invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
            ifne 27
        30: .line 451
      StackMap locals:
      StackMap stack:
            aload 7 /* possibleBreakPositions */
            invokevirtual java.util.Stack.isEmpty:()Z
            ifeq 43
        31: .line 452
            aload 11 /* bestBreakPositions */
            ifnull 36
        32: .line 453
            aload 11 /* bestBreakPositions */
            astore 6 /* currentBreakPositions */
        33: .line 454
            iload 10 /* farthestEndPoint */
            iload 2 /* endPos */
            if_icmpge 58
        34: .line 455
            aload 3 /* text */
            iload 10 /* farthestEndPoint */
            iconst_1
            iadd
            invokeinterface java.text.CharacterIterator.setIndex:(I)C
            pop
        35: .line 460
            goto 53
        36: .line 462
      StackMap locals:
      StackMap stack:
            aload 6 /* currentBreakPositions */
            invokevirtual java.util.Stack.size:()I
            ifeq 38
        37: .line 463
            aload 6 /* currentBreakPositions */
            invokevirtual java.util.Stack.peek:()Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            aload 3 /* text */
            invokeinterface java.text.CharacterIterator.getIndex:()I
            if_icmpeq 40
        38: .line 464
      StackMap locals:
      StackMap stack:
            aload 3 /* text */
            invokeinterface java.text.CharacterIterator.getIndex:()I
            iload 1 /* startPos */
            if_icmpeq 40
        39: .line 465
            aload 6 /* currentBreakPositions */
            aload 3 /* text */
            invokeinterface java.text.CharacterIterator.getIndex:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.Stack.push:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        40: .line 467
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.text.DictionaryBasedBreakIterator.getNext:()I
            pop
        41: .line 468
            aload 6 /* currentBreakPositions */
            aload 3 /* text */
            invokeinterface java.text.CharacterIterator.getIndex:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.Stack.push:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        42: .line 470
            goto 53
        43: .line 478
      StackMap locals:
      StackMap stack:
            aload 7 /* possibleBreakPositions */
            invokevirtual java.util.Stack.pop:()Ljava/lang/Object;
            checkcast java.lang.Integer
            astore 12 /* temp */
        start local 12 // java.lang.Integer temp
        44: .line 479
            aconst_null
            astore 13 /* temp2 */
        start local 13 // java.lang.Integer temp2
        45: .line 480
            goto 48
        46: .line 482
      StackMap locals: java.lang.Integer java.lang.Integer
      StackMap stack:
            aload 6 /* currentBreakPositions */
            invokevirtual java.util.Stack.pop:()Ljava/lang/Object;
            checkcast java.lang.Integer
            astore 13 /* temp2 */
        47: .line 483
            aload 8 /* wrongBreakPositions */
            aload 13 /* temp2 */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        48: .line 480
      StackMap locals:
      StackMap stack:
            aload 6 /* currentBreakPositions */
            invokevirtual java.util.Stack.isEmpty:()Z
            ifne 51
            aload 12 /* temp */
            invokevirtual java.lang.Integer.intValue:()I
        49: .line 481
            aload 6 /* currentBreakPositions */
            invokevirtual java.util.Stack.peek:()Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
        50: .line 480
            if_icmplt 46
        51: .line 485
      StackMap locals:
      StackMap stack:
            aload 6 /* currentBreakPositions */
            aload 12 /* temp */
            invokevirtual java.util.Stack.push:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        52: .line 486
            aload 3 /* text */
            aload 6 /* currentBreakPositions */
            invokevirtual java.util.Stack.peek:()Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            invokeinterface java.text.CharacterIterator.setIndex:(I)C
            pop
        end local 13 // java.lang.Integer temp2
        end local 12 // java.lang.Integer temp
        53: .line 491
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.text.DictionaryBasedBreakIterator.getCurrent:()I
            istore 4 /* c */
        54: .line 492
            aload 3 /* text */
            invokeinterface java.text.CharacterIterator.getIndex:()I
            iload 2 /* endPos */
            if_icmplt 15
        55: .line 493
            goto 58
        56: .line 500
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.text.DictionaryBasedBreakIterator.getNext:()I
            istore 4 /* c */
        57: .line 390
            goto 15
        58: .line 508
      StackMap locals:
      StackMap stack:
            aload 6 /* currentBreakPositions */
            invokevirtual java.util.Stack.isEmpty:()Z
            ifne 60
        59: .line 509
            aload 6 /* currentBreakPositions */
            invokevirtual java.util.Stack.pop:()Ljava/lang/Object;
            pop
        60: .line 511
      StackMap locals:
      StackMap stack:
            aload 6 /* currentBreakPositions */
            iload 2 /* endPos */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.Stack.push:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        61: .line 518
            aload 0 /* this */
            aload 6 /* currentBreakPositions */
            invokevirtual java.util.Stack.size:()I
            iconst_1
            iadd
            newarray 10
            putfield sun.text.DictionaryBasedBreakIterator.cachedBreakPositions:[I
        62: .line 519
            aload 0 /* this */
            getfield sun.text.DictionaryBasedBreakIterator.cachedBreakPositions:[I
            iconst_0
            iload 1 /* startPos */
            iastore
        63: .line 521
            iconst_0
            istore 12 /* i */
        start local 12 // int i
        64: goto 67
        65: .line 522
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield sun.text.DictionaryBasedBreakIterator.cachedBreakPositions:[I
            iload 12 /* i */
            iconst_1
            iadd
            aload 6 /* currentBreakPositions */
            iload 12 /* i */
            invokevirtual java.util.Stack.elementAt:(I)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            iastore
        66: .line 521
            iinc 12 /* i */ 1
      StackMap locals:
      StackMap stack:
        67: iload 12 /* i */
            aload 6 /* currentBreakPositions */
            invokevirtual java.util.Stack.size:()I
            if_icmplt 65
        end local 12 // int i
        68: .line 524
            aload 0 /* this */
            iconst_0
            putfield sun.text.DictionaryBasedBreakIterator.positionInCache:I
        69: .line 525
            return
        end local 11 // java.util.Stack bestBreakPositions
        end local 10 // int farthestEndPoint
        end local 9 // int state
        end local 8 // java.util.List wrongBreakPositions
        end local 7 // java.util.Stack possibleBreakPositions
        end local 6 // java.util.Stack currentBreakPositions
        end local 5 // int category
        end local 4 // int c
        end local 3 // java.text.CharacterIterator text
        end local 2 // int endPos
        end local 1 // int startPos
        end local 0 // sun.text.DictionaryBasedBreakIterator this
      LocalVariableTable:
        Start  End  Slot                       Name  Signature
            0   70     0                       this  Lsun/text/DictionaryBasedBreakIterator;
            0   70     1                   startPos  I
            0   70     2                     endPos  I
            1   70     3                       text  Ljava/text/CharacterIterator;
            3   70     4                          c  I
            4   70     5                   category  I
            9   70     6      currentBreakPositions  Ljava/util/Stack<Ljava/lang/Integer;>;
           10   70     7     possibleBreakPositions  Ljava/util/Stack<Ljava/lang/Integer;>;
           11   70     8        wrongBreakPositions  Ljava/util/List<Ljava/lang/Integer;>;
           12   70     9                      state  I
           13   70    10           farthestEndPoint  I
           14   70    11         bestBreakPositions  Ljava/util/Stack<Ljava/lang/Integer;>;
           25   26    12  currentBreakPositionsCopy  Ljava/util/Stack<Ljava/lang/Integer;>;
           44   53    12                       temp  Ljava/lang/Integer;
           45   53    13                      temp2  Ljava/lang/Integer;
           64   68    12                          i  I
    MethodParameters:
          Name  Flags
      startPos  
      endPos    
}
SourceFile: "DictionaryBasedBreakIterator.java"