public class org.bouncycastle.math.ec.custom.sec.SecP384R1Field
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.bouncycastle.math.ec.custom.sec.SecP384R1Field
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[] PExtInv;
descriptor: [I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final int P11;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: -1
private static final int PExt23;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: -1
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=0, args_size=0
0: .line 13
bipush 12
newarray 10
dup
iconst_0
iconst_m1
iastore
dup
iconst_3
iconst_m1
iastore
dup
iconst_4
bipush -2
iastore
dup
iconst_5
iconst_m1
iastore
dup
bipush 6
1: .line 14
iconst_m1
iastore
dup
bipush 7
iconst_m1
iastore
dup
bipush 8
iconst_m1
iastore
dup
bipush 9
iconst_m1
iastore
dup
bipush 10
iconst_m1
iastore
dup
bipush 11
iconst_m1
iastore
2: .line 13
putstatic org.bouncycastle.math.ec.custom.sec.SecP384R1Field.P:[I
3: .line 15
bipush 24
newarray 10
dup
iconst_0
iconst_1
iastore
dup
iconst_1
bipush -2
iastore
dup
iconst_3
iconst_2
iastore
dup
iconst_5
bipush -2
iastore
dup
bipush 7
4: .line 16
iconst_2
iastore
dup
bipush 8
iconst_1
iastore
dup
bipush 12
bipush -2
iastore
dup
bipush 13
iconst_1
iastore
dup
bipush 15
5: .line 17
bipush -2
iastore
dup
bipush 16
bipush -3
iastore
dup
bipush 17
iconst_m1
iastore
dup
bipush 18
iconst_m1
iastore
dup
bipush 19
iconst_m1
iastore
dup
bipush 20
iconst_m1
iastore
dup
bipush 21
iconst_m1
iastore
dup
bipush 22
iconst_m1
iastore
dup
bipush 23
iconst_m1
iastore
6: .line 15
putstatic org.bouncycastle.math.ec.custom.sec.SecP384R1Field.PExt:[I
7: .line 18
bipush 17
newarray 10
dup
iconst_0
iconst_m1
iastore
dup
iconst_1
iconst_1
iastore
dup
iconst_2
iconst_m1
iastore
dup
iconst_3
bipush -3
iastore
dup
iconst_4
iconst_m1
iastore
dup
iconst_5
iconst_1
iastore
dup
bipush 6
8: .line 19
iconst_m1
iastore
dup
bipush 7
bipush -3
iastore
dup
bipush 8
bipush -2
iastore
dup
bipush 9
iconst_m1
iastore
dup
bipush 10
iconst_m1
iastore
dup
bipush 11
iconst_m1
iastore
dup
bipush 12
iconst_1
iastore
dup
bipush 13
bipush -2
iastore
dup
bipush 14
iconst_m1
iastore
dup
bipush 15
9: .line 20
iconst_1
iastore
dup
bipush 16
iconst_2
iastore
10: .line 18
putstatic org.bouncycastle.math.ec.custom.sec.SecP384R1Field.PExtInv:[I
11: .line 22
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.SecP384R1Field this
0: .line 8
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
return
end local 0 // org.bouncycastle.math.ec.custom.sec.SecP384R1Field this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/math/ec/custom/sec/SecP384R1Field;
public static void add(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[] x
start local 1 // int[] y
start local 2 // int[] z
0: .line 26
bipush 12
aload 0 /* x */
aload 1 /* y */
aload 2 /* z */
invokestatic org.bouncycastle.math.raw.Nat.add:(I[I[I[I)I
istore 3 /* c */
start local 3 // int c
1: .line 27
iload 3 /* c */
ifne 2
aload 2 /* z */
bipush 11
iaload
iconst_m1
if_icmpne 3
bipush 12
aload 2 /* z */
getstatic org.bouncycastle.math.ec.custom.sec.SecP384R1Field.P:[I
invokestatic org.bouncycastle.math.raw.Nat.gte:(I[I[I)Z
ifeq 3
2: .line 29
StackMap locals: int
StackMap stack:
aload 2 /* z */
invokestatic org.bouncycastle.math.ec.custom.sec.SecP384R1Field.addPInvTo:([I)V
3: .line 31
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 35
bipush 24
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 36
iload 3 /* c */
ifne 2
aload 2 /* zz */
bipush 23
iaload
iconst_m1
if_icmpne 4
bipush 24
aload 2 /* zz */
getstatic org.bouncycastle.math.ec.custom.sec.SecP384R1Field.PExt:[I
invokestatic org.bouncycastle.math.raw.Nat.gte:(I[I[I)Z
ifeq 4
2: .line 38
StackMap locals: int
StackMap stack:
getstatic org.bouncycastle.math.ec.custom.sec.SecP384R1Field.PExtInv:[I
arraylength
getstatic org.bouncycastle.math.ec.custom.sec.SecP384R1Field.PExtInv:[I
aload 2 /* zz */
invokestatic org.bouncycastle.math.raw.Nat.addTo:(I[I[I)I
ifeq 4
3: .line 40
bipush 24
aload 2 /* zz */
getstatic org.bouncycastle.math.ec.custom.sec.SecP384R1Field.PExtInv:[I
arraylength
invokestatic org.bouncycastle.math.raw.Nat.incAt:(I[II)I
pop
4: .line 43
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 5 0 xx [I
0 5 1 yy [I
0 5 2 zz [I
1 5 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 47
bipush 12
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 48
iload 2 /* c */
ifne 2
aload 1 /* z */
bipush 11
iaload
iconst_m1
if_icmpne 3
bipush 12
aload 1 /* z */
getstatic org.bouncycastle.math.ec.custom.sec.SecP384R1Field.P:[I
invokestatic org.bouncycastle.math.raw.Nat.gte:(I[I[I)Z
ifeq 3
2: .line 50
StackMap locals: int
StackMap stack:
aload 1 /* z */
invokestatic org.bouncycastle.math.ec.custom.sec.SecP384R1Field.addPInvTo:([I)V
3: .line 52
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=3, locals=2, args_size=1
start local 0 // java.math.BigInteger x
0: .line 56
sipush 384
aload 0 /* x */
invokestatic org.bouncycastle.math.raw.Nat.fromBigInteger:(ILjava/math/BigInteger;)[I
astore 1 /* z */
start local 1 // int[] z
1: .line 57
aload 1 /* z */
bipush 11
iaload
iconst_m1
if_icmpne 3
bipush 12
aload 1 /* z */
getstatic org.bouncycastle.math.ec.custom.sec.SecP384R1Field.P:[I
invokestatic org.bouncycastle.math.raw.Nat.gte:(I[I[I)Z
ifeq 3
2: .line 59
bipush 12
getstatic org.bouncycastle.math.ec.custom.sec.SecP384R1Field.P:[I
aload 1 /* z */
invokestatic org.bouncycastle.math.raw.Nat.subFrom:(I[I[I)I
pop
3: .line 61
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 66
aload 0 /* x */
iconst_0
iaload
iconst_1
iand
ifne 3
1: .line 68
bipush 12
aload 0 /* x */
iconst_0
aload 1 /* z */
invokestatic org.bouncycastle.math.raw.Nat.shiftDownBit:(I[II[I)I
pop
2: .line 69
goto 5
3: .line 72
StackMap locals:
StackMap stack:
bipush 12
aload 0 /* x */
getstatic org.bouncycastle.math.ec.custom.sec.SecP384R1Field.P:[I
aload 1 /* z */
invokestatic org.bouncycastle.math.raw.Nat.add:(I[I[I[I)I
istore 2 /* c */
start local 2 // int c
4: .line 73
bipush 12
aload 1 /* z */
iload 2 /* c */
invokestatic org.bouncycastle.math.raw.Nat.shiftDownBit:(I[II)I
pop
end local 2 // int c
5: .line 75
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 79
bipush 24
invokestatic org.bouncycastle.math.raw.Nat.create:(I)[I
astore 3 /* tt */
start local 3 // int[] tt
1: .line 80
aload 0 /* x */
aload 1 /* y */
aload 3 /* tt */
invokestatic org.bouncycastle.math.raw.Nat384.mul:([I[I[I)V
2: .line 81
aload 3 /* tt */
aload 2 /* z */
invokestatic org.bouncycastle.math.ec.custom.sec.SecP384R1Field.reduce:([I[I)V
3: .line 82
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 negate(int[], int[]);
descriptor: ([I[I)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=2, args_size=2
start local 0 // int[] x
start local 1 // int[] z
0: .line 86
bipush 12
aload 0 /* x */
invokestatic org.bouncycastle.math.raw.Nat.isZero:(I[I)Z
ifeq 3
1: .line 88
bipush 12
aload 1 /* z */
invokestatic org.bouncycastle.math.raw.Nat.zero:(I[I)V
2: .line 89
goto 4
3: .line 92
StackMap locals:
StackMap stack:
bipush 12
getstatic org.bouncycastle.math.ec.custom.sec.SecP384R1Field.P:[I
aload 0 /* x */
aload 1 /* z */
invokestatic org.bouncycastle.math.raw.Nat.sub:(I[I[I[I)I
pop
4: .line 94
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=6, locals=36, args_size=2
start local 0 // int[] xx
start local 1 // int[] z
0: .line 98
aload 0 /* xx */
bipush 16
iaload
i2l
ldc 4294967295
land
lstore 2 /* xx16 */
start local 2 // long xx16
1: aload 0 /* xx */
bipush 17
iaload
i2l
ldc 4294967295
land
lstore 4 /* xx17 */
start local 4 // long xx17
2: aload 0 /* xx */
bipush 18
iaload
i2l
ldc 4294967295
land
lstore 6 /* xx18 */
start local 6 // long xx18
3: aload 0 /* xx */
bipush 19
iaload
i2l
ldc 4294967295
land
lstore 8 /* xx19 */
start local 8 // long xx19
4: .line 99
aload 0 /* xx */
bipush 20
iaload
i2l
ldc 4294967295
land
lstore 10 /* xx20 */
start local 10 // long xx20
5: aload 0 /* xx */
bipush 21
iaload
i2l
ldc 4294967295
land
lstore 12 /* xx21 */
start local 12 // long xx21
6: aload 0 /* xx */
bipush 22
iaload
i2l
ldc 4294967295
land
lstore 14 /* xx22 */
start local 14 // long xx22
7: aload 0 /* xx */
bipush 23
iaload
i2l
ldc 4294967295
land
lstore 16 /* xx23 */
start local 16 // long xx23
8: .line 103
aload 0 /* xx */
bipush 12
iaload
i2l
ldc 4294967295
land
lload 10 /* xx20 */
ladd
lconst_1
lsub
lstore 18 /* t0 */
start local 18 // long t0
9: .line 104
aload 0 /* xx */
bipush 13
iaload
i2l
ldc 4294967295
land
lload 14 /* xx22 */
ladd
lstore 20 /* t1 */
start local 20 // long t1
10: .line 105
aload 0 /* xx */
bipush 14
iaload
i2l
ldc 4294967295
land
lload 14 /* xx22 */
ladd
lload 16 /* xx23 */
ladd
lstore 22 /* t2 */
start local 22 // long t2
11: .line 106
aload 0 /* xx */
bipush 15
iaload
i2l
ldc 4294967295
land
lload 16 /* xx23 */
ladd
lstore 24 /* t3 */
start local 24 // long t3
12: .line 107
lload 4 /* xx17 */
lload 12 /* xx21 */
ladd
lstore 26 /* t4 */
start local 26 // long t4
13: .line 108
lload 12 /* xx21 */
lload 16 /* xx23 */
lsub
lstore 28 /* t5 */
start local 28 // long t5
14: .line 109
lload 14 /* xx22 */
lload 16 /* xx23 */
lsub
lstore 30 /* t6 */
start local 30 // long t6
15: .line 110
lload 18 /* t0 */
lload 28 /* t5 */
ladd
lstore 32 /* t7 */
start local 32 // long t7
16: .line 112
lconst_0
lstore 34 /* cc */
start local 34 // long cc
17: .line 113
lload 34 /* cc */
aload 0 /* xx */
iconst_0
iaload
i2l
ldc 4294967295
land
lload 32 /* t7 */
ladd
ladd
lstore 34 /* cc */
18: .line 114
aload 1 /* z */
iconst_0
lload 34 /* cc */
l2i
iastore
19: .line 115
lload 34 /* cc */
bipush 32
lshr
lstore 34 /* cc */
20: .line 116
lload 34 /* cc */
aload 0 /* xx */
iconst_1
iaload
i2l
ldc 4294967295
land
lload 16 /* xx23 */
ladd
lload 18 /* t0 */
lsub
lload 20 /* t1 */
ladd
ladd
lstore 34 /* cc */
21: .line 117
aload 1 /* z */
iconst_1
lload 34 /* cc */
l2i
iastore
22: .line 118
lload 34 /* cc */
bipush 32
lshr
lstore 34 /* cc */
23: .line 119
lload 34 /* cc */
aload 0 /* xx */
iconst_2
iaload
i2l
ldc 4294967295
land
lload 12 /* xx21 */
lsub
lload 20 /* t1 */
lsub
lload 22 /* t2 */
ladd
ladd
lstore 34 /* cc */
24: .line 120
aload 1 /* z */
iconst_2
lload 34 /* cc */
l2i
iastore
25: .line 121
lload 34 /* cc */
bipush 32
lshr
lstore 34 /* cc */
26: .line 122
lload 34 /* cc */
aload 0 /* xx */
iconst_3
iaload
i2l
ldc 4294967295
land
lload 22 /* t2 */
lsub
lload 24 /* t3 */
ladd
lload 32 /* t7 */
ladd
ladd
lstore 34 /* cc */
27: .line 123
aload 1 /* z */
iconst_3
lload 34 /* cc */
l2i
iastore
28: .line 124
lload 34 /* cc */
bipush 32
lshr
lstore 34 /* cc */
29: .line 125
lload 34 /* cc */
aload 0 /* xx */
iconst_4
iaload
i2l
ldc 4294967295
land
lload 2 /* xx16 */
ladd
lload 12 /* xx21 */
ladd
lload 20 /* t1 */
ladd
lload 24 /* t3 */
lsub
lload 32 /* t7 */
ladd
ladd
lstore 34 /* cc */
30: .line 126
aload 1 /* z */
iconst_4
lload 34 /* cc */
l2i
iastore
31: .line 127
lload 34 /* cc */
bipush 32
lshr
lstore 34 /* cc */
32: .line 128
lload 34 /* cc */
aload 0 /* xx */
iconst_5
iaload
i2l
ldc 4294967295
land
lload 2 /* xx16 */
lsub
lload 20 /* t1 */
ladd
lload 22 /* t2 */
ladd
lload 26 /* t4 */
ladd
ladd
lstore 34 /* cc */
33: .line 129
aload 1 /* z */
iconst_5
lload 34 /* cc */
l2i
iastore
34: .line 130
lload 34 /* cc */
bipush 32
lshr
lstore 34 /* cc */
35: .line 131
lload 34 /* cc */
aload 0 /* xx */
bipush 6
iaload
i2l
ldc 4294967295
land
lload 6 /* xx18 */
ladd
lload 4 /* xx17 */
lsub
lload 22 /* t2 */
ladd
lload 24 /* t3 */
ladd
ladd
lstore 34 /* cc */
36: .line 132
aload 1 /* z */
bipush 6
lload 34 /* cc */
l2i
iastore
37: .line 133
lload 34 /* cc */
bipush 32
lshr
lstore 34 /* cc */
38: .line 134
lload 34 /* cc */
aload 0 /* xx */
bipush 7
iaload
i2l
ldc 4294967295
land
lload 2 /* xx16 */
ladd
lload 8 /* xx19 */
ladd
lload 6 /* xx18 */
lsub
lload 24 /* t3 */
ladd
ladd
lstore 34 /* cc */
39: .line 135
aload 1 /* z */
bipush 7
lload 34 /* cc */
l2i
iastore
40: .line 136
lload 34 /* cc */
bipush 32
lshr
lstore 34 /* cc */
41: .line 137
lload 34 /* cc */
aload 0 /* xx */
bipush 8
iaload
i2l
ldc 4294967295
land
lload 2 /* xx16 */
ladd
lload 4 /* xx17 */
ladd
lload 10 /* xx20 */
ladd
lload 8 /* xx19 */
lsub
ladd
lstore 34 /* cc */
42: .line 138
aload 1 /* z */
bipush 8
lload 34 /* cc */
l2i
iastore
43: .line 139
lload 34 /* cc */
bipush 32
lshr
lstore 34 /* cc */
44: .line 140
lload 34 /* cc */
aload 0 /* xx */
bipush 9
iaload
i2l
ldc 4294967295
land
lload 6 /* xx18 */
ladd
lload 10 /* xx20 */
lsub
lload 26 /* t4 */
ladd
ladd
lstore 34 /* cc */
45: .line 141
aload 1 /* z */
bipush 9
lload 34 /* cc */
l2i
iastore
46: .line 142
lload 34 /* cc */
bipush 32
lshr
lstore 34 /* cc */
47: .line 143
lload 34 /* cc */
aload 0 /* xx */
bipush 10
iaload
i2l
ldc 4294967295
land
lload 6 /* xx18 */
ladd
lload 8 /* xx19 */
ladd
lload 28 /* t5 */
lsub
lload 30 /* t6 */
ladd
ladd
lstore 34 /* cc */
48: .line 144
aload 1 /* z */
bipush 10
lload 34 /* cc */
l2i
iastore
49: .line 145
lload 34 /* cc */
bipush 32
lshr
lstore 34 /* cc */
50: .line 146
lload 34 /* cc */
aload 0 /* xx */
bipush 11
iaload
i2l
ldc 4294967295
land
lload 8 /* xx19 */
ladd
lload 10 /* xx20 */
ladd
lload 30 /* t6 */
lsub
ladd
lstore 34 /* cc */
51: .line 147
aload 1 /* z */
bipush 11
lload 34 /* cc */
l2i
iastore
52: .line 148
lload 34 /* cc */
bipush 32
lshr
lstore 34 /* cc */
53: .line 149
lload 34 /* cc */
lconst_1
ladd
lstore 34 /* cc */
54: .line 153
lload 34 /* cc */
l2i
aload 1 /* z */
invokestatic org.bouncycastle.math.ec.custom.sec.SecP384R1Field.reduce32:(I[I)V
55: .line 154
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 xx23
end local 14 // long xx22
end local 12 // long xx21
end local 10 // long xx20
end local 8 // long xx19
end local 6 // long xx18
end local 4 // long xx17
end local 2 // long xx16
end local 1 // int[] z
end local 0 // int[] xx
LocalVariableTable:
Start End Slot Name Signature
0 56 0 xx [I
0 56 1 z [I
1 56 2 xx16 J
2 56 4 xx17 J
3 56 6 xx18 J
4 56 8 xx19 J
5 56 10 xx20 J
6 56 12 xx21 J
7 56 14 xx22 J
8 56 16 xx23 J
9 56 18 t0 J
10 56 20 t1 J
11 56 22 t2 J
12 56 24 t3 J
13 56 26 t4 J
14 56 28 t5 J
15 56 30 t6 J
16 56 32 t7 J
17 56 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 158
lconst_0
lstore 2 /* cc */
start local 2 // long cc
1: .line 160
iload 0 /* x */
ifeq 19
2: .line 162
iload 0 /* x */
i2l
ldc 4294967295
land
lstore 4 /* xx12 */
start local 4 // long xx12
3: .line 164
lload 2 /* cc */
aload 1 /* z */
iconst_0
iaload
i2l
ldc 4294967295
land
lload 4 /* xx12 */
ladd
ladd
lstore 2 /* cc */
4: .line 165
aload 1 /* z */
iconst_0
lload 2 /* cc */
l2i
iastore
5: .line 166
lload 2 /* cc */
bipush 32
lshr
lstore 2 /* cc */
6: .line 167
lload 2 /* cc */
aload 1 /* z */
iconst_1
iaload
i2l
ldc 4294967295
land
lload 4 /* xx12 */
lsub
ladd
lstore 2 /* cc */
7: .line 168
aload 1 /* z */
iconst_1
lload 2 /* cc */
l2i
iastore
8: .line 169
lload 2 /* cc */
bipush 32
lshr
lstore 2 /* cc */
9: .line 170
lload 2 /* cc */
lconst_0
lcmp
ifeq 13
10: .line 172
lload 2 /* cc */
aload 1 /* z */
iconst_2
iaload
i2l
ldc 4294967295
land
ladd
lstore 2 /* cc */
11: .line 173
aload 1 /* z */
iconst_2
lload 2 /* cc */
l2i
iastore
12: .line 174
lload 2 /* cc */
bipush 32
lshr
lstore 2 /* cc */
13: .line 176
StackMap locals: long long
StackMap stack:
lload 2 /* cc */
aload 1 /* z */
iconst_3
iaload
i2l
ldc 4294967295
land
lload 4 /* xx12 */
ladd
ladd
lstore 2 /* cc */
14: .line 177
aload 1 /* z */
iconst_3
lload 2 /* cc */
l2i
iastore
15: .line 178
lload 2 /* cc */
bipush 32
lshr
lstore 2 /* cc */
16: .line 179
lload 2 /* cc */
aload 1 /* z */
iconst_4
iaload
i2l
ldc 4294967295
land
lload 4 /* xx12 */
ladd
ladd
lstore 2 /* cc */
17: .line 180
aload 1 /* z */
iconst_4
lload 2 /* cc */
l2i
iastore
18: .line 181
lload 2 /* cc */
bipush 32
lshr
lstore 2 /* cc */
end local 4 // long xx12
19: .line 186
StackMap locals:
StackMap stack:
lload 2 /* cc */
lconst_0
lcmp
ifeq 20
bipush 12
aload 1 /* z */
iconst_5
invokestatic org.bouncycastle.math.raw.Nat.incAt:(I[II)I
ifne 21
20: .line 187
StackMap locals:
StackMap stack:
aload 1 /* z */
bipush 11
iaload
iconst_m1
if_icmpne 22
bipush 12
aload 1 /* z */
getstatic org.bouncycastle.math.ec.custom.sec.SecP384R1Field.P:[I
invokestatic org.bouncycastle.math.raw.Nat.gte:(I[I[I)Z
ifeq 22
21: .line 189
StackMap locals:
StackMap stack:
aload 1 /* z */
invokestatic org.bouncycastle.math.ec.custom.sec.SecP384R1Field.addPInvTo:([I)V
22: .line 191
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 23 0 x I
0 23 1 z [I
1 23 2 cc J
3 19 4 xx12 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 195
bipush 24
invokestatic org.bouncycastle.math.raw.Nat.create:(I)[I
astore 2 /* tt */
start local 2 // int[] tt
1: .line 196
aload 0 /* x */
aload 2 /* tt */
invokestatic org.bouncycastle.math.raw.Nat384.square:([I[I)V
2: .line 197
aload 2 /* tt */
aload 1 /* z */
invokestatic org.bouncycastle.math.ec.custom.sec.SecP384R1Field.reduce:([I[I)V
3: .line 198
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 204
bipush 24
invokestatic org.bouncycastle.math.raw.Nat.create:(I)[I
astore 3 /* tt */
start local 3 // int[] tt
1: .line 205
aload 0 /* x */
aload 3 /* tt */
invokestatic org.bouncycastle.math.raw.Nat384.square:([I[I)V
2: .line 206
aload 3 /* tt */
aload 2 /* z */
invokestatic org.bouncycastle.math.ec.custom.sec.SecP384R1Field.reduce:([I[I)V
3: .line 208
goto 6
4: .line 210
StackMap locals: int[]
StackMap stack:
aload 2 /* z */
aload 3 /* tt */
invokestatic org.bouncycastle.math.raw.Nat384.square:([I[I)V
5: .line 211
aload 3 /* tt */
aload 2 /* z */
invokestatic org.bouncycastle.math.ec.custom.sec.SecP384R1Field.reduce:([I[I)V
6: .line 208
StackMap locals:
StackMap stack:
iinc 1 /* n */ -1
iload 1 /* n */
ifgt 4
7: .line 213
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=4, locals=4, args_size=3
start local 0 // int[] x
start local 1 // int[] y
start local 2 // int[] z
0: .line 217
bipush 12
aload 0 /* x */
aload 1 /* y */
aload 2 /* z */
invokestatic org.bouncycastle.math.raw.Nat.sub:(I[I[I[I)I
istore 3 /* c */
start local 3 // int c
1: .line 218
iload 3 /* c */
ifeq 3
2: .line 220
aload 2 /* z */
invokestatic org.bouncycastle.math.ec.custom.sec.SecP384R1Field.subPInvFrom:([I)V
3: .line 222
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 226
bipush 24
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 227
iload 3 /* c */
ifeq 4
2: .line 229
getstatic org.bouncycastle.math.ec.custom.sec.SecP384R1Field.PExtInv:[I
arraylength
getstatic org.bouncycastle.math.ec.custom.sec.SecP384R1Field.PExtInv:[I
aload 2 /* zz */
invokestatic org.bouncycastle.math.raw.Nat.subFrom:(I[I[I)I
ifeq 4
3: .line 231
bipush 24
aload 2 /* zz */
getstatic org.bouncycastle.math.ec.custom.sec.SecP384R1Field.PExtInv:[I
arraylength
invokestatic org.bouncycastle.math.raw.Nat.decAt:(I[II)I
pop
4: .line 234
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 5 0 xx [I
0 5 1 yy [I
0 5 2 zz [I
1 5 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 238
bipush 12
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 239
iload 2 /* c */
ifne 2
aload 1 /* z */
bipush 11
iaload
iconst_m1
if_icmpne 3
bipush 12
aload 1 /* z */
getstatic org.bouncycastle.math.ec.custom.sec.SecP384R1Field.P:[I
invokestatic org.bouncycastle.math.raw.Nat.gte:(I[I[I)Z
ifeq 3
2: .line 241
StackMap locals: int
StackMap stack:
aload 1 /* z */
invokestatic org.bouncycastle.math.ec.custom.sec.SecP384R1Field.addPInvTo:([I)V
3: .line 243
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 247
aload 0 /* z */
iconst_0
iaload
i2l
ldc 4294967295
land
lconst_1
ladd
lstore 1 /* c */
start local 1 // long c
1: .line 248
aload 0 /* z */
iconst_0
lload 1 /* c */
l2i
iastore
2: .line 249
lload 1 /* c */
bipush 32
lshr
lstore 1 /* c */
3: .line 250
lload 1 /* c */
aload 0 /* z */
iconst_1
iaload
i2l
ldc 4294967295
land
lconst_1
lsub
ladd
lstore 1 /* c */
4: .line 251
aload 0 /* z */
iconst_1
lload 1 /* c */
l2i
iastore
5: .line 252
lload 1 /* c */
bipush 32
lshr
lstore 1 /* c */
6: .line 253
lload 1 /* c */
lconst_0
lcmp
ifeq 10
7: .line 255
lload 1 /* c */
aload 0 /* z */
iconst_2
iaload
i2l
ldc 4294967295
land
ladd
lstore 1 /* c */
8: .line 256
aload 0 /* z */
iconst_2
lload 1 /* c */
l2i
iastore
9: .line 257
lload 1 /* c */
bipush 32
lshr
lstore 1 /* c */
10: .line 259
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 260
aload 0 /* z */
iconst_3
lload 1 /* c */
l2i
iastore
12: .line 261
lload 1 /* c */
bipush 32
lshr
lstore 1 /* c */
13: .line 262
lload 1 /* c */
aload 0 /* z */
iconst_4
iaload
i2l
ldc 4294967295
land
lconst_1
ladd
ladd
lstore 1 /* c */
14: .line 263
aload 0 /* z */
iconst_4
lload 1 /* c */
l2i
iastore
15: .line 264
lload 1 /* c */
bipush 32
lshr
lstore 1 /* c */
16: .line 265
lload 1 /* c */
lconst_0
lcmp
ifeq 18
17: .line 267
bipush 12
aload 0 /* z */
iconst_5
invokestatic org.bouncycastle.math.raw.Nat.incAt:(I[II)I
pop
18: .line 269
StackMap locals:
StackMap stack:
return
end local 1 // long c
end local 0 // int[] z
LocalVariableTable:
Start End Slot Name Signature
0 19 0 z [I
1 19 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 273
aload 0 /* z */
iconst_0
iaload
i2l
ldc 4294967295
land
lconst_1
lsub
lstore 1 /* c */
start local 1 // long c
1: .line 274
aload 0 /* z */
iconst_0
lload 1 /* c */
l2i
iastore
2: .line 275
lload 1 /* c */
bipush 32
lshr
lstore 1 /* c */
3: .line 276
lload 1 /* c */
aload 0 /* z */
iconst_1
iaload
i2l
ldc 4294967295
land
lconst_1
ladd
ladd
lstore 1 /* c */
4: .line 277
aload 0 /* z */
iconst_1
lload 1 /* c */
l2i
iastore
5: .line 278
lload 1 /* c */
bipush 32
lshr
lstore 1 /* c */
6: .line 279
lload 1 /* c */
lconst_0
lcmp
ifeq 10
7: .line 281
lload 1 /* c */
aload 0 /* z */
iconst_2
iaload
i2l
ldc 4294967295
land
ladd
lstore 1 /* c */
8: .line 282
aload 0 /* z */
iconst_2
lload 1 /* c */
l2i
iastore
9: .line 283
lload 1 /* c */
bipush 32
lshr
lstore 1 /* c */
10: .line 285
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 286
aload 0 /* z */
iconst_3
lload 1 /* c */
l2i
iastore
12: .line 287
lload 1 /* c */
bipush 32
lshr
lstore 1 /* c */
13: .line 288
lload 1 /* c */
aload 0 /* z */
iconst_4
iaload
i2l
ldc 4294967295
land
lconst_1
lsub
ladd
lstore 1 /* c */
14: .line 289
aload 0 /* z */
iconst_4
lload 1 /* c */
l2i
iastore
15: .line 290
lload 1 /* c */
bipush 32
lshr
lstore 1 /* c */
16: .line 291
lload 1 /* c */
lconst_0
lcmp
ifeq 18
17: .line 293
bipush 12
aload 0 /* z */
iconst_5
invokestatic org.bouncycastle.math.raw.Nat.decAt:(I[II)I
pop
18: .line 295
StackMap locals:
StackMap stack:
return
end local 1 // long c
end local 0 // int[] z
LocalVariableTable:
Start End Slot Name Signature
0 19 0 z [I
1 19 1 c J
MethodParameters:
Name Flags
z
}
SourceFile: "SecP384R1Field.java"