public class com.jcraft.jsch.jcraft.Compression implements com.jcraft.jsch.Compression
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.jcraft.jsch.jcraft.Compression
  super_class: java.lang.Object
{
  private static final int BUF_SIZE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 4096

  private final int buffer_margin;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    ConstantValue: 52

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

  private com.jcraft.jzlib.ZStream stream;
    descriptor: Lcom/jcraft/jzlib/ZStream;
    flags: (0x0002) ACC_PRIVATE

  private byte[] tmpbuf;
    descriptor: [B
    flags: (0x0002) ACC_PRIVATE

  private byte[] inflated_buf;
    descriptor: [B
    flags: (0x0002) ACC_PRIVATE

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.jcraft.jsch.jcraft.Compression this
         0: .line 41
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 36
            aload 0 /* this */
            bipush 52
            putfield com.jcraft.jsch.jcraft.Compression.buffer_margin:I
         2: .line 39
            aload 0 /* this */
            sipush 4096
            newarray 8
            putfield com.jcraft.jsch.jcraft.Compression.tmpbuf:[B
         3: .line 42
            aload 0 /* this */
            new com.jcraft.jzlib.ZStream
            dup
            invokespecial com.jcraft.jzlib.ZStream.<init>:()V
            putfield com.jcraft.jsch.jcraft.Compression.stream:Lcom/jcraft/jzlib/ZStream;
         4: .line 43
            return
        end local 0 // com.jcraft.jsch.jcraft.Compression this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/jcraft/jsch/jcraft/Compression;

  public void init(int, int);
    descriptor: (II)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.jcraft.jsch.jcraft.Compression this
        start local 1 // int type
        start local 2 // int level
         0: .line 46
            iload 1 /* type */
            iconst_1
            if_icmpne 4
         1: .line 47
            aload 0 /* this */
            getfield com.jcraft.jsch.jcraft.Compression.stream:Lcom/jcraft/jzlib/ZStream;
            iload 2 /* level */
            invokevirtual com.jcraft.jzlib.ZStream.deflateInit:(I)I
            pop
         2: .line 48
            aload 0 /* this */
            iconst_1
            putfield com.jcraft.jsch.jcraft.Compression.type:I
         3: .line 49
            goto 8
         4: .line 50
      StackMap locals:
      StackMap stack:
            iload 1 /* type */
            ifne 8
         5: .line 51
            aload 0 /* this */
            getfield com.jcraft.jsch.jcraft.Compression.stream:Lcom/jcraft/jzlib/ZStream;
            invokevirtual com.jcraft.jzlib.ZStream.inflateInit:()I
            pop
         6: .line 52
            aload 0 /* this */
            sipush 4096
            newarray 8
            putfield com.jcraft.jsch.jcraft.Compression.inflated_buf:[B
         7: .line 53
            aload 0 /* this */
            iconst_0
            putfield com.jcraft.jsch.jcraft.Compression.type:I
         8: .line 55
      StackMap locals:
      StackMap stack:
            return
        end local 2 // int level
        end local 1 // int type
        end local 0 // com.jcraft.jsch.jcraft.Compression this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    9     0   this  Lcom/jcraft/jsch/jcraft/Compression;
            0    9     1   type  I
            0    9     2  level  I
    MethodParameters:
       Name  Flags
      type   
      level  

  public byte[] compress(byte[], int, int[]);
    descriptor: ([BI[I)[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=9, args_size=4
        start local 0 // com.jcraft.jsch.jcraft.Compression this
        start local 1 // byte[] buf
        start local 2 // int start
        start local 3 // int[] len
         0: .line 60
            aload 0 /* this */
            getfield com.jcraft.jsch.jcraft.Compression.stream:Lcom/jcraft/jzlib/ZStream;
            aload 1 /* buf */
            putfield com.jcraft.jzlib.ZStream.next_in:[B
         1: .line 61
            aload 0 /* this */
            getfield com.jcraft.jsch.jcraft.Compression.stream:Lcom/jcraft/jzlib/ZStream;
            iload 2 /* start */
            putfield com.jcraft.jzlib.ZStream.next_in_index:I
         2: .line 62
            aload 0 /* this */
            getfield com.jcraft.jsch.jcraft.Compression.stream:Lcom/jcraft/jzlib/ZStream;
            aload 3 /* len */
            iconst_0
            iaload
            iload 2 /* start */
            isub
            putfield com.jcraft.jzlib.ZStream.avail_in:I
         3: .line 64
            iload 2 /* start */
            istore 5 /* outputlen */
        start local 5 // int outputlen
         4: .line 65
            aload 1 /* buf */
            astore 6 /* outputbuf */
        start local 6 // byte[] outputbuf
         5: .line 66
            iconst_0
            istore 7 /* tmp */
        start local 7 // int tmp
         6: .line 69
      StackMap locals: com.jcraft.jsch.jcraft.Compression byte[] int int[] top int byte[] int
      StackMap stack:
            aload 0 /* this */
            getfield com.jcraft.jsch.jcraft.Compression.stream:Lcom/jcraft/jzlib/ZStream;
            aload 0 /* this */
            getfield com.jcraft.jsch.jcraft.Compression.tmpbuf:[B
            putfield com.jcraft.jzlib.ZStream.next_out:[B
         7: .line 70
            aload 0 /* this */
            getfield com.jcraft.jsch.jcraft.Compression.stream:Lcom/jcraft/jzlib/ZStream;
            iconst_0
            putfield com.jcraft.jzlib.ZStream.next_out_index:I
         8: .line 71
            aload 0 /* this */
            getfield com.jcraft.jsch.jcraft.Compression.stream:Lcom/jcraft/jzlib/ZStream;
            sipush 4096
            putfield com.jcraft.jzlib.ZStream.avail_out:I
         9: .line 72
            aload 0 /* this */
            getfield com.jcraft.jsch.jcraft.Compression.stream:Lcom/jcraft/jzlib/ZStream;
            iconst_1
            invokevirtual com.jcraft.jzlib.ZStream.deflate:(I)I
            istore 4 /* status */
        start local 4 // int status
        10: .line 73
            iload 4 /* status */
            tableswitch { // 0 - 0
                    0: 11
              default: 19
          }
        11: .line 75
      StackMap locals: com.jcraft.jsch.jcraft.Compression byte[] int int[] int int byte[] int
      StackMap stack:
            sipush 4096
            aload 0 /* this */
            getfield com.jcraft.jsch.jcraft.Compression.stream:Lcom/jcraft/jzlib/ZStream;
            getfield com.jcraft.jzlib.ZStream.avail_out:I
            isub
            istore 7 /* tmp */
        12: .line 76
            aload 6 /* outputbuf */
            arraylength
            iload 5 /* outputlen */
            iload 7 /* tmp */
            iadd
            bipush 52
            iadd
            if_icmpge 16
        13: .line 77
            iload 5 /* outputlen */
            iload 7 /* tmp */
            iadd
            bipush 52
            iadd
            iconst_2
            imul
            newarray 8
            astore 8 /* foo */
        start local 8 // byte[] foo
        14: .line 78
            aload 6 /* outputbuf */
            iconst_0
            aload 8 /* foo */
            iconst_0
            aload 6 /* outputbuf */
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        15: .line 79
            aload 8 /* foo */
            astore 6 /* outputbuf */
        end local 8 // byte[] foo
        16: .line 81
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.jcraft.jsch.jcraft.Compression.tmpbuf:[B
            iconst_0
            aload 6 /* outputbuf */
            iload 5 /* outputlen */
            iload 7 /* tmp */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        17: .line 82
            iload 5 /* outputlen */
            iload 7 /* tmp */
            iadd
            istore 5 /* outputlen */
        18: .line 83
            goto 20
        19: .line 85
      StackMap locals:
      StackMap stack:
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "compress: deflate returnd "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 4 /* status */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        20: .line 88
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.jcraft.jsch.jcraft.Compression.stream:Lcom/jcraft/jzlib/ZStream;
            getfield com.jcraft.jzlib.ZStream.avail_out:I
            ifeq 6
        21: .line 90
            aload 3 /* len */
            iconst_0
            iload 5 /* outputlen */
            iastore
        22: .line 91
            aload 6 /* outputbuf */
            areturn
        end local 7 // int tmp
        end local 6 // byte[] outputbuf
        end local 5 // int outputlen
        end local 4 // int status
        end local 3 // int[] len
        end local 2 // int start
        end local 1 // byte[] buf
        end local 0 // com.jcraft.jsch.jcraft.Compression this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   23     0       this  Lcom/jcraft/jsch/jcraft/Compression;
            0   23     1        buf  [B
            0   23     2      start  I
            0   23     3        len  [I
           10   23     4     status  I
            4   23     5  outputlen  I
            5   23     6  outputbuf  [B
            6   23     7        tmp  I
           14   16     8        foo  [B
    MethodParameters:
       Name  Flags
      buf    
      start  
      len    

  public byte[] uncompress(byte[], int, int[]);
    descriptor: ([BI[I)[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=8, args_size=4
        start local 0 // com.jcraft.jsch.jcraft.Compression this
        start local 1 // byte[] buffer
        start local 2 // int start
        start local 3 // int[] length
         0: .line 95
            iconst_0
            istore 4 /* inflated_end */
        start local 4 // int inflated_end
         1: .line 97
            aload 0 /* this */
            getfield com.jcraft.jsch.jcraft.Compression.stream:Lcom/jcraft/jzlib/ZStream;
            aload 1 /* buffer */
            putfield com.jcraft.jzlib.ZStream.next_in:[B
         2: .line 98
            aload 0 /* this */
            getfield com.jcraft.jsch.jcraft.Compression.stream:Lcom/jcraft/jzlib/ZStream;
            iload 2 /* start */
            putfield com.jcraft.jzlib.ZStream.next_in_index:I
         3: .line 99
            aload 0 /* this */
            getfield com.jcraft.jsch.jcraft.Compression.stream:Lcom/jcraft/jzlib/ZStream;
            aload 3 /* length */
            iconst_0
            iaload
            putfield com.jcraft.jzlib.ZStream.avail_in:I
         4: .line 102
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.jcraft.jsch.jcraft.Compression.stream:Lcom/jcraft/jzlib/ZStream;
            aload 0 /* this */
            getfield com.jcraft.jsch.jcraft.Compression.tmpbuf:[B
            putfield com.jcraft.jzlib.ZStream.next_out:[B
         5: .line 103
            aload 0 /* this */
            getfield com.jcraft.jsch.jcraft.Compression.stream:Lcom/jcraft/jzlib/ZStream;
            iconst_0
            putfield com.jcraft.jzlib.ZStream.next_out_index:I
         6: .line 104
            aload 0 /* this */
            getfield com.jcraft.jsch.jcraft.Compression.stream:Lcom/jcraft/jzlib/ZStream;
            sipush 4096
            putfield com.jcraft.jzlib.ZStream.avail_out:I
         7: .line 105
            aload 0 /* this */
            getfield com.jcraft.jsch.jcraft.Compression.stream:Lcom/jcraft/jzlib/ZStream;
            iconst_1
            invokevirtual com.jcraft.jzlib.ZStream.inflate:(I)I
            istore 5 /* status */
        start local 5 // int status
         8: .line 106
            iload 5 /* status */
            lookupswitch { // 2
                   -5: 23
                    0: 9
              default: 32
          }
         9: .line 108
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.jcraft.jsch.jcraft.Compression.inflated_buf:[B
            arraylength
            iload 4 /* inflated_end */
            sipush 4096
            iadd
            aload 0 /* this */
            getfield com.jcraft.jsch.jcraft.Compression.stream:Lcom/jcraft/jzlib/ZStream;
            getfield com.jcraft.jzlib.ZStream.avail_out:I
            isub
            if_icmpge 16
        10: .line 109
            aload 0 /* this */
            getfield com.jcraft.jsch.jcraft.Compression.inflated_buf:[B
            arraylength
            iconst_2
            imul
            istore 6 /* len */
        start local 6 // int len
        11: .line 110
            iload 6 /* len */
            iload 4 /* inflated_end */
            sipush 4096
            iadd
            aload 0 /* this */
            getfield com.jcraft.jsch.jcraft.Compression.stream:Lcom/jcraft/jzlib/ZStream;
            getfield com.jcraft.jzlib.ZStream.avail_out:I
            isub
            if_icmpge 13
        12: .line 111
            iload 4 /* inflated_end */
            sipush 4096
            iadd
            aload 0 /* this */
            getfield com.jcraft.jsch.jcraft.Compression.stream:Lcom/jcraft/jzlib/ZStream;
            getfield com.jcraft.jzlib.ZStream.avail_out:I
            isub
            istore 6 /* len */
        13: .line 112
      StackMap locals: int
      StackMap stack:
            iload 6 /* len */
            newarray 8
            astore 7 /* foo */
        start local 7 // byte[] foo
        14: .line 113
            aload 0 /* this */
            getfield com.jcraft.jsch.jcraft.Compression.inflated_buf:[B
            iconst_0
            aload 7 /* foo */
            iconst_0
            iload 4 /* inflated_end */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        15: .line 114
            aload 0 /* this */
            aload 7 /* foo */
            putfield com.jcraft.jsch.jcraft.Compression.inflated_buf:[B
        end local 7 // byte[] foo
        end local 6 // int len
        16: .line 116
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.jcraft.jsch.jcraft.Compression.tmpbuf:[B
            iconst_0
        17: .line 117
            aload 0 /* this */
            getfield com.jcraft.jsch.jcraft.Compression.inflated_buf:[B
            iload 4 /* inflated_end */
        18: .line 118
            sipush 4096
            aload 0 /* this */
            getfield com.jcraft.jsch.jcraft.Compression.stream:Lcom/jcraft/jzlib/ZStream;
            getfield com.jcraft.jzlib.ZStream.avail_out:I
            isub
        19: .line 116
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        20: .line 119
            iload 4 /* inflated_end */
            sipush 4096
            aload 0 /* this */
            getfield com.jcraft.jsch.jcraft.Compression.stream:Lcom/jcraft/jzlib/ZStream;
            getfield com.jcraft.jzlib.ZStream.avail_out:I
            isub
            iadd
            istore 4 /* inflated_end */
        21: .line 120
            aload 3 /* length */
            iconst_0
            iload 4 /* inflated_end */
            iastore
        22: .line 121
            goto 4
        23: .line 123
      StackMap locals:
      StackMap stack:
            iload 4 /* inflated_end */
            aload 1 /* buffer */
            arraylength
            iload 2 /* start */
            isub
            if_icmple 29
        24: .line 124
            iload 4 /* inflated_end */
            iload 2 /* start */
            iadd
            newarray 8
            astore 6 /* foo */
        start local 6 // byte[] foo
        25: .line 125
            aload 1 /* buffer */
            iconst_0
            aload 6 /* foo */
            iconst_0
            iload 2 /* start */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        26: .line 126
            aload 0 /* this */
            getfield com.jcraft.jsch.jcraft.Compression.inflated_buf:[B
            iconst_0
            aload 6 /* foo */
            iload 2 /* start */
            iload 4 /* inflated_end */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        27: .line 127
            aload 6 /* foo */
            astore 1 /* buffer */
        end local 6 // byte[] foo
        28: .line 128
            goto 30
        29: .line 130
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.jcraft.jsch.jcraft.Compression.inflated_buf:[B
            iconst_0
            aload 1 /* buffer */
            iload 2 /* start */
            iload 4 /* inflated_end */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        30: .line 132
      StackMap locals:
      StackMap stack:
            aload 3 /* length */
            iconst_0
            iload 4 /* inflated_end */
            iastore
        31: .line 133
            aload 1 /* buffer */
            areturn
        32: .line 135
      StackMap locals:
      StackMap stack:
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "uncompress: inflate returnd "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 5 /* status */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        33: .line 136
            aconst_null
            areturn
        end local 5 // int status
        end local 4 // int inflated_end
        end local 3 // int[] length
        end local 2 // int start
        end local 1 // byte[] buffer
        end local 0 // com.jcraft.jsch.jcraft.Compression this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   34     0          this  Lcom/jcraft/jsch/jcraft/Compression;
            0   34     1        buffer  [B
            0   34     2         start  I
            0   34     3        length  [I
            1   34     4  inflated_end  I
            8   34     5        status  I
           11   16     6           len  I
           14   16     7           foo  [B
           25   28     6           foo  [B
    MethodParameters:
        Name  Flags
      buffer  
      start   
      length  
}
SourceFile: "Compression.java"