public class org.bouncycastle.math.ec.custom.sec.SecT239Field
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.bouncycastle.math.ec.custom.sec.SecT239Field
super_class: java.lang.Object
{
private static final long M47;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 140737488355327
private static final long M60;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1152921504606846975
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.SecT239Field this
0: .line 8
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
return
end local 0 // org.bouncycastle.math.ec.custom.sec.SecT239Field this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/math/ec/custom/sec/SecT239Field;
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 15
aload 2 /* z */
iconst_0
aload 0 /* x */
iconst_0
laload
aload 1 /* y */
iconst_0
laload
lxor
lastore
1: .line 16
aload 2 /* z */
iconst_1
aload 0 /* x */
iconst_1
laload
aload 1 /* y */
iconst_1
laload
lxor
lastore
2: .line 17
aload 2 /* z */
iconst_2
aload 0 /* x */
iconst_2
laload
aload 1 /* y */
iconst_2
laload
lxor
lastore
3: .line 18
aload 2 /* z */
iconst_3
aload 0 /* x */
iconst_3
laload
aload 1 /* y */
iconst_3
laload
lxor
lastore
4: .line 19
return
end local 2 // long[] z
end local 1 // long[] y
end local 0 // long[] x
LocalVariableTable:
Start End Slot Name Signature
0 5 0 x [J
0 5 1 y [J
0 5 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=3, args_size=3
start local 0 // long[] xx
start local 1 // long[] yy
start local 2 // long[] zz
0: .line 23
aload 2 /* zz */
iconst_0
aload 0 /* xx */
iconst_0
laload
aload 1 /* yy */
iconst_0
laload
lxor
lastore
1: .line 24
aload 2 /* zz */
iconst_1
aload 0 /* xx */
iconst_1
laload
aload 1 /* yy */
iconst_1
laload
lxor
lastore
2: .line 25
aload 2 /* zz */
iconst_2
aload 0 /* xx */
iconst_2
laload
aload 1 /* yy */
iconst_2
laload
lxor
lastore
3: .line 26
aload 2 /* zz */
iconst_3
aload 0 /* xx */
iconst_3
laload
aload 1 /* yy */
iconst_3
laload
lxor
lastore
4: .line 27
aload 2 /* zz */
iconst_4
aload 0 /* xx */
iconst_4
laload
aload 1 /* yy */
iconst_4
laload
lxor
lastore
5: .line 28
aload 2 /* zz */
iconst_5
aload 0 /* xx */
iconst_5
laload
aload 1 /* yy */
iconst_5
laload
lxor
lastore
6: .line 29
aload 2 /* zz */
bipush 6
aload 0 /* xx */
bipush 6
laload
aload 1 /* yy */
bipush 6
laload
lxor
lastore
7: .line 30
aload 2 /* zz */
bipush 7
aload 0 /* xx */
bipush 7
laload
aload 1 /* yy */
bipush 7
laload
lxor
lastore
8: .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 9 0 xx [J
0 9 1 yy [J
0 9 2 zz [J
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
return
end local 1 // long[] z
end local 0 // long[] x
LocalVariableTable:
Start End Slot Name Signature
0 5 0 x [J
0 5 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 43
aload 0 /* x */
invokestatic org.bouncycastle.math.raw.Nat256.fromBigInteger64:(Ljava/math/BigInteger;)[J
astore 1 /* z */
start local 1 // long[] z
1: .line 44
aload 1 /* z */
iconst_0
invokestatic org.bouncycastle.math.ec.custom.sec.SecT239Field.reduce17:([JI)V
2: .line 45
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=4, args_size=2
start local 0 // long[] x
start local 1 // long[] z
0: .line 50
aload 0 /* x */
invokestatic org.bouncycastle.math.raw.Nat256.isZero64:([J)Z
ifeq 2
1: .line 52
new java.lang.IllegalStateException
dup
invokespecial java.lang.IllegalStateException.<init>:()V
athrow
2: .line 57
StackMap locals:
StackMap stack:
invokestatic org.bouncycastle.math.raw.Nat256.create64:()[J
astore 2 /* t0 */
start local 2 // long[] t0
3: .line 58
invokestatic org.bouncycastle.math.raw.Nat256.create64:()[J
astore 3 /* t1 */
start local 3 // long[] t1
4: .line 60
aload 0 /* x */
aload 2 /* t0 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT239Field.square:([J[J)V
5: .line 61
aload 2 /* t0 */
aload 0 /* x */
aload 2 /* t0 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT239Field.multiply:([J[J[J)V
6: .line 62
aload 2 /* t0 */
aload 2 /* t0 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT239Field.square:([J[J)V
7: .line 63
aload 2 /* t0 */
aload 0 /* x */
aload 2 /* t0 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT239Field.multiply:([J[J[J)V
8: .line 64
aload 2 /* t0 */
iconst_3
aload 3 /* t1 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT239Field.squareN:([JI[J)V
9: .line 65
aload 3 /* t1 */
aload 2 /* t0 */
aload 3 /* t1 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT239Field.multiply:([J[J[J)V
10: .line 66
aload 3 /* t1 */
aload 3 /* t1 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT239Field.square:([J[J)V
11: .line 67
aload 3 /* t1 */
aload 0 /* x */
aload 3 /* t1 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT239Field.multiply:([J[J[J)V
12: .line 68
aload 3 /* t1 */
bipush 7
aload 2 /* t0 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT239Field.squareN:([JI[J)V
13: .line 69
aload 2 /* t0 */
aload 3 /* t1 */
aload 2 /* t0 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT239Field.multiply:([J[J[J)V
14: .line 70
aload 2 /* t0 */
bipush 14
aload 3 /* t1 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT239Field.squareN:([JI[J)V
15: .line 71
aload 3 /* t1 */
aload 2 /* t0 */
aload 3 /* t1 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT239Field.multiply:([J[J[J)V
16: .line 72
aload 3 /* t1 */
aload 3 /* t1 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT239Field.square:([J[J)V
17: .line 73
aload 3 /* t1 */
aload 0 /* x */
aload 3 /* t1 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT239Field.multiply:([J[J[J)V
18: .line 74
aload 3 /* t1 */
bipush 29
aload 2 /* t0 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT239Field.squareN:([JI[J)V
19: .line 75
aload 2 /* t0 */
aload 3 /* t1 */
aload 2 /* t0 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT239Field.multiply:([J[J[J)V
20: .line 76
aload 2 /* t0 */
aload 2 /* t0 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT239Field.square:([J[J)V
21: .line 77
aload 2 /* t0 */
aload 0 /* x */
aload 2 /* t0 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT239Field.multiply:([J[J[J)V
22: .line 78
aload 2 /* t0 */
bipush 59
aload 3 /* t1 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT239Field.squareN:([JI[J)V
23: .line 79
aload 3 /* t1 */
aload 2 /* t0 */
aload 3 /* t1 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT239Field.multiply:([J[J[J)V
24: .line 80
aload 3 /* t1 */
aload 3 /* t1 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT239Field.square:([J[J)V
25: .line 81
aload 3 /* t1 */
aload 0 /* x */
aload 3 /* t1 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT239Field.multiply:([J[J[J)V
26: .line 82
aload 3 /* t1 */
bipush 119
aload 2 /* t0 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT239Field.squareN:([JI[J)V
27: .line 83
aload 2 /* t0 */
aload 3 /* t1 */
aload 2 /* t0 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT239Field.multiply:([J[J[J)V
28: .line 84
aload 2 /* t0 */
aload 1 /* z */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT239Field.square:([J[J)V
29: .line 85
return
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 30 0 x [J
0 30 1 z [J
3 30 2 t0 [J
4 30 3 t1 [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 89
invokestatic org.bouncycastle.math.raw.Nat256.createExt64:()[J
astore 3 /* tt */
start local 3 // long[] tt
1: .line 90
aload 0 /* x */
aload 1 /* y */
aload 3 /* tt */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT239Field.implMultiply:([J[J[J)V
2: .line 91
aload 3 /* tt */
aload 2 /* z */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT239Field.reduce:([J[J)V
3: .line 92
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 96
invokestatic org.bouncycastle.math.raw.Nat256.createExt64:()[J
astore 3 /* tt */
start local 3 // long[] tt
1: .line 97
aload 0 /* x */
aload 1 /* y */
aload 3 /* tt */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT239Field.implMultiply:([J[J[J)V
2: .line 98
aload 2 /* zz */
aload 3 /* tt */
aload 2 /* zz */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT239Field.addExt:([J[J[J)V
3: .line 99
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=20, args_size=2
start local 0 // long[] xx
start local 1 // long[] z
0: .line 103
aload 0 /* xx */
iconst_0
laload
lstore 2 /* x0 */
start local 2 // long x0
1: aload 0 /* xx */
iconst_1
laload
lstore 4 /* x1 */
start local 4 // long x1
2: aload 0 /* xx */
iconst_2
laload
lstore 6 /* x2 */
start local 6 // long x2
3: aload 0 /* xx */
iconst_3
laload
lstore 8 /* x3 */
start local 8 // long x3
4: .line 104
aload 0 /* xx */
iconst_4
laload
lstore 10 /* x4 */
start local 10 // long x4
5: aload 0 /* xx */
iconst_5
laload
lstore 12 /* x5 */
start local 12 // long x5
6: aload 0 /* xx */
bipush 6
laload
lstore 14 /* x6 */
start local 14 // long x6
7: aload 0 /* xx */
bipush 7
laload
lstore 16 /* x7 */
start local 16 // long x7
8: .line 106
lload 8 /* x3 */
lload 16 /* x7 */
bipush 17
lshl
lxor
lstore 8 /* x3 */
9: .line 107
lload 10 /* x4 */
lload 16 /* x7 */
bipush 47
lushr
lxor
lstore 10 /* x4 */
10: .line 108
lload 12 /* x5 */
lload 16 /* x7 */
bipush 47
lshl
lxor
lstore 12 /* x5 */
11: .line 109
lload 14 /* x6 */
lload 16 /* x7 */
bipush 17
lushr
lxor
lstore 14 /* x6 */
12: .line 111
lload 6 /* x2 */
lload 14 /* x6 */
bipush 17
lshl
lxor
lstore 6 /* x2 */
13: .line 112
lload 8 /* x3 */
lload 14 /* x6 */
bipush 47
lushr
lxor
lstore 8 /* x3 */
14: .line 113
lload 10 /* x4 */
lload 14 /* x6 */
bipush 47
lshl
lxor
lstore 10 /* x4 */
15: .line 114
lload 12 /* x5 */
lload 14 /* x6 */
bipush 17
lushr
lxor
lstore 12 /* x5 */
16: .line 116
lload 4 /* x1 */
lload 12 /* x5 */
bipush 17
lshl
lxor
lstore 4 /* x1 */
17: .line 117
lload 6 /* x2 */
lload 12 /* x5 */
bipush 47
lushr
lxor
lstore 6 /* x2 */
18: .line 118
lload 8 /* x3 */
lload 12 /* x5 */
bipush 47
lshl
lxor
lstore 8 /* x3 */
19: .line 119
lload 10 /* x4 */
lload 12 /* x5 */
bipush 17
lushr
lxor
lstore 10 /* x4 */
20: .line 121
lload 2 /* x0 */
lload 10 /* x4 */
bipush 17
lshl
lxor
lstore 2 /* x0 */
21: .line 122
lload 4 /* x1 */
lload 10 /* x4 */
bipush 47
lushr
lxor
lstore 4 /* x1 */
22: .line 123
lload 6 /* x2 */
lload 10 /* x4 */
bipush 47
lshl
lxor
lstore 6 /* x2 */
23: .line 124
lload 8 /* x3 */
lload 10 /* x4 */
bipush 17
lushr
lxor
lstore 8 /* x3 */
24: .line 126
lload 8 /* x3 */
bipush 47
lushr
lstore 18 /* t */
start local 18 // long t
25: .line 127
aload 1 /* z */
iconst_0
lload 2 /* x0 */
lload 18 /* t */
lxor
lastore
26: .line 128
aload 1 /* z */
iconst_1
lload 4 /* x1 */
lastore
27: .line 129
aload 1 /* z */
iconst_2
lload 6 /* x2 */
lload 18 /* t */
bipush 30
lshl
lxor
lastore
28: .line 130
aload 1 /* z */
iconst_3
lload 8 /* x3 */
ldc 140737488355327
land
lastore
29: .line 131
return
end local 18 // long t
end local 16 // long x7
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[] xx
LocalVariableTable:
Start End Slot Name Signature
0 30 0 xx [J
0 30 1 z [J
1 30 2 x0 J
2 30 4 x1 J
3 30 6 x2 J
4 30 8 x3 J
5 30 10 x4 J
6 30 12 x5 J
7 30 14 x6 J
8 30 16 x7 J
25 30 18 t J
MethodParameters:
Name Flags
xx
z
public static void reduce17(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 135
aload 0 /* z */
iload 1 /* zOff */
iconst_3
iadd
laload
lstore 2 /* z3 */
start local 2 // long z3
1: lload 2 /* z3 */
bipush 47
lushr
lstore 4 /* t */
start local 4 // long t
2: .line 136
aload 0 /* z */
iload 1 /* zOff */
dup2
laload
lload 4 /* t */
lxor
lastore
3: .line 137
aload 0 /* z */
iload 1 /* zOff */
iconst_2
iadd
dup2
laload
lload 4 /* t */
bipush 30
lshl
lxor
lastore
4: .line 138
aload 0 /* z */
iload 1 /* zOff */
iconst_3
iadd
lload 2 /* z3 */
ldc 140737488355327
land
lastore
5: .line 139
return
end local 4 // long t
end local 2 // long z3
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 z3 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=9, locals=23, args_size=2
start local 0 // long[] x
start local 1 // long[] z
0: .line 144
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 145
lload 2 /* u0 */
ldc 4294967295
land
lload 4 /* u1 */
bipush 32
lshl
lor
lstore 6 /* e0 */
start local 6 // long e0
3: .line 146
lload 2 /* u0 */
bipush 32
lushr
lload 4 /* u1 */
ldc -4294967296
land
lor
lstore 8 /* c0 */
start local 8 // long c0
4: .line 148
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 149
lload 2 /* u0 */
ldc 4294967295
land
lload 4 /* u1 */
bipush 32
lshl
lor
lstore 10 /* e1 */
start local 10 // long e1
6: .line 150
lload 2 /* u0 */
bipush 32
lushr
lload 4 /* u1 */
ldc -4294967296
land
lor
lstore 12 /* c1 */
start local 12 // long c1
7: .line 153
lload 12 /* c1 */
bipush 49
lushr
lstore 16 /* c3 */
start local 16 // long c3
8: .line 154
lload 8 /* c0 */
bipush 49
lushr
lload 12 /* c1 */
bipush 15
lshl
lor
lstore 14 /* c2 */
start local 14 // long c2
9: .line 155
lload 12 /* c1 */
lload 8 /* c0 */
bipush 15
lshl
lxor
lstore 12 /* c1 */
10: .line 157
invokestatic org.bouncycastle.math.raw.Nat256.createExt64:()[J
astore 18 /* tt */
start local 18 // long[] tt
11: .line 159
iconst_2
newarray 10
dup
iconst_0
bipush 39
iastore
dup
iconst_1
bipush 120
iastore
astore 19 /* shifts */
start local 19 // int[] shifts
12: .line 160
iconst_0
istore 20 /* i */
start local 20 // int i
13: goto 22
14: .line 162
StackMap locals: long[] long[] long long long long long long long long long[] int[] int
StackMap stack:
aload 19 /* shifts */
iload 20 /* i */
iaload
bipush 6
iushr
istore 21 /* w */
start local 21 // int w
15: aload 19 /* shifts */
iload 20 /* i */
iaload
bipush 63
iand
istore 22 /* s */
start local 22 // int s
16: .line 164
aload 18 /* tt */
iload 21 /* w */
dup2
laload
lload 8 /* c0 */
iload 22 /* s */
lshl
lxor
lastore
17: .line 165
aload 18 /* tt */
iload 21 /* w */
iconst_1
iadd
dup2
laload
lload 12 /* c1 */
iload 22 /* s */
lshl
lload 8 /* c0 */
iload 22 /* s */
ineg
lushr
lor
lxor
lastore
18: .line 166
aload 18 /* tt */
iload 21 /* w */
iconst_2
iadd
dup2
laload
lload 14 /* c2 */
iload 22 /* s */
lshl
lload 12 /* c1 */
iload 22 /* s */
ineg
lushr
lor
lxor
lastore
19: .line 167
aload 18 /* tt */
iload 21 /* w */
iconst_3
iadd
dup2
laload
lload 16 /* c3 */
iload 22 /* s */
lshl
lload 14 /* c2 */
iload 22 /* s */
ineg
lushr
lor
lxor
lastore
20: .line 168
aload 18 /* tt */
iload 21 /* w */
iconst_4
iadd
dup2
laload
lload 16 /* c3 */
iload 22 /* s */
ineg
lushr
lxor
lastore
end local 22 // int s
end local 21 // int w
21: .line 160
iinc 20 /* i */ 1
StackMap locals:
StackMap stack:
22: iload 20 /* i */
aload 19 /* shifts */
arraylength
if_icmplt 14
end local 20 // int i
23: .line 171
aload 18 /* tt */
aload 1 /* z */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT239Field.reduce:([J[J)V
24: .line 173
aload 1 /* z */
iconst_0
dup2
laload
lload 6 /* e0 */
lxor
lastore
25: .line 174
aload 1 /* z */
iconst_1
dup2
laload
lload 10 /* e1 */
lxor
lastore
26: .line 175
return
end local 19 // int[] shifts
end local 18 // long[] tt
end local 16 // long c3
end local 14 // long c2
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 27 0 x [J
0 27 1 z [J
1 27 2 u0 J
2 27 4 u1 J
3 27 6 e0 J
4 27 8 c0 J
6 27 10 e1 J
7 27 12 c1 J
9 27 14 c2 J
8 27 16 c3 J
11 27 18 tt [J
12 27 19 shifts [I
13 23 20 i I
15 21 21 w I
16 21 22 s I
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 179
invokestatic org.bouncycastle.math.raw.Nat256.createExt64:()[J
astore 2 /* tt */
start local 2 // long[] tt
1: .line 180
aload 0 /* x */
aload 2 /* tt */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT239Field.implSquare:([J[J)V
2: .line 181
aload 2 /* tt */
aload 1 /* z */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT239Field.reduce:([J[J)V
3: .line 182
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 186
invokestatic org.bouncycastle.math.raw.Nat256.createExt64:()[J
astore 2 /* tt */
start local 2 // long[] tt
1: .line 187
aload 0 /* x */
aload 2 /* tt */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT239Field.implSquare:([J[J)V
2: .line 188
aload 1 /* zz */
aload 2 /* tt */
aload 1 /* zz */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT239Field.addExt:([J[J[J)V
3: .line 189
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 195
invokestatic org.bouncycastle.math.raw.Nat256.createExt64:()[J
astore 3 /* tt */
start local 3 // long[] tt
1: .line 196
aload 0 /* x */
aload 3 /* tt */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT239Field.implSquare:([J[J)V
2: .line 197
aload 3 /* tt */
aload 2 /* z */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT239Field.reduce:([J[J)V
3: .line 199
goto 6
4: .line 201
StackMap locals: long[]
StackMap stack:
aload 2 /* z */
aload 3 /* tt */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT239Field.implSquare:([J[J)V
5: .line 202
aload 3 /* tt */
aload 2 /* z */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT239Field.reduce:([J[J)V
6: .line 199
StackMap locals:
StackMap stack:
iinc 1 /* n */ -1
iload 1 /* n */
ifgt 4
7: .line 204
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=5, locals=1, args_size=1
start local 0 // long[] x
0: .line 209
aload 0 /* x */
iconst_0
laload
aload 0 /* x */
iconst_1
laload
bipush 17
lushr
lxor
aload 0 /* x */
iconst_2
laload
bipush 34
lushr
lxor
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=17, args_size=1
start local 0 // long[] zz
0: .line 214
aload 0 /* zz */
iconst_0
laload
lstore 1 /* z0 */
start local 1 // long z0
1: aload 0 /* zz */
iconst_1
laload
lstore 3 /* z1 */
start local 3 // long z1
2: aload 0 /* zz */
iconst_2
laload
lstore 5 /* z2 */
start local 5 // long z2
3: aload 0 /* zz */
iconst_3
laload
lstore 7 /* z3 */
start local 7 // long z3
4: aload 0 /* zz */
iconst_4
laload
lstore 9 /* z4 */
start local 9 // long z4
5: aload 0 /* zz */
iconst_5
laload
lstore 11 /* z5 */
start local 11 // long z5
6: aload 0 /* zz */
bipush 6
laload
lstore 13 /* z6 */
start local 13 // long z6
7: aload 0 /* zz */
bipush 7
laload
lstore 15 /* z7 */
start local 15 // long z7
8: .line 215
aload 0 /* zz */
iconst_0
lload 1 /* z0 */
lload 3 /* z1 */
bipush 60
lshl
lxor
lastore
9: .line 216
aload 0 /* zz */
iconst_1
lload 3 /* z1 */
iconst_4
lushr
lload 5 /* z2 */
bipush 56
lshl
lxor
lastore
10: .line 217
aload 0 /* zz */
iconst_2
lload 5 /* z2 */
bipush 8
lushr
lload 7 /* z3 */
bipush 52
lshl
lxor
lastore
11: .line 218
aload 0 /* zz */
iconst_3
lload 7 /* z3 */
bipush 12
lushr
lload 9 /* z4 */
bipush 48
lshl
lxor
lastore
12: .line 219
aload 0 /* zz */
iconst_4
lload 9 /* z4 */
bipush 16
lushr
lload 11 /* z5 */
bipush 44
lshl
lxor
lastore
13: .line 220
aload 0 /* zz */
iconst_5
lload 11 /* z5 */
bipush 20
lushr
lload 13 /* z6 */
bipush 40
lshl
lxor
lastore
14: .line 221
aload 0 /* zz */
bipush 6
lload 13 /* z6 */
bipush 24
lushr
lload 15 /* z7 */
bipush 36
lshl
lxor
lastore
15: .line 222
aload 0 /* zz */
bipush 7
lload 15 /* z7 */
bipush 28
lushr
lastore
16: .line 223
return
end local 15 // long z7
end local 13 // long z6
end local 11 // long z5
end local 9 // long z4
end local 7 // long z3
end local 5 // long z2
end local 3 // long z1
end local 1 // long z0
end local 0 // long[] zz
LocalVariableTable:
Start End Slot Name Signature
0 17 0 zz [J
1 17 1 z0 J
2 17 3 z1 J
3 17 5 z2 J
4 17 7 z3 J
5 17 9 z4 J
6 17 11 z5 J
7 17 13 z6 J
8 17 15 z7 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=10, args_size=2
start local 0 // long[] x
start local 1 // long[] z
0: .line 227
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: .line 228
aload 1 /* z */
iconst_0
lload 2 /* x0 */
ldc 1152921504606846975
land
lastore
5: .line 229
aload 1 /* z */
iconst_1
lload 2 /* x0 */
bipush 60
lushr
lload 4 /* x1 */
iconst_4
lshl
lxor
ldc 1152921504606846975
land
lastore
6: .line 230
aload 1 /* z */
iconst_2
lload 4 /* x1 */
bipush 56
lushr
lload 6 /* x2 */
bipush 8
lshl
lxor
ldc 1152921504606846975
land
lastore
7: .line 231
aload 1 /* z */
iconst_3
lload 6 /* x2 */
bipush 52
lushr
lload 8 /* x3 */
bipush 12
lshl
lxor
lastore
8: .line 232
return
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 9 0 x [J
0 9 1 z [J
1 9 2 x0 J
2 9 4 x1 J
3 9 6 x2 J
4 9 8 x3 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=8, locals=20, args_size=3
start local 0 // long[] x
start local 1 // long[] y
start local 2 // long[] zz
0: .line 240
iconst_4
newarray 11
astore 3 /* f */
start local 3 // long[] f
1: iconst_4
newarray 11
astore 4 /* g */
start local 4 // long[] g
2: .line 241
aload 0 /* x */
aload 3 /* f */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT239Field.implExpand:([J[J)V
3: .line 242
aload 1 /* y */
aload 4 /* g */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT239Field.implExpand:([J[J)V
4: .line 244
aload 3 /* f */
iconst_0
laload
aload 4 /* g */
iconst_0
laload
aload 2 /* zz */
iconst_0
invokestatic org.bouncycastle.math.ec.custom.sec.SecT239Field.implMulwAcc:(JJ[JI)V
5: .line 245
aload 3 /* f */
iconst_1
laload
aload 4 /* g */
iconst_1
laload
aload 2 /* zz */
iconst_1
invokestatic org.bouncycastle.math.ec.custom.sec.SecT239Field.implMulwAcc:(JJ[JI)V
6: .line 246
aload 3 /* f */
iconst_2
laload
aload 4 /* g */
iconst_2
laload
aload 2 /* zz */
iconst_2
invokestatic org.bouncycastle.math.ec.custom.sec.SecT239Field.implMulwAcc:(JJ[JI)V
7: .line 247
aload 3 /* f */
iconst_3
laload
aload 4 /* g */
iconst_3
laload
aload 2 /* zz */
iconst_3
invokestatic org.bouncycastle.math.ec.custom.sec.SecT239Field.implMulwAcc:(JJ[JI)V
8: .line 250
iconst_5
istore 5 /* i */
start local 5 // int i
9: goto 12
10: .line 252
StackMap locals: long[] long[] int
StackMap stack:
aload 2 /* zz */
iload 5 /* i */
dup2
laload
aload 2 /* zz */
iload 5 /* i */
iconst_1
isub
laload
lxor
lastore
11: .line 250
iinc 5 /* i */ -1
StackMap locals:
StackMap stack:
12: iload 5 /* i */
ifgt 10
end local 5 // int i
13: .line 255
aload 3 /* f */
iconst_0
laload
aload 3 /* f */
iconst_1
laload
lxor
aload 4 /* g */
iconst_0
laload
aload 4 /* g */
iconst_1
laload
lxor
aload 2 /* zz */
iconst_1
invokestatic org.bouncycastle.math.ec.custom.sec.SecT239Field.implMulwAcc:(JJ[JI)V
14: .line 256
aload 3 /* f */
iconst_2
laload
aload 3 /* f */
iconst_3
laload
lxor
aload 4 /* g */
iconst_2
laload
aload 4 /* g */
iconst_3
laload
lxor
aload 2 /* zz */
iconst_3
invokestatic org.bouncycastle.math.ec.custom.sec.SecT239Field.implMulwAcc:(JJ[JI)V
15: .line 259
bipush 7
istore 5 /* i */
start local 5 // int i
16: goto 19
17: .line 261
StackMap locals:
StackMap stack:
aload 2 /* zz */
iload 5 /* i */
dup2
laload
aload 2 /* zz */
iload 5 /* i */
iconst_2
isub
laload
lxor
lastore
18: .line 259
iinc 5 /* i */ -1
StackMap locals:
StackMap stack:
19: iload 5 /* i */
iconst_1
if_icmpgt 17
end local 5 // int i
20: .line 266
aload 3 /* f */
iconst_0
laload
aload 3 /* f */
iconst_2
laload
lxor
lstore 5 /* c0 */
start local 5 // long c0
21: aload 3 /* f */
iconst_1
laload
aload 3 /* f */
iconst_3
laload
lxor
lstore 7 /* c1 */
start local 7 // long c1
22: .line 267
aload 4 /* g */
iconst_0
laload
aload 4 /* g */
iconst_2
laload
lxor
lstore 9 /* d0 */
start local 9 // long d0
23: aload 4 /* g */
iconst_1
laload
aload 4 /* g */
iconst_3
laload
lxor
lstore 11 /* d1 */
start local 11 // long d1
24: .line 268
lload 5 /* c0 */
lload 7 /* c1 */
lxor
lload 9 /* d0 */
lload 11 /* d1 */
lxor
aload 2 /* zz */
iconst_3
invokestatic org.bouncycastle.math.ec.custom.sec.SecT239Field.implMulwAcc:(JJ[JI)V
25: .line 269
iconst_3
newarray 11
astore 13 /* t */
start local 13 // long[] t
26: .line 270
lload 5 /* c0 */
lload 9 /* d0 */
aload 13 /* t */
iconst_0
invokestatic org.bouncycastle.math.ec.custom.sec.SecT239Field.implMulwAcc:(JJ[JI)V
27: .line 271
lload 7 /* c1 */
lload 11 /* d1 */
aload 13 /* t */
iconst_1
invokestatic org.bouncycastle.math.ec.custom.sec.SecT239Field.implMulwAcc:(JJ[JI)V
28: .line 272
aload 13 /* t */
iconst_0
laload
lstore 14 /* t0 */
start local 14 // long t0
29: aload 13 /* t */
iconst_1
laload
lstore 16 /* t1 */
start local 16 // long t1
30: aload 13 /* t */
iconst_2
laload
lstore 18 /* t2 */
start local 18 // long t2
31: .line 273
aload 2 /* zz */
iconst_2
dup2
laload
lload 14 /* t0 */
lxor
lastore
32: .line 274
aload 2 /* zz */
iconst_3
dup2
laload
lload 14 /* t0 */
lload 16 /* t1 */
lxor
lxor
lastore
33: .line 275
aload 2 /* zz */
iconst_4
dup2
laload
lload 18 /* t2 */
lload 16 /* t1 */
lxor
lxor
lastore
34: .line 276
aload 2 /* zz */
iconst_5
dup2
laload
lload 18 /* t2 */
lxor
lastore
end local 18 // long t2
end local 16 // long t1
end local 14 // long t0
end local 13 // long[] t
end local 11 // long d1
end local 9 // long d0
end local 7 // long c1
end local 5 // long c0
35: .line 279
aload 2 /* zz */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT239Field.implCompactExt:([J)V
36: .line 280
return
end local 4 // long[] g
end local 3 // long[] f
end local 2 // long[] zz
end local 1 // long[] y
end local 0 // long[] x
LocalVariableTable:
Start End Slot Name Signature
0 37 0 x [J
0 37 1 y [J
0 37 2 zz [J
1 37 3 f [J
2 37 4 g [J
9 13 5 i I
16 20 5 i I
21 35 5 c0 J
22 35 7 c1 J
23 35 9 d0 J
24 35 11 d1 J
26 35 13 t [J
29 35 14 t0 J
30 35 16 t1 J
31 35 18 t2 J
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=15, args_size=4
start local 0 // long x
start local 2 // long y
start local 4 // long[] z
start local 5 // int zOff
0: .line 287
bipush 8
newarray 11
astore 6 /* u */
start local 6 // long[] u
1: .line 289
aload 6 /* u */
iconst_1
lload 2 /* y */
lastore
2: .line 290
aload 6 /* u */
iconst_2
aload 6 /* u */
iconst_1
laload
iconst_1
lshl
lastore
3: .line 291
aload 6 /* u */
iconst_3
aload 6 /* u */
iconst_2
laload
lload 2 /* y */
lxor
lastore
4: .line 292
aload 6 /* u */
iconst_4
aload 6 /* u */
iconst_2
laload
iconst_1
lshl
lastore
5: .line 293
aload 6 /* u */
iconst_5
aload 6 /* u */
iconst_4
laload
lload 2 /* y */
lxor
lastore
6: .line 294
aload 6 /* u */
bipush 6
aload 6 /* u */
iconst_3
laload
iconst_1
lshl
lastore
7: .line 295
aload 6 /* u */
bipush 7
aload 6 /* u */
bipush 6
laload
lload 2 /* y */
lxor
lastore
8: .line 297
lload 0 /* x */
l2i
istore 7 /* j */
start local 7 // int j
9: .line 298
lconst_0
lstore 10 /* h */
start local 10 // long h
10: aload 6 /* u */
iload 7 /* j */
bipush 7
iand
laload
11: .line 299
aload 6 /* u */
iload 7 /* j */
iconst_3
iushr
bipush 7
iand
laload
iconst_3
lshl
lxor
lstore 12 /* l */
start local 12 // long l
12: .line 300
bipush 54
istore 14 /* k */
start local 14 // int k
13: .line 303
StackMap locals: long long long[] int long[] int top top long long int
StackMap stack:
lload 0 /* x */
iload 14 /* k */
lushr
l2i
istore 7 /* j */
14: .line 304
aload 6 /* u */
iload 7 /* j */
bipush 7
iand
laload
15: .line 305
aload 6 /* u */
iload 7 /* j */
iconst_3
iushr
bipush 7
iand
laload
iconst_3
lshl
16: .line 304
lxor
lstore 8 /* g */
start local 8 // long g
17: .line 306
lload 12 /* l */
lload 8 /* g */
iload 14 /* k */
lshl
lxor
lstore 12 /* l */
18: .line 307
lload 10 /* h */
lload 8 /* g */
iload 14 /* k */
ineg
lushr
lxor
lstore 10 /* h */
19: .line 309
iinc 14 /* k */ -6
iload 14 /* k */
20: .line 301
ifgt 13
21: .line 311
lload 10 /* h */
lload 0 /* x */
ldc 585610922974906400
land
lload 2 /* y */
iconst_4
lshl
bipush 63
lshr
land
iconst_5
lushr
lxor
lstore 10 /* h */
22: .line 315
aload 4 /* z */
iload 5 /* zOff */
dup2
laload
lload 12 /* l */
ldc 1152921504606846975
land
lxor
lastore
23: .line 316
aload 4 /* z */
iload 5 /* zOff */
iconst_1
iadd
dup2
laload
lload 12 /* l */
bipush 60
lushr
lload 10 /* h */
iconst_4
lshl
lxor
lxor
lastore
24: .line 317
return
end local 14 // int k
end local 12 // long l
end local 10 // long h
end local 8 // long g
end local 7 // int j
end local 6 // long[] u
end local 5 // int zOff
end local 4 // long[] z
end local 2 // long y
end local 0 // long x
LocalVariableTable:
Start End Slot Name Signature
0 25 0 x J
0 25 2 y J
0 25 4 z [J
0 25 5 zOff I
1 25 6 u [J
9 25 7 j I
17 25 8 g J
10 25 10 h J
12 25 12 l J
13 25 14 k I
MethodParameters:
Name Flags
x
y
z
zOff
protected static void implSquare(long[], long[]);
descriptor: ([J[J)V
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=6, locals=4, args_size=2
start local 0 // long[] x
start local 1 // long[] zz
0: .line 321
aload 0 /* x */
iconst_0
laload
aload 1 /* zz */
iconst_0
invokestatic org.bouncycastle.math.raw.Interleave.expand64To128:(J[JI)V
1: .line 322
aload 0 /* x */
iconst_1
laload
aload 1 /* zz */
iconst_2
invokestatic org.bouncycastle.math.raw.Interleave.expand64To128:(J[JI)V
2: .line 323
aload 0 /* x */
iconst_2
laload
aload 1 /* zz */
iconst_4
invokestatic org.bouncycastle.math.raw.Interleave.expand64To128:(J[JI)V
3: .line 325
aload 0 /* x */
iconst_3
laload
lstore 2 /* x3 */
start local 2 // long x3
4: .line 326
aload 1 /* zz */
bipush 6
lload 2 /* x3 */
l2i
invokestatic org.bouncycastle.math.raw.Interleave.expand32to64:(I)J
lastore
5: .line 327
aload 1 /* zz */
bipush 7
lload 2 /* x3 */
bipush 32
lushr
l2i
invokestatic org.bouncycastle.math.raw.Interleave.expand16to32:(I)I
i2l
ldc 4294967295
land
lastore
6: .line 328
return
end local 2 // long x3
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
4 7 2 x3 J
MethodParameters:
Name Flags
x
zz
}
SourceFile: "SecT239Field.java"