public class com.android.internal.telephony.uicc.IccUtils
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.android.internal.telephony.uicc.IccUtils
super_class: java.lang.Object
{
static final java.lang.String LOG_TAG;
descriptor: Ljava/lang/String;
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: "IccUtils"
private static final char[] HEX_CHARS;
descriptor: [C
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=0, args_size=0
0: .line 36
bipush 16
newarray 5
dup
iconst_0
1: .line 37
bipush 48
castore
dup
iconst_1
bipush 49
castore
dup
iconst_2
bipush 50
castore
dup
iconst_3
bipush 51
castore
dup
iconst_4
bipush 52
castore
dup
iconst_5
bipush 53
castore
dup
bipush 6
bipush 54
castore
dup
bipush 7
bipush 55
castore
dup
bipush 8
bipush 56
castore
dup
bipush 9
bipush 57
castore
dup
bipush 10
bipush 65
castore
dup
bipush 11
bipush 66
castore
dup
bipush 12
bipush 67
castore
dup
bipush 13
bipush 68
castore
dup
bipush 14
bipush 69
castore
dup
bipush 15
bipush 70
castore
2: .line 36
putstatic com.android.internal.telephony.uicc.IccUtils.HEX_CHARS:[C
3: .line 38
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 // com.android.internal.telephony.uicc.IccUtils this
0: .line 32
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
return
end local 0 // com.android.internal.telephony.uicc.IccUtils this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/android/internal/telephony/uicc/IccUtils;
public static java.lang.String bcdToString(byte[], int, int);
descriptor: ([BII)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=6, args_size=3
start local 0 // byte[] data
start local 1 // int offset
start local 2 // int length
0: .line 51
new java.lang.StringBuilder
dup
iload 2 /* length */
iconst_2
imul
invokespecial java.lang.StringBuilder.<init>:(I)V
astore 3 /* ret */
start local 3 // java.lang.StringBuilder ret
1: .line 53
iload 1 /* offset */
istore 4 /* i */
start local 4 // int i
2: goto 11
3: .line 56
StackMap locals: java.lang.StringBuilder int
StackMap stack:
aload 0 /* data */
iload 4 /* i */
baload
bipush 15
iand
istore 5 /* v */
start local 5 // int v
4: .line 57
iload 5 /* v */
bipush 9
if_icmple 5
goto 12
5: .line 58
StackMap locals: int
StackMap stack:
aload 3 /* ret */
bipush 48
iload 5 /* v */
iadd
i2c
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
6: .line 60
aload 0 /* data */
iload 4 /* i */
baload
iconst_4
ishr
bipush 15
iand
istore 5 /* v */
7: .line 62
iload 5 /* v */
bipush 15
if_icmpne 8
goto 10
8: .line 63
StackMap locals:
StackMap stack:
iload 5 /* v */
bipush 9
if_icmple 9
goto 12
9: .line 64
StackMap locals:
StackMap stack:
aload 3 /* ret */
bipush 48
iload 5 /* v */
iadd
i2c
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
end local 5 // int v
10: .line 53
StackMap locals:
StackMap stack:
iinc 4 /* i */ 1
StackMap locals:
StackMap stack:
11: iload 4 /* i */
iload 1 /* offset */
iload 2 /* length */
iadd
if_icmplt 3
end local 4 // int i
12: .line 67
StackMap locals:
StackMap stack:
aload 3 /* ret */
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 3 // java.lang.StringBuilder ret
end local 2 // int length
end local 1 // int offset
end local 0 // byte[] data
LocalVariableTable:
Start End Slot Name Signature
0 13 0 data [B
0 13 1 offset I
0 13 2 length I
1 13 3 ret Ljava/lang/StringBuilder;
2 12 4 i I
4 10 5 v I
MethodParameters:
Name Flags
data
offset
length
public static java.lang.String bcdToString(byte[]);
descriptor: ([B)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 // byte[] data
0: .line 74
aload 0 /* data */
iconst_0
aload 0 /* data */
arraylength
invokestatic com.android.internal.telephony.uicc.IccUtils.bcdToString:([BII)Ljava/lang/String;
areturn
end local 0 // byte[] data
LocalVariableTable:
Start End Slot Name Signature
0 1 0 data [B
MethodParameters:
Name Flags
data
public static byte[] bcdToBytes(java.lang.String);
descriptor: (Ljava/lang/String;)[B
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 // java.lang.String bcd
0: .line 83
aload 0 /* bcd */
invokevirtual java.lang.String.length:()I
iconst_1
iadd
iconst_2
idiv
newarray 8
astore 1 /* output */
start local 1 // byte[] output
1: .line 84
aload 0 /* bcd */
aload 1 /* output */
invokestatic com.android.internal.telephony.uicc.IccUtils.bcdToBytes:(Ljava/lang/String;[B)V
2: .line 85
aload 1 /* output */
areturn
end local 1 // byte[] output
end local 0 // java.lang.String bcd
LocalVariableTable:
Start End Slot Name Signature
0 3 0 bcd Ljava/lang/String;
1 3 1 output [B
MethodParameters:
Name Flags
bcd
public static void bcdToBytes(java.lang.String, byte[]);
descriptor: (Ljava/lang/String;[B)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=5, args_size=2
start local 0 // java.lang.String bcd
start local 1 // byte[] bytes
0: .line 96
aload 0 /* bcd */
invokevirtual java.lang.String.length:()I
iconst_2
irem
ifeq 2
1: .line 97
new java.lang.StringBuilder
dup
aload 0 /* bcd */
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "0"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 0 /* bcd */
2: .line 99
StackMap locals:
StackMap stack:
aload 1 /* bytes */
arraylength
iconst_2
imul
aload 0 /* bcd */
invokevirtual java.lang.String.length:()I
invokestatic java.lang.Math.min:(II)I
istore 2 /* size */
start local 2 // int size
3: .line 100
iconst_0
istore 3 /* i */
start local 3 // int i
4: iconst_0
istore 4 /* j */
start local 4 // int j
5: goto 8
6: .line 101
StackMap locals: int int int
StackMap stack:
aload 1 /* bytes */
iload 4 /* j */
aload 0 /* bcd */
iload 3 /* i */
iconst_1
iadd
invokevirtual java.lang.String.charAt:(I)C
invokestatic com.android.internal.telephony.uicc.IccUtils.charToByte:(C)B
iconst_4
ishl
aload 0 /* bcd */
iload 3 /* i */
invokevirtual java.lang.String.charAt:(I)C
invokestatic com.android.internal.telephony.uicc.IccUtils.charToByte:(C)B
ior
i2b
bastore
7: .line 100
iinc 3 /* i */ 2
iinc 4 /* j */ 1
StackMap locals:
StackMap stack:
8: iload 3 /* i */
iconst_1
iadd
iload 2 /* size */
if_icmplt 6
end local 4 // int j
end local 3 // int i
9: .line 103
return
end local 2 // int size
end local 1 // byte[] bytes
end local 0 // java.lang.String bcd
LocalVariableTable:
Start End Slot Name Signature
0 10 0 bcd Ljava/lang/String;
0 10 1 bytes [B
3 10 2 size I
4 9 3 i I
5 9 4 j I
MethodParameters:
Name Flags
bcd
bytes
public static java.lang.String bcdPlmnToString(byte[], int);
descriptor: ([BI)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=4, args_size=2
start local 0 // byte[] data
start local 1 // int offset
0: .line 111
iload 1 /* offset */
iconst_3
iadd
aload 0 /* data */
arraylength
if_icmple 2
1: .line 112
aconst_null
areturn
2: .line 114
StackMap locals:
StackMap stack:
iconst_3
newarray 8
astore 2 /* trans */
start local 2 // byte[] trans
3: .line 115
aload 2 /* trans */
iconst_0
aload 0 /* data */
iconst_0
iload 1 /* offset */
iadd
baload
iconst_4
ishl
aload 0 /* data */
iconst_0
iload 1 /* offset */
iadd
baload
iconst_4
ishr
bipush 15
iand
ior
i2b
bastore
4: .line 116
aload 2 /* trans */
iconst_1
aload 0 /* data */
iconst_1
iload 1 /* offset */
iadd
baload
iconst_4
ishl
aload 0 /* data */
iconst_2
iload 1 /* offset */
iadd
baload
bipush 15
iand
ior
i2b
bastore
5: .line 117
aload 2 /* trans */
iconst_2
aload 0 /* data */
iconst_2
iload 1 /* offset */
iadd
baload
sipush 240
iand
aload 0 /* data */
iconst_1
iload 1 /* offset */
iadd
baload
iconst_4
ishr
bipush 15
iand
ior
i2b
bastore
6: .line 118
aload 2 /* trans */
invokestatic com.android.internal.telephony.uicc.IccUtils.bytesToHexString:([B)Ljava/lang/String;
astore 3 /* ret */
start local 3 // java.lang.String ret
7: .line 121
aload 3 /* ret */
ldc "F"
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
ifeq 9
8: .line 122
aload 3 /* ret */
ldc "F"
ldc ""
invokevirtual java.lang.String.replaceAll:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
astore 3 /* ret */
9: .line 124
StackMap locals: byte[] java.lang.String
StackMap stack:
aload 3 /* ret */
areturn
end local 3 // java.lang.String ret
end local 2 // byte[] trans
end local 1 // int offset
end local 0 // byte[] data
LocalVariableTable:
Start End Slot Name Signature
0 10 0 data [B
0 10 1 offset I
3 10 2 trans [B
7 10 3 ret Ljava/lang/String;
MethodParameters:
Name Flags
data
offset
public static java.lang.String bchToString(byte[], int, int);
descriptor: ([BII)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=6, args_size=3
start local 0 // byte[] data
start local 1 // int offset
start local 2 // int length
0: .line 132
new java.lang.StringBuilder
dup
iload 2 /* length */
iconst_2
imul
invokespecial java.lang.StringBuilder.<init>:(I)V
astore 3 /* ret */
start local 3 // java.lang.StringBuilder ret
1: .line 134
iload 1 /* offset */
istore 4 /* i */
start local 4 // int i
2: goto 8
3: .line 137
StackMap locals: java.lang.StringBuilder int
StackMap stack:
aload 0 /* data */
iload 4 /* i */
baload
bipush 15
iand
istore 5 /* v */
start local 5 // int v
4: .line 138
aload 3 /* ret */
getstatic com.android.internal.telephony.uicc.IccUtils.HEX_CHARS:[C
iload 5 /* v */
caload
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
5: .line 140
aload 0 /* data */
iload 4 /* i */
baload
iconst_4
ishr
bipush 15
iand
istore 5 /* v */
6: .line 141
aload 3 /* ret */
getstatic com.android.internal.telephony.uicc.IccUtils.HEX_CHARS:[C
iload 5 /* v */
caload
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
end local 5 // int v
7: .line 134
iinc 4 /* i */ 1
StackMap locals:
StackMap stack:
8: iload 4 /* i */
iload 1 /* offset */
iload 2 /* length */
iadd
if_icmplt 3
end local 4 // int i
9: .line 144
aload 3 /* ret */
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 3 // java.lang.StringBuilder ret
end local 2 // int length
end local 1 // int offset
end local 0 // byte[] data
LocalVariableTable:
Start End Slot Name Signature
0 10 0 data [B
0 10 1 offset I
0 10 2 length I
1 10 3 ret Ljava/lang/StringBuilder;
2 9 4 i I
4 7 5 v I
MethodParameters:
Name Flags
data
offset
length
public static java.lang.String cdmaBcdToString(byte[], int, int);
descriptor: ([BII)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=7, args_size=3
start local 0 // byte[] data
start local 1 // int offset
start local 2 // int length
0: .line 152
new java.lang.StringBuilder
dup
iload 2 /* length */
invokespecial java.lang.StringBuilder.<init>:(I)V
astore 3 /* ret */
start local 3 // java.lang.StringBuilder ret
1: .line 154
iconst_0
istore 4 /* count */
start local 4 // int count
2: .line 155
iload 1 /* offset */
istore 5 /* i */
start local 5 // int i
3: goto 13
4: .line 157
StackMap locals: java.lang.StringBuilder int int
StackMap stack:
aload 0 /* data */
iload 5 /* i */
baload
bipush 15
iand
istore 6 /* v */
start local 6 // int v
5: .line 158
iload 6 /* v */
bipush 9
if_icmple 6
iconst_0
istore 6 /* v */
6: .line 159
StackMap locals: int
StackMap stack:
aload 3 /* ret */
bipush 48
iload 6 /* v */
iadd
i2c
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
7: .line 161
iinc 4 /* count */ 1
iload 4 /* count */
iload 2 /* length */
if_icmpne 8
goto 14
8: .line 163
StackMap locals:
StackMap stack:
aload 0 /* data */
iload 5 /* i */
baload
iconst_4
ishr
bipush 15
iand
istore 6 /* v */
9: .line 164
iload 6 /* v */
bipush 9
if_icmple 10
iconst_0
istore 6 /* v */
10: .line 165
StackMap locals:
StackMap stack:
aload 3 /* ret */
bipush 48
iload 6 /* v */
iadd
i2c
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
11: .line 166
iinc 4 /* count */ 1
end local 6 // int v
12: .line 155
iinc 5 /* i */ 1
StackMap locals:
StackMap stack:
13: iload 4 /* count */
iload 2 /* length */
if_icmplt 4
end local 5 // int i
14: .line 168
StackMap locals:
StackMap stack:
aload 3 /* ret */
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 4 // int count
end local 3 // java.lang.StringBuilder ret
end local 2 // int length
end local 1 // int offset
end local 0 // byte[] data
LocalVariableTable:
Start End Slot Name Signature
0 15 0 data [B
0 15 1 offset I
0 15 2 length I
1 15 3 ret Ljava/lang/StringBuilder;
2 15 4 count I
3 14 5 i I
5 12 6 v I
MethodParameters:
Name Flags
data
offset
length
public static int gsmBcdByteToInt(byte);
descriptor: (B)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 // byte b
0: .line 187
iconst_0
istore 1 /* ret */
start local 1 // int ret
1: .line 190
iload 0 /* b */
sipush 240
iand
sipush 144
if_icmpgt 3
2: .line 191
iload 0 /* b */
iconst_4
ishr
bipush 15
iand
istore 1 /* ret */
3: .line 194
StackMap locals: int
StackMap stack:
iload 0 /* b */
bipush 15
iand
bipush 9
if_icmpgt 5
4: .line 195
iload 1 /* ret */
iload 0 /* b */
bipush 15
iand
bipush 10
imul
iadd
istore 1 /* ret */
5: .line 198
StackMap locals:
StackMap stack:
iload 1 /* ret */
ireturn
end local 1 // int ret
end local 0 // byte b
LocalVariableTable:
Start End Slot Name Signature
0 6 0 b B
1 6 1 ret I
MethodParameters:
Name Flags
b
public static int cdmaBcdByteToInt(byte);
descriptor: (B)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 // byte b
0: .line 209
iconst_0
istore 1 /* ret */
start local 1 // int ret
1: .line 212
iload 0 /* b */
sipush 240
iand
sipush 144
if_icmpgt 3
2: .line 213
iload 0 /* b */
iconst_4
ishr
bipush 15
iand
bipush 10
imul
istore 1 /* ret */
3: .line 216
StackMap locals: int
StackMap stack:
iload 0 /* b */
bipush 15
iand
bipush 9
if_icmpgt 5
4: .line 217
iload 1 /* ret */
iload 0 /* b */
bipush 15
iand
iadd
istore 1 /* ret */
5: .line 220
StackMap locals:
StackMap stack:
iload 1 /* ret */
ireturn
end local 1 // int ret
end local 0 // byte b
LocalVariableTable:
Start End Slot Name Signature
0 6 0 b B
1 6 1 ret I
MethodParameters:
Name Flags
b
public static java.lang.String adnStringFieldToString(byte[], int, int);
descriptor: ([BII)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=3, args_size=3
0: .line 342
new java.lang.Error
dup
ldc "Unresolved compilation problem: \n\tcom.android.internal.R.string cannot be resolved to a variable\n"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
LocalVariableTable:
Start End Slot Name Signature
MethodParameters:
Name Flags
data
offset
length
public static int hexCharToInt(char);
descriptor: (C)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=1, args_size=1
start local 0 // char c
0: .line 351
iload 0 /* c */
bipush 48
if_icmplt 1
iload 0 /* c */
bipush 57
if_icmpgt 1
iload 0 /* c */
bipush 48
isub
ireturn
1: .line 352
StackMap locals:
StackMap stack:
iload 0 /* c */
bipush 65
if_icmplt 2
iload 0 /* c */
bipush 70
if_icmpgt 2
iload 0 /* c */
bipush 65
isub
bipush 10
iadd
ireturn
2: .line 353
StackMap locals:
StackMap stack:
iload 0 /* c */
bipush 97
if_icmplt 3
iload 0 /* c */
bipush 102
if_icmpgt 3
iload 0 /* c */
bipush 97
isub
bipush 10
iadd
ireturn
3: .line 355
StackMap locals:
StackMap stack:
new java.lang.RuntimeException
dup
new java.lang.StringBuilder
dup
ldc "invalid hex char '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 0 /* c */
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
ldc "'"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
end local 0 // char c
LocalVariableTable:
Start End Slot Name Signature
0 4 0 c C
MethodParameters:
Name Flags
c
public static byte[] hexStringToBytes(java.lang.String);
descriptor: (Ljava/lang/String;)[B
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=4, args_size=1
start local 0 // java.lang.String s
0: .line 372
aload 0 /* s */
ifnonnull 1
aconst_null
areturn
1: .line 374
StackMap locals:
StackMap stack:
aload 0 /* s */
invokevirtual java.lang.String.length:()I
istore 2 /* sz */
start local 2 // int sz
2: .line 376
iload 2 /* sz */
iconst_2
idiv
newarray 8
astore 1 /* ret */
start local 1 // byte[] ret
3: .line 378
iconst_0
istore 3 /* i */
start local 3 // int i
4: goto 9
5: .line 379
StackMap locals: byte[] int int
StackMap stack:
aload 1 /* ret */
iload 3 /* i */
iconst_2
idiv
aload 0 /* s */
iload 3 /* i */
invokevirtual java.lang.String.charAt:(I)C
invokestatic com.android.internal.telephony.uicc.IccUtils.hexCharToInt:(C)I
iconst_4
ishl
6: .line 380
aload 0 /* s */
iload 3 /* i */
iconst_1
iadd
invokevirtual java.lang.String.charAt:(I)C
invokestatic com.android.internal.telephony.uicc.IccUtils.hexCharToInt:(C)I
ior
i2b
7: .line 379
bastore
8: .line 378
iinc 3 /* i */ 2
StackMap locals:
StackMap stack:
9: iload 3 /* i */
iload 2 /* sz */
if_icmplt 5
end local 3 // int i
10: .line 383
aload 1 /* ret */
areturn
end local 2 // int sz
end local 1 // byte[] ret
end local 0 // java.lang.String s
LocalVariableTable:
Start End Slot Name Signature
0 11 0 s Ljava/lang/String;
3 11 1 ret [B
2 11 2 sz I
4 10 3 i I
MethodParameters:
Name Flags
s
public static java.lang.String bytesToHexString(byte[]);
descriptor: ([B)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=4, args_size=1
start local 0 // byte[] bytes
0: .line 396
aload 0 /* bytes */
ifnonnull 1
aconst_null
areturn
1: .line 398
StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
iconst_2
aload 0 /* bytes */
arraylength
imul
invokespecial java.lang.StringBuilder.<init>:(I)V
astore 1 /* ret */
start local 1 // java.lang.StringBuilder ret
2: .line 400
iconst_0
istore 2 /* i */
start local 2 // int i
3: goto 9
4: .line 403
StackMap locals: java.lang.StringBuilder int
StackMap stack:
bipush 15
aload 0 /* bytes */
iload 2 /* i */
baload
iconst_4
ishr
iand
istore 3 /* b */
start local 3 // int b
5: .line 405
aload 1 /* ret */
getstatic com.android.internal.telephony.uicc.IccUtils.HEX_CHARS:[C
iload 3 /* b */
caload
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
6: .line 407
bipush 15
aload 0 /* bytes */
iload 2 /* i */
baload
iand
istore 3 /* b */
7: .line 409
aload 1 /* ret */
getstatic com.android.internal.telephony.uicc.IccUtils.HEX_CHARS:[C
iload 3 /* b */
caload
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
end local 3 // int b
8: .line 400
iinc 2 /* i */ 1
StackMap locals:
StackMap stack:
9: iload 2 /* i */
aload 0 /* bytes */
arraylength
if_icmplt 4
end local 2 // int i
10: .line 412
aload 1 /* ret */
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 1 // java.lang.StringBuilder ret
end local 0 // byte[] bytes
LocalVariableTable:
Start End Slot Name Signature
0 11 0 bytes [B
2 11 1 ret Ljava/lang/StringBuilder;
3 10 2 i I
5 8 3 b I
MethodParameters:
Name Flags
bytes
public static java.lang.String networkNameToString(byte[], int, int);
descriptor: ([BII)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=7, args_size=3
start local 0 // byte[] data
start local 1 // int offset
start local 2 // int length
0: .line 425
aload 0 /* data */
iload 1 /* offset */
baload
sipush 128
iand
sipush 128
if_icmpne 1
iload 2 /* length */
iconst_1
if_icmpge 2
1: .line 426
StackMap locals:
StackMap stack:
ldc ""
areturn
2: .line 429
StackMap locals:
StackMap stack:
aload 0 /* data */
iload 1 /* offset */
baload
iconst_4
iushr
bipush 7
iand
tableswitch { // 0 - 1
0: 3
1: 7
default: 15
}
3: .line 433
StackMap locals:
StackMap stack:
aload 0 /* data */
iload 1 /* offset */
baload
bipush 7
iand
istore 5 /* unusedBits */
start local 5 // int unusedBits
4: .line 434
iload 2 /* length */
iconst_1
isub
bipush 8
imul
iload 5 /* unusedBits */
isub
bipush 7
idiv
istore 4 /* countSeptets */
start local 4 // int countSeptets
5: .line 435
aload 0 /* data */
iload 1 /* offset */
iconst_1
iadd
iload 4 /* countSeptets */
invokestatic com.android.internal.telephony.GsmAlphabet.gsm7BitPackedToString:([BII)Ljava/lang/String;
astore 3 /* ret */
start local 3 // java.lang.String ret
6: .line 436
goto 16
end local 5 // int unusedBits
end local 4 // int countSeptets
end local 3 // java.lang.String ret
7: .line 440
StackMap locals:
StackMap stack:
new java.lang.String
dup
aload 0 /* data */
8: .line 441
iload 1 /* offset */
iconst_1
iadd
iload 2 /* length */
iconst_1
isub
ldc "utf-16"
9: .line 440
invokespecial java.lang.String.<init>:([BIILjava/lang/String;)V
astore 3 /* ret */
start local 3 // java.lang.String ret
10: .line 442
goto 16
end local 3 // java.lang.String ret
StackMap locals:
StackMap stack: java.io.UnsupportedEncodingException
11: astore 6 /* ex */
start local 6 // java.io.UnsupportedEncodingException ex
12: .line 443
ldc ""
astore 3 /* ret */
start local 3 // java.lang.String ret
13: .line 444
ldc "IccUtils"
ldc "implausible UnsupportedEncodingException"
aload 6 /* ex */
invokestatic android.telephony.Rlog.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
pop
end local 6 // java.io.UnsupportedEncodingException ex
14: .line 446
goto 16
end local 3 // java.lang.String ret
15: .line 450
StackMap locals:
StackMap stack:
ldc ""
astore 3 /* ret */
start local 3 // java.lang.String ret
16: .line 458
StackMap locals: java.lang.String
StackMap stack:
aload 0 /* data */
iload 1 /* offset */
baload
pop
17: .line 462
aload 3 /* ret */
areturn
end local 3 // java.lang.String ret
end local 2 // int length
end local 1 // int offset
end local 0 // byte[] data
LocalVariableTable:
Start End Slot Name Signature
0 18 0 data [B
0 18 1 offset I
0 18 2 length I
6 7 3 ret Ljava/lang/String;
10 11 3 ret Ljava/lang/String;
13 15 3 ret Ljava/lang/String;
16 18 3 ret Ljava/lang/String;
5 7 4 countSeptets I
4 7 5 unusedBits I
12 14 6 ex Ljava/io/UnsupportedEncodingException;
Exception table:
from to target type
7 10 11 Class java.io.UnsupportedEncodingException
MethodParameters:
Name Flags
data
offset
length
public static android.graphics.Bitmap parseToBnW(byte[], int);
descriptor: ([BI)Landroid/graphics/Bitmap;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=10, args_size=2
start local 0 // byte[] data
start local 1 // int length
0: .line 472
iconst_0
istore 2 /* valueIndex */
start local 2 // int valueIndex
1: .line 473
aload 0 /* data */
iload 2 /* valueIndex */
iinc 2 /* valueIndex */ 1
baload
sipush 255
iand
istore 3 /* width */
start local 3 // int width
2: .line 474
aload 0 /* data */
iload 2 /* valueIndex */
iinc 2 /* valueIndex */ 1
baload
sipush 255
iand
istore 4 /* height */
start local 4 // int height
3: .line 475
iload 3 /* width */
iload 4 /* height */
imul
istore 5 /* numOfPixels */
start local 5 // int numOfPixels
4: .line 477
iload 5 /* numOfPixels */
newarray 10
astore 6 /* pixels */
start local 6 // int[] pixels
5: .line 479
iconst_0
istore 7 /* pixelIndex */
start local 7 // int pixelIndex
6: .line 480
bipush 7
istore 8 /* bitIndex */
start local 8 // int bitIndex
7: .line 481
iconst_0
istore 9 /* currentByte */
start local 9 // byte currentByte
8: .line 482
goto 13
9: .line 484
StackMap locals: byte[] int int int int int int[] int int int
StackMap stack:
iload 7 /* pixelIndex */
bipush 8
irem
ifne 12
10: .line 485
aload 0 /* data */
iload 2 /* valueIndex */
iinc 2 /* valueIndex */ 1
baload
istore 9 /* currentByte */
11: .line 486
bipush 7
istore 8 /* bitIndex */
12: .line 488
StackMap locals:
StackMap stack:
aload 6 /* pixels */
iload 7 /* pixelIndex */
iinc 7 /* pixelIndex */ 1
iload 9 /* currentByte */
iload 8 /* bitIndex */
iinc 8 /* bitIndex */ -1
ishr
iconst_1
iand
invokestatic com.android.internal.telephony.uicc.IccUtils.bitToRGB:(I)I
iastore
13: .line 482
StackMap locals:
StackMap stack:
iload 7 /* pixelIndex */
iload 5 /* numOfPixels */
if_icmplt 9
14: .line 491
iload 7 /* pixelIndex */
iload 5 /* numOfPixels */
if_icmpeq 16
15: .line 492
ldc "IccUtils"
ldc "parse end and size error"
invokestatic android.telephony.Rlog.e:(Ljava/lang/String;Ljava/lang/String;)I
pop
16: .line 494
StackMap locals:
StackMap stack:
aload 6 /* pixels */
iload 3 /* width */
iload 4 /* height */
getstatic android.graphics.Bitmap$Config.ARGB_8888:Landroid/graphics/Bitmap$Config;
invokestatic android.graphics.Bitmap.createBitmap:([IIILandroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap;
areturn
end local 9 // byte currentByte
end local 8 // int bitIndex
end local 7 // int pixelIndex
end local 6 // int[] pixels
end local 5 // int numOfPixels
end local 4 // int height
end local 3 // int width
end local 2 // int valueIndex
end local 1 // int length
end local 0 // byte[] data
LocalVariableTable:
Start End Slot Name Signature
0 17 0 data [B
0 17 1 length I
1 17 2 valueIndex I
2 17 3 width I
3 17 4 height I
4 17 5 numOfPixels I
5 17 6 pixels [I
6 17 7 pixelIndex I
7 17 8 bitIndex I
8 17 9 currentByte B
MethodParameters:
Name Flags
data
length
private static int bitToRGB(int);
descriptor: (I)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 // int bit
0: .line 498
iload 0 /* bit */
iconst_1
if_icmpne 2
1: .line 499
iconst_m1
ireturn
2: .line 501
StackMap locals:
StackMap stack:
ldc -16777216
ireturn
end local 0 // int bit
LocalVariableTable:
Start End Slot Name Signature
0 3 0 bit I
MethodParameters:
Name Flags
bit
public static android.graphics.Bitmap parseToRGB(byte[], int, boolean);
descriptor: ([BIZ)Landroid/graphics/Bitmap;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=11, args_size=3
start local 0 // byte[] data
start local 1 // int length
start local 2 // boolean transparency
0: .line 515
iconst_0
istore 3 /* valueIndex */
start local 3 // int valueIndex
1: .line 516
aload 0 /* data */
iload 3 /* valueIndex */
iinc 3 /* valueIndex */ 1
baload
sipush 255
iand
istore 4 /* width */
start local 4 // int width
2: .line 517
aload 0 /* data */
iload 3 /* valueIndex */
iinc 3 /* valueIndex */ 1
baload
sipush 255
iand
istore 5 /* height */
start local 5 // int height
3: .line 518
aload 0 /* data */
iload 3 /* valueIndex */
iinc 3 /* valueIndex */ 1
baload
sipush 255
iand
istore 6 /* bits */
start local 6 // int bits
4: .line 519
aload 0 /* data */
iload 3 /* valueIndex */
iinc 3 /* valueIndex */ 1
baload
sipush 255
iand
istore 7 /* colorNumber */
start local 7 // int colorNumber
5: .line 520
aload 0 /* data */
iload 3 /* valueIndex */
iinc 3 /* valueIndex */ 1
baload
sipush 255
iand
bipush 8
ishl
6: .line 521
aload 0 /* data */
iload 3 /* valueIndex */
iinc 3 /* valueIndex */ 1
baload
sipush 255
iand
7: .line 520
ior
istore 8 /* clutOffset */
start local 8 // int clutOffset
8: .line 523
aload 0 /* data */
iload 8 /* clutOffset */
iload 7 /* colorNumber */
invokestatic com.android.internal.telephony.uicc.IccUtils.getCLUT:([BII)[I
astore 9 /* colorIndexArray */
start local 9 // int[] colorIndexArray
9: .line 524
iload 2 /* transparency */
ifeq 11
10: .line 525
aload 9 /* colorIndexArray */
iload 7 /* colorNumber */
iconst_1
isub
iconst_0
iastore
11: .line 528
StackMap locals: byte[] int int int int int int int int int[]
StackMap stack:
aconst_null
astore 10 /* resultArray */
start local 10 // int[] resultArray
12: .line 529
bipush 8
iload 6 /* bits */
irem
ifne 17
13: .line 530
aload 0 /* data */
iload 3 /* valueIndex */
14: .line 531
iload 4 /* width */
iload 5 /* height */
imul
aload 9 /* colorIndexArray */
iload 6 /* bits */
15: .line 530
invokestatic com.android.internal.telephony.uicc.IccUtils.mapTo2OrderBitColor:([BII[II)[I
astore 10 /* resultArray */
16: .line 532
goto 20
17: .line 533
StackMap locals: int[]
StackMap stack:
aload 0 /* data */
iload 3 /* valueIndex */
18: .line 534
iload 4 /* width */
iload 5 /* height */
imul
aload 9 /* colorIndexArray */
iload 6 /* bits */
19: .line 533
invokestatic com.android.internal.telephony.uicc.IccUtils.mapToNon2OrderBitColor:([BII[II)[I
astore 10 /* resultArray */
20: .line 537
StackMap locals:
StackMap stack:
aload 10 /* resultArray */
iload 4 /* width */
iload 5 /* height */
21: .line 538
getstatic android.graphics.Bitmap$Config.RGB_565:Landroid/graphics/Bitmap$Config;
22: .line 537
invokestatic android.graphics.Bitmap.createBitmap:([IIILandroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap;
areturn
end local 10 // int[] resultArray
end local 9 // int[] colorIndexArray
end local 8 // int clutOffset
end local 7 // int colorNumber
end local 6 // int bits
end local 5 // int height
end local 4 // int width
end local 3 // int valueIndex
end local 2 // boolean transparency
end local 1 // int length
end local 0 // byte[] data
LocalVariableTable:
Start End Slot Name Signature
0 23 0 data [B
0 23 1 length I
0 23 2 transparency Z
1 23 3 valueIndex I
2 23 4 width I
3 23 5 height I
4 23 6 bits I
5 23 7 colorNumber I
8 23 8 clutOffset I
9 23 9 colorIndexArray [I
12 23 10 resultArray [I
MethodParameters:
Name Flags
data
length
transparency
private static int[] mapTo2OrderBitColor(byte[], int, int, int[], int);
descriptor: ([BII[II)[I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=12, args_size=5
start local 0 // byte[] data
start local 1 // int valueIndex
start local 2 // int length
start local 3 // int[] colorArray
start local 4 // int bits
0: .line 543
bipush 8
iload 4 /* bits */
irem
ifeq 5
1: .line 544
ldc "IccUtils"
ldc "not event number of color"
invokestatic android.telephony.Rlog.e:(Ljava/lang/String;Ljava/lang/String;)I
pop
2: .line 545
aload 0 /* data */
iload 1 /* valueIndex */
iload 2 /* length */
aload 3 /* colorArray */
3: .line 546
iload 4 /* bits */
4: .line 545
invokestatic com.android.internal.telephony.uicc.IccUtils.mapToNon2OrderBitColor:([BII[II)[I
areturn
5: .line 549
StackMap locals:
StackMap stack:
iconst_1
istore 5 /* mask */
start local 5 // int mask
6: .line 550
iload 4 /* bits */
tableswitch { // 1 - 8
1: 7
2: 9
3: 14
4: 11
5: 14
6: 14
7: 14
8: 13
default: 14
}
7: .line 552
StackMap locals: int
StackMap stack:
iconst_1
istore 5 /* mask */
8: .line 553
goto 14
9: .line 555
StackMap locals:
StackMap stack:
iconst_3
istore 5 /* mask */
10: .line 556
goto 14
11: .line 558
StackMap locals:
StackMap stack:
bipush 15
istore 5 /* mask */
12: .line 559
goto 14
13: .line 561
StackMap locals:
StackMap stack:
sipush 255
istore 5 /* mask */
14: .line 565
StackMap locals:
StackMap stack:
iload 2 /* length */
newarray 10
astore 6 /* resultArray */
start local 6 // int[] resultArray
15: .line 566
iconst_0
istore 7 /* resultIndex */
start local 7 // int resultIndex
16: .line 567
bipush 8
iload 4 /* bits */
idiv
istore 8 /* run */
start local 8 // int run
17: .line 568
goto 27
18: .line 569
StackMap locals: int[] int int
StackMap stack:
aload 0 /* data */
iload 1 /* valueIndex */
iinc 1 /* valueIndex */ 1
baload
istore 9 /* tempByte */
start local 9 // byte tempByte
19: .line 570
iconst_0
istore 10 /* runIndex */
start local 10 // int runIndex
20: goto 26
21: .line 571
StackMap locals: int int
StackMap stack:
iload 8 /* run */
iload 10 /* runIndex */
isub
iconst_1
isub
istore 11 /* offset */
start local 11 // int offset
22: .line 572
aload 6 /* resultArray */
iload 7 /* resultIndex */
iinc 7 /* resultIndex */ 1
aload 3 /* colorArray */
iload 9 /* tempByte */
iload 11 /* offset */
iload 4 /* bits */
imul
ishr
23: .line 573
iload 5 /* mask */
iand
iaload
24: .line 572
iastore
end local 11 // int offset
25: .line 570
iinc 10 /* runIndex */ 1
StackMap locals:
StackMap stack:
26: iload 10 /* runIndex */
iload 8 /* run */
if_icmplt 21
end local 10 // int runIndex
end local 9 // byte tempByte
27: .line 568
StackMap locals:
StackMap stack:
iload 7 /* resultIndex */
iload 2 /* length */
if_icmplt 18
28: .line 576
aload 6 /* resultArray */
areturn
end local 8 // int run
end local 7 // int resultIndex
end local 6 // int[] resultArray
end local 5 // int mask
end local 4 // int bits
end local 3 // int[] colorArray
end local 2 // int length
end local 1 // int valueIndex
end local 0 // byte[] data
LocalVariableTable:
Start End Slot Name Signature
0 29 0 data [B
0 29 1 valueIndex I
0 29 2 length I
0 29 3 colorArray [I
0 29 4 bits I
6 29 5 mask I
15 29 6 resultArray [I
16 29 7 resultIndex I
17 29 8 run I
19 27 9 tempByte B
20 27 10 runIndex I
22 25 11 offset I
MethodParameters:
Name Flags
data
valueIndex
length
colorArray
bits
private static int[] mapToNon2OrderBitColor(byte[], int, int, int[], int);
descriptor: ([BII[II)[I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=6, args_size=5
start local 0 // byte[] data
start local 1 // int valueIndex
start local 2 // int length
start local 3 // int[] colorArray
start local 4 // int bits
0: .line 581
bipush 8
iload 4 /* bits */
irem
ifne 5
1: .line 582
ldc "IccUtils"
ldc "not odd number of color"
invokestatic android.telephony.Rlog.e:(Ljava/lang/String;Ljava/lang/String;)I
pop
2: .line 583
aload 0 /* data */
iload 1 /* valueIndex */
iload 2 /* length */
aload 3 /* colorArray */
3: .line 584
iload 4 /* bits */
4: .line 583
invokestatic com.android.internal.telephony.uicc.IccUtils.mapTo2OrderBitColor:([BII[II)[I
areturn
5: .line 587
StackMap locals:
StackMap stack:
iload 2 /* length */
newarray 10
astore 5 /* resultArray */
start local 5 // int[] resultArray
6: .line 589
aload 5 /* resultArray */
areturn
end local 5 // int[] resultArray
end local 4 // int bits
end local 3 // int[] colorArray
end local 2 // int length
end local 1 // int valueIndex
end local 0 // byte[] data
LocalVariableTable:
Start End Slot Name Signature
0 7 0 data [B
0 7 1 valueIndex I
0 7 2 length I
0 7 3 colorArray [I
0 7 4 bits I
6 7 5 resultArray [I
MethodParameters:
Name Flags
data
valueIndex
length
colorArray
bits
private static int[] getCLUT(byte[], int, int);
descriptor: ([BII)[I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=8, args_size=3
start local 0 // byte[] rawData
start local 1 // int offset
start local 2 // int number
0: .line 593
aload 0 /* rawData */
ifnonnull 2
1: .line 594
aconst_null
areturn
2: .line 597
StackMap locals:
StackMap stack:
iload 2 /* number */
newarray 10
astore 3 /* result */
start local 3 // int[] result
3: .line 598
iload 1 /* offset */
iload 2 /* number */
iconst_3
imul
iadd
istore 4 /* endIndex */
start local 4 // int endIndex
4: .line 599
iload 1 /* offset */
istore 5 /* valueIndex */
start local 5 // int valueIndex
5: .line 600
iconst_0
istore 6 /* colorIndex */
start local 6 // int colorIndex
6: .line 601
ldc -16777216
istore 7 /* alpha */
start local 7 // int alpha
7: .line 603
StackMap locals: byte[] int int int[] int int int int
StackMap stack:
aload 3 /* result */
iload 6 /* colorIndex */
iinc 6 /* colorIndex */ 1
iload 7 /* alpha */
8: .line 604
aload 0 /* rawData */
iload 5 /* valueIndex */
iinc 5 /* valueIndex */ 1
baload
sipush 255
iand
bipush 16
ishl
ior
9: .line 605
aload 0 /* rawData */
iload 5 /* valueIndex */
iinc 5 /* valueIndex */ 1
baload
sipush 255
iand
bipush 8
ishl
ior
10: .line 606
aload 0 /* rawData */
iload 5 /* valueIndex */
iinc 5 /* valueIndex */ 1
baload
sipush 255
iand
ior
11: .line 603
iastore
12: .line 607
iload 5 /* valueIndex */
iload 4 /* endIndex */
13: .line 602
if_icmplt 7
14: .line 608
aload 3 /* result */
areturn
end local 7 // int alpha
end local 6 // int colorIndex
end local 5 // int valueIndex
end local 4 // int endIndex
end local 3 // int[] result
end local 2 // int number
end local 1 // int offset
end local 0 // byte[] rawData
LocalVariableTable:
Start End Slot Name Signature
0 15 0 rawData [B
0 15 1 offset I
0 15 2 number I
3 15 3 result [I
4 15 4 endIndex I
5 15 5 valueIndex I
6 15 6 colorIndex I
7 15 7 alpha I
MethodParameters:
Name Flags
rawData
offset
number
public static java.lang.String getDecimalSubstring(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 // java.lang.String iccId
0: .line 613
iconst_0
istore 1 /* position */
start local 1 // int position
1: goto 4
2: .line 614
StackMap locals: int
StackMap stack:
aload 0 /* iccId */
iload 1 /* position */
invokevirtual java.lang.String.charAt:(I)C
invokestatic java.lang.Character.isDigit:(C)Z
ifne 3
goto 5
3: .line 613
StackMap locals:
StackMap stack:
iinc 1 /* position */ 1
StackMap locals:
StackMap stack:
4: iload 1 /* position */
aload 0 /* iccId */
invokevirtual java.lang.String.length:()I
if_icmplt 2
5: .line 616
StackMap locals:
StackMap stack:
aload 0 /* iccId */
iconst_0
iload 1 /* position */
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
areturn
end local 1 // int position
end local 0 // java.lang.String iccId
LocalVariableTable:
Start End Slot Name Signature
0 6 0 iccId Ljava/lang/String;
1 6 1 position I
MethodParameters:
Name Flags
iccId
public static int bytesToInt(byte[], int, int);
descriptor: ([BII)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=5, args_size=3
start local 0 // byte[] src
start local 1 // int offset
start local 2 // int length
0: .line 633
iload 2 /* length */
iconst_4
if_icmple 4
1: .line 634
new java.lang.IllegalArgumentException
dup
2: .line 635
new java.lang.StringBuilder
dup
ldc "length must be <= 4 (only 32-bit integer supported): "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 2 /* length */
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
3: .line 634
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
4: .line 637
StackMap locals:
StackMap stack:
iload 1 /* offset */
iflt 5
iload 2 /* length */
iflt 5
iload 1 /* offset */
iload 2 /* length */
iadd
aload 0 /* src */
arraylength
if_icmple 14
5: .line 638
StackMap locals:
StackMap stack:
new java.lang.IndexOutOfBoundsException
dup
6: .line 639
new java.lang.StringBuilder
dup
ldc "Out of the bounds: src=["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
7: .line 640
aload 0 /* src */
arraylength
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
8: .line 641
ldc "], offset="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
9: .line 642
iload 1 /* offset */
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
10: .line 643
ldc ", length="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
11: .line 644
iload 2 /* length */
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
12: .line 639
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
13: .line 638
invokespecial java.lang.IndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
athrow
14: .line 646
StackMap locals:
StackMap stack:
iconst_0
istore 3 /* result */
start local 3 // int result
15: .line 647
iconst_0
istore 4 /* i */
start local 4 // int i
16: goto 19
17: .line 648
StackMap locals: int int
StackMap stack:
iload 3 /* result */
bipush 8
ishl
aload 0 /* src */
iload 1 /* offset */
iload 4 /* i */
iadd
baload
sipush 255
iand
ior
istore 3 /* result */
18: .line 647
iinc 4 /* i */ 1
StackMap locals:
StackMap stack:
19: iload 4 /* i */
iload 2 /* length */
if_icmplt 17
end local 4 // int i
20: .line 650
iload 3 /* result */
ifge 24
21: .line 651
new java.lang.IllegalArgumentException
dup
22: .line 652
new java.lang.StringBuilder
dup
ldc "src cannot be parsed as a positive integer: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 3 /* result */
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
23: .line 651
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
24: .line 654
StackMap locals:
StackMap stack:
iload 3 /* result */
ireturn
end local 3 // int result
end local 2 // int length
end local 1 // int offset
end local 0 // byte[] src
LocalVariableTable:
Start End Slot Name Signature
0 25 0 src [B
0 25 1 offset I
0 25 2 length I
15 25 3 result I
16 20 4 i I
MethodParameters:
Name Flags
src
offset
length
public static long bytesToRawLong(byte[], int, int);
descriptor: ([BII)J
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=6, args_size=3
start local 0 // byte[] src
start local 1 // int offset
start local 2 // int length
0: .line 670
iload 2 /* length */
bipush 8
if_icmple 4
1: .line 671
new java.lang.IllegalArgumentException
dup
2: .line 672
new java.lang.StringBuilder
dup
ldc "length must be <= 8 (only 64-bit long supported): "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 2 /* length */
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
3: .line 671
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
4: .line 674
StackMap locals:
StackMap stack:
iload 1 /* offset */
iflt 5
iload 2 /* length */
iflt 5
iload 1 /* offset */
iload 2 /* length */
iadd
aload 0 /* src */
arraylength
if_icmple 14
5: .line 675
StackMap locals:
StackMap stack:
new java.lang.IndexOutOfBoundsException
dup
6: .line 676
new java.lang.StringBuilder
dup
ldc "Out of the bounds: src=["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
7: .line 677
aload 0 /* src */
arraylength
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
8: .line 678
ldc "], offset="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
9: .line 679
iload 1 /* offset */
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
10: .line 680
ldc ", length="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
11: .line 681
iload 2 /* length */
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
12: .line 676
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
13: .line 675
invokespecial java.lang.IndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
athrow
14: .line 683
StackMap locals:
StackMap stack:
lconst_0
lstore 3 /* result */
start local 3 // long result
15: .line 684
iconst_0
istore 5 /* i */
start local 5 // int i
16: goto 19
17: .line 685
StackMap locals: long int
StackMap stack:
lload 3 /* result */
bipush 8
lshl
aload 0 /* src */
iload 1 /* offset */
iload 5 /* i */
iadd
baload
sipush 255
iand
i2l
lor
lstore 3 /* result */
18: .line 684
iinc 5 /* i */ 1
StackMap locals:
StackMap stack:
19: iload 5 /* i */
iload 2 /* length */
if_icmplt 17
end local 5 // int i
20: .line 687
lload 3 /* result */
lreturn
end local 3 // long result
end local 2 // int length
end local 1 // int offset
end local 0 // byte[] src
LocalVariableTable:
Start End Slot Name Signature
0 21 0 src [B
0 21 1 offset I
0 21 2 length I
15 21 3 result J
16 20 5 i I
MethodParameters:
Name Flags
src
offset
length
public static byte[] unsignedIntToBytes(int);
descriptor: (I)[B
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=2, args_size=1
start local 0 // int value
0: .line 696
iload 0 /* value */
ifge 2
1: .line 697
new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "value must be 0 or positive: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 0 /* value */
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
2: .line 699
StackMap locals:
StackMap stack:
iload 0 /* value */
invokestatic com.android.internal.telephony.uicc.IccUtils.byteNumForUnsignedInt:(I)I
newarray 8
astore 1 /* bytes */
start local 1 // byte[] bytes
3: .line 700
iload 0 /* value */
aload 1 /* bytes */
iconst_0
invokestatic com.android.internal.telephony.uicc.IccUtils.unsignedIntToBytes:(I[BI)I
pop
4: .line 701
aload 1 /* bytes */
areturn
end local 1 // byte[] bytes
end local 0 // int value
LocalVariableTable:
Start End Slot Name Signature
0 5 0 value I
3 5 1 bytes [B
MethodParameters:
Name Flags
value
public static byte[] signedIntToBytes(int);
descriptor: (I)[B
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=2, args_size=1
start local 0 // int value
0: .line 713
iload 0 /* value */
ifge 2
1: .line 714
new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "value must be 0 or positive: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 0 /* value */
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
2: .line 716
StackMap locals:
StackMap stack:
iload 0 /* value */
invokestatic com.android.internal.telephony.uicc.IccUtils.byteNumForSignedInt:(I)I
newarray 8
astore 1 /* bytes */
start local 1 // byte[] bytes
3: .line 717
iload 0 /* value */
aload 1 /* bytes */
iconst_0
invokestatic com.android.internal.telephony.uicc.IccUtils.signedIntToBytes:(I[BI)I
pop
4: .line 718
aload 1 /* bytes */
areturn
end local 1 // byte[] bytes
end local 0 // int value
LocalVariableTable:
Start End Slot Name Signature
0 5 0 value I
3 5 1 bytes [B
MethodParameters:
Name Flags
value
public static int unsignedIntToBytes(int, byte[], int);
descriptor: (I[BI)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=3, args_size=3
start local 0 // int value
start local 1 // byte[] dest
start local 2 // int offset
0: .line 732
iload 0 /* value */
aload 1 /* dest */
iload 2 /* offset */
iconst_0
invokestatic com.android.internal.telephony.uicc.IccUtils.intToBytes:(I[BIZ)I
ireturn
end local 2 // int offset
end local 1 // byte[] dest
end local 0 // int value
LocalVariableTable:
Start End Slot Name Signature
0 1 0 value I
0 1 1 dest [B
0 1 2 offset I
MethodParameters:
Name Flags
value
dest
offset
public static int signedIntToBytes(int, byte[], int);
descriptor: (I[BI)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=3, args_size=3
start local 0 // int value
start local 1 // byte[] dest
start local 2 // int offset
0: .line 745
iload 0 /* value */
aload 1 /* dest */
iload 2 /* offset */
iconst_1
invokestatic com.android.internal.telephony.uicc.IccUtils.intToBytes:(I[BIZ)I
ireturn
end local 2 // int offset
end local 1 // byte[] dest
end local 0 // int value
LocalVariableTable:
Start End Slot Name Signature
0 1 0 value I
0 1 1 dest [B
0 1 2 offset I
MethodParameters:
Name Flags
value
dest
offset
public static int byteNumForUnsignedInt(int);
descriptor: (I)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 // int value
0: .line 755
iload 0 /* value */
iconst_0
invokestatic com.android.internal.telephony.uicc.IccUtils.byteNumForInt:(IZ)I
ireturn
end local 0 // int value
LocalVariableTable:
Start End Slot Name Signature
0 1 0 value I
MethodParameters:
Name Flags
value
public static int byteNumForSignedInt(int);
descriptor: (I)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 // int value
0: .line 767
iload 0 /* value */
iconst_1
invokestatic com.android.internal.telephony.uicc.IccUtils.byteNumForInt:(IZ)I
ireturn
end local 0 // int value
LocalVariableTable:
Start End Slot Name Signature
0 1 0 value I
MethodParameters:
Name Flags
value
private static int intToBytes(int, byte[], int, boolean);
descriptor: (I[BIZ)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=8, args_size=4
start local 0 // int value
start local 1 // byte[] dest
start local 2 // int offset
start local 3 // boolean signed
0: .line 771
iload 0 /* value */
iload 3 /* signed */
invokestatic com.android.internal.telephony.uicc.IccUtils.byteNumForInt:(IZ)I
istore 4 /* l */
start local 4 // int l
1: .line 772
iload 2 /* offset */
iflt 2
iload 2 /* offset */
iload 4 /* l */
iadd
aload 1 /* dest */
arraylength
if_icmple 3
2: .line 773
StackMap locals: int
StackMap stack:
new java.lang.IndexOutOfBoundsException
dup
new java.lang.StringBuilder
dup
ldc "Not enough space to write. Required bytes: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 4 /* l */
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
athrow
3: .line 775
StackMap locals:
StackMap stack:
iload 4 /* l */
iconst_1
isub
istore 5 /* i */
start local 5 // int i
4: iload 0 /* value */
istore 6 /* v */
start local 6 // int v
5: goto 9
6: .line 776
StackMap locals: int int
StackMap stack:
iload 6 /* v */
sipush 255
iand
i2b
istore 7 /* b */
start local 7 // byte b
7: .line 777
aload 1 /* dest */
iload 2 /* offset */
iload 5 /* i */
iadd
iload 7 /* b */
bastore
end local 7 // byte b
8: .line 775
iinc 5 /* i */ -1
iload 6 /* v */
bipush 8
iushr
istore 6 /* v */
StackMap locals:
StackMap stack:
9: iload 5 /* i */
ifge 6
end local 6 // int v
end local 5 // int i
10: .line 779
iload 4 /* l */
ireturn
end local 4 // int l
end local 3 // boolean signed
end local 2 // int offset
end local 1 // byte[] dest
end local 0 // int value
LocalVariableTable:
Start End Slot Name Signature
0 11 0 value I
0 11 1 dest [B
0 11 2 offset I
0 11 3 signed Z
1 11 4 l I
4 10 5 i I
5 10 6 v I
7 8 7 b B
MethodParameters:
Name Flags
value
dest
offset
signed
private static int byteNumForInt(int, boolean);
descriptor: (IZ)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=2, args_size=2
start local 0 // int value
start local 1 // boolean signed
0: .line 783
iload 0 /* value */
ifge 2
1: .line 784
new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "value must be 0 or positive: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 0 /* value */
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
2: .line 786
StackMap locals:
StackMap stack:
iload 1 /* signed */
ifeq 9
3: .line 787
iload 0 /* value */
bipush 127
if_icmpgt 5
4: .line 788
iconst_1
ireturn
5: .line 790
StackMap locals:
StackMap stack:
iload 0 /* value */
sipush 32767
if_icmpgt 7
6: .line 791
iconst_2
ireturn
7: .line 793
StackMap locals:
StackMap stack:
iload 0 /* value */
ldc 8388607
if_icmpgt 15
8: .line 794
iconst_3
ireturn
9: .line 797
StackMap locals:
StackMap stack:
iload 0 /* value */
sipush 255
if_icmpgt 11
10: .line 798
iconst_1
ireturn
11: .line 800
StackMap locals:
StackMap stack:
iload 0 /* value */
ldc 65535
if_icmpgt 13
12: .line 801
iconst_2
ireturn
13: .line 803
StackMap locals:
StackMap stack:
iload 0 /* value */
ldc 16777215
if_icmpgt 15
14: .line 804
iconst_3
ireturn
15: .line 807
StackMap locals:
StackMap stack:
iconst_4
ireturn
end local 1 // boolean signed
end local 0 // int value
LocalVariableTable:
Start End Slot Name Signature
0 16 0 value I
0 16 1 signed Z
MethodParameters:
Name Flags
value
signed
public static byte countTrailingZeros(byte);
descriptor: (B)B
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=3, args_size=1
start local 0 // byte b
0: .line 815
iload 0 /* b */
ifne 2
1: .line 816
bipush 8
ireturn
2: .line 818
StackMap locals:
StackMap stack:
iload 0 /* b */
sipush 255
iand
istore 1 /* v */
start local 1 // int v
3: .line 819
bipush 7
istore 2 /* c */
start local 2 // byte c
4: .line 820
iload 1 /* v */
bipush 15
iand
ifeq 6
5: .line 821
iload 2 /* c */
iconst_4
isub
i2b
istore 2 /* c */
6: .line 823
StackMap locals: int int
StackMap stack:
iload 1 /* v */
bipush 51
iand
ifeq 8
7: .line 824
iload 2 /* c */
iconst_2
isub
i2b
istore 2 /* c */
8: .line 826
StackMap locals:
StackMap stack:
iload 1 /* v */
bipush 85
iand
ifeq 10
9: .line 827
iload 2 /* c */
iconst_1
isub
i2b
istore 2 /* c */
10: .line 829
StackMap locals:
StackMap stack:
iload 2 /* c */
ireturn
end local 2 // byte c
end local 1 // int v
end local 0 // byte b
LocalVariableTable:
Start End Slot Name Signature
0 11 0 b B
3 11 1 v I
4 11 2 c B
MethodParameters:
Name Flags
b
public static java.lang.String byteToHex(byte);
descriptor: (B)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=8, locals=1, args_size=1
start local 0 // byte b
0: .line 836
new java.lang.String
dup
iconst_2
newarray 5
dup
iconst_0
getstatic com.android.internal.telephony.uicc.IccUtils.HEX_CHARS:[C
iload 0 /* b */
sipush 255
iand
iconst_4
iushr
caload
castore
dup
iconst_1
getstatic com.android.internal.telephony.uicc.IccUtils.HEX_CHARS:[C
iload 0 /* b */
bipush 15
iand
caload
castore
invokespecial java.lang.String.<init>:([C)V
areturn
end local 0 // byte b
LocalVariableTable:
Start End Slot Name Signature
0 1 0 b B
MethodParameters:
Name Flags
b
public static java.lang.String stripTrailingFs(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 // java.lang.String s
0: .line 843
aload 0 /* s */
ifnonnull 1
aconst_null
goto 2
StackMap locals:
StackMap stack:
1: aload 0 /* s */
ldc "(?i)f*$"
ldc ""
invokevirtual java.lang.String.replaceAll:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
StackMap locals:
StackMap stack: java.lang.String
2: areturn
end local 0 // java.lang.String s
LocalVariableTable:
Start End Slot Name Signature
0 3 0 s Ljava/lang/String;
MethodParameters:
Name Flags
s
private static byte charToByte(char);
descriptor: (C)B
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 // char c
0: .line 851
iload 0 /* c */
bipush 48
if_icmplt 2
iload 0 /* c */
bipush 57
if_icmpgt 2
1: .line 852
iload 0 /* c */
bipush 48
isub
i2b
ireturn
2: .line 853
StackMap locals:
StackMap stack:
iload 0 /* c */
bipush 65
if_icmplt 4
iload 0 /* c */
bipush 70
if_icmpgt 4
3: .line 854
iload 0 /* c */
bipush 55
isub
i2b
ireturn
4: .line 855
StackMap locals:
StackMap stack:
iload 0 /* c */
bipush 97
if_icmplt 6
iload 0 /* c */
bipush 102
if_icmpgt 6
5: .line 856
iload 0 /* c */
bipush 87
isub
i2b
ireturn
6: .line 858
StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 0 // char c
LocalVariableTable:
Start End Slot Name Signature
0 7 0 c C
MethodParameters:
Name Flags
c
}
SourceFile: "IccUtils.java"
InnerClasses:
public final Config = android.graphics.Bitmap$Config of android.graphics.Bitmap