class java.math.MutableBigInteger
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: java.math.MutableBigInteger
super_class: java.lang.Object
{
int[] value;
descriptor: [I
flags: (0x0000)
int intLen;
descriptor: I
flags: (0x0000)
int offset;
descriptor: I
flags: (0x0000)
static final java.math.MutableBigInteger ONE;
descriptor: Ljava/math/MutableBigInteger;
flags: (0x0018) ACC_STATIC, ACC_FINAL
static final int KNUTH_POW2_THRESH_LEN;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 6
static final int KNUTH_POW2_THRESH_ZEROS;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 3
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=0, args_size=0
0: .line 49
ldc Ljava/math/MutableBigInteger;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic java.math.MutableBigInteger.$assertionsDisabled:Z
3: .line 76
new java.math.MutableBigInteger
dup
iconst_1
invokespecial java.math.MutableBigInteger.<init>:(I)V
putstatic java.math.MutableBigInteger.ONE:Ljava/math/MutableBigInteger;
4: .line 94
return
LocalVariableTable:
Start End Slot Name Signature
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 // java.math.MutableBigInteger this
0: .line 102
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 68
aload 0 /* this */
iconst_0
putfield java.math.MutableBigInteger.offset:I
2: .line 103
aload 0 /* this */
iconst_1
newarray 10
putfield java.math.MutableBigInteger.value:[I
3: .line 104
aload 0 /* this */
iconst_0
putfield java.math.MutableBigInteger.intLen:I
4: .line 105
return
end local 0 // java.math.MutableBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljava/math/MutableBigInteger;
void <init>(int);
descriptor: (I)V
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 // java.math.MutableBigInteger this
start local 1 // int val
0: .line 111
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 68
aload 0 /* this */
iconst_0
putfield java.math.MutableBigInteger.offset:I
2: .line 112
aload 0 /* this */
iconst_1
newarray 10
putfield java.math.MutableBigInteger.value:[I
3: .line 113
aload 0 /* this */
iconst_1
putfield java.math.MutableBigInteger.intLen:I
4: .line 114
aload 0 /* this */
getfield java.math.MutableBigInteger.value:[I
iconst_0
iload 1 /* val */
iastore
5: .line 115
return
end local 1 // int val
end local 0 // java.math.MutableBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljava/math/MutableBigInteger;
0 6 1 val I
MethodParameters:
Name Flags
val
void <init>(int[]);
descriptor: ([I)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 // java.math.MutableBigInteger this
start local 1 // int[] val
0: .line 121
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 68
aload 0 /* this */
iconst_0
putfield java.math.MutableBigInteger.offset:I
2: .line 122
aload 0 /* this */
aload 1 /* val */
putfield java.math.MutableBigInteger.value:[I
3: .line 123
aload 0 /* this */
aload 1 /* val */
arraylength
putfield java.math.MutableBigInteger.intLen:I
4: .line 124
return
end local 1 // int[] val
end local 0 // java.math.MutableBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljava/math/MutableBigInteger;
0 5 1 val [I
MethodParameters:
Name Flags
val
void <init>(java.math.BigInteger);
descriptor: (Ljava/math/BigInteger;)V
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 // java.math.MutableBigInteger this
start local 1 // java.math.BigInteger b
0: .line 130
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 68
aload 0 /* this */
iconst_0
putfield java.math.MutableBigInteger.offset:I
2: .line 131
aload 0 /* this */
aload 1 /* b */
getfield java.math.BigInteger.mag:[I
arraylength
putfield java.math.MutableBigInteger.intLen:I
3: .line 132
aload 0 /* this */
aload 1 /* b */
getfield java.math.BigInteger.mag:[I
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
invokestatic java.util.Arrays.copyOf:([II)[I
putfield java.math.MutableBigInteger.value:[I
4: .line 133
return
end local 1 // java.math.BigInteger b
end local 0 // java.math.MutableBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljava/math/MutableBigInteger;
0 5 1 b Ljava/math/BigInteger;
MethodParameters:
Name Flags
b
void <init>(java.math.MutableBigInteger);
descriptor: (Ljava/math/MutableBigInteger;)V
flags: (0x0000)
Code:
stack=5, locals=2, args_size=2
start local 0 // java.math.MutableBigInteger this
start local 1 // java.math.MutableBigInteger val
0: .line 139
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 68
aload 0 /* this */
iconst_0
putfield java.math.MutableBigInteger.offset:I
2: .line 140
aload 0 /* this */
aload 1 /* val */
getfield java.math.MutableBigInteger.intLen:I
putfield java.math.MutableBigInteger.intLen:I
3: .line 141
aload 0 /* this */
aload 1 /* val */
getfield java.math.MutableBigInteger.value:[I
aload 1 /* val */
getfield java.math.MutableBigInteger.offset:I
aload 1 /* val */
getfield java.math.MutableBigInteger.offset:I
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
iadd
invokestatic java.util.Arrays.copyOfRange:([III)[I
putfield java.math.MutableBigInteger.value:[I
4: .line 142
return
end local 1 // java.math.MutableBigInteger val
end local 0 // java.math.MutableBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljava/math/MutableBigInteger;
0 5 1 val Ljava/math/MutableBigInteger;
MethodParameters:
Name Flags
val
private void ones(int);
descriptor: (I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 // java.math.MutableBigInteger this
start local 1 // int n
0: .line 151
iload 1 /* n */
aload 0 /* this */
getfield java.math.MutableBigInteger.value:[I
arraylength
if_icmple 2
1: .line 152
aload 0 /* this */
iload 1 /* n */
newarray 10
putfield java.math.MutableBigInteger.value:[I
2: .line 153
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield java.math.MutableBigInteger.value:[I
iconst_m1
invokestatic java.util.Arrays.fill:([II)V
3: .line 154
aload 0 /* this */
iconst_0
putfield java.math.MutableBigInteger.offset:I
4: .line 155
aload 0 /* this */
iload 1 /* n */
putfield java.math.MutableBigInteger.intLen:I
5: .line 156
return
end local 1 // int n
end local 0 // java.math.MutableBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljava/math/MutableBigInteger;
0 6 1 n I
MethodParameters:
Name Flags
n
private int[] getMagnitudeArray();
descriptor: ()[I
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=1, args_size=1
start local 0 // java.math.MutableBigInteger this
0: .line 163
aload 0 /* this */
getfield java.math.MutableBigInteger.offset:I
ifgt 1
aload 0 /* this */
getfield java.math.MutableBigInteger.value:[I
arraylength
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
if_icmpeq 2
1: .line 164
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield java.math.MutableBigInteger.value:[I
aload 0 /* this */
getfield java.math.MutableBigInteger.offset:I
aload 0 /* this */
getfield java.math.MutableBigInteger.offset:I
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
iadd
invokestatic java.util.Arrays.copyOfRange:([III)[I
areturn
2: .line 165
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield java.math.MutableBigInteger.value:[I
areturn
end local 0 // java.math.MutableBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/math/MutableBigInteger;
private long toLong();
descriptor: ()J
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=3, args_size=1
start local 0 // java.math.MutableBigInteger this
0: .line 173
getstatic java.math.MutableBigInteger.$assertionsDisabled:Z
ifne 1
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
iconst_2
if_icmple 1
new java.lang.AssertionError
dup
ldc "this MutableBigInteger exceeds the range of long"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
1: .line 174
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
ifne 3
2: .line 175
lconst_0
lreturn
3: .line 176
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield java.math.MutableBigInteger.value:[I
aload 0 /* this */
getfield java.math.MutableBigInteger.offset:I
iaload
i2l
ldc 4294967295
land
lstore 1 /* d */
start local 1 // long d
4: .line 177
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
iconst_2
if_icmpne 5
lload 1 /* d */
bipush 32
lshl
aload 0 /* this */
getfield java.math.MutableBigInteger.value:[I
aload 0 /* this */
getfield java.math.MutableBigInteger.offset:I
iconst_1
iadd
iaload
i2l
ldc 4294967295
land
lor
goto 6
StackMap locals: long
StackMap stack:
5: lload 1 /* d */
StackMap locals:
StackMap stack: long
6: lreturn
end local 1 // long d
end local 0 // java.math.MutableBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljava/math/MutableBigInteger;
4 7 1 d J
java.math.BigInteger toBigInteger(int);
descriptor: (I)Ljava/math/BigInteger;
flags: (0x0000)
Code:
stack=4, locals=2, args_size=2
start local 0 // java.math.MutableBigInteger this
start local 1 // int sign
0: .line 184
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
ifeq 1
iload 1 /* sign */
ifne 2
1: .line 185
StackMap locals:
StackMap stack:
getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
areturn
2: .line 186
StackMap locals:
StackMap stack:
new java.math.BigInteger
dup
aload 0 /* this */
invokevirtual java.math.MutableBigInteger.getMagnitudeArray:()[I
iload 1 /* sign */
invokespecial java.math.BigInteger.<init>:([II)V
areturn
end local 1 // int sign
end local 0 // java.math.MutableBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/math/MutableBigInteger;
0 3 1 sign I
MethodParameters:
Name Flags
sign
java.math.BigInteger toBigInteger();
descriptor: ()Ljava/math/BigInteger;
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 // java.math.MutableBigInteger this
0: .line 193
aload 0 /* this */
invokevirtual java.math.MutableBigInteger.normalize:()V
1: .line 194
aload 0 /* this */
aload 0 /* this */
invokevirtual java.math.MutableBigInteger.isZero:()Z
ifeq 2
iconst_0
goto 3
StackMap locals:
StackMap stack: java.math.MutableBigInteger
2: iconst_1
StackMap locals: java.math.MutableBigInteger
StackMap stack: java.math.MutableBigInteger int
3: invokevirtual java.math.MutableBigInteger.toBigInteger:(I)Ljava/math/BigInteger;
areturn
end local 0 // java.math.MutableBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljava/math/MutableBigInteger;
java.math.BigDecimal toBigDecimal(int, int);
descriptor: (II)Ljava/math/BigDecimal;
flags: (0x0000)
Code:
stack=7, locals=8, args_size=3
start local 0 // java.math.MutableBigInteger this
start local 1 // int sign
start local 2 // int scale
0: .line 202
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
ifeq 1
iload 1 /* sign */
ifne 2
1: .line 203
StackMap locals:
StackMap stack:
iload 2 /* scale */
invokestatic java.math.BigDecimal.zeroValueOf:(I)Ljava/math/BigDecimal;
areturn
2: .line 204
StackMap locals:
StackMap stack:
aload 0 /* this */
invokevirtual java.math.MutableBigInteger.getMagnitudeArray:()[I
astore 3 /* mag */
start local 3 // int[] mag
3: .line 205
aload 3 /* mag */
arraylength
istore 4 /* len */
start local 4 // int len
4: .line 206
aload 3 /* mag */
iconst_0
iaload
istore 5 /* d */
start local 5 // int d
5: .line 209
iload 4 /* len */
iconst_2
if_icmpgt 6
iload 5 /* d */
ifge 7
iload 4 /* len */
iconst_2
if_icmpne 7
6: .line 210
StackMap locals: int[] int int
StackMap stack:
new java.math.BigDecimal
dup
new java.math.BigInteger
dup
aload 3 /* mag */
iload 1 /* sign */
invokespecial java.math.BigInteger.<init>:([II)V
ldc -9223372036854775808
iload 2 /* scale */
iconst_0
invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
areturn
7: .line 211
StackMap locals:
StackMap stack:
iload 4 /* len */
iconst_2
if_icmpne 9
8: .line 212
aload 3 /* mag */
iconst_1
iaload
i2l
ldc 4294967295
land
iload 5 /* d */
i2l
ldc 4294967295
land
bipush 32
lshl
lor
goto 10
9: .line 213
StackMap locals:
StackMap stack:
iload 5 /* d */
i2l
ldc 4294967295
land
10: .line 211
StackMap locals:
StackMap stack: long
lstore 6 /* v */
start local 6 // long v
11: .line 214
iload 1 /* sign */
iconst_m1
if_icmpne 12
lload 6 /* v */
lneg
goto 13
StackMap locals: long
StackMap stack:
12: lload 6 /* v */
StackMap locals:
StackMap stack: long
13: iload 2 /* scale */
invokestatic java.math.BigDecimal.valueOf:(JI)Ljava/math/BigDecimal;
areturn
end local 6 // long v
end local 5 // int d
end local 4 // int len
end local 3 // int[] mag
end local 2 // int scale
end local 1 // int sign
end local 0 // java.math.MutableBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Ljava/math/MutableBigInteger;
0 14 1 sign I
0 14 2 scale I
3 14 3 mag [I
4 14 4 len I
5 14 5 d I
11 14 6 v J
MethodParameters:
Name Flags
sign
scale
long toCompactValue(int);
descriptor: (I)J
flags: (0x0000)
Code:
stack=6, locals=7, args_size=2
start local 0 // java.math.MutableBigInteger this
start local 1 // int sign
0: .line 223
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
ifeq 1
iload 1 /* sign */
ifne 2
1: .line 224
StackMap locals:
StackMap stack:
lconst_0
lreturn
2: .line 225
StackMap locals:
StackMap stack:
aload 0 /* this */
invokevirtual java.math.MutableBigInteger.getMagnitudeArray:()[I
astore 2 /* mag */
start local 2 // int[] mag
3: .line 226
aload 2 /* mag */
arraylength
istore 3 /* len */
start local 3 // int len
4: .line 227
aload 2 /* mag */
iconst_0
iaload
istore 4 /* d */
start local 4 // int d
5: .line 230
iload 3 /* len */
iconst_2
if_icmpgt 6
iload 4 /* d */
ifge 7
iload 3 /* len */
iconst_2
if_icmpne 7
6: .line 231
StackMap locals: int[] int int
StackMap stack:
ldc -9223372036854775808
lreturn
7: .line 232
StackMap locals:
StackMap stack:
iload 3 /* len */
iconst_2
if_icmpne 9
8: .line 233
aload 2 /* mag */
iconst_1
iaload
i2l
ldc 4294967295
land
iload 4 /* d */
i2l
ldc 4294967295
land
bipush 32
lshl
lor
goto 10
9: .line 234
StackMap locals:
StackMap stack:
iload 4 /* d */
i2l
ldc 4294967295
land
10: .line 232
StackMap locals:
StackMap stack: long
lstore 5 /* v */
start local 5 // long v
11: .line 235
iload 1 /* sign */
iconst_m1
if_icmpne 12
lload 5 /* v */
lneg
goto 13
StackMap locals: long
StackMap stack:
12: lload 5 /* v */
StackMap locals:
StackMap stack: long
13: lreturn
end local 5 // long v
end local 4 // int d
end local 3 // int len
end local 2 // int[] mag
end local 1 // int sign
end local 0 // java.math.MutableBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Ljava/math/MutableBigInteger;
0 14 1 sign I
3 14 2 mag [I
4 14 3 len I
5 14 4 d I
11 14 5 v J
MethodParameters:
Name Flags
sign
void clear();
descriptor: ()V
flags: (0x0000)
Code:
stack=4, locals=3, args_size=1
start local 0 // java.math.MutableBigInteger this
0: .line 242
aload 0 /* this */
aload 0 /* this */
iconst_0
dup_x1
putfield java.math.MutableBigInteger.intLen:I
putfield java.math.MutableBigInteger.offset:I
1: .line 243
iconst_0
istore 1 /* index */
start local 1 // int index
2: aload 0 /* this */
getfield java.math.MutableBigInteger.value:[I
arraylength
istore 2 /* n */
start local 2 // int n
3: goto 6
4: .line 244
StackMap locals: int int
StackMap stack:
aload 0 /* this */
getfield java.math.MutableBigInteger.value:[I
iload 1 /* index */
iconst_0
iastore
5: .line 243
iinc 1 /* index */ 1
StackMap locals:
StackMap stack:
6: iload 1 /* index */
iload 2 /* n */
if_icmplt 4
end local 2 // int n
end local 1 // int index
7: .line 245
return
end local 0 // java.math.MutableBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Ljava/math/MutableBigInteger;
2 7 1 index I
3 7 2 n I
void reset();
descriptor: ()V
flags: (0x0000)
Code:
stack=4, locals=1, args_size=1
start local 0 // java.math.MutableBigInteger this
0: .line 251
aload 0 /* this */
aload 0 /* this */
iconst_0
dup_x1
putfield java.math.MutableBigInteger.intLen:I
putfield java.math.MutableBigInteger.offset:I
1: .line 252
return
end local 0 // java.math.MutableBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/math/MutableBigInteger;
final int compare(java.math.MutableBigInteger);
descriptor: (Ljava/math/MutableBigInteger;)I
flags: (0x0010) ACC_FINAL
Code:
stack=3, locals=8, args_size=2
start local 0 // java.math.MutableBigInteger this
start local 1 // java.math.MutableBigInteger b
0: .line 260
aload 1 /* b */
getfield java.math.MutableBigInteger.intLen:I
istore 2 /* blen */
start local 2 // int blen
1: .line 261
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
iload 2 /* blen */
if_icmpge 3
2: .line 262
iconst_m1
ireturn
3: .line 263
StackMap locals: int
StackMap stack:
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
iload 2 /* blen */
if_icmple 5
4: .line 264
iconst_1
ireturn
5: .line 268
StackMap locals:
StackMap stack:
aload 1 /* b */
getfield java.math.MutableBigInteger.value:[I
astore 3 /* bval */
start local 3 // int[] bval
6: .line 269
aload 0 /* this */
getfield java.math.MutableBigInteger.offset:I
istore 4 /* i */
start local 4 // int i
7: aload 1 /* b */
getfield java.math.MutableBigInteger.offset:I
istore 5 /* j */
start local 5 // int j
8: goto 16
9: .line 270
StackMap locals: int[] int int
StackMap stack:
aload 0 /* this */
getfield java.math.MutableBigInteger.value:[I
iload 4 /* i */
iaload
ldc -2147483648
iadd
istore 6 /* b1 */
start local 6 // int b1
10: .line 271
aload 3 /* bval */
iload 5 /* j */
iaload
ldc -2147483648
iadd
istore 7 /* b2 */
start local 7 // int b2
11: .line 272
iload 6 /* b1 */
iload 7 /* b2 */
if_icmpge 13
12: .line 273
iconst_m1
ireturn
13: .line 274
StackMap locals: int int
StackMap stack:
iload 6 /* b1 */
iload 7 /* b2 */
if_icmple 15
14: .line 275
iconst_1
ireturn
end local 7 // int b2
end local 6 // int b1
15: .line 269
StackMap locals:
StackMap stack:
iinc 4 /* i */ 1
iinc 5 /* j */ 1
StackMap locals:
StackMap stack:
16: iload 4 /* i */
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
aload 0 /* this */
getfield java.math.MutableBigInteger.offset:I
iadd
if_icmplt 9
end local 5 // int j
end local 4 // int i
17: .line 277
iconst_0
ireturn
end local 3 // int[] bval
end local 2 // int blen
end local 1 // java.math.MutableBigInteger b
end local 0 // java.math.MutableBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Ljava/math/MutableBigInteger;
0 18 1 b Ljava/math/MutableBigInteger;
1 18 2 blen I
6 18 3 bval [I
7 17 4 i I
8 17 5 j I
10 15 6 b1 I
11 15 7 b2 I
MethodParameters:
Name Flags
b
private int compareShifted(java.math.MutableBigInteger, int);
descriptor: (Ljava/math/MutableBigInteger;I)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=10, args_size=3
start local 0 // java.math.MutableBigInteger this
start local 1 // java.math.MutableBigInteger b
start local 2 // int ints
0: .line 285
aload 1 /* b */
getfield java.math.MutableBigInteger.intLen:I
istore 3 /* blen */
start local 3 // int blen
1: .line 286
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
iload 2 /* ints */
isub
istore 4 /* alen */
start local 4 // int alen
2: .line 287
iload 4 /* alen */
iload 3 /* blen */
if_icmpge 4
3: .line 288
iconst_m1
ireturn
4: .line 289
StackMap locals: int int
StackMap stack:
iload 4 /* alen */
iload 3 /* blen */
if_icmple 6
5: .line 290
iconst_1
ireturn
6: .line 294
StackMap locals:
StackMap stack:
aload 1 /* b */
getfield java.math.MutableBigInteger.value:[I
astore 5 /* bval */
start local 5 // int[] bval
7: .line 295
aload 0 /* this */
getfield java.math.MutableBigInteger.offset:I
istore 6 /* i */
start local 6 // int i
8: aload 1 /* b */
getfield java.math.MutableBigInteger.offset:I
istore 7 /* j */
start local 7 // int j
9: goto 17
10: .line 296
StackMap locals: int[] int int
StackMap stack:
aload 0 /* this */
getfield java.math.MutableBigInteger.value:[I
iload 6 /* i */
iaload
ldc -2147483648
iadd
istore 8 /* b1 */
start local 8 // int b1
11: .line 297
aload 5 /* bval */
iload 7 /* j */
iaload
ldc -2147483648
iadd
istore 9 /* b2 */
start local 9 // int b2
12: .line 298
iload 8 /* b1 */
iload 9 /* b2 */
if_icmpge 14
13: .line 299
iconst_m1
ireturn
14: .line 300
StackMap locals: int int
StackMap stack:
iload 8 /* b1 */
iload 9 /* b2 */
if_icmple 16
15: .line 301
iconst_1
ireturn
end local 9 // int b2
end local 8 // int b1
16: .line 295
StackMap locals:
StackMap stack:
iinc 6 /* i */ 1
iinc 7 /* j */ 1
StackMap locals:
StackMap stack:
17: iload 6 /* i */
iload 4 /* alen */
aload 0 /* this */
getfield java.math.MutableBigInteger.offset:I
iadd
if_icmplt 10
end local 7 // int j
end local 6 // int i
18: .line 303
iconst_0
ireturn
end local 5 // int[] bval
end local 4 // int alen
end local 3 // int blen
end local 2 // int ints
end local 1 // java.math.MutableBigInteger b
end local 0 // java.math.MutableBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Ljava/math/MutableBigInteger;
0 19 1 b Ljava/math/MutableBigInteger;
0 19 2 ints I
1 19 3 blen I
2 19 4 alen I
7 19 5 bval [I
8 18 6 i I
9 18 7 j I
11 16 8 b1 I
12 16 9 b2 I
MethodParameters:
Name Flags
b
ints
final int compareHalf(java.math.MutableBigInteger);
descriptor: (Ljava/math/MutableBigInteger;)I
flags: (0x0010) ACC_FINAL
Code:
stack=4, locals=15, args_size=2
start local 0 // java.math.MutableBigInteger this
start local 1 // java.math.MutableBigInteger b
0: .line 313
aload 1 /* b */
getfield java.math.MutableBigInteger.intLen:I
istore 2 /* blen */
start local 2 // int blen
1: .line 314
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
istore 3 /* len */
start local 3 // int len
2: .line 315
iload 3 /* len */
ifgt 6
3: .line 316
iload 2 /* blen */
ifgt 4
iconst_0
goto 5
StackMap locals: int int
StackMap stack:
4: iconst_m1
StackMap locals:
StackMap stack: int
5: ireturn
6: .line 317
StackMap locals:
StackMap stack:
iload 3 /* len */
iload 2 /* blen */
if_icmple 8
7: .line 318
iconst_1
ireturn
8: .line 319
StackMap locals:
StackMap stack:
iload 3 /* len */
iload 2 /* blen */
iconst_1
isub
if_icmpge 10
9: .line 320
iconst_m1
ireturn
10: .line 321
StackMap locals:
StackMap stack:
aload 1 /* b */
getfield java.math.MutableBigInteger.value:[I
astore 4 /* bval */
start local 4 // int[] bval
11: .line 322
iconst_0
istore 5 /* bstart */
start local 5 // int bstart
12: .line 323
iconst_0
istore 6 /* carry */
start local 6 // int carry
13: .line 325
iload 3 /* len */
iload 2 /* blen */
if_icmpeq 19
14: .line 326
aload 4 /* bval */
iload 5 /* bstart */
iaload
iconst_1
if_icmpne 18
15: .line 327
iinc 5 /* bstart */ 1
16: .line 328
ldc -2147483648
istore 6 /* carry */
17: .line 329
goto 19
18: .line 330
StackMap locals: int[] int int
StackMap stack:
iconst_m1
ireturn
19: .line 334
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield java.math.MutableBigInteger.value:[I
astore 7 /* val */
start local 7 // int[] val
20: .line 335
aload 0 /* this */
getfield java.math.MutableBigInteger.offset:I
istore 8 /* i */
start local 8 // int i
21: iload 5 /* bstart */
istore 9 /* j */
start local 9 // int j
22: goto 31
23: .line 336
StackMap locals: int[] int int
StackMap stack:
aload 4 /* bval */
iload 9 /* j */
iinc 9 /* j */ 1
iaload
istore 10 /* bv */
start local 10 // int bv
24: .line 337
iload 10 /* bv */
iconst_1
iushr
iload 6 /* carry */
iadd
i2l
ldc 4294967295
land
lstore 11 /* hb */
start local 11 // long hb
25: .line 338
aload 7 /* val */
iload 8 /* i */
iinc 8 /* i */ 1
iaload
i2l
ldc 4294967295
land
lstore 13 /* v */
start local 13 // long v
26: .line 339
lload 13 /* v */
lload 11 /* hb */
lcmp
ifeq 30
27: .line 340
lload 13 /* v */
lload 11 /* hb */
lcmp
ifge 28
iconst_m1
goto 29
StackMap locals: int long long
StackMap stack:
28: iconst_1
StackMap locals:
StackMap stack: int
29: ireturn
30: .line 341
StackMap locals:
StackMap stack:
iload 10 /* bv */
iconst_1
iand
bipush 31
ishl
istore 6 /* carry */
end local 13 // long v
end local 11 // long hb
end local 10 // int bv
31: .line 335
StackMap locals:
StackMap stack:
iload 8 /* i */
iload 3 /* len */
aload 0 /* this */
getfield java.math.MutableBigInteger.offset:I
iadd
if_icmplt 23
end local 9 // int j
end local 8 // int i
32: .line 343
iload 6 /* carry */
ifne 33
iconst_0
goto 34
StackMap locals:
StackMap stack:
33: iconst_m1
StackMap locals:
StackMap stack: int
34: ireturn
end local 7 // int[] val
end local 6 // int carry
end local 5 // int bstart
end local 4 // int[] bval
end local 3 // int len
end local 2 // int blen
end local 1 // java.math.MutableBigInteger b
end local 0 // java.math.MutableBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 35 0 this Ljava/math/MutableBigInteger;
0 35 1 b Ljava/math/MutableBigInteger;
1 35 2 blen I
2 35 3 len I
11 35 4 bval [I
12 35 5 bstart I
13 35 6 carry I
20 35 7 val [I
21 32 8 i I
22 32 9 j I
24 31 10 bv I
25 31 11 hb J
26 31 13 v J
MethodParameters:
Name Flags
b
private final int getLowestSetBit();
descriptor: ()I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Code:
stack=3, locals=3, args_size=1
start local 0 // java.math.MutableBigInteger this
0: .line 351
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
ifne 2
1: .line 352
iconst_m1
ireturn
2: .line 354
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
iconst_1
isub
istore 1 /* j */
start local 1 // int j
3: goto 5
StackMap locals: int
StackMap stack:
4: iinc 1 /* j */ -1
StackMap locals:
StackMap stack:
5: iload 1 /* j */
ifle 6
aload 0 /* this */
getfield java.math.MutableBigInteger.value:[I
iload 1 /* j */
aload 0 /* this */
getfield java.math.MutableBigInteger.offset:I
iadd
iaload
ifeq 4
6: .line 356
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield java.math.MutableBigInteger.value:[I
iload 1 /* j */
aload 0 /* this */
getfield java.math.MutableBigInteger.offset:I
iadd
iaload
istore 2 /* b */
start local 2 // int b
7: .line 357
iload 2 /* b */
ifne 9
8: .line 358
iconst_m1
ireturn
9: .line 359
StackMap locals: int
StackMap stack:
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
iconst_1
isub
iload 1 /* j */
isub
iconst_5
ishl
iload 2 /* b */
invokestatic java.lang.Integer.numberOfTrailingZeros:(I)I
iadd
ireturn
end local 2 // int b
end local 1 // int j
end local 0 // java.math.MutableBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Ljava/math/MutableBigInteger;
3 10 1 j I
7 10 2 b I
private final int getInt(int);
descriptor: (I)I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Code:
stack=3, locals=2, args_size=2
start local 0 // java.math.MutableBigInteger this
start local 1 // int index
0: .line 368
aload 0 /* this */
getfield java.math.MutableBigInteger.value:[I
aload 0 /* this */
getfield java.math.MutableBigInteger.offset:I
iload 1 /* index */
iadd
iaload
ireturn
end local 1 // int index
end local 0 // java.math.MutableBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/math/MutableBigInteger;
0 1 1 index I
MethodParameters:
Name Flags
index
private final long getLong(int);
descriptor: (I)J
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Code:
stack=4, locals=2, args_size=2
start local 0 // java.math.MutableBigInteger this
start local 1 // int index
0: .line 377
aload 0 /* this */
getfield java.math.MutableBigInteger.value:[I
aload 0 /* this */
getfield java.math.MutableBigInteger.offset:I
iload 1 /* index */
iadd
iaload
i2l
ldc 4294967295
land
lreturn
end local 1 // int index
end local 0 // java.math.MutableBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/math/MutableBigInteger;
0 1 1 index I
MethodParameters:
Name Flags
index
final void normalize();
descriptor: ()V
flags: (0x0010) ACC_FINAL
Code:
stack=3, locals=4, args_size=1
start local 0 // java.math.MutableBigInteger this
0: .line 386
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
ifne 3
1: .line 387
aload 0 /* this */
iconst_0
putfield java.math.MutableBigInteger.offset:I
2: .line 388
return
3: .line 391
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield java.math.MutableBigInteger.offset:I
istore 1 /* index */
start local 1 // int index
4: .line 392
aload 0 /* this */
getfield java.math.MutableBigInteger.value:[I
iload 1 /* index */
iaload
ifeq 6
5: .line 393
return
6: .line 395
StackMap locals: int
StackMap stack:
iload 1 /* index */
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
iadd
istore 2 /* indexBound */
start local 2 // int indexBound
7: .line 397
StackMap locals: int
StackMap stack:
iinc 1 /* index */ 1
8: .line 398
iload 1 /* index */
iload 2 /* indexBound */
if_icmpge 9
aload 0 /* this */
getfield java.math.MutableBigInteger.value:[I
iload 1 /* index */
iaload
ifeq 7
9: .line 400
StackMap locals:
StackMap stack:
iload 1 /* index */
aload 0 /* this */
getfield java.math.MutableBigInteger.offset:I
isub
istore 3 /* numZeros */
start local 3 // int numZeros
10: .line 401
aload 0 /* this */
dup
getfield java.math.MutableBigInteger.intLen:I
iload 3 /* numZeros */
isub
putfield java.math.MutableBigInteger.intLen:I
11: .line 402
aload 0 /* this */
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
ifne 12
iconst_0
goto 13
StackMap locals: java.math.MutableBigInteger int int int
StackMap stack: java.math.MutableBigInteger
12: aload 0 /* this */
getfield java.math.MutableBigInteger.offset:I
iload 3 /* numZeros */
iadd
StackMap locals: java.math.MutableBigInteger int int int
StackMap stack: java.math.MutableBigInteger int
13: putfield java.math.MutableBigInteger.offset:I
14: .line 403
return
end local 3 // int numZeros
end local 2 // int indexBound
end local 1 // int index
end local 0 // java.math.MutableBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Ljava/math/MutableBigInteger;
4 15 1 index I
7 15 2 indexBound I
10 15 3 numZeros I
private final void ensureCapacity(int);
descriptor: (I)V
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Code:
stack=2, locals=2, args_size=2
start local 0 // java.math.MutableBigInteger this
start local 1 // int len
0: .line 410
aload 0 /* this */
getfield java.math.MutableBigInteger.value:[I
arraylength
iload 1 /* len */
if_icmpge 4
1: .line 411
aload 0 /* this */
iload 1 /* len */
newarray 10
putfield java.math.MutableBigInteger.value:[I
2: .line 412
aload 0 /* this */
iconst_0
putfield java.math.MutableBigInteger.offset:I
3: .line 413
aload 0 /* this */
iload 1 /* len */
putfield java.math.MutableBigInteger.intLen:I
4: .line 415
StackMap locals:
StackMap stack:
return
end local 1 // int len
end local 0 // java.math.MutableBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljava/math/MutableBigInteger;
0 5 1 len I
MethodParameters:
Name Flags
len
int[] toIntArray();
descriptor: ()[I
flags: (0x0000)
Code:
stack=5, locals=3, args_size=1
start local 0 // java.math.MutableBigInteger this
0: .line 422
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
newarray 10
astore 1 /* result */
start local 1 // int[] result
1: .line 423
iconst_0
istore 2 /* i */
start local 2 // int i
2: goto 5
3: .line 424
StackMap locals: int[] int
StackMap stack:
aload 1 /* result */
iload 2 /* i */
aload 0 /* this */
getfield java.math.MutableBigInteger.value:[I
aload 0 /* this */
getfield java.math.MutableBigInteger.offset:I
iload 2 /* i */
iadd
iaload
iastore
4: .line 423
iinc 2 /* i */ 1
StackMap locals:
StackMap stack:
5: iload 2 /* i */
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
if_icmplt 3
end local 2 // int i
6: .line 425
aload 1 /* result */
areturn
end local 1 // int[] result
end local 0 // java.math.MutableBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljava/math/MutableBigInteger;
1 7 1 result [I
2 6 2 i I
void setInt(int, int);
descriptor: (II)V
flags: (0x0000)
Code:
stack=3, locals=3, args_size=3
start local 0 // java.math.MutableBigInteger this
start local 1 // int index
start local 2 // int val
0: .line 434
aload 0 /* this */
getfield java.math.MutableBigInteger.value:[I
aload 0 /* this */
getfield java.math.MutableBigInteger.offset:I
iload 1 /* index */
iadd
iload 2 /* val */
iastore
1: .line 435
return
end local 2 // int val
end local 1 // int index
end local 0 // java.math.MutableBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/math/MutableBigInteger;
0 2 1 index I
0 2 2 val I
MethodParameters:
Name Flags
index
val
void setValue(int[], int);
descriptor: ([II)V
flags: (0x0000)
Code:
stack=2, locals=3, args_size=3
start local 0 // java.math.MutableBigInteger this
start local 1 // int[] val
start local 2 // int length
0: .line 442
aload 0 /* this */
aload 1 /* val */
putfield java.math.MutableBigInteger.value:[I
1: .line 443
aload 0 /* this */
iload 2 /* length */
putfield java.math.MutableBigInteger.intLen:I
2: .line 444
aload 0 /* this */
iconst_0
putfield java.math.MutableBigInteger.offset:I
3: .line 445
return
end local 2 // int length
end local 1 // int[] val
end local 0 // java.math.MutableBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljava/math/MutableBigInteger;
0 4 1 val [I
0 4 2 length I
MethodParameters:
Name Flags
val
length
void copyValue(java.math.MutableBigInteger);
descriptor: (Ljava/math/MutableBigInteger;)V
flags: (0x0000)
Code:
stack=5, locals=3, args_size=2
start local 0 // java.math.MutableBigInteger this
start local 1 // java.math.MutableBigInteger src
0: .line 452
aload 1 /* src */
getfield java.math.MutableBigInteger.intLen:I
istore 2 /* len */
start local 2 // int len
1: .line 453
aload 0 /* this */
getfield java.math.MutableBigInteger.value:[I
arraylength
iload 2 /* len */
if_icmpge 3
2: .line 454
aload 0 /* this */
iload 2 /* len */
newarray 10
putfield java.math.MutableBigInteger.value:[I
3: .line 455
StackMap locals: int
StackMap stack:
aload 1 /* src */
getfield java.math.MutableBigInteger.value:[I
aload 1 /* src */
getfield java.math.MutableBigInteger.offset:I
aload 0 /* this */
getfield java.math.MutableBigInteger.value:[I
iconst_0
iload 2 /* len */
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
4: .line 456
aload 0 /* this */
iload 2 /* len */
putfield java.math.MutableBigInteger.intLen:I
5: .line 457
aload 0 /* this */
iconst_0
putfield java.math.MutableBigInteger.offset:I
6: .line 458
return
end local 2 // int len
end local 1 // java.math.MutableBigInteger src
end local 0 // java.math.MutableBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljava/math/MutableBigInteger;
0 7 1 src Ljava/math/MutableBigInteger;
1 7 2 len I
MethodParameters:
Name Flags
src
void copyValue(int[]);
descriptor: ([I)V
flags: (0x0000)
Code:
stack=5, locals=3, args_size=2
start local 0 // java.math.MutableBigInteger this
start local 1 // int[] val
0: .line 465
aload 1 /* val */
arraylength
istore 2 /* len */
start local 2 // int len
1: .line 466
aload 0 /* this */
getfield java.math.MutableBigInteger.value:[I
arraylength
iload 2 /* len */
if_icmpge 3
2: .line 467
aload 0 /* this */
iload 2 /* len */
newarray 10
putfield java.math.MutableBigInteger.value:[I
3: .line 468
StackMap locals: int
StackMap stack:
aload 1 /* val */
iconst_0
aload 0 /* this */
getfield java.math.MutableBigInteger.value:[I
iconst_0
iload 2 /* len */
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
4: .line 469
aload 0 /* this */
iload 2 /* len */
putfield java.math.MutableBigInteger.intLen:I
5: .line 470
aload 0 /* this */
iconst_0
putfield java.math.MutableBigInteger.offset:I
6: .line 471
return
end local 2 // int len
end local 1 // int[] val
end local 0 // java.math.MutableBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljava/math/MutableBigInteger;
0 7 1 val [I
1 7 2 len I
MethodParameters:
Name Flags
val
boolean isOne();
descriptor: ()Z
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 // java.math.MutableBigInteger this
0: .line 477
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
iconst_1
if_icmpne 1
aload 0 /* this */
getfield java.math.MutableBigInteger.value:[I
aload 0 /* this */
getfield java.math.MutableBigInteger.offset:I
iaload
iconst_1
if_icmpne 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 // java.math.MutableBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/math/MutableBigInteger;
boolean isZero();
descriptor: ()Z
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 // java.math.MutableBigInteger this
0: .line 484
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
ifne 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 // java.math.MutableBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/math/MutableBigInteger;
boolean isEven();
descriptor: ()Z
flags: (0x0000)
Code:
stack=3, locals=1, args_size=1
start local 0 // java.math.MutableBigInteger this
0: .line 491
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
ifeq 1
aload 0 /* this */
getfield java.math.MutableBigInteger.value:[I
aload 0 /* this */
getfield java.math.MutableBigInteger.offset:I
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
iadd
iconst_1
isub
iaload
iconst_1
iand
ifeq 1
iconst_0
ireturn
StackMap locals:
StackMap stack:
1: iconst_1
ireturn
end local 0 // java.math.MutableBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/math/MutableBigInteger;
boolean isOdd();
descriptor: ()Z
flags: (0x0000)
Code:
stack=3, locals=1, args_size=1
start local 0 // java.math.MutableBigInteger this
0: .line 498
aload 0 /* this */
invokevirtual java.math.MutableBigInteger.isZero:()Z
ifeq 1
iconst_0
goto 3
StackMap locals:
StackMap stack:
1: aload 0 /* this */
getfield java.math.MutableBigInteger.value:[I
aload 0 /* this */
getfield java.math.MutableBigInteger.offset:I
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
iadd
iconst_1
isub
iaload
iconst_1
iand
iconst_1
if_icmpne 2
iconst_1
goto 3
StackMap locals:
StackMap stack:
2: iconst_0
StackMap locals:
StackMap stack: int
3: ireturn
end local 0 // java.math.MutableBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljava/math/MutableBigInteger;
boolean isNormal();
descriptor: ()Z
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 // java.math.MutableBigInteger this
0: .line 507
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
aload 0 /* this */
getfield java.math.MutableBigInteger.offset:I
iadd
aload 0 /* this */
getfield java.math.MutableBigInteger.value:[I
arraylength
if_icmple 2
1: .line 508
iconst_0
ireturn
2: .line 509
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
ifne 4
3: .line 510
iconst_1
ireturn
4: .line 511
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield java.math.MutableBigInteger.value:[I
aload 0 /* this */
getfield java.math.MutableBigInteger.offset:I
iaload
ifeq 5
iconst_1
ireturn
StackMap locals:
StackMap stack:
5: iconst_0
ireturn
end local 0 // java.math.MutableBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljava/math/MutableBigInteger;
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 // java.math.MutableBigInteger this
0: .line 518
aload 0 /* this */
iconst_1
invokevirtual java.math.MutableBigInteger.toBigInteger:(I)Ljava/math/BigInteger;
astore 1 /* b */
start local 1 // java.math.BigInteger b
1: .line 519
aload 1 /* b */
invokevirtual java.math.BigInteger.toString:()Ljava/lang/String;
areturn
end local 1 // java.math.BigInteger b
end local 0 // java.math.MutableBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/math/MutableBigInteger;
1 2 1 b Ljava/math/BigInteger;
void safeRightShift(int);
descriptor: (I)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 // java.math.MutableBigInteger this
start local 1 // int n
0: .line 526
iload 1 /* n */
bipush 32
idiv
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
if_icmplt 3
1: .line 527
aload 0 /* this */
invokevirtual java.math.MutableBigInteger.reset:()V
2: .line 528
goto 4
3: .line 529
StackMap locals:
StackMap stack:
aload 0 /* this */
iload 1 /* n */
invokevirtual java.math.MutableBigInteger.rightShift:(I)V
4: .line 531
StackMap locals:
StackMap stack:
return
end local 1 // int n
end local 0 // java.math.MutableBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljava/math/MutableBigInteger;
0 5 1 n I
MethodParameters:
Name Flags
n
void rightShift(int);
descriptor: (I)V
flags: (0x0000)
Code:
stack=3, locals=5, args_size=2
start local 0 // java.math.MutableBigInteger this
start local 1 // int n
0: .line 538
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
ifne 2
1: .line 539
return
2: .line 540
StackMap locals:
StackMap stack:
iload 1 /* n */
iconst_5
iushr
istore 2 /* nInts */
start local 2 // int nInts
3: .line 541
iload 1 /* n */
bipush 31
iand
istore 3 /* nBits */
start local 3 // int nBits
4: .line 542
aload 0 /* this */
dup
getfield java.math.MutableBigInteger.intLen:I
iload 2 /* nInts */
isub
putfield java.math.MutableBigInteger.intLen:I
5: .line 543
iload 3 /* nBits */
ifne 7
6: .line 544
return
7: .line 545
StackMap locals: int int
StackMap stack:
aload 0 /* this */
getfield java.math.MutableBigInteger.value:[I
aload 0 /* this */
getfield java.math.MutableBigInteger.offset:I
iaload
invokestatic java.math.BigInteger.bitLengthForInt:(I)I
istore 4 /* bitsInHighWord */
start local 4 // int bitsInHighWord
8: .line 546
iload 3 /* nBits */
iload 4 /* bitsInHighWord */
if_icmplt 12
9: .line 547
aload 0 /* this */
bipush 32
iload 3 /* nBits */
isub
invokevirtual java.math.MutableBigInteger.primitiveLeftShift:(I)V
10: .line 548
aload 0 /* this */
dup
getfield java.math.MutableBigInteger.intLen:I
iconst_1
isub
putfield java.math.MutableBigInteger.intLen:I
11: .line 549
goto 13
12: .line 550
StackMap locals: int
StackMap stack:
aload 0 /* this */
iload 3 /* nBits */
invokevirtual java.math.MutableBigInteger.primitiveRightShift:(I)V
13: .line 552
StackMap locals:
StackMap stack:
return
end local 4 // int bitsInHighWord
end local 3 // int nBits
end local 2 // int nInts
end local 1 // int n
end local 0 // java.math.MutableBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Ljava/math/MutableBigInteger;
0 14 1 n I
3 14 2 nInts I
4 14 3 nBits I
8 14 4 bitsInHighWord I
MethodParameters:
Name Flags
n
void safeLeftShift(int);
descriptor: (I)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 // java.math.MutableBigInteger this
start local 1 // int n
0: .line 558
iload 1 /* n */
ifle 2
1: .line 559
aload 0 /* this */
iload 1 /* n */
invokevirtual java.math.MutableBigInteger.leftShift:(I)V
2: .line 561
StackMap locals:
StackMap stack:
return
end local 1 // int n
end local 0 // java.math.MutableBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/math/MutableBigInteger;
0 3 1 n I
MethodParameters:
Name Flags
n
void leftShift(int);
descriptor: (I)V
flags: (0x0000)
Code:
stack=5, locals=8, args_size=2
start local 0 // java.math.MutableBigInteger this
start local 1 // int n
0: .line 573
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
ifne 2
1: .line 574
return
2: .line 575
StackMap locals:
StackMap stack:
iload 1 /* n */
iconst_5
iushr
istore 2 /* nInts */
start local 2 // int nInts
3: .line 576
iload 1 /* n */
bipush 31
iand
istore 3 /* nBits */
start local 3 // int nBits
4: .line 577
aload 0 /* this */
getfield java.math.MutableBigInteger.value:[I
aload 0 /* this */
getfield java.math.MutableBigInteger.offset:I
iaload
invokestatic java.math.BigInteger.bitLengthForInt:(I)I
istore 4 /* bitsInHighWord */
start local 4 // int bitsInHighWord
5: .line 580
iload 1 /* n */
bipush 32
iload 4 /* bitsInHighWord */
isub
if_icmpgt 8
6: .line 581
aload 0 /* this */
iload 3 /* nBits */
invokevirtual java.math.MutableBigInteger.primitiveLeftShift:(I)V
7: .line 582
return
8: .line 585
StackMap locals: int int int
StackMap stack:
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
iload 2 /* nInts */
iadd
iconst_1
iadd
istore 5 /* newLen */
start local 5 // int newLen
9: .line 586
iload 3 /* nBits */
bipush 32
iload 4 /* bitsInHighWord */
isub
if_icmpgt 11
10: .line 587
iinc 5 /* newLen */ -1
11: .line 588
StackMap locals: int
StackMap stack:
aload 0 /* this */
getfield java.math.MutableBigInteger.value:[I
arraylength
iload 5 /* newLen */
if_icmpge 20
12: .line 590
iload 5 /* newLen */
newarray 10
astore 6 /* result */
start local 6 // int[] result
13: .line 591
iconst_0
istore 7 /* i */
start local 7 // int i
14: goto 17
15: .line 592
StackMap locals: int[] int
StackMap stack:
aload 6 /* result */
iload 7 /* i */
aload 0 /* this */
getfield java.math.MutableBigInteger.value:[I
aload 0 /* this */
getfield java.math.MutableBigInteger.offset:I
iload 7 /* i */
iadd
iaload
iastore
16: .line 591
iinc 7 /* i */ 1
StackMap locals:
StackMap stack:
17: iload 7 /* i */
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
if_icmplt 15
end local 7 // int i
18: .line 593
aload 0 /* this */
aload 6 /* result */
iload 5 /* newLen */
invokevirtual java.math.MutableBigInteger.setValue:([II)V
end local 6 // int[] result
19: .line 594
goto 38
StackMap locals:
StackMap stack:
20: aload 0 /* this */
getfield java.math.MutableBigInteger.value:[I
arraylength
aload 0 /* this */
getfield java.math.MutableBigInteger.offset:I
isub
iload 5 /* newLen */
if_icmplt 27
21: .line 596
iconst_0
istore 6 /* i */
start local 6 // int i
22: goto 25
23: .line 597
StackMap locals: int
StackMap stack:
aload 0 /* this */
getfield java.math.MutableBigInteger.value:[I
aload 0 /* this */
getfield java.math.MutableBigInteger.offset:I
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
iadd
iload 6 /* i */
iadd
iconst_0
iastore
24: .line 596
iinc 6 /* i */ 1
StackMap locals:
StackMap stack:
25: iload 6 /* i */
iload 5 /* newLen */
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
isub
if_icmplt 23
end local 6 // int i
26: .line 598
goto 38
27: .line 600
StackMap locals:
StackMap stack:
iconst_0
istore 6 /* i */
start local 6 // int i
28: goto 31
29: .line 601
StackMap locals: int
StackMap stack:
aload 0 /* this */
getfield java.math.MutableBigInteger.value:[I
iload 6 /* i */
aload 0 /* this */
getfield java.math.MutableBigInteger.value:[I
aload 0 /* this */
getfield java.math.MutableBigInteger.offset:I
iload 6 /* i */
iadd
iaload
iastore
30: .line 600
iinc 6 /* i */ 1
StackMap locals:
StackMap stack:
31: iload 6 /* i */
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
if_icmplt 29
end local 6 // int i
32: .line 602
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
istore 6 /* i */
start local 6 // int i
33: goto 36
34: .line 603
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield java.math.MutableBigInteger.value:[I
iload 6 /* i */
iconst_0
iastore
35: .line 602
iinc 6 /* i */ 1
StackMap locals:
StackMap stack:
36: iload 6 /* i */
iload 5 /* newLen */
if_icmplt 34
end local 6 // int i
37: .line 604
aload 0 /* this */
iconst_0
putfield java.math.MutableBigInteger.offset:I
38: .line 606
StackMap locals:
StackMap stack:
aload 0 /* this */
iload 5 /* newLen */
putfield java.math.MutableBigInteger.intLen:I
39: .line 607
iload 3 /* nBits */
ifne 41
40: .line 608
return
41: .line 609
StackMap locals:
StackMap stack:
iload 3 /* nBits */
bipush 32
iload 4 /* bitsInHighWord */
isub
if_icmpgt 43
42: .line 610
aload 0 /* this */
iload 3 /* nBits */
invokevirtual java.math.MutableBigInteger.primitiveLeftShift:(I)V
goto 44
43: .line 612
StackMap locals:
StackMap stack:
aload 0 /* this */
bipush 32
iload 3 /* nBits */
isub
invokevirtual java.math.MutableBigInteger.primitiveRightShift:(I)V
44: .line 613
StackMap locals:
StackMap stack:
return
end local 5 // int newLen
end local 4 // int bitsInHighWord
end local 3 // int nBits
end local 2 // int nInts
end local 1 // int n
end local 0 // java.math.MutableBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 45 0 this Ljava/math/MutableBigInteger;
0 45 1 n I
3 45 2 nInts I
4 45 3 nBits I
5 45 4 bitsInHighWord I
9 45 5 newLen I
13 19 6 result [I
14 18 7 i I
22 26 6 i I
28 32 6 i I
33 37 6 i I
MethodParameters:
Name Flags
n
private int divadd(int[], int[], int);
descriptor: ([I[II)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=9, args_size=4
start local 0 // java.math.MutableBigInteger this
start local 1 // int[] a
start local 2 // int[] result
start local 3 // int offset
0: .line 621
lconst_0
lstore 4 /* carry */
start local 4 // long carry
1: .line 623
aload 1 /* a */
arraylength
iconst_1
isub
istore 6 /* j */
start local 6 // int j
2: goto 11
3: .line 624
StackMap locals: long int
StackMap stack:
aload 1 /* a */
iload 6 /* j */
iaload
i2l
ldc 4294967295
land
4: .line 625
aload 2 /* result */
iload 6 /* j */
iload 3 /* offset */
iadd
iaload
i2l
ldc 4294967295
land
5: .line 624
ladd
6: .line 625
lload 4 /* carry */
7: .line 624
ladd
lstore 7 /* sum */
start local 7 // long sum
8: .line 626
aload 2 /* result */
iload 6 /* j */
iload 3 /* offset */
iadd
lload 7 /* sum */
l2i
iastore
9: .line 627
lload 7 /* sum */
bipush 32
lushr
lstore 4 /* carry */
end local 7 // long sum
10: .line 623
iinc 6 /* j */ -1
StackMap locals:
StackMap stack:
11: iload 6 /* j */
ifge 3
end local 6 // int j
12: .line 629
lload 4 /* carry */
l2i
ireturn
end local 4 // long carry
end local 3 // int offset
end local 2 // int[] result
end local 1 // int[] a
end local 0 // java.math.MutableBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Ljava/math/MutableBigInteger;
0 13 1 a [I
0 13 2 result [I
0 13 3 offset I
1 13 4 carry J
2 12 6 j I
8 10 7 sum J
MethodParameters:
Name Flags
a
result
offset
private int mulsub(int[], int[], int, int, int);
descriptor: ([I[IIII)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=15, args_size=6
start local 0 // java.math.MutableBigInteger this
start local 1 // int[] q
start local 2 // int[] a
start local 3 // int x
start local 4 // int len
start local 5 // int offset
0: .line 638
iload 3 /* x */
i2l
ldc 4294967295
land
lstore 6 /* xLong */
start local 6 // long xLong
1: .line 639
lconst_0
lstore 8 /* carry */
start local 8 // long carry
2: .line 640
iload 5 /* offset */
iload 4 /* len */
iadd
istore 5 /* offset */
3: .line 642
iload 4 /* len */
iconst_1
isub
istore 10 /* j */
start local 10 // int j
4: goto 15
5: .line 643
StackMap locals: long long int
StackMap stack:
aload 2 /* a */
iload 10 /* j */
iaload
i2l
ldc 4294967295
land
lload 6 /* xLong */
lmul
lload 8 /* carry */
ladd
lstore 11 /* product */
start local 11 // long product
6: .line 644
aload 1 /* q */
iload 5 /* offset */
iaload
i2l
lload 11 /* product */
lsub
lstore 13 /* difference */
start local 13 // long difference
7: .line 645
aload 1 /* q */
iload 5 /* offset */
iinc 5 /* offset */ -1
lload 13 /* difference */
l2i
iastore
8: .line 646
lload 11 /* product */
bipush 32
lushr
9: .line 647
lload 13 /* difference */
ldc 4294967295
land
10: .line 648
lload 11 /* product */
l2i
iconst_m1
ixor
i2l
ldc 4294967295
land
lcmp
ifle 11
iconst_1
goto 12
StackMap locals: java.math.MutableBigInteger int[] int[] int int int long long int long long
StackMap stack: long
11: iconst_0
12: .line 647
StackMap locals: java.math.MutableBigInteger int[] int[] int int int long long int long long
StackMap stack: long int
i2l
13: .line 646
ladd
lstore 8 /* carry */
end local 13 // long difference
end local 11 // long product
14: .line 642
iinc 10 /* j */ -1
StackMap locals:
StackMap stack:
15: iload 10 /* j */
ifge 5
end local 10 // int j
16: .line 650
lload 8 /* carry */
l2i
ireturn
end local 8 // long carry
end local 6 // long xLong
end local 5 // int offset
end local 4 // int len
end local 3 // int x
end local 2 // int[] a
end local 1 // int[] q
end local 0 // java.math.MutableBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Ljava/math/MutableBigInteger;
0 17 1 q [I
0 17 2 a [I
0 17 3 x I
0 17 4 len I
0 17 5 offset I
1 17 6 xLong J
2 17 8 carry J
4 16 10 j I
6 14 11 product J
7 14 13 difference J
MethodParameters:
Name Flags
q
a
x
len
offset
private int mulsubBorrow(int[], int[], int, int, int);
descriptor: ([I[IIII)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=15, args_size=6
start local 0 // java.math.MutableBigInteger this
start local 1 // int[] q
start local 2 // int[] a
start local 3 // int x
start local 4 // int len
start local 5 // int offset
0: .line 658
iload 3 /* x */
i2l
ldc 4294967295
land
lstore 6 /* xLong */
start local 6 // long xLong
1: .line 659
lconst_0
lstore 8 /* carry */
start local 8 // long carry
2: .line 660
iload 5 /* offset */
iload 4 /* len */
iadd
istore 5 /* offset */
3: .line 661
iload 4 /* len */
iconst_1
isub
istore 10 /* j */
start local 10 // int j
4: goto 14
5: .line 662
StackMap locals: long long int
StackMap stack:
aload 2 /* a */
iload 10 /* j */
iaload
i2l
ldc 4294967295
land
lload 6 /* xLong */
lmul
lload 8 /* carry */
ladd
lstore 11 /* product */
start local 11 // long product
6: .line 663
aload 1 /* q */
iload 5 /* offset */
iinc 5 /* offset */ -1
iaload
i2l
lload 11 /* product */
lsub
lstore 13 /* difference */
start local 13 // long difference
7: .line 664
lload 11 /* product */
bipush 32
lushr
8: .line 665
lload 13 /* difference */
ldc 4294967295
land
9: .line 666
lload 11 /* product */
l2i
iconst_m1
ixor
i2l
ldc 4294967295
land
lcmp
ifle 10
iconst_1
goto 11
StackMap locals: java.math.MutableBigInteger int[] int[] int int int long long int long long
StackMap stack: long
10: iconst_0
11: .line 665
StackMap locals: java.math.MutableBigInteger int[] int[] int int int long long int long long
StackMap stack: long int
i2l
12: .line 664
ladd
lstore 8 /* carry */
end local 13 // long difference
end local 11 // long product
13: .line 661
iinc 10 /* j */ -1
StackMap locals:
StackMap stack:
14: iload 10 /* j */
ifge 5
end local 10 // int j
15: .line 668
lload 8 /* carry */
l2i
ireturn
end local 8 // long carry
end local 6 // long xLong
end local 5 // int offset
end local 4 // int len
end local 3 // int x
end local 2 // int[] a
end local 1 // int[] q
end local 0 // java.math.MutableBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Ljava/math/MutableBigInteger;
0 16 1 q [I
0 16 2 a [I
0 16 3 x I
0 16 4 len I
0 16 5 offset I
1 16 6 xLong J
2 16 8 carry J
4 15 10 j I
6 13 11 product J
7 13 13 difference J
MethodParameters:
Name Flags
q
a
x
len
offset
private final void primitiveRightShift(int);
descriptor: (I)V
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Code:
stack=5, locals=7, args_size=2
start local 0 // java.math.MutableBigInteger this
start local 1 // int n
0: .line 677
aload 0 /* this */
getfield java.math.MutableBigInteger.value:[I
astore 2 /* val */
start local 2 // int[] val
1: .line 678
bipush 32
iload 1 /* n */
isub
istore 3 /* n2 */
start local 3 // int n2
2: .line 679
aload 0 /* this */
getfield java.math.MutableBigInteger.offset:I
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
iadd
iconst_1
isub
istore 4 /* i */
start local 4 // int i
3: aload 2 /* val */
iload 4 /* i */
iaload
istore 5 /* c */
start local 5 // int c
4: goto 9
5: .line 680
StackMap locals: java.math.MutableBigInteger int int[] int int int
StackMap stack:
iload 5 /* c */
istore 6 /* b */
start local 6 // int b
6: .line 681
aload 2 /* val */
iload 4 /* i */
iconst_1
isub
iaload
istore 5 /* c */
7: .line 682
aload 2 /* val */
iload 4 /* i */
iload 5 /* c */
iload 3 /* n2 */
ishl
iload 6 /* b */
iload 1 /* n */
iushr
ior
iastore
end local 6 // int b
8: .line 679
iinc 4 /* i */ -1
StackMap locals:
StackMap stack:
9: iload 4 /* i */
aload 0 /* this */
getfield java.math.MutableBigInteger.offset:I
if_icmpgt 5
end local 5 // int c
end local 4 // int i
10: .line 684
aload 2 /* val */
aload 0 /* this */
getfield java.math.MutableBigInteger.offset:I
dup2
iaload
iload 1 /* n */
iushr
iastore
11: .line 685
return
end local 3 // int n2
end local 2 // int[] val
end local 1 // int n
end local 0 // java.math.MutableBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Ljava/math/MutableBigInteger;
0 12 1 n I
1 12 2 val [I
2 12 3 n2 I
3 10 4 i I
4 10 5 c I
6 8 6 b I
MethodParameters:
Name Flags
n
private final void primitiveLeftShift(int);
descriptor: (I)V
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Code:
stack=5, locals=8, args_size=2
start local 0 // java.math.MutableBigInteger this
start local 1 // int n
0: .line 693
aload 0 /* this */
getfield java.math.MutableBigInteger.value:[I
astore 2 /* val */
start local 2 // int[] val
1: .line 694
bipush 32
iload 1 /* n */
isub
istore 3 /* n2 */
start local 3 // int n2
2: .line 695
aload 0 /* this */
getfield java.math.MutableBigInteger.offset:I
istore 4 /* i */
start local 4 // int i
3: aload 2 /* val */
iload 4 /* i */
iaload
istore 5 /* c */
start local 5 // int c
4: iload 4 /* i */
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
iadd
iconst_1
isub
istore 6 /* m */
start local 6 // int m
5: goto 10
6: .line 696
StackMap locals: java.math.MutableBigInteger int int[] int int int int
StackMap stack:
iload 5 /* c */
istore 7 /* b */
start local 7 // int b
7: .line 697
aload 2 /* val */
iload 4 /* i */
iconst_1
iadd
iaload
istore 5 /* c */
8: .line 698
aload 2 /* val */
iload 4 /* i */
iload 7 /* b */
iload 1 /* n */
ishl
iload 5 /* c */
iload 3 /* n2 */
iushr
ior
iastore
end local 7 // int b
9: .line 695
iinc 4 /* i */ 1
StackMap locals:
StackMap stack:
10: iload 4 /* i */
iload 6 /* m */
if_icmplt 6
end local 6 // int m
end local 5 // int c
end local 4 // int i
11: .line 700
aload 2 /* val */
aload 0 /* this */
getfield java.math.MutableBigInteger.offset:I
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
iadd
iconst_1
isub
dup2
iaload
iload 1 /* n */
ishl
iastore
12: .line 701
return
end local 3 // int n2
end local 2 // int[] val
end local 1 // int n
end local 0 // java.math.MutableBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Ljava/math/MutableBigInteger;
0 13 1 n I
1 13 2 val [I
2 13 3 n2 I
3 11 4 i I
4 11 5 c I
5 11 6 m I
7 9 7 b I
MethodParameters:
Name Flags
n
private java.math.BigInteger getLower(int);
descriptor: (I)Ljava/math/BigInteger;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=4, args_size=2
start local 0 // java.math.MutableBigInteger this
start local 1 // int n
0: .line 708
aload 0 /* this */
invokevirtual java.math.MutableBigInteger.isZero:()Z
ifeq 2
1: .line 709
getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
areturn
2: .line 710
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
iload 1 /* n */
if_icmpge 4
3: .line 711
aload 0 /* this */
iconst_1
invokevirtual java.math.MutableBigInteger.toBigInteger:(I)Ljava/math/BigInteger;
areturn
4: .line 714
StackMap locals:
StackMap stack:
iload 1 /* n */
istore 2 /* len */
start local 2 // int len
5: .line 715
goto 7
6: .line 716
StackMap locals: int
StackMap stack:
iinc 2 /* len */ -1
7: .line 715
StackMap locals:
StackMap stack:
iload 2 /* len */
ifle 8
aload 0 /* this */
getfield java.math.MutableBigInteger.value:[I
aload 0 /* this */
getfield java.math.MutableBigInteger.offset:I
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
iadd
iload 2 /* len */
isub
iaload
ifeq 6
8: .line 717
StackMap locals:
StackMap stack:
iload 2 /* len */
ifle 9
iconst_1
goto 10
StackMap locals:
StackMap stack:
9: iconst_0
StackMap locals:
StackMap stack: int
10: istore 3 /* sign */
start local 3 // int sign
11: .line 718
new java.math.BigInteger
dup
aload 0 /* this */
getfield java.math.MutableBigInteger.value:[I
aload 0 /* this */
getfield java.math.MutableBigInteger.offset:I
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
iadd
iload 2 /* len */
isub
aload 0 /* this */
getfield java.math.MutableBigInteger.offset:I
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
iadd
invokestatic java.util.Arrays.copyOfRange:([III)[I
iload 3 /* sign */
invokespecial java.math.BigInteger.<init>:([II)V
areturn
end local 3 // int sign
end local 2 // int len
end local 1 // int n
end local 0 // java.math.MutableBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Ljava/math/MutableBigInteger;
0 12 1 n I
5 12 2 len I
11 12 3 sign I
MethodParameters:
Name Flags
n
private void keepLower(int);
descriptor: (I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=2, args_size=2
start local 0 // java.math.MutableBigInteger this
start local 1 // int n
0: .line 726
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
iload 1 /* n */
if_icmplt 3
1: .line 727
aload 0 /* this */
dup
getfield java.math.MutableBigInteger.offset:I
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
iload 1 /* n */
isub
iadd
putfield java.math.MutableBigInteger.offset:I
2: .line 728
aload 0 /* this */
iload 1 /* n */
putfield java.math.MutableBigInteger.intLen:I
3: .line 730
StackMap locals:
StackMap stack:
return
end local 1 // int n
end local 0 // java.math.MutableBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljava/math/MutableBigInteger;
0 4 1 n I
MethodParameters:
Name Flags
n
void add(java.math.MutableBigInteger);
descriptor: (Ljava/math/MutableBigInteger;)V
flags: (0x0000)
Code:
stack=6, locals=12, args_size=2
start local 0 // java.math.MutableBigInteger this
start local 1 // java.math.MutableBigInteger addend
0: .line 738
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
istore 2 /* x */
start local 2 // int x
1: .line 739
aload 1 /* addend */
getfield java.math.MutableBigInteger.intLen:I
istore 3 /* y */
start local 3 // int y
2: .line 740
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
aload 1 /* addend */
getfield java.math.MutableBigInteger.intLen:I
if_icmple 3
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
goto 4
StackMap locals: int int
StackMap stack:
3: aload 1 /* addend */
getfield java.math.MutableBigInteger.intLen:I
StackMap locals:
StackMap stack: int
4: istore 4 /* resultLen */
start local 4 // int resultLen
5: .line 741
aload 0 /* this */
getfield java.math.MutableBigInteger.value:[I
arraylength
iload 4 /* resultLen */
if_icmpge 6
iload 4 /* resultLen */
newarray 10
goto 7
StackMap locals: int
StackMap stack:
6: aload 0 /* this */
getfield java.math.MutableBigInteger.value:[I
StackMap locals:
StackMap stack: int[]
7: astore 5 /* result */
start local 5 // int[] result
8: .line 743
aload 5 /* result */
arraylength
iconst_1
isub
istore 6 /* rstart */
start local 6 // int rstart
9: .line 745
lconst_0
lstore 9 /* carry */
start local 9 // long carry
10: .line 748
goto 19
11: .line 749
StackMap locals: java.math.MutableBigInteger java.math.MutableBigInteger int int int int[] int top top long
StackMap stack:
iinc 2 /* x */ -1
iinc 3 /* y */ -1
12: .line 750
aload 0 /* this */
getfield java.math.MutableBigInteger.value:[I
iload 2 /* x */
aload 0 /* this */
getfield java.math.MutableBigInteger.offset:I
iadd
iaload
i2l
ldc 4294967295
land
13: .line 751
aload 1 /* addend */
getfield java.math.MutableBigInteger.value:[I
iload 3 /* y */
aload 1 /* addend */
getfield java.math.MutableBigInteger.offset:I
iadd
iaload
i2l
ldc 4294967295
land
14: .line 750
ladd
15: .line 751
lload 9 /* carry */
16: .line 750
ladd
lstore 7 /* sum */
start local 7 // long sum
17: .line 752
aload 5 /* result */
iload 6 /* rstart */
iinc 6 /* rstart */ -1
lload 7 /* sum */
l2i
iastore
18: .line 753
lload 7 /* sum */
bipush 32
lushr
lstore 9 /* carry */
end local 7 // long sum
19: .line 748
StackMap locals:
StackMap stack:
iload 2 /* x */
ifle 27
iload 3 /* y */
ifgt 11
20: .line 757
goto 27
21: .line 758
StackMap locals:
StackMap stack:
iinc 2 /* x */ -1
22: .line 759
lload 9 /* carry */
lconst_0
lcmp
ifne 24
aload 5 /* result */
aload 0 /* this */
getfield java.math.MutableBigInteger.value:[I
if_acmpne 24
iload 6 /* rstart */
iload 2 /* x */
aload 0 /* this */
getfield java.math.MutableBigInteger.offset:I
iadd
if_icmpne 24
23: .line 760
return
24: .line 761
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield java.math.MutableBigInteger.value:[I
iload 2 /* x */
aload 0 /* this */
getfield java.math.MutableBigInteger.offset:I
iadd
iaload
i2l
ldc 4294967295
land
lload 9 /* carry */
ladd
lstore 7 /* sum */
start local 7 // long sum
25: .line 762
aload 5 /* result */
iload 6 /* rstart */
iinc 6 /* rstart */ -1
lload 7 /* sum */
l2i
iastore
26: .line 763
lload 7 /* sum */
bipush 32
lushr
lstore 9 /* carry */
end local 7 // long sum
27: .line 757
StackMap locals:
StackMap stack:
iload 2 /* x */
ifgt 21
28: .line 765
goto 33
29: .line 766
StackMap locals:
StackMap stack:
iinc 3 /* y */ -1
30: .line 767
aload 1 /* addend */
getfield java.math.MutableBigInteger.value:[I
iload 3 /* y */
aload 1 /* addend */
getfield java.math.MutableBigInteger.offset:I
iadd
iaload
i2l
ldc 4294967295
land
lload 9 /* carry */
ladd
lstore 7 /* sum */
start local 7 // long sum
31: .line 768
aload 5 /* result */
iload 6 /* rstart */
iinc 6 /* rstart */ -1
lload 7 /* sum */
l2i
iastore
32: .line 769
lload 7 /* sum */
bipush 32
lushr
lstore 9 /* carry */
end local 7 // long sum
33: .line 765
StackMap locals:
StackMap stack:
iload 3 /* y */
ifgt 29
34: .line 772
lload 9 /* carry */
lconst_0
lcmp
ifle 43
35: .line 773
iinc 4 /* resultLen */ 1
36: .line 774
aload 5 /* result */
arraylength
iload 4 /* resultLen */
if_icmpge 42
37: .line 775
iload 4 /* resultLen */
newarray 10
astore 11 /* temp */
start local 11 // int[] temp
38: .line 778
aload 5 /* result */
iconst_0
aload 11 /* temp */
iconst_1
aload 5 /* result */
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
39: .line 779
aload 11 /* temp */
iconst_0
iconst_1
iastore
40: .line 780
aload 11 /* temp */
astore 5 /* result */
end local 11 // int[] temp
41: .line 781
goto 43
42: .line 782
StackMap locals:
StackMap stack:
aload 5 /* result */
iload 6 /* rstart */
iinc 6 /* rstart */ -1
iconst_1
iastore
43: .line 786
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 5 /* result */
putfield java.math.MutableBigInteger.value:[I
44: .line 787
aload 0 /* this */
iload 4 /* resultLen */
putfield java.math.MutableBigInteger.intLen:I
45: .line 788
aload 0 /* this */
aload 5 /* result */
arraylength
iload 4 /* resultLen */
isub
putfield java.math.MutableBigInteger.offset:I
46: .line 789
return
end local 9 // long carry
end local 6 // int rstart
end local 5 // int[] result
end local 4 // int resultLen
end local 3 // int y
end local 2 // int x
end local 1 // java.math.MutableBigInteger addend
end local 0 // java.math.MutableBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 47 0 this Ljava/math/MutableBigInteger;
0 47 1 addend Ljava/math/MutableBigInteger;
1 47 2 x I
2 47 3 y I
5 47 4 resultLen I
8 47 5 result [I
9 47 6 rstart I
17 19 7 sum J
25 27 7 sum J
31 33 7 sum J
10 47 9 carry J
38 41 11 temp [I
MethodParameters:
Name Flags
addend
void addShifted(java.math.MutableBigInteger, int);
descriptor: (Ljava/math/MutableBigInteger;I)V
flags: (0x0000)
Code:
stack=6, locals=13, args_size=3
start local 0 // java.math.MutableBigInteger this
start local 1 // java.math.MutableBigInteger addend
start local 2 // int n
0: .line 797
aload 1 /* addend */
invokevirtual java.math.MutableBigInteger.isZero:()Z
ifeq 2
1: .line 798
return
2: .line 801
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
istore 3 /* x */
start local 3 // int x
3: .line 802
aload 1 /* addend */
getfield java.math.MutableBigInteger.intLen:I
iload 2 /* n */
iadd
istore 4 /* y */
start local 4 // int y
4: .line 803
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
iload 4 /* y */
if_icmple 5
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
goto 6
StackMap locals: int int
StackMap stack:
5: iload 4 /* y */
StackMap locals:
StackMap stack: int
6: istore 5 /* resultLen */
start local 5 // int resultLen
7: .line 804
aload 0 /* this */
getfield java.math.MutableBigInteger.value:[I
arraylength
iload 5 /* resultLen */
if_icmpge 8
iload 5 /* resultLen */
newarray 10
goto 9
StackMap locals: int
StackMap stack:
8: aload 0 /* this */
getfield java.math.MutableBigInteger.value:[I
StackMap locals:
StackMap stack: int[]
9: astore 6 /* result */
start local 6 // int[] result
10: .line 806
aload 6 /* result */
arraylength
iconst_1
isub
istore 7 /* rstart */
start local 7 // int rstart
11: .line 808
lconst_0
lstore 10 /* carry */
start local 10 // long carry
12: .line 811
goto 24
13: .line 812
StackMap locals: java.math.MutableBigInteger java.math.MutableBigInteger int int int int int[] int top top long
StackMap stack:
iinc 3 /* x */ -1
iinc 4 /* y */ -1
14: .line 813
iload 4 /* y */
aload 1 /* addend */
getfield java.math.MutableBigInteger.offset:I
iadd
aload 1 /* addend */
getfield java.math.MutableBigInteger.value:[I
arraylength
if_icmpge 15
aload 1 /* addend */
getfield java.math.MutableBigInteger.value:[I
iload 4 /* y */
aload 1 /* addend */
getfield java.math.MutableBigInteger.offset:I
iadd
iaload
goto 16
StackMap locals:
StackMap stack:
15: iconst_0
StackMap locals:
StackMap stack: int
16: istore 12 /* bval */
start local 12 // int bval
17: .line 814
aload 0 /* this */
getfield java.math.MutableBigInteger.value:[I
iload 3 /* x */
aload 0 /* this */
getfield java.math.MutableBigInteger.offset:I
iadd
iaload
i2l
ldc 4294967295
land
18: .line 815
iload 12 /* bval */
i2l
ldc 4294967295
land
19: .line 814
ladd
20: .line 815
lload 10 /* carry */
21: .line 814
ladd
lstore 8 /* sum */
start local 8 // long sum
22: .line 816
aload 6 /* result */
iload 7 /* rstart */
iinc 7 /* rstart */ -1
lload 8 /* sum */
l2i
iastore
23: .line 817
lload 8 /* sum */
bipush 32
lushr
lstore 10 /* carry */
end local 12 // int bval
end local 8 // long sum
24: .line 811
StackMap locals:
StackMap stack:
iload 3 /* x */
ifle 32
iload 4 /* y */
ifgt 13
25: .line 821
goto 32
26: .line 822
StackMap locals:
StackMap stack:
iinc 3 /* x */ -1
27: .line 823
lload 10 /* carry */
lconst_0
lcmp
ifne 29
aload 6 /* result */
aload 0 /* this */
getfield java.math.MutableBigInteger.value:[I
if_acmpne 29
iload 7 /* rstart */
iload 3 /* x */
aload 0 /* this */
getfield java.math.MutableBigInteger.offset:I
iadd
if_icmpne 29
28: .line 824
return
29: .line 826
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield java.math.MutableBigInteger.value:[I
iload 3 /* x */
aload 0 /* this */
getfield java.math.MutableBigInteger.offset:I
iadd
iaload
i2l
ldc 4294967295
land
lload 10 /* carry */
ladd
lstore 8 /* sum */
start local 8 // long sum
30: .line 827
aload 6 /* result */
iload 7 /* rstart */
iinc 7 /* rstart */ -1
lload 8 /* sum */
l2i
iastore
31: .line 828
lload 8 /* sum */
bipush 32
lushr
lstore 10 /* carry */
end local 8 // long sum
32: .line 821
StackMap locals:
StackMap stack:
iload 3 /* x */
ifgt 26
33: .line 830
goto 41
34: .line 831
StackMap locals:
StackMap stack:
iinc 4 /* y */ -1
35: .line 832
iload 4 /* y */
aload 1 /* addend */
getfield java.math.MutableBigInteger.offset:I
iadd
aload 1 /* addend */
getfield java.math.MutableBigInteger.value:[I
arraylength
if_icmpge 36
aload 1 /* addend */
getfield java.math.MutableBigInteger.value:[I
iload 4 /* y */
aload 1 /* addend */
getfield java.math.MutableBigInteger.offset:I
iadd
iaload
goto 37
StackMap locals:
StackMap stack:
36: iconst_0
StackMap locals:
StackMap stack: int
37: istore 12 /* bval */
start local 12 // int bval
38: .line 833
iload 12 /* bval */
i2l
ldc 4294967295
land
lload 10 /* carry */
ladd
lstore 8 /* sum */
start local 8 // long sum
39: .line 834
aload 6 /* result */
iload 7 /* rstart */
iinc 7 /* rstart */ -1
lload 8 /* sum */
l2i
iastore
40: .line 835
lload 8 /* sum */
bipush 32
lushr
lstore 10 /* carry */
end local 12 // int bval
end local 8 // long sum
41: .line 830
StackMap locals:
StackMap stack:
iload 4 /* y */
ifgt 34
42: .line 838
lload 10 /* carry */
lconst_0
lcmp
ifle 51
43: .line 839
iinc 5 /* resultLen */ 1
44: .line 840
aload 6 /* result */
arraylength
iload 5 /* resultLen */
if_icmpge 50
45: .line 841
iload 5 /* resultLen */
newarray 10
astore 12 /* temp */
start local 12 // int[] temp
46: .line 844
aload 6 /* result */
iconst_0
aload 12 /* temp */
iconst_1
aload 6 /* result */
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
47: .line 845
aload 12 /* temp */
iconst_0
iconst_1
iastore
48: .line 846
aload 12 /* temp */
astore 6 /* result */
end local 12 // int[] temp
49: .line 847
goto 51
50: .line 848
StackMap locals:
StackMap stack:
aload 6 /* result */
iload 7 /* rstart */
iinc 7 /* rstart */ -1
iconst_1
iastore
51: .line 852
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 6 /* result */
putfield java.math.MutableBigInteger.value:[I
52: .line 853
aload 0 /* this */
iload 5 /* resultLen */
putfield java.math.MutableBigInteger.intLen:I
53: .line 854
aload 0 /* this */
aload 6 /* result */
arraylength
iload 5 /* resultLen */
isub
putfield java.math.MutableBigInteger.offset:I
54: .line 855
return
end local 10 // long carry
end local 7 // int rstart
end local 6 // int[] result
end local 5 // int resultLen
end local 4 // int y
end local 3 // int x
end local 2 // int n
end local 1 // java.math.MutableBigInteger addend
end local 0 // java.math.MutableBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 55 0 this Ljava/math/MutableBigInteger;
0 55 1 addend Ljava/math/MutableBigInteger;
0 55 2 n I
3 55 3 x I
4 55 4 y I
7 55 5 resultLen I
10 55 6 result [I
11 55 7 rstart I
22 24 8 sum J
30 32 8 sum J
39 41 8 sum J
12 55 10 carry J
17 24 12 bval I
38 41 12 bval I
46 49 12 temp [I
MethodParameters:
Name Flags
addend
n
void addDisjoint(java.math.MutableBigInteger, int);
descriptor: (Ljava/math/MutableBigInteger;I)V
flags: (0x0000)
Code:
stack=5, locals=10, args_size=3
start local 0 // java.math.MutableBigInteger this
start local 1 // java.math.MutableBigInteger addend
start local 2 // int n
0: .line 863
aload 1 /* addend */
invokevirtual java.math.MutableBigInteger.isZero:()Z
ifeq 2
1: .line 864
return
2: .line 866
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
istore 3 /* x */
start local 3 // int x
3: .line 867
aload 1 /* addend */
getfield java.math.MutableBigInteger.intLen:I
iload 2 /* n */
iadd
istore 4 /* y */
start local 4 // int y
4: .line 868
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
iload 4 /* y */
if_icmple 5
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
goto 6
StackMap locals: int int
StackMap stack:
5: iload 4 /* y */
StackMap locals:
StackMap stack: int
6: istore 5 /* resultLen */
start local 5 // int resultLen
7: .line 870
aload 0 /* this */
getfield java.math.MutableBigInteger.value:[I
arraylength
iload 5 /* resultLen */
if_icmpge 10
8: .line 871
iload 5 /* resultLen */
newarray 10
astore 6 /* result */
start local 6 // int[] result
9: goto 12
end local 6 // int[] result
10: .line 873
StackMap locals: int
StackMap stack:
aload 0 /* this */
getfield java.math.MutableBigInteger.value:[I
astore 6 /* result */
start local 6 // int[] result
11: .line 874
aload 0 /* this */
getfield java.math.MutableBigInteger.value:[I
aload 0 /* this */
getfield java.math.MutableBigInteger.offset:I
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
iadd
aload 0 /* this */
getfield java.math.MutableBigInteger.value:[I
arraylength
iconst_0
invokestatic java.util.Arrays.fill:([IIII)V
12: .line 877
StackMap locals: int[]
StackMap stack:
aload 6 /* result */
arraylength
iconst_1
isub
istore 7 /* rstart */
start local 7 // int rstart
13: .line 880
aload 0 /* this */
getfield java.math.MutableBigInteger.value:[I
aload 0 /* this */
getfield java.math.MutableBigInteger.offset:I
aload 6 /* result */
iload 7 /* rstart */
iconst_1
iadd
iload 3 /* x */
isub
iload 3 /* x */
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
14: .line 881
iload 4 /* y */
iload 3 /* x */
isub
istore 4 /* y */
15: .line 882
iload 7 /* rstart */
iload 3 /* x */
isub
istore 7 /* rstart */
16: .line 884
iload 4 /* y */
aload 1 /* addend */
getfield java.math.MutableBigInteger.value:[I
arraylength
aload 1 /* addend */
getfield java.math.MutableBigInteger.offset:I
isub
invokestatic java.lang.Math.min:(II)I
istore 8 /* len */
start local 8 // int len
17: .line 885
aload 1 /* addend */
getfield java.math.MutableBigInteger.value:[I
aload 1 /* addend */
getfield java.math.MutableBigInteger.offset:I
aload 6 /* result */
iload 7 /* rstart */
iconst_1
iadd
iload 4 /* y */
isub
iload 8 /* len */
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
18: .line 888
iload 7 /* rstart */
iconst_1
iadd
iload 4 /* y */
isub
iload 8 /* len */
iadd
istore 9 /* i */
start local 9 // int i
19: goto 22
20: .line 889
StackMap locals: int int int
StackMap stack:
aload 6 /* result */
iload 9 /* i */
iconst_0
iastore
21: .line 888
iinc 9 /* i */ 1
StackMap locals:
StackMap stack:
22: iload 9 /* i */
iload 7 /* rstart */
iconst_1
iadd
if_icmplt 20
end local 9 // int i
23: .line 891
aload 0 /* this */
aload 6 /* result */
putfield java.math.MutableBigInteger.value:[I
24: .line 892
aload 0 /* this */
iload 5 /* resultLen */
putfield java.math.MutableBigInteger.intLen:I
25: .line 893
aload 0 /* this */
aload 6 /* result */
arraylength
iload 5 /* resultLen */
isub
putfield java.math.MutableBigInteger.offset:I
26: .line 894
return
end local 8 // int len
end local 7 // int rstart
end local 6 // int[] result
end local 5 // int resultLen
end local 4 // int y
end local 3 // int x
end local 2 // int n
end local 1 // java.math.MutableBigInteger addend
end local 0 // java.math.MutableBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 27 0 this Ljava/math/MutableBigInteger;
0 27 1 addend Ljava/math/MutableBigInteger;
0 27 2 n I
3 27 3 x I
4 27 4 y I
7 27 5 resultLen I
9 10 6 result [I
11 27 6 result [I
13 27 7 rstart I
17 27 8 len I
19 23 9 i I
MethodParameters:
Name Flags
addend
n
void addLower(java.math.MutableBigInteger, int);
descriptor: (Ljava/math/MutableBigInteger;I)V
flags: (0x0000)
Code:
stack=3, locals=4, args_size=3
start local 0 // java.math.MutableBigInteger this
start local 1 // java.math.MutableBigInteger addend
start local 2 // int n
0: .line 900
new java.math.MutableBigInteger
dup
aload 1 /* addend */
invokespecial java.math.MutableBigInteger.<init>:(Ljava/math/MutableBigInteger;)V
astore 3 /* a */
start local 3 // java.math.MutableBigInteger a
1: .line 901
aload 3 /* a */
getfield java.math.MutableBigInteger.offset:I
aload 3 /* a */
getfield java.math.MutableBigInteger.intLen:I
iadd
iload 2 /* n */
if_icmplt 4
2: .line 902
aload 3 /* a */
aload 3 /* a */
getfield java.math.MutableBigInteger.offset:I
aload 3 /* a */
getfield java.math.MutableBigInteger.intLen:I
iadd
iload 2 /* n */
isub
putfield java.math.MutableBigInteger.offset:I
3: .line 903
aload 3 /* a */
iload 2 /* n */
putfield java.math.MutableBigInteger.intLen:I
4: .line 905
StackMap locals: java.math.MutableBigInteger
StackMap stack:
aload 3 /* a */
invokevirtual java.math.MutableBigInteger.normalize:()V
5: .line 906
aload 0 /* this */
aload 3 /* a */
invokevirtual java.math.MutableBigInteger.add:(Ljava/math/MutableBigInteger;)V
6: .line 907
return
end local 3 // java.math.MutableBigInteger a
end local 2 // int n
end local 1 // java.math.MutableBigInteger addend
end local 0 // java.math.MutableBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljava/math/MutableBigInteger;
0 7 1 addend Ljava/math/MutableBigInteger;
0 7 2 n I
1 7 3 a Ljava/math/MutableBigInteger;
MethodParameters:
Name Flags
addend
n
int subtract(java.math.MutableBigInteger);
descriptor: (Ljava/math/MutableBigInteger;)I
flags: (0x0000)
Code:
stack=6, locals=11, args_size=2
start local 0 // java.math.MutableBigInteger this
start local 1 // java.math.MutableBigInteger b
0: .line 914
aload 0 /* this */
astore 2 /* a */
start local 2 // java.math.MutableBigInteger a
1: .line 916
aload 0 /* this */
getfield java.math.MutableBigInteger.value:[I
astore 3 /* result */
start local 3 // int[] result
2: .line 917
aload 2 /* a */
aload 1 /* b */
invokevirtual java.math.MutableBigInteger.compare:(Ljava/math/MutableBigInteger;)I
istore 4 /* sign */
start local 4 // int sign
3: .line 919
iload 4 /* sign */
ifne 6
4: .line 920
aload 0 /* this */
invokevirtual java.math.MutableBigInteger.reset:()V
5: .line 921
iconst_0
ireturn
6: .line 923
StackMap locals: java.math.MutableBigInteger int[] int
StackMap stack:
iload 4 /* sign */
ifge 10
7: .line 924
aload 2 /* a */
astore 5 /* tmp */
start local 5 // java.math.MutableBigInteger tmp
8: .line 925
aload 1 /* b */
astore 2 /* a */
9: .line 926
aload 5 /* tmp */
astore 1 /* b */
end local 5 // java.math.MutableBigInteger tmp
10: .line 929
StackMap locals:
StackMap stack:
aload 2 /* a */
getfield java.math.MutableBigInteger.intLen:I
istore 5 /* resultLen */
start local 5 // int resultLen
11: .line 930
aload 3 /* result */
arraylength
iload 5 /* resultLen */
if_icmpge 13
12: .line 931
iload 5 /* resultLen */
newarray 10
astore 3 /* result */
13: .line 933
StackMap locals: int
StackMap stack:
lconst_0
lstore 6 /* diff */
start local 6 // long diff
14: .line 934
aload 2 /* a */
getfield java.math.MutableBigInteger.intLen:I
istore 8 /* x */
start local 8 // int x
15: .line 935
aload 1 /* b */
getfield java.math.MutableBigInteger.intLen:I
istore 9 /* y */
start local 9 // int y
16: .line 936
aload 3 /* result */
arraylength
iconst_1
isub
istore 10 /* rstart */
start local 10 // int rstart
17: .line 939
goto 25
18: .line 940
StackMap locals: java.math.MutableBigInteger java.math.MutableBigInteger java.math.MutableBigInteger int[] int int long int int int
StackMap stack:
iinc 8 /* x */ -1
iinc 9 /* y */ -1
19: .line 942
aload 2 /* a */
getfield java.math.MutableBigInteger.value:[I
iload 8 /* x */
aload 2 /* a */
getfield java.math.MutableBigInteger.offset:I
iadd
iaload
i2l
ldc 4294967295
land
20: .line 943
aload 1 /* b */
getfield java.math.MutableBigInteger.value:[I
iload 9 /* y */
aload 1 /* b */
getfield java.math.MutableBigInteger.offset:I
iadd
iaload
i2l
ldc 4294967295
land
21: .line 942
lsub
22: .line 943
lload 6 /* diff */
bipush 32
lshr
lneg
l2i
i2l
23: .line 942
lsub
lstore 6 /* diff */
24: .line 944
aload 3 /* result */
iload 10 /* rstart */
iinc 10 /* rstart */ -1
lload 6 /* diff */
l2i
iastore
25: .line 939
StackMap locals:
StackMap stack:
iload 9 /* y */
ifgt 18
26: .line 947
goto 30
27: .line 948
StackMap locals:
StackMap stack:
iinc 8 /* x */ -1
28: .line 949
aload 2 /* a */
getfield java.math.MutableBigInteger.value:[I
iload 8 /* x */
aload 2 /* a */
getfield java.math.MutableBigInteger.offset:I
iadd
iaload
i2l
ldc 4294967295
land
lload 6 /* diff */
bipush 32
lshr
lneg
l2i
i2l
lsub
lstore 6 /* diff */
29: .line 950
aload 3 /* result */
iload 10 /* rstart */
iinc 10 /* rstart */ -1
lload 6 /* diff */
l2i
iastore
30: .line 947
StackMap locals:
StackMap stack:
iload 8 /* x */
ifgt 27
31: .line 953
aload 0 /* this */
aload 3 /* result */
putfield java.math.MutableBigInteger.value:[I
32: .line 954
aload 0 /* this */
iload 5 /* resultLen */
putfield java.math.MutableBigInteger.intLen:I
33: .line 955
aload 0 /* this */
aload 0 /* this */
getfield java.math.MutableBigInteger.value:[I
arraylength
iload 5 /* resultLen */
isub
putfield java.math.MutableBigInteger.offset:I
34: .line 956
aload 0 /* this */
invokevirtual java.math.MutableBigInteger.normalize:()V
35: .line 957
iload 4 /* sign */
ireturn
end local 10 // int rstart
end local 9 // int y
end local 8 // int x
end local 6 // long diff
end local 5 // int resultLen
end local 4 // int sign
end local 3 // int[] result
end local 2 // java.math.MutableBigInteger a
end local 1 // java.math.MutableBigInteger b
end local 0 // java.math.MutableBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 36 0 this Ljava/math/MutableBigInteger;
0 36 1 b Ljava/math/MutableBigInteger;
1 36 2 a Ljava/math/MutableBigInteger;
2 36 3 result [I
3 36 4 sign I
8 10 5 tmp Ljava/math/MutableBigInteger;
11 36 5 resultLen I
14 36 6 diff J
15 36 8 x I
16 36 9 y I
17 36 10 rstart I
MethodParameters:
Name Flags
b
private int difference(java.math.MutableBigInteger);
descriptor: (Ljava/math/MutableBigInteger;)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=8, args_size=2
start local 0 // java.math.MutableBigInteger this
start local 1 // java.math.MutableBigInteger b
0: .line 966
aload 0 /* this */
astore 2 /* a */
start local 2 // java.math.MutableBigInteger a
1: .line 967
aload 2 /* a */
aload 1 /* b */
invokevirtual java.math.MutableBigInteger.compare:(Ljava/math/MutableBigInteger;)I
istore 3 /* sign */
start local 3 // int sign
2: .line 968
iload 3 /* sign */
ifne 4
3: .line 969
iconst_0
ireturn
4: .line 970
StackMap locals: java.math.MutableBigInteger int
StackMap stack:
iload 3 /* sign */
ifge 8
5: .line 971
aload 2 /* a */
astore 4 /* tmp */
start local 4 // java.math.MutableBigInteger tmp
6: .line 972
aload 1 /* b */
astore 2 /* a */
7: .line 973
aload 4 /* tmp */
astore 1 /* b */
end local 4 // java.math.MutableBigInteger tmp
8: .line 976
StackMap locals:
StackMap stack:
lconst_0
lstore 4 /* diff */
start local 4 // long diff
9: .line 977
aload 2 /* a */
getfield java.math.MutableBigInteger.intLen:I
istore 6 /* x */
start local 6 // int x
10: .line 978
aload 1 /* b */
getfield java.math.MutableBigInteger.intLen:I
istore 7 /* y */
start local 7 // int y
11: .line 981
goto 19
12: .line 982
StackMap locals: long int int
StackMap stack:
iinc 6 /* x */ -1
iinc 7 /* y */ -1
13: .line 983
aload 2 /* a */
getfield java.math.MutableBigInteger.value:[I
aload 2 /* a */
getfield java.math.MutableBigInteger.offset:I
iload 6 /* x */
iadd
iaload
i2l
ldc 4294967295
land
14: .line 984
aload 1 /* b */
getfield java.math.MutableBigInteger.value:[I
aload 1 /* b */
getfield java.math.MutableBigInteger.offset:I
iload 7 /* y */
iadd
iaload
i2l
ldc 4294967295
land
15: .line 983
lsub
16: .line 984
lload 4 /* diff */
bipush 32
lshr
lneg
l2i
i2l
17: .line 983
lsub
lstore 4 /* diff */
18: .line 985
aload 2 /* a */
getfield java.math.MutableBigInteger.value:[I
aload 2 /* a */
getfield java.math.MutableBigInteger.offset:I
iload 6 /* x */
iadd
lload 4 /* diff */
l2i
iastore
19: .line 981
StackMap locals:
StackMap stack:
iload 7 /* y */
ifgt 12
20: .line 988
goto 24
21: .line 989
StackMap locals:
StackMap stack:
iinc 6 /* x */ -1
22: .line 990
aload 2 /* a */
getfield java.math.MutableBigInteger.value:[I
aload 2 /* a */
getfield java.math.MutableBigInteger.offset:I
iload 6 /* x */
iadd
iaload
i2l
ldc 4294967295
land
lload 4 /* diff */
bipush 32
lshr
lneg
l2i
i2l
lsub
lstore 4 /* diff */
23: .line 991
aload 2 /* a */
getfield java.math.MutableBigInteger.value:[I
aload 2 /* a */
getfield java.math.MutableBigInteger.offset:I
iload 6 /* x */
iadd
lload 4 /* diff */
l2i
iastore
24: .line 988
StackMap locals:
StackMap stack:
iload 6 /* x */
ifgt 21
25: .line 994
aload 2 /* a */
invokevirtual java.math.MutableBigInteger.normalize:()V
26: .line 995
iload 3 /* sign */
ireturn
end local 7 // int y
end local 6 // int x
end local 4 // long diff
end local 3 // int sign
end local 2 // java.math.MutableBigInteger a
end local 1 // java.math.MutableBigInteger b
end local 0 // java.math.MutableBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 27 0 this Ljava/math/MutableBigInteger;
0 27 1 b Ljava/math/MutableBigInteger;
1 27 2 a Ljava/math/MutableBigInteger;
2 27 3 sign I
6 8 4 tmp Ljava/math/MutableBigInteger;
9 27 4 diff J
10 27 6 x I
11 27 7 y I
MethodParameters:
Name Flags
b
void multiply(java.math.MutableBigInteger, java.math.MutableBigInteger);
descriptor: (Ljava/math/MutableBigInteger;Ljava/math/MutableBigInteger;)V
flags: (0x0000)
Code:
stack=6, locals=13, args_size=3
start local 0 // java.math.MutableBigInteger this
start local 1 // java.math.MutableBigInteger y
start local 2 // java.math.MutableBigInteger z
0: .line 1003
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
istore 3 /* xLen */
start local 3 // int xLen
1: .line 1004
aload 1 /* y */
getfield java.math.MutableBigInteger.intLen:I
istore 4 /* yLen */
start local 4 // int yLen
2: .line 1005
iload 3 /* xLen */
iload 4 /* yLen */
iadd
istore 5 /* newLen */
start local 5 // int newLen
3: .line 1008
aload 2 /* z */
getfield java.math.MutableBigInteger.value:[I
arraylength
iload 5 /* newLen */
if_icmpge 5
4: .line 1009
aload 2 /* z */
iload 5 /* newLen */
newarray 10
putfield java.math.MutableBigInteger.value:[I
5: .line 1010
StackMap locals: int int int
StackMap stack:
aload 2 /* z */
iconst_0
putfield java.math.MutableBigInteger.offset:I
6: .line 1011
aload 2 /* z */
iload 5 /* newLen */
putfield java.math.MutableBigInteger.intLen:I
7: .line 1014
lconst_0
lstore 6 /* carry */
start local 6 // long carry
8: .line 1015
iload 4 /* yLen */
iconst_1
isub
istore 8 /* j */
start local 8 // int j
9: iload 4 /* yLen */
iload 3 /* xLen */
iadd
iconst_1
isub
istore 9 /* k */
start local 9 // int k
10: goto 19
11: .line 1016
StackMap locals: long int int
StackMap stack:
aload 1 /* y */
getfield java.math.MutableBigInteger.value:[I
iload 8 /* j */
aload 1 /* y */
getfield java.math.MutableBigInteger.offset:I
iadd
iaload
i2l
ldc 4294967295
land
12: .line 1017
aload 0 /* this */
getfield java.math.MutableBigInteger.value:[I
iload 3 /* xLen */
iconst_1
isub
aload 0 /* this */
getfield java.math.MutableBigInteger.offset:I
iadd
iaload
i2l
ldc 4294967295
land
13: .line 1016
lmul
14: .line 1017
lload 6 /* carry */
15: .line 1016
ladd
lstore 10 /* product */
start local 10 // long product
16: .line 1018
aload 2 /* z */
getfield java.math.MutableBigInteger.value:[I
iload 9 /* k */
lload 10 /* product */
l2i
iastore
17: .line 1019
lload 10 /* product */
bipush 32
lushr
lstore 6 /* carry */
end local 10 // long product
18: .line 1015
iinc 8 /* j */ -1
iinc 9 /* k */ -1
StackMap locals:
StackMap stack:
19: iload 8 /* j */
ifge 11
end local 9 // int k
end local 8 // int j
20: .line 1021
aload 2 /* z */
getfield java.math.MutableBigInteger.value:[I
iload 3 /* xLen */
iconst_1
isub
lload 6 /* carry */
l2i
iastore
21: .line 1024
iload 3 /* xLen */
iconst_2
isub
istore 8 /* i */
start local 8 // int i
22: goto 40
23: .line 1025
StackMap locals:
StackMap stack:
lconst_0
lstore 6 /* carry */
24: .line 1026
iload 4 /* yLen */
iconst_1
isub
istore 9 /* j */
start local 9 // int j
25: iload 4 /* yLen */
iload 8 /* i */
iadd
istore 10 /* k */
start local 10 // int k
26: goto 37
27: .line 1027
StackMap locals: int int
StackMap stack:
aload 1 /* y */
getfield java.math.MutableBigInteger.value:[I
iload 9 /* j */
aload 1 /* y */
getfield java.math.MutableBigInteger.offset:I
iadd
iaload
i2l
ldc 4294967295
land
28: .line 1028
aload 0 /* this */
getfield java.math.MutableBigInteger.value:[I
iload 8 /* i */
aload 0 /* this */
getfield java.math.MutableBigInteger.offset:I
iadd
iaload
i2l
ldc 4294967295
land
29: .line 1027
lmul
30: .line 1029
aload 2 /* z */
getfield java.math.MutableBigInteger.value:[I
iload 10 /* k */
iaload
i2l
ldc 4294967295
land
31: .line 1027
ladd
32: .line 1029
lload 6 /* carry */
33: .line 1027
ladd
lstore 11 /* product */
start local 11 // long product
34: .line 1030
aload 2 /* z */
getfield java.math.MutableBigInteger.value:[I
iload 10 /* k */
lload 11 /* product */
l2i
iastore
35: .line 1031
lload 11 /* product */
bipush 32
lushr
lstore 6 /* carry */
end local 11 // long product
36: .line 1026
iinc 9 /* j */ -1
iinc 10 /* k */ -1
StackMap locals:
StackMap stack:
37: iload 9 /* j */
ifge 27
end local 10 // int k
end local 9 // int j
38: .line 1033
aload 2 /* z */
getfield java.math.MutableBigInteger.value:[I
iload 8 /* i */
lload 6 /* carry */
l2i
iastore
39: .line 1024
iinc 8 /* i */ -1
StackMap locals:
StackMap stack:
40: iload 8 /* i */
ifge 23
end local 8 // int i
41: .line 1037
aload 2 /* z */
invokevirtual java.math.MutableBigInteger.normalize:()V
42: .line 1038
return
end local 6 // long carry
end local 5 // int newLen
end local 4 // int yLen
end local 3 // int xLen
end local 2 // java.math.MutableBigInteger z
end local 1 // java.math.MutableBigInteger y
end local 0 // java.math.MutableBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 43 0 this Ljava/math/MutableBigInteger;
0 43 1 y Ljava/math/MutableBigInteger;
0 43 2 z Ljava/math/MutableBigInteger;
1 43 3 xLen I
2 43 4 yLen I
3 43 5 newLen I
8 43 6 carry J
9 20 8 j I
10 20 9 k I
16 18 10 product J
22 41 8 i I
25 38 9 j I
26 38 10 k I
34 36 11 product J
MethodParameters:
Name Flags
y
z
void mul(int, java.math.MutableBigInteger);
descriptor: (ILjava/math/MutableBigInteger;)V
flags: (0x0000)
Code:
stack=6, locals=11, args_size=3
start local 0 // java.math.MutableBigInteger this
start local 1 // int y
start local 2 // java.math.MutableBigInteger z
0: .line 1045
iload 1 /* y */
iconst_1
if_icmpne 3
1: .line 1046
aload 2 /* z */
aload 0 /* this */
invokevirtual java.math.MutableBigInteger.copyValue:(Ljava/math/MutableBigInteger;)V
2: .line 1047
return
3: .line 1050
StackMap locals:
StackMap stack:
iload 1 /* y */
ifne 6
4: .line 1051
aload 2 /* z */
invokevirtual java.math.MutableBigInteger.clear:()V
5: .line 1052
return
6: .line 1056
StackMap locals:
StackMap stack:
iload 1 /* y */
i2l
ldc 4294967295
land
lstore 3 /* ylong */
start local 3 // long ylong
7: .line 1057
aload 2 /* z */
getfield java.math.MutableBigInteger.value:[I
arraylength
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
iconst_1
iadd
if_icmpge 8
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
iconst_1
iadd
newarray 10
goto 9
8: .line 1058
StackMap locals: long
StackMap stack:
aload 2 /* z */
getfield java.math.MutableBigInteger.value:[I
9: .line 1057
StackMap locals:
StackMap stack: int[]
astore 5 /* zval */
start local 5 // int[] zval
10: .line 1059
lconst_0
lstore 6 /* carry */
start local 6 // long carry
11: .line 1060
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
iconst_1
isub
istore 8 /* i */
start local 8 // int i
12: goto 17
13: .line 1061
StackMap locals: int[] long int
StackMap stack:
lload 3 /* ylong */
aload 0 /* this */
getfield java.math.MutableBigInteger.value:[I
iload 8 /* i */
aload 0 /* this */
getfield java.math.MutableBigInteger.offset:I
iadd
iaload
i2l
ldc 4294967295
land
lmul
lload 6 /* carry */
ladd
lstore 9 /* product */
start local 9 // long product
14: .line 1062
aload 5 /* zval */
iload 8 /* i */
iconst_1
iadd
lload 9 /* product */
l2i
iastore
15: .line 1063
lload 9 /* product */
bipush 32
lushr
lstore 6 /* carry */
end local 9 // long product
16: .line 1060
iinc 8 /* i */ -1
StackMap locals:
StackMap stack:
17: iload 8 /* i */
ifge 13
end local 8 // int i
18: .line 1066
lload 6 /* carry */
lconst_0
lcmp
ifne 22
19: .line 1067
aload 2 /* z */
iconst_1
putfield java.math.MutableBigInteger.offset:I
20: .line 1068
aload 2 /* z */
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
putfield java.math.MutableBigInteger.intLen:I
21: .line 1069
goto 25
22: .line 1070
StackMap locals:
StackMap stack:
aload 2 /* z */
iconst_0
putfield java.math.MutableBigInteger.offset:I
23: .line 1071
aload 2 /* z */
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
iconst_1
iadd
putfield java.math.MutableBigInteger.intLen:I
24: .line 1072
aload 5 /* zval */
iconst_0
lload 6 /* carry */
l2i
iastore
25: .line 1074
StackMap locals:
StackMap stack:
aload 2 /* z */
aload 5 /* zval */
putfield java.math.MutableBigInteger.value:[I
26: .line 1075
return
end local 6 // long carry
end local 5 // int[] zval
end local 3 // long ylong
end local 2 // java.math.MutableBigInteger z
end local 1 // int y
end local 0 // java.math.MutableBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 27 0 this Ljava/math/MutableBigInteger;
0 27 1 y I
0 27 2 z Ljava/math/MutableBigInteger;
7 27 3 ylong J
10 27 5 zval [I
11 27 6 carry J
12 18 8 i I
14 16 9 product J
MethodParameters:
Name Flags
y
z
int divideOneWord(int, java.math.MutableBigInteger);
descriptor: (ILjava/math/MutableBigInteger;)I
flags: (0x0000)
Code:
stack=6, locals=15, args_size=3
start local 0 // java.math.MutableBigInteger this
start local 1 // int divisor
start local 2 // java.math.MutableBigInteger quotient
0: .line 1086
iload 1 /* divisor */
i2l
ldc 4294967295
land
lstore 3 /* divisorLong */
start local 3 // long divisorLong
1: .line 1089
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
iconst_1
if_icmpne 11
2: .line 1090
aload 0 /* this */
getfield java.math.MutableBigInteger.value:[I
aload 0 /* this */
getfield java.math.MutableBigInteger.offset:I
iaload
i2l
ldc 4294967295
land
lstore 5 /* dividendValue */
start local 5 // long dividendValue
3: .line 1091
lload 5 /* dividendValue */
lload 3 /* divisorLong */
ldiv
l2i
istore 7 /* q */
start local 7 // int q
4: .line 1092
lload 5 /* dividendValue */
iload 7 /* q */
i2l
lload 3 /* divisorLong */
lmul
lsub
l2i
istore 8 /* r */
start local 8 // int r
5: .line 1093
aload 2 /* quotient */
getfield java.math.MutableBigInteger.value:[I
iconst_0
iload 7 /* q */
iastore
6: .line 1094
aload 2 /* quotient */
iload 7 /* q */
ifne 7
iconst_0
goto 8
StackMap locals: java.math.MutableBigInteger int java.math.MutableBigInteger long long int int
StackMap stack: java.math.MutableBigInteger
7: iconst_1
StackMap locals: java.math.MutableBigInteger int java.math.MutableBigInteger long long int int
StackMap stack: java.math.MutableBigInteger int
8: putfield java.math.MutableBigInteger.intLen:I
9: .line 1095
aload 2 /* quotient */
iconst_0
putfield java.math.MutableBigInteger.offset:I
10: .line 1096
iload 8 /* r */
ireturn
end local 8 // int r
end local 7 // int q
end local 5 // long dividendValue
11: .line 1099
StackMap locals:
StackMap stack:
aload 2 /* quotient */
getfield java.math.MutableBigInteger.value:[I
arraylength
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
if_icmpge 13
12: .line 1100
aload 2 /* quotient */
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
newarray 10
putfield java.math.MutableBigInteger.value:[I
13: .line 1101
StackMap locals:
StackMap stack:
aload 2 /* quotient */
iconst_0
putfield java.math.MutableBigInteger.offset:I
14: .line 1102
aload 2 /* quotient */
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
putfield java.math.MutableBigInteger.intLen:I
15: .line 1105
iload 1 /* divisor */
invokestatic java.lang.Integer.numberOfLeadingZeros:(I)I
istore 5 /* shift */
start local 5 // int shift
16: .line 1107
aload 0 /* this */
getfield java.math.MutableBigInteger.value:[I
aload 0 /* this */
getfield java.math.MutableBigInteger.offset:I
iaload
istore 6 /* rem */
start local 6 // int rem
17: .line 1108
iload 6 /* rem */
i2l
ldc 4294967295
land
lstore 7 /* remLong */
start local 7 // long remLong
18: .line 1109
lload 7 /* remLong */
lload 3 /* divisorLong */
lcmp
ifge 21
19: .line 1110
aload 2 /* quotient */
getfield java.math.MutableBigInteger.value:[I
iconst_0
iconst_0
iastore
20: .line 1111
goto 24
21: .line 1112
StackMap locals: int int long
StackMap stack:
aload 2 /* quotient */
getfield java.math.MutableBigInteger.value:[I
iconst_0
lload 7 /* remLong */
lload 3 /* divisorLong */
ldiv
l2i
iastore
22: .line 1113
lload 7 /* remLong */
aload 2 /* quotient */
getfield java.math.MutableBigInteger.value:[I
iconst_0
iaload
i2l
lload 3 /* divisorLong */
lmul
lsub
l2i
istore 6 /* rem */
23: .line 1114
iload 6 /* rem */
i2l
ldc 4294967295
land
lstore 7 /* remLong */
24: .line 1116
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
istore 9 /* xlen */
start local 9 // int xlen
25: .line 1117
goto 38
26: .line 1118
StackMap locals: int
StackMap stack:
lload 7 /* remLong */
bipush 32
lshl
27: .line 1119
aload 0 /* this */
getfield java.math.MutableBigInteger.value:[I
aload 0 /* this */
getfield java.math.MutableBigInteger.offset:I
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
iadd
iload 9 /* xlen */
isub
iaload
i2l
ldc 4294967295
land
28: .line 1118
lor
lstore 10 /* dividendEstimate */
start local 10 // long dividendEstimate
29: .line 1121
lload 10 /* dividendEstimate */
lconst_0
lcmp
iflt 33
30: .line 1122
lload 10 /* dividendEstimate */
lload 3 /* divisorLong */
ldiv
l2i
istore 12 /* q */
start local 12 // int q
31: .line 1123
lload 10 /* dividendEstimate */
iload 12 /* q */
i2l
lload 3 /* divisorLong */
lmul
lsub
l2i
istore 6 /* rem */
32: .line 1124
goto 36
end local 12 // int q
33: .line 1125
StackMap locals: long
StackMap stack:
lload 10 /* dividendEstimate */
iload 1 /* divisor */
invokestatic java.math.MutableBigInteger.divWord:(JI)J
lstore 13 /* tmp */
start local 13 // long tmp
34: .line 1126
lload 13 /* tmp */
ldc 4294967295
land
l2i
istore 12 /* q */
start local 12 // int q
35: .line 1127
lload 13 /* tmp */
bipush 32
lushr
l2i
istore 6 /* rem */
end local 13 // long tmp
36: .line 1129
StackMap locals: int
StackMap stack:
aload 2 /* quotient */
getfield java.math.MutableBigInteger.value:[I
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
iload 9 /* xlen */
isub
iload 12 /* q */
iastore
37: .line 1130
iload 6 /* rem */
i2l
ldc 4294967295
land
lstore 7 /* remLong */
end local 12 // int q
end local 10 // long dividendEstimate
38: .line 1117
StackMap locals:
StackMap stack:
iinc 9 /* xlen */ -1
iload 9 /* xlen */
ifgt 26
39: .line 1133
aload 2 /* quotient */
invokevirtual java.math.MutableBigInteger.normalize:()V
40: .line 1135
iload 5 /* shift */
ifle 42
41: .line 1136
iload 6 /* rem */
iload 1 /* divisor */
irem
ireturn
42: .line 1138
StackMap locals:
StackMap stack:
iload 6 /* rem */
ireturn
end local 9 // int xlen
end local 7 // long remLong
end local 6 // int rem
end local 5 // int shift
end local 3 // long divisorLong
end local 2 // java.math.MutableBigInteger quotient
end local 1 // int divisor
end local 0 // java.math.MutableBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 43 0 this Ljava/math/MutableBigInteger;
0 43 1 divisor I
0 43 2 quotient Ljava/math/MutableBigInteger;
1 43 3 divisorLong J
3 11 5 dividendValue J
4 11 7 q I
5 11 8 r I
16 43 5 shift I
17 43 6 rem I
18 43 7 remLong J
25 43 9 xlen I
29 38 10 dividendEstimate J
31 33 12 q I
35 38 12 q I
34 36 13 tmp J
MethodParameters:
Name Flags
divisor
quotient
java.math.MutableBigInteger divide(java.math.MutableBigInteger, java.math.MutableBigInteger);
descriptor: (Ljava/math/MutableBigInteger;Ljava/math/MutableBigInteger;)Ljava/math/MutableBigInteger;
flags: (0x0000)
Code:
stack=4, locals=3, args_size=3
start local 0 // java.math.MutableBigInteger this
start local 1 // java.math.MutableBigInteger b
start local 2 // java.math.MutableBigInteger quotient
0: .line 1147
aload 0 /* this */
aload 1 /* b */
aload 2 /* quotient */
iconst_1
invokevirtual java.math.MutableBigInteger.divide:(Ljava/math/MutableBigInteger;Ljava/math/MutableBigInteger;Z)Ljava/math/MutableBigInteger;
areturn
end local 2 // java.math.MutableBigInteger quotient
end local 1 // java.math.MutableBigInteger b
end local 0 // java.math.MutableBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/math/MutableBigInteger;
0 1 1 b Ljava/math/MutableBigInteger;
0 1 2 quotient Ljava/math/MutableBigInteger;
MethodParameters:
Name Flags
b
quotient
java.math.MutableBigInteger divide(java.math.MutableBigInteger, java.math.MutableBigInteger, boolean);
descriptor: (Ljava/math/MutableBigInteger;Ljava/math/MutableBigInteger;Z)Ljava/math/MutableBigInteger;
flags: (0x0000)
Code:
stack=4, locals=4, args_size=4
start local 0 // java.math.MutableBigInteger this
start local 1 // java.math.MutableBigInteger b
start local 2 // java.math.MutableBigInteger quotient
start local 3 // boolean needRemainder
0: .line 1151
aload 1 /* b */
getfield java.math.MutableBigInteger.intLen:I
bipush 80
if_icmplt 2
1: .line 1152
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
aload 1 /* b */
getfield java.math.MutableBigInteger.intLen:I
isub
bipush 40
if_icmpge 3
2: .line 1153
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 1 /* b */
aload 2 /* quotient */
iload 3 /* needRemainder */
invokevirtual java.math.MutableBigInteger.divideKnuth:(Ljava/math/MutableBigInteger;Ljava/math/MutableBigInteger;Z)Ljava/math/MutableBigInteger;
areturn
3: .line 1155
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 1 /* b */
aload 2 /* quotient */
invokevirtual java.math.MutableBigInteger.divideAndRemainderBurnikelZiegler:(Ljava/math/MutableBigInteger;Ljava/math/MutableBigInteger;)Ljava/math/MutableBigInteger;
areturn
end local 3 // boolean needRemainder
end local 2 // java.math.MutableBigInteger quotient
end local 1 // java.math.MutableBigInteger b
end local 0 // java.math.MutableBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljava/math/MutableBigInteger;
0 4 1 b Ljava/math/MutableBigInteger;
0 4 2 quotient Ljava/math/MutableBigInteger;
0 4 3 needRemainder Z
MethodParameters:
Name Flags
b
quotient
needRemainder
java.math.MutableBigInteger divideKnuth(java.math.MutableBigInteger, java.math.MutableBigInteger);
descriptor: (Ljava/math/MutableBigInteger;Ljava/math/MutableBigInteger;)Ljava/math/MutableBigInteger;
flags: (0x0000)
Code:
stack=4, locals=3, args_size=3
start local 0 // java.math.MutableBigInteger this
start local 1 // java.math.MutableBigInteger b
start local 2 // java.math.MutableBigInteger quotient
0: .line 1163
aload 0 /* this */
aload 1 /* b */
aload 2 /* quotient */
iconst_1
invokevirtual java.math.MutableBigInteger.divideKnuth:(Ljava/math/MutableBigInteger;Ljava/math/MutableBigInteger;Z)Ljava/math/MutableBigInteger;
areturn
end local 2 // java.math.MutableBigInteger quotient
end local 1 // java.math.MutableBigInteger b
end local 0 // java.math.MutableBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/math/MutableBigInteger;
0 1 1 b Ljava/math/MutableBigInteger;
0 1 2 quotient Ljava/math/MutableBigInteger;
MethodParameters:
Name Flags
b
quotient
java.math.MutableBigInteger divideKnuth(java.math.MutableBigInteger, java.math.MutableBigInteger, boolean);
descriptor: (Ljava/math/MutableBigInteger;Ljava/math/MutableBigInteger;Z)Ljava/math/MutableBigInteger;
flags: (0x0000)
Code:
stack=5, locals=8, args_size=4
start local 0 // java.math.MutableBigInteger this
start local 1 // java.math.MutableBigInteger b
start local 2 // java.math.MutableBigInteger quotient
start local 3 // boolean needRemainder
0: .line 1178
aload 1 /* b */
getfield java.math.MutableBigInteger.intLen:I
ifne 2
1: .line 1179
new java.lang.ArithmeticException
dup
ldc "BigInteger divide by zero"
invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
athrow
2: .line 1182
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
ifne 7
3: .line 1183
aload 2 /* quotient */
aload 2 /* quotient */
iconst_0
dup_x1
putfield java.math.MutableBigInteger.offset:I
putfield java.math.MutableBigInteger.intLen:I
4: .line 1184
iload 3 /* needRemainder */
ifeq 5
new java.math.MutableBigInteger
dup
invokespecial java.math.MutableBigInteger.<init>:()V
goto 6
StackMap locals:
StackMap stack:
5: aconst_null
StackMap locals:
StackMap stack: java.math.MutableBigInteger
6: areturn
7: .line 1187
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 1 /* b */
invokevirtual java.math.MutableBigInteger.compare:(Ljava/math/MutableBigInteger;)I
istore 4 /* cmp */
start local 4 // int cmp
8: .line 1189
iload 4 /* cmp */
ifge 13
9: .line 1190
aload 2 /* quotient */
aload 2 /* quotient */
iconst_0
dup_x1
putfield java.math.MutableBigInteger.offset:I
putfield java.math.MutableBigInteger.intLen:I
10: .line 1191
iload 3 /* needRemainder */
ifeq 11
new java.math.MutableBigInteger
dup
aload 0 /* this */
invokespecial java.math.MutableBigInteger.<init>:(Ljava/math/MutableBigInteger;)V
goto 12
StackMap locals: int
StackMap stack:
11: aconst_null
StackMap locals:
StackMap stack: java.math.MutableBigInteger
12: areturn
13: .line 1194
StackMap locals:
StackMap stack:
iload 4 /* cmp */
ifne 19
14: .line 1195
aload 2 /* quotient */
getfield java.math.MutableBigInteger.value:[I
iconst_0
aload 2 /* quotient */
iconst_1
dup_x1
putfield java.math.MutableBigInteger.intLen:I
iastore
15: .line 1196
aload 2 /* quotient */
iconst_0
putfield java.math.MutableBigInteger.offset:I
16: .line 1197
iload 3 /* needRemainder */
ifeq 17
new java.math.MutableBigInteger
dup
invokespecial java.math.MutableBigInteger.<init>:()V
goto 18
StackMap locals:
StackMap stack:
17: aconst_null
StackMap locals:
StackMap stack: java.math.MutableBigInteger
18: areturn
19: .line 1200
StackMap locals:
StackMap stack:
aload 2 /* quotient */
invokevirtual java.math.MutableBigInteger.clear:()V
20: .line 1202
aload 1 /* b */
getfield java.math.MutableBigInteger.intLen:I
iconst_1
if_icmpne 27
21: .line 1203
aload 0 /* this */
aload 1 /* b */
getfield java.math.MutableBigInteger.value:[I
aload 1 /* b */
getfield java.math.MutableBigInteger.offset:I
iaload
aload 2 /* quotient */
invokevirtual java.math.MutableBigInteger.divideOneWord:(ILjava/math/MutableBigInteger;)I
istore 5 /* r */
start local 5 // int r
22: .line 1204
iload 3 /* needRemainder */
ifeq 26
23: .line 1205
iload 5 /* r */
ifne 25
24: .line 1206
new java.math.MutableBigInteger
dup
invokespecial java.math.MutableBigInteger.<init>:()V
areturn
25: .line 1207
StackMap locals: int
StackMap stack:
new java.math.MutableBigInteger
dup
iload 5 /* r */
invokespecial java.math.MutableBigInteger.<init>:(I)V
areturn
26: .line 1209
StackMap locals:
StackMap stack:
aconst_null
areturn
end local 5 // int r
27: .line 1214
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
bipush 6
if_icmplt 37
28: .line 1215
aload 0 /* this */
invokevirtual java.math.MutableBigInteger.getLowestSetBit:()I
aload 1 /* b */
invokevirtual java.math.MutableBigInteger.getLowestSetBit:()I
invokestatic java.lang.Math.min:(II)I
istore 5 /* trailingZeroBits */
start local 5 // int trailingZeroBits
29: .line 1216
iload 5 /* trailingZeroBits */
bipush 96
if_icmplt 37
30: .line 1217
new java.math.MutableBigInteger
dup
aload 0 /* this */
invokespecial java.math.MutableBigInteger.<init>:(Ljava/math/MutableBigInteger;)V
astore 6 /* a */
start local 6 // java.math.MutableBigInteger a
31: .line 1218
new java.math.MutableBigInteger
dup
aload 1 /* b */
invokespecial java.math.MutableBigInteger.<init>:(Ljava/math/MutableBigInteger;)V
astore 1 /* b */
32: .line 1219
aload 6 /* a */
iload 5 /* trailingZeroBits */
invokevirtual java.math.MutableBigInteger.rightShift:(I)V
33: .line 1220
aload 1 /* b */
iload 5 /* trailingZeroBits */
invokevirtual java.math.MutableBigInteger.rightShift:(I)V
34: .line 1221
aload 6 /* a */
aload 1 /* b */
aload 2 /* quotient */
invokevirtual java.math.MutableBigInteger.divideKnuth:(Ljava/math/MutableBigInteger;Ljava/math/MutableBigInteger;)Ljava/math/MutableBigInteger;
astore 7 /* r */
start local 7 // java.math.MutableBigInteger r
35: .line 1222
aload 7 /* r */
iload 5 /* trailingZeroBits */
invokevirtual java.math.MutableBigInteger.leftShift:(I)V
36: .line 1223
aload 7 /* r */
areturn
end local 7 // java.math.MutableBigInteger r
end local 6 // java.math.MutableBigInteger a
end local 5 // int trailingZeroBits
37: .line 1227
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 1 /* b */
aload 2 /* quotient */
iload 3 /* needRemainder */
invokevirtual java.math.MutableBigInteger.divideMagnitude:(Ljava/math/MutableBigInteger;Ljava/math/MutableBigInteger;Z)Ljava/math/MutableBigInteger;
areturn
end local 4 // int cmp
end local 3 // boolean needRemainder
end local 2 // java.math.MutableBigInteger quotient
end local 1 // java.math.MutableBigInteger b
end local 0 // java.math.MutableBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 38 0 this Ljava/math/MutableBigInteger;
0 38 1 b Ljava/math/MutableBigInteger;
0 38 2 quotient Ljava/math/MutableBigInteger;
0 38 3 needRemainder Z
8 38 4 cmp I
22 27 5 r I
29 37 5 trailingZeroBits I
31 37 6 a Ljava/math/MutableBigInteger;
35 37 7 r Ljava/math/MutableBigInteger;
MethodParameters:
Name Flags
b
quotient
needRemainder
java.math.MutableBigInteger divideAndRemainderBurnikelZiegler(java.math.MutableBigInteger, java.math.MutableBigInteger);
descriptor: (Ljava/math/MutableBigInteger;Ljava/math/MutableBigInteger;)Ljava/math/MutableBigInteger;
flags: (0x0000)
Code:
stack=6, locals=19, args_size=3
start local 0 // java.math.MutableBigInteger this
start local 1 // java.math.MutableBigInteger b
start local 2 // java.math.MutableBigInteger quotient
0: .line 1242
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
istore 3 /* r */
start local 3 // int r
1: .line 1243
aload 1 /* b */
getfield java.math.MutableBigInteger.intLen:I
istore 4 /* s */
start local 4 // int s
2: .line 1246
aload 2 /* quotient */
aload 2 /* quotient */
iconst_0
dup_x1
putfield java.math.MutableBigInteger.intLen:I
putfield java.math.MutableBigInteger.offset:I
3: .line 1248
iload 3 /* r */
iload 4 /* s */
if_icmpge 5
4: .line 1249
aload 0 /* this */
areturn
5: .line 1256
StackMap locals: int int
StackMap stack:
iconst_1
bipush 32
iload 4 /* s */
bipush 80
idiv
invokestatic java.lang.Integer.numberOfLeadingZeros:(I)I
isub
ishl
istore 5 /* m */
start local 5 // int m
6: .line 1258
iload 4 /* s */
iload 5 /* m */
iadd
iconst_1
isub
iload 5 /* m */
idiv
istore 6 /* j */
start local 6 // int j
7: .line 1259
iload 6 /* j */
iload 5 /* m */
imul
istore 7 /* n */
start local 7 // int n
8: .line 1260
ldc 32
iload 7 /* n */
i2l
lmul
lstore 8 /* n32 */
start local 8 // long n32
9: .line 1261
lconst_0
lload 8 /* n32 */
aload 1 /* b */
invokevirtual java.math.MutableBigInteger.bitLength:()J
lsub
invokestatic java.lang.Math.max:(JJ)J
l2i
istore 10 /* sigma */
start local 10 // int sigma
10: .line 1262
new java.math.MutableBigInteger
dup
aload 1 /* b */
invokespecial java.math.MutableBigInteger.<init>:(Ljava/math/MutableBigInteger;)V
astore 11 /* bShifted */
start local 11 // java.math.MutableBigInteger bShifted
11: .line 1263
aload 11 /* bShifted */
iload 10 /* sigma */
invokevirtual java.math.MutableBigInteger.safeLeftShift:(I)V
12: .line 1264
new java.math.MutableBigInteger
dup
aload 0 /* this */
invokespecial java.math.MutableBigInteger.<init>:(Ljava/math/MutableBigInteger;)V
astore 12 /* aShifted */
start local 12 // java.math.MutableBigInteger aShifted
13: .line 1265
aload 12 /* aShifted */
iload 10 /* sigma */
invokevirtual java.math.MutableBigInteger.safeLeftShift:(I)V
14: .line 1268
aload 12 /* aShifted */
invokevirtual java.math.MutableBigInteger.bitLength:()J
lload 8 /* n32 */
ladd
lload 8 /* n32 */
ldiv
l2i
istore 13 /* t */
start local 13 // int t
15: .line 1269
iload 13 /* t */
iconst_2
if_icmpge 17
16: .line 1270
iconst_2
istore 13 /* t */
17: .line 1274
StackMap locals: java.math.MutableBigInteger java.math.MutableBigInteger java.math.MutableBigInteger int int int int int long int java.math.MutableBigInteger java.math.MutableBigInteger int
StackMap stack:
aload 12 /* aShifted */
iload 13 /* t */
iconst_1
isub
iload 13 /* t */
iload 7 /* n */
invokevirtual java.math.MutableBigInteger.getBlock:(III)Ljava/math/MutableBigInteger;
astore 14 /* a1 */
start local 14 // java.math.MutableBigInteger a1
18: .line 1277
aload 12 /* aShifted */
iload 13 /* t */
iconst_2
isub
iload 13 /* t */
iload 7 /* n */
invokevirtual java.math.MutableBigInteger.getBlock:(III)Ljava/math/MutableBigInteger;
astore 15 /* z */
start local 15 // java.math.MutableBigInteger z
19: .line 1278
aload 15 /* z */
aload 14 /* a1 */
iload 7 /* n */
invokevirtual java.math.MutableBigInteger.addDisjoint:(Ljava/math/MutableBigInteger;I)V
20: .line 1281
new java.math.MutableBigInteger
dup
invokespecial java.math.MutableBigInteger.<init>:()V
astore 16 /* qi */
start local 16 // java.math.MutableBigInteger qi
21: .line 1283
iload 13 /* t */
iconst_2
isub
istore 18 /* i */
start local 18 // int i
22: goto 28
23: .line 1285
StackMap locals: java.math.MutableBigInteger java.math.MutableBigInteger java.math.MutableBigInteger int int int int int long int java.math.MutableBigInteger java.math.MutableBigInteger int java.math.MutableBigInteger java.math.MutableBigInteger java.math.MutableBigInteger top int
StackMap stack:
aload 15 /* z */
aload 11 /* bShifted */
aload 16 /* qi */
invokevirtual java.math.MutableBigInteger.divide2n1n:(Ljava/math/MutableBigInteger;Ljava/math/MutableBigInteger;)Ljava/math/MutableBigInteger;
astore 17 /* ri */
start local 17 // java.math.MutableBigInteger ri
24: .line 1288
aload 12 /* aShifted */
iload 18 /* i */
iconst_1
isub
iload 13 /* t */
iload 7 /* n */
invokevirtual java.math.MutableBigInteger.getBlock:(III)Ljava/math/MutableBigInteger;
astore 15 /* z */
25: .line 1289
aload 15 /* z */
aload 17 /* ri */
iload 7 /* n */
invokevirtual java.math.MutableBigInteger.addDisjoint:(Ljava/math/MutableBigInteger;I)V
26: .line 1290
aload 2 /* quotient */
aload 16 /* qi */
iload 18 /* i */
iload 7 /* n */
imul
invokevirtual java.math.MutableBigInteger.addShifted:(Ljava/math/MutableBigInteger;I)V
27: .line 1283
iinc 18 /* i */ -1
end local 17 // java.math.MutableBigInteger ri
StackMap locals:
StackMap stack:
28: iload 18 /* i */
ifgt 23
end local 18 // int i
29: .line 1293
aload 15 /* z */
aload 11 /* bShifted */
aload 16 /* qi */
invokevirtual java.math.MutableBigInteger.divide2n1n:(Ljava/math/MutableBigInteger;Ljava/math/MutableBigInteger;)Ljava/math/MutableBigInteger;
astore 17 /* ri */
start local 17 // java.math.MutableBigInteger ri
30: .line 1294
aload 2 /* quotient */
aload 16 /* qi */
invokevirtual java.math.MutableBigInteger.add:(Ljava/math/MutableBigInteger;)V
31: .line 1296
aload 17 /* ri */
iload 10 /* sigma */
invokevirtual java.math.MutableBigInteger.rightShift:(I)V
32: .line 1297
aload 17 /* ri */
areturn
end local 17 // java.math.MutableBigInteger ri
end local 16 // java.math.MutableBigInteger qi
end local 15 // java.math.MutableBigInteger z
end local 14 // java.math.MutableBigInteger a1
end local 13 // int t
end local 12 // java.math.MutableBigInteger aShifted
end local 11 // java.math.MutableBigInteger bShifted
end local 10 // int sigma
end local 8 // long n32
end local 7 // int n
end local 6 // int j
end local 5 // int m
end local 4 // int s
end local 3 // int r
end local 2 // java.math.MutableBigInteger quotient
end local 1 // java.math.MutableBigInteger b
end local 0 // java.math.MutableBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 33 0 this Ljava/math/MutableBigInteger;
0 33 1 b Ljava/math/MutableBigInteger;
0 33 2 quotient Ljava/math/MutableBigInteger;
1 33 3 r I
2 33 4 s I
6 33 5 m I
7 33 6 j I
8 33 7 n I
9 33 8 n32 J
10 33 10 sigma I
11 33 11 bShifted Ljava/math/MutableBigInteger;
13 33 12 aShifted Ljava/math/MutableBigInteger;
15 33 13 t I
18 33 14 a1 Ljava/math/MutableBigInteger;
19 33 15 z Ljava/math/MutableBigInteger;
21 33 16 qi Ljava/math/MutableBigInteger;
24 28 17 ri Ljava/math/MutableBigInteger;
30 33 17 ri Ljava/math/MutableBigInteger;
22 29 18 i I
MethodParameters:
Name Flags
b
quotient
private java.math.MutableBigInteger divide2n1n(java.math.MutableBigInteger, java.math.MutableBigInteger);
descriptor: (Ljava/math/MutableBigInteger;Ljava/math/MutableBigInteger;)Ljava/math/MutableBigInteger;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=8, args_size=3
start local 0 // java.math.MutableBigInteger this
start local 1 // java.math.MutableBigInteger b
start local 2 // java.math.MutableBigInteger quotient
0: .line 1312
aload 1 /* b */
getfield java.math.MutableBigInteger.intLen:I
istore 3 /* n */
start local 3 // int n
1: .line 1315
iload 3 /* n */
iconst_2
irem
ifne 2
iload 3 /* n */
bipush 80
if_icmpge 3
2: .line 1316
StackMap locals: int
StackMap stack:
aload 0 /* this */
aload 1 /* b */
aload 2 /* quotient */
invokevirtual java.math.MutableBigInteger.divideKnuth:(Ljava/math/MutableBigInteger;Ljava/math/MutableBigInteger;)Ljava/math/MutableBigInteger;
areturn
3: .line 1320
StackMap locals:
StackMap stack:
new java.math.MutableBigInteger
dup
aload 0 /* this */
invokespecial java.math.MutableBigInteger.<init>:(Ljava/math/MutableBigInteger;)V
astore 4 /* aUpper */
start local 4 // java.math.MutableBigInteger aUpper
4: .line 1321
aload 4 /* aUpper */
bipush 32
iload 3 /* n */
iconst_2
idiv
imul
invokevirtual java.math.MutableBigInteger.safeRightShift:(I)V
5: .line 1322
aload 0 /* this */
iload 3 /* n */
iconst_2
idiv
invokevirtual java.math.MutableBigInteger.keepLower:(I)V
6: .line 1325
new java.math.MutableBigInteger
dup
invokespecial java.math.MutableBigInteger.<init>:()V
astore 5 /* q1 */
start local 5 // java.math.MutableBigInteger q1
7: .line 1326
aload 4 /* aUpper */
aload 1 /* b */
aload 5 /* q1 */
invokevirtual java.math.MutableBigInteger.divide3n2n:(Ljava/math/MutableBigInteger;Ljava/math/MutableBigInteger;)Ljava/math/MutableBigInteger;
astore 6 /* r1 */
start local 6 // java.math.MutableBigInteger r1
8: .line 1329
aload 0 /* this */
aload 6 /* r1 */
iload 3 /* n */
iconst_2
idiv
invokevirtual java.math.MutableBigInteger.addDisjoint:(Ljava/math/MutableBigInteger;I)V
9: .line 1330
aload 0 /* this */
aload 1 /* b */
aload 2 /* quotient */
invokevirtual java.math.MutableBigInteger.divide3n2n:(Ljava/math/MutableBigInteger;Ljava/math/MutableBigInteger;)Ljava/math/MutableBigInteger;
astore 7 /* r2 */
start local 7 // java.math.MutableBigInteger r2
10: .line 1333
aload 2 /* quotient */
aload 5 /* q1 */
iload 3 /* n */
iconst_2
idiv
invokevirtual java.math.MutableBigInteger.addDisjoint:(Ljava/math/MutableBigInteger;I)V
11: .line 1334
aload 7 /* r2 */
areturn
end local 7 // java.math.MutableBigInteger r2
end local 6 // java.math.MutableBigInteger r1
end local 5 // java.math.MutableBigInteger q1
end local 4 // java.math.MutableBigInteger aUpper
end local 3 // int n
end local 2 // java.math.MutableBigInteger quotient
end local 1 // java.math.MutableBigInteger b
end local 0 // java.math.MutableBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Ljava/math/MutableBigInteger;
0 12 1 b Ljava/math/MutableBigInteger;
0 12 2 quotient Ljava/math/MutableBigInteger;
1 12 3 n I
4 12 4 aUpper Ljava/math/MutableBigInteger;
7 12 5 q1 Ljava/math/MutableBigInteger;
8 12 6 r1 Ljava/math/MutableBigInteger;
10 12 7 r2 Ljava/math/MutableBigInteger;
MethodParameters:
Name Flags
b
quotient
private java.math.MutableBigInteger divide3n2n(java.math.MutableBigInteger, java.math.MutableBigInteger);
descriptor: (Ljava/math/MutableBigInteger;Ljava/math/MutableBigInteger;)Ljava/math/MutableBigInteger;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=9, args_size=3
start local 0 // java.math.MutableBigInteger this
start local 1 // java.math.MutableBigInteger b
start local 2 // java.math.MutableBigInteger quotient
0: .line 1347
aload 1 /* b */
getfield java.math.MutableBigInteger.intLen:I
iconst_2
idiv
istore 3 /* n */
start local 3 // int n
1: .line 1350
new java.math.MutableBigInteger
dup
aload 0 /* this */
invokespecial java.math.MutableBigInteger.<init>:(Ljava/math/MutableBigInteger;)V
astore 4 /* a12 */
start local 4 // java.math.MutableBigInteger a12
2: .line 1351
aload 4 /* a12 */
bipush 32
iload 3 /* n */
imul
invokevirtual java.math.MutableBigInteger.safeRightShift:(I)V
3: .line 1354
new java.math.MutableBigInteger
dup
aload 1 /* b */
invokespecial java.math.MutableBigInteger.<init>:(Ljava/math/MutableBigInteger;)V
astore 5 /* b1 */
start local 5 // java.math.MutableBigInteger b1
4: .line 1355
aload 5 /* b1 */
iload 3 /* n */
bipush 32
imul
invokevirtual java.math.MutableBigInteger.safeRightShift:(I)V
5: .line 1356
aload 1 /* b */
iload 3 /* n */
invokevirtual java.math.MutableBigInteger.getLower:(I)Ljava/math/BigInteger;
astore 6 /* b2 */
start local 6 // java.math.BigInteger b2
6: .line 1360
aload 0 /* this */
aload 1 /* b */
iload 3 /* n */
invokevirtual java.math.MutableBigInteger.compareShifted:(Ljava/math/MutableBigInteger;I)I
ifge 10
7: .line 1362
aload 4 /* a12 */
aload 5 /* b1 */
aload 2 /* quotient */
invokevirtual java.math.MutableBigInteger.divide2n1n:(Ljava/math/MutableBigInteger;Ljava/math/MutableBigInteger;)Ljava/math/MutableBigInteger;
astore 7 /* r */
start local 7 // java.math.MutableBigInteger r
8: .line 1365
new java.math.MutableBigInteger
dup
aload 2 /* quotient */
invokevirtual java.math.MutableBigInteger.toBigInteger:()Ljava/math/BigInteger;
aload 6 /* b2 */
invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
invokespecial java.math.MutableBigInteger.<init>:(Ljava/math/BigInteger;)V
astore 8 /* d */
start local 8 // java.math.MutableBigInteger d
9: .line 1366
goto 18
end local 8 // java.math.MutableBigInteger d
end local 7 // java.math.MutableBigInteger r
10: .line 1368
StackMap locals: java.math.MutableBigInteger java.math.MutableBigInteger java.math.MutableBigInteger int java.math.MutableBigInteger java.math.MutableBigInteger java.math.BigInteger
StackMap stack:
aload 2 /* quotient */
iload 3 /* n */
invokevirtual java.math.MutableBigInteger.ones:(I)V
11: .line 1369
aload 4 /* a12 */
aload 5 /* b1 */
invokevirtual java.math.MutableBigInteger.add:(Ljava/math/MutableBigInteger;)V
12: .line 1370
aload 5 /* b1 */
bipush 32
iload 3 /* n */
imul
invokevirtual java.math.MutableBigInteger.leftShift:(I)V
13: .line 1371
aload 4 /* a12 */
aload 5 /* b1 */
invokevirtual java.math.MutableBigInteger.subtract:(Ljava/math/MutableBigInteger;)I
pop
14: .line 1372
aload 4 /* a12 */
astore 7 /* r */
start local 7 // java.math.MutableBigInteger r
15: .line 1375
new java.math.MutableBigInteger
dup
aload 6 /* b2 */
invokespecial java.math.MutableBigInteger.<init>:(Ljava/math/BigInteger;)V
astore 8 /* d */
start local 8 // java.math.MutableBigInteger d
16: .line 1376
aload 8 /* d */
bipush 32
iload 3 /* n */
imul
invokevirtual java.math.MutableBigInteger.leftShift:(I)V
17: .line 1377
aload 8 /* d */
new java.math.MutableBigInteger
dup
aload 6 /* b2 */
invokespecial java.math.MutableBigInteger.<init>:(Ljava/math/BigInteger;)V
invokevirtual java.math.MutableBigInteger.subtract:(Ljava/math/MutableBigInteger;)I
pop
18: .line 1382
StackMap locals: java.math.MutableBigInteger java.math.MutableBigInteger
StackMap stack:
aload 7 /* r */
bipush 32
iload 3 /* n */
imul
invokevirtual java.math.MutableBigInteger.leftShift:(I)V
19: .line 1383
aload 7 /* r */
aload 0 /* this */
iload 3 /* n */
invokevirtual java.math.MutableBigInteger.addLower:(Ljava/math/MutableBigInteger;I)V
20: .line 1386
goto 23
21: .line 1387
StackMap locals:
StackMap stack:
aload 7 /* r */
aload 1 /* b */
invokevirtual java.math.MutableBigInteger.add:(Ljava/math/MutableBigInteger;)V
22: .line 1388
aload 2 /* quotient */
getstatic java.math.MutableBigInteger.ONE:Ljava/math/MutableBigInteger;
invokevirtual java.math.MutableBigInteger.subtract:(Ljava/math/MutableBigInteger;)I
pop
23: .line 1386
StackMap locals:
StackMap stack:
aload 7 /* r */
aload 8 /* d */
invokevirtual java.math.MutableBigInteger.compare:(Ljava/math/MutableBigInteger;)I
iflt 21
24: .line 1390
aload 7 /* r */
aload 8 /* d */
invokevirtual java.math.MutableBigInteger.subtract:(Ljava/math/MutableBigInteger;)I
pop
25: .line 1392
aload 7 /* r */
areturn
end local 8 // java.math.MutableBigInteger d
end local 7 // java.math.MutableBigInteger r
end local 6 // java.math.BigInteger b2
end local 5 // java.math.MutableBigInteger b1
end local 4 // java.math.MutableBigInteger a12
end local 3 // int n
end local 2 // java.math.MutableBigInteger quotient
end local 1 // java.math.MutableBigInteger b
end local 0 // java.math.MutableBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 26 0 this Ljava/math/MutableBigInteger;
0 26 1 b Ljava/math/MutableBigInteger;
0 26 2 quotient Ljava/math/MutableBigInteger;
1 26 3 n I
2 26 4 a12 Ljava/math/MutableBigInteger;
4 26 5 b1 Ljava/math/MutableBigInteger;
6 26 6 b2 Ljava/math/BigInteger;
8 10 7 r Ljava/math/MutableBigInteger;
15 26 7 r Ljava/math/MutableBigInteger;
9 10 8 d Ljava/math/MutableBigInteger;
16 26 8 d Ljava/math/MutableBigInteger;
MethodParameters:
Name Flags
b
quotient
private java.math.MutableBigInteger getBlock(int, int, int);
descriptor: (III)Ljava/math/MutableBigInteger;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=7, args_size=4
start local 0 // java.math.MutableBigInteger this
start local 1 // int index
start local 2 // int numBlocks
start local 3 // int blockLength
0: .line 1405
iload 1 /* index */
iload 3 /* blockLength */
imul
istore 4 /* blockStart */
start local 4 // int blockStart
1: .line 1406
iload 4 /* blockStart */
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
if_icmplt 3
2: .line 1407
new java.math.MutableBigInteger
dup
invokespecial java.math.MutableBigInteger.<init>:()V
areturn
3: .line 1411
StackMap locals: int
StackMap stack:
iload 1 /* index */
iload 2 /* numBlocks */
iconst_1
isub
if_icmpne 6
4: .line 1412
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
istore 5 /* blockEnd */
start local 5 // int blockEnd
5: .line 1413
goto 7
end local 5 // int blockEnd
6: .line 1414
StackMap locals:
StackMap stack:
iload 1 /* index */
iconst_1
iadd
iload 3 /* blockLength */
imul
istore 5 /* blockEnd */
start local 5 // int blockEnd
7: .line 1416
StackMap locals: int
StackMap stack:
iload 5 /* blockEnd */
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
if_icmple 9
8: .line 1417
new java.math.MutableBigInteger
dup
invokespecial java.math.MutableBigInteger.<init>:()V
areturn
9: .line 1420
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield java.math.MutableBigInteger.value:[I
aload 0 /* this */
getfield java.math.MutableBigInteger.offset:I
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
iadd
iload 5 /* blockEnd */
isub
aload 0 /* this */
getfield java.math.MutableBigInteger.offset:I
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
iadd
iload 4 /* blockStart */
isub
invokestatic java.util.Arrays.copyOfRange:([III)[I
astore 6 /* newVal */
start local 6 // int[] newVal
10: .line 1421
new java.math.MutableBigInteger
dup
aload 6 /* newVal */
invokespecial java.math.MutableBigInteger.<init>:([I)V
areturn
end local 6 // int[] newVal
end local 5 // int blockEnd
end local 4 // int blockStart
end local 3 // int blockLength
end local 2 // int numBlocks
end local 1 // int index
end local 0 // java.math.MutableBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Ljava/math/MutableBigInteger;
0 11 1 index I
0 11 2 numBlocks I
0 11 3 blockLength I
1 11 4 blockStart I
5 6 5 blockEnd I
7 11 5 blockEnd I
10 11 6 newVal [I
MethodParameters:
Name Flags
index
numBlocks
blockLength
long bitLength();
descriptor: ()J
flags: (0x0000)
Code:
stack=4, locals=1, args_size=1
start local 0 // java.math.MutableBigInteger this
0: .line 1426
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
ifne 2
1: .line 1427
lconst_0
lreturn
2: .line 1428
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
i2l
ldc 32
lmul
aload 0 /* this */
getfield java.math.MutableBigInteger.value:[I
aload 0 /* this */
getfield java.math.MutableBigInteger.offset:I
iaload
invokestatic java.lang.Integer.numberOfLeadingZeros:(I)I
i2l
lsub
lreturn
end local 0 // java.math.MutableBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/math/MutableBigInteger;
long divide(long, java.math.MutableBigInteger);
descriptor: (JLjava/math/MutableBigInteger;)J
flags: (0x0000)
Code:
stack=4, locals=5, args_size=3
start local 0 // java.math.MutableBigInteger this
start local 1 // long v
start local 3 // java.math.MutableBigInteger quotient
0: .line 1439
lload 1 /* v */
lconst_0
lcmp
ifne 2
1: .line 1440
new java.lang.ArithmeticException
dup
ldc "BigInteger divide by zero"
invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
athrow
2: .line 1443
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
ifne 5
3: .line 1444
aload 3 /* quotient */
aload 3 /* quotient */
iconst_0
dup_x1
putfield java.math.MutableBigInteger.offset:I
putfield java.math.MutableBigInteger.intLen:I
4: .line 1445
lconst_0
lreturn
5: .line 1447
StackMap locals:
StackMap stack:
lload 1 /* v */
lconst_0
lcmp
ifge 7
6: .line 1448
lload 1 /* v */
lneg
lstore 1 /* v */
7: .line 1450
StackMap locals:
StackMap stack:
lload 1 /* v */
bipush 32
lushr
l2i
istore 4 /* d */
start local 4 // int d
8: .line 1451
aload 3 /* quotient */
invokevirtual java.math.MutableBigInteger.clear:()V
9: .line 1453
iload 4 /* d */
ifne 11
10: .line 1454
aload 0 /* this */
lload 1 /* v */
l2i
aload 3 /* quotient */
invokevirtual java.math.MutableBigInteger.divideOneWord:(ILjava/math/MutableBigInteger;)I
i2l
ldc 4294967295
land
lreturn
11: .line 1456
StackMap locals: int
StackMap stack:
aload 0 /* this */
lload 1 /* v */
aload 3 /* quotient */
invokevirtual java.math.MutableBigInteger.divideLongMagnitude:(JLjava/math/MutableBigInteger;)Ljava/math/MutableBigInteger;
invokevirtual java.math.MutableBigInteger.toLong:()J
lreturn
end local 4 // int d
end local 3 // java.math.MutableBigInteger quotient
end local 1 // long v
end local 0 // java.math.MutableBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Ljava/math/MutableBigInteger;
0 12 1 v J
0 12 3 quotient Ljava/math/MutableBigInteger;
8 12 4 d I
MethodParameters:
Name Flags
v
quotient
private static void copyAndShift(int[], int, int, int[], int, int);
descriptor: ([III[III)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=10, args_size=6
start local 0 // int[] src
start local 1 // int srcFrom
start local 2 // int srcLen
start local 3 // int[] dst
start local 4 // int dstFrom
start local 5 // int shift
0: .line 1461
bipush 32
iload 5 /* shift */
isub
istore 6 /* n2 */
start local 6 // int n2
1: .line 1462
aload 0 /* src */
iload 1 /* srcFrom */
iaload
istore 7 /* c */
start local 7 // int c
2: .line 1463
iconst_0
istore 8 /* i */
start local 8 // int i
3: goto 8
4: .line 1464
StackMap locals: int int int
StackMap stack:
iload 7 /* c */
istore 9 /* b */
start local 9 // int b
5: .line 1465
aload 0 /* src */
iinc 1 /* srcFrom */ 1
iload 1 /* srcFrom */
iaload
istore 7 /* c */
6: .line 1466
aload 3 /* dst */
iload 4 /* dstFrom */
iload 8 /* i */
iadd
iload 9 /* b */
iload 5 /* shift */
ishl
iload 7 /* c */
iload 6 /* n2 */
iushr
ior
iastore
end local 9 // int b
7: .line 1463
iinc 8 /* i */ 1
StackMap locals:
StackMap stack:
8: iload 8 /* i */
iload 2 /* srcLen */
iconst_1
isub
if_icmplt 4
end local 8 // int i
9: .line 1468
aload 3 /* dst */
iload 4 /* dstFrom */
iload 2 /* srcLen */
iadd
iconst_1
isub
iload 7 /* c */
iload 5 /* shift */
ishl
iastore
10: .line 1469
return
end local 7 // int c
end local 6 // int n2
end local 5 // int shift
end local 4 // int dstFrom
end local 3 // int[] dst
end local 2 // int srcLen
end local 1 // int srcFrom
end local 0 // int[] src
LocalVariableTable:
Start End Slot Name Signature
0 11 0 src [I
0 11 1 srcFrom I
0 11 2 srcLen I
0 11 3 dst [I
0 11 4 dstFrom I
0 11 5 shift I
1 11 6 n2 I
2 11 7 c I
3 9 8 i I
5 7 9 b I
MethodParameters:
Name Flags
src
srcFrom
srcLen
dst
dstFrom
shift
private java.math.MutableBigInteger divideMagnitude(java.math.MutableBigInteger, java.math.MutableBigInteger, boolean);
descriptor: (Ljava/math/MutableBigInteger;Ljava/math/MutableBigInteger;Z)Ljava/math/MutableBigInteger;
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=28, args_size=4
start local 0 // java.math.MutableBigInteger this
start local 1 // java.math.MutableBigInteger div
start local 2 // java.math.MutableBigInteger quotient
start local 3 // boolean needRemainder
0: .line 1481
aload 1 /* div */
getfield java.math.MutableBigInteger.value:[I
aload 1 /* div */
getfield java.math.MutableBigInteger.offset:I
iaload
invokestatic java.lang.Integer.numberOfLeadingZeros:(I)I
istore 4 /* shift */
start local 4 // int shift
1: .line 1483
aload 1 /* div */
getfield java.math.MutableBigInteger.intLen:I
istore 5 /* dlen */
start local 5 // int dlen
2: .line 1486
iload 4 /* shift */
ifle 28
3: .line 1487
iload 5 /* dlen */
newarray 10
astore 6 /* divisor */
start local 6 // int[] divisor
4: .line 1488
aload 1 /* div */
getfield java.math.MutableBigInteger.value:[I
aload 1 /* div */
getfield java.math.MutableBigInteger.offset:I
iload 5 /* dlen */
aload 6 /* divisor */
iconst_0
iload 4 /* shift */
invokestatic java.math.MutableBigInteger.copyAndShift:([III[III)V
5: .line 1489
aload 0 /* this */
getfield java.math.MutableBigInteger.value:[I
aload 0 /* this */
getfield java.math.MutableBigInteger.offset:I
iaload
invokestatic java.lang.Integer.numberOfLeadingZeros:(I)I
iload 4 /* shift */
if_icmplt 12
6: .line 1490
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
iconst_1
iadd
newarray 10
astore 8 /* remarr */
start local 8 // int[] remarr
7: .line 1491
new java.math.MutableBigInteger
dup
aload 8 /* remarr */
invokespecial java.math.MutableBigInteger.<init>:([I)V
astore 7 /* rem */
start local 7 // java.math.MutableBigInteger rem
8: .line 1492
aload 7 /* rem */
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
putfield java.math.MutableBigInteger.intLen:I
9: .line 1493
aload 7 /* rem */
iconst_1
putfield java.math.MutableBigInteger.offset:I
10: .line 1494
aload 0 /* this */
getfield java.math.MutableBigInteger.value:[I
aload 0 /* this */
getfield java.math.MutableBigInteger.offset:I
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
aload 8 /* remarr */
iconst_1
iload 4 /* shift */
invokestatic java.math.MutableBigInteger.copyAndShift:([III[III)V
end local 8 // int[] remarr
11: .line 1495
goto 33
end local 7 // java.math.MutableBigInteger rem
12: .line 1496
StackMap locals: int int int[]
StackMap stack:
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
iconst_2
iadd
newarray 10
astore 8 /* remarr */
start local 8 // int[] remarr
13: .line 1497
new java.math.MutableBigInteger
dup
aload 8 /* remarr */
invokespecial java.math.MutableBigInteger.<init>:([I)V
astore 7 /* rem */
start local 7 // java.math.MutableBigInteger rem
14: .line 1498
aload 7 /* rem */
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
iconst_1
iadd
putfield java.math.MutableBigInteger.intLen:I
15: .line 1499
aload 7 /* rem */
iconst_1
putfield java.math.MutableBigInteger.offset:I
16: .line 1500
aload 0 /* this */
getfield java.math.MutableBigInteger.offset:I
istore 9 /* rFrom */
start local 9 // int rFrom
17: .line 1501
iconst_0
istore 10 /* c */
start local 10 // int c
18: .line 1502
bipush 32
iload 4 /* shift */
isub
istore 11 /* n2 */
start local 11 // int n2
19: .line 1503
iconst_1
istore 12 /* i */
start local 12 // int i
20: goto 25
21: .line 1504
StackMap locals: java.math.MutableBigInteger java.math.MutableBigInteger java.math.MutableBigInteger int int int int[] java.math.MutableBigInteger int[] int int int int
StackMap stack:
iload 10 /* c */
istore 13 /* b */
start local 13 // int b
22: .line 1505
aload 0 /* this */
getfield java.math.MutableBigInteger.value:[I
iload 9 /* rFrom */
iaload
istore 10 /* c */
23: .line 1506
aload 8 /* remarr */
iload 12 /* i */
iload 13 /* b */
iload 4 /* shift */
ishl
iload 10 /* c */
iload 11 /* n2 */
iushr
ior
iastore
end local 13 // int b
24: .line 1503
iinc 12 /* i */ 1
iinc 9 /* rFrom */ 1
StackMap locals:
StackMap stack:
25: iload 12 /* i */
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
iconst_1
iadd
if_icmplt 21
end local 12 // int i
26: .line 1508
aload 8 /* remarr */
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
iconst_1
iadd
iload 10 /* c */
iload 4 /* shift */
ishl
iastore
end local 11 // int n2
end local 10 // int c
end local 9 // int rFrom
end local 8 // int[] remarr
27: .line 1510
goto 33
end local 7 // java.math.MutableBigInteger rem
end local 6 // int[] divisor
28: .line 1511
StackMap locals: java.math.MutableBigInteger java.math.MutableBigInteger java.math.MutableBigInteger int int int
StackMap stack:
aload 1 /* div */
getfield java.math.MutableBigInteger.value:[I
aload 1 /* div */
getfield java.math.MutableBigInteger.offset:I
aload 1 /* div */
getfield java.math.MutableBigInteger.offset:I
aload 1 /* div */
getfield java.math.MutableBigInteger.intLen:I
iadd
invokestatic java.util.Arrays.copyOfRange:([III)[I
astore 6 /* divisor */
start local 6 // int[] divisor
29: .line 1512
new java.math.MutableBigInteger
dup
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
iconst_1
iadd
newarray 10
invokespecial java.math.MutableBigInteger.<init>:([I)V
astore 7 /* rem */
start local 7 // java.math.MutableBigInteger rem
30: .line 1513
aload 0 /* this */
getfield java.math.MutableBigInteger.value:[I
aload 0 /* this */
getfield java.math.MutableBigInteger.offset:I
aload 7 /* rem */
getfield java.math.MutableBigInteger.value:[I
iconst_1
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
31: .line 1514
aload 7 /* rem */
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
putfield java.math.MutableBigInteger.intLen:I
32: .line 1515
aload 7 /* rem */
iconst_1
putfield java.math.MutableBigInteger.offset:I
33: .line 1518
StackMap locals: int[] java.math.MutableBigInteger
StackMap stack:
aload 7 /* rem */
getfield java.math.MutableBigInteger.intLen:I
istore 8 /* nlen */
start local 8 // int nlen
34: .line 1521
iload 8 /* nlen */
iload 5 /* dlen */
isub
iconst_1
iadd
istore 9 /* limit */
start local 9 // int limit
35: .line 1522
aload 2 /* quotient */
getfield java.math.MutableBigInteger.value:[I
arraylength
iload 9 /* limit */
if_icmpge 38
36: .line 1523
aload 2 /* quotient */
iload 9 /* limit */
newarray 10
putfield java.math.MutableBigInteger.value:[I
37: .line 1524
aload 2 /* quotient */
iconst_0
putfield java.math.MutableBigInteger.offset:I
38: .line 1526
StackMap locals: int int
StackMap stack:
aload 2 /* quotient */
iload 9 /* limit */
putfield java.math.MutableBigInteger.intLen:I
39: .line 1527
aload 2 /* quotient */
getfield java.math.MutableBigInteger.value:[I
astore 10 /* q */
start local 10 // int[] q
40: .line 1531
aload 7 /* rem */
getfield java.math.MutableBigInteger.intLen:I
iload 8 /* nlen */
if_icmpne 44
41: .line 1532
aload 7 /* rem */
iconst_0
putfield java.math.MutableBigInteger.offset:I
42: .line 1533
aload 7 /* rem */
getfield java.math.MutableBigInteger.value:[I
iconst_0
iconst_0
iastore
43: .line 1534
aload 7 /* rem */
dup
getfield java.math.MutableBigInteger.intLen:I
iconst_1
iadd
putfield java.math.MutableBigInteger.intLen:I
44: .line 1537
StackMap locals: int[]
StackMap stack:
aload 6 /* divisor */
iconst_0
iaload
istore 11 /* dh */
start local 11 // int dh
45: .line 1538
iload 11 /* dh */
i2l
ldc 4294967295
land
lstore 12 /* dhLong */
start local 12 // long dhLong
46: .line 1539
aload 6 /* divisor */
iconst_1
iaload
istore 14 /* dl */
start local 14 // int dl
47: .line 1542
iconst_0
istore 15 /* j */
start local 15 // int j
48: goto 91
49: .line 1545
StackMap locals: java.math.MutableBigInteger java.math.MutableBigInteger java.math.MutableBigInteger int int int int[] java.math.MutableBigInteger int int int[] int long int int
StackMap stack:
iconst_0
istore 16 /* qhat */
start local 16 // int qhat
50: .line 1546
iconst_0
istore 17 /* qrem */
start local 17 // int qrem
51: .line 1547
iconst_0
istore 18 /* skipCorrection */
start local 18 // boolean skipCorrection
52: .line 1548
aload 7 /* rem */
getfield java.math.MutableBigInteger.value:[I
iload 15 /* j */
aload 7 /* rem */
getfield java.math.MutableBigInteger.offset:I
iadd
iaload
istore 19 /* nh */
start local 19 // int nh
53: .line 1549
iload 19 /* nh */
ldc -2147483648
iadd
istore 20 /* nh2 */
start local 20 // int nh2
54: .line 1550
aload 7 /* rem */
getfield java.math.MutableBigInteger.value:[I
iload 15 /* j */
iconst_1
iadd
aload 7 /* rem */
getfield java.math.MutableBigInteger.offset:I
iadd
iaload
istore 21 /* nm */
start local 21 // int nm
55: .line 1552
iload 19 /* nh */
iload 11 /* dh */
if_icmpne 62
56: .line 1553
iconst_m1
istore 16 /* qhat */
57: .line 1554
iload 19 /* nh */
iload 21 /* nm */
iadd
istore 17 /* qrem */
58: .line 1555
iload 17 /* qrem */
ldc -2147483648
iadd
iload 20 /* nh2 */
if_icmpge 59
iconst_1
goto 60
StackMap locals: java.math.MutableBigInteger java.math.MutableBigInteger java.math.MutableBigInteger int int int int[] java.math.MutableBigInteger int int int[] int long int int int int int int int int
StackMap stack:
59: iconst_0
StackMap locals:
StackMap stack: int
60: istore 18 /* skipCorrection */
61: .line 1556
goto 70
62: .line 1557
StackMap locals:
StackMap stack:
iload 19 /* nh */
i2l
bipush 32
lshl
iload 21 /* nm */
i2l
ldc 4294967295
land
lor
lstore 22 /* nChunk */
start local 22 // long nChunk
63: .line 1558
lload 22 /* nChunk */
lconst_0
lcmp
iflt 67
64: .line 1559
lload 22 /* nChunk */
lload 12 /* dhLong */
ldiv
l2i
istore 16 /* qhat */
65: .line 1560
lload 22 /* nChunk */
iload 16 /* qhat */
i2l
lload 12 /* dhLong */
lmul
lsub
l2i
istore 17 /* qrem */
66: .line 1561
goto 70
67: .line 1562
StackMap locals: long
StackMap stack:
lload 22 /* nChunk */
iload 11 /* dh */
invokestatic java.math.MutableBigInteger.divWord:(JI)J
lstore 24 /* tmp */
start local 24 // long tmp
68: .line 1563
lload 24 /* tmp */
ldc 4294967295
land
l2i
istore 16 /* qhat */
69: .line 1564
lload 24 /* tmp */
bipush 32
lushr
l2i
istore 17 /* qrem */
end local 24 // long tmp
end local 22 // long nChunk
70: .line 1568
StackMap locals:
StackMap stack:
iload 16 /* qhat */
ifne 72
71: .line 1569
goto 90
72: .line 1571
StackMap locals:
StackMap stack:
iload 18 /* skipCorrection */
ifne 84
73: .line 1572
aload 7 /* rem */
getfield java.math.MutableBigInteger.value:[I
iload 15 /* j */
iconst_2
iadd
aload 7 /* rem */
getfield java.math.MutableBigInteger.offset:I
iadd
iaload
i2l
ldc 4294967295
land
lstore 22 /* nl */
start local 22 // long nl
74: .line 1573
iload 17 /* qrem */
i2l
ldc 4294967295
land
bipush 32
lshl
lload 22 /* nl */
lor
lstore 24 /* rs */
start local 24 // long rs
75: .line 1574
iload 14 /* dl */
i2l
ldc 4294967295
land
iload 16 /* qhat */
i2l
ldc 4294967295
land
lmul
lstore 26 /* estProduct */
start local 26 // long estProduct
76: .line 1576
aload 0 /* this */
lload 26 /* estProduct */
lload 24 /* rs */
invokevirtual java.math.MutableBigInteger.unsignedLongCompare:(JJ)Z
ifeq 84
77: .line 1577
iinc 16 /* qhat */ -1
78: .line 1578
iload 17 /* qrem */
i2l
ldc 4294967295
land
lload 12 /* dhLong */
ladd
l2i
istore 17 /* qrem */
79: .line 1579
iload 17 /* qrem */
i2l
ldc 4294967295
land
lload 12 /* dhLong */
lcmp
iflt 84
80: .line 1580
lload 26 /* estProduct */
iload 14 /* dl */
i2l
ldc 4294967295
land
lsub
lstore 26 /* estProduct */
81: .line 1581
iload 17 /* qrem */
i2l
ldc 4294967295
land
bipush 32
lshl
lload 22 /* nl */
lor
lstore 24 /* rs */
82: .line 1582
aload 0 /* this */
lload 26 /* estProduct */
lload 24 /* rs */
invokevirtual java.math.MutableBigInteger.unsignedLongCompare:(JJ)Z
ifeq 84
83: .line 1583
iinc 16 /* qhat */ -1
end local 26 // long estProduct
end local 24 // long rs
end local 22 // long nl
84: .line 1589
StackMap locals:
StackMap stack:
aload 7 /* rem */
getfield java.math.MutableBigInteger.value:[I
iload 15 /* j */
aload 7 /* rem */
getfield java.math.MutableBigInteger.offset:I
iadd
iconst_0
iastore
85: .line 1590
aload 0 /* this */
aload 7 /* rem */
getfield java.math.MutableBigInteger.value:[I
aload 6 /* divisor */
iload 16 /* qhat */
iload 5 /* dlen */
iload 15 /* j */
aload 7 /* rem */
getfield java.math.MutableBigInteger.offset:I
iadd
invokevirtual java.math.MutableBigInteger.mulsub:([I[IIII)I
istore 22 /* borrow */
start local 22 // int borrow
86: .line 1593
iload 22 /* borrow */
ldc -2147483648
iadd
iload 20 /* nh2 */
if_icmple 89
87: .line 1595
aload 0 /* this */
aload 6 /* divisor */
aload 7 /* rem */
getfield java.math.MutableBigInteger.value:[I
iload 15 /* j */
iconst_1
iadd
aload 7 /* rem */
getfield java.math.MutableBigInteger.offset:I
iadd
invokevirtual java.math.MutableBigInteger.divadd:([I[II)I
pop
88: .line 1596
iinc 16 /* qhat */ -1
89: .line 1600
StackMap locals: int
StackMap stack:
aload 10 /* q */
iload 15 /* j */
iload 16 /* qhat */
iastore
end local 22 // int borrow
end local 21 // int nm
end local 20 // int nh2
end local 19 // int nh
end local 18 // boolean skipCorrection
end local 17 // int qrem
end local 16 // int qhat
90: .line 1542
StackMap locals: java.math.MutableBigInteger java.math.MutableBigInteger java.math.MutableBigInteger int int int int[] java.math.MutableBigInteger int int int[] int long int int
StackMap stack:
iinc 15 /* j */ 1
StackMap locals:
StackMap stack:
91: iload 15 /* j */
iload 9 /* limit */
iconst_1
isub
if_icmplt 49
end local 15 // int j
92: .line 1604
iconst_0
istore 15 /* qhat */
start local 15 // int qhat
93: .line 1605
iconst_0
istore 16 /* qrem */
start local 16 // int qrem
94: .line 1606
iconst_0
istore 17 /* skipCorrection */
start local 17 // boolean skipCorrection
95: .line 1607
aload 7 /* rem */
getfield java.math.MutableBigInteger.value:[I
iload 9 /* limit */
iconst_1
isub
aload 7 /* rem */
getfield java.math.MutableBigInteger.offset:I
iadd
iaload
istore 18 /* nh */
start local 18 // int nh
96: .line 1608
iload 18 /* nh */
ldc -2147483648
iadd
istore 19 /* nh2 */
start local 19 // int nh2
97: .line 1609
aload 7 /* rem */
getfield java.math.MutableBigInteger.value:[I
iload 9 /* limit */
aload 7 /* rem */
getfield java.math.MutableBigInteger.offset:I
iadd
iaload
istore 20 /* nm */
start local 20 // int nm
98: .line 1611
iload 18 /* nh */
iload 11 /* dh */
if_icmpne 105
99: .line 1612
iconst_m1
istore 15 /* qhat */
100: .line 1613
iload 18 /* nh */
iload 20 /* nm */
iadd
istore 16 /* qrem */
101: .line 1614
iload 16 /* qrem */
ldc -2147483648
iadd
iload 19 /* nh2 */
if_icmpge 102
iconst_1
goto 103
StackMap locals: java.math.MutableBigInteger java.math.MutableBigInteger java.math.MutableBigInteger int int int int[] java.math.MutableBigInteger int int int[] int long int int int int int int int
StackMap stack:
102: iconst_0
StackMap locals:
StackMap stack: int
103: istore 17 /* skipCorrection */
104: .line 1615
goto 113
105: .line 1616
StackMap locals:
StackMap stack:
iload 18 /* nh */
i2l
bipush 32
lshl
iload 20 /* nm */
i2l
ldc 4294967295
land
lor
lstore 21 /* nChunk */
start local 21 // long nChunk
106: .line 1617
lload 21 /* nChunk */
lconst_0
lcmp
iflt 110
107: .line 1618
lload 21 /* nChunk */
lload 12 /* dhLong */
ldiv
l2i
istore 15 /* qhat */
108: .line 1619
lload 21 /* nChunk */
iload 15 /* qhat */
i2l
lload 12 /* dhLong */
lmul
lsub
l2i
istore 16 /* qrem */
109: .line 1620
goto 113
110: .line 1621
StackMap locals: long
StackMap stack:
lload 21 /* nChunk */
iload 11 /* dh */
invokestatic java.math.MutableBigInteger.divWord:(JI)J
lstore 23 /* tmp */
start local 23 // long tmp
111: .line 1622
lload 23 /* tmp */
ldc 4294967295
land
l2i
istore 15 /* qhat */
112: .line 1623
lload 23 /* tmp */
bipush 32
lushr
l2i
istore 16 /* qrem */
end local 23 // long tmp
end local 21 // long nChunk
113: .line 1626
StackMap locals:
StackMap stack:
iload 15 /* qhat */
ifeq 136
114: .line 1627
iload 17 /* skipCorrection */
ifne 126
115: .line 1628
aload 7 /* rem */
getfield java.math.MutableBigInteger.value:[I
iload 9 /* limit */
iconst_1
iadd
aload 7 /* rem */
getfield java.math.MutableBigInteger.offset:I
iadd
iaload
i2l
ldc 4294967295
land
lstore 21 /* nl */
start local 21 // long nl
116: .line 1629
iload 16 /* qrem */
i2l
ldc 4294967295
land
bipush 32
lshl
lload 21 /* nl */
lor
lstore 23 /* rs */
start local 23 // long rs
117: .line 1630
iload 14 /* dl */
i2l
ldc 4294967295
land
iload 15 /* qhat */
i2l
ldc 4294967295
land
lmul
lstore 25 /* estProduct */
start local 25 // long estProduct
118: .line 1632
aload 0 /* this */
lload 25 /* estProduct */
lload 23 /* rs */
invokevirtual java.math.MutableBigInteger.unsignedLongCompare:(JJ)Z
ifeq 126
119: .line 1633
iinc 15 /* qhat */ -1
120: .line 1634
iload 16 /* qrem */
i2l
ldc 4294967295
land
lload 12 /* dhLong */
ladd
l2i
istore 16 /* qrem */
121: .line 1635
iload 16 /* qrem */
i2l
ldc 4294967295
land
lload 12 /* dhLong */
lcmp
iflt 126
122: .line 1636
lload 25 /* estProduct */
iload 14 /* dl */
i2l
ldc 4294967295
land
lsub
lstore 25 /* estProduct */
123: .line 1637
iload 16 /* qrem */
i2l
ldc 4294967295
land
bipush 32
lshl
lload 21 /* nl */
lor
lstore 23 /* rs */
124: .line 1638
aload 0 /* this */
lload 25 /* estProduct */
lload 23 /* rs */
invokevirtual java.math.MutableBigInteger.unsignedLongCompare:(JJ)Z
ifeq 126
125: .line 1639
iinc 15 /* qhat */ -1
end local 25 // long estProduct
end local 23 // long rs
end local 21 // long nl
126: .line 1647
StackMap locals:
StackMap stack:
aload 7 /* rem */
getfield java.math.MutableBigInteger.value:[I
iload 9 /* limit */
iconst_1
isub
aload 7 /* rem */
getfield java.math.MutableBigInteger.offset:I
iadd
iconst_0
iastore
127: .line 1648
iload 3 /* needRemainder */
ifeq 130
128: .line 1649
aload 0 /* this */
aload 7 /* rem */
getfield java.math.MutableBigInteger.value:[I
aload 6 /* divisor */
iload 15 /* qhat */
iload 5 /* dlen */
iload 9 /* limit */
iconst_1
isub
aload 7 /* rem */
getfield java.math.MutableBigInteger.offset:I
iadd
invokevirtual java.math.MutableBigInteger.mulsub:([I[IIII)I
istore 21 /* borrow */
start local 21 // int borrow
129: goto 131
end local 21 // int borrow
130: .line 1651
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 7 /* rem */
getfield java.math.MutableBigInteger.value:[I
aload 6 /* divisor */
iload 15 /* qhat */
iload 5 /* dlen */
iload 9 /* limit */
iconst_1
isub
aload 7 /* rem */
getfield java.math.MutableBigInteger.offset:I
iadd
invokevirtual java.math.MutableBigInteger.mulsubBorrow:([I[IIII)I
istore 21 /* borrow */
start local 21 // int borrow
131: .line 1654
StackMap locals: int
StackMap stack:
iload 21 /* borrow */
ldc -2147483648
iadd
iload 19 /* nh2 */
if_icmple 135
132: .line 1656
iload 3 /* needRemainder */
ifeq 134
133: .line 1657
aload 0 /* this */
aload 6 /* divisor */
aload 7 /* rem */
getfield java.math.MutableBigInteger.value:[I
iload 9 /* limit */
iconst_1
isub
iconst_1
iadd
aload 7 /* rem */
getfield java.math.MutableBigInteger.offset:I
iadd
invokevirtual java.math.MutableBigInteger.divadd:([I[II)I
pop
134: .line 1658
StackMap locals:
StackMap stack:
iinc 15 /* qhat */ -1
135: .line 1662
StackMap locals:
StackMap stack:
aload 10 /* q */
iload 9 /* limit */
iconst_1
isub
iload 15 /* qhat */
iastore
end local 21 // int borrow
136: .line 1666
StackMap locals:
StackMap stack:
iload 3 /* needRemainder */
ifeq 140
137: .line 1668
iload 4 /* shift */
ifle 139
138: .line 1669
aload 7 /* rem */
iload 4 /* shift */
invokevirtual java.math.MutableBigInteger.rightShift:(I)V
139: .line 1670
StackMap locals:
StackMap stack:
aload 7 /* rem */
invokevirtual java.math.MutableBigInteger.normalize:()V
140: .line 1672
StackMap locals:
StackMap stack:
aload 2 /* quotient */
invokevirtual java.math.MutableBigInteger.normalize:()V
141: .line 1673
iload 3 /* needRemainder */
ifeq 142
aload 7 /* rem */
goto 143
StackMap locals:
StackMap stack:
142: aconst_null
StackMap locals:
StackMap stack: java.math.MutableBigInteger
143: areturn
end local 20 // int nm
end local 19 // int nh2
end local 18 // int nh
end local 17 // boolean skipCorrection
end local 16 // int qrem
end local 15 // int qhat
end local 14 // int dl
end local 12 // long dhLong
end local 11 // int dh
end local 10 // int[] q
end local 9 // int limit
end local 8 // int nlen
end local 7 // java.math.MutableBigInteger rem
end local 6 // int[] divisor
end local 5 // int dlen
end local 4 // int shift
end local 3 // boolean needRemainder
end local 2 // java.math.MutableBigInteger quotient
end local 1 // java.math.MutableBigInteger div
end local 0 // java.math.MutableBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 144 0 this Ljava/math/MutableBigInteger;
0 144 1 div Ljava/math/MutableBigInteger;
0 144 2 quotient Ljava/math/MutableBigInteger;
0 144 3 needRemainder Z
1 144 4 shift I
2 144 5 dlen I
4 28 6 divisor [I
29 144 6 divisor [I
8 12 7 rem Ljava/math/MutableBigInteger;
14 28 7 rem Ljava/math/MutableBigInteger;
30 144 7 rem Ljava/math/MutableBigInteger;
7 11 8 remarr [I
13 27 8 remarr [I
17 27 9 rFrom I
18 27 10 c I
19 27 11 n2 I
20 26 12 i I
22 24 13 b I
34 144 8 nlen I
35 144 9 limit I
40 144 10 q [I
45 144 11 dh I
46 144 12 dhLong J
47 144 14 dl I
48 92 15 j I
50 90 16 qhat I
51 90 17 qrem I
52 90 18 skipCorrection Z
53 90 19 nh I
54 90 20 nh2 I
55 90 21 nm I
63 70 22 nChunk J
68 70 24 tmp J
74 84 22 nl J
75 84 24 rs J
76 84 26 estProduct J
86 90 22 borrow I
93 144 15 qhat I
94 144 16 qrem I
95 144 17 skipCorrection Z
96 144 18 nh I
97 144 19 nh2 I
98 144 20 nm I
106 113 21 nChunk J
111 113 23 tmp J
116 126 21 nl J
117 126 23 rs J
118 126 25 estProduct J
129 130 21 borrow I
131 136 21 borrow I
MethodParameters:
Name Flags
div
quotient
needRemainder
private java.math.MutableBigInteger divideLongMagnitude(long, java.math.MutableBigInteger);
descriptor: (JLjava/math/MutableBigInteger;)Ljava/math/MutableBigInteger;
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=26, args_size=3
start local 0 // java.math.MutableBigInteger this
start local 1 // long ldivisor
start local 3 // java.math.MutableBigInteger quotient
0: .line 1683
new java.math.MutableBigInteger
dup
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
iconst_1
iadd
newarray 10
invokespecial java.math.MutableBigInteger.<init>:([I)V
astore 4 /* rem */
start local 4 // java.math.MutableBigInteger rem
1: .line 1684
aload 0 /* this */
getfield java.math.MutableBigInteger.value:[I
aload 0 /* this */
getfield java.math.MutableBigInteger.offset:I
aload 4 /* rem */
getfield java.math.MutableBigInteger.value:[I
iconst_1
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
2: .line 1685
aload 4 /* rem */
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
putfield java.math.MutableBigInteger.intLen:I
3: .line 1686
aload 4 /* rem */
iconst_1
putfield java.math.MutableBigInteger.offset:I
4: .line 1688
aload 4 /* rem */
getfield java.math.MutableBigInteger.intLen:I
istore 5 /* nlen */
start local 5 // int nlen
5: .line 1690
iload 5 /* nlen */
iconst_2
isub
iconst_1
iadd
istore 6 /* limit */
start local 6 // int limit
6: .line 1691
aload 3 /* quotient */
getfield java.math.MutableBigInteger.value:[I
arraylength
iload 6 /* limit */
if_icmpge 9
7: .line 1692
aload 3 /* quotient */
iload 6 /* limit */
newarray 10
putfield java.math.MutableBigInteger.value:[I
8: .line 1693
aload 3 /* quotient */
iconst_0
putfield java.math.MutableBigInteger.offset:I
9: .line 1695
StackMap locals: java.math.MutableBigInteger int int
StackMap stack:
aload 3 /* quotient */
iload 6 /* limit */
putfield java.math.MutableBigInteger.intLen:I
10: .line 1696
aload 3 /* quotient */
getfield java.math.MutableBigInteger.value:[I
astore 7 /* q */
start local 7 // int[] q
11: .line 1699
lload 1 /* ldivisor */
invokestatic java.lang.Long.numberOfLeadingZeros:(J)I
istore 8 /* shift */
start local 8 // int shift
12: .line 1700
iload 8 /* shift */
ifle 15
13: .line 1701
lload 1 /* ldivisor */
iload 8 /* shift */
lshl
lstore 1 /* ldivisor */
14: .line 1702
aload 4 /* rem */
iload 8 /* shift */
invokevirtual java.math.MutableBigInteger.leftShift:(I)V
15: .line 1706
StackMap locals: int[] int
StackMap stack:
aload 4 /* rem */
getfield java.math.MutableBigInteger.intLen:I
iload 5 /* nlen */
if_icmpne 19
16: .line 1707
aload 4 /* rem */
iconst_0
putfield java.math.MutableBigInteger.offset:I
17: .line 1708
aload 4 /* rem */
getfield java.math.MutableBigInteger.value:[I
iconst_0
iconst_0
iastore
18: .line 1709
aload 4 /* rem */
dup
getfield java.math.MutableBigInteger.intLen:I
iconst_1
iadd
putfield java.math.MutableBigInteger.intLen:I
19: .line 1712
StackMap locals:
StackMap stack:
lload 1 /* ldivisor */
bipush 32
lushr
l2i
istore 9 /* dh */
start local 9 // int dh
20: .line 1713
iload 9 /* dh */
i2l
ldc 4294967295
land
lstore 10 /* dhLong */
start local 10 // long dhLong
21: .line 1714
lload 1 /* ldivisor */
ldc 4294967295
land
l2i
istore 12 /* dl */
start local 12 // int dl
22: .line 1717
iconst_0
istore 13 /* j */
start local 13 // int j
23: goto 66
24: .line 1720
StackMap locals: java.math.MutableBigInteger long java.math.MutableBigInteger java.math.MutableBigInteger int int int[] int int long int int
StackMap stack:
iconst_0
istore 14 /* qhat */
start local 14 // int qhat
25: .line 1721
iconst_0
istore 15 /* qrem */
start local 15 // int qrem
26: .line 1722
iconst_0
istore 16 /* skipCorrection */
start local 16 // boolean skipCorrection
27: .line 1723
aload 4 /* rem */
getfield java.math.MutableBigInteger.value:[I
iload 13 /* j */
aload 4 /* rem */
getfield java.math.MutableBigInteger.offset:I
iadd
iaload
istore 17 /* nh */
start local 17 // int nh
28: .line 1724
iload 17 /* nh */
ldc -2147483648
iadd
istore 18 /* nh2 */
start local 18 // int nh2
29: .line 1725
aload 4 /* rem */
getfield java.math.MutableBigInteger.value:[I
iload 13 /* j */
iconst_1
iadd
aload 4 /* rem */
getfield java.math.MutableBigInteger.offset:I
iadd
iaload
istore 19 /* nm */
start local 19 // int nm
30: .line 1727
iload 17 /* nh */
iload 9 /* dh */
if_icmpne 37
31: .line 1728
iconst_m1
istore 14 /* qhat */
32: .line 1729
iload 17 /* nh */
iload 19 /* nm */
iadd
istore 15 /* qrem */
33: .line 1730
iload 15 /* qrem */
ldc -2147483648
iadd
iload 18 /* nh2 */
if_icmpge 34
iconst_1
goto 35
StackMap locals: java.math.MutableBigInteger long java.math.MutableBigInteger java.math.MutableBigInteger int int int[] int int long int int int int int int int int
StackMap stack:
34: iconst_0
StackMap locals:
StackMap stack: int
35: istore 16 /* skipCorrection */
36: .line 1731
goto 45
37: .line 1732
StackMap locals:
StackMap stack:
iload 17 /* nh */
i2l
bipush 32
lshl
iload 19 /* nm */
i2l
ldc 4294967295
land
lor
lstore 20 /* nChunk */
start local 20 // long nChunk
38: .line 1733
lload 20 /* nChunk */
lconst_0
lcmp
iflt 42
39: .line 1734
lload 20 /* nChunk */
lload 10 /* dhLong */
ldiv
l2i
istore 14 /* qhat */
40: .line 1735
lload 20 /* nChunk */
iload 14 /* qhat */
i2l
lload 10 /* dhLong */
lmul
lsub
l2i
istore 15 /* qrem */
41: .line 1736
goto 45
42: .line 1737
StackMap locals: long
StackMap stack:
lload 20 /* nChunk */
iload 9 /* dh */
invokestatic java.math.MutableBigInteger.divWord:(JI)J
lstore 22 /* tmp */
start local 22 // long tmp
43: .line 1738
lload 22 /* tmp */
ldc 4294967295
land
l2i
istore 14 /* qhat */
44: .line 1739
lload 22 /* tmp */
bipush 32
lushr
l2i
istore 15 /* qrem */
end local 22 // long tmp
end local 20 // long nChunk
45: .line 1743
StackMap locals:
StackMap stack:
iload 14 /* qhat */
ifne 47
46: .line 1744
goto 65
47: .line 1746
StackMap locals:
StackMap stack:
iload 16 /* skipCorrection */
ifne 59
48: .line 1747
aload 4 /* rem */
getfield java.math.MutableBigInteger.value:[I
iload 13 /* j */
iconst_2
iadd
aload 4 /* rem */
getfield java.math.MutableBigInteger.offset:I
iadd
iaload
i2l
ldc 4294967295
land
lstore 20 /* nl */
start local 20 // long nl
49: .line 1748
iload 15 /* qrem */
i2l
ldc 4294967295
land
bipush 32
lshl
lload 20 /* nl */
lor
lstore 22 /* rs */
start local 22 // long rs
50: .line 1749
iload 12 /* dl */
i2l
ldc 4294967295
land
iload 14 /* qhat */
i2l
ldc 4294967295
land
lmul
lstore 24 /* estProduct */
start local 24 // long estProduct
51: .line 1751
aload 0 /* this */
lload 24 /* estProduct */
lload 22 /* rs */
invokevirtual java.math.MutableBigInteger.unsignedLongCompare:(JJ)Z
ifeq 59
52: .line 1752
iinc 14 /* qhat */ -1
53: .line 1753
iload 15 /* qrem */
i2l
ldc 4294967295
land
lload 10 /* dhLong */
ladd
l2i
istore 15 /* qrem */
54: .line 1754
iload 15 /* qrem */
i2l
ldc 4294967295
land
lload 10 /* dhLong */
lcmp
iflt 59
55: .line 1755
lload 24 /* estProduct */
iload 12 /* dl */
i2l
ldc 4294967295
land
lsub
lstore 24 /* estProduct */
56: .line 1756
iload 15 /* qrem */
i2l
ldc 4294967295
land
bipush 32
lshl
lload 20 /* nl */
lor
lstore 22 /* rs */
57: .line 1757
aload 0 /* this */
lload 24 /* estProduct */
lload 22 /* rs */
invokevirtual java.math.MutableBigInteger.unsignedLongCompare:(JJ)Z
ifeq 59
58: .line 1758
iinc 14 /* qhat */ -1
end local 24 // long estProduct
end local 22 // long rs
end local 20 // long nl
59: .line 1764
StackMap locals:
StackMap stack:
aload 4 /* rem */
getfield java.math.MutableBigInteger.value:[I
iload 13 /* j */
aload 4 /* rem */
getfield java.math.MutableBigInteger.offset:I
iadd
iconst_0
iastore
60: .line 1765
aload 0 /* this */
aload 4 /* rem */
getfield java.math.MutableBigInteger.value:[I
iload 9 /* dh */
iload 12 /* dl */
iload 14 /* qhat */
iload 13 /* j */
aload 4 /* rem */
getfield java.math.MutableBigInteger.offset:I
iadd
invokevirtual java.math.MutableBigInteger.mulsubLong:([IIIII)I
istore 20 /* borrow */
start local 20 // int borrow
61: .line 1768
iload 20 /* borrow */
ldc -2147483648
iadd
iload 18 /* nh2 */
if_icmple 64
62: .line 1770
aload 0 /* this */
iload 9 /* dh */
iload 12 /* dl */
aload 4 /* rem */
getfield java.math.MutableBigInteger.value:[I
iload 13 /* j */
iconst_1
iadd
aload 4 /* rem */
getfield java.math.MutableBigInteger.offset:I
iadd
invokevirtual java.math.MutableBigInteger.divaddLong:(II[II)I
pop
63: .line 1771
iinc 14 /* qhat */ -1
64: .line 1775
StackMap locals: int
StackMap stack:
aload 7 /* q */
iload 13 /* j */
iload 14 /* qhat */
iastore
end local 20 // int borrow
end local 19 // int nm
end local 18 // int nh2
end local 17 // int nh
end local 16 // boolean skipCorrection
end local 15 // int qrem
end local 14 // int qhat
65: .line 1717
StackMap locals: java.math.MutableBigInteger long java.math.MutableBigInteger java.math.MutableBigInteger int int int[] int int long int int
StackMap stack:
iinc 13 /* j */ 1
StackMap locals:
StackMap stack:
66: iload 13 /* j */
iload 6 /* limit */
if_icmplt 24
end local 13 // int j
67: .line 1779
iload 8 /* shift */
ifle 69
68: .line 1780
aload 4 /* rem */
iload 8 /* shift */
invokevirtual java.math.MutableBigInteger.rightShift:(I)V
69: .line 1782
StackMap locals:
StackMap stack:
aload 3 /* quotient */
invokevirtual java.math.MutableBigInteger.normalize:()V
70: .line 1783
aload 4 /* rem */
invokevirtual java.math.MutableBigInteger.normalize:()V
71: .line 1784
aload 4 /* rem */
areturn
end local 12 // int dl
end local 10 // long dhLong
end local 9 // int dh
end local 8 // int shift
end local 7 // int[] q
end local 6 // int limit
end local 5 // int nlen
end local 4 // java.math.MutableBigInteger rem
end local 3 // java.math.MutableBigInteger quotient
end local 1 // long ldivisor
end local 0 // java.math.MutableBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 72 0 this Ljava/math/MutableBigInteger;
0 72 1 ldivisor J
0 72 3 quotient Ljava/math/MutableBigInteger;
1 72 4 rem Ljava/math/MutableBigInteger;
5 72 5 nlen I
6 72 6 limit I
11 72 7 q [I
12 72 8 shift I
20 72 9 dh I
21 72 10 dhLong J
22 72 12 dl I
23 67 13 j I
25 65 14 qhat I
26 65 15 qrem I
27 65 16 skipCorrection Z
28 65 17 nh I
29 65 18 nh2 I
30 65 19 nm I
38 45 20 nChunk J
43 45 22 tmp J
49 59 20 nl J
50 59 22 rs J
51 59 24 estProduct J
61 65 20 borrow I
MethodParameters:
Name Flags
ldivisor
quotient
private int divaddLong(int, int, int[], int);
descriptor: (II[II)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=9, args_size=5
start local 0 // java.math.MutableBigInteger this
start local 1 // int dh
start local 2 // int dl
start local 3 // int[] result
start local 4 // int offset
0: .line 1793
lconst_0
lstore 5 /* carry */
start local 5 // long carry
1: .line 1795
iload 2 /* dl */
i2l
ldc 4294967295
land
aload 3 /* result */
iconst_1
iload 4 /* offset */
iadd
iaload
i2l
ldc 4294967295
land
ladd
lstore 7 /* sum */
start local 7 // long sum
2: .line 1796
aload 3 /* result */
iconst_1
iload 4 /* offset */
iadd
lload 7 /* sum */
l2i
iastore
3: .line 1798
iload 1 /* dh */
i2l
ldc 4294967295
land
aload 3 /* result */
iload 4 /* offset */
iaload
i2l
ldc 4294967295
land
ladd
lload 5 /* carry */
ladd
lstore 7 /* sum */
4: .line 1799
aload 3 /* result */
iload 4 /* offset */
lload 7 /* sum */
l2i
iastore
5: .line 1800
lload 7 /* sum */
bipush 32
lushr
lstore 5 /* carry */
6: .line 1801
lload 5 /* carry */
l2i
ireturn
end local 7 // long sum
end local 5 // long carry
end local 4 // int offset
end local 3 // int[] result
end local 2 // int dl
end local 1 // int dh
end local 0 // java.math.MutableBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljava/math/MutableBigInteger;
0 7 1 dh I
0 7 2 dl I
0 7 3 result [I
0 7 4 offset I
1 7 5 carry J
2 7 7 sum J
MethodParameters:
Name Flags
dh
dl
result
offset
private int mulsubLong(int[], int, int, int, int);
descriptor: ([IIIII)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=14, args_size=6
start local 0 // java.math.MutableBigInteger this
start local 1 // int[] q
start local 2 // int dh
start local 3 // int dl
start local 4 // int x
start local 5 // int offset
0: .line 1810
iload 4 /* x */
i2l
ldc 4294967295
land
lstore 6 /* xLong */
start local 6 // long xLong
1: .line 1811
iinc 5 /* offset */ 2
2: .line 1812
iload 3 /* dl */
i2l
ldc 4294967295
land
lload 6 /* xLong */
lmul
lstore 8 /* product */
start local 8 // long product
3: .line 1813
aload 1 /* q */
iload 5 /* offset */
iaload
i2l
lload 8 /* product */
lsub
lstore 10 /* difference */
start local 10 // long difference
4: .line 1814
aload 1 /* q */
iload 5 /* offset */
iinc 5 /* offset */ -1
lload 10 /* difference */
l2i
iastore
5: .line 1815
lload 8 /* product */
bipush 32
lushr
6: .line 1816
lload 10 /* difference */
ldc 4294967295
land
7: .line 1817
lload 8 /* product */
l2i
iconst_m1
ixor
i2l
ldc 4294967295
land
lcmp
ifle 8
iconst_1
goto 9
StackMap locals: java.math.MutableBigInteger int[] int int int int long long long
StackMap stack: long
8: iconst_0
9: .line 1816
StackMap locals: java.math.MutableBigInteger int[] int int int int long long long
StackMap stack: long int
i2l
10: .line 1815
ladd
lstore 12 /* carry */
start local 12 // long carry
11: .line 1818
iload 2 /* dh */
i2l
ldc 4294967295
land
lload 6 /* xLong */
lmul
lload 12 /* carry */
ladd
lstore 8 /* product */
12: .line 1819
aload 1 /* q */
iload 5 /* offset */
iaload
i2l
lload 8 /* product */
lsub
lstore 10 /* difference */
13: .line 1820
aload 1 /* q */
iload 5 /* offset */
iinc 5 /* offset */ -1
lload 10 /* difference */
l2i
iastore
14: .line 1821
lload 8 /* product */
bipush 32
lushr
15: .line 1822
lload 10 /* difference */
ldc 4294967295
land
16: .line 1823
lload 8 /* product */
l2i
iconst_m1
ixor
i2l
ldc 4294967295
land
lcmp
ifle 17
iconst_1
goto 18
StackMap locals: java.math.MutableBigInteger int[] int int int int long long long long
StackMap stack: long
17: iconst_0
18: .line 1822
StackMap locals: java.math.MutableBigInteger int[] int int int int long long long long
StackMap stack: long int
i2l
19: .line 1821
ladd
lstore 12 /* carry */
20: .line 1824
lload 12 /* carry */
l2i
ireturn
end local 12 // long carry
end local 10 // long difference
end local 8 // long product
end local 6 // long xLong
end local 5 // int offset
end local 4 // int x
end local 3 // int dl
end local 2 // int dh
end local 1 // int[] q
end local 0 // java.math.MutableBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Ljava/math/MutableBigInteger;
0 21 1 q [I
0 21 2 dh I
0 21 3 dl I
0 21 4 x I
0 21 5 offset I
1 21 6 xLong J
3 21 8 product J
4 21 10 difference J
11 21 12 carry J
MethodParameters:
Name Flags
q
dh
dl
x
offset
private boolean unsignedLongCompare(long, long);
descriptor: (JJ)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=5, args_size=3
start local 0 // java.math.MutableBigInteger this
start local 1 // long one
start local 3 // long two
0: .line 1832
lload 1 /* one */
ldc -9223372036854775808
ladd
lload 3 /* two */
ldc -9223372036854775808
ladd
lcmp
ifle 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 3 // long two
end local 1 // long one
end local 0 // java.math.MutableBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/math/MutableBigInteger;
0 2 1 one J
0 2 3 two J
MethodParameters:
Name Flags
one
two
static long divWord(long, int);
descriptor: (JI)J
flags: (0x0008) ACC_STATIC
Code:
stack=6, locals=9, args_size=2
start local 0 // long n
start local 2 // int d
0: .line 1843
iload 2 /* d */
i2l
ldc 4294967295
land
lstore 3 /* dLong */
start local 3 // long dLong
1: .line 1846
lload 3 /* dLong */
lconst_1
lcmp
ifne 5
2: .line 1847
lload 0 /* n */
l2i
i2l
lstore 7 /* q */
start local 7 // long q
3: .line 1848
lconst_0
lstore 5 /* r */
start local 5 // long r
4: .line 1849
lload 5 /* r */
bipush 32
lshl
lload 7 /* q */
ldc 4294967295
land
lor
lreturn
end local 7 // long q
end local 5 // long r
5: .line 1853
StackMap locals: long
StackMap stack:
lload 0 /* n */
iconst_1
lushr
lload 3 /* dLong */
iconst_1
lushr
ldiv
lstore 7 /* q */
start local 7 // long q
6: .line 1854
lload 0 /* n */
lload 7 /* q */
lload 3 /* dLong */
lmul
lsub
lstore 5 /* r */
start local 5 // long r
7: .line 1857
goto 10
8: .line 1858
StackMap locals: long long
StackMap stack:
lload 5 /* r */
lload 3 /* dLong */
ladd
lstore 5 /* r */
9: .line 1859
lload 7 /* q */
lconst_1
lsub
lstore 7 /* q */
10: .line 1857
StackMap locals:
StackMap stack:
lload 5 /* r */
lconst_0
lcmp
iflt 8
11: .line 1861
goto 14
12: .line 1862
StackMap locals:
StackMap stack:
lload 5 /* r */
lload 3 /* dLong */
lsub
lstore 5 /* r */
13: .line 1863
lload 7 /* q */
lconst_1
ladd
lstore 7 /* q */
14: .line 1861
StackMap locals:
StackMap stack:
lload 5 /* r */
lload 3 /* dLong */
lcmp
ifge 12
15: .line 1866
lload 5 /* r */
bipush 32
lshl
lload 7 /* q */
ldc 4294967295
land
lor
lreturn
end local 7 // long q
end local 5 // long r
end local 3 // long dLong
end local 2 // int d
end local 0 // long n
LocalVariableTable:
Start End Slot Name Signature
0 16 0 n J
0 16 2 d I
1 16 3 dLong J
4 5 5 r J
7 16 5 r J
3 5 7 q J
6 16 7 q J
MethodParameters:
Name Flags
n
d
java.math.MutableBigInteger sqrt();
descriptor: ()Ljava/math/MutableBigInteger;
flags: (0x0000)
Code:
stack=9, locals=8, args_size=1
start local 0 // java.math.MutableBigInteger this
0: .line 1885
aload 0 /* this */
invokevirtual java.math.MutableBigInteger.isZero:()Z
ifeq 2
1: .line 1886
new java.math.MutableBigInteger
dup
iconst_0
invokespecial java.math.MutableBigInteger.<init>:(I)V
areturn
2: .line 1887
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield java.math.MutableBigInteger.value:[I
arraylength
iconst_1
if_icmpne 5
3: .line 1888
aload 0 /* this */
getfield java.math.MutableBigInteger.value:[I
iconst_0
iaload
i2l
ldc 4294967295
land
ldc 4
lcmp
ifge 5
4: .line 1889
getstatic java.math.MutableBigInteger.ONE:Ljava/math/MutableBigInteger;
areturn
5: .line 1892
StackMap locals:
StackMap stack:
aload 0 /* this */
invokevirtual java.math.MutableBigInteger.bitLength:()J
ldc 63
lcmp
ifgt 15
6: .line 1894
new java.math.BigInteger
dup
aload 0 /* this */
getfield java.math.MutableBigInteger.value:[I
iconst_1
invokespecial java.math.BigInteger.<init>:([II)V
invokevirtual java.math.BigInteger.longValueExact:()J
lstore 1 /* v */
start local 1 // long v
7: .line 1895
lload 1 /* v */
l2d
invokestatic java.lang.Math.sqrt:(D)D
invokestatic java.lang.Math.floor:(D)D
d2l
lstore 3 /* xk */
start local 3 // long xk
8: .line 1899
StackMap locals: long long
StackMap stack:
lload 3 /* xk */
lload 1 /* v */
lload 3 /* xk */
ldiv
ladd
ldc 2
ldiv
lstore 5 /* xk1 */
start local 5 // long xk1
9: .line 1902
lload 5 /* xk1 */
lload 3 /* xk */
lcmp
iflt 13
10: .line 1903
new java.math.MutableBigInteger
dup
iconst_2
newarray 10
dup
iconst_0
11: .line 1904
lload 3 /* xk */
bipush 32
lushr
l2i
iastore
dup
iconst_1
lload 3 /* xk */
ldc 4294967295
land
l2i
iastore
12: .line 1903
invokespecial java.math.MutableBigInteger.<init>:([I)V
areturn
13: .line 1908
StackMap locals: long
StackMap stack:
lload 5 /* xk1 */
lstore 3 /* xk */
end local 5 // long xk1
14: .line 1909
goto 8
end local 3 // long xk
end local 1 // long v
15: .line 1914
StackMap locals:
StackMap stack:
aload 0 /* this */
invokevirtual java.math.MutableBigInteger.bitLength:()J
l2i
istore 1 /* bitLength */
start local 1 // int bitLength
16: .line 1915
iload 1 /* bitLength */
i2l
aload 0 /* this */
invokevirtual java.math.MutableBigInteger.bitLength:()J
lcmp
ifeq 18
17: .line 1916
new java.lang.ArithmeticException
dup
ldc "bitLength() integer overflow"
invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
athrow
18: .line 1920
StackMap locals: int
StackMap stack:
iload 1 /* bitLength */
bipush 63
isub
istore 2 /* shift */
start local 2 // int shift
19: .line 1921
iload 2 /* shift */
iconst_2
irem
iconst_1
if_icmpne 21
20: .line 1922
iinc 2 /* shift */ 1
21: .line 1926
StackMap locals: int
StackMap stack:
new java.math.MutableBigInteger
dup
aload 0 /* this */
invokespecial java.math.MutableBigInteger.<init>:(Ljava/math/MutableBigInteger;)V
astore 3 /* xk */
start local 3 // java.math.MutableBigInteger xk
22: .line 1927
aload 3 /* xk */
iload 2 /* shift */
invokevirtual java.math.MutableBigInteger.rightShift:(I)V
23: .line 1928
aload 3 /* xk */
invokevirtual java.math.MutableBigInteger.normalize:()V
24: .line 1931
new java.math.BigInteger
dup
aload 3 /* xk */
getfield java.math.MutableBigInteger.value:[I
iconst_1
invokespecial java.math.BigInteger.<init>:([II)V
invokevirtual java.math.BigInteger.doubleValue:()D
dstore 4 /* d */
start local 4 // double d
25: .line 1932
dload 4 /* d */
invokestatic java.lang.Math.sqrt:(D)D
invokestatic java.lang.Math.ceil:(D)D
d2l
invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
astore 6 /* bi */
start local 6 // java.math.BigInteger bi
26: .line 1933
new java.math.MutableBigInteger
dup
aload 6 /* bi */
getfield java.math.BigInteger.mag:[I
invokespecial java.math.MutableBigInteger.<init>:([I)V
astore 3 /* xk */
27: .line 1936
aload 3 /* xk */
iload 2 /* shift */
iconst_2
idiv
invokevirtual java.math.MutableBigInteger.leftShift:(I)V
28: .line 1939
new java.math.MutableBigInteger
dup
invokespecial java.math.MutableBigInteger.<init>:()V
astore 7 /* xk1 */
start local 7 // java.math.MutableBigInteger xk1
29: .line 1942
StackMap locals: java.math.MutableBigInteger int int java.math.MutableBigInteger double java.math.BigInteger java.math.MutableBigInteger
StackMap stack:
aload 0 /* this */
aload 3 /* xk */
aload 7 /* xk1 */
iconst_0
invokevirtual java.math.MutableBigInteger.divide:(Ljava/math/MutableBigInteger;Ljava/math/MutableBigInteger;Z)Ljava/math/MutableBigInteger;
pop
30: .line 1943
aload 7 /* xk1 */
aload 3 /* xk */
invokevirtual java.math.MutableBigInteger.add:(Ljava/math/MutableBigInteger;)V
31: .line 1944
aload 7 /* xk1 */
iconst_1
invokevirtual java.math.MutableBigInteger.rightShift:(I)V
32: .line 1947
aload 7 /* xk1 */
aload 3 /* xk */
invokevirtual java.math.MutableBigInteger.compare:(Ljava/math/MutableBigInteger;)I
iflt 34
33: .line 1948
aload 3 /* xk */
areturn
34: .line 1952
StackMap locals:
StackMap stack:
aload 3 /* xk */
aload 7 /* xk1 */
invokevirtual java.math.MutableBigInteger.copyValue:(Ljava/math/MutableBigInteger;)V
35: .line 1954
aload 7 /* xk1 */
invokevirtual java.math.MutableBigInteger.reset:()V
36: .line 1955
goto 29
end local 7 // java.math.MutableBigInteger xk1
end local 6 // java.math.BigInteger bi
end local 4 // double d
end local 3 // java.math.MutableBigInteger xk
end local 2 // int shift
end local 1 // int bitLength
end local 0 // java.math.MutableBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 37 0 this Ljava/math/MutableBigInteger;
7 15 1 v J
8 15 3 xk J
9 14 5 xk1 J
16 37 1 bitLength I
19 37 2 shift I
22 37 3 xk Ljava/math/MutableBigInteger;
25 37 4 d D
26 37 6 bi Ljava/math/BigInteger;
29 37 7 xk1 Ljava/math/MutableBigInteger;
java.math.MutableBigInteger hybridGCD(java.math.MutableBigInteger);
descriptor: (Ljava/math/MutableBigInteger;)Ljava/math/MutableBigInteger;
flags: (0x0000)
Code:
stack=3, locals=5, args_size=2
start local 0 // java.math.MutableBigInteger this
start local 1 // java.math.MutableBigInteger b
0: .line 1965
aload 0 /* this */
astore 2 /* a */
start local 2 // java.math.MutableBigInteger a
1: .line 1966
new java.math.MutableBigInteger
dup
invokespecial java.math.MutableBigInteger.<init>:()V
astore 3 /* q */
start local 3 // java.math.MutableBigInteger q
2: .line 1968
goto 8
3: .line 1969
StackMap locals: java.math.MutableBigInteger java.math.MutableBigInteger
StackMap stack:
aload 2 /* a */
getfield java.math.MutableBigInteger.intLen:I
aload 1 /* b */
getfield java.math.MutableBigInteger.intLen:I
isub
invokestatic java.lang.Math.abs:(I)I
iconst_2
if_icmpge 5
4: .line 1970
aload 2 /* a */
aload 1 /* b */
invokevirtual java.math.MutableBigInteger.binaryGCD:(Ljava/math/MutableBigInteger;)Ljava/math/MutableBigInteger;
areturn
5: .line 1972
StackMap locals:
StackMap stack:
aload 2 /* a */
aload 1 /* b */
aload 3 /* q */
invokevirtual java.math.MutableBigInteger.divide:(Ljava/math/MutableBigInteger;Ljava/math/MutableBigInteger;)Ljava/math/MutableBigInteger;
astore 4 /* r */
start local 4 // java.math.MutableBigInteger r
6: .line 1973
aload 1 /* b */
astore 2 /* a */
7: .line 1974
aload 4 /* r */
astore 1 /* b */
end local 4 // java.math.MutableBigInteger r
8: .line 1968
StackMap locals:
StackMap stack:
aload 1 /* b */
getfield java.math.MutableBigInteger.intLen:I
ifne 3
9: .line 1976
aload 2 /* a */
areturn
end local 3 // java.math.MutableBigInteger q
end local 2 // java.math.MutableBigInteger a
end local 1 // java.math.MutableBigInteger b
end local 0 // java.math.MutableBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Ljava/math/MutableBigInteger;
0 10 1 b Ljava/math/MutableBigInteger;
1 10 2 a Ljava/math/MutableBigInteger;
2 10 3 q Ljava/math/MutableBigInteger;
6 8 4 r Ljava/math/MutableBigInteger;
MethodParameters:
Name Flags
b
private java.math.MutableBigInteger binaryGCD(java.math.MutableBigInteger);
descriptor: (Ljava/math/MutableBigInteger;)Ljava/math/MutableBigInteger;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=13, args_size=2
start local 0 // java.math.MutableBigInteger this
start local 1 // java.math.MutableBigInteger v
0: .line 1985
aload 0 /* this */
astore 2 /* u */
start local 2 // java.math.MutableBigInteger u
1: .line 1986
new java.math.MutableBigInteger
dup
invokespecial java.math.MutableBigInteger.<init>:()V
astore 3 /* r */
start local 3 // java.math.MutableBigInteger r
2: .line 1989
aload 2 /* u */
invokevirtual java.math.MutableBigInteger.getLowestSetBit:()I
istore 4 /* s1 */
start local 4 // int s1
3: .line 1990
aload 1 /* v */
invokevirtual java.math.MutableBigInteger.getLowestSetBit:()I
istore 5 /* s2 */
start local 5 // int s2
4: .line 1991
iload 4 /* s1 */
iload 5 /* s2 */
if_icmpge 5
iload 4 /* s1 */
goto 6
StackMap locals: java.math.MutableBigInteger java.math.MutableBigInteger java.math.MutableBigInteger java.math.MutableBigInteger int int
StackMap stack:
5: iload 5 /* s2 */
StackMap locals:
StackMap stack: int
6: istore 6 /* k */
start local 6 // int k
7: .line 1992
iload 6 /* k */
ifeq 10
8: .line 1993
aload 2 /* u */
iload 6 /* k */
invokevirtual java.math.MutableBigInteger.rightShift:(I)V
9: .line 1994
aload 1 /* v */
iload 6 /* k */
invokevirtual java.math.MutableBigInteger.rightShift:(I)V
10: .line 1998
StackMap locals: int
StackMap stack:
iload 6 /* k */
iload 4 /* s1 */
if_icmpne 11
iconst_1
goto 12
StackMap locals:
StackMap stack:
11: iconst_0
StackMap locals:
StackMap stack: int
12: istore 7 /* uOdd */
start local 7 // boolean uOdd
13: .line 1999
iload 7 /* uOdd */
ifeq 14
aload 1 /* v */
goto 15
StackMap locals: int
StackMap stack:
14: aload 2 /* u */
StackMap locals:
StackMap stack: java.math.MutableBigInteger
15: astore 8 /* t */
start local 8 // java.math.MutableBigInteger t
16: .line 2000
iload 7 /* uOdd */
ifeq 17
iconst_m1
goto 18
StackMap locals: java.math.MutableBigInteger
StackMap stack:
17: iconst_1
StackMap locals:
StackMap stack: int
18: istore 9 /* tsign */
start local 9 // int tsign
19: .line 2003
goto 39
start local 10 // int lb
20: .line 2005
StackMap locals: int int
StackMap stack:
aload 8 /* t */
iload 10 /* lb */
invokevirtual java.math.MutableBigInteger.rightShift:(I)V
21: .line 2007
iload 9 /* tsign */
ifle 23
22: .line 2008
aload 8 /* t */
astore 2 /* u */
goto 24
23: .line 2010
StackMap locals:
StackMap stack:
aload 8 /* t */
astore 1 /* v */
24: .line 2013
StackMap locals:
StackMap stack:
aload 2 /* u */
getfield java.math.MutableBigInteger.intLen:I
iconst_2
if_icmpge 34
aload 1 /* v */
getfield java.math.MutableBigInteger.intLen:I
iconst_2
if_icmpge 34
25: .line 2014
aload 2 /* u */
getfield java.math.MutableBigInteger.value:[I
aload 2 /* u */
getfield java.math.MutableBigInteger.offset:I
iaload
istore 11 /* x */
start local 11 // int x
26: .line 2015
aload 1 /* v */
getfield java.math.MutableBigInteger.value:[I
aload 1 /* v */
getfield java.math.MutableBigInteger.offset:I
iaload
istore 12 /* y */
start local 12 // int y
27: .line 2016
iload 11 /* x */
iload 12 /* y */
invokestatic java.math.MutableBigInteger.binaryGcd:(II)I
istore 11 /* x */
28: .line 2017
aload 3 /* r */
getfield java.math.MutableBigInteger.value:[I
iconst_0
iload 11 /* x */
iastore
29: .line 2018
aload 3 /* r */
iconst_1
putfield java.math.MutableBigInteger.intLen:I
30: .line 2019
aload 3 /* r */
iconst_0
putfield java.math.MutableBigInteger.offset:I
31: .line 2020
iload 6 /* k */
ifle 33
32: .line 2021
aload 3 /* r */
iload 6 /* k */
invokevirtual java.math.MutableBigInteger.leftShift:(I)V
33: .line 2022
StackMap locals: int int
StackMap stack:
aload 3 /* r */
areturn
end local 12 // int y
end local 11 // int x
34: .line 2026
StackMap locals:
StackMap stack:
aload 2 /* u */
aload 1 /* v */
invokevirtual java.math.MutableBigInteger.difference:(Ljava/math/MutableBigInteger;)I
dup
istore 9 /* tsign */
ifne 36
35: .line 2027
goto 41
36: .line 2028
StackMap locals:
StackMap stack:
iload 9 /* tsign */
iflt 37
aload 2 /* u */
goto 38
StackMap locals:
StackMap stack:
37: aload 1 /* v */
StackMap locals:
StackMap stack: java.math.MutableBigInteger
38: astore 8 /* t */
end local 10 // int lb
39: .line 2003
StackMap locals:
StackMap stack:
aload 8 /* t */
invokevirtual java.math.MutableBigInteger.getLowestSetBit:()I
dup
istore 10 /* lb */
start local 10 // int lb
40: ifge 20
41: .line 2031
StackMap locals: int
StackMap stack:
iload 6 /* k */
ifle 43
42: .line 2032
aload 2 /* u */
iload 6 /* k */
invokevirtual java.math.MutableBigInteger.leftShift:(I)V
43: .line 2033
StackMap locals:
StackMap stack:
aload 2 /* u */
areturn
end local 10 // int lb
end local 9 // int tsign
end local 8 // java.math.MutableBigInteger t
end local 7 // boolean uOdd
end local 6 // int k
end local 5 // int s2
end local 4 // int s1
end local 3 // java.math.MutableBigInteger r
end local 2 // java.math.MutableBigInteger u
end local 1 // java.math.MutableBigInteger v
end local 0 // java.math.MutableBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 44 0 this Ljava/math/MutableBigInteger;
0 44 1 v Ljava/math/MutableBigInteger;
1 44 2 u Ljava/math/MutableBigInteger;
2 44 3 r Ljava/math/MutableBigInteger;
3 44 4 s1 I
4 44 5 s2 I
7 44 6 k I
13 44 7 uOdd Z
16 44 8 t Ljava/math/MutableBigInteger;
19 44 9 tsign I
20 39 10 lb I
40 44 10 lb I
26 34 11 x I
27 34 12 y I
MethodParameters:
Name Flags
v
static int binaryGcd(int, int);
descriptor: (II)I
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=5, args_size=2
start local 0 // int a
start local 1 // int b
0: .line 2040
iload 1 /* b */
ifne 2
1: .line 2041
iload 0 /* a */
ireturn
2: .line 2042
StackMap locals:
StackMap stack:
iload 0 /* a */
ifne 4
3: .line 2043
iload 1 /* b */
ireturn
4: .line 2046
StackMap locals:
StackMap stack:
iload 0 /* a */
invokestatic java.lang.Integer.numberOfTrailingZeros:(I)I
istore 2 /* aZeros */
start local 2 // int aZeros
5: .line 2047
iload 1 /* b */
invokestatic java.lang.Integer.numberOfTrailingZeros:(I)I
istore 3 /* bZeros */
start local 3 // int bZeros
6: .line 2048
iload 0 /* a */
iload 2 /* aZeros */
iushr
istore 0 /* a */
7: .line 2049
iload 1 /* b */
iload 3 /* bZeros */
iushr
istore 1 /* b */
8: .line 2051
iload 2 /* aZeros */
iload 3 /* bZeros */
if_icmpge 9
iload 2 /* aZeros */
goto 10
StackMap locals: int int
StackMap stack:
9: iload 3 /* bZeros */
StackMap locals:
StackMap stack: int
10: istore 4 /* t */
start local 4 // int t
11: .line 2053
goto 18
12: .line 2054
StackMap locals: int
StackMap stack:
iload 0 /* a */
ldc -2147483648
iadd
iload 1 /* b */
ldc -2147483648
iadd
if_icmple 16
13: .line 2055
iload 0 /* a */
iload 1 /* b */
isub
istore 0 /* a */
14: .line 2056
iload 0 /* a */
iload 0 /* a */
invokestatic java.lang.Integer.numberOfTrailingZeros:(I)I
iushr
istore 0 /* a */
15: .line 2057
goto 18
16: .line 2058
StackMap locals:
StackMap stack:
iload 1 /* b */
iload 0 /* a */
isub
istore 1 /* b */
17: .line 2059
iload 1 /* b */
iload 1 /* b */
invokestatic java.lang.Integer.numberOfTrailingZeros:(I)I
iushr
istore 1 /* b */
18: .line 2053
StackMap locals:
StackMap stack:
iload 0 /* a */
iload 1 /* b */
if_icmpne 12
19: .line 2062
iload 0 /* a */
iload 4 /* t */
ishl
ireturn
end local 4 // int t
end local 3 // int bZeros
end local 2 // int aZeros
end local 1 // int b
end local 0 // int a
LocalVariableTable:
Start End Slot Name Signature
0 20 0 a I
0 20 1 b I
5 20 2 aZeros I
6 20 3 bZeros I
11 20 4 t I
MethodParameters:
Name Flags
a
b
java.math.MutableBigInteger mutableModInverse(java.math.MutableBigInteger);
descriptor: (Ljava/math/MutableBigInteger;)Ljava/math/MutableBigInteger;
flags: (0x0000)
Code:
stack=3, locals=11, args_size=2
start local 0 // java.math.MutableBigInteger this
start local 1 // java.math.MutableBigInteger p
0: .line 2071
aload 1 /* p */
invokevirtual java.math.MutableBigInteger.isOdd:()Z
ifeq 2
1: .line 2072
aload 0 /* this */
aload 1 /* p */
invokevirtual java.math.MutableBigInteger.modInverse:(Ljava/math/MutableBigInteger;)Ljava/math/MutableBigInteger;
areturn
2: .line 2075
StackMap locals:
StackMap stack:
aload 0 /* this */
invokevirtual java.math.MutableBigInteger.isEven:()Z
ifeq 4
3: .line 2076
new java.lang.ArithmeticException
dup
ldc "BigInteger not invertible."
invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
athrow
4: .line 2079
StackMap locals:
StackMap stack:
aload 1 /* p */
invokevirtual java.math.MutableBigInteger.getLowestSetBit:()I
istore 2 /* powersOf2 */
start local 2 // int powersOf2
5: .line 2082
new java.math.MutableBigInteger
dup
aload 1 /* p */
invokespecial java.math.MutableBigInteger.<init>:(Ljava/math/MutableBigInteger;)V
astore 3 /* oddMod */
start local 3 // java.math.MutableBigInteger oddMod
6: .line 2083
aload 3 /* oddMod */
iload 2 /* powersOf2 */
invokevirtual java.math.MutableBigInteger.rightShift:(I)V
7: .line 2085
aload 3 /* oddMod */
invokevirtual java.math.MutableBigInteger.isOne:()Z
ifeq 9
8: .line 2086
aload 0 /* this */
iload 2 /* powersOf2 */
invokevirtual java.math.MutableBigInteger.modInverseMP2:(I)Ljava/math/MutableBigInteger;
areturn
9: .line 2089
StackMap locals: int java.math.MutableBigInteger
StackMap stack:
aload 0 /* this */
aload 3 /* oddMod */
invokevirtual java.math.MutableBigInteger.modInverse:(Ljava/math/MutableBigInteger;)Ljava/math/MutableBigInteger;
astore 4 /* oddPart */
start local 4 // java.math.MutableBigInteger oddPart
10: .line 2092
aload 0 /* this */
iload 2 /* powersOf2 */
invokevirtual java.math.MutableBigInteger.modInverseMP2:(I)Ljava/math/MutableBigInteger;
astore 5 /* evenPart */
start local 5 // java.math.MutableBigInteger evenPart
11: .line 2095
aload 3 /* oddMod */
iload 2 /* powersOf2 */
invokestatic java.math.MutableBigInteger.modInverseBP2:(Ljava/math/MutableBigInteger;I)Ljava/math/MutableBigInteger;
astore 6 /* y1 */
start local 6 // java.math.MutableBigInteger y1
12: .line 2096
aload 3 /* oddMod */
iload 2 /* powersOf2 */
invokevirtual java.math.MutableBigInteger.modInverseMP2:(I)Ljava/math/MutableBigInteger;
astore 7 /* y2 */
start local 7 // java.math.MutableBigInteger y2
13: .line 2098
new java.math.MutableBigInteger
dup
invokespecial java.math.MutableBigInteger.<init>:()V
astore 8 /* temp1 */
start local 8 // java.math.MutableBigInteger temp1
14: .line 2099
new java.math.MutableBigInteger
dup
invokespecial java.math.MutableBigInteger.<init>:()V
astore 9 /* temp2 */
start local 9 // java.math.MutableBigInteger temp2
15: .line 2100
new java.math.MutableBigInteger
dup
invokespecial java.math.MutableBigInteger.<init>:()V
astore 10 /* result */
start local 10 // java.math.MutableBigInteger result
16: .line 2102
aload 4 /* oddPart */
iload 2 /* powersOf2 */
invokevirtual java.math.MutableBigInteger.leftShift:(I)V
17: .line 2103
aload 4 /* oddPart */
aload 6 /* y1 */
aload 10 /* result */
invokevirtual java.math.MutableBigInteger.multiply:(Ljava/math/MutableBigInteger;Ljava/math/MutableBigInteger;)V
18: .line 2105
aload 5 /* evenPart */
aload 3 /* oddMod */
aload 8 /* temp1 */
invokevirtual java.math.MutableBigInteger.multiply:(Ljava/math/MutableBigInteger;Ljava/math/MutableBigInteger;)V
19: .line 2106
aload 8 /* temp1 */
aload 7 /* y2 */
aload 9 /* temp2 */
invokevirtual java.math.MutableBigInteger.multiply:(Ljava/math/MutableBigInteger;Ljava/math/MutableBigInteger;)V
20: .line 2108
aload 10 /* result */
aload 9 /* temp2 */
invokevirtual java.math.MutableBigInteger.add:(Ljava/math/MutableBigInteger;)V
21: .line 2109
aload 10 /* result */
aload 1 /* p */
aload 8 /* temp1 */
invokevirtual java.math.MutableBigInteger.divide:(Ljava/math/MutableBigInteger;Ljava/math/MutableBigInteger;)Ljava/math/MutableBigInteger;
areturn
end local 10 // java.math.MutableBigInteger result
end local 9 // java.math.MutableBigInteger temp2
end local 8 // java.math.MutableBigInteger temp1
end local 7 // java.math.MutableBigInteger y2
end local 6 // java.math.MutableBigInteger y1
end local 5 // java.math.MutableBigInteger evenPart
end local 4 // java.math.MutableBigInteger oddPart
end local 3 // java.math.MutableBigInteger oddMod
end local 2 // int powersOf2
end local 1 // java.math.MutableBigInteger p
end local 0 // java.math.MutableBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Ljava/math/MutableBigInteger;
0 22 1 p Ljava/math/MutableBigInteger;
5 22 2 powersOf2 I
6 22 3 oddMod Ljava/math/MutableBigInteger;
10 22 4 oddPart Ljava/math/MutableBigInteger;
11 22 5 evenPart Ljava/math/MutableBigInteger;
12 22 6 y1 Ljava/math/MutableBigInteger;
13 22 7 y2 Ljava/math/MutableBigInteger;
14 22 8 temp1 Ljava/math/MutableBigInteger;
15 22 9 temp2 Ljava/math/MutableBigInteger;
16 22 10 result Ljava/math/MutableBigInteger;
MethodParameters:
Name Flags
p
java.math.MutableBigInteger modInverseMP2(int);
descriptor: (I)Ljava/math/MutableBigInteger;
flags: (0x0000)
Code:
stack=8, locals=8, args_size=2
start local 0 // java.math.MutableBigInteger this
start local 1 // int k
0: .line 2116
aload 0 /* this */
invokevirtual java.math.MutableBigInteger.isEven:()Z
ifeq 2
1: .line 2117
new java.lang.ArithmeticException
dup
ldc "Non-invertible. (GCD != 1)"
invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
athrow
2: .line 2119
StackMap locals:
StackMap stack:
iload 1 /* k */
bipush 64
if_icmple 4
3: .line 2120
aload 0 /* this */
iload 1 /* k */
invokevirtual java.math.MutableBigInteger.euclidModInverse:(I)Ljava/math/MutableBigInteger;
areturn
4: .line 2122
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield java.math.MutableBigInteger.value:[I
aload 0 /* this */
getfield java.math.MutableBigInteger.offset:I
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
iadd
iconst_1
isub
iaload
invokestatic java.math.MutableBigInteger.inverseMod32:(I)I
istore 2 /* t */
start local 2 // int t
5: .line 2124
iload 1 /* k */
bipush 33
if_icmpge 10
6: .line 2125
iload 1 /* k */
bipush 32
if_icmpne 7
iload 2 /* t */
goto 8
StackMap locals: int
StackMap stack:
7: iload 2 /* t */
iconst_1
iload 1 /* k */
ishl
iconst_1
isub
iand
StackMap locals:
StackMap stack: int
8: istore 2 /* t */
9: .line 2126
new java.math.MutableBigInteger
dup
iload 2 /* t */
invokespecial java.math.MutableBigInteger.<init>:(I)V
areturn
10: .line 2129
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield java.math.MutableBigInteger.value:[I
aload 0 /* this */
getfield java.math.MutableBigInteger.offset:I
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
iadd
iconst_1
isub
iaload
i2l
ldc 4294967295
land
lstore 3 /* pLong */
start local 3 // long pLong
11: .line 2130
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
iconst_1
if_icmple 13
12: .line 2131
lload 3 /* pLong */
aload 0 /* this */
getfield java.math.MutableBigInteger.value:[I
aload 0 /* this */
getfield java.math.MutableBigInteger.offset:I
aload 0 /* this */
getfield java.math.MutableBigInteger.intLen:I
iadd
iconst_2
isub
iaload
i2l
bipush 32
lshl
lor
lstore 3 /* pLong */
13: .line 2132
StackMap locals: long
StackMap stack:
iload 2 /* t */
i2l
ldc 4294967295
land
lstore 5 /* tLong */
start local 5 // long tLong
14: .line 2133
lload 5 /* tLong */
ldc 2
lload 3 /* pLong */
lload 5 /* tLong */
lmul
lsub
lmul
lstore 5 /* tLong */
15: .line 2134
iload 1 /* k */
bipush 64
if_icmpne 16
lload 5 /* tLong */
goto 17
StackMap locals: long
StackMap stack:
16: lload 5 /* tLong */
lconst_1
iload 1 /* k */
lshl
lconst_1
lsub
land
StackMap locals:
StackMap stack: long
17: lstore 5 /* tLong */
18: .line 2136
new java.math.MutableBigInteger
dup
iconst_2
newarray 10
invokespecial java.math.MutableBigInteger.<init>:([I)V
astore 7 /* result */
start local 7 // java.math.MutableBigInteger result
19: .line 2137
aload 7 /* result */
getfield java.math.MutableBigInteger.value:[I
iconst_0
lload 5 /* tLong */
bipush 32
lushr
l2i
iastore
20: .line 2138
aload 7 /* result */
getfield java.math.MutableBigInteger.value:[I
iconst_1
lload 5 /* tLong */
l2i
iastore
21: .line 2139
aload 7 /* result */
iconst_2
putfield java.math.MutableBigInteger.intLen:I
22: .line 2140
aload 7 /* result */
invokevirtual java.math.MutableBigInteger.normalize:()V
23: .line 2141
aload 7 /* result */
areturn
end local 7 // java.math.MutableBigInteger result
end local 5 // long tLong
end local 3 // long pLong
end local 2 // int t
end local 1 // int k
end local 0 // java.math.MutableBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Ljava/math/MutableBigInteger;
0 24 1 k I
5 24 2 t I
11 24 3 pLong J
14 24 5 tLong J
19 24 7 result Ljava/math/MutableBigInteger;
MethodParameters:
Name Flags
k
static int inverseMod32(int);
descriptor: (I)I
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=2, args_size=1
start local 0 // int val
0: .line 2149
iload 0 /* val */
istore 1 /* t */
start local 1 // int t
1: .line 2150
iload 1 /* t */
iconst_2
iload 0 /* val */
iload 1 /* t */
imul
isub
imul
istore 1 /* t */
2: .line 2151
iload 1 /* t */
iconst_2
iload 0 /* val */
iload 1 /* t */
imul
isub
imul
istore 1 /* t */
3: .line 2152
iload 1 /* t */
iconst_2
iload 0 /* val */
iload 1 /* t */
imul
isub
imul
istore 1 /* t */
4: .line 2153
iload 1 /* t */
iconst_2
iload 0 /* val */
iload 1 /* t */
imul
isub
imul
istore 1 /* t */
5: .line 2154
iload 1 /* t */
ireturn
end local 1 // int t
end local 0 // int val
LocalVariableTable:
Start End Slot Name Signature
0 6 0 val I
1 6 1 t I
MethodParameters:
Name Flags
val
static long inverseMod64(long);
descriptor: (J)J
flags: (0x0008) ACC_STATIC
Code:
stack=8, locals=4, args_size=1
start local 0 // long val
0: .line 2162
lload 0 /* val */
lstore 2 /* t */
start local 2 // long t
1: .line 2163
lload 2 /* t */
ldc 2
lload 0 /* val */
lload 2 /* t */
lmul
lsub
lmul
lstore 2 /* t */
2: .line 2164
lload 2 /* t */
ldc 2
lload 0 /* val */
lload 2 /* t */
lmul
lsub
lmul
lstore 2 /* t */
3: .line 2165
lload 2 /* t */
ldc 2
lload 0 /* val */
lload 2 /* t */
lmul
lsub
lmul
lstore 2 /* t */
4: .line 2166
lload 2 /* t */
ldc 2
lload 0 /* val */
lload 2 /* t */
lmul
lsub
lmul
lstore 2 /* t */
5: .line 2167
lload 2 /* t */
ldc 2
lload 0 /* val */
lload 2 /* t */
lmul
lsub
lmul
lstore 2 /* t */
6: .line 2168
getstatic java.math.MutableBigInteger.$assertionsDisabled:Z
ifne 7
lload 2 /* t */
lload 0 /* val */
lmul
lconst_1
lcmp
ifeq 7
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
7: .line 2169
StackMap locals: long
StackMap stack:
lload 2 /* t */
lreturn
end local 2 // long t
end local 0 // long val
LocalVariableTable:
Start End Slot Name Signature
0 8 0 val J
1 8 2 t J
MethodParameters:
Name Flags
val
static java.math.MutableBigInteger modInverseBP2(java.math.MutableBigInteger, int);
descriptor: (Ljava/math/MutableBigInteger;I)Ljava/math/MutableBigInteger;
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=2, args_size=2
start local 0 // java.math.MutableBigInteger mod
start local 1 // int k
0: .line 2177
new java.math.MutableBigInteger
dup
iconst_1
invokespecial java.math.MutableBigInteger.<init>:(I)V
new java.math.MutableBigInteger
dup
aload 0 /* mod */
invokespecial java.math.MutableBigInteger.<init>:(Ljava/math/MutableBigInteger;)V
iload 1 /* k */
invokestatic java.math.MutableBigInteger.fixup:(Ljava/math/MutableBigInteger;Ljava/math/MutableBigInteger;I)Ljava/math/MutableBigInteger;
areturn
end local 1 // int k
end local 0 // java.math.MutableBigInteger mod
LocalVariableTable:
Start End Slot Name Signature
0 1 0 mod Ljava/math/MutableBigInteger;
0 1 1 k I
MethodParameters:
Name Flags
mod
k
private java.math.MutableBigInteger modInverse(java.math.MutableBigInteger);
descriptor: (Ljava/math/MutableBigInteger;)Ljava/math/MutableBigInteger;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=11, args_size=2
start local 0 // java.math.MutableBigInteger this
start local 1 // java.math.MutableBigInteger mod
0: .line 2190
new java.math.MutableBigInteger
dup
aload 1 /* mod */
invokespecial java.math.MutableBigInteger.<init>:(Ljava/math/MutableBigInteger;)V
astore 2 /* p */
start local 2 // java.math.MutableBigInteger p
1: .line 2191
new java.math.MutableBigInteger
dup
aload 0 /* this */
invokespecial java.math.MutableBigInteger.<init>:(Ljava/math/MutableBigInteger;)V
astore 3 /* f */
start local 3 // java.math.MutableBigInteger f
2: .line 2192
new java.math.MutableBigInteger
dup
aload 2 /* p */
invokespecial java.math.MutableBigInteger.<init>:(Ljava/math/MutableBigInteger;)V
astore 4 /* g */
start local 4 // java.math.MutableBigInteger g
3: .line 2193
new java.math.SignedMutableBigInteger
dup
iconst_1
invokespecial java.math.SignedMutableBigInteger.<init>:(I)V
astore 5 /* c */
start local 5 // java.math.SignedMutableBigInteger c
4: .line 2194
new java.math.SignedMutableBigInteger
dup
invokespecial java.math.SignedMutableBigInteger.<init>:()V
astore 6 /* d */
start local 6 // java.math.SignedMutableBigInteger d
5: .line 2195
aconst_null
astore 7 /* temp */
start local 7 // java.math.MutableBigInteger temp
6: .line 2196
aconst_null
astore 8 /* sTemp */
start local 8 // java.math.SignedMutableBigInteger sTemp
7: .line 2198
iconst_0
istore 9 /* k */
start local 9 // int k
8: .line 2200
aload 3 /* f */
invokevirtual java.math.MutableBigInteger.isEven:()Z
ifeq 33
9: .line 2201
aload 3 /* f */
invokevirtual java.math.MutableBigInteger.getLowestSetBit:()I
istore 10 /* trailingZeros */
start local 10 // int trailingZeros
10: .line 2202
aload 3 /* f */
iload 10 /* trailingZeros */
invokevirtual java.math.MutableBigInteger.rightShift:(I)V
11: .line 2203
aload 6 /* d */
iload 10 /* trailingZeros */
invokevirtual java.math.SignedMutableBigInteger.leftShift:(I)V
12: .line 2204
iload 10 /* trailingZeros */
istore 9 /* k */
end local 10 // int trailingZeros
13: .line 2208
goto 33
14: .line 2210
StackMap locals: java.math.MutableBigInteger java.math.MutableBigInteger java.math.MutableBigInteger java.math.MutableBigInteger java.math.MutableBigInteger java.math.SignedMutableBigInteger java.math.SignedMutableBigInteger java.math.MutableBigInteger java.math.SignedMutableBigInteger int
StackMap stack:
aload 3 /* f */
invokevirtual java.math.MutableBigInteger.isZero:()Z
ifeq 16
15: .line 2211
new java.lang.ArithmeticException
dup
ldc "BigInteger not invertible."
invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
athrow
16: .line 2214
StackMap locals:
StackMap stack:
aload 3 /* f */
aload 4 /* g */
invokevirtual java.math.MutableBigInteger.compare:(Ljava/math/MutableBigInteger;)I
ifge 19
17: .line 2215
aload 3 /* f */
astore 7 /* temp */
aload 4 /* g */
astore 3 /* f */
aload 7 /* temp */
astore 4 /* g */
18: .line 2216
aload 6 /* d */
astore 8 /* sTemp */
aload 5 /* c */
astore 6 /* d */
aload 8 /* sTemp */
astore 5 /* c */
19: .line 2220
StackMap locals:
StackMap stack:
aload 3 /* f */
getfield java.math.MutableBigInteger.value:[I
aload 3 /* f */
getfield java.math.MutableBigInteger.offset:I
aload 3 /* f */
getfield java.math.MutableBigInteger.intLen:I
iadd
iconst_1
isub
iaload
20: .line 2221
aload 4 /* g */
getfield java.math.MutableBigInteger.value:[I
aload 4 /* g */
getfield java.math.MutableBigInteger.offset:I
aload 4 /* g */
getfield java.math.MutableBigInteger.intLen:I
iadd
iconst_1
isub
iaload
21: .line 2220
ixor
22: .line 2221
iconst_3
23: .line 2220
iand
ifne 27
24: .line 2222
aload 3 /* f */
aload 4 /* g */
invokevirtual java.math.MutableBigInteger.subtract:(Ljava/math/MutableBigInteger;)I
pop
25: .line 2223
aload 5 /* c */
aload 6 /* d */
invokevirtual java.math.SignedMutableBigInteger.signedSubtract:(Ljava/math/SignedMutableBigInteger;)V
26: .line 2224
goto 29
27: .line 2225
StackMap locals:
StackMap stack:
aload 3 /* f */
aload 4 /* g */
invokevirtual java.math.MutableBigInteger.add:(Ljava/math/MutableBigInteger;)V
28: .line 2226
aload 5 /* c */
aload 6 /* d */
invokevirtual java.math.SignedMutableBigInteger.signedAdd:(Ljava/math/SignedMutableBigInteger;)V
29: .line 2230
StackMap locals:
StackMap stack:
aload 3 /* f */
invokevirtual java.math.MutableBigInteger.getLowestSetBit:()I
istore 10 /* trailingZeros */
start local 10 // int trailingZeros
30: .line 2231
aload 3 /* f */
iload 10 /* trailingZeros */
invokevirtual java.math.MutableBigInteger.rightShift:(I)V
31: .line 2232
aload 6 /* d */
iload 10 /* trailingZeros */
invokevirtual java.math.SignedMutableBigInteger.leftShift:(I)V
32: .line 2233
iload 9 /* k */
iload 10 /* trailingZeros */
iadd
istore 9 /* k */
end local 10 // int trailingZeros
33: .line 2208
StackMap locals:
StackMap stack:
aload 3 /* f */
invokevirtual java.math.MutableBigInteger.isOne:()Z
ifeq 14
34: .line 2236
goto 36
35: .line 2237
StackMap locals:
StackMap stack:
aload 5 /* c */
aload 2 /* p */
invokevirtual java.math.SignedMutableBigInteger.signedAdd:(Ljava/math/MutableBigInteger;)V
36: .line 2236
StackMap locals:
StackMap stack:
aload 5 /* c */
getfield java.math.SignedMutableBigInteger.sign:I
iflt 35
37: .line 2239
aload 5 /* c */
aload 2 /* p */
iload 9 /* k */
invokestatic java.math.MutableBigInteger.fixup:(Ljava/math/MutableBigInteger;Ljava/math/MutableBigInteger;I)Ljava/math/MutableBigInteger;
areturn
end local 9 // int k
end local 8 // java.math.SignedMutableBigInteger sTemp
end local 7 // java.math.MutableBigInteger temp
end local 6 // java.math.SignedMutableBigInteger d
end local 5 // java.math.SignedMutableBigInteger c
end local 4 // java.math.MutableBigInteger g
end local 3 // java.math.MutableBigInteger f
end local 2 // java.math.MutableBigInteger p
end local 1 // java.math.MutableBigInteger mod
end local 0 // java.math.MutableBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 38 0 this Ljava/math/MutableBigInteger;
0 38 1 mod Ljava/math/MutableBigInteger;
1 38 2 p Ljava/math/MutableBigInteger;
2 38 3 f Ljava/math/MutableBigInteger;
3 38 4 g Ljava/math/MutableBigInteger;
4 38 5 c Ljava/math/SignedMutableBigInteger;
5 38 6 d Ljava/math/SignedMutableBigInteger;
6 38 7 temp Ljava/math/MutableBigInteger;
7 38 8 sTemp Ljava/math/SignedMutableBigInteger;
8 38 9 k I
10 13 10 trailingZeros I
30 33 10 trailingZeros I
MethodParameters:
Name Flags
mod
static java.math.MutableBigInteger fixup(java.math.MutableBigInteger, java.math.MutableBigInteger, int);
descriptor: (Ljava/math/MutableBigInteger;Ljava/math/MutableBigInteger;I)Ljava/math/MutableBigInteger;
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=8, args_size=3
start local 0 // java.math.MutableBigInteger c
start local 1 // java.math.MutableBigInteger p
start local 2 // int k
0: .line 2249
new java.math.MutableBigInteger
dup
invokespecial java.math.MutableBigInteger.<init>:()V
astore 3 /* temp */
start local 3 // java.math.MutableBigInteger temp
1: .line 2251
aload 1 /* p */
getfield java.math.MutableBigInteger.value:[I
aload 1 /* p */
getfield java.math.MutableBigInteger.offset:I
aload 1 /* p */
getfield java.math.MutableBigInteger.intLen:I
iadd
iconst_1
isub
iaload
invokestatic java.math.MutableBigInteger.inverseMod32:(I)I
ineg
istore 4 /* r */
start local 4 // int r
2: .line 2253
iconst_0
istore 5 /* i */
start local 5 // int i
3: iload 2 /* k */
iconst_5
ishr
istore 6 /* numWords */
start local 6 // int numWords
4: goto 10
5: .line 2255
StackMap locals: java.math.MutableBigInteger java.math.MutableBigInteger int java.math.MutableBigInteger int int int
StackMap stack:
iload 4 /* r */
aload 0 /* c */
getfield java.math.MutableBigInteger.value:[I
aload 0 /* c */
getfield java.math.MutableBigInteger.offset:I
aload 0 /* c */
getfield java.math.MutableBigInteger.intLen:I
iadd
iconst_1
isub
iaload
imul
istore 7 /* v */
start local 7 // int v
6: .line 2257
aload 1 /* p */
iload 7 /* v */
aload 3 /* temp */
invokevirtual java.math.MutableBigInteger.mul:(ILjava/math/MutableBigInteger;)V
7: .line 2258
aload 0 /* c */
aload 3 /* temp */
invokevirtual java.math.MutableBigInteger.add:(Ljava/math/MutableBigInteger;)V
8: .line 2260
aload 0 /* c */
dup
getfield java.math.MutableBigInteger.intLen:I
iconst_1
isub
putfield java.math.MutableBigInteger.intLen:I
end local 7 // int v
9: .line 2253
iinc 5 /* i */ 1
StackMap locals:
StackMap stack:
10: iload 5 /* i */
iload 6 /* numWords */
if_icmplt 5
end local 6 // int numWords
end local 5 // int i
11: .line 2262
iload 2 /* k */
bipush 31
iand
istore 5 /* numBits */
start local 5 // int numBits
12: .line 2263
iload 5 /* numBits */
ifeq 20
13: .line 2265
iload 4 /* r */
aload 0 /* c */
getfield java.math.MutableBigInteger.value:[I
aload 0 /* c */
getfield java.math.MutableBigInteger.offset:I
aload 0 /* c */
getfield java.math.MutableBigInteger.intLen:I
iadd
iconst_1
isub
iaload
imul
istore 6 /* v */
start local 6 // int v
14: .line 2266
iload 6 /* v */
iconst_1
iload 5 /* numBits */
ishl
iconst_1
isub
iand
istore 6 /* v */
15: .line 2268
aload 1 /* p */
iload 6 /* v */
aload 3 /* temp */
invokevirtual java.math.MutableBigInteger.mul:(ILjava/math/MutableBigInteger;)V
16: .line 2269
aload 0 /* c */
aload 3 /* temp */
invokevirtual java.math.MutableBigInteger.add:(Ljava/math/MutableBigInteger;)V
17: .line 2271
aload 0 /* c */
iload 5 /* numBits */
invokevirtual java.math.MutableBigInteger.rightShift:(I)V
end local 6 // int v
18: .line 2275
goto 20
19: .line 2276
StackMap locals:
StackMap stack:
aload 0 /* c */
aload 1 /* p */
invokevirtual java.math.MutableBigInteger.subtract:(Ljava/math/MutableBigInteger;)I
pop
20: .line 2275
StackMap locals:
StackMap stack:
aload 0 /* c */
aload 1 /* p */
invokevirtual java.math.MutableBigInteger.compare:(Ljava/math/MutableBigInteger;)I
ifge 19
21: .line 2278
aload 0 /* c */
areturn
end local 5 // int numBits
end local 4 // int r
end local 3 // java.math.MutableBigInteger temp
end local 2 // int k
end local 1 // java.math.MutableBigInteger p
end local 0 // java.math.MutableBigInteger c
LocalVariableTable:
Start End Slot Name Signature
0 22 0 c Ljava/math/MutableBigInteger;
0 22 1 p Ljava/math/MutableBigInteger;
0 22 2 k I
1 22 3 temp Ljava/math/MutableBigInteger;
2 22 4 r I
3 11 5 i I
4 11 6 numWords I
6 9 7 v I
12 22 5 numBits I
14 18 6 v I
MethodParameters:
Name Flags
c
p
k
java.math.MutableBigInteger euclidModInverse(int);
descriptor: (I)Ljava/math/MutableBigInteger;
flags: (0x0000)
Code:
stack=3, locals=11, args_size=2
start local 0 // java.math.MutableBigInteger this
start local 1 // int k
0: .line 2286
new java.math.MutableBigInteger
dup
iconst_1
invokespecial java.math.MutableBigInteger.<init>:(I)V
astore 2 /* b */
start local 2 // java.math.MutableBigInteger b
1: .line 2287
aload 2 /* b */
iload 1 /* k */
invokevirtual java.math.MutableBigInteger.leftShift:(I)V
2: .line 2288
new java.math.MutableBigInteger
dup
aload 2 /* b */
invokespecial java.math.MutableBigInteger.<init>:(Ljava/math/MutableBigInteger;)V
astore 3 /* mod */
start local 3 // java.math.MutableBigInteger mod
3: .line 2290
new java.math.MutableBigInteger
dup
aload 0 /* this */
invokespecial java.math.MutableBigInteger.<init>:(Ljava/math/MutableBigInteger;)V
astore 4 /* a */
start local 4 // java.math.MutableBigInteger a
4: .line 2291
new java.math.MutableBigInteger
dup
invokespecial java.math.MutableBigInteger.<init>:()V
astore 5 /* q */
start local 5 // java.math.MutableBigInteger q
5: .line 2292
aload 2 /* b */
aload 4 /* a */
aload 5 /* q */
invokevirtual java.math.MutableBigInteger.divide:(Ljava/math/MutableBigInteger;Ljava/math/MutableBigInteger;)Ljava/math/MutableBigInteger;
astore 6 /* r */
start local 6 // java.math.MutableBigInteger r
6: .line 2294
aload 2 /* b */
astore 7 /* swapper */
start local 7 // java.math.MutableBigInteger swapper
7: .line 2296
aload 6 /* r */
astore 2 /* b */
8: .line 2297
aload 7 /* swapper */
astore 6 /* r */
9: .line 2299
new java.math.MutableBigInteger
dup
aload 5 /* q */
invokespecial java.math.MutableBigInteger.<init>:(Ljava/math/MutableBigInteger;)V
astore 8 /* t1 */
start local 8 // java.math.MutableBigInteger t1
10: .line 2300
new java.math.MutableBigInteger
dup
iconst_1
invokespecial java.math.MutableBigInteger.<init>:(I)V
astore 9 /* t0 */
start local 9 // java.math.MutableBigInteger t0
11: .line 2301
new java.math.MutableBigInteger
dup
invokespecial java.math.MutableBigInteger.<init>:()V
astore 10 /* temp */
start local 10 // java.math.MutableBigInteger temp
12: .line 2303
goto 37
13: .line 2304
StackMap locals: java.math.MutableBigInteger int java.math.MutableBigInteger java.math.MutableBigInteger java.math.MutableBigInteger java.math.MutableBigInteger java.math.MutableBigInteger java.math.MutableBigInteger java.math.MutableBigInteger java.math.MutableBigInteger java.math.MutableBigInteger
StackMap stack:
aload 4 /* a */
aload 2 /* b */
aload 5 /* q */
invokevirtual java.math.MutableBigInteger.divide:(Ljava/math/MutableBigInteger;Ljava/math/MutableBigInteger;)Ljava/math/MutableBigInteger;
astore 6 /* r */
14: .line 2306
aload 6 /* r */
getfield java.math.MutableBigInteger.intLen:I
ifne 16
15: .line 2307
new java.lang.ArithmeticException
dup
ldc "BigInteger not invertible."
invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
athrow
16: .line 2309
StackMap locals:
StackMap stack:
aload 6 /* r */
astore 7 /* swapper */
17: .line 2310
aload 7 /* swapper */
astore 4 /* a */
18: .line 2312
aload 5 /* q */
getfield java.math.MutableBigInteger.intLen:I
iconst_1
if_icmpne 20
19: .line 2313
aload 8 /* t1 */
aload 5 /* q */
getfield java.math.MutableBigInteger.value:[I
aload 5 /* q */
getfield java.math.MutableBigInteger.offset:I
iaload
aload 10 /* temp */
invokevirtual java.math.MutableBigInteger.mul:(ILjava/math/MutableBigInteger;)V
goto 21
20: .line 2315
StackMap locals:
StackMap stack:
aload 5 /* q */
aload 8 /* t1 */
aload 10 /* temp */
invokevirtual java.math.MutableBigInteger.multiply:(Ljava/math/MutableBigInteger;Ljava/math/MutableBigInteger;)V
21: .line 2316
StackMap locals:
StackMap stack:
aload 5 /* q */
astore 7 /* swapper */
22: .line 2317
aload 10 /* temp */
astore 5 /* q */
23: .line 2318
aload 7 /* swapper */
astore 10 /* temp */
24: .line 2319
aload 9 /* t0 */
aload 5 /* q */
invokevirtual java.math.MutableBigInteger.add:(Ljava/math/MutableBigInteger;)V
25: .line 2321
aload 4 /* a */
invokevirtual java.math.MutableBigInteger.isOne:()Z
ifeq 27
26: .line 2322
aload 9 /* t0 */
areturn
27: .line 2324
StackMap locals:
StackMap stack:
aload 2 /* b */
aload 4 /* a */
aload 5 /* q */
invokevirtual java.math.MutableBigInteger.divide:(Ljava/math/MutableBigInteger;Ljava/math/MutableBigInteger;)Ljava/math/MutableBigInteger;
astore 6 /* r */
28: .line 2326
aload 6 /* r */
getfield java.math.MutableBigInteger.intLen:I
ifne 30
29: .line 2327
new java.lang.ArithmeticException
dup
ldc "BigInteger not invertible."
invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
athrow
30: .line 2329
StackMap locals:
StackMap stack:
aload 2 /* b */
astore 7 /* swapper */
31: .line 2330
aload 6 /* r */
astore 2 /* b */
32: .line 2332
aload 5 /* q */
getfield java.math.MutableBigInteger.intLen:I
iconst_1
if_icmpne 34
33: .line 2333
aload 9 /* t0 */
aload 5 /* q */
getfield java.math.MutableBigInteger.value:[I
aload 5 /* q */
getfield java.math.MutableBigInteger.offset:I
iaload
aload 10 /* temp */
invokevirtual java.math.MutableBigInteger.mul:(ILjava/math/MutableBigInteger;)V
goto 35
34: .line 2335
StackMap locals:
StackMap stack:
aload 5 /* q */
aload 9 /* t0 */
aload 10 /* temp */
invokevirtual java.math.MutableBigInteger.multiply:(Ljava/math/MutableBigInteger;Ljava/math/MutableBigInteger;)V
35: .line 2336
StackMap locals:
StackMap stack:
aload 5 /* q */
astore 7 /* swapper */
aload 10 /* temp */
astore 5 /* q */
aload 7 /* swapper */
astore 10 /* temp */
36: .line 2338
aload 8 /* t1 */
aload 5 /* q */
invokevirtual java.math.MutableBigInteger.add:(Ljava/math/MutableBigInteger;)V
37: .line 2303
StackMap locals:
StackMap stack:
aload 2 /* b */
invokevirtual java.math.MutableBigInteger.isOne:()Z
ifeq 13
38: .line 2340
aload 3 /* mod */
aload 8 /* t1 */
invokevirtual java.math.MutableBigInteger.subtract:(Ljava/math/MutableBigInteger;)I
pop
39: .line 2341
aload 3 /* mod */
areturn
end local 10 // java.math.MutableBigInteger temp
end local 9 // java.math.MutableBigInteger t0
end local 8 // java.math.MutableBigInteger t1
end local 7 // java.math.MutableBigInteger swapper
end local 6 // java.math.MutableBigInteger r
end local 5 // java.math.MutableBigInteger q
end local 4 // java.math.MutableBigInteger a
end local 3 // java.math.MutableBigInteger mod
end local 2 // java.math.MutableBigInteger b
end local 1 // int k
end local 0 // java.math.MutableBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 40 0 this Ljava/math/MutableBigInteger;
0 40 1 k I
1 40 2 b Ljava/math/MutableBigInteger;
3 40 3 mod Ljava/math/MutableBigInteger;
4 40 4 a Ljava/math/MutableBigInteger;
5 40 5 q Ljava/math/MutableBigInteger;
6 40 6 r Ljava/math/MutableBigInteger;
7 40 7 swapper Ljava/math/MutableBigInteger;
10 40 8 t1 Ljava/math/MutableBigInteger;
11 40 9 t0 Ljava/math/MutableBigInteger;
12 40 10 temp Ljava/math/MutableBigInteger;
MethodParameters:
Name Flags
k
}
SourceFile: "MutableBigInteger.java"