public class org.eclipse.core.internal.preferences.Base64
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.eclipse.core.internal.preferences.Base64
super_class: java.lang.Object
{
private static final byte equalSign;
descriptor: B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 61
static char[] digits;
descriptor: [C
flags: (0x0008) ACC_STATIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=0, args_size=0
0: .line 20
bipush 64
newarray 5
dup
iconst_0
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
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
1: .line 21
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
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
2: .line 22
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
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
3: .line 23
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
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
4: .line 20
putstatic org.eclipse.core.internal.preferences.Base64.digits:[C
5: .line 23
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 // org.eclipse.core.internal.preferences.Base64 this
0: .line 16
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
return
end local 0 // org.eclipse.core.internal.preferences.Base64 this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/eclipse/core/internal/preferences/Base64;
public static byte[] decode(byte[]);
descriptor: ([B)[B
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=11, args_size=1
start local 0 // byte[] data
0: .line 34
aload 0 /* data */
arraylength
ifne 2
1: .line 35
aload 0 /* data */
areturn
2: .line 36
StackMap locals:
StackMap stack:
aload 0 /* data */
arraylength
iconst_1
isub
istore 1 /* lastRealDataIndex */
start local 1 // int lastRealDataIndex
3: .line 37
goto 5
4: .line 38
StackMap locals: int
StackMap stack:
iinc 1 /* lastRealDataIndex */ -1
5: .line 37
StackMap locals:
StackMap stack:
aload 0 /* data */
iload 1 /* lastRealDataIndex */
baload
bipush 61
if_icmpeq 4
6: .line 40
aload 0 /* data */
arraylength
iconst_1
isub
iload 1 /* lastRealDataIndex */
isub
istore 2 /* padBytes */
start local 2 // int padBytes
7: .line 41
aload 0 /* data */
arraylength
bipush 6
imul
bipush 8
idiv
iload 2 /* padBytes */
isub
istore 3 /* byteLength */
start local 3 // int byteLength
8: .line 42
iload 3 /* byteLength */
newarray 8
astore 4 /* result */
start local 4 // byte[] result
9: .line 44
iconst_0
istore 5 /* dataIndex */
start local 5 // int dataIndex
10: .line 45
iconst_0
istore 6 /* resultIndex */
start local 6 // int resultIndex
11: .line 46
iconst_0
istore 7 /* allBits */
start local 7 // int allBits
12: .line 48
iload 1 /* lastRealDataIndex */
iconst_1
iadd
iconst_4
idiv
istore 8 /* resultChunks */
start local 8 // int resultChunks
13: .line 49
iconst_0
istore 9 /* i */
start local 9 // int i
14: goto 29
15: .line 50
StackMap locals: byte[] int int int byte[] int int int int int
StackMap stack:
iconst_0
istore 7 /* allBits */
16: .line 52
iconst_0
istore 10 /* j */
start local 10 // int j
17: goto 20
18: .line 53
StackMap locals: int
StackMap stack:
iload 7 /* allBits */
bipush 6
ishl
aload 0 /* data */
iload 5 /* dataIndex */
iinc 5 /* dataIndex */ 1
baload
invokestatic org.eclipse.core.internal.preferences.Base64.decodeDigit:(B)I
ior
istore 7 /* allBits */
19: .line 52
iinc 10 /* j */ 1
StackMap locals:
StackMap stack:
20: iload 10 /* j */
iconst_4
if_icmplt 18
end local 10 // int j
21: .line 55
iload 6 /* resultIndex */
iconst_2
iadd
istore 10 /* j */
start local 10 // int j
22: goto 26
23: .line 56
StackMap locals:
StackMap stack:
aload 4 /* result */
iload 10 /* j */
iload 7 /* allBits */
sipush 255
iand
i2b
bastore
24: .line 57
iload 7 /* allBits */
bipush 8
iushr
istore 7 /* allBits */
25: .line 55
iinc 10 /* j */ -1
StackMap locals:
StackMap stack:
26: iload 10 /* j */
iload 6 /* resultIndex */
if_icmpge 23
end local 10 // int j
27: .line 59
iinc 6 /* resultIndex */ 3
28: .line 49
iinc 9 /* i */ 1
StackMap locals:
StackMap stack:
29: iload 9 /* i */
iload 8 /* resultChunks */
if_icmplt 15
end local 9 // int i
30: .line 63
iload 2 /* padBytes */
tableswitch { // 1 - 2
1: 31
2: 46
default: 57
}
31: .line 68
StackMap locals:
StackMap stack:
iconst_0
istore 7 /* allBits */
32: .line 70
iconst_0
istore 9 /* j */
start local 9 // int j
33: goto 36
34: .line 71
StackMap locals: int
StackMap stack:
iload 7 /* allBits */
bipush 6
ishl
aload 0 /* data */
iload 5 /* dataIndex */
iinc 5 /* dataIndex */ 1
baload
invokestatic org.eclipse.core.internal.preferences.Base64.decodeDigit:(B)I
ior
istore 7 /* allBits */
35: .line 70
iinc 9 /* j */ 1
StackMap locals:
StackMap stack:
36: iload 9 /* j */
iconst_3
if_icmplt 34
end local 9 // int j
37: .line 76
iload 7 /* allBits */
bipush 6
ishl
istore 7 /* allBits */
38: .line 78
iload 7 /* allBits */
bipush 8
iushr
istore 7 /* allBits */
39: .line 80
iload 6 /* resultIndex */
iconst_1
iadd
istore 9 /* j */
start local 9 // int j
40: goto 44
41: .line 81
StackMap locals:
StackMap stack:
aload 4 /* result */
iload 9 /* j */
iload 7 /* allBits */
sipush 255
iand
i2b
bastore
42: .line 83
iload 7 /* allBits */
bipush 8
iushr
istore 7 /* allBits */
43: .line 80
iinc 9 /* j */ -1
StackMap locals:
StackMap stack:
44: iload 9 /* j */
iload 6 /* resultIndex */
if_icmpge 41
end local 9 // int j
45: .line 85
goto 57
46: .line 90
StackMap locals:
StackMap stack:
iconst_0
istore 7 /* allBits */
47: .line 92
iconst_0
istore 9 /* j */
start local 9 // int j
48: goto 51
49: .line 93
StackMap locals: int
StackMap stack:
iload 7 /* allBits */
bipush 6
ishl
aload 0 /* data */
iload 5 /* dataIndex */
iinc 5 /* dataIndex */ 1
baload
invokestatic org.eclipse.core.internal.preferences.Base64.decodeDigit:(B)I
ior
istore 7 /* allBits */
50: .line 92
iinc 9 /* j */ 1
StackMap locals:
StackMap stack:
51: iload 9 /* j */
iconst_2
if_icmplt 49
end local 9 // int j
52: .line 98
iload 7 /* allBits */
bipush 6
ishl
istore 7 /* allBits */
53: .line 99
iload 7 /* allBits */
bipush 6
ishl
istore 7 /* allBits */
54: .line 101
iload 7 /* allBits */
bipush 8
iushr
istore 7 /* allBits */
55: .line 102
iload 7 /* allBits */
bipush 8
iushr
istore 7 /* allBits */
56: .line 103
aload 4 /* result */
iload 6 /* resultIndex */
iload 7 /* allBits */
sipush 255
iand
i2b
bastore
57: .line 108
StackMap locals:
StackMap stack:
aload 4 /* result */
areturn
end local 8 // int resultChunks
end local 7 // int allBits
end local 6 // int resultIndex
end local 5 // int dataIndex
end local 4 // byte[] result
end local 3 // int byteLength
end local 2 // int padBytes
end local 1 // int lastRealDataIndex
end local 0 // byte[] data
LocalVariableTable:
Start End Slot Name Signature
0 58 0 data [B
3 58 1 lastRealDataIndex I
7 58 2 padBytes I
8 58 3 byteLength I
9 58 4 result [B
10 58 5 dataIndex I
11 58 6 resultIndex I
12 58 7 allBits I
13 58 8 resultChunks I
14 30 9 i I
17 21 10 j I
22 27 10 j I
33 37 9 j I
40 45 9 j I
48 52 9 j I
MethodParameters:
Name Flags
data
static int decodeDigit(byte);
descriptor: (B)I
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=2, args_size=1
start local 0 // byte data
0: .line 118
iload 0 /* data */
i2c
istore 1 /* charData */
start local 1 // char charData
1: .line 119
iload 1 /* charData */
bipush 90
if_icmpgt 3
iload 1 /* charData */
bipush 65
if_icmplt 3
2: .line 120
iload 1 /* charData */
bipush 65
isub
ireturn
3: .line 121
StackMap locals: int
StackMap stack:
iload 1 /* charData */
bipush 122
if_icmpgt 5
iload 1 /* charData */
bipush 97
if_icmplt 5
4: .line 122
iload 1 /* charData */
bipush 97
isub
bipush 26
iadd
ireturn
5: .line 123
StackMap locals:
StackMap stack:
iload 1 /* charData */
bipush 57
if_icmpgt 7
iload 1 /* charData */
bipush 48
if_icmplt 7
6: .line 124
iload 1 /* charData */
bipush 48
isub
bipush 52
iadd
ireturn
7: .line 125
StackMap locals:
StackMap stack:
iload 1 /* charData */
tableswitch { // 43 - 47
43: 8
44: 10
45: 10
46: 10
47: 9
default: 10
}
8: .line 127
StackMap locals:
StackMap stack:
bipush 62
ireturn
9: .line 129
StackMap locals:
StackMap stack:
bipush 63
ireturn
10: .line 131
StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Invalid char to decode: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 0 /* data */
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
end local 1 // char charData
end local 0 // byte data
LocalVariableTable:
Start End Slot Name Signature
0 11 0 data B
1 11 1 charData C
MethodParameters:
Name Flags
data
public static byte[] encode(byte[]);
descriptor: ([B)[B
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=10, args_size=1
start local 0 // byte[] data
0: .line 143
aload 0 /* data */
arraylength
iconst_3
idiv
istore 1 /* sourceChunks */
start local 1 // int sourceChunks
1: .line 144
aload 0 /* data */
arraylength
iconst_2
iadd
iconst_3
idiv
iconst_4
imul
istore 2 /* len */
start local 2 // int len
2: .line 145
iload 2 /* len */
newarray 8
astore 3 /* result */
start local 3 // byte[] result
3: .line 146
aload 0 /* data */
arraylength
iload 1 /* sourceChunks */
iconst_3
imul
isub
istore 4 /* extraBytes */
start local 4 // int extraBytes
4: .line 148
iconst_0
istore 5 /* dataIndex */
start local 5 // int dataIndex
5: .line 149
iconst_0
istore 6 /* resultIndex */
start local 6 // int resultIndex
6: .line 150
iconst_0
istore 7 /* allBits */
start local 7 // int allBits
7: .line 151
iconst_0
istore 8 /* i */
start local 8 // int i
8: goto 23
9: .line 152
StackMap locals: byte[] int int byte[] int int int int int
StackMap stack:
iconst_0
istore 7 /* allBits */
10: .line 154
iconst_0
istore 9 /* j */
start local 9 // int j
11: goto 14
12: .line 155
StackMap locals: int
StackMap stack:
iload 7 /* allBits */
bipush 8
ishl
aload 0 /* data */
iload 5 /* dataIndex */
iinc 5 /* dataIndex */ 1
baload
sipush 255
iand
ior
istore 7 /* allBits */
13: .line 154
iinc 9 /* j */ 1
StackMap locals:
StackMap stack:
14: iload 9 /* j */
iconst_3
if_icmplt 12
end local 9 // int j
15: .line 157
iload 6 /* resultIndex */
iconst_3
iadd
istore 9 /* j */
start local 9 // int j
16: goto 20
17: .line 158
StackMap locals:
StackMap stack:
aload 3 /* result */
iload 9 /* j */
getstatic org.eclipse.core.internal.preferences.Base64.digits:[C
iload 7 /* allBits */
bipush 63
iand
caload
i2b
bastore
18: .line 161
iload 7 /* allBits */
bipush 6
iushr
istore 7 /* allBits */
19: .line 157
iinc 9 /* j */ -1
StackMap locals:
StackMap stack:
20: iload 9 /* j */
iload 6 /* resultIndex */
if_icmpge 17
end local 9 // int j
21: .line 163
iinc 6 /* resultIndex */ 4
22: .line 151
iinc 8 /* i */ 1
StackMap locals:
StackMap stack:
23: iload 8 /* i */
iload 1 /* sourceChunks */
if_icmplt 9
end local 8 // int i
24: .line 167
iload 4 /* extraBytes */
tableswitch { // 1 - 2
1: 25
2: 37
default: 47
}
25: .line 169
StackMap locals:
StackMap stack:
aload 0 /* data */
iload 5 /* dataIndex */
iinc 5 /* dataIndex */ 1
baload
istore 7 /* allBits */
26: .line 170
iload 7 /* allBits */
bipush 8
ishl
istore 7 /* allBits */
27: .line 171
iload 7 /* allBits */
bipush 8
ishl
istore 7 /* allBits */
28: .line 173
iload 6 /* resultIndex */
iconst_3
iadd
istore 8 /* j */
start local 8 // int j
29: goto 33
30: .line 174
StackMap locals: int
StackMap stack:
aload 3 /* result */
iload 8 /* j */
getstatic org.eclipse.core.internal.preferences.Base64.digits:[C
iload 7 /* allBits */
bipush 63
iand
caload
i2b
bastore
31: .line 177
iload 7 /* allBits */
bipush 6
iushr
istore 7 /* allBits */
32: .line 173
iinc 8 /* j */ -1
StackMap locals:
StackMap stack:
33: iload 8 /* j */
iload 6 /* resultIndex */
if_icmpge 30
end local 8 // int j
34: .line 180
aload 3 /* result */
aload 3 /* result */
arraylength
iconst_1
isub
bipush 61
bastore
35: .line 181
aload 3 /* result */
aload 3 /* result */
arraylength
iconst_2
isub
bipush 61
bastore
36: .line 182
goto 47
37: .line 184
StackMap locals:
StackMap stack:
aload 0 /* data */
iload 5 /* dataIndex */
iinc 5 /* dataIndex */ 1
baload
istore 7 /* allBits */
38: .line 185
iload 7 /* allBits */
bipush 8
ishl
aload 0 /* data */
iload 5 /* dataIndex */
iinc 5 /* dataIndex */ 1
baload
sipush 255
iand
ior
istore 7 /* allBits */
39: .line 187
iload 7 /* allBits */
bipush 8
ishl
istore 7 /* allBits */
40: .line 189
iload 6 /* resultIndex */
iconst_3
iadd
istore 8 /* j */
start local 8 // int j
41: goto 45
42: .line 190
StackMap locals: int
StackMap stack:
aload 3 /* result */
iload 8 /* j */
getstatic org.eclipse.core.internal.preferences.Base64.digits:[C
iload 7 /* allBits */
bipush 63
iand
caload
i2b
bastore
43: .line 193
iload 7 /* allBits */
bipush 6
iushr
istore 7 /* allBits */
44: .line 189
iinc 8 /* j */ -1
StackMap locals:
StackMap stack:
45: iload 8 /* j */
iload 6 /* resultIndex */
if_icmpge 42
end local 8 // int j
46: .line 196
aload 3 /* result */
aload 3 /* result */
arraylength
iconst_1
isub
bipush 61
bastore
47: .line 199
StackMap locals:
StackMap stack:
aload 3 /* result */
areturn
end local 7 // int allBits
end local 6 // int resultIndex
end local 5 // int dataIndex
end local 4 // int extraBytes
end local 3 // byte[] result
end local 2 // int len
end local 1 // int sourceChunks
end local 0 // byte[] data
LocalVariableTable:
Start End Slot Name Signature
0 48 0 data [B
1 48 1 sourceChunks I
2 48 2 len I
3 48 3 result [B
4 48 4 extraBytes I
5 48 5 dataIndex I
6 48 6 resultIndex I
7 48 7 allBits I
8 24 8 i I
11 15 9 j I
16 21 9 j I
29 34 8 j I
41 46 8 j I
MethodParameters:
Name Flags
data
}
SourceFile: "Base64.java"