class com.jcraft.jsch.ChannelX11 extends com.jcraft.jsch.Channel
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: com.jcraft.jsch.ChannelX11
  super_class: com.jcraft.jsch.Channel
{
  private static final int LOCAL_WINDOW_SIZE_MAX;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 131072

  private static final int LOCAL_MAXIMUM_PACKET_SIZE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 16384

  private static final int TIMEOUT;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 10000

  private static java.lang.String host;
    descriptor: Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static int port;
    descriptor: I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private boolean init;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  static byte[] cookie;
    descriptor: [B
    flags: (0x0008) ACC_STATIC

  private static byte[] cookie_hex;
    descriptor: [B
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static java.util.Hashtable faked_cookie_pool;
    descriptor: Ljava/util/Hashtable;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static java.util.Hashtable faked_cookie_hex_pool;
    descriptor: Ljava/util/Hashtable;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static byte[] table;
    descriptor: [B
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private java.net.Socket socket;
    descriptor: Ljava/net/Socket;
    flags: (0x0002) ACC_PRIVATE

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 41
            ldc "127.0.0.1"
            putstatic com.jcraft.jsch.ChannelX11.host:Ljava/lang/String;
         1: .line 42
            sipush 6000
            putstatic com.jcraft.jsch.ChannelX11.port:I
         2: .line 46
            aconst_null
            putstatic com.jcraft.jsch.ChannelX11.cookie:[B
         3: .line 47
            aconst_null
            putstatic com.jcraft.jsch.ChannelX11.cookie_hex:[B
         4: .line 49
            new java.util.Hashtable
            dup
            invokespecial java.util.Hashtable.<init>:()V
            putstatic com.jcraft.jsch.ChannelX11.faked_cookie_pool:Ljava/util/Hashtable;
         5: .line 50
            new java.util.Hashtable
            dup
            invokespecial java.util.Hashtable.<init>:()V
            putstatic com.jcraft.jsch.ChannelX11.faked_cookie_hex_pool:Ljava/util/Hashtable;
         6: .line 52
            bipush 16
            newarray 8
            dup
            iconst_0
            bipush 48
            bastore
            dup
            iconst_1
            bipush 49
            bastore
            dup
            iconst_2
            bipush 50
            bastore
            dup
            iconst_3
            bipush 51
            bastore
            dup
            iconst_4
            bipush 52
            bastore
            dup
            iconst_5
            bipush 53
            bastore
            dup
            bipush 6
            bipush 54
            bastore
            dup
            bipush 7
            bipush 55
            bastore
            dup
            bipush 8
            bipush 56
            bastore
            dup
            bipush 9
            bipush 57
            bastore
            dup
            bipush 10
         7: .line 53
            bipush 97
            bastore
            dup
            bipush 11
            bipush 98
            bastore
            dup
            bipush 12
            bipush 99
            bastore
            dup
            bipush 13
            bipush 100
            bastore
            dup
            bipush 14
            bipush 101
            bastore
            dup
            bipush 15
            bipush 102
            bastore
         8: .line 52
            putstatic com.jcraft.jsch.ChannelX11.table:[B
         9: .line 53
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  static int revtable(byte);
    descriptor: (B)I
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // byte foo
         0: .line 58
            iconst_0
            istore 1 /* i */
        start local 1 // int i
         1: goto 4
         2: .line 59
      StackMap locals: int
      StackMap stack:
            getstatic com.jcraft.jsch.ChannelX11.table:[B
            iload 1 /* i */
            baload
            iload 0 /* foo */
            if_icmpne 3
            iload 1 /* i */
            ireturn
         3: .line 58
      StackMap locals:
      StackMap stack:
            iinc 1 /* i */ 1
      StackMap locals:
      StackMap stack:
         4: iload 1 /* i */
            getstatic com.jcraft.jsch.ChannelX11.table:[B
            arraylength
            if_icmplt 2
        end local 1 // int i
         5: .line 61
            iconst_0
            ireturn
        end local 0 // byte foo
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0   foo  B
            1    5     1     i  I
    MethodParameters:
      Name  Flags
      foo   

  static void setCookie(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=2, args_size=1
        start local 0 // java.lang.String foo
         0: .line 64
            aload 0 /* foo */
            invokestatic com.jcraft.jsch.Util.str2byte:(Ljava/lang/String;)[B
            putstatic com.jcraft.jsch.ChannelX11.cookie_hex:[B
         1: .line 65
            bipush 16
            newarray 8
            putstatic com.jcraft.jsch.ChannelX11.cookie:[B
         2: .line 66
            iconst_0
            istore 1 /* i */
        start local 1 // int i
         3: goto 8
         4: .line 67
      StackMap locals: int
      StackMap stack:
            getstatic com.jcraft.jsch.ChannelX11.cookie:[B
            iload 1 /* i */
            getstatic com.jcraft.jsch.ChannelX11.cookie_hex:[B
            iload 1 /* i */
            iconst_2
            imul
            baload
            invokestatic com.jcraft.jsch.ChannelX11.revtable:(B)I
            iconst_4
            ishl
            sipush 240
            iand
         5: .line 68
            getstatic com.jcraft.jsch.ChannelX11.cookie_hex:[B
            iload 1 /* i */
            iconst_2
            imul
            iconst_1
            iadd
            baload
            invokestatic com.jcraft.jsch.ChannelX11.revtable:(B)I
            bipush 15
            iand
            ior
            i2b
         6: .line 67
            bastore
         7: .line 66
            iinc 1 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 1 /* i */
            bipush 16
            if_icmplt 4
        end local 1 // int i
         9: .line 70
            return
        end local 0 // java.lang.String foo
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0   foo  Ljava/lang/String;
            3    9     1     i  I
    MethodParameters:
      Name  Flags
      foo   

  static void setHost(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.String foo
         0: .line 71
            aload 0 /* foo */
            putstatic com.jcraft.jsch.ChannelX11.host:Ljava/lang/String;
            return
        end local 0 // java.lang.String foo
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   foo  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      foo   

  static void setPort(int);
    descriptor: (I)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // int foo
         0: .line 72
            iload 0 /* foo */
            putstatic com.jcraft.jsch.ChannelX11.port:I
            return
        end local 0 // int foo
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   foo  I
    MethodParameters:
      Name  Flags
      foo   

  static byte[] getFakedCookie(com.jcraft.jsch.Session);
    descriptor: (Lcom/jcraft/jsch/Session;)[B
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=6, args_size=1
        start local 0 // com.jcraft.jsch.Session session
         0: .line 74
            getstatic com.jcraft.jsch.ChannelX11.faked_cookie_hex_pool:Ljava/util/Hashtable;
            dup
            astore 1
            monitorenter
         1: .line 75
            getstatic com.jcraft.jsch.ChannelX11.faked_cookie_hex_pool:Ljava/util/Hashtable;
            aload 0 /* session */
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast byte[]
            astore 2 /* foo */
        start local 2 // byte[] foo
         2: .line 76
            aload 2 /* foo */
            ifnonnull 21
         3: .line 77
            getstatic com.jcraft.jsch.Session.random:Lcom/jcraft/jsch/Random;
            astore 3 /* random */
        start local 3 // com.jcraft.jsch.Random random
         4: .line 78
            bipush 16
            newarray 8
            astore 2 /* foo */
         5: .line 79
            aload 3 /* random */
            dup
            astore 4
            monitorenter
         6: .line 80
            aload 3 /* random */
            aload 2 /* foo */
            iconst_0
            bipush 16
            invokeinterface com.jcraft.jsch.Random.fill:([BII)V
         7: .line 79
            aload 4
            monitorexit
         8: goto 11
      StackMap locals: com.jcraft.jsch.Session java.util.Hashtable byte[] com.jcraft.jsch.Random com.jcraft.jsch.Random
      StackMap stack: java.lang.Throwable
         9: aload 4
            monitorexit
        10: athrow
        11: .line 89
      StackMap locals:
      StackMap stack:
            getstatic com.jcraft.jsch.ChannelX11.faked_cookie_pool:Ljava/util/Hashtable;
            aload 0 /* session */
            aload 2 /* foo */
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        12: .line 90
            bipush 32
            newarray 8
            astore 4 /* bar */
        start local 4 // byte[] bar
        13: .line 91
            iconst_0
            istore 5 /* i */
        start local 5 // int i
        14: goto 18
        15: .line 92
      StackMap locals: byte[] int
      StackMap stack:
            aload 4 /* bar */
            iconst_2
            iload 5 /* i */
            imul
            getstatic com.jcraft.jsch.ChannelX11.table:[B
            aload 2 /* foo */
            iload 5 /* i */
            baload
            iconst_4
            iushr
            bipush 15
            iand
            baload
            bastore
        16: .line 93
            aload 4 /* bar */
            iconst_2
            iload 5 /* i */
            imul
            iconst_1
            iadd
            getstatic com.jcraft.jsch.ChannelX11.table:[B
            aload 2 /* foo */
            iload 5 /* i */
            baload
            bipush 15
            iand
            baload
            bastore
        17: .line 91
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        18: iload 5 /* i */
            bipush 16
            if_icmplt 15
        end local 5 // int i
        19: .line 95
            getstatic com.jcraft.jsch.ChannelX11.faked_cookie_hex_pool:Ljava/util/Hashtable;
            aload 0 /* session */
            aload 4 /* bar */
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        20: .line 96
            aload 4 /* bar */
            astore 2 /* foo */
        end local 4 // byte[] bar
        end local 3 // com.jcraft.jsch.Random random
        21: .line 98
      StackMap locals:
      StackMap stack:
            aload 2 /* foo */
            aload 1
            monitorexit
        22: areturn
        end local 2 // byte[] foo
        23: .line 74
      StackMap locals: com.jcraft.jsch.Session java.util.Hashtable
      StackMap stack: java.lang.Throwable
            aload 1
            monitorexit
        24: athrow
        end local 0 // com.jcraft.jsch.Session session
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   25     0  session  Lcom/jcraft/jsch/Session;
            2   23     2      foo  [B
            4   21     3   random  Lcom/jcraft/jsch/Random;
           13   21     4      bar  [B
           14   19     5        i  I
      Exception table:
        from    to  target  type
           6     8       9  any
           9    10       9  any
           1    22      23  any
          23    24      23  any
    MethodParameters:
         Name  Flags
      session  

  static void removeFakedCookie(com.jcraft.jsch.Session);
    descriptor: (Lcom/jcraft/jsch/Session;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.jcraft.jsch.Session session
         0: .line 103
            getstatic com.jcraft.jsch.ChannelX11.faked_cookie_hex_pool:Ljava/util/Hashtable;
            dup
            astore 1
            monitorenter
         1: .line 104
            getstatic com.jcraft.jsch.ChannelX11.faked_cookie_hex_pool:Ljava/util/Hashtable;
            aload 0 /* session */
            invokevirtual java.util.Hashtable.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 105
            getstatic com.jcraft.jsch.ChannelX11.faked_cookie_pool:Ljava/util/Hashtable;
            aload 0 /* session */
            invokevirtual java.util.Hashtable.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 103
            aload 1
            monitorexit
         4: goto 7
      StackMap locals: com.jcraft.jsch.Session java.util.Hashtable
      StackMap stack: java.lang.Throwable
         5: aload 1
            monitorexit
         6: athrow
         7: .line 107
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.jcraft.jsch.Session session
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0  session  Lcom/jcraft/jsch/Session;
      Exception table:
        from    to  target  type
           1     4       5  any
           5     6       5  any
    MethodParameters:
         Name  Flags
      session  

  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.jcraft.jsch.ChannelX11 this
         0: .line 110
            aload 0 /* this */
            invokespecial com.jcraft.jsch.Channel.<init>:()V
         1: .line 44
            aload 0 /* this */
            iconst_1
            putfield com.jcraft.jsch.ChannelX11.init:Z
         2: .line 55
            aload 0 /* this */
            aconst_null
            putfield com.jcraft.jsch.ChannelX11.socket:Ljava/net/Socket;
         3: .line 180
            aload 0 /* this */
            iconst_0
            newarray 8
            putfield com.jcraft.jsch.ChannelX11.cache:[B
         4: .line 112
            aload 0 /* this */
            ldc 131072
            invokevirtual com.jcraft.jsch.ChannelX11.setLocalWindowSizeMax:(I)V
         5: .line 113
            aload 0 /* this */
            ldc 131072
            invokevirtual com.jcraft.jsch.ChannelX11.setLocalWindowSize:(I)V
         6: .line 114
            aload 0 /* this */
            sipush 16384
            invokevirtual com.jcraft.jsch.ChannelX11.setLocalPacketSize:(I)V
         7: .line 116
            aload 0 /* this */
            ldc "x11"
            invokestatic com.jcraft.jsch.Util.str2byte:(Ljava/lang/String;)[B
            putfield com.jcraft.jsch.ChannelX11.type:[B
         8: .line 118
            aload 0 /* this */
            iconst_1
            putfield com.jcraft.jsch.ChannelX11.connected:Z
         9: .line 131
            return
        end local 0 // com.jcraft.jsch.ChannelX11 this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Lcom/jcraft/jsch/ChannelX11;

  public void run();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=1
        start local 0 // com.jcraft.jsch.ChannelX11 this
         0: .line 136
            aload 0 /* this */
            getstatic com.jcraft.jsch.ChannelX11.host:Ljava/lang/String;
            getstatic com.jcraft.jsch.ChannelX11.port:I
            sipush 10000
            invokestatic com.jcraft.jsch.Util.createSocket:(Ljava/lang/String;II)Ljava/net/Socket;
            putfield com.jcraft.jsch.ChannelX11.socket:Ljava/net/Socket;
         1: .line 137
            aload 0 /* this */
            getfield com.jcraft.jsch.ChannelX11.socket:Ljava/net/Socket;
            iconst_1
            invokevirtual java.net.Socket.setTcpNoDelay:(Z)V
         2: .line 138
            aload 0 /* this */
            new com.jcraft.jsch.IO
            dup
            invokespecial com.jcraft.jsch.IO.<init>:()V
            putfield com.jcraft.jsch.ChannelX11.io:Lcom/jcraft/jsch/IO;
         3: .line 139
            aload 0 /* this */
            getfield com.jcraft.jsch.ChannelX11.io:Lcom/jcraft/jsch/IO;
            aload 0 /* this */
            getfield com.jcraft.jsch.ChannelX11.socket:Ljava/net/Socket;
            invokevirtual java.net.Socket.getInputStream:()Ljava/io/InputStream;
            invokevirtual com.jcraft.jsch.IO.setInputStream:(Ljava/io/InputStream;)V
         4: .line 140
            aload 0 /* this */
            getfield com.jcraft.jsch.ChannelX11.io:Lcom/jcraft/jsch/IO;
            aload 0 /* this */
            getfield com.jcraft.jsch.ChannelX11.socket:Ljava/net/Socket;
            invokevirtual java.net.Socket.getOutputStream:()Ljava/io/OutputStream;
            invokevirtual com.jcraft.jsch.IO.setOutputStream:(Ljava/io/OutputStream;)V
         5: .line 141
            aload 0 /* this */
            invokevirtual com.jcraft.jsch.ChannelX11.sendOpenConfirmation:()V
         6: .line 142
            goto 12
         7: .line 143
      StackMap locals:
      StackMap stack: java.lang.Exception
            pop
         8: .line 144
            aload 0 /* this */
            iconst_1
            invokevirtual com.jcraft.jsch.ChannelX11.sendOpenFailure:(I)V
         9: .line 145
            aload 0 /* this */
            iconst_1
            putfield com.jcraft.jsch.ChannelX11.close:Z
        10: .line 146
            aload 0 /* this */
            invokevirtual com.jcraft.jsch.ChannelX11.disconnect:()V
        11: .line 147
            return
        12: .line 150
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            putfield com.jcraft.jsch.ChannelX11.thread:Ljava/lang/Thread;
        13: .line 151
            new com.jcraft.jsch.Buffer
            dup
            aload 0 /* this */
            getfield com.jcraft.jsch.ChannelX11.rmpsize:I
            invokespecial com.jcraft.jsch.Buffer.<init>:(I)V
            astore 1 /* buf */
        start local 1 // com.jcraft.jsch.Buffer buf
        14: .line 152
            new com.jcraft.jsch.Packet
            dup
            aload 1 /* buf */
            invokespecial com.jcraft.jsch.Packet.<init>:(Lcom/jcraft/jsch/Buffer;)V
            astore 2 /* packet */
        start local 2 // com.jcraft.jsch.Packet packet
        15: .line 153
            iconst_0
            istore 3 /* i */
        start local 3 // int i
        16: .line 155
            goto 31
        17: .line 158
      StackMap locals: com.jcraft.jsch.Buffer com.jcraft.jsch.Packet int
      StackMap stack:
            aload 0 /* this */
            getfield com.jcraft.jsch.ChannelX11.io:Lcom/jcraft/jsch/IO;
            getfield com.jcraft.jsch.IO.in:Ljava/io/InputStream;
            aload 1 /* buf */
            getfield com.jcraft.jsch.Buffer.buffer:[B
        18: .line 159
            bipush 14
        19: .line 160
            aload 1 /* buf */
            getfield com.jcraft.jsch.Buffer.buffer:[B
            arraylength
            bipush 14
            isub
            sipush 128
            isub
        20: .line 158
            invokevirtual java.io.InputStream.read:([BII)I
            istore 3 /* i */
        21: .line 161
            iload 3 /* i */
            ifgt 24
        22: .line 162
            aload 0 /* this */
            invokevirtual com.jcraft.jsch.ChannelX11.eof:()V
        23: .line 163
            goto 36
        24: .line 165
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.jcraft.jsch.ChannelX11.close:Z
            ifeq 25
            goto 36
        25: .line 166
      StackMap locals:
      StackMap stack:
            aload 2 /* packet */
            invokevirtual com.jcraft.jsch.Packet.reset:()V
        26: .line 167
            aload 1 /* buf */
            bipush 94
            invokevirtual com.jcraft.jsch.Buffer.putByte:(B)V
        27: .line 168
            aload 1 /* buf */
            aload 0 /* this */
            getfield com.jcraft.jsch.ChannelX11.recipient:I
            invokevirtual com.jcraft.jsch.Buffer.putInt:(I)V
        28: .line 169
            aload 1 /* buf */
            iload 3 /* i */
            invokevirtual com.jcraft.jsch.Buffer.putInt:(I)V
        29: .line 170
            aload 1 /* buf */
            iload 3 /* i */
            invokevirtual com.jcraft.jsch.Buffer.skip:(I)V
        30: .line 171
            aload 0 /* this */
            invokevirtual com.jcraft.jsch.ChannelX11.getSession:()Lcom/jcraft/jsch/Session;
            aload 2 /* packet */
            aload 0 /* this */
            iload 3 /* i */
            invokevirtual com.jcraft.jsch.Session.write:(Lcom/jcraft/jsch/Packet;Lcom/jcraft/jsch/Channel;I)V
        31: .line 155
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.jcraft.jsch.ChannelX11.thread:Ljava/lang/Thread;
            ifnull 36
        32: .line 156
            aload 0 /* this */
            getfield com.jcraft.jsch.ChannelX11.io:Lcom/jcraft/jsch/IO;
            ifnull 36
        33: .line 157
            aload 0 /* this */
            getfield com.jcraft.jsch.ChannelX11.io:Lcom/jcraft/jsch/IO;
            getfield com.jcraft.jsch.IO.in:Ljava/io/InputStream;
            ifnonnull 17
        34: .line 173
            goto 36
        35: .line 174
      StackMap locals:
      StackMap stack: java.lang.Exception
            pop
        36: .line 177
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.jcraft.jsch.ChannelX11.disconnect:()V
        37: .line 178
            return
        end local 3 // int i
        end local 2 // com.jcraft.jsch.Packet packet
        end local 1 // com.jcraft.jsch.Buffer buf
        end local 0 // com.jcraft.jsch.ChannelX11 this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   38     0    this  Lcom/jcraft/jsch/ChannelX11;
           14   38     1     buf  Lcom/jcraft/jsch/Buffer;
           15   38     2  packet  Lcom/jcraft/jsch/Packet;
           16   38     3       i  I
      Exception table:
        from    to  target  type
           0     6       7  Class java.lang.Exception
          16    34      35  Class java.lang.Exception

  private byte[] addCache(byte[], int, int);
    descriptor: ([BII)[B
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // com.jcraft.jsch.ChannelX11 this
        start local 1 // byte[] foo
        start local 2 // int s
        start local 3 // int l
         0: .line 182
            aload 0 /* this */
            getfield com.jcraft.jsch.ChannelX11.cache:[B
            arraylength
            iload 3 /* l */
            iadd
            newarray 8
            astore 4 /* bar */
        start local 4 // byte[] bar
         1: .line 183
            aload 1 /* foo */
            iload 2 /* s */
            aload 4 /* bar */
            aload 0 /* this */
            getfield com.jcraft.jsch.ChannelX11.cache:[B
            arraylength
            iload 3 /* l */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         2: .line 184
            aload 0 /* this */
            getfield com.jcraft.jsch.ChannelX11.cache:[B
            arraylength
            ifle 4
         3: .line 185
            aload 0 /* this */
            getfield com.jcraft.jsch.ChannelX11.cache:[B
            iconst_0
            aload 4 /* bar */
            iconst_0
            aload 0 /* this */
            getfield com.jcraft.jsch.ChannelX11.cache:[B
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         4: .line 186
      StackMap locals: byte[]
      StackMap stack:
            aload 0 /* this */
            aload 4 /* bar */
            putfield com.jcraft.jsch.ChannelX11.cache:[B
         5: .line 187
            aload 0 /* this */
            getfield com.jcraft.jsch.ChannelX11.cache:[B
            areturn
        end local 4 // byte[] bar
        end local 3 // int l
        end local 2 // int s
        end local 1 // byte[] foo
        end local 0 // com.jcraft.jsch.ChannelX11 this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lcom/jcraft/jsch/ChannelX11;
            0    6     1   foo  [B
            0    6     2     s  I
            0    6     3     l  I
            1    6     4   bar  [B
    MethodParameters:
      Name  Flags
      foo   
      s     
      l     

  void write(byte[], int, int);
    descriptor: ([BII)V
    flags: (0x0000) 
    Code:
      stack=6, locals=10, args_size=4
        start local 0 // com.jcraft.jsch.ChannelX11 this
        start local 1 // byte[] foo
        start local 2 // int s
        start local 3 // int l
         0: .line 193
            aload 0 /* this */
            getfield com.jcraft.jsch.ChannelX11.init:Z
            ifeq 40
         1: .line 195
            aconst_null
            astore 4 /* _session */
        start local 4 // com.jcraft.jsch.Session _session
         2: .line 197
            aload 0 /* this */
            invokevirtual com.jcraft.jsch.ChannelX11.getSession:()Lcom/jcraft/jsch/Session;
            astore 4 /* _session */
         3: .line 198
            goto 6
         4: .line 199
      StackMap locals: com.jcraft.jsch.ChannelX11 byte[] int int com.jcraft.jsch.Session
      StackMap stack: com.jcraft.jsch.JSchException
            astore 5 /* e */
        start local 5 // com.jcraft.jsch.JSchException e
         5: .line 200
            new java.io.IOException
            dup
            aload 5 /* e */
            invokevirtual com.jcraft.jsch.JSchException.toString:()Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        end local 5 // com.jcraft.jsch.JSchException e
         6: .line 203
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* foo */
            iload 2 /* s */
            iload 3 /* l */
            invokevirtual com.jcraft.jsch.ChannelX11.addCache:([BII)[B
            astore 1 /* foo */
         7: .line 204
            iconst_0
            istore 2 /* s */
         8: .line 205
            aload 1 /* foo */
            arraylength
            istore 3 /* l */
         9: .line 207
            iload 3 /* l */
            bipush 9
            if_icmpge 11
        10: .line 208
            return
        11: .line 210
      StackMap locals:
      StackMap stack:
            aload 1 /* foo */
            iload 2 /* s */
            bipush 6
            iadd
            baload
            sipush 255
            iand
            sipush 256
            imul
            aload 1 /* foo */
            iload 2 /* s */
            bipush 7
            iadd
            baload
            sipush 255
            iand
            iadd
            istore 5 /* plen */
        start local 5 // int plen
        12: .line 211
            aload 1 /* foo */
            iload 2 /* s */
            bipush 8
            iadd
            baload
            sipush 255
            iand
            sipush 256
            imul
            aload 1 /* foo */
            iload 2 /* s */
            bipush 9
            iadd
            baload
            sipush 255
            iand
            iadd
            istore 6 /* dlen */
        start local 6 // int dlen
        13: .line 213
            aload 1 /* foo */
            iload 2 /* s */
            baload
            sipush 255
            iand
            bipush 66
            if_icmpeq 17
        14: .line 215
            aload 1 /* foo */
            iload 2 /* s */
            baload
            sipush 255
            iand
            bipush 108
            if_icmpne 17
        15: .line 216
            iload 5 /* plen */
            bipush 8
            iushr
            sipush 255
            iand
            iload 5 /* plen */
            bipush 8
            ishl
            ldc 65280
            iand
            ior
            istore 5 /* plen */
        16: .line 217
            iload 6 /* dlen */
            bipush 8
            iushr
            sipush 255
            iand
            iload 6 /* dlen */
            bipush 8
            ishl
            ldc 65280
            iand
            ior
            istore 6 /* dlen */
        17: .line 223
      StackMap locals: int int
      StackMap stack:
            iload 3 /* l */
            bipush 12
            iload 5 /* plen */
            iadd
            iload 5 /* plen */
            ineg
            iconst_3
            iand
            iadd
            iload 6 /* dlen */
            iadd
            if_icmpge 19
        18: .line 224
            return
        19: .line 226
      StackMap locals:
      StackMap stack:
            iload 6 /* dlen */
            newarray 8
            astore 7 /* bar */
        start local 7 // byte[] bar
        20: .line 227
            aload 1 /* foo */
            iload 2 /* s */
            bipush 12
            iadd
            iload 5 /* plen */
            iadd
            iload 5 /* plen */
            ineg
            iconst_3
            iand
            iadd
            aload 7 /* bar */
            iconst_0
            iload 6 /* dlen */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        21: .line 228
            aconst_null
            astore 8 /* faked_cookie */
        start local 8 // byte[] faked_cookie
        22: .line 230
            getstatic com.jcraft.jsch.ChannelX11.faked_cookie_pool:Ljava/util/Hashtable;
            dup
            astore 9
            monitorenter
        23: .line 231
            getstatic com.jcraft.jsch.ChannelX11.faked_cookie_pool:Ljava/util/Hashtable;
            aload 4 /* _session */
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast byte[]
            astore 8 /* faked_cookie */
        24: .line 230
            aload 9
            monitorexit
        25: goto 28
      StackMap locals: com.jcraft.jsch.ChannelX11 byte[] int int com.jcraft.jsch.Session int int byte[] byte[] java.util.Hashtable
      StackMap stack: java.lang.Throwable
        26: aload 9
            monitorexit
        27: athrow
        28: .line 247
      StackMap locals:
      StackMap stack:
            aload 7 /* bar */
            aload 8 /* faked_cookie */
            invokestatic com.jcraft.jsch.ChannelX11.equals:([B[B)Z
            ifeq 32
        29: .line 248
            getstatic com.jcraft.jsch.ChannelX11.cookie:[B
            ifnull 36
        30: .line 249
            getstatic com.jcraft.jsch.ChannelX11.cookie:[B
            iconst_0
            aload 1 /* foo */
            iload 2 /* s */
            bipush 12
            iadd
            iload 5 /* plen */
            iadd
            iload 5 /* plen */
            ineg
            iconst_3
            iand
            iadd
            iload 6 /* dlen */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        31: .line 250
            goto 36
        32: .line 253
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield com.jcraft.jsch.ChannelX11.thread:Ljava/lang/Thread;
        33: .line 254
            aload 0 /* this */
            invokevirtual com.jcraft.jsch.ChannelX11.eof:()V
        34: .line 255
            aload 0 /* this */
            getfield com.jcraft.jsch.ChannelX11.io:Lcom/jcraft/jsch/IO;
            invokevirtual com.jcraft.jsch.IO.close:()V
        35: .line 256
            aload 0 /* this */
            invokevirtual com.jcraft.jsch.ChannelX11.disconnect:()V
        36: .line 258
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield com.jcraft.jsch.ChannelX11.init:Z
        37: .line 259
            aload 0 /* this */
            getfield com.jcraft.jsch.ChannelX11.io:Lcom/jcraft/jsch/IO;
            aload 1 /* foo */
            iload 2 /* s */
            iload 3 /* l */
            invokevirtual com.jcraft.jsch.IO.put:([BII)V
        38: .line 260
            aload 0 /* this */
            aconst_null
            putfield com.jcraft.jsch.ChannelX11.cache:[B
        39: .line 261
            return
        end local 8 // byte[] faked_cookie
        end local 7 // byte[] bar
        end local 6 // int dlen
        end local 5 // int plen
        end local 4 // com.jcraft.jsch.Session _session
        40: .line 263
      StackMap locals: com.jcraft.jsch.ChannelX11 byte[] int int
      StackMap stack:
            aload 0 /* this */
            getfield com.jcraft.jsch.ChannelX11.io:Lcom/jcraft/jsch/IO;
            aload 1 /* foo */
            iload 2 /* s */
            iload 3 /* l */
            invokevirtual com.jcraft.jsch.IO.put:([BII)V
        41: .line 264
            return
        end local 3 // int l
        end local 2 // int s
        end local 1 // byte[] foo
        end local 0 // com.jcraft.jsch.ChannelX11 this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   42     0          this  Lcom/jcraft/jsch/ChannelX11;
            0   42     1           foo  [B
            0   42     2             s  I
            0   42     3             l  I
            2   40     4      _session  Lcom/jcraft/jsch/Session;
            5    6     5             e  Lcom/jcraft/jsch/JSchException;
           12   40     5          plen  I
           13   40     6          dlen  I
           20   40     7           bar  [B
           22   40     8  faked_cookie  [B
      Exception table:
        from    to  target  type
           2     3       4  Class com.jcraft.jsch.JSchException
          23    25      26  any
          26    27      26  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      foo   
      s     
      l     

  private static boolean equals(byte[], byte[]);
    descriptor: ([B[B)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // byte[] foo
        start local 1 // byte[] bar
         0: .line 267
            aload 0 /* foo */
            arraylength
            aload 1 /* bar */
            arraylength
            if_icmpeq 1
            iconst_0
            ireturn
         1: .line 268
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: goto 5
         3: .line 269
      StackMap locals: int
      StackMap stack:
            aload 0 /* foo */
            iload 2 /* i */
            baload
            aload 1 /* bar */
            iload 2 /* i */
            baload
            if_icmpeq 4
            iconst_0
            ireturn
         4: .line 268
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 2 /* i */
            aload 0 /* foo */
            arraylength
            if_icmplt 3
        end local 2 // int i
         6: .line 271
            iconst_1
            ireturn
        end local 1 // byte[] bar
        end local 0 // byte[] foo
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0   foo  [B
            0    7     1   bar  [B
            2    6     2     i  I
    MethodParameters:
      Name  Flags
      foo   
      bar   
}
SourceFile: "ChannelX11.java"