public class org.bouncycastle.math.ec.custom.sec.SecT409Field
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.bouncycastle.math.ec.custom.sec.SecT409Field
super_class: java.lang.Object
{
private static final long M25;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 33554431
private static final long M59;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 576460752303423487
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.SecT409Field this
0: .line 9
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
return
end local 0 // org.bouncycastle.math.ec.custom.sec.SecT409Field this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/math/ec/custom/sec/SecT409Field;
public static void add(long[], long[], long[]);
descriptor: ([J[J[J)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=3, args_size=3
start local 0 // long[] x
start local 1 // long[] y
start local 2 // long[] z
0: .line 16
aload 2 /* z */
iconst_0
aload 0 /* x */
iconst_0
laload
aload 1 /* y */
iconst_0
laload
lxor
lastore
1: .line 17
aload 2 /* z */
iconst_1
aload 0 /* x */
iconst_1
laload
aload 1 /* y */
iconst_1
laload
lxor
lastore
2: .line 18
aload 2 /* z */
iconst_2
aload 0 /* x */
iconst_2
laload
aload 1 /* y */
iconst_2
laload
lxor
lastore
3: .line 19
aload 2 /* z */
iconst_3
aload 0 /* x */
iconst_3
laload
aload 1 /* y */
iconst_3
laload
lxor
lastore
4: .line 20
aload 2 /* z */
iconst_4
aload 0 /* x */
iconst_4
laload
aload 1 /* y */
iconst_4
laload
lxor
lastore
5: .line 21
aload 2 /* z */
iconst_5
aload 0 /* x */
iconst_5
laload
aload 1 /* y */
iconst_5
laload
lxor
lastore
6: .line 22
aload 2 /* z */
bipush 6
aload 0 /* x */
bipush 6
laload
aload 1 /* y */
bipush 6
laload
lxor
lastore
7: .line 23
return
end local 2 // long[] z
end local 1 // long[] y
end local 0 // long[] x
LocalVariableTable:
Start End Slot Name Signature
0 8 0 x [J
0 8 1 y [J
0 8 2 z [J
MethodParameters:
Name Flags
x
y
z
public static void addExt(long[], long[], long[]);
descriptor: ([J[J[J)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=4, args_size=3
start local 0 // long[] xx
start local 1 // long[] yy
start local 2 // long[] zz
0: .line 27
iconst_0
istore 3 /* i */
start local 3 // int i
1: goto 4
2: .line 29
StackMap locals: int
StackMap stack:
aload 2 /* zz */
iload 3 /* i */
aload 0 /* xx */
iload 3 /* i */
laload
aload 1 /* yy */
iload 3 /* i */
laload
lxor
lastore
3: .line 27
iinc 3 /* i */ 1
StackMap locals:
StackMap stack:
4: iload 3 /* i */
bipush 13
if_icmplt 2
end local 3 // int i
5: .line 31
return
end local 2 // long[] zz
end local 1 // long[] yy
end local 0 // long[] xx
LocalVariableTable:
Start End Slot Name Signature
0 6 0 xx [J
0 6 1 yy [J
0 6 2 zz [J
1 5 3 i I
MethodParameters:
Name Flags
xx
yy
zz
public static void addOne(long[], long[]);
descriptor: ([J[J)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=2, args_size=2
start local 0 // long[] x
start local 1 // long[] z
0: .line 35
aload 1 /* z */
iconst_0
aload 0 /* x */
iconst_0
laload
lconst_1
lxor
lastore
1: .line 36
aload 1 /* z */
iconst_1
aload 0 /* x */
iconst_1
laload
lastore
2: .line 37
aload 1 /* z */
iconst_2
aload 0 /* x */
iconst_2
laload
lastore
3: .line 38
aload 1 /* z */
iconst_3
aload 0 /* x */
iconst_3
laload
lastore
4: .line 39
aload 1 /* z */
iconst_4
aload 0 /* x */
iconst_4
laload
lastore
5: .line 40
aload 1 /* z */
iconst_5
aload 0 /* x */
iconst_5
laload
lastore
6: .line 41
aload 1 /* z */
bipush 6
aload 0 /* x */
bipush 6
laload
lastore
7: .line 42
return
end local 1 // long[] z
end local 0 // long[] x
LocalVariableTable:
Start End Slot Name Signature
0 8 0 x [J
0 8 1 z [J
MethodParameters:
Name Flags
x
z
public static long[] fromBigInteger(java.math.BigInteger);
descriptor: (Ljava/math/BigInteger;)[J
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 // java.math.BigInteger x
0: .line 46
aload 0 /* x */
invokestatic org.bouncycastle.math.raw.Nat448.fromBigInteger64:(Ljava/math/BigInteger;)[J
astore 1 /* z */
start local 1 // long[] z
1: .line 47
aload 1 /* z */
iconst_0
invokestatic org.bouncycastle.math.ec.custom.sec.SecT409Field.reduce39:([JI)V
2: .line 48
aload 1 /* z */
areturn
end local 1 // long[] z
end local 0 // java.math.BigInteger x
LocalVariableTable:
Start End Slot Name Signature
0 3 0 x Ljava/math/BigInteger;
1 3 1 z [J
MethodParameters:
Name Flags
x
public static void invert(long[], long[]);
descriptor: ([J[J)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=5, args_size=2
start local 0 // long[] x
start local 1 // long[] z
0: .line 53
aload 0 /* x */
invokestatic org.bouncycastle.math.raw.Nat448.isZero64:([J)Z
ifeq 2
1: .line 55
new java.lang.IllegalStateException
dup
invokespecial java.lang.IllegalStateException.<init>:()V
athrow
2: .line 60
StackMap locals:
StackMap stack:
invokestatic org.bouncycastle.math.raw.Nat448.create64:()[J
astore 2 /* t0 */
start local 2 // long[] t0
3: .line 61
invokestatic org.bouncycastle.math.raw.Nat448.create64:()[J
astore 3 /* t1 */
start local 3 // long[] t1
4: .line 62
invokestatic org.bouncycastle.math.raw.Nat448.create64:()[J
astore 4 /* t2 */
start local 4 // long[] t2
5: .line 64
aload 0 /* x */
aload 2 /* t0 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT409Field.square:([J[J)V
6: .line 67
aload 2 /* t0 */
iconst_1
aload 3 /* t1 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT409Field.squareN:([JI[J)V
7: .line 68
aload 2 /* t0 */
aload 3 /* t1 */
aload 2 /* t0 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT409Field.multiply:([J[J[J)V
8: .line 69
aload 3 /* t1 */
iconst_1
aload 3 /* t1 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT409Field.squareN:([JI[J)V
9: .line 70
aload 2 /* t0 */
aload 3 /* t1 */
aload 2 /* t0 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT409Field.multiply:([J[J[J)V
10: .line 73
aload 2 /* t0 */
iconst_3
aload 3 /* t1 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT409Field.squareN:([JI[J)V
11: .line 74
aload 2 /* t0 */
aload 3 /* t1 */
aload 2 /* t0 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT409Field.multiply:([J[J[J)V
12: .line 77
aload 2 /* t0 */
bipush 6
aload 3 /* t1 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT409Field.squareN:([JI[J)V
13: .line 78
aload 2 /* t0 */
aload 3 /* t1 */
aload 2 /* t0 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT409Field.multiply:([J[J[J)V
14: .line 81
aload 2 /* t0 */
bipush 12
aload 3 /* t1 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT409Field.squareN:([JI[J)V
15: .line 82
aload 2 /* t0 */
aload 3 /* t1 */
aload 4 /* t2 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT409Field.multiply:([J[J[J)V
16: .line 85
aload 4 /* t2 */
bipush 24
aload 2 /* t0 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT409Field.squareN:([JI[J)V
17: .line 86
aload 2 /* t0 */
bipush 24
aload 3 /* t1 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT409Field.squareN:([JI[J)V
18: .line 87
aload 2 /* t0 */
aload 3 /* t1 */
aload 2 /* t0 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT409Field.multiply:([J[J[J)V
19: .line 90
aload 2 /* t0 */
bipush 48
aload 3 /* t1 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT409Field.squareN:([JI[J)V
20: .line 91
aload 2 /* t0 */
aload 3 /* t1 */
aload 2 /* t0 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT409Field.multiply:([J[J[J)V
21: .line 94
aload 2 /* t0 */
bipush 96
aload 3 /* t1 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT409Field.squareN:([JI[J)V
22: .line 95
aload 2 /* t0 */
aload 3 /* t1 */
aload 2 /* t0 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT409Field.multiply:([J[J[J)V
23: .line 98
aload 2 /* t0 */
sipush 192
aload 3 /* t1 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT409Field.squareN:([JI[J)V
24: .line 99
aload 2 /* t0 */
aload 3 /* t1 */
aload 2 /* t0 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT409Field.multiply:([J[J[J)V
25: .line 101
aload 2 /* t0 */
aload 4 /* t2 */
aload 1 /* z */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT409Field.multiply:([J[J[J)V
26: .line 102
return
end local 4 // long[] t2
end local 3 // long[] t1
end local 2 // long[] t0
end local 1 // long[] z
end local 0 // long[] x
LocalVariableTable:
Start End Slot Name Signature
0 27 0 x [J
0 27 1 z [J
3 27 2 t0 [J
4 27 3 t1 [J
5 27 4 t2 [J
MethodParameters:
Name Flags
x
z
public static void multiply(long[], long[], long[]);
descriptor: ([J[J[J)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=4, args_size=3
start local 0 // long[] x
start local 1 // long[] y
start local 2 // long[] z
0: .line 106
invokestatic org.bouncycastle.math.raw.Nat448.createExt64:()[J
astore 3 /* tt */
start local 3 // long[] tt
1: .line 107
aload 0 /* x */
aload 1 /* y */
aload 3 /* tt */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT409Field.implMultiply:([J[J[J)V
2: .line 108
aload 3 /* tt */
aload 2 /* z */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT409Field.reduce:([J[J)V
3: .line 109
return
end local 3 // long[] tt
end local 2 // long[] z
end local 1 // long[] y
end local 0 // long[] x
LocalVariableTable:
Start End Slot Name Signature
0 4 0 x [J
0 4 1 y [J
0 4 2 z [J
1 4 3 tt [J
MethodParameters:
Name Flags
x
y
z
public static void multiplyAddToExt(long[], long[], long[]);
descriptor: ([J[J[J)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=4, args_size=3
start local 0 // long[] x
start local 1 // long[] y
start local 2 // long[] zz
0: .line 113
invokestatic org.bouncycastle.math.raw.Nat448.createExt64:()[J
astore 3 /* tt */
start local 3 // long[] tt
1: .line 114
aload 0 /* x */
aload 1 /* y */
aload 3 /* tt */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT409Field.implMultiply:([J[J[J)V
2: .line 115
aload 2 /* zz */
aload 3 /* tt */
aload 2 /* zz */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT409Field.addExt:([J[J[J)V
3: .line 116
return
end local 3 // long[] tt
end local 2 // long[] zz
end local 1 // long[] y
end local 0 // long[] x
LocalVariableTable:
Start End Slot Name Signature
0 4 0 x [J
0 4 1 y [J
0 4 2 zz [J
1 4 3 tt [J
MethodParameters:
Name Flags
x
y
zz
public static void reduce(long[], long[]);
descriptor: ([J[J)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=7, locals=22, args_size=2
start local 0 // long[] xx
start local 1 // long[] z
0: .line 120
aload 0 /* xx */
iconst_0
laload
lstore 2 /* x00 */
start local 2 // long x00
1: aload 0 /* xx */
iconst_1
laload
lstore 4 /* x01 */
start local 4 // long x01
2: aload 0 /* xx */
iconst_2
laload
lstore 6 /* x02 */
start local 6 // long x02
3: aload 0 /* xx */
iconst_3
laload
lstore 8 /* x03 */
start local 8 // long x03
4: .line 121
aload 0 /* xx */
iconst_4
laload
lstore 10 /* x04 */
start local 10 // long x04
5: aload 0 /* xx */
iconst_5
laload
lstore 12 /* x05 */
start local 12 // long x05
6: aload 0 /* xx */
bipush 6
laload
lstore 14 /* x06 */
start local 14 // long x06
7: aload 0 /* xx */
bipush 7
laload
lstore 16 /* x07 */
start local 16 // long x07
8: .line 123
aload 0 /* xx */
bipush 12
laload
lstore 18 /* u */
start local 18 // long u
9: .line 124
lload 12 /* x05 */
lload 18 /* u */
bipush 39
lshl
lxor
lstore 12 /* x05 */
10: .line 125
lload 14 /* x06 */
lload 18 /* u */
bipush 25
lushr
lload 18 /* u */
bipush 62
lshl
lxor
lxor
lstore 14 /* x06 */
11: .line 126
lload 16 /* x07 */
lload 18 /* u */
iconst_2
lushr
lxor
lstore 16 /* x07 */
12: .line 128
aload 0 /* xx */
bipush 11
laload
lstore 18 /* u */
13: .line 129
lload 10 /* x04 */
lload 18 /* u */
bipush 39
lshl
lxor
lstore 10 /* x04 */
14: .line 130
lload 12 /* x05 */
lload 18 /* u */
bipush 25
lushr
lload 18 /* u */
bipush 62
lshl
lxor
lxor
lstore 12 /* x05 */
15: .line 131
lload 14 /* x06 */
lload 18 /* u */
iconst_2
lushr
lxor
lstore 14 /* x06 */
16: .line 133
aload 0 /* xx */
bipush 10
laload
lstore 18 /* u */
17: .line 134
lload 8 /* x03 */
lload 18 /* u */
bipush 39
lshl
lxor
lstore 8 /* x03 */
18: .line 135
lload 10 /* x04 */
lload 18 /* u */
bipush 25
lushr
lload 18 /* u */
bipush 62
lshl
lxor
lxor
lstore 10 /* x04 */
19: .line 136
lload 12 /* x05 */
lload 18 /* u */
iconst_2
lushr
lxor
lstore 12 /* x05 */
20: .line 138
aload 0 /* xx */
bipush 9
laload
lstore 18 /* u */
21: .line 139
lload 6 /* x02 */
lload 18 /* u */
bipush 39
lshl
lxor
lstore 6 /* x02 */
22: .line 140
lload 8 /* x03 */
lload 18 /* u */
bipush 25
lushr
lload 18 /* u */
bipush 62
lshl
lxor
lxor
lstore 8 /* x03 */
23: .line 141
lload 10 /* x04 */
lload 18 /* u */
iconst_2
lushr
lxor
lstore 10 /* x04 */
24: .line 143
aload 0 /* xx */
bipush 8
laload
lstore 18 /* u */
25: .line 144
lload 4 /* x01 */
lload 18 /* u */
bipush 39
lshl
lxor
lstore 4 /* x01 */
26: .line 145
lload 6 /* x02 */
lload 18 /* u */
bipush 25
lushr
lload 18 /* u */
bipush 62
lshl
lxor
lxor
lstore 6 /* x02 */
27: .line 146
lload 8 /* x03 */
lload 18 /* u */
iconst_2
lushr
lxor
lstore 8 /* x03 */
28: .line 148
lload 16 /* x07 */
lstore 18 /* u */
29: .line 149
lload 2 /* x00 */
lload 18 /* u */
bipush 39
lshl
lxor
lstore 2 /* x00 */
30: .line 150
lload 4 /* x01 */
lload 18 /* u */
bipush 25
lushr
lload 18 /* u */
bipush 62
lshl
lxor
lxor
lstore 4 /* x01 */
31: .line 151
lload 6 /* x02 */
lload 18 /* u */
iconst_2
lushr
lxor
lstore 6 /* x02 */
32: .line 153
lload 14 /* x06 */
bipush 25
lushr
lstore 20 /* t */
start local 20 // long t
33: .line 154
aload 1 /* z */
iconst_0
lload 2 /* x00 */
lload 20 /* t */
lxor
lastore
34: .line 155
aload 1 /* z */
iconst_1
lload 4 /* x01 */
lload 20 /* t */
bipush 23
lshl
lxor
lastore
35: .line 156
aload 1 /* z */
iconst_2
lload 6 /* x02 */
lastore
36: .line 157
aload 1 /* z */
iconst_3
lload 8 /* x03 */
lastore
37: .line 158
aload 1 /* z */
iconst_4
lload 10 /* x04 */
lastore
38: .line 159
aload 1 /* z */
iconst_5
lload 12 /* x05 */
lastore
39: .line 160
aload 1 /* z */
bipush 6
lload 14 /* x06 */
ldc 33554431
land
lastore
40: .line 161
return
end local 20 // long t
end local 18 // long u
end local 16 // long x07
end local 14 // long x06
end local 12 // long x05
end local 10 // long x04
end local 8 // long x03
end local 6 // long x02
end local 4 // long x01
end local 2 // long x00
end local 1 // long[] z
end local 0 // long[] xx
LocalVariableTable:
Start End Slot Name Signature
0 41 0 xx [J
0 41 1 z [J
1 41 2 x00 J
2 41 4 x01 J
3 41 6 x02 J
4 41 8 x03 J
5 41 10 x04 J
6 41 12 x05 J
7 41 14 x06 J
8 41 16 x07 J
9 41 18 u J
33 41 20 t J
MethodParameters:
Name Flags
xx
z
public static void reduce39(long[], int);
descriptor: ([JI)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=7, locals=6, args_size=2
start local 0 // long[] z
start local 1 // int zOff
0: .line 165
aload 0 /* z */
iload 1 /* zOff */
bipush 6
iadd
laload
lstore 2 /* z6 */
start local 2 // long z6
1: lload 2 /* z6 */
bipush 25
lushr
lstore 4 /* t */
start local 4 // long t
2: .line 166
aload 0 /* z */
iload 1 /* zOff */
dup2
laload
lload 4 /* t */
lxor
lastore
3: .line 167
aload 0 /* z */
iload 1 /* zOff */
iconst_1
iadd
dup2
laload
lload 4 /* t */
bipush 23
lshl
lxor
lastore
4: .line 168
aload 0 /* z */
iload 1 /* zOff */
bipush 6
iadd
lload 2 /* z6 */
ldc 33554431
land
lastore
5: .line 169
return
end local 4 // long t
end local 2 // long z6
end local 1 // int zOff
end local 0 // long[] z
LocalVariableTable:
Start End Slot Name Signature
0 6 0 z [J
0 6 1 zOff I
1 6 2 z6 J
2 6 4 t J
MethodParameters:
Name Flags
z
zOff
public static void sqrt(long[], long[]);
descriptor: ([J[J)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=7, locals=22, args_size=2
start local 0 // long[] x
start local 1 // long[] z
0: .line 174
aload 0 /* x */
iconst_0
laload
invokestatic org.bouncycastle.math.raw.Interleave.unshuffle:(J)J
lstore 2 /* u0 */
start local 2 // long u0
1: aload 0 /* x */
iconst_1
laload
invokestatic org.bouncycastle.math.raw.Interleave.unshuffle:(J)J
lstore 4 /* u1 */
start local 4 // long u1
2: .line 175
lload 2 /* u0 */
ldc 4294967295
land
lload 4 /* u1 */
bipush 32
lshl
lor
lstore 6 /* e0 */
start local 6 // long e0
3: .line 176
lload 2 /* u0 */
bipush 32
lushr
lload 4 /* u1 */
ldc -4294967296
land
lor
lstore 8 /* c0 */
start local 8 // long c0
4: .line 178
aload 0 /* x */
iconst_2
laload
invokestatic org.bouncycastle.math.raw.Interleave.unshuffle:(J)J
lstore 2 /* u0 */
aload 0 /* x */
iconst_3
laload
invokestatic org.bouncycastle.math.raw.Interleave.unshuffle:(J)J
lstore 4 /* u1 */
5: .line 179
lload 2 /* u0 */
ldc 4294967295
land
lload 4 /* u1 */
bipush 32
lshl
lor
lstore 10 /* e1 */
start local 10 // long e1
6: .line 180
lload 2 /* u0 */
bipush 32
lushr
lload 4 /* u1 */
ldc -4294967296
land
lor
lstore 12 /* c1 */
start local 12 // long c1
7: .line 182
aload 0 /* x */
iconst_4
laload
invokestatic org.bouncycastle.math.raw.Interleave.unshuffle:(J)J
lstore 2 /* u0 */
aload 0 /* x */
iconst_5
laload
invokestatic org.bouncycastle.math.raw.Interleave.unshuffle:(J)J
lstore 4 /* u1 */
8: .line 183
lload 2 /* u0 */
ldc 4294967295
land
lload 4 /* u1 */
bipush 32
lshl
lor
lstore 14 /* e2 */
start local 14 // long e2
9: .line 184
lload 2 /* u0 */
bipush 32
lushr
lload 4 /* u1 */
ldc -4294967296
land
lor
lstore 16 /* c2 */
start local 16 // long c2
10: .line 186
aload 0 /* x */
bipush 6
laload
invokestatic org.bouncycastle.math.raw.Interleave.unshuffle:(J)J
lstore 2 /* u0 */
11: .line 187
lload 2 /* u0 */
ldc 4294967295
land
lstore 18 /* e3 */
start local 18 // long e3
12: .line 188
lload 2 /* u0 */
bipush 32
lushr
lstore 20 /* c3 */
start local 20 // long c3
13: .line 190
aload 1 /* z */
iconst_0
lload 6 /* e0 */
lload 8 /* c0 */
bipush 44
lshl
lxor
lastore
14: .line 191
aload 1 /* z */
iconst_1
lload 10 /* e1 */
lload 12 /* c1 */
bipush 44
lshl
lxor
lload 8 /* c0 */
bipush 20
lushr
lxor
lastore
15: .line 192
aload 1 /* z */
iconst_2
lload 14 /* e2 */
lload 16 /* c2 */
bipush 44
lshl
lxor
lload 12 /* c1 */
bipush 20
lushr
lxor
lastore
16: .line 193
aload 1 /* z */
iconst_3
lload 18 /* e3 */
lload 20 /* c3 */
bipush 44
lshl
lxor
lload 16 /* c2 */
bipush 20
lushr
lxor
lload 8 /* c0 */
bipush 13
lshl
lxor
lastore
17: .line 194
aload 1 /* z */
iconst_4
lload 20 /* c3 */
bipush 20
lushr
lload 12 /* c1 */
bipush 13
lshl
lxor
lload 8 /* c0 */
bipush 51
lushr
lxor
lastore
18: .line 195
aload 1 /* z */
iconst_5
lload 16 /* c2 */
bipush 13
lshl
lload 12 /* c1 */
bipush 51
lushr
lxor
lastore
19: .line 196
aload 1 /* z */
bipush 6
lload 20 /* c3 */
bipush 13
lshl
lload 16 /* c2 */
bipush 51
lushr
lxor
lastore
20: .line 199
return
end local 20 // long c3
end local 18 // long e3
end local 16 // long c2
end local 14 // long e2
end local 12 // long c1
end local 10 // long e1
end local 8 // long c0
end local 6 // long e0
end local 4 // long u1
end local 2 // long u0
end local 1 // long[] z
end local 0 // long[] x
LocalVariableTable:
Start End Slot Name Signature
0 21 0 x [J
0 21 1 z [J
1 21 2 u0 J
2 21 4 u1 J
3 21 6 e0 J
4 21 8 c0 J
6 21 10 e1 J
7 21 12 c1 J
9 21 14 e2 J
10 21 16 c2 J
12 21 18 e3 J
13 21 20 c3 J
MethodParameters:
Name Flags
x
z
public static void square(long[], long[]);
descriptor: ([J[J)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=3, args_size=2
start local 0 // long[] x
start local 1 // long[] z
0: .line 203
bipush 13
invokestatic org.bouncycastle.math.raw.Nat.create64:(I)[J
astore 2 /* tt */
start local 2 // long[] tt
1: .line 204
aload 0 /* x */
aload 2 /* tt */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT409Field.implSquare:([J[J)V
2: .line 205
aload 2 /* tt */
aload 1 /* z */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT409Field.reduce:([J[J)V
3: .line 206
return
end local 2 // long[] tt
end local 1 // long[] z
end local 0 // long[] x
LocalVariableTable:
Start End Slot Name Signature
0 4 0 x [J
0 4 1 z [J
1 4 2 tt [J
MethodParameters:
Name Flags
x
z
public static void squareAddToExt(long[], long[]);
descriptor: ([J[J)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=3, args_size=2
start local 0 // long[] x
start local 1 // long[] zz
0: .line 210
bipush 13
invokestatic org.bouncycastle.math.raw.Nat.create64:(I)[J
astore 2 /* tt */
start local 2 // long[] tt
1: .line 211
aload 0 /* x */
aload 2 /* tt */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT409Field.implSquare:([J[J)V
2: .line 212
aload 1 /* zz */
aload 2 /* tt */
aload 1 /* zz */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT409Field.addExt:([J[J[J)V
3: .line 213
return
end local 2 // long[] tt
end local 1 // long[] zz
end local 0 // long[] x
LocalVariableTable:
Start End Slot Name Signature
0 4 0 x [J
0 4 1 zz [J
1 4 2 tt [J
MethodParameters:
Name Flags
x
zz
public static void squareN(long[], int, long[]);
descriptor: ([JI[J)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=4, args_size=3
start local 0 // long[] x
start local 1 // int n
start local 2 // long[] z
0: .line 219
bipush 13
invokestatic org.bouncycastle.math.raw.Nat.create64:(I)[J
astore 3 /* tt */
start local 3 // long[] tt
1: .line 220
aload 0 /* x */
aload 3 /* tt */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT409Field.implSquare:([J[J)V
2: .line 221
aload 3 /* tt */
aload 2 /* z */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT409Field.reduce:([J[J)V
3: .line 223
goto 6
4: .line 225
StackMap locals: long[]
StackMap stack:
aload 2 /* z */
aload 3 /* tt */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT409Field.implSquare:([J[J)V
5: .line 226
aload 3 /* tt */
aload 2 /* z */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT409Field.reduce:([J[J)V
6: .line 223
StackMap locals:
StackMap stack:
iinc 1 /* n */ -1
iload 1 /* n */
ifgt 4
7: .line 228
return
end local 3 // long[] tt
end local 2 // long[] z
end local 1 // int n
end local 0 // long[] x
LocalVariableTable:
Start End Slot Name Signature
0 8 0 x [J
0 8 1 n I
0 8 2 z [J
1 8 3 tt [J
MethodParameters:
Name Flags
x
n
z
public static int trace(long[]);
descriptor: ([J)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 // long[] x
0: .line 233
aload 0 /* x */
iconst_0
laload
l2i
iconst_1
iand
ireturn
end local 0 // long[] x
LocalVariableTable:
Start End Slot Name Signature
0 1 0 x [J
MethodParameters:
Name Flags
x
protected static void implCompactExt(long[]);
descriptor: ([J)V
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=7, locals=29, args_size=1
start local 0 // long[] zz
0: .line 238
aload 0 /* zz */
iconst_0
laload
lstore 1 /* z00 */
start local 1 // long z00
1: aload 0 /* zz */
iconst_1
laload
lstore 3 /* z01 */
start local 3 // long z01
2: aload 0 /* zz */
iconst_2
laload
lstore 5 /* z02 */
start local 5 // long z02
3: aload 0 /* zz */
iconst_3
laload
lstore 7 /* z03 */
start local 7 // long z03
4: aload 0 /* zz */
iconst_4
laload
lstore 9 /* z04 */
start local 9 // long z04
5: aload 0 /* zz */
iconst_5
laload
lstore 11 /* z05 */
start local 11 // long z05
6: aload 0 /* zz */
bipush 6
laload
lstore 13 /* z06 */
start local 13 // long z06
7: .line 239
aload 0 /* zz */
bipush 7
laload
lstore 15 /* z07 */
start local 15 // long z07
8: aload 0 /* zz */
bipush 8
laload
lstore 17 /* z08 */
start local 17 // long z08
9: aload 0 /* zz */
bipush 9
laload
lstore 19 /* z09 */
start local 19 // long z09
10: aload 0 /* zz */
bipush 10
laload
lstore 21 /* z10 */
start local 21 // long z10
11: aload 0 /* zz */
bipush 11
laload
lstore 23 /* z11 */
start local 23 // long z11
12: aload 0 /* zz */
bipush 12
laload
lstore 25 /* z12 */
start local 25 // long z12
13: aload 0 /* zz */
bipush 13
laload
lstore 27 /* z13 */
start local 27 // long z13
14: .line 240
aload 0 /* zz */
iconst_0
lload 1 /* z00 */
lload 3 /* z01 */
bipush 59
lshl
lxor
lastore
15: .line 241
aload 0 /* zz */
iconst_1
lload 3 /* z01 */
iconst_5
lushr
lload 5 /* z02 */
bipush 54
lshl
lxor
lastore
16: .line 242
aload 0 /* zz */
iconst_2
lload 5 /* z02 */
bipush 10
lushr
lload 7 /* z03 */
bipush 49
lshl
lxor
lastore
17: .line 243
aload 0 /* zz */
iconst_3
lload 7 /* z03 */
bipush 15
lushr
lload 9 /* z04 */
bipush 44
lshl
lxor
lastore
18: .line 244
aload 0 /* zz */
iconst_4
lload 9 /* z04 */
bipush 20
lushr
lload 11 /* z05 */
bipush 39
lshl
lxor
lastore
19: .line 245
aload 0 /* zz */
iconst_5
lload 11 /* z05 */
bipush 25
lushr
lload 13 /* z06 */
bipush 34
lshl
lxor
lastore
20: .line 246
aload 0 /* zz */
bipush 6
lload 13 /* z06 */
bipush 30
lushr
lload 15 /* z07 */
bipush 29
lshl
lxor
lastore
21: .line 247
aload 0 /* zz */
bipush 7
lload 15 /* z07 */
bipush 35
lushr
lload 17 /* z08 */
bipush 24
lshl
lxor
lastore
22: .line 248
aload 0 /* zz */
bipush 8
lload 17 /* z08 */
bipush 40
lushr
lload 19 /* z09 */
bipush 19
lshl
lxor
lastore
23: .line 249
aload 0 /* zz */
bipush 9
lload 19 /* z09 */
bipush 45
lushr
lload 21 /* z10 */
bipush 14
lshl
lxor
lastore
24: .line 250
aload 0 /* zz */
bipush 10
lload 21 /* z10 */
bipush 50
lushr
lload 23 /* z11 */
bipush 9
lshl
lxor
lastore
25: .line 251
aload 0 /* zz */
bipush 11
lload 23 /* z11 */
bipush 55
lushr
lload 25 /* z12 */
iconst_4
lshl
lxor
26: .line 252
lload 27 /* z13 */
bipush 63
lshl
lxor
27: .line 251
lastore
28: .line 253
aload 0 /* zz */
bipush 12
lload 25 /* z12 */
bipush 60
lushr
29: .line 254
lload 27 /* z13 */
iconst_1
lushr
lxor
30: .line 253
lastore
31: .line 255
aload 0 /* zz */
bipush 13
lconst_0
lastore
32: .line 256
return
end local 27 // long z13
end local 25 // long z12
end local 23 // long z11
end local 21 // long z10
end local 19 // long z09
end local 17 // long z08
end local 15 // long z07
end local 13 // long z06
end local 11 // long z05
end local 9 // long z04
end local 7 // long z03
end local 5 // long z02
end local 3 // long z01
end local 1 // long z00
end local 0 // long[] zz
LocalVariableTable:
Start End Slot Name Signature
0 33 0 zz [J
1 33 1 z00 J
2 33 3 z01 J
3 33 5 z02 J
4 33 7 z03 J
5 33 9 z04 J
6 33 11 z05 J
7 33 13 z06 J
8 33 15 z07 J
9 33 17 z08 J
10 33 19 z09 J
11 33 21 z10 J
12 33 23 z11 J
13 33 25 z12 J
14 33 27 z13 J
MethodParameters:
Name Flags
zz
protected static void implExpand(long[], long[]);
descriptor: ([J[J)V
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=7, locals=16, args_size=2
start local 0 // long[] x
start local 1 // long[] z
0: .line 260
aload 0 /* x */
iconst_0
laload
lstore 2 /* x0 */
start local 2 // long x0
1: aload 0 /* x */
iconst_1
laload
lstore 4 /* x1 */
start local 4 // long x1
2: aload 0 /* x */
iconst_2
laload
lstore 6 /* x2 */
start local 6 // long x2
3: aload 0 /* x */
iconst_3
laload
lstore 8 /* x3 */
start local 8 // long x3
4: aload 0 /* x */
iconst_4
laload
lstore 10 /* x4 */
start local 10 // long x4
5: aload 0 /* x */
iconst_5
laload
lstore 12 /* x5 */
start local 12 // long x5
6: aload 0 /* x */
bipush 6
laload
lstore 14 /* x6 */
start local 14 // long x6
7: .line 261
aload 1 /* z */
iconst_0
lload 2 /* x0 */
ldc 576460752303423487
land
lastore
8: .line 262
aload 1 /* z */
iconst_1
lload 2 /* x0 */
bipush 59
lushr
lload 4 /* x1 */
iconst_5
lshl
lxor
ldc 576460752303423487
land
lastore
9: .line 263
aload 1 /* z */
iconst_2
lload 4 /* x1 */
bipush 54
lushr
lload 6 /* x2 */
bipush 10
lshl
lxor
ldc 576460752303423487
land
lastore
10: .line 264
aload 1 /* z */
iconst_3
lload 6 /* x2 */
bipush 49
lushr
lload 8 /* x3 */
bipush 15
lshl
lxor
ldc 576460752303423487
land
lastore
11: .line 265
aload 1 /* z */
iconst_4
lload 8 /* x3 */
bipush 44
lushr
lload 10 /* x4 */
bipush 20
lshl
lxor
ldc 576460752303423487
land
lastore
12: .line 266
aload 1 /* z */
iconst_5
lload 10 /* x4 */
bipush 39
lushr
lload 12 /* x5 */
bipush 25
lshl
lxor
ldc 576460752303423487
land
lastore
13: .line 267
aload 1 /* z */
bipush 6
lload 12 /* x5 */
bipush 34
lushr
lload 14 /* x6 */
bipush 30
lshl
lxor
lastore
14: .line 268
return
end local 14 // long x6
end local 12 // long x5
end local 10 // long x4
end local 8 // long x3
end local 6 // long x2
end local 4 // long x1
end local 2 // long x0
end local 1 // long[] z
end local 0 // long[] x
LocalVariableTable:
Start End Slot Name Signature
0 15 0 x [J
0 15 1 z [J
1 15 2 x0 J
2 15 4 x1 J
3 15 6 x2 J
4 15 8 x3 J
5 15 10 x4 J
6 15 12 x5 J
7 15 14 x6 J
MethodParameters:
Name Flags
x
z
protected static void implMultiply(long[], long[], long[]);
descriptor: ([J[J[J)V
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=5, locals=6, args_size=3
start local 0 // long[] x
start local 1 // long[] y
start local 2 // long[] zz
0: .line 272
bipush 7
newarray 11
astore 3 /* a */
start local 3 // long[] a
1: bipush 7
newarray 11
astore 4 /* b */
start local 4 // long[] b
2: .line 273
aload 0 /* x */
aload 3 /* a */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT409Field.implExpand:([J[J)V
3: .line 274
aload 1 /* y */
aload 4 /* b */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT409Field.implExpand:([J[J)V
4: .line 276
iconst_0
istore 5 /* i */
start local 5 // int i
5: goto 8
6: .line 278
StackMap locals: long[] long[] int
StackMap stack:
aload 3 /* a */
aload 4 /* b */
iload 5 /* i */
laload
aload 2 /* zz */
iload 5 /* i */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT409Field.implMulwAcc:([JJ[JI)V
7: .line 276
iinc 5 /* i */ 1
StackMap locals:
StackMap stack:
8: iload 5 /* i */
bipush 7
if_icmplt 6
end local 5 // int i
9: .line 281
aload 2 /* zz */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT409Field.implCompactExt:([J)V
10: .line 282
return
end local 4 // long[] b
end local 3 // long[] a
end local 2 // long[] zz
end local 1 // long[] y
end local 0 // long[] x
LocalVariableTable:
Start End Slot Name Signature
0 11 0 x [J
0 11 1 y [J
0 11 2 zz [J
1 11 3 a [J
2 11 4 b [J
5 9 5 i I
MethodParameters:
Name Flags
x
y
zz
protected static void implMulwAcc(long[], long, long[], int);
descriptor: ([JJ[JI)V
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=9, locals=17, args_size=4
start local 0 // long[] xs
start local 1 // long y
start local 3 // long[] z
start local 4 // int zOff
0: .line 288
bipush 8
newarray 11
astore 5 /* u */
start local 5 // long[] u
1: .line 290
aload 5 /* u */
iconst_1
lload 1 /* y */
lastore
2: .line 291
aload 5 /* u */
iconst_2
aload 5 /* u */
iconst_1
laload
iconst_1
lshl
lastore
3: .line 292
aload 5 /* u */
iconst_3
aload 5 /* u */
iconst_2
laload
lload 1 /* y */
lxor
lastore
4: .line 293
aload 5 /* u */
iconst_4
aload 5 /* u */
iconst_2
laload
iconst_1
lshl
lastore
5: .line 294
aload 5 /* u */
iconst_5
aload 5 /* u */
iconst_4
laload
lload 1 /* y */
lxor
lastore
6: .line 295
aload 5 /* u */
bipush 6
aload 5 /* u */
iconst_3
laload
iconst_1
lshl
lastore
7: .line 296
aload 5 /* u */
bipush 7
aload 5 /* u */
bipush 6
laload
lload 1 /* y */
lxor
lastore
8: .line 298
iconst_0
istore 6 /* i */
start local 6 // int i
9: goto 27
10: .line 300
StackMap locals: long[] int
StackMap stack:
aload 0 /* xs */
iload 6 /* i */
laload
lstore 7 /* x */
start local 7 // long x
11: .line 304
lload 7 /* x */
l2i
istore 9 /* j */
start local 9 // int j
12: .line 305
lconst_0
lstore 12 /* h */
start local 12 // long h
13: aload 5 /* u */
iload 9 /* j */
bipush 7
iand
laload
14: .line 306
aload 5 /* u */
iload 9 /* j */
iconst_3
iushr
bipush 7
iand
laload
iconst_3
lshl
lxor
lstore 14 /* l */
start local 14 // long l
15: .line 307
bipush 54
istore 16 /* k */
start local 16 // int k
16: .line 310
StackMap locals: long[] long long[] int long[] int long int top top long long int
StackMap stack:
lload 7 /* x */
iload 16 /* k */
lushr
l2i
istore 9 /* j */
17: .line 311
aload 5 /* u */
iload 9 /* j */
bipush 7
iand
laload
18: .line 312
aload 5 /* u */
iload 9 /* j */
iconst_3
iushr
bipush 7
iand
laload
iconst_3
lshl
19: .line 311
lxor
lstore 10 /* g */
start local 10 // long g
20: .line 313
lload 14 /* l */
lload 10 /* g */
iload 16 /* k */
lshl
lxor
lstore 14 /* l */
21: .line 314
lload 12 /* h */
lload 10 /* g */
iload 16 /* k */
ineg
lushr
lxor
lstore 12 /* h */
22: .line 316
iinc 16 /* k */ -6
iload 16 /* k */
23: .line 308
ifgt 16
24: .line 320
aload 3 /* z */
iload 4 /* zOff */
iload 6 /* i */
iadd
dup2
laload
lload 14 /* l */
ldc 576460752303423487
land
lxor
lastore
25: .line 321
aload 3 /* z */
iload 4 /* zOff */
iload 6 /* i */
iadd
iconst_1
iadd
dup2
laload
lload 14 /* l */
bipush 59
lushr
lload 12 /* h */
iconst_5
lshl
lxor
lxor
lastore
end local 16 // int k
end local 14 // long l
end local 12 // long h
end local 10 // long g
end local 9 // int j
end local 7 // long x
26: .line 298
iinc 6 /* i */ 1
StackMap locals: long[] long long[] int long[] int
StackMap stack:
27: iload 6 /* i */
bipush 7
if_icmplt 10
end local 6 // int i
28: .line 323
return
end local 5 // long[] u
end local 4 // int zOff
end local 3 // long[] z
end local 1 // long y
end local 0 // long[] xs
LocalVariableTable:
Start End Slot Name Signature
0 29 0 xs [J
0 29 1 y J
0 29 3 z [J
0 29 4 zOff I
1 29 5 u [J
9 28 6 i I
11 26 7 x J
12 26 9 j I
20 26 10 g J
13 26 12 h J
15 26 14 l J
16 26 16 k I
MethodParameters:
Name Flags
xs
y
z
zOff
protected static void implSquare(long[], long[]);
descriptor: ([J[J)V
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=5, locals=3, args_size=2
start local 0 // long[] x
start local 1 // long[] zz
0: .line 327
iconst_0
istore 2 /* i */
start local 2 // int i
1: goto 4
2: .line 329
StackMap locals: int
StackMap stack:
aload 0 /* x */
iload 2 /* i */
laload
aload 1 /* zz */
iload 2 /* i */
iconst_1
ishl
invokestatic org.bouncycastle.math.raw.Interleave.expand64To128:(J[JI)V
3: .line 327
iinc 2 /* i */ 1
StackMap locals:
StackMap stack:
4: iload 2 /* i */
bipush 6
if_icmplt 2
end local 2 // int i
5: .line 331
aload 1 /* zz */
bipush 12
aload 0 /* x */
bipush 6
laload
l2i
invokestatic org.bouncycastle.math.raw.Interleave.expand32to64:(I)J
lastore
6: .line 332
return
end local 1 // long[] zz
end local 0 // long[] x
LocalVariableTable:
Start End Slot Name Signature
0 7 0 x [J
0 7 1 zz [J
1 5 2 i I
MethodParameters:
Name Flags
x
zz
}
SourceFile: "SecT409Field.java"