public class org.glassfish.grizzly.compression.lzma.impl.rangecoder.BitTreeEncoder
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.glassfish.grizzly.compression.lzma.impl.rangecoder.BitTreeEncoder
  super_class: java.lang.Object
{
  final short[] Models;
    descriptor: [S
    flags: (0x0010) ACC_FINAL

  final int NumBitLevels;
    descriptor: I
    flags: (0x0010) ACC_FINAL

  public void <init>(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.glassfish.grizzly.compression.lzma.impl.rangecoder.BitTreeEncoder this
        start local 1 // int numBitLevels
         0: .line 31
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 32
            aload 0 /* this */
            iload 1 /* numBitLevels */
            putfield org.glassfish.grizzly.compression.lzma.impl.rangecoder.BitTreeEncoder.NumBitLevels:I
         2: .line 33
            aload 0 /* this */
            iconst_1
            iload 1 /* numBitLevels */
            ishl
            newarray 9
            putfield org.glassfish.grizzly.compression.lzma.impl.rangecoder.BitTreeEncoder.Models:[S
         3: .line 34
            return
        end local 1 // int numBitLevels
        end local 0 // org.glassfish.grizzly.compression.lzma.impl.rangecoder.BitTreeEncoder this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    4     0          this  Lorg/glassfish/grizzly/compression/lzma/impl/rangecoder/BitTreeEncoder;
            0    4     1  numBitLevels  I
    MethodParameters:
              Name  Flags
      numBitLevels  

  public void init();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.glassfish.grizzly.compression.lzma.impl.rangecoder.BitTreeEncoder this
         0: .line 37
            aload 0 /* this */
            getfield org.glassfish.grizzly.compression.lzma.impl.rangecoder.BitTreeEncoder.Models:[S
            invokestatic org.glassfish.grizzly.compression.lzma.impl.rangecoder.RangeDecoder.initBitModels:([S)V
         1: .line 38
            return
        end local 0 // org.glassfish.grizzly.compression.lzma.impl.rangecoder.BitTreeEncoder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/glassfish/grizzly/compression/lzma/impl/rangecoder/BitTreeEncoder;

  public void encode(org.glassfish.grizzly.compression.lzma.impl.rangecoder.RangeEncoder, int);
    descriptor: (Lorg/glassfish/grizzly/compression/lzma/impl/rangecoder/RangeEncoder;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // org.glassfish.grizzly.compression.lzma.impl.rangecoder.BitTreeEncoder this
        start local 1 // org.glassfish.grizzly.compression.lzma.impl.rangecoder.RangeEncoder rangeEncoder
        start local 2 // int symbol
         0: .line 41
            iconst_1
            istore 3 /* m */
        start local 3 // int m
         1: .line 42
            aload 0 /* this */
            getfield org.glassfish.grizzly.compression.lzma.impl.rangecoder.BitTreeEncoder.NumBitLevels:I
            istore 4 /* bitIndex */
        start local 4 // int bitIndex
         2: goto 7
         3: .line 43
      StackMap locals: int int
      StackMap stack:
            iinc 4 /* bitIndex */ -1
         4: .line 44
            iload 2 /* symbol */
            iload 4 /* bitIndex */
            iushr
            iconst_1
            iand
            istore 5 /* bit */
        start local 5 // int bit
         5: .line 45
            aload 1 /* rangeEncoder */
            aload 0 /* this */
            getfield org.glassfish.grizzly.compression.lzma.impl.rangecoder.BitTreeEncoder.Models:[S
            iload 3 /* m */
            iload 5 /* bit */
            invokevirtual org.glassfish.grizzly.compression.lzma.impl.rangecoder.RangeEncoder.encode:([SII)V
         6: .line 46
            iload 3 /* m */
            iconst_1
            ishl
            iload 5 /* bit */
            ior
            istore 3 /* m */
        end local 5 // int bit
         7: .line 42
      StackMap locals:
      StackMap stack:
            iload 4 /* bitIndex */
            ifne 3
        end local 4 // int bitIndex
         8: .line 48
            return
        end local 3 // int m
        end local 2 // int symbol
        end local 1 // org.glassfish.grizzly.compression.lzma.impl.rangecoder.RangeEncoder rangeEncoder
        end local 0 // org.glassfish.grizzly.compression.lzma.impl.rangecoder.BitTreeEncoder this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    9     0          this  Lorg/glassfish/grizzly/compression/lzma/impl/rangecoder/BitTreeEncoder;
            0    9     1  rangeEncoder  Lorg/glassfish/grizzly/compression/lzma/impl/rangecoder/RangeEncoder;
            0    9     2        symbol  I
            1    9     3             m  I
            2    8     4      bitIndex  I
            5    7     5           bit  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
              Name  Flags
      rangeEncoder  
      symbol        

  public void reverseEncode(org.glassfish.grizzly.compression.lzma.impl.rangecoder.RangeEncoder, int);
    descriptor: (Lorg/glassfish/grizzly/compression/lzma/impl/rangecoder/RangeEncoder;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // org.glassfish.grizzly.compression.lzma.impl.rangecoder.BitTreeEncoder this
        start local 1 // org.glassfish.grizzly.compression.lzma.impl.rangecoder.RangeEncoder rangeEncoder
        start local 2 // int symbol
         0: .line 51
            iconst_1
            istore 3 /* m */
        start local 3 // int m
         1: .line 52
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         2: goto 8
         3: .line 53
      StackMap locals: int int
      StackMap stack:
            iload 2 /* symbol */
            iconst_1
            iand
            istore 5 /* bit */
        start local 5 // int bit
         4: .line 54
            aload 1 /* rangeEncoder */
            aload 0 /* this */
            getfield org.glassfish.grizzly.compression.lzma.impl.rangecoder.BitTreeEncoder.Models:[S
            iload 3 /* m */
            iload 5 /* bit */
            invokevirtual org.glassfish.grizzly.compression.lzma.impl.rangecoder.RangeEncoder.encode:([SII)V
         5: .line 55
            iload 3 /* m */
            iconst_1
            ishl
            iload 5 /* bit */
            ior
            istore 3 /* m */
         6: .line 56
            iload 2 /* symbol */
            iconst_1
            ishr
            istore 2 /* symbol */
        end local 5 // int bit
         7: .line 52
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 4 /* i */
            aload 0 /* this */
            getfield org.glassfish.grizzly.compression.lzma.impl.rangecoder.BitTreeEncoder.NumBitLevels:I
            if_icmplt 3
        end local 4 // int i
         9: .line 58
            return
        end local 3 // int m
        end local 2 // int symbol
        end local 1 // org.glassfish.grizzly.compression.lzma.impl.rangecoder.RangeEncoder rangeEncoder
        end local 0 // org.glassfish.grizzly.compression.lzma.impl.rangecoder.BitTreeEncoder this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   10     0          this  Lorg/glassfish/grizzly/compression/lzma/impl/rangecoder/BitTreeEncoder;
            0   10     1  rangeEncoder  Lorg/glassfish/grizzly/compression/lzma/impl/rangecoder/RangeEncoder;
            0   10     2        symbol  I
            1   10     3             m  I
            2    9     4             i  I
            4    7     5           bit  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
              Name  Flags
      rangeEncoder  
      symbol        

  public int getPrice(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // org.glassfish.grizzly.compression.lzma.impl.rangecoder.BitTreeEncoder this
        start local 1 // int symbol
         0: .line 61
            iconst_0
            istore 2 /* price */
        start local 2 // int price
         1: .line 62
            iconst_1
            istore 3 /* m */
        start local 3 // int m
         2: .line 63
            aload 0 /* this */
            getfield org.glassfish.grizzly.compression.lzma.impl.rangecoder.BitTreeEncoder.NumBitLevels:I
            istore 4 /* bitIndex */
        start local 4 // int bitIndex
         3: goto 8
         4: .line 64
      StackMap locals: int int int
      StackMap stack:
            iinc 4 /* bitIndex */ -1
         5: .line 65
            iload 1 /* symbol */
            iload 4 /* bitIndex */
            iushr
            iconst_1
            iand
            istore 5 /* bit */
        start local 5 // int bit
         6: .line 66
            iload 2 /* price */
            aload 0 /* this */
            getfield org.glassfish.grizzly.compression.lzma.impl.rangecoder.BitTreeEncoder.Models:[S
            iload 3 /* m */
            saload
            iload 5 /* bit */
            invokestatic org.glassfish.grizzly.compression.lzma.impl.rangecoder.RangeEncoder.getPrice:(II)I
            iadd
            istore 2 /* price */
         7: .line 67
            iload 3 /* m */
            iconst_1
            ishl
            iload 5 /* bit */
            iadd
            istore 3 /* m */
        end local 5 // int bit
         8: .line 63
      StackMap locals:
      StackMap stack:
            iload 4 /* bitIndex */
            ifne 4
        end local 4 // int bitIndex
         9: .line 69
            iload 2 /* price */
            ireturn
        end local 3 // int m
        end local 2 // int price
        end local 1 // int symbol
        end local 0 // org.glassfish.grizzly.compression.lzma.impl.rangecoder.BitTreeEncoder this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   10     0      this  Lorg/glassfish/grizzly/compression/lzma/impl/rangecoder/BitTreeEncoder;
            0   10     1    symbol  I
            1   10     2     price  I
            2   10     3         m  I
            3    9     4  bitIndex  I
            6    8     5       bit  I
    MethodParameters:
        Name  Flags
      symbol  

  public int reverseGetPrice(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // org.glassfish.grizzly.compression.lzma.impl.rangecoder.BitTreeEncoder this
        start local 1 // int symbol
         0: .line 73
            iconst_0
            istore 2 /* price */
        start local 2 // int price
         1: .line 74
            iconst_1
            istore 3 /* m */
        start local 3 // int m
         2: .line 75
            aload 0 /* this */
            getfield org.glassfish.grizzly.compression.lzma.impl.rangecoder.BitTreeEncoder.NumBitLevels:I
            istore 4 /* i */
        start local 4 // int i
         3: goto 9
         4: .line 76
      StackMap locals: int int int
      StackMap stack:
            iload 1 /* symbol */
            iconst_1
            iand
            istore 5 /* bit */
        start local 5 // int bit
         5: .line 77
            iload 1 /* symbol */
            iconst_1
            iushr
            istore 1 /* symbol */
         6: .line 78
            iload 2 /* price */
            aload 0 /* this */
            getfield org.glassfish.grizzly.compression.lzma.impl.rangecoder.BitTreeEncoder.Models:[S
            iload 3 /* m */
            saload
            iload 5 /* bit */
            invokestatic org.glassfish.grizzly.compression.lzma.impl.rangecoder.RangeEncoder.getPrice:(II)I
            iadd
            istore 2 /* price */
         7: .line 79
            iload 3 /* m */
            iconst_1
            ishl
            iload 5 /* bit */
            ior
            istore 3 /* m */
        end local 5 // int bit
         8: .line 75
            iinc 4 /* i */ -1
      StackMap locals:
      StackMap stack:
         9: iload 4 /* i */
            ifne 4
        end local 4 // int i
        10: .line 81
            iload 2 /* price */
            ireturn
        end local 3 // int m
        end local 2 // int price
        end local 1 // int symbol
        end local 0 // org.glassfish.grizzly.compression.lzma.impl.rangecoder.BitTreeEncoder this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   11     0    this  Lorg/glassfish/grizzly/compression/lzma/impl/rangecoder/BitTreeEncoder;
            0   11     1  symbol  I
            1   11     2   price  I
            2   11     3       m  I
            3   10     4       i  I
            5    8     5     bit  I
    MethodParameters:
        Name  Flags
      symbol  

  public static int reverseGetPrice(short[], int, int, int);
    descriptor: ([SIII)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=8, args_size=4
        start local 0 // short[] Models
        start local 1 // int startIndex
        start local 2 // int NumBitLevels
        start local 3 // int symbol
         0: .line 85
            iconst_0
            istore 4 /* price */
        start local 4 // int price
         1: .line 86
            iconst_1
            istore 5 /* m */
        start local 5 // int m
         2: .line 87
            iload 2 /* NumBitLevels */
            istore 6 /* i */
        start local 6 // int i
         3: goto 9
         4: .line 88
      StackMap locals: int int int
      StackMap stack:
            iload 3 /* symbol */
            iconst_1
            iand
            istore 7 /* bit */
        start local 7 // int bit
         5: .line 89
            iload 3 /* symbol */
            iconst_1
            iushr
            istore 3 /* symbol */
         6: .line 90
            iload 4 /* price */
            aload 0 /* Models */
            iload 1 /* startIndex */
            iload 5 /* m */
            iadd
            saload
            iload 7 /* bit */
            invokestatic org.glassfish.grizzly.compression.lzma.impl.rangecoder.RangeEncoder.getPrice:(II)I
            iadd
            istore 4 /* price */
         7: .line 91
            iload 5 /* m */
            iconst_1
            ishl
            iload 7 /* bit */
            ior
            istore 5 /* m */
        end local 7 // int bit
         8: .line 87
            iinc 6 /* i */ -1
      StackMap locals:
      StackMap stack:
         9: iload 6 /* i */
            ifne 4
        end local 6 // int i
        10: .line 93
            iload 4 /* price */
            ireturn
        end local 5 // int m
        end local 4 // int price
        end local 3 // int symbol
        end local 2 // int NumBitLevels
        end local 1 // int startIndex
        end local 0 // short[] Models
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   11     0        Models  [S
            0   11     1    startIndex  I
            0   11     2  NumBitLevels  I
            0   11     3        symbol  I
            1   11     4         price  I
            2   11     5             m  I
            3   10     6             i  I
            5    8     7           bit  I
    MethodParameters:
              Name  Flags
      Models        
      startIndex    
      NumBitLevels  
      symbol        

  public static void reverseEncode(short[], int, org.glassfish.grizzly.compression.lzma.impl.rangecoder.RangeEncoder, int, int);
    descriptor: ([SILorg/glassfish/grizzly/compression/lzma/impl/rangecoder/RangeEncoder;II)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=8, args_size=5
        start local 0 // short[] Models
        start local 1 // int startIndex
        start local 2 // org.glassfish.grizzly.compression.lzma.impl.rangecoder.RangeEncoder rangeEncoder
        start local 3 // int NumBitLevels
        start local 4 // int symbol
         0: .line 97
            iconst_1
            istore 5 /* m */
        start local 5 // int m
         1: .line 98
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         2: goto 8
         3: .line 99
      StackMap locals: int int
      StackMap stack:
            iload 4 /* symbol */
            iconst_1
            iand
            istore 7 /* bit */
        start local 7 // int bit
         4: .line 100
            aload 2 /* rangeEncoder */
            aload 0 /* Models */
            iload 1 /* startIndex */
            iload 5 /* m */
            iadd
            iload 7 /* bit */
            invokevirtual org.glassfish.grizzly.compression.lzma.impl.rangecoder.RangeEncoder.encode:([SII)V
         5: .line 101
            iload 5 /* m */
            iconst_1
            ishl
            iload 7 /* bit */
            ior
            istore 5 /* m */
         6: .line 102
            iload 4 /* symbol */
            iconst_1
            ishr
            istore 4 /* symbol */
        end local 7 // int bit
         7: .line 98
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 6 /* i */
            iload 3 /* NumBitLevels */
            if_icmplt 3
        end local 6 // int i
         9: .line 104
            return
        end local 5 // int m
        end local 4 // int symbol
        end local 3 // int NumBitLevels
        end local 2 // org.glassfish.grizzly.compression.lzma.impl.rangecoder.RangeEncoder rangeEncoder
        end local 1 // int startIndex
        end local 0 // short[] Models
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   10     0        Models  [S
            0   10     1    startIndex  I
            0   10     2  rangeEncoder  Lorg/glassfish/grizzly/compression/lzma/impl/rangecoder/RangeEncoder;
            0   10     3  NumBitLevels  I
            0   10     4        symbol  I
            1   10     5             m  I
            2    9     6             i  I
            4    7     7           bit  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
              Name  Flags
      Models        
      startIndex    
      rangeEncoder  
      NumBitLevels  
      symbol        
}
SourceFile: "BitTreeEncoder.java"