public class org.bouncycastle.math.ec.custom.sec.SecT571Field
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.bouncycastle.math.ec.custom.sec.SecT571Field
super_class: java.lang.Object
{
private static final long M59;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 576460752303423487
private static final long RM;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: -1190112520884487202
private static final long[] ROOT_Z;
descriptor: [J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=0, args_size=0
0: .line 15
bipush 9
newarray 11
dup
iconst_0
ldc 3161836309350906777
lastore
dup
iconst_1
ldc -7642453882179322845
lastore
dup
iconst_2
ldc -3821226941089661423
lastore
dup
iconst_3
ldc 7312758566309945096
lastore
dup
iconst_4
1: .line 16
ldc -556661012383879292
lastore
dup
iconst_5
ldc 8945041530681231562
lastore
dup
bipush 6
ldc -4750851271514160027
lastore
dup
bipush 7
ldc 6847946401097695794
lastore
dup
bipush 8
ldc 541669439031730457
lastore
2: .line 15
putstatic org.bouncycastle.math.ec.custom.sec.SecT571Field.ROOT_Z:[J
3: .line 16
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.SecT571Field this
0: .line 9
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
return
end local 0 // org.bouncycastle.math.ec.custom.sec.SecT571Field this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/math/ec/custom/sec/SecT571Field;
public static void add(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[] x
start local 1 // long[] y
start local 2 // long[] z
0: .line 20
iconst_0
istore 3 /* i */
start local 3 // int i
1: goto 4
2: .line 22
StackMap locals: int
StackMap stack:
aload 2 /* z */
iload 3 /* i */
aload 0 /* x */
iload 3 /* i */
laload
aload 1 /* y */
iload 3 /* i */
laload
lxor
lastore
3: .line 20
iinc 3 /* i */ 1
StackMap locals:
StackMap stack:
4: iload 3 /* i */
bipush 9
if_icmplt 2
end local 3 // int i
5: .line 24
return
end local 2 // long[] z
end local 1 // long[] y
end local 0 // long[] x
LocalVariableTable:
Start End Slot Name Signature
0 6 0 x [J
0 6 1 y [J
0 6 2 z [J
1 5 3 i I
MethodParameters:
Name Flags
x
y
z
private static void add(long[], int, long[], int, long[], int);
descriptor: ([JI[JI[JI)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=7, locals=7, args_size=6
start local 0 // long[] x
start local 1 // int xOff
start local 2 // long[] y
start local 3 // int yOff
start local 4 // long[] z
start local 5 // int zOff
0: .line 28
iconst_0
istore 6 /* i */
start local 6 // int i
1: goto 4
2: .line 30
StackMap locals: int
StackMap stack:
aload 4 /* z */
iload 5 /* zOff */
iload 6 /* i */
iadd
aload 0 /* x */
iload 1 /* xOff */
iload 6 /* i */
iadd
laload
aload 2 /* y */
iload 3 /* yOff */
iload 6 /* i */
iadd
laload
lxor
lastore
3: .line 28
iinc 6 /* i */ 1
StackMap locals:
StackMap stack:
4: iload 6 /* i */
bipush 9
if_icmplt 2
end local 6 // int i
5: .line 32
return
end local 5 // int zOff
end local 4 // long[] z
end local 3 // int yOff
end local 2 // long[] y
end local 1 // int xOff
end local 0 // long[] x
LocalVariableTable:
Start End Slot Name Signature
0 6 0 x [J
0 6 1 xOff I
0 6 2 y [J
0 6 3 yOff I
0 6 4 z [J
0 6 5 zOff I
1 5 6 i I
MethodParameters:
Name Flags
x
xOff
y
yOff
z
zOff
public static void addBothTo(long[], long[], long[]);
descriptor: ([J[J[J)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=8, locals=4, args_size=3
start local 0 // long[] x
start local 1 // long[] y
start local 2 // long[] z
0: .line 36
iconst_0
istore 3 /* i */
start local 3 // int i
1: goto 4
2: .line 38
StackMap locals: int
StackMap stack:
aload 2 /* z */
iload 3 /* i */
dup2
laload
aload 0 /* x */
iload 3 /* i */
laload
aload 1 /* y */
iload 3 /* i */
laload
lxor
lxor
lastore
3: .line 36
iinc 3 /* i */ 1
StackMap locals:
StackMap stack:
4: iload 3 /* i */
bipush 9
if_icmplt 2
end local 3 // int i
5: .line 40
return
end local 2 // long[] z
end local 1 // long[] y
end local 0 // long[] x
LocalVariableTable:
Start End Slot Name Signature
0 6 0 x [J
0 6 1 y [J
0 6 2 z [J
1 5 3 i I
MethodParameters:
Name Flags
x
y
z
private static void addBothTo(long[], int, long[], int, long[], int);
descriptor: ([JI[JI[JI)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=9, locals=7, args_size=6
start local 0 // long[] x
start local 1 // int xOff
start local 2 // long[] y
start local 3 // int yOff
start local 4 // long[] z
start local 5 // int zOff
0: .line 44
iconst_0
istore 6 /* i */
start local 6 // int i
1: goto 4
2: .line 46
StackMap locals: int
StackMap stack:
aload 4 /* z */
iload 5 /* zOff */
iload 6 /* i */
iadd
dup2
laload
aload 0 /* x */
iload 1 /* xOff */
iload 6 /* i */
iadd
laload
aload 2 /* y */
iload 3 /* yOff */
iload 6 /* i */
iadd
laload
lxor
lxor
lastore
3: .line 44
iinc 6 /* i */ 1
StackMap locals:
StackMap stack:
4: iload 6 /* i */
bipush 9
if_icmplt 2
end local 6 // int i
5: .line 48
return
end local 5 // int zOff
end local 4 // long[] z
end local 3 // int yOff
end local 2 // long[] y
end local 1 // int xOff
end local 0 // long[] x
LocalVariableTable:
Start End Slot Name Signature
0 6 0 x [J
0 6 1 xOff I
0 6 2 y [J
0 6 3 yOff I
0 6 4 z [J
0 6 5 zOff I
1 5 6 i I
MethodParameters:
Name Flags
x
xOff
y
yOff
z
zOff
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 52
iconst_0
istore 3 /* i */
start local 3 // int i
1: goto 4
2: .line 54
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 52
iinc 3 /* i */ 1
StackMap locals:
StackMap stack:
4: iload 3 /* i */
bipush 18
if_icmplt 2
end local 3 // int i
5: .line 56
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=3, args_size=2
start local 0 // long[] x
start local 1 // long[] z
0: .line 60
aload 1 /* z */
iconst_0
aload 0 /* x */
iconst_0
laload
lconst_1
lxor
lastore
1: .line 61
iconst_1
istore 2 /* i */
start local 2 // int i
2: goto 5
3: .line 63
StackMap locals: int
StackMap stack:
aload 1 /* z */
iload 2 /* i */
aload 0 /* x */
iload 2 /* i */
laload
lastore
4: .line 61
iinc 2 /* i */ 1
StackMap locals:
StackMap stack:
5: iload 2 /* i */
bipush 9
if_icmplt 3
end local 2 // int i
6: .line 65
return
end local 1 // long[] z
end local 0 // long[] x
LocalVariableTable:
Start End Slot Name Signature
0 7 0 x [J
0 7 1 z [J
2 6 2 i I
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 69
aload 0 /* x */
invokestatic org.bouncycastle.math.raw.Nat576.fromBigInteger64:(Ljava/math/BigInteger;)[J
astore 1 /* z */
start local 1 // long[] z
1: .line 70
aload 1 /* z */
iconst_0
invokestatic org.bouncycastle.math.ec.custom.sec.SecT571Field.reduce5:([JI)V
2: .line 71
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 76
aload 0 /* x */
invokestatic org.bouncycastle.math.raw.Nat576.isZero64:([J)Z
ifeq 2
1: .line 78
new java.lang.IllegalStateException
dup
invokespecial java.lang.IllegalStateException.<init>:()V
athrow
2: .line 83
StackMap locals:
StackMap stack:
invokestatic org.bouncycastle.math.raw.Nat576.create64:()[J
astore 2 /* t0 */
start local 2 // long[] t0
3: .line 84
invokestatic org.bouncycastle.math.raw.Nat576.create64:()[J
astore 3 /* t1 */
start local 3 // long[] t1
4: .line 85
invokestatic org.bouncycastle.math.raw.Nat576.create64:()[J
astore 4 /* t2 */
start local 4 // long[] t2
5: .line 87
aload 0 /* x */
aload 4 /* t2 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT571Field.square:([J[J)V
6: .line 90
aload 4 /* t2 */
aload 2 /* t0 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT571Field.square:([J[J)V
7: .line 91
aload 2 /* t0 */
aload 3 /* t1 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT571Field.square:([J[J)V
8: .line 92
aload 2 /* t0 */
aload 3 /* t1 */
aload 2 /* t0 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT571Field.multiply:([J[J[J)V
9: .line 93
aload 2 /* t0 */
iconst_2
aload 3 /* t1 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT571Field.squareN:([JI[J)V
10: .line 94
aload 2 /* t0 */
aload 3 /* t1 */
aload 2 /* t0 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT571Field.multiply:([J[J[J)V
11: .line 95
aload 2 /* t0 */
aload 4 /* t2 */
aload 2 /* t0 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT571Field.multiply:([J[J[J)V
12: .line 98
aload 2 /* t0 */
iconst_5
aload 3 /* t1 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT571Field.squareN:([JI[J)V
13: .line 99
aload 2 /* t0 */
aload 3 /* t1 */
aload 2 /* t0 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT571Field.multiply:([J[J[J)V
14: .line 100
aload 3 /* t1 */
iconst_5
aload 3 /* t1 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT571Field.squareN:([JI[J)V
15: .line 101
aload 2 /* t0 */
aload 3 /* t1 */
aload 2 /* t0 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT571Field.multiply:([J[J[J)V
16: .line 104
aload 2 /* t0 */
bipush 15
aload 3 /* t1 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT571Field.squareN:([JI[J)V
17: .line 105
aload 2 /* t0 */
aload 3 /* t1 */
aload 4 /* t2 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT571Field.multiply:([J[J[J)V
18: .line 108
aload 4 /* t2 */
bipush 30
aload 2 /* t0 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT571Field.squareN:([JI[J)V
19: .line 109
aload 2 /* t0 */
bipush 30
aload 3 /* t1 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT571Field.squareN:([JI[J)V
20: .line 110
aload 2 /* t0 */
aload 3 /* t1 */
aload 2 /* t0 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT571Field.multiply:([J[J[J)V
21: .line 113
aload 2 /* t0 */
bipush 60
aload 3 /* t1 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT571Field.squareN:([JI[J)V
22: .line 114
aload 2 /* t0 */
aload 3 /* t1 */
aload 2 /* t0 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT571Field.multiply:([J[J[J)V
23: .line 115
aload 3 /* t1 */
bipush 60
aload 3 /* t1 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT571Field.squareN:([JI[J)V
24: .line 116
aload 2 /* t0 */
aload 3 /* t1 */
aload 2 /* t0 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT571Field.multiply:([J[J[J)V
25: .line 119
aload 2 /* t0 */
sipush 180
aload 3 /* t1 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT571Field.squareN:([JI[J)V
26: .line 120
aload 2 /* t0 */
aload 3 /* t1 */
aload 2 /* t0 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT571Field.multiply:([J[J[J)V
27: .line 121
aload 3 /* t1 */
sipush 180
aload 3 /* t1 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT571Field.squareN:([JI[J)V
28: .line 122
aload 2 /* t0 */
aload 3 /* t1 */
aload 2 /* t0 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT571Field.multiply:([J[J[J)V
29: .line 124
aload 2 /* t0 */
aload 4 /* t2 */
aload 1 /* z */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT571Field.multiply:([J[J[J)V
30: .line 125
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 31 0 x [J
0 31 1 z [J
3 31 2 t0 [J
4 31 3 t1 [J
5 31 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 129
invokestatic org.bouncycastle.math.raw.Nat576.createExt64:()[J
astore 3 /* tt */
start local 3 // long[] tt
1: .line 130
aload 0 /* x */
aload 1 /* y */
aload 3 /* tt */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT571Field.implMultiply:([J[J[J)V
2: .line 131
aload 3 /* tt */
aload 2 /* z */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT571Field.reduce:([J[J)V
3: .line 132
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 136
invokestatic org.bouncycastle.math.raw.Nat576.createExt64:()[J
astore 3 /* tt */
start local 3 // long[] tt
1: .line 137
aload 0 /* x */
aload 1 /* y */
aload 3 /* tt */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT571Field.implMultiply:([J[J[J)V
2: .line 138
aload 2 /* zz */
aload 3 /* tt */
aload 2 /* zz */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT571Field.addExt:([J[J[J)V
3: .line 139
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 multiplyPrecomp(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[] precomp
start local 2 // long[] z
0: .line 143
invokestatic org.bouncycastle.math.raw.Nat576.createExt64:()[J
astore 3 /* tt */
start local 3 // long[] tt
1: .line 144
aload 0 /* x */
aload 1 /* precomp */
aload 3 /* tt */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT571Field.implMultiplyPrecomp:([J[J[J)V
2: .line 145
aload 3 /* tt */
aload 2 /* z */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT571Field.reduce:([J[J)V
3: .line 146
return
end local 3 // long[] tt
end local 2 // long[] z
end local 1 // long[] precomp
end local 0 // long[] x
LocalVariableTable:
Start End Slot Name Signature
0 4 0 x [J
0 4 1 precomp [J
0 4 2 z [J
1 4 3 tt [J
MethodParameters:
Name Flags
x
precomp
z
public static void multiplyPrecompAddToExt(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[] precomp
start local 2 // long[] zz
0: .line 150
invokestatic org.bouncycastle.math.raw.Nat576.createExt64:()[J
astore 3 /* tt */
start local 3 // long[] tt
1: .line 151
aload 0 /* x */
aload 1 /* precomp */
aload 3 /* tt */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT571Field.implMultiplyPrecomp:([J[J[J)V
2: .line 152
aload 2 /* zz */
aload 3 /* tt */
aload 2 /* zz */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT571Field.addExt:([J[J[J)V
3: .line 153
return
end local 3 // long[] tt
end local 2 // long[] zz
end local 1 // long[] precomp
end local 0 // long[] x
LocalVariableTable:
Start End Slot Name Signature
0 4 0 x [J
0 4 1 precomp [J
0 4 2 zz [J
1 4 3 tt [J
MethodParameters:
Name Flags
x
precomp
zz
public static long[] precompMultiplicand(long[]);
descriptor: ([J)[J
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=8, locals=5, args_size=1
start local 0 // long[] x
0: .line 160
sipush 144
istore 1 /* len */
start local 1 // int len
1: .line 161
iload 1 /* len */
iconst_1
ishl
newarray 11
astore 2 /* t */
start local 2 // long[] t
2: .line 162
aload 0 /* x */
iconst_0
aload 2 /* t */
bipush 9
bipush 9
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
3: .line 164
iconst_0
istore 3 /* tOff */
start local 3 // int tOff
4: .line 165
bipush 7
istore 4 /* i */
start local 4 // int i
5: goto 11
6: .line 167
StackMap locals: long[] int long[] int int
StackMap stack:
iinc 3 /* tOff */ 18
7: .line 168
bipush 9
aload 2 /* t */
iload 3 /* tOff */
iconst_1
iushr
lconst_0
aload 2 /* t */
iload 3 /* tOff */
invokestatic org.bouncycastle.math.raw.Nat.shiftUpBit64:(I[JIJ[JI)J
pop2
8: .line 169
aload 2 /* t */
iload 3 /* tOff */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT571Field.reduce5:([JI)V
9: .line 170
aload 2 /* t */
bipush 9
aload 2 /* t */
iload 3 /* tOff */
aload 2 /* t */
iload 3 /* tOff */
bipush 9
iadd
invokestatic org.bouncycastle.math.ec.custom.sec.SecT571Field.add:([JI[JI[JI)V
10: .line 165
iinc 4 /* i */ -1
StackMap locals:
StackMap stack:
11: iload 4 /* i */
ifgt 6
end local 4 // int i
12: .line 176
iload 1 /* len */
aload 2 /* t */
iconst_0
iconst_4
lconst_0
aload 2 /* t */
iload 1 /* len */
invokestatic org.bouncycastle.math.raw.Nat.shiftUpBits64:(I[JIIJ[JI)J
pop2
13: .line 178
aload 2 /* t */
areturn
end local 3 // int tOff
end local 2 // long[] t
end local 1 // int len
end local 0 // long[] x
LocalVariableTable:
Start End Slot Name Signature
0 14 0 x [J
1 14 1 len I
2 14 2 t [J
4 14 3 tOff I
5 12 4 i I
MethodParameters:
Name Flags
x
public static void reduce(long[], long[]);
descriptor: ([J[J)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=7, locals=12, args_size=2
start local 0 // long[] xx
start local 1 // long[] z
0: .line 183
aload 0 /* xx */
bipush 9
laload
lstore 2 /* xx09 */
start local 2 // long xx09
1: .line 184
aload 0 /* xx */
bipush 17
laload
lstore 4 /* u */
start local 4 // long u
2: lload 2 /* xx09 */
lstore 6 /* v */
start local 6 // long v
3: .line 186
lload 6 /* v */
lload 4 /* u */
bipush 59
lushr
lxor
lload 4 /* u */
bipush 57
lushr
lxor
lload 4 /* u */
bipush 54
lushr
lxor
lload 4 /* u */
bipush 49
lushr
lxor
lstore 2 /* xx09 */
4: .line 187
aload 0 /* xx */
bipush 8
laload
lload 4 /* u */
iconst_5
lshl
lxor
lload 4 /* u */
bipush 7
lshl
lxor
lload 4 /* u */
bipush 10
lshl
lxor
lload 4 /* u */
bipush 15
lshl
lxor
lstore 6 /* v */
5: .line 189
bipush 16
istore 8 /* i */
start local 8 // int i
6: goto 11
7: .line 191
StackMap locals: long[] long[] long long long int
StackMap stack:
aload 0 /* xx */
iload 8 /* i */
laload
lstore 4 /* u */
8: .line 192
aload 1 /* z */
iload 8 /* i */
bipush 8
isub
lload 6 /* v */
lload 4 /* u */
bipush 59
lushr
lxor
lload 4 /* u */
bipush 57
lushr
lxor
lload 4 /* u */
bipush 54
lushr
lxor
lload 4 /* u */
bipush 49
lushr
lxor
lastore
9: .line 193
aload 0 /* xx */
iload 8 /* i */
bipush 9
isub
laload
lload 4 /* u */
iconst_5
lshl
lxor
lload 4 /* u */
bipush 7
lshl
lxor
lload 4 /* u */
bipush 10
lshl
lxor
lload 4 /* u */
bipush 15
lshl
lxor
lstore 6 /* v */
10: .line 189
iinc 8 /* i */ -1
StackMap locals:
StackMap stack:
11: iload 8 /* i */
bipush 10
if_icmpge 7
end local 8 // int i
12: .line 196
lload 2 /* xx09 */
lstore 4 /* u */
13: .line 197
aload 1 /* z */
iconst_1
lload 6 /* v */
lload 4 /* u */
bipush 59
lushr
lxor
lload 4 /* u */
bipush 57
lushr
lxor
lload 4 /* u */
bipush 54
lushr
lxor
lload 4 /* u */
bipush 49
lushr
lxor
lastore
14: .line 198
aload 0 /* xx */
iconst_0
laload
lload 4 /* u */
iconst_5
lshl
lxor
lload 4 /* u */
bipush 7
lshl
lxor
lload 4 /* u */
bipush 10
lshl
lxor
lload 4 /* u */
bipush 15
lshl
lxor
lstore 6 /* v */
15: .line 200
aload 1 /* z */
bipush 8
laload
lstore 8 /* x08 */
start local 8 // long x08
16: .line 201
lload 8 /* x08 */
bipush 59
lushr
lstore 10 /* t */
start local 10 // long t
17: .line 202
aload 1 /* z */
iconst_0
lload 6 /* v */
lload 10 /* t */
lxor
lload 10 /* t */
iconst_2
lshl
lxor
lload 10 /* t */
iconst_5
lshl
lxor
lload 10 /* t */
bipush 10
lshl
lxor
lastore
18: .line 203
aload 1 /* z */
bipush 8
lload 8 /* x08 */
ldc 576460752303423487
land
lastore
19: .line 204
return
end local 10 // long t
end local 8 // long x08
end local 6 // long v
end local 4 // long u
end local 2 // long xx09
end local 1 // long[] z
end local 0 // long[] xx
LocalVariableTable:
Start End Slot Name Signature
0 20 0 xx [J
0 20 1 z [J
1 20 2 xx09 J
2 20 4 u J
3 20 6 v J
6 12 8 i I
16 20 8 x08 J
17 20 10 t J
MethodParameters:
Name Flags
xx
z
public static void reduce5(long[], int);
descriptor: ([JI)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=9, locals=6, args_size=2
start local 0 // long[] z
start local 1 // int zOff
0: .line 208
aload 0 /* z */
iload 1 /* zOff */
bipush 8
iadd
laload
lstore 2 /* z8 */
start local 2 // long z8
1: lload 2 /* z8 */
bipush 59
lushr
lstore 4 /* t */
start local 4 // long t
2: .line 209
aload 0 /* z */
iload 1 /* zOff */
dup2
laload
lload 4 /* t */
lload 4 /* t */
iconst_2
lshl
lxor
lload 4 /* t */
iconst_5
lshl
lxor
lload 4 /* t */
bipush 10
lshl
lxor
lxor
lastore
3: .line 210
aload 0 /* z */
iload 1 /* zOff */
bipush 8
iadd
lload 2 /* z8 */
ldc 576460752303423487
land
lastore
4: .line 211
return
end local 4 // long t
end local 2 // long z8
end local 1 // int zOff
end local 0 // long[] z
LocalVariableTable:
Start End Slot Name Signature
0 5 0 z [J
0 5 1 zOff I
1 5 2 z8 J
2 5 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=8, locals=10, args_size=2
start local 0 // long[] x
start local 1 // long[] z
0: .line 215
invokestatic org.bouncycastle.math.raw.Nat576.create64:()[J
astore 2 /* evn */
start local 2 // long[] evn
1: invokestatic org.bouncycastle.math.raw.Nat576.create64:()[J
astore 3 /* odd */
start local 3 // long[] odd
2: .line 217
iconst_0
istore 4 /* pos */
start local 4 // int pos
3: .line 218
iconst_0
istore 5 /* i */
start local 5 // int i
4: goto 10
5: .line 220
StackMap locals: long[] long[] long[] long[] int int
StackMap stack:
aload 0 /* x */
iload 4 /* pos */
iinc 4 /* pos */ 1
laload
invokestatic org.bouncycastle.math.raw.Interleave.unshuffle:(J)J
lstore 6 /* u0 */
start local 6 // long u0
6: .line 221
aload 0 /* x */
iload 4 /* pos */
iinc 4 /* pos */ 1
laload
invokestatic org.bouncycastle.math.raw.Interleave.unshuffle:(J)J
lstore 8 /* u1 */
start local 8 // long u1
7: .line 222
aload 2 /* evn */
iload 5 /* i */
lload 6 /* u0 */
ldc 4294967295
land
lload 8 /* u1 */
bipush 32
lshl
lor
lastore
8: .line 223
aload 3 /* odd */
iload 5 /* i */
lload 6 /* u0 */
bipush 32
lushr
lload 8 /* u1 */
ldc -4294967296
land
lor
lastore
end local 8 // long u1
end local 6 // long u0
9: .line 218
iinc 5 /* i */ 1
StackMap locals:
StackMap stack:
10: iload 5 /* i */
iconst_4
if_icmplt 5
end local 5 // int i
11: .line 226
aload 0 /* x */
iload 4 /* pos */
laload
invokestatic org.bouncycastle.math.raw.Interleave.unshuffle:(J)J
lstore 5 /* u0 */
start local 5 // long u0
12: .line 227
aload 2 /* evn */
iconst_4
lload 5 /* u0 */
ldc 4294967295
land
lastore
13: .line 228
aload 3 /* odd */
iconst_4
lload 5 /* u0 */
bipush 32
lushr
lastore
end local 5 // long u0
14: .line 231
aload 3 /* odd */
getstatic org.bouncycastle.math.ec.custom.sec.SecT571Field.ROOT_Z:[J
aload 1 /* z */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT571Field.multiply:([J[J[J)V
15: .line 232
aload 1 /* z */
aload 2 /* evn */
aload 1 /* z */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT571Field.add:([J[J[J)V
16: .line 233
return
end local 4 // int pos
end local 3 // long[] odd
end local 2 // long[] evn
end local 1 // long[] z
end local 0 // long[] x
LocalVariableTable:
Start End Slot Name Signature
0 17 0 x [J
0 17 1 z [J
1 17 2 evn [J
2 17 3 odd [J
3 17 4 pos I
4 11 5 i I
6 9 6 u0 J
7 9 8 u1 J
12 14 5 u0 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 237
invokestatic org.bouncycastle.math.raw.Nat576.createExt64:()[J
astore 2 /* tt */
start local 2 // long[] tt
1: .line 238
aload 0 /* x */
aload 2 /* tt */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT571Field.implSquare:([J[J)V
2: .line 239
aload 2 /* tt */
aload 1 /* z */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT571Field.reduce:([J[J)V
3: .line 240
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 244
invokestatic org.bouncycastle.math.raw.Nat576.createExt64:()[J
astore 2 /* tt */
start local 2 // long[] tt
1: .line 245
aload 0 /* x */
aload 2 /* tt */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT571Field.implSquare:([J[J)V
2: .line 246
aload 1 /* zz */
aload 2 /* tt */
aload 1 /* zz */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT571Field.addExt:([J[J[J)V
3: .line 247
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 253
invokestatic org.bouncycastle.math.raw.Nat576.createExt64:()[J
astore 3 /* tt */
start local 3 // long[] tt
1: .line 254
aload 0 /* x */
aload 3 /* tt */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT571Field.implSquare:([J[J)V
2: .line 255
aload 3 /* tt */
aload 2 /* z */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT571Field.reduce:([J[J)V
3: .line 257
goto 6
4: .line 259
StackMap locals: long[]
StackMap stack:
aload 2 /* z */
aload 3 /* tt */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT571Field.implSquare:([J[J)V
5: .line 260
aload 3 /* tt */
aload 2 /* z */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT571Field.reduce:([J[J)V
6: .line 257
StackMap locals:
StackMap stack:
iinc 1 /* n */ -1
iload 1 /* n */
ifgt 4
7: .line 262
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 267
aload 0 /* x */
iconst_0
laload
aload 0 /* x */
bipush 8
laload
bipush 49
lushr
lxor
aload 0 /* x */
bipush 8
laload
bipush 57
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 implMultiply(long[], long[], long[]);
descriptor: ([J[J[J)V
flags: (0x000c) ACC_PROTECTED, 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 277
aload 1 /* y */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT571Field.precompMultiplicand:([J)[J
astore 3 /* precomp */
start local 3 // long[] precomp
1: .line 279
aload 0 /* x */
aload 3 /* precomp */
aload 2 /* zz */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT571Field.implMultiplyPrecomp:([J[J[J)V
2: .line 280
return
end local 3 // long[] precomp
end local 2 // long[] zz
end local 1 // long[] y
end local 0 // long[] x
LocalVariableTable:
Start End Slot Name Signature
0 3 0 x [J
0 3 1 y [J
0 3 2 zz [J
1 3 3 precomp [J
MethodParameters:
Name Flags
x
y
zz
protected static void implMultiplyPrecomp(long[], long[], long[]);
descriptor: ([J[J[J)V
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=7, locals=9, args_size=3
start local 0 // long[] x
start local 1 // long[] precomp
start local 2 // long[] zz
0: .line 284
bipush 15
istore 3 /* MASK */
start local 3 // int MASK
1: .line 290
bipush 56
istore 4 /* k */
start local 4 // int k
2: goto 13
3: .line 292
StackMap locals: int int
StackMap stack:
iconst_1
istore 5 /* j */
start local 5 // int j
4: goto 10
5: .line 294
StackMap locals: int
StackMap stack:
aload 0 /* x */
iload 5 /* j */
laload
iload 4 /* k */
lushr
l2i
istore 6 /* aVal */
start local 6 // int aVal
6: .line 295
iload 6 /* aVal */
iload 3 /* MASK */
iand
istore 7 /* u */
start local 7 // int u
7: .line 296
iload 6 /* aVal */
iconst_4
iushr
iload 3 /* MASK */
iand
istore 8 /* v */
start local 8 // int v
8: .line 297
aload 1 /* precomp */
bipush 9
iload 7 /* u */
imul
aload 1 /* precomp */
bipush 9
iload 8 /* v */
bipush 16
iadd
imul
aload 2 /* zz */
iload 5 /* j */
iconst_1
isub
invokestatic org.bouncycastle.math.ec.custom.sec.SecT571Field.addBothTo:([JI[JI[JI)V
end local 8 // int v
end local 7 // int u
end local 6 // int aVal
9: .line 292
iinc 5 /* j */ 2
StackMap locals:
StackMap stack:
10: iload 5 /* j */
bipush 9
if_icmplt 5
end local 5 // int j
11: .line 299
bipush 16
aload 2 /* zz */
iconst_0
bipush 8
lconst_0
invokestatic org.bouncycastle.math.raw.Nat.shiftUpBits64:(I[JIIJ)J
pop2
12: .line 290
iinc 4 /* k */ -8
StackMap locals:
StackMap stack:
13: iload 4 /* k */
ifge 3
end local 4 // int k
14: .line 302
bipush 56
istore 4 /* k */
start local 4 // int k
15: goto 27
16: .line 304
StackMap locals:
StackMap stack:
iconst_0
istore 5 /* j */
start local 5 // int j
17: goto 23
18: .line 306
StackMap locals: int
StackMap stack:
aload 0 /* x */
iload 5 /* j */
laload
iload 4 /* k */
lushr
l2i
istore 6 /* aVal */
start local 6 // int aVal
19: .line 307
iload 6 /* aVal */
iload 3 /* MASK */
iand
istore 7 /* u */
start local 7 // int u
20: .line 308
iload 6 /* aVal */
iconst_4
iushr
iload 3 /* MASK */
iand
istore 8 /* v */
start local 8 // int v
21: .line 309
aload 1 /* precomp */
bipush 9
iload 7 /* u */
imul
aload 1 /* precomp */
bipush 9
iload 8 /* v */
bipush 16
iadd
imul
aload 2 /* zz */
iload 5 /* j */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT571Field.addBothTo:([JI[JI[JI)V
end local 8 // int v
end local 7 // int u
end local 6 // int aVal
22: .line 304
iinc 5 /* j */ 2
StackMap locals:
StackMap stack:
23: iload 5 /* j */
bipush 9
if_icmplt 18
end local 5 // int j
24: .line 311
iload 4 /* k */
ifle 26
25: .line 313
bipush 18
aload 2 /* zz */
iconst_0
bipush 8
lconst_0
invokestatic org.bouncycastle.math.raw.Nat.shiftUpBits64:(I[JIIJ)J
pop2
26: .line 302
StackMap locals:
StackMap stack:
iinc 4 /* k */ -8
StackMap locals:
StackMap stack:
27: iload 4 /* k */
ifge 16
end local 4 // int k
28: .line 316
return
end local 3 // int MASK
end local 2 // long[] zz
end local 1 // long[] precomp
end local 0 // long[] x
LocalVariableTable:
Start End Slot Name Signature
0 29 0 x [J
0 29 1 precomp [J
0 29 2 zz [J
1 29 3 MASK I
2 14 4 k I
4 11 5 j I
6 9 6 aVal I
7 9 7 u I
8 9 8 v I
15 28 4 k I
17 24 5 j I
19 22 6 aVal I
20 22 7 u I
21 22 8 v I
MethodParameters:
Name Flags
x
precomp
zz
protected static void implMulwAcc(long[], long, long[], int);
descriptor: ([JJ[JI)V
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=7, locals=18, 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 320
bipush 32
newarray 11
astore 5 /* u */
start local 5 // long[] u
1: .line 322
aload 5 /* u */
iconst_1
lload 1 /* y */
lastore
2: .line 323
iconst_2
istore 6 /* i */
start local 6 // int i
3: goto 7
4: .line 325
StackMap locals: long[] int
StackMap stack:
aload 5 /* u */
iload 6 /* i */
aload 5 /* u */
iload 6 /* i */
iconst_1
iushr
laload
iconst_1
lshl
lastore
5: .line 326
aload 5 /* u */
iload 6 /* i */
iconst_1
iadd
aload 5 /* u */
iload 6 /* i */
laload
lload 1 /* y */
lxor
lastore
6: .line 323
iinc 6 /* i */ 2
StackMap locals:
StackMap stack:
7: iload 6 /* i */
bipush 32
if_icmplt 4
end local 6 // int i
8: .line 329
lconst_0
lstore 6 /* l */
start local 6 // long l
9: .line 330
iconst_0
istore 8 /* i */
start local 8 // int i
10: goto 31
11: .line 332
StackMap locals: long[] long long[] int long[] long int
StackMap stack:
aload 0 /* xs */
iload 8 /* i */
laload
lstore 9 /* x */
start local 9 // long x
12: .line 334
lload 9 /* x */
l2i
istore 11 /* j */
start local 11 // int j
13: .line 336
lload 6 /* l */
aload 5 /* u */
iload 11 /* j */
bipush 31
iand
laload
lxor
lstore 6 /* l */
14: .line 338
lconst_0
lstore 14 /* h */
start local 14 // long h
15: .line 339
bipush 60
istore 16 /* k */
start local 16 // int k
16: .line 342
StackMap locals: long[] long long[] int long[] long int long int top top long int
StackMap stack:
lload 9 /* x */
iload 16 /* k */
lushr
l2i
istore 11 /* j */
17: .line 343
aload 5 /* u */
iload 11 /* j */
bipush 31
iand
laload
lstore 12 /* g */
start local 12 // long g
18: .line 344
lload 6 /* l */
lload 12 /* g */
iload 16 /* k */
lshl
lxor
lstore 6 /* l */
19: .line 345
lload 14 /* h */
lload 12 /* g */
iload 16 /* k */
ineg
lushr
lxor
lstore 14 /* h */
20: .line 347
iinc 16 /* k */ -5
iload 16 /* k */
21: .line 340
ifgt 16
22: .line 349
iconst_0
istore 17 /* p */
start local 17 // int p
23: goto 27
24: .line 351
StackMap locals: long[] long long[] int long[] long int long int long long int int
StackMap stack:
lload 9 /* x */
ldc -1190112520884487202
land
iconst_1
lushr
lstore 9 /* x */
25: .line 352
lload 14 /* h */
lload 9 /* x */
lload 1 /* y */
iload 17 /* p */
lshl
bipush 63
lshr
land
lxor
lstore 14 /* h */
26: .line 349
iinc 17 /* p */ 1
StackMap locals:
StackMap stack:
27: iload 17 /* p */
iconst_4
if_icmplt 24
end local 17 // int p
28: .line 355
aload 3 /* z */
iload 4 /* zOff */
iload 8 /* i */
iadd
dup2
laload
lload 6 /* l */
lxor
lastore
29: .line 357
lload 14 /* h */
lstore 6 /* l */
end local 16 // int k
end local 14 // long h
end local 12 // long g
end local 11 // int j
end local 9 // long x
30: .line 330
iinc 8 /* i */ 1
StackMap locals: long[] long long[] int long[] long int
StackMap stack:
31: iload 8 /* i */
bipush 9
if_icmplt 11
end local 8 // int i
32: .line 359
aload 3 /* z */
iload 4 /* zOff */
bipush 9
iadd
dup2
laload
lload 6 /* l */
lxor
lastore
33: .line 360
return
end local 6 // long l
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 34 0 xs [J
0 34 1 y J
0 34 3 z [J
0 34 4 zOff I
1 34 5 u [J
3 8 6 i I
9 34 6 l J
10 32 8 i I
12 30 9 x J
13 30 11 j I
18 30 12 g J
15 30 14 h J
16 30 16 k I
23 28 17 p 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 364
iconst_0
istore 2 /* i */
start local 2 // int i
1: goto 4
2: .line 366
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 364
iinc 2 /* i */ 1
StackMap locals:
StackMap stack:
4: iload 2 /* i */
bipush 9
if_icmplt 2
end local 2 // int i
5: .line 368
return
end local 1 // long[] zz
end local 0 // long[] x
LocalVariableTable:
Start End Slot Name Signature
0 6 0 x [J
0 6 1 zz [J
1 5 2 i I
MethodParameters:
Name Flags
x
zz
}
SourceFile: "SecT571Field.java"