class com.oracle.security.ucrypto.NativeCipherWithJavaPadding$PKCS5Padding implements com.oracle.security.ucrypto.NativeCipherWithJavaPadding$Padding
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: com.oracle.security.ucrypto.NativeCipherWithJavaPadding$PKCS5Padding
  super_class: java.lang.Object
{
  private final int blockSize;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private java.nio.ByteBuffer trailingBytes;
    descriptor: Ljava/nio/ByteBuffer;
    flags: (0x0002) ACC_PRIVATE

  void <init>(int);
    descriptor: (I)V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.security.ucrypto.NativeCipherWithJavaPadding$PKCS5Padding this
        start local 1 // int blockSize
         0: .line 96
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 94
            aload 0 /* this */
            aconst_null
            putfield com.oracle.security.ucrypto.NativeCipherWithJavaPadding$PKCS5Padding.trailingBytes:Ljava/nio/ByteBuffer;
         2: .line 98
            iload 1 /* blockSize */
            ifne 6
         3: .line 99
            new javax.crypto.NoSuchPaddingException
            dup
         4: .line 100
            ldc "PKCS#5 padding not supported with stream ciphers"
         5: .line 99
            invokespecial javax.crypto.NoSuchPaddingException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 102
      StackMap locals: com.oracle.security.ucrypto.NativeCipherWithJavaPadding$PKCS5Padding int
      StackMap stack:
            aload 0 /* this */
            iload 1 /* blockSize */
            putfield com.oracle.security.ucrypto.NativeCipherWithJavaPadding$PKCS5Padding.blockSize:I
         7: .line 103
            return
        end local 1 // int blockSize
        end local 0 // com.oracle.security.ucrypto.NativeCipherWithJavaPadding$PKCS5Padding this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    8     0       this  Lcom/oracle/security/ucrypto/NativeCipherWithJavaPadding$PKCS5Padding;
            0    8     1  blockSize  I
    Exceptions:
      throws javax.crypto.NoSuchPaddingException
    MethodParameters:
           Name  Flags
      blockSize  

  public int getPadLen(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.oracle.security.ucrypto.NativeCipherWithJavaPadding$PKCS5Padding this
        start local 1 // int dataLen
         0: .line 106
            aload 0 /* this */
            getfield com.oracle.security.ucrypto.NativeCipherWithJavaPadding$PKCS5Padding.blockSize:I
            iload 1 /* dataLen */
            aload 0 /* this */
            getfield com.oracle.security.ucrypto.NativeCipherWithJavaPadding$PKCS5Padding.blockSize:I
            iconst_1
            isub
            iand
            isub
            ireturn
        end local 1 // int dataLen
        end local 0 // com.oracle.security.ucrypto.NativeCipherWithJavaPadding$PKCS5Padding this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/oracle/security/ucrypto/NativeCipherWithJavaPadding$PKCS5Padding;
            0    1     1  dataLen  I
    MethodParameters:
         Name  Flags
      dataLen  

  public byte[] getPaddingBytes(int);
    descriptor: (I)[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // com.oracle.security.ucrypto.NativeCipherWithJavaPadding$PKCS5Padding this
        start local 1 // int dataLen
         0: .line 110
            aload 0 /* this */
            iload 1 /* dataLen */
            invokevirtual com.oracle.security.ucrypto.NativeCipherWithJavaPadding$PKCS5Padding.getPadLen:(I)I
            i2b
            istore 2 /* padValue */
        start local 2 // byte padValue
         1: .line 111
            iload 2 /* padValue */
            newarray 8
            astore 3 /* paddingBytes */
        start local 3 // byte[] paddingBytes
         2: .line 112
            aload 3 /* paddingBytes */
            iload 2 /* padValue */
            invokestatic java.util.Arrays.fill:([BB)V
         3: .line 113
            aload 3 /* paddingBytes */
            areturn
        end local 3 // byte[] paddingBytes
        end local 2 // byte padValue
        end local 1 // int dataLen
        end local 0 // com.oracle.security.ucrypto.NativeCipherWithJavaPadding$PKCS5Padding this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    4     0          this  Lcom/oracle/security/ucrypto/NativeCipherWithJavaPadding$PKCS5Padding;
            0    4     1       dataLen  I
            1    4     2      padValue  B
            2    4     3  paddingBytes  [B
    MethodParameters:
         Name  Flags
      dataLen  

  public byte[] bufferBytes(byte[]);
    descriptor: ([B)[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=2
        start local 0 // com.oracle.security.ucrypto.NativeCipherWithJavaPadding$PKCS5Padding this
        start local 1 // byte[] dataFromUpdate
         0: .line 117
            aload 1 /* dataFromUpdate */
            ifnull 1
            aload 1 /* dataFromUpdate */
            arraylength
            ifne 2
         1: .line 118
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
         2: .line 120
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 2 /* result */
        start local 2 // byte[] result
         3: .line 121
            aload 0 /* this */
            getfield com.oracle.security.ucrypto.NativeCipherWithJavaPadding$PKCS5Padding.trailingBytes:Ljava/nio/ByteBuffer;
            ifnonnull 5
         4: .line 122
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.security.ucrypto.NativeCipherWithJavaPadding$PKCS5Padding.blockSize:I
            newarray 8
            invokestatic java.nio.ByteBuffer.wrap:([B)Ljava/nio/ByteBuffer;
            putfield com.oracle.security.ucrypto.NativeCipherWithJavaPadding$PKCS5Padding.trailingBytes:Ljava/nio/ByteBuffer;
         5: .line 124
      StackMap locals: byte[]
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.security.ucrypto.NativeCipherWithJavaPadding$PKCS5Padding.trailingBytes:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.position:()I
            istore 3 /* tbSize */
        start local 3 // int tbSize
         6: .line 125
            aload 1 /* dataFromUpdate */
            arraylength
            aload 0 /* this */
            getfield com.oracle.security.ucrypto.NativeCipherWithJavaPadding$PKCS5Padding.trailingBytes:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.remaining:()I
            if_icmple 26
         7: .line 126
            aload 1 /* dataFromUpdate */
            arraylength
            iload 3 /* tbSize */
            iadd
            istore 4 /* totalLen */
        start local 4 // int totalLen
         8: .line 127
            iload 4 /* totalLen */
            aload 0 /* this */
            getfield com.oracle.security.ucrypto.NativeCipherWithJavaPadding$PKCS5Padding.blockSize:I
            irem
            istore 5 /* newTBSize */
        start local 5 // int newTBSize
         9: .line 128
            iload 5 /* newTBSize */
            ifne 11
        10: .line 129
            aload 0 /* this */
            getfield com.oracle.security.ucrypto.NativeCipherWithJavaPadding$PKCS5Padding.blockSize:I
            istore 5 /* newTBSize */
        11: .line 131
      StackMap locals: int int int
      StackMap stack:
            iload 3 /* tbSize */
            ifne 14
        12: .line 132
            aload 1 /* dataFromUpdate */
            iload 4 /* totalLen */
            iload 5 /* newTBSize */
            isub
            invokestatic java.util.Arrays.copyOf:([BI)[B
            astore 2 /* result */
        13: .line 133
            goto 21
        14: .line 135
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.security.ucrypto.NativeCipherWithJavaPadding$PKCS5Padding.trailingBytes:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.array:()[B
        15: .line 136
            iload 4 /* totalLen */
            iload 5 /* newTBSize */
            isub
        16: .line 135
            invokestatic java.util.Arrays.copyOf:([BI)[B
            astore 2 /* result */
        17: .line 137
            aload 2 /* result */
            arraylength
            iload 3 /* tbSize */
            if_icmpeq 21
        18: .line 138
            aload 1 /* dataFromUpdate */
            iconst_0
            aload 2 /* result */
            iload 3 /* tbSize */
        19: .line 139
            aload 2 /* result */
            arraylength
            iload 3 /* tbSize */
            isub
        20: .line 138
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        21: .line 143
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.security.ucrypto.NativeCipherWithJavaPadding$PKCS5Padding.trailingBytes:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.clear:()Ljava/nio/ByteBuffer;
            pop
        22: .line 144
            aload 0 /* this */
            getfield com.oracle.security.ucrypto.NativeCipherWithJavaPadding$PKCS5Padding.trailingBytes:Ljava/nio/ByteBuffer;
            aload 1 /* dataFromUpdate */
        23: .line 145
            aload 1 /* dataFromUpdate */
            arraylength
            iload 5 /* newTBSize */
            isub
            iload 5 /* newTBSize */
        24: .line 144
            invokevirtual java.nio.ByteBuffer.put:([BII)Ljava/nio/ByteBuffer;
            pop
        end local 5 // int newTBSize
        end local 4 // int totalLen
        25: .line 146
            goto 27
        26: .line 147
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.security.ucrypto.NativeCipherWithJavaPadding$PKCS5Padding.trailingBytes:Ljava/nio/ByteBuffer;
            aload 1 /* dataFromUpdate */
            invokevirtual java.nio.ByteBuffer.put:([B)Ljava/nio/ByteBuffer;
            pop
        27: .line 149
      StackMap locals:
      StackMap stack:
            aload 2 /* result */
            areturn
        end local 3 // int tbSize
        end local 2 // byte[] result
        end local 1 // byte[] dataFromUpdate
        end local 0 // com.oracle.security.ucrypto.NativeCipherWithJavaPadding$PKCS5Padding this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   28     0            this  Lcom/oracle/security/ucrypto/NativeCipherWithJavaPadding$PKCS5Padding;
            0   28     1  dataFromUpdate  [B
            3   28     2          result  [B
            6   28     3          tbSize  I
            8   25     4        totalLen  I
            9   25     5       newTBSize  I
    MethodParameters:
                Name  Flags
      dataFromUpdate  

  public int getBufferedLength();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.security.ucrypto.NativeCipherWithJavaPadding$PKCS5Padding this
         0: .line 153
            aload 0 /* this */
            getfield com.oracle.security.ucrypto.NativeCipherWithJavaPadding$PKCS5Padding.trailingBytes:Ljava/nio/ByteBuffer;
            ifnull 2
         1: .line 154
            aload 0 /* this */
            getfield com.oracle.security.ucrypto.NativeCipherWithJavaPadding$PKCS5Padding.trailingBytes:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.position:()I
            ireturn
         2: .line 156
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 0 // com.oracle.security.ucrypto.NativeCipherWithJavaPadding$PKCS5Padding this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/security/ucrypto/NativeCipherWithJavaPadding$PKCS5Padding;

  public int unpad(byte[], byte[], int);
    descriptor: ([B[BI)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=11, args_size=4
        start local 0 // com.oracle.security.ucrypto.NativeCipherWithJavaPadding$PKCS5Padding this
        start local 1 // byte[] lastData
        start local 2 // byte[] out
        start local 3 // int outOfs
         0: .line 162
            aload 0 /* this */
            getfield com.oracle.security.ucrypto.NativeCipherWithJavaPadding$PKCS5Padding.trailingBytes:Ljava/nio/ByteBuffer;
            ifnonnull 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            getfield com.oracle.security.ucrypto.NativeCipherWithJavaPadding$PKCS5Padding.trailingBytes:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.position:()I
      StackMap locals:
      StackMap stack: int
         2: istore 4 /* tbSize */
        start local 4 // int tbSize
         3: .line 163
            iload 4 /* tbSize */
            aload 1 /* lastData */
            arraylength
            iadd
            istore 5 /* dataLen */
        start local 5 // int dataLen
         4: .line 166
            iload 5 /* dataLen */
            ifgt 6
         5: .line 167
            iconst_0
            ireturn
         6: .line 168
      StackMap locals: int int
      StackMap stack:
            iload 5 /* dataLen */
            aload 0 /* this */
            getfield com.oracle.security.ucrypto.NativeCipherWithJavaPadding$PKCS5Padding.blockSize:I
            irem
            ifeq 13
         7: .line 169
            new java.lang.StringBuilder
            dup
            ldc "PKCS5Padding: unpad, buffered "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 4 /* tbSize */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
         8: .line 170
            ldc " bytes, last block "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* lastData */
            arraylength
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " bytes"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         9: .line 169
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic com.oracle.security.ucrypto.UcryptoProvider.debug:(Ljava/lang/String;)V
        10: .line 172
            new javax.crypto.IllegalBlockSizeException
            dup
        11: .line 173
            new java.lang.StringBuilder
            dup
            ldc "Input length must be multiples of "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.oracle.security.ucrypto.NativeCipherWithJavaPadding$PKCS5Padding.blockSize:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        12: .line 172
            invokespecial javax.crypto.IllegalBlockSizeException.<init>:(Ljava/lang/String;)V
            athrow
        13: .line 177
      StackMap locals:
      StackMap stack:
            aload 1 /* lastData */
            arraylength
            ifne 20
        14: .line 178
            iload 4 /* tbSize */
            ifeq 19
        15: .line 180
            aload 0 /* this */
            getfield com.oracle.security.ucrypto.NativeCipherWithJavaPadding$PKCS5Padding.trailingBytes:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.array:()[B
            iload 4 /* tbSize */
            invokestatic java.util.Arrays.copyOf:([BI)[B
            astore 1 /* lastData */
        16: .line 181
            aload 0 /* this */
            getfield com.oracle.security.ucrypto.NativeCipherWithJavaPadding$PKCS5Padding.trailingBytes:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.clear:()Ljava/nio/ByteBuffer;
            pop
        17: .line 182
            iconst_0
            istore 4 /* tbSize */
        18: .line 183
            goto 20
        19: .line 184
      StackMap locals:
      StackMap stack:
            new javax.crypto.BadPaddingException
            dup
            ldc "No pad bytes found!"
            invokespecial javax.crypto.BadPaddingException.<init>:(Ljava/lang/String;)V
            athrow
        20: .line 187
      StackMap locals:
      StackMap stack:
            aload 1 /* lastData */
            aload 1 /* lastData */
            arraylength
            iconst_1
            isub
            baload
            istore 6 /* padValue */
        start local 6 // byte padValue
        21: .line 188
            iload 6 /* padValue */
            iconst_1
            if_icmplt 22
            iload 6 /* padValue */
            aload 0 /* this */
            getfield com.oracle.security.ucrypto.NativeCipherWithJavaPadding$PKCS5Padding.blockSize:I
            if_icmple 25
        22: .line 189
      StackMap locals: int
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "PKCS5Padding: unpad, lastData: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* lastData */
            invokestatic java.util.Arrays.toString:([B)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic com.oracle.security.ucrypto.UcryptoProvider.debug:(Ljava/lang/String;)V
        23: .line 190
            new java.lang.StringBuilder
            dup
            ldc "PKCS5Padding: unpad, padValue="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 6 /* padValue */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic com.oracle.security.ucrypto.UcryptoProvider.debug:(Ljava/lang/String;)V
        24: .line 191
            new javax.crypto.BadPaddingException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Invalid pad value: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 6 /* padValue */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial javax.crypto.BadPaddingException.<init>:(Ljava/lang/String;)V
            athrow
        25: .line 195
      StackMap locals:
      StackMap stack:
            aload 1 /* lastData */
            arraylength
            iload 6 /* padValue */
            isub
            istore 7 /* padStartIndex */
        start local 7 // int padStartIndex
        26: .line 196
            iload 7 /* padStartIndex */
            istore 8 /* i */
        start local 8 // int i
        27: goto 33
        28: .line 197
      StackMap locals: int int
      StackMap stack:
            aload 1 /* lastData */
            iload 8 /* i */
            baload
            iload 6 /* padValue */
            if_icmpeq 32
        29: .line 198
            new java.lang.StringBuilder
            dup
            ldc "PKCS5Padding: unpad, lastData: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* lastData */
            invokestatic java.util.Arrays.toString:([B)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic com.oracle.security.ucrypto.UcryptoProvider.debug:(Ljava/lang/String;)V
        30: .line 199
            new java.lang.StringBuilder
            dup
            ldc "PKCS5Padding: unpad, padValue="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 6 /* padValue */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic com.oracle.security.ucrypto.UcryptoProvider.debug:(Ljava/lang/String;)V
        31: .line 200
            new javax.crypto.BadPaddingException
            dup
            ldc "Invalid padding bytes!"
            invokespecial javax.crypto.BadPaddingException.<init>:(Ljava/lang/String;)V
            athrow
        32: .line 196
      StackMap locals:
      StackMap stack:
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        33: iload 8 /* i */
            aload 1 /* lastData */
            arraylength
            if_icmplt 28
        end local 8 // int i
        34: .line 204
            iload 5 /* dataLen */
            iload 6 /* padValue */
            isub
            istore 8 /* actualOutLen */
        start local 8 // int actualOutLen
        35: .line 206
            aload 2 /* out */
            arraylength
            iload 3 /* outOfs */
            isub
            iload 8 /* actualOutLen */
            if_icmpge 39
        36: .line 207
            new javax.crypto.ShortBufferException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Output buffer too small, need "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 8 /* actualOutLen */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        37: .line 208
            ldc ", got "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* out */
            arraylength
            iload 3 /* outOfs */
            isub
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        38: .line 207
            invokespecial javax.crypto.ShortBufferException.<init>:(Ljava/lang/String;)V
            athrow
        39: .line 211
      StackMap locals:
      StackMap stack:
            iload 4 /* tbSize */
            ifeq 49
        40: .line 212
            aload 0 /* this */
            getfield com.oracle.security.ucrypto.NativeCipherWithJavaPadding$PKCS5Padding.trailingBytes:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.rewind:()Ljava/nio/ByteBuffer;
            pop
        41: .line 213
            iload 4 /* tbSize */
            iload 8 /* actualOutLen */
            if_icmpge 45
        42: .line 214
            aload 0 /* this */
            getfield com.oracle.security.ucrypto.NativeCipherWithJavaPadding$PKCS5Padding.trailingBytes:Ljava/nio/ByteBuffer;
            aload 2 /* out */
            iload 3 /* outOfs */
            iload 4 /* tbSize */
            invokevirtual java.nio.ByteBuffer.get:([BII)Ljava/nio/ByteBuffer;
            pop
        43: .line 215
            iload 3 /* outOfs */
            iload 4 /* tbSize */
            iadd
            istore 3 /* outOfs */
        44: .line 216
            goto 49
        45: .line 218
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.security.ucrypto.NativeCipherWithJavaPadding$PKCS5Padding.trailingBytes:Ljava/nio/ByteBuffer;
            aload 2 /* out */
            iload 3 /* outOfs */
            iload 8 /* actualOutLen */
            invokevirtual java.nio.ByteBuffer.get:([BII)Ljava/nio/ByteBuffer;
            pop
        46: .line 219
            iload 8 /* actualOutLen */
            istore 10
        47: .line 228
            aload 0 /* this */
            invokevirtual com.oracle.security.ucrypto.NativeCipherWithJavaPadding$PKCS5Padding.clear:()V
        48: .line 219
            iload 10
            ireturn
        49: .line 222
      StackMap locals:
      StackMap stack:
            aload 1 /* lastData */
            arraylength
            iload 6 /* padValue */
            if_icmple 53
        50: .line 223
            aload 1 /* lastData */
            iconst_0
            aload 2 /* out */
            iload 3 /* outOfs */
        51: .line 224
            aload 1 /* lastData */
            arraylength
            iload 6 /* padValue */
            isub
        52: .line 223
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        53: .line 226
      StackMap locals:
      StackMap stack:
            iload 8 /* actualOutLen */
            istore 10
        54: .line 228
            aload 0 /* this */
            invokevirtual com.oracle.security.ucrypto.NativeCipherWithJavaPadding$PKCS5Padding.clear:()V
        55: .line 226
            iload 10
            ireturn
        56: .line 227
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 9
        57: .line 228
            aload 0 /* this */
            invokevirtual com.oracle.security.ucrypto.NativeCipherWithJavaPadding$PKCS5Padding.clear:()V
        58: .line 229
            aload 9
            athrow
        end local 8 // int actualOutLen
        end local 7 // int padStartIndex
        end local 6 // byte padValue
        end local 5 // int dataLen
        end local 4 // int tbSize
        end local 3 // int outOfs
        end local 2 // byte[] out
        end local 1 // byte[] lastData
        end local 0 // com.oracle.security.ucrypto.NativeCipherWithJavaPadding$PKCS5Padding this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   59     0           this  Lcom/oracle/security/ucrypto/NativeCipherWithJavaPadding$PKCS5Padding;
            0   59     1       lastData  [B
            0   59     2            out  [B
            0   59     3         outOfs  I
            3   59     4         tbSize  I
            4   59     5        dataLen  I
           21   59     6       padValue  B
           26   59     7  padStartIndex  I
           27   34     8              i  I
           35   59     8   actualOutLen  I
      Exception table:
        from    to  target  type
          39    47      56  any
          49    54      56  any
    Exceptions:
      throws javax.crypto.BadPaddingException, javax.crypto.IllegalBlockSizeException, javax.crypto.ShortBufferException
    MethodParameters:
          Name  Flags
      lastData  
      out       
      outOfs    

  public void clear();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.security.ucrypto.NativeCipherWithJavaPadding$PKCS5Padding this
         0: .line 233
            aload 0 /* this */
            getfield com.oracle.security.ucrypto.NativeCipherWithJavaPadding$PKCS5Padding.trailingBytes:Ljava/nio/ByteBuffer;
            ifnull 1
            aload 0 /* this */
            getfield com.oracle.security.ucrypto.NativeCipherWithJavaPadding$PKCS5Padding.trailingBytes:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.clear:()Ljava/nio/ByteBuffer;
            pop
         1: .line 234
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.oracle.security.ucrypto.NativeCipherWithJavaPadding$PKCS5Padding this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/security/ucrypto/NativeCipherWithJavaPadding$PKCS5Padding;
}
SourceFile: "NativeCipherWithJavaPadding.java"
NestHost: com.oracle.security.ucrypto.NativeCipherWithJavaPadding
InnerClasses:
  private PKCS5Padding = com.oracle.security.ucrypto.NativeCipherWithJavaPadding$PKCS5Padding of com.oracle.security.ucrypto.NativeCipherWithJavaPadding
  private abstract Padding = com.oracle.security.ucrypto.NativeCipherWithJavaPadding$Padding of com.oracle.security.ucrypto.NativeCipherWithJavaPadding