class com.sun.jndi.ldap.sasl.SaslOutputStream extends java.io.FilterOutputStream
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: com.sun.jndi.ldap.sasl.SaslOutputStream
  super_class: java.io.FilterOutputStream
{
  private static final boolean debug;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

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

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

  private javax.security.sasl.SaslClient sc;
    descriptor: Ljavax/security/sasl/SaslClient;
    flags: (0x0002) ACC_PRIVATE

  void <init>(javax.security.sasl.SaslClient, java.io.OutputStream);
    descriptor: (Ljavax/security/sasl/SaslClient;Ljava/io/OutputStream;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // com.sun.jndi.ldap.sasl.SaslOutputStream this
        start local 1 // javax.security.sasl.SaslClient sc
        start local 2 // java.io.OutputStream out
         0: .line 43
            aload 0 /* this */
            aload 2 /* out */
            invokespecial java.io.FilterOutputStream.<init>:(Ljava/io/OutputStream;)V
         1: .line 38
            aload 0 /* this */
            iconst_4
            newarray 8
            putfield com.sun.jndi.ldap.sasl.SaslOutputStream.lenBuf:[B
         2: .line 39
            aload 0 /* this */
            ldc 65536
            putfield com.sun.jndi.ldap.sasl.SaslOutputStream.rawSendSize:I
         3: .line 44
            aload 0 /* this */
            aload 1 /* sc */
            putfield com.sun.jndi.ldap.sasl.SaslOutputStream.sc:Ljavax/security/sasl/SaslClient;
         4: .line 50
            aload 1 /* sc */
            ldc "javax.security.sasl.rawsendsize"
            invokeinterface javax.security.sasl.SaslClient.getNegotiatedProperty:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 3 /* str */
        start local 3 // java.lang.String str
         5: .line 51
            aload 3 /* str */
            ifnull 12
         6: .line 53
            aload 0 /* this */
            aload 3 /* str */
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            putfield com.sun.jndi.ldap.sasl.SaslOutputStream.rawSendSize:I
         7: .line 54
            goto 12
      StackMap locals: com.sun.jndi.ldap.sasl.SaslOutputStream javax.security.sasl.SaslClient java.io.OutputStream java.lang.String
      StackMap stack: java.lang.NumberFormatException
         8: pop
         9: .line 55
            new javax.security.sasl.SaslException
            dup
            new java.lang.StringBuilder
            dup
            ldc "javax.security.sasl.rawsendsize property must be numeric string: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        10: .line 56
            aload 3 /* str */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        11: .line 55
            invokespecial javax.security.sasl.SaslException.<init>:(Ljava/lang/String;)V
            athrow
        12: .line 59
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.lang.String str
        end local 2 // java.io.OutputStream out
        end local 1 // javax.security.sasl.SaslClient sc
        end local 0 // com.sun.jndi.ldap.sasl.SaslOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   13     0  this  Lcom/sun/jndi/ldap/sasl/SaslOutputStream;
            0   13     1    sc  Ljavax/security/sasl/SaslClient;
            0   13     2   out  Ljava/io/OutputStream;
            5   13     3   str  Ljava/lang/String;
      Exception table:
        from    to  target  type
           6     7       8  Class java.lang.NumberFormatException
    Exceptions:
      throws javax.security.sasl.SaslException
    MethodParameters:
      Name  Flags
      sc    
      out   

  public void write(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // com.sun.jndi.ldap.sasl.SaslOutputStream this
        start local 1 // int b
         0: .line 65
            iconst_1
            newarray 8
            astore 2 /* buffer */
        start local 2 // byte[] buffer
         1: .line 66
            aload 2 /* buffer */
            iconst_0
            iload 1 /* b */
            i2b
            bastore
         2: .line 67
            aload 0 /* this */
            aload 2 /* buffer */
            iconst_0
            iconst_1
            invokevirtual com.sun.jndi.ldap.sasl.SaslOutputStream.write:([BII)V
         3: .line 68
            return
        end local 2 // byte[] buffer
        end local 1 // int b
        end local 0 // com.sun.jndi.ldap.sasl.SaslOutputStream this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lcom/sun/jndi/ldap/sasl/SaslOutputStream;
            0    4     1       b  I
            1    4     2  buffer  [B
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      b     

  public void write(byte[], int, int);
    descriptor: ([BII)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=7, args_size=4
        start local 0 // com.sun.jndi.ldap.sasl.SaslOutputStream this
        start local 1 // byte[] buffer
        start local 2 // int offset
        start local 3 // int total
         0: .line 83
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         1: goto 10
         2: .line 86
      StackMap locals: com.sun.jndi.ldap.sasl.SaslOutputStream byte[] int int top top int
      StackMap stack:
            iload 3 /* total */
            iload 6 /* i */
            isub
            aload 0 /* this */
            getfield com.sun.jndi.ldap.sasl.SaslOutputStream.rawSendSize:I
            if_icmpge 3
            iload 3 /* total */
            iload 6 /* i */
            isub
            goto 4
      StackMap locals:
      StackMap stack:
         3: aload 0 /* this */
            getfield com.sun.jndi.ldap.sasl.SaslOutputStream.rawSendSize:I
      StackMap locals:
      StackMap stack: int
         4: istore 4 /* count */
        start local 4 // int count
         5: .line 89
            aload 0 /* this */
            getfield com.sun.jndi.ldap.sasl.SaslOutputStream.sc:Ljavax/security/sasl/SaslClient;
            aload 1 /* buffer */
            iload 2 /* offset */
            iload 6 /* i */
            iadd
            iload 4 /* count */
            invokeinterface javax.security.sasl.SaslClient.wrap:([BII)[B
            astore 5 /* wrappedToken */
        start local 5 // byte[] wrappedToken
         6: .line 92
            aload 5 /* wrappedToken */
            arraylength
            aload 0 /* this */
            getfield com.sun.jndi.ldap.sasl.SaslOutputStream.lenBuf:[B
            iconst_0
            iconst_4
            invokestatic com.sun.jndi.ldap.sasl.SaslOutputStream.intToNetworkByteOrder:(I[BII)V
         7: .line 97
            aload 0 /* this */
            getfield com.sun.jndi.ldap.sasl.SaslOutputStream.out:Ljava/io/OutputStream;
            aload 0 /* this */
            getfield com.sun.jndi.ldap.sasl.SaslOutputStream.lenBuf:[B
            iconst_0
            iconst_4
            invokevirtual java.io.OutputStream.write:([BII)V
         8: .line 100
            aload 0 /* this */
            getfield com.sun.jndi.ldap.sasl.SaslOutputStream.out:Ljava/io/OutputStream;
            aload 5 /* wrappedToken */
            iconst_0
            aload 5 /* wrappedToken */
            arraylength
            invokevirtual java.io.OutputStream.write:([BII)V
         9: .line 83
            iload 6 /* i */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.sasl.SaslOutputStream.rawSendSize:I
            iadd
            istore 6 /* i */
        end local 5 // byte[] wrappedToken
        end local 4 // int count
      StackMap locals:
      StackMap stack:
        10: iload 6 /* i */
            iload 3 /* total */
            if_icmplt 2
        end local 6 // int i
        11: .line 102
            return
        end local 3 // int total
        end local 2 // int offset
        end local 1 // byte[] buffer
        end local 0 // com.sun.jndi.ldap.sasl.SaslOutputStream this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   12     0          this  Lcom/sun/jndi/ldap/sasl/SaslOutputStream;
            0   12     1        buffer  [B
            0   12     2        offset  I
            0   12     3         total  I
            5   10     4         count  I
            6   10     5  wrappedToken  [B
            1   11     6             i  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      buffer  
      offset  
      total   

  public void close();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=1
        start local 0 // com.sun.jndi.ldap.sasl.SaslOutputStream this
         0: .line 105
            aconst_null
            astore 1 /* save */
        start local 1 // javax.security.sasl.SaslException save
         1: .line 107
            aload 0 /* this */
            getfield com.sun.jndi.ldap.sasl.SaslOutputStream.sc:Ljavax/security/sasl/SaslClient;
            invokeinterface javax.security.sasl.SaslClient.dispose:()V
         2: .line 108
            goto 5
      StackMap locals: com.sun.jndi.ldap.sasl.SaslOutputStream javax.security.sasl.SaslException
      StackMap stack: javax.security.sasl.SaslException
         3: astore 2 /* e */
        start local 2 // javax.security.sasl.SaslException e
         4: .line 110
            aload 2 /* e */
            astore 1 /* save */
        end local 2 // javax.security.sasl.SaslException e
         5: .line 112
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokespecial java.io.FilterOutputStream.close:()V
         6: .line 114
            aload 1 /* save */
            ifnull 8
         7: .line 115
            aload 1 /* save */
            athrow
         8: .line 117
      StackMap locals:
      StackMap stack:
            return
        end local 1 // javax.security.sasl.SaslException save
        end local 0 // com.sun.jndi.ldap.sasl.SaslOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lcom/sun/jndi/ldap/sasl/SaslOutputStream;
            1    9     1  save  Ljavax/security/sasl/SaslException;
            4    5     2     e  Ljavax/security/sasl/SaslException;
      Exception table:
        from    to  target  type
           1     2       3  Class javax.security.sasl.SaslException
    Exceptions:
      throws java.io.IOException

  private static void intToNetworkByteOrder(int, byte[], int, int);
    descriptor: (I[BII)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // int num
        start local 1 // byte[] buf
        start local 2 // int start
        start local 3 // int count
         0: .line 126
            iload 3 /* count */
            iconst_4
            if_icmple 2
         1: .line 127
            new java.lang.IllegalArgumentException
            dup
            ldc "Cannot handle more than 4 bytes"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 130
      StackMap locals:
      StackMap stack:
            iload 3 /* count */
            iconst_1
            isub
            istore 4 /* i */
        start local 4 // int i
         3: goto 7
         4: .line 131
      StackMap locals: int
      StackMap stack:
            aload 1 /* buf */
            iload 2 /* start */
            iload 4 /* i */
            iadd
            iload 0 /* num */
            sipush 255
            iand
            i2b
            bastore
         5: .line 132
            iload 0 /* num */
            bipush 8
            iushr
            istore 0 /* num */
         6: .line 130
            iinc 4 /* i */ -1
      StackMap locals:
      StackMap stack:
         7: iload 4 /* i */
            ifge 4
        end local 4 // int i
         8: .line 134
            return
        end local 3 // int count
        end local 2 // int start
        end local 1 // byte[] buf
        end local 0 // int num
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    9     0    num  I
            0    9     1    buf  [B
            0    9     2  start  I
            0    9     3  count  I
            3    8     4      i  I
    MethodParameters:
       Name  Flags
      num    
      buf    
      start  
      count  
}
SourceFile: "SaslOutputStream.java"