public class sun.misc.BASE64Decoder extends sun.misc.CharacterDecoder
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: sun.misc.BASE64Decoder
super_class: sun.misc.CharacterDecoder
{
private static final char[] pem_array;
descriptor: [C
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final byte[] pem_convert_array;
descriptor: [B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
byte[] decode_buffer;
descriptor: [B
flags: (0x0000)
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=1, args_size=0
0: .line 77
bipush 64
newarray 5
dup
iconst_0
1: .line 79
bipush 65
castore
dup
iconst_1
bipush 66
castore
dup
iconst_2
bipush 67
castore
dup
iconst_3
bipush 68
castore
dup
iconst_4
bipush 69
castore
dup
iconst_5
bipush 70
castore
dup
bipush 6
bipush 71
castore
dup
bipush 7
bipush 72
castore
dup
bipush 8
2: .line 80
bipush 73
castore
dup
bipush 9
bipush 74
castore
dup
bipush 10
bipush 75
castore
dup
bipush 11
bipush 76
castore
dup
bipush 12
bipush 77
castore
dup
bipush 13
bipush 78
castore
dup
bipush 14
bipush 79
castore
dup
bipush 15
bipush 80
castore
dup
bipush 16
3: .line 81
bipush 81
castore
dup
bipush 17
bipush 82
castore
dup
bipush 18
bipush 83
castore
dup
bipush 19
bipush 84
castore
dup
bipush 20
bipush 85
castore
dup
bipush 21
bipush 86
castore
dup
bipush 22
bipush 87
castore
dup
bipush 23
bipush 88
castore
dup
bipush 24
4: .line 82
bipush 89
castore
dup
bipush 25
bipush 90
castore
dup
bipush 26
bipush 97
castore
dup
bipush 27
bipush 98
castore
dup
bipush 28
bipush 99
castore
dup
bipush 29
bipush 100
castore
dup
bipush 30
bipush 101
castore
dup
bipush 31
bipush 102
castore
dup
bipush 32
5: .line 83
bipush 103
castore
dup
bipush 33
bipush 104
castore
dup
bipush 34
bipush 105
castore
dup
bipush 35
bipush 106
castore
dup
bipush 36
bipush 107
castore
dup
bipush 37
bipush 108
castore
dup
bipush 38
bipush 109
castore
dup
bipush 39
bipush 110
castore
dup
bipush 40
6: .line 84
bipush 111
castore
dup
bipush 41
bipush 112
castore
dup
bipush 42
bipush 113
castore
dup
bipush 43
bipush 114
castore
dup
bipush 44
bipush 115
castore
dup
bipush 45
bipush 116
castore
dup
bipush 46
bipush 117
castore
dup
bipush 47
bipush 118
castore
dup
bipush 48
7: .line 85
bipush 119
castore
dup
bipush 49
bipush 120
castore
dup
bipush 50
bipush 121
castore
dup
bipush 51
bipush 122
castore
dup
bipush 52
bipush 48
castore
dup
bipush 53
bipush 49
castore
dup
bipush 54
bipush 50
castore
dup
bipush 55
bipush 51
castore
dup
bipush 56
8: .line 86
bipush 52
castore
dup
bipush 57
bipush 53
castore
dup
bipush 58
bipush 54
castore
dup
bipush 59
bipush 55
castore
dup
bipush 60
bipush 56
castore
dup
bipush 61
bipush 57
castore
dup
bipush 62
bipush 43
castore
dup
bipush 63
bipush 47
castore
9: .line 77
putstatic sun.misc.BASE64Decoder.pem_array:[C
10: .line 89
sipush 256
newarray 8
putstatic sun.misc.BASE64Decoder.pem_convert_array:[B
11: .line 92
iconst_0
istore 0 /* i */
start local 0 // int i
12: goto 15
13: .line 93
StackMap locals: int
StackMap stack:
getstatic sun.misc.BASE64Decoder.pem_convert_array:[B
iload 0 /* i */
iconst_m1
bastore
14: .line 92
iinc 0 /* i */ 1
StackMap locals:
StackMap stack:
15: iload 0 /* i */
sipush 255
if_icmplt 13
end local 0 // int i
16: .line 95
iconst_0
istore 0 /* i */
start local 0 // int i
17: goto 20
18: .line 96
StackMap locals:
StackMap stack:
getstatic sun.misc.BASE64Decoder.pem_convert_array:[B
getstatic sun.misc.BASE64Decoder.pem_array:[C
iload 0 /* i */
caload
iload 0 /* i */
i2b
bastore
19: .line 95
iinc 0 /* i */ 1
StackMap locals:
StackMap stack:
20: iload 0 /* i */
getstatic sun.misc.BASE64Decoder.pem_array:[C
arraylength
if_icmplt 18
end local 0 // int i
21: .line 98
return
LocalVariableTable:
Start End Slot Name Signature
12 16 0 i I
17 21 0 i I
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 // sun.misc.BASE64Decoder this
0: .line 61
aload 0 /* this */
invokespecial sun.misc.CharacterDecoder.<init>:()V
1: .line 100
aload 0 /* this */
iconst_4
newarray 8
putfield sun.misc.BASE64Decoder.decode_buffer:[B
2: .line 61
return
end local 0 // sun.misc.BASE64Decoder this
LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/misc/BASE64Decoder;
protected int bytesPerAtom();
descriptor: ()I
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 // sun.misc.BASE64Decoder this
0: .line 65
iconst_4
ireturn
end local 0 // sun.misc.BASE64Decoder this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/misc/BASE64Decoder;
protected int bytesPerLine();
descriptor: ()I
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 // sun.misc.BASE64Decoder this
0: .line 70
bipush 72
ireturn
end local 0 // sun.misc.BASE64Decoder this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/misc/BASE64Decoder;
protected void decodeAtom(java.io.PushbackInputStream, java.io.OutputStream, int);
descriptor: (Ljava/io/PushbackInputStream;Ljava/io/OutputStream;I)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=9, args_size=4
start local 0 // sun.misc.BASE64Decoder this
start local 1 // java.io.PushbackInputStream inStream
start local 2 // java.io.OutputStream outStream
start local 3 // int rem
0: .line 109
iconst_m1
istore 5 /* a */
start local 5 // byte a
1: iconst_m1
istore 6 /* b */
start local 6 // byte b
2: iconst_m1
istore 7 /* c */
start local 7 // byte c
3: iconst_m1
istore 8 /* d */
start local 8 // byte d
4: .line 111
iload 3 /* rem */
iconst_2
if_icmpge 6
5: .line 112
new sun.misc.CEFormatException
dup
ldc "BASE64Decoder: Not enough bytes for an atom."
invokespecial sun.misc.CEFormatException.<init>:(Ljava/lang/String;)V
athrow
6: .line 115
StackMap locals: sun.misc.BASE64Decoder java.io.PushbackInputStream java.io.OutputStream int top int int int int
StackMap stack:
aload 1 /* inStream */
invokevirtual java.io.PushbackInputStream.read:()I
istore 4 /* i */
start local 4 // int i
7: .line 116
iload 4 /* i */
iconst_m1
if_icmpne 9
8: .line 117
new sun.misc.CEStreamExhausted
dup
invokespecial sun.misc.CEStreamExhausted.<init>:()V
athrow
9: .line 119
StackMap locals: sun.misc.BASE64Decoder java.io.PushbackInputStream java.io.OutputStream int int int int int int
StackMap stack:
iload 4 /* i */
bipush 10
if_icmpeq 6
iload 4 /* i */
bipush 13
if_icmpeq 6
10: .line 120
aload 0 /* this */
getfield sun.misc.BASE64Decoder.decode_buffer:[B
iconst_0
iload 4 /* i */
i2b
bastore
11: .line 122
aload 0 /* this */
aload 1 /* inStream */
aload 0 /* this */
getfield sun.misc.BASE64Decoder.decode_buffer:[B
iconst_1
iload 3 /* rem */
iconst_1
isub
invokevirtual sun.misc.BASE64Decoder.readFully:(Ljava/io/InputStream;[BII)I
istore 4 /* i */
12: .line 123
iload 4 /* i */
iconst_m1
if_icmpne 14
13: .line 124
new sun.misc.CEStreamExhausted
dup
invokespecial sun.misc.CEStreamExhausted.<init>:()V
athrow
14: .line 127
StackMap locals:
StackMap stack:
iload 3 /* rem */
iconst_3
if_icmple 16
aload 0 /* this */
getfield sun.misc.BASE64Decoder.decode_buffer:[B
iconst_3
baload
bipush 61
if_icmpne 16
15: .line 128
iconst_3
istore 3 /* rem */
16: .line 130
StackMap locals:
StackMap stack:
iload 3 /* rem */
iconst_2
if_icmple 18
aload 0 /* this */
getfield sun.misc.BASE64Decoder.decode_buffer:[B
iconst_2
baload
bipush 61
if_icmpne 18
17: .line 131
iconst_2
istore 3 /* rem */
18: .line 133
StackMap locals:
StackMap stack:
iload 3 /* rem */
tableswitch { // 2 - 4
2: 21
3: 20
4: 19
default: 23
}
19: .line 135
StackMap locals:
StackMap stack:
getstatic sun.misc.BASE64Decoder.pem_convert_array:[B
aload 0 /* this */
getfield sun.misc.BASE64Decoder.decode_buffer:[B
iconst_3
baload
sipush 255
iand
baload
istore 8 /* d */
20: .line 138
StackMap locals:
StackMap stack:
getstatic sun.misc.BASE64Decoder.pem_convert_array:[B
aload 0 /* this */
getfield sun.misc.BASE64Decoder.decode_buffer:[B
iconst_2
baload
sipush 255
iand
baload
istore 7 /* c */
21: .line 141
StackMap locals:
StackMap stack:
getstatic sun.misc.BASE64Decoder.pem_convert_array:[B
aload 0 /* this */
getfield sun.misc.BASE64Decoder.decode_buffer:[B
iconst_1
baload
sipush 255
iand
baload
istore 6 /* b */
22: .line 142
getstatic sun.misc.BASE64Decoder.pem_convert_array:[B
aload 0 /* this */
getfield sun.misc.BASE64Decoder.decode_buffer:[B
iconst_0
baload
sipush 255
iand
baload
istore 5 /* a */
23: .line 146
StackMap locals:
StackMap stack:
iload 3 /* rem */
tableswitch { // 2 - 4
2: 24
3: 26
4: 29
default: 32
}
24: .line 148
StackMap locals:
StackMap stack:
aload 2 /* outStream */
iload 5 /* a */
iconst_2
ishl
sipush 252
iand
iload 6 /* b */
iconst_4
iushr
iconst_3
iand
ior
i2b
invokevirtual java.io.OutputStream.write:(I)V
25: .line 149
goto 32
26: .line 151
StackMap locals:
StackMap stack:
aload 2 /* outStream */
iload 5 /* a */
iconst_2
ishl
sipush 252
iand
iload 6 /* b */
iconst_4
iushr
iconst_3
iand
ior
i2b
invokevirtual java.io.OutputStream.write:(I)V
27: .line 152
aload 2 /* outStream */
iload 6 /* b */
iconst_4
ishl
sipush 240
iand
iload 7 /* c */
iconst_2
iushr
bipush 15
iand
ior
i2b
invokevirtual java.io.OutputStream.write:(I)V
28: .line 153
goto 32
29: .line 155
StackMap locals:
StackMap stack:
aload 2 /* outStream */
iload 5 /* a */
iconst_2
ishl
sipush 252
iand
iload 6 /* b */
iconst_4
iushr
iconst_3
iand
ior
i2b
invokevirtual java.io.OutputStream.write:(I)V
30: .line 156
aload 2 /* outStream */
iload 6 /* b */
iconst_4
ishl
sipush 240
iand
iload 7 /* c */
iconst_2
iushr
bipush 15
iand
ior
i2b
invokevirtual java.io.OutputStream.write:(I)V
31: .line 157
aload 2 /* outStream */
iload 7 /* c */
bipush 6
ishl
sipush 192
iand
iload 8 /* d */
bipush 63
iand
ior
i2b
invokevirtual java.io.OutputStream.write:(I)V
32: .line 160
StackMap locals:
StackMap stack:
return
end local 8 // byte d
end local 7 // byte c
end local 6 // byte b
end local 5 // byte a
end local 4 // int i
end local 3 // int rem
end local 2 // java.io.OutputStream outStream
end local 1 // java.io.PushbackInputStream inStream
end local 0 // sun.misc.BASE64Decoder this
LocalVariableTable:
Start End Slot Name Signature
0 33 0 this Lsun/misc/BASE64Decoder;
0 33 1 inStream Ljava/io/PushbackInputStream;
0 33 2 outStream Ljava/io/OutputStream;
0 33 3 rem I
7 33 4 i I
1 33 5 a B
2 33 6 b B
3 33 7 c B
4 33 8 d B
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
inStream
outStream
rem
}
SourceFile: "BASE64Decoder.java"