public class org.bouncycastle.math.ec.custom.sec.SecP256R1Field
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.bouncycastle.math.ec.custom.sec.SecP256R1Field
super_class: java.lang.Object
{
private static final long M;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 4294967295
static final int[] P;
descriptor: [I
flags: (0x0018) ACC_STATIC, ACC_FINAL
static final int[] PExt;
descriptor: [I
flags: (0x0018) ACC_STATIC, ACC_FINAL
private static final int P7;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: -1
private static final int PExt15s1;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2147483647
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=0, args_size=0
0: .line 13
bipush 8
newarray 10
dup
iconst_0
iconst_m1
iastore
dup
iconst_1
iconst_m1
iastore
dup
iconst_2
iconst_m1
iastore
dup
bipush 6
1: .line 14
iconst_1
iastore
dup
bipush 7
iconst_m1
iastore
2: .line 13
putstatic org.bouncycastle.math.ec.custom.sec.SecP256R1Field.P:[I
3: .line 15
bipush 16
newarray 10
dup
iconst_0
iconst_1
iastore
dup
iconst_3
bipush -2
iastore
dup
iconst_4
iconst_m1
iastore
dup
iconst_5
4: .line 16
iconst_m1
iastore
dup
bipush 6
bipush -2
iastore
dup
bipush 7
iconst_1
iastore
dup
bipush 8
bipush -2
iastore
dup
bipush 9
iconst_1
iastore
dup
bipush 10
bipush -2
iastore
dup
bipush 11
iconst_1
iastore
dup
bipush 12
iconst_1
iastore
dup
bipush 13
bipush -2
iastore
dup
bipush 14
5: .line 17
iconst_2
iastore
dup
bipush 15
bipush -2
iastore
6: .line 15
putstatic org.bouncycastle.math.ec.custom.sec.SecP256R1Field.PExt:[I
7: .line 19
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 // org.bouncycastle.math.ec.custom.sec.SecP256R1Field this
0: .line 8
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
return
end local 0 // org.bouncycastle.math.ec.custom.sec.SecP256R1Field this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/math/ec/custom/sec/SecP256R1Field;
public static void add(int[], int[], int[]);
descriptor: ([I[I[I)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=4, args_size=3
start local 0 // int[] x
start local 1 // int[] y
start local 2 // int[] z
0: .line 23
aload 0 /* x */
aload 1 /* y */
aload 2 /* z */
invokestatic org.bouncycastle.math.raw.Nat256.add:([I[I[I)I
istore 3 /* c */
start local 3 // int c
1: .line 24
iload 3 /* c */
ifne 2
aload 2 /* z */
bipush 7
iaload
iconst_m1
if_icmpne 3
aload 2 /* z */
getstatic org.bouncycastle.math.ec.custom.sec.SecP256R1Field.P:[I
invokestatic org.bouncycastle.math.raw.Nat256.gte:([I[I)Z
ifeq 3
2: .line 26
StackMap locals: int
StackMap stack:
aload 2 /* z */
invokestatic org.bouncycastle.math.ec.custom.sec.SecP256R1Field.addPInvTo:([I)V
3: .line 28
StackMap locals:
StackMap stack:
return
end local 3 // int c
end local 2 // int[] z
end local 1 // int[] y
end local 0 // int[] x
LocalVariableTable:
Start End Slot Name Signature
0 4 0 x [I
0 4 1 y [I
0 4 2 z [I
1 4 3 c I
MethodParameters:
Name Flags
x
y
z
public static void addExt(int[], int[], int[]);
descriptor: ([I[I[I)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=4, args_size=3
start local 0 // int[] xx
start local 1 // int[] yy
start local 2 // int[] zz
0: .line 32
bipush 16
aload 0 /* xx */
aload 1 /* yy */
aload 2 /* zz */
invokestatic org.bouncycastle.math.raw.Nat.add:(I[I[I[I)I
istore 3 /* c */
start local 3 // int c
1: .line 33
iload 3 /* c */
ifne 2
aload 2 /* zz */
bipush 15
iaload
iconst_1
iushr
ldc 2147483647
if_icmplt 3
bipush 16
aload 2 /* zz */
getstatic org.bouncycastle.math.ec.custom.sec.SecP256R1Field.PExt:[I
invokestatic org.bouncycastle.math.raw.Nat.gte:(I[I[I)Z
ifeq 3
2: .line 35
StackMap locals: int
StackMap stack:
bipush 16
getstatic org.bouncycastle.math.ec.custom.sec.SecP256R1Field.PExt:[I
aload 2 /* zz */
invokestatic org.bouncycastle.math.raw.Nat.subFrom:(I[I[I)I
pop
3: .line 37
StackMap locals:
StackMap stack:
return
end local 3 // int c
end local 2 // int[] zz
end local 1 // int[] yy
end local 0 // int[] xx
LocalVariableTable:
Start End Slot Name Signature
0 4 0 xx [I
0 4 1 yy [I
0 4 2 zz [I
1 4 3 c I
MethodParameters:
Name Flags
xx
yy
zz
public static void addOne(int[], int[]);
descriptor: ([I[I)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=3, args_size=2
start local 0 // int[] x
start local 1 // int[] z
0: .line 41
bipush 8
aload 0 /* x */
aload 1 /* z */
invokestatic org.bouncycastle.math.raw.Nat.inc:(I[I[I)I
istore 2 /* c */
start local 2 // int c
1: .line 42
iload 2 /* c */
ifne 2
aload 1 /* z */
bipush 7
iaload
iconst_m1
if_icmpne 3
aload 1 /* z */
getstatic org.bouncycastle.math.ec.custom.sec.SecP256R1Field.P:[I
invokestatic org.bouncycastle.math.raw.Nat256.gte:([I[I)Z
ifeq 3
2: .line 44
StackMap locals: int
StackMap stack:
aload 1 /* z */
invokestatic org.bouncycastle.math.ec.custom.sec.SecP256R1Field.addPInvTo:([I)V
3: .line 46
StackMap locals:
StackMap stack:
return
end local 2 // int c
end local 1 // int[] z
end local 0 // int[] x
LocalVariableTable:
Start End Slot Name Signature
0 4 0 x [I
0 4 1 z [I
1 4 2 c I
MethodParameters:
Name Flags
x
z
public static int[] fromBigInteger(java.math.BigInteger);
descriptor: (Ljava/math/BigInteger;)[I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 // java.math.BigInteger x
0: .line 50
aload 0 /* x */
invokestatic org.bouncycastle.math.raw.Nat256.fromBigInteger:(Ljava/math/BigInteger;)[I
astore 1 /* z */
start local 1 // int[] z
1: .line 51
aload 1 /* z */
bipush 7
iaload
iconst_m1
if_icmpne 3
aload 1 /* z */
getstatic org.bouncycastle.math.ec.custom.sec.SecP256R1Field.P:[I
invokestatic org.bouncycastle.math.raw.Nat256.gte:([I[I)Z
ifeq 3
2: .line 53
getstatic org.bouncycastle.math.ec.custom.sec.SecP256R1Field.P:[I
aload 1 /* z */
invokestatic org.bouncycastle.math.raw.Nat256.subFrom:([I[I)I
pop
3: .line 55
StackMap locals: int[]
StackMap stack:
aload 1 /* z */
areturn
end local 1 // int[] z
end local 0 // java.math.BigInteger x
LocalVariableTable:
Start End Slot Name Signature
0 4 0 x Ljava/math/BigInteger;
1 4 1 z [I
MethodParameters:
Name Flags
x
public static void half(int[], int[]);
descriptor: ([I[I)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=3, args_size=2
start local 0 // int[] x
start local 1 // int[] z
0: .line 60
aload 0 /* x */
iconst_0
iaload
iconst_1
iand
ifne 3
1: .line 62
bipush 8
aload 0 /* x */
iconst_0
aload 1 /* z */
invokestatic org.bouncycastle.math.raw.Nat.shiftDownBit:(I[II[I)I
pop
2: .line 63
goto 5
3: .line 66
StackMap locals:
StackMap stack:
aload 0 /* x */
getstatic org.bouncycastle.math.ec.custom.sec.SecP256R1Field.P:[I
aload 1 /* z */
invokestatic org.bouncycastle.math.raw.Nat256.add:([I[I[I)I
istore 2 /* c */
start local 2 // int c
4: .line 67
bipush 8
aload 1 /* z */
iload 2 /* c */
invokestatic org.bouncycastle.math.raw.Nat.shiftDownBit:(I[II)I
pop
end local 2 // int c
5: .line 69
StackMap locals:
StackMap stack:
return
end local 1 // int[] z
end local 0 // int[] x
LocalVariableTable:
Start End Slot Name Signature
0 6 0 x [I
0 6 1 z [I
4 5 2 c I
MethodParameters:
Name Flags
x
z
public static void multiply(int[], int[], int[]);
descriptor: ([I[I[I)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=4, args_size=3
start local 0 // int[] x
start local 1 // int[] y
start local 2 // int[] z
0: .line 73
invokestatic org.bouncycastle.math.raw.Nat256.createExt:()[I
astore 3 /* tt */
start local 3 // int[] tt
1: .line 74
aload 0 /* x */
aload 1 /* y */
aload 3 /* tt */
invokestatic org.bouncycastle.math.raw.Nat256.mul:([I[I[I)V
2: .line 75
aload 3 /* tt */
aload 2 /* z */
invokestatic org.bouncycastle.math.ec.custom.sec.SecP256R1Field.reduce:([I[I)V
3: .line 76
return
end local 3 // int[] tt
end local 2 // int[] z
end local 1 // int[] y
end local 0 // int[] x
LocalVariableTable:
Start End Slot Name Signature
0 4 0 x [I
0 4 1 y [I
0 4 2 z [I
1 4 3 tt [I
MethodParameters:
Name Flags
x
y
z
public static void multiplyAddToExt(int[], int[], int[]);
descriptor: ([I[I[I)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=4, args_size=3
start local 0 // int[] x
start local 1 // int[] y
start local 2 // int[] zz
0: .line 80
aload 0 /* x */
aload 1 /* y */
aload 2 /* zz */
invokestatic org.bouncycastle.math.raw.Nat256.mulAddTo:([I[I[I)I
istore 3 /* c */
start local 3 // int c
1: .line 81
iload 3 /* c */
ifne 2
aload 2 /* zz */
bipush 15
iaload
iconst_1
iushr
ldc 2147483647
if_icmplt 3
bipush 16
aload 2 /* zz */
getstatic org.bouncycastle.math.ec.custom.sec.SecP256R1Field.PExt:[I
invokestatic org.bouncycastle.math.raw.Nat.gte:(I[I[I)Z
ifeq 3
2: .line 83
StackMap locals: int
StackMap stack:
bipush 16
getstatic org.bouncycastle.math.ec.custom.sec.SecP256R1Field.PExt:[I
aload 2 /* zz */
invokestatic org.bouncycastle.math.raw.Nat.subFrom:(I[I[I)I
pop
3: .line 85
StackMap locals:
StackMap stack:
return
end local 3 // int c
end local 2 // int[] zz
end local 1 // int[] y
end local 0 // int[] x
LocalVariableTable:
Start End Slot Name Signature
0 4 0 x [I
0 4 1 y [I
0 4 2 zz [I
1 4 3 c I
MethodParameters:
Name Flags
x
y
zz
public static void negate(int[], int[]);
descriptor: ([I[I)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=2, args_size=2
start local 0 // int[] x
start local 1 // int[] z
0: .line 89
aload 0 /* x */
invokestatic org.bouncycastle.math.raw.Nat256.isZero:([I)Z
ifeq 3
1: .line 91
aload 1 /* z */
invokestatic org.bouncycastle.math.raw.Nat256.zero:([I)V
2: .line 92
goto 4
3: .line 95
StackMap locals:
StackMap stack:
getstatic org.bouncycastle.math.ec.custom.sec.SecP256R1Field.P:[I
aload 0 /* x */
aload 1 /* z */
invokestatic org.bouncycastle.math.raw.Nat256.sub:([I[I[I)I
pop
4: .line 97
StackMap locals:
StackMap stack:
return
end local 1 // int[] z
end local 0 // int[] x
LocalVariableTable:
Start End Slot Name Signature
0 5 0 x [I
0 5 1 z [I
MethodParameters:
Name Flags
x
z
public static void reduce(int[], int[]);
descriptor: ([I[I)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=7, locals=36, args_size=2
start local 0 // int[] xx
start local 1 // int[] z
0: .line 101
aload 0 /* xx */
bipush 8
iaload
i2l
ldc 4294967295
land
lstore 2 /* xx08 */
start local 2 // long xx08
1: aload 0 /* xx */
bipush 9
iaload
i2l
ldc 4294967295
land
lstore 4 /* xx09 */
start local 4 // long xx09
2: aload 0 /* xx */
bipush 10
iaload
i2l
ldc 4294967295
land
lstore 6 /* xx10 */
start local 6 // long xx10
3: aload 0 /* xx */
bipush 11
iaload
i2l
ldc 4294967295
land
lstore 8 /* xx11 */
start local 8 // long xx11
4: .line 102
aload 0 /* xx */
bipush 12
iaload
i2l
ldc 4294967295
land
lstore 10 /* xx12 */
start local 10 // long xx12
5: aload 0 /* xx */
bipush 13
iaload
i2l
ldc 4294967295
land
lstore 12 /* xx13 */
start local 12 // long xx13
6: aload 0 /* xx */
bipush 14
iaload
i2l
ldc 4294967295
land
lstore 14 /* xx14 */
start local 14 // long xx14
7: aload 0 /* xx */
bipush 15
iaload
i2l
ldc 4294967295
land
lstore 16 /* xx15 */
start local 16 // long xx15
8: .line 106
lload 2 /* xx08 */
ldc 6
lsub
lstore 2 /* xx08 */
9: .line 108
lload 2 /* xx08 */
lload 4 /* xx09 */
ladd
lstore 18 /* t0 */
start local 18 // long t0
10: .line 109
lload 4 /* xx09 */
lload 6 /* xx10 */
ladd
lstore 20 /* t1 */
start local 20 // long t1
11: .line 110
lload 6 /* xx10 */
lload 8 /* xx11 */
ladd
lload 16 /* xx15 */
lsub
lstore 22 /* t2 */
start local 22 // long t2
12: .line 111
lload 8 /* xx11 */
lload 10 /* xx12 */
ladd
lstore 24 /* t3 */
start local 24 // long t3
13: .line 112
lload 10 /* xx12 */
lload 12 /* xx13 */
ladd
lstore 26 /* t4 */
start local 26 // long t4
14: .line 113
lload 12 /* xx13 */
lload 14 /* xx14 */
ladd
lstore 28 /* t5 */
start local 28 // long t5
15: .line 114
lload 14 /* xx14 */
lload 16 /* xx15 */
ladd
lstore 30 /* t6 */
start local 30 // long t6
16: .line 115
lload 28 /* t5 */
lload 18 /* t0 */
lsub
lstore 32 /* t7 */
start local 32 // long t7
17: .line 117
lconst_0
lstore 34 /* cc */
start local 34 // long cc
18: .line 118
lload 34 /* cc */
aload 0 /* xx */
iconst_0
iaload
i2l
ldc 4294967295
land
lload 24 /* t3 */
lsub
lload 32 /* t7 */
lsub
ladd
lstore 34 /* cc */
19: .line 119
aload 1 /* z */
iconst_0
lload 34 /* cc */
l2i
iastore
20: .line 120
lload 34 /* cc */
bipush 32
lshr
lstore 34 /* cc */
21: .line 121
lload 34 /* cc */
aload 0 /* xx */
iconst_1
iaload
i2l
ldc 4294967295
land
lload 20 /* t1 */
ladd
lload 26 /* t4 */
lsub
lload 30 /* t6 */
lsub
ladd
lstore 34 /* cc */
22: .line 122
aload 1 /* z */
iconst_1
lload 34 /* cc */
l2i
iastore
23: .line 123
lload 34 /* cc */
bipush 32
lshr
lstore 34 /* cc */
24: .line 124
lload 34 /* cc */
aload 0 /* xx */
iconst_2
iaload
i2l
ldc 4294967295
land
lload 22 /* t2 */
ladd
lload 28 /* t5 */
lsub
ladd
lstore 34 /* cc */
25: .line 125
aload 1 /* z */
iconst_2
lload 34 /* cc */
l2i
iastore
26: .line 126
lload 34 /* cc */
bipush 32
lshr
lstore 34 /* cc */
27: .line 127
lload 34 /* cc */
aload 0 /* xx */
iconst_3
iaload
i2l
ldc 4294967295
land
lload 24 /* t3 */
iconst_1
lshl
ladd
lload 32 /* t7 */
ladd
lload 30 /* t6 */
lsub
ladd
lstore 34 /* cc */
28: .line 128
aload 1 /* z */
iconst_3
lload 34 /* cc */
l2i
iastore
29: .line 129
lload 34 /* cc */
bipush 32
lshr
lstore 34 /* cc */
30: .line 130
lload 34 /* cc */
aload 0 /* xx */
iconst_4
iaload
i2l
ldc 4294967295
land
lload 26 /* t4 */
iconst_1
lshl
ladd
lload 14 /* xx14 */
ladd
lload 20 /* t1 */
lsub
ladd
lstore 34 /* cc */
31: .line 131
aload 1 /* z */
iconst_4
lload 34 /* cc */
l2i
iastore
32: .line 132
lload 34 /* cc */
bipush 32
lshr
lstore 34 /* cc */
33: .line 133
lload 34 /* cc */
aload 0 /* xx */
iconst_5
iaload
i2l
ldc 4294967295
land
lload 28 /* t5 */
iconst_1
lshl
ladd
lload 22 /* t2 */
lsub
ladd
lstore 34 /* cc */
34: .line 134
aload 1 /* z */
iconst_5
lload 34 /* cc */
l2i
iastore
35: .line 135
lload 34 /* cc */
bipush 32
lshr
lstore 34 /* cc */
36: .line 136
lload 34 /* cc */
aload 0 /* xx */
bipush 6
iaload
i2l
ldc 4294967295
land
lload 30 /* t6 */
iconst_1
lshl
ladd
lload 32 /* t7 */
ladd
ladd
lstore 34 /* cc */
37: .line 137
aload 1 /* z */
bipush 6
lload 34 /* cc */
l2i
iastore
38: .line 138
lload 34 /* cc */
bipush 32
lshr
lstore 34 /* cc */
39: .line 139
lload 34 /* cc */
aload 0 /* xx */
bipush 7
iaload
i2l
ldc 4294967295
land
lload 16 /* xx15 */
iconst_1
lshl
ladd
lload 2 /* xx08 */
ladd
lload 22 /* t2 */
lsub
lload 26 /* t4 */
lsub
ladd
lstore 34 /* cc */
40: .line 140
aload 1 /* z */
bipush 7
lload 34 /* cc */
l2i
iastore
41: .line 141
lload 34 /* cc */
bipush 32
lshr
lstore 34 /* cc */
42: .line 142
lload 34 /* cc */
ldc 6
ladd
lstore 34 /* cc */
43: .line 146
lload 34 /* cc */
l2i
aload 1 /* z */
invokestatic org.bouncycastle.math.ec.custom.sec.SecP256R1Field.reduce32:(I[I)V
44: .line 147
return
end local 34 // long cc
end local 32 // long t7
end local 30 // long t6
end local 28 // long t5
end local 26 // long t4
end local 24 // long t3
end local 22 // long t2
end local 20 // long t1
end local 18 // long t0
end local 16 // long xx15
end local 14 // long xx14
end local 12 // long xx13
end local 10 // long xx12
end local 8 // long xx11
end local 6 // long xx10
end local 4 // long xx09
end local 2 // long xx08
end local 1 // int[] z
end local 0 // int[] xx
LocalVariableTable:
Start End Slot Name Signature
0 45 0 xx [I
0 45 1 z [I
1 45 2 xx08 J
2 45 4 xx09 J
3 45 6 xx10 J
4 45 8 xx11 J
5 45 10 xx12 J
6 45 12 xx13 J
7 45 14 xx14 J
8 45 16 xx15 J
10 45 18 t0 J
11 45 20 t1 J
12 45 22 t2 J
13 45 24 t3 J
14 45 26 t4 J
15 45 28 t5 J
16 45 30 t6 J
17 45 32 t7 J
18 45 34 cc J
MethodParameters:
Name Flags
xx
z
public static void reduce32(int, int[]);
descriptor: (I[I)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=6, args_size=2
start local 0 // int x
start local 1 // int[] z
0: .line 151
lconst_0
lstore 2 /* cc */
start local 2 // long cc
1: .line 153
iload 0 /* x */
ifeq 29
2: .line 155
iload 0 /* x */
i2l
ldc 4294967295
land
lstore 4 /* xx08 */
start local 4 // long xx08
3: .line 157
lload 2 /* cc */
aload 1 /* z */
iconst_0
iaload
i2l
ldc 4294967295
land
lload 4 /* xx08 */
ladd
ladd
lstore 2 /* cc */
4: .line 158
aload 1 /* z */
iconst_0
lload 2 /* cc */
l2i
iastore
5: .line 159
lload 2 /* cc */
bipush 32
lshr
lstore 2 /* cc */
6: .line 160
lload 2 /* cc */
lconst_0
lcmp
ifeq 13
7: .line 162
lload 2 /* cc */
aload 1 /* z */
iconst_1
iaload
i2l
ldc 4294967295
land
ladd
lstore 2 /* cc */
8: .line 163
aload 1 /* z */
iconst_1
lload 2 /* cc */
l2i
iastore
9: .line 164
lload 2 /* cc */
bipush 32
lshr
lstore 2 /* cc */
10: .line 165
lload 2 /* cc */
aload 1 /* z */
iconst_2
iaload
i2l
ldc 4294967295
land
ladd
lstore 2 /* cc */
11: .line 166
aload 1 /* z */
iconst_2
lload 2 /* cc */
l2i
iastore
12: .line 167
lload 2 /* cc */
bipush 32
lshr
lstore 2 /* cc */
13: .line 169
StackMap locals: long long
StackMap stack:
lload 2 /* cc */
aload 1 /* z */
iconst_3
iaload
i2l
ldc 4294967295
land
lload 4 /* xx08 */
lsub
ladd
lstore 2 /* cc */
14: .line 170
aload 1 /* z */
iconst_3
lload 2 /* cc */
l2i
iastore
15: .line 171
lload 2 /* cc */
bipush 32
lshr
lstore 2 /* cc */
16: .line 172
lload 2 /* cc */
lconst_0
lcmp
ifeq 23
17: .line 174
lload 2 /* cc */
aload 1 /* z */
iconst_4
iaload
i2l
ldc 4294967295
land
ladd
lstore 2 /* cc */
18: .line 175
aload 1 /* z */
iconst_4
lload 2 /* cc */
l2i
iastore
19: .line 176
lload 2 /* cc */
bipush 32
lshr
lstore 2 /* cc */
20: .line 177
lload 2 /* cc */
aload 1 /* z */
iconst_5
iaload
i2l
ldc 4294967295
land
ladd
lstore 2 /* cc */
21: .line 178
aload 1 /* z */
iconst_5
lload 2 /* cc */
l2i
iastore
22: .line 179
lload 2 /* cc */
bipush 32
lshr
lstore 2 /* cc */
23: .line 181
StackMap locals:
StackMap stack:
lload 2 /* cc */
aload 1 /* z */
bipush 6
iaload
i2l
ldc 4294967295
land
lload 4 /* xx08 */
lsub
ladd
lstore 2 /* cc */
24: .line 182
aload 1 /* z */
bipush 6
lload 2 /* cc */
l2i
iastore
25: .line 183
lload 2 /* cc */
bipush 32
lshr
lstore 2 /* cc */
26: .line 184
lload 2 /* cc */
aload 1 /* z */
bipush 7
iaload
i2l
ldc 4294967295
land
lload 4 /* xx08 */
ladd
ladd
lstore 2 /* cc */
27: .line 185
aload 1 /* z */
bipush 7
lload 2 /* cc */
l2i
iastore
28: .line 186
lload 2 /* cc */
bipush 32
lshr
lstore 2 /* cc */
end local 4 // long xx08
29: .line 191
StackMap locals:
StackMap stack:
lload 2 /* cc */
lconst_0
lcmp
ifne 30
aload 1 /* z */
bipush 7
iaload
iconst_m1
if_icmpne 31
aload 1 /* z */
getstatic org.bouncycastle.math.ec.custom.sec.SecP256R1Field.P:[I
invokestatic org.bouncycastle.math.raw.Nat256.gte:([I[I)Z
ifeq 31
30: .line 193
StackMap locals:
StackMap stack:
aload 1 /* z */
invokestatic org.bouncycastle.math.ec.custom.sec.SecP256R1Field.addPInvTo:([I)V
31: .line 195
StackMap locals:
StackMap stack:
return
end local 2 // long cc
end local 1 // int[] z
end local 0 // int x
LocalVariableTable:
Start End Slot Name Signature
0 32 0 x I
0 32 1 z [I
1 32 2 cc J
3 29 4 xx08 J
MethodParameters:
Name Flags
x
z
public static void square(int[], int[]);
descriptor: ([I[I)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=3, args_size=2
start local 0 // int[] x
start local 1 // int[] z
0: .line 199
invokestatic org.bouncycastle.math.raw.Nat256.createExt:()[I
astore 2 /* tt */
start local 2 // int[] tt
1: .line 200
aload 0 /* x */
aload 2 /* tt */
invokestatic org.bouncycastle.math.raw.Nat256.square:([I[I)V
2: .line 201
aload 2 /* tt */
aload 1 /* z */
invokestatic org.bouncycastle.math.ec.custom.sec.SecP256R1Field.reduce:([I[I)V
3: .line 202
return
end local 2 // int[] tt
end local 1 // int[] z
end local 0 // int[] x
LocalVariableTable:
Start End Slot Name Signature
0 4 0 x [I
0 4 1 z [I
1 4 2 tt [I
MethodParameters:
Name Flags
x
z
public static void squareN(int[], int, int[]);
descriptor: ([II[I)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=4, args_size=3
start local 0 // int[] x
start local 1 // int n
start local 2 // int[] z
0: .line 208
invokestatic org.bouncycastle.math.raw.Nat256.createExt:()[I
astore 3 /* tt */
start local 3 // int[] tt
1: .line 209
aload 0 /* x */
aload 3 /* tt */
invokestatic org.bouncycastle.math.raw.Nat256.square:([I[I)V
2: .line 210
aload 3 /* tt */
aload 2 /* z */
invokestatic org.bouncycastle.math.ec.custom.sec.SecP256R1Field.reduce:([I[I)V
3: .line 212
goto 6
4: .line 214
StackMap locals: int[]
StackMap stack:
aload 2 /* z */
aload 3 /* tt */
invokestatic org.bouncycastle.math.raw.Nat256.square:([I[I)V
5: .line 215
aload 3 /* tt */
aload 2 /* z */
invokestatic org.bouncycastle.math.ec.custom.sec.SecP256R1Field.reduce:([I[I)V
6: .line 212
StackMap locals:
StackMap stack:
iinc 1 /* n */ -1
iload 1 /* n */
ifgt 4
7: .line 217
return
end local 3 // int[] tt
end local 2 // int[] z
end local 1 // int n
end local 0 // int[] x
LocalVariableTable:
Start End Slot Name Signature
0 8 0 x [I
0 8 1 n I
0 8 2 z [I
1 8 3 tt [I
MethodParameters:
Name Flags
x
n
z
public static void subtract(int[], int[], int[]);
descriptor: ([I[I[I)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=4, args_size=3
start local 0 // int[] x
start local 1 // int[] y
start local 2 // int[] z
0: .line 221
aload 0 /* x */
aload 1 /* y */
aload 2 /* z */
invokestatic org.bouncycastle.math.raw.Nat256.sub:([I[I[I)I
istore 3 /* c */
start local 3 // int c
1: .line 222
iload 3 /* c */
ifeq 3
2: .line 224
aload 2 /* z */
invokestatic org.bouncycastle.math.ec.custom.sec.SecP256R1Field.subPInvFrom:([I)V
3: .line 226
StackMap locals: int
StackMap stack:
return
end local 3 // int c
end local 2 // int[] z
end local 1 // int[] y
end local 0 // int[] x
LocalVariableTable:
Start End Slot Name Signature
0 4 0 x [I
0 4 1 y [I
0 4 2 z [I
1 4 3 c I
MethodParameters:
Name Flags
x
y
z
public static void subtractExt(int[], int[], int[]);
descriptor: ([I[I[I)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=4, args_size=3
start local 0 // int[] xx
start local 1 // int[] yy
start local 2 // int[] zz
0: .line 230
bipush 16
aload 0 /* xx */
aload 1 /* yy */
aload 2 /* zz */
invokestatic org.bouncycastle.math.raw.Nat.sub:(I[I[I[I)I
istore 3 /* c */
start local 3 // int c
1: .line 231
iload 3 /* c */
ifeq 3
2: .line 233
bipush 16
getstatic org.bouncycastle.math.ec.custom.sec.SecP256R1Field.PExt:[I
aload 2 /* zz */
invokestatic org.bouncycastle.math.raw.Nat.addTo:(I[I[I)I
pop
3: .line 235
StackMap locals: int
StackMap stack:
return
end local 3 // int c
end local 2 // int[] zz
end local 1 // int[] yy
end local 0 // int[] xx
LocalVariableTable:
Start End Slot Name Signature
0 4 0 xx [I
0 4 1 yy [I
0 4 2 zz [I
1 4 3 c I
MethodParameters:
Name Flags
xx
yy
zz
public static void twice(int[], int[]);
descriptor: ([I[I)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=3, args_size=2
start local 0 // int[] x
start local 1 // int[] z
0: .line 239
bipush 8
aload 0 /* x */
iconst_0
aload 1 /* z */
invokestatic org.bouncycastle.math.raw.Nat.shiftUpBit:(I[II[I)I
istore 2 /* c */
start local 2 // int c
1: .line 240
iload 2 /* c */
ifne 2
aload 1 /* z */
bipush 7
iaload
iconst_m1
if_icmpne 3
aload 1 /* z */
getstatic org.bouncycastle.math.ec.custom.sec.SecP256R1Field.P:[I
invokestatic org.bouncycastle.math.raw.Nat256.gte:([I[I)Z
ifeq 3
2: .line 242
StackMap locals: int
StackMap stack:
aload 1 /* z */
invokestatic org.bouncycastle.math.ec.custom.sec.SecP256R1Field.addPInvTo:([I)V
3: .line 244
StackMap locals:
StackMap stack:
return
end local 2 // int c
end local 1 // int[] z
end local 0 // int[] x
LocalVariableTable:
Start End Slot Name Signature
0 4 0 x [I
0 4 1 z [I
1 4 2 c I
MethodParameters:
Name Flags
x
z
private static void addPInvTo(int[]);
descriptor: ([I)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=3, args_size=1
start local 0 // int[] z
0: .line 248
aload 0 /* z */
iconst_0
iaload
i2l
ldc 4294967295
land
lconst_1
ladd
lstore 1 /* c */
start local 1 // long c
1: .line 249
aload 0 /* z */
iconst_0
lload 1 /* c */
l2i
iastore
2: .line 250
lload 1 /* c */
bipush 32
lshr
lstore 1 /* c */
3: .line 251
lload 1 /* c */
lconst_0
lcmp
ifeq 10
4: .line 253
lload 1 /* c */
aload 0 /* z */
iconst_1
iaload
i2l
ldc 4294967295
land
ladd
lstore 1 /* c */
5: .line 254
aload 0 /* z */
iconst_1
lload 1 /* c */
l2i
iastore
6: .line 255
lload 1 /* c */
bipush 32
lshr
lstore 1 /* c */
7: .line 256
lload 1 /* c */
aload 0 /* z */
iconst_2
iaload
i2l
ldc 4294967295
land
ladd
lstore 1 /* c */
8: .line 257
aload 0 /* z */
iconst_2
lload 1 /* c */
l2i
iastore
9: .line 258
lload 1 /* c */
bipush 32
lshr
lstore 1 /* c */
10: .line 260
StackMap locals: long
StackMap stack:
lload 1 /* c */
aload 0 /* z */
iconst_3
iaload
i2l
ldc 4294967295
land
lconst_1
lsub
ladd
lstore 1 /* c */
11: .line 261
aload 0 /* z */
iconst_3
lload 1 /* c */
l2i
iastore
12: .line 262
lload 1 /* c */
bipush 32
lshr
lstore 1 /* c */
13: .line 263
lload 1 /* c */
lconst_0
lcmp
ifeq 20
14: .line 265
lload 1 /* c */
aload 0 /* z */
iconst_4
iaload
i2l
ldc 4294967295
land
ladd
lstore 1 /* c */
15: .line 266
aload 0 /* z */
iconst_4
lload 1 /* c */
l2i
iastore
16: .line 267
lload 1 /* c */
bipush 32
lshr
lstore 1 /* c */
17: .line 268
lload 1 /* c */
aload 0 /* z */
iconst_5
iaload
i2l
ldc 4294967295
land
ladd
lstore 1 /* c */
18: .line 269
aload 0 /* z */
iconst_5
lload 1 /* c */
l2i
iastore
19: .line 270
lload 1 /* c */
bipush 32
lshr
lstore 1 /* c */
20: .line 272
StackMap locals:
StackMap stack:
lload 1 /* c */
aload 0 /* z */
bipush 6
iaload
i2l
ldc 4294967295
land
lconst_1
lsub
ladd
lstore 1 /* c */
21: .line 273
aload 0 /* z */
bipush 6
lload 1 /* c */
l2i
iastore
22: .line 274
lload 1 /* c */
bipush 32
lshr
lstore 1 /* c */
23: .line 275
lload 1 /* c */
aload 0 /* z */
bipush 7
iaload
i2l
ldc 4294967295
land
lconst_1
ladd
ladd
lstore 1 /* c */
24: .line 276
aload 0 /* z */
bipush 7
lload 1 /* c */
l2i
iastore
25: .line 278
return
end local 1 // long c
end local 0 // int[] z
LocalVariableTable:
Start End Slot Name Signature
0 26 0 z [I
1 26 1 c J
MethodParameters:
Name Flags
z
private static void subPInvFrom(int[]);
descriptor: ([I)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=3, args_size=1
start local 0 // int[] z
0: .line 282
aload 0 /* z */
iconst_0
iaload
i2l
ldc 4294967295
land
lconst_1
lsub
lstore 1 /* c */
start local 1 // long c
1: .line 283
aload 0 /* z */
iconst_0
lload 1 /* c */
l2i
iastore
2: .line 284
lload 1 /* c */
bipush 32
lshr
lstore 1 /* c */
3: .line 285
lload 1 /* c */
lconst_0
lcmp
ifeq 10
4: .line 287
lload 1 /* c */
aload 0 /* z */
iconst_1
iaload
i2l
ldc 4294967295
land
ladd
lstore 1 /* c */
5: .line 288
aload 0 /* z */
iconst_1
lload 1 /* c */
l2i
iastore
6: .line 289
lload 1 /* c */
bipush 32
lshr
lstore 1 /* c */
7: .line 290
lload 1 /* c */
aload 0 /* z */
iconst_2
iaload
i2l
ldc 4294967295
land
ladd
lstore 1 /* c */
8: .line 291
aload 0 /* z */
iconst_2
lload 1 /* c */
l2i
iastore
9: .line 292
lload 1 /* c */
bipush 32
lshr
lstore 1 /* c */
10: .line 294
StackMap locals: long
StackMap stack:
lload 1 /* c */
aload 0 /* z */
iconst_3
iaload
i2l
ldc 4294967295
land
lconst_1
ladd
ladd
lstore 1 /* c */
11: .line 295
aload 0 /* z */
iconst_3
lload 1 /* c */
l2i
iastore
12: .line 296
lload 1 /* c */
bipush 32
lshr
lstore 1 /* c */
13: .line 297
lload 1 /* c */
lconst_0
lcmp
ifeq 20
14: .line 299
lload 1 /* c */
aload 0 /* z */
iconst_4
iaload
i2l
ldc 4294967295
land
ladd
lstore 1 /* c */
15: .line 300
aload 0 /* z */
iconst_4
lload 1 /* c */
l2i
iastore
16: .line 301
lload 1 /* c */
bipush 32
lshr
lstore 1 /* c */
17: .line 302
lload 1 /* c */
aload 0 /* z */
iconst_5
iaload
i2l
ldc 4294967295
land
ladd
lstore 1 /* c */
18: .line 303
aload 0 /* z */
iconst_5
lload 1 /* c */
l2i
iastore
19: .line 304
lload 1 /* c */
bipush 32
lshr
lstore 1 /* c */
20: .line 306
StackMap locals:
StackMap stack:
lload 1 /* c */
aload 0 /* z */
bipush 6
iaload
i2l
ldc 4294967295
land
lconst_1
ladd
ladd
lstore 1 /* c */
21: .line 307
aload 0 /* z */
bipush 6
lload 1 /* c */
l2i
iastore
22: .line 308
lload 1 /* c */
bipush 32
lshr
lstore 1 /* c */
23: .line 309
lload 1 /* c */
aload 0 /* z */
bipush 7
iaload
i2l
ldc 4294967295
land
lconst_1
lsub
ladd
lstore 1 /* c */
24: .line 310
aload 0 /* z */
bipush 7
lload 1 /* c */
l2i
iastore
25: .line 312
return
end local 1 // long c
end local 0 // int[] z
LocalVariableTable:
Start End Slot Name Signature
0 26 0 z [I
1 26 1 c J
MethodParameters:
Name Flags
z
}
SourceFile: "SecP256R1Field.java"