public class org.bouncycastle.math.ec.custom.sec.SecT163Field
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.bouncycastle.math.ec.custom.sec.SecT163Field
super_class: java.lang.Object
{
private static final long M35;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 34359738367
private static final long M55;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 36028797018963967
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 13
iconst_3
newarray 11
dup
iconst_0
ldc -5270498306774157648
lastore
dup
iconst_1
ldc 5270498306774195053
lastore
dup
iconst_2
ldc 19634136210
lastore
putstatic org.bouncycastle.math.ec.custom.sec.SecT163Field.ROOT_Z:[J
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.SecT163Field this
0: .line 8
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
return
end local 0 // org.bouncycastle.math.ec.custom.sec.SecT163Field this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/math/ec/custom/sec/SecT163Field;
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 17
aload 2 /* z */
iconst_0
aload 0 /* x */
iconst_0
laload
aload 1 /* y */
iconst_0
laload
lxor
lastore
1: .line 18
aload 2 /* z */
iconst_1
aload 0 /* x */
iconst_1
laload
aload 1 /* y */
iconst_1
laload
lxor
lastore
2: .line 19
aload 2 /* z */
iconst_2
aload 0 /* x */
iconst_2
laload
aload 1 /* y */
iconst_2
laload
lxor
lastore
3: .line 20
return
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
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 24
aload 2 /* zz */
iconst_0
aload 0 /* xx */
iconst_0
laload
aload 1 /* yy */
iconst_0
laload
lxor
lastore
1: .line 25
aload 2 /* zz */
iconst_1
aload 0 /* xx */
iconst_1
laload
aload 1 /* yy */
iconst_1
laload
lxor
lastore
2: .line 26
aload 2 /* zz */
iconst_2
aload 0 /* xx */
iconst_2
laload
aload 1 /* yy */
iconst_2
laload
lxor
lastore
3: .line 27
aload 2 /* zz */
iconst_3
aload 0 /* xx */
iconst_3
laload
aload 1 /* yy */
iconst_3
laload
lxor
lastore
4: .line 28
aload 2 /* zz */
iconst_4
aload 0 /* xx */
iconst_4
laload
aload 1 /* yy */
iconst_4
laload
lxor
lastore
5: .line 29
aload 2 /* zz */
iconst_5
aload 0 /* xx */
iconst_5
laload
aload 1 /* yy */
iconst_5
laload
lxor
lastore
6: .line 30
return
end local 2 // long[] zz
end local 1 // long[] yy
end local 0 // long[] xx
LocalVariableTable:
Start End Slot Name Signature
0 7 0 xx [J
0 7 1 yy [J
0 7 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 34
aload 1 /* z */
iconst_0
aload 0 /* x */
iconst_0
laload
lconst_1
lxor
lastore
1: .line 35
aload 1 /* z */
iconst_1
aload 0 /* x */
iconst_1
laload
lastore
2: .line 36
aload 1 /* z */
iconst_2
aload 0 /* x */
iconst_2
laload
lastore
3: .line 37
return
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
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 41
aload 0 /* x */
invokestatic org.bouncycastle.math.raw.Nat192.fromBigInteger64:(Ljava/math/BigInteger;)[J
astore 1 /* z */
start local 1 // long[] z
1: .line 42
aload 1 /* z */
iconst_0
invokestatic org.bouncycastle.math.ec.custom.sec.SecT163Field.reduce29:([JI)V
2: .line 43
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 48
aload 0 /* x */
invokestatic org.bouncycastle.math.raw.Nat192.isZero64:([J)Z
ifeq 2
1: .line 50
new java.lang.IllegalStateException
dup
invokespecial java.lang.IllegalStateException.<init>:()V
athrow
2: .line 55
StackMap locals:
StackMap stack:
invokestatic org.bouncycastle.math.raw.Nat192.create64:()[J
astore 2 /* t0 */
start local 2 // long[] t0
3: .line 56
invokestatic org.bouncycastle.math.raw.Nat192.create64:()[J
astore 3 /* t1 */
start local 3 // long[] t1
4: .line 58
aload 0 /* x */
aload 2 /* t0 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT163Field.square:([J[J)V
5: .line 61
aload 2 /* t0 */
iconst_1
aload 3 /* t1 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT163Field.squareN:([JI[J)V
6: .line 62
aload 2 /* t0 */
aload 3 /* t1 */
aload 2 /* t0 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT163Field.multiply:([J[J[J)V
7: .line 63
aload 3 /* t1 */
iconst_1
aload 3 /* t1 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT163Field.squareN:([JI[J)V
8: .line 64
aload 2 /* t0 */
aload 3 /* t1 */
aload 2 /* t0 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT163Field.multiply:([J[J[J)V
9: .line 67
aload 2 /* t0 */
iconst_3
aload 3 /* t1 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT163Field.squareN:([JI[J)V
10: .line 68
aload 2 /* t0 */
aload 3 /* t1 */
aload 2 /* t0 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT163Field.multiply:([J[J[J)V
11: .line 69
aload 3 /* t1 */
iconst_3
aload 3 /* t1 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT163Field.squareN:([JI[J)V
12: .line 70
aload 2 /* t0 */
aload 3 /* t1 */
aload 2 /* t0 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT163Field.multiply:([J[J[J)V
13: .line 73
aload 2 /* t0 */
bipush 9
aload 3 /* t1 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT163Field.squareN:([JI[J)V
14: .line 74
aload 2 /* t0 */
aload 3 /* t1 */
aload 2 /* t0 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT163Field.multiply:([J[J[J)V
15: .line 75
aload 3 /* t1 */
bipush 9
aload 3 /* t1 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT163Field.squareN:([JI[J)V
16: .line 76
aload 2 /* t0 */
aload 3 /* t1 */
aload 2 /* t0 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT163Field.multiply:([J[J[J)V
17: .line 79
aload 2 /* t0 */
bipush 27
aload 3 /* t1 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT163Field.squareN:([JI[J)V
18: .line 80
aload 2 /* t0 */
aload 3 /* t1 */
aload 2 /* t0 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT163Field.multiply:([J[J[J)V
19: .line 81
aload 3 /* t1 */
bipush 27
aload 3 /* t1 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT163Field.squareN:([JI[J)V
20: .line 82
aload 2 /* t0 */
aload 3 /* t1 */
aload 2 /* t0 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT163Field.multiply:([J[J[J)V
21: .line 85
aload 2 /* t0 */
bipush 81
aload 3 /* t1 */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT163Field.squareN:([JI[J)V
22: .line 86
aload 2 /* t0 */
aload 3 /* t1 */
aload 1 /* z */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT163Field.multiply:([J[J[J)V
23: .line 87
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 24 0 x [J
0 24 1 z [J
3 24 2 t0 [J
4 24 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 91
invokestatic org.bouncycastle.math.raw.Nat192.createExt64:()[J
astore 3 /* tt */
start local 3 // long[] tt
1: .line 92
aload 0 /* x */
aload 1 /* y */
aload 3 /* tt */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT163Field.implMultiply:([J[J[J)V
2: .line 93
aload 3 /* tt */
aload 2 /* z */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT163Field.reduce:([J[J)V
3: .line 94
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 98
invokestatic org.bouncycastle.math.raw.Nat192.createExt64:()[J
astore 3 /* tt */
start local 3 // long[] tt
1: .line 99
aload 0 /* x */
aload 1 /* y */
aload 3 /* tt */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT163Field.implMultiply:([J[J[J)V
2: .line 100
aload 2 /* zz */
aload 3 /* tt */
aload 2 /* zz */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT163Field.addExt:([J[J[J)V
3: .line 101
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=16, args_size=2
start local 0 // long[] xx
start local 1 // long[] z
0: .line 105
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: 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: .line 107
lload 6 /* x2 */
lload 12 /* x5 */
bipush 29
lshl
lload 12 /* x5 */
bipush 32
lshl
lxor
lload 12 /* x5 */
bipush 35
lshl
lxor
lload 12 /* x5 */
bipush 36
lshl
lxor
lxor
lstore 6 /* x2 */
7: .line 108
lload 8 /* x3 */
lload 12 /* x5 */
bipush 35
lushr
lload 12 /* x5 */
bipush 32
lushr
lxor
lload 12 /* x5 */
bipush 29
lushr
lxor
lload 12 /* x5 */
bipush 28
lushr
lxor
lxor
lstore 8 /* x3 */
8: .line 110
lload 4 /* x1 */
lload 10 /* x4 */
bipush 29
lshl
lload 10 /* x4 */
bipush 32
lshl
lxor
lload 10 /* x4 */
bipush 35
lshl
lxor
lload 10 /* x4 */
bipush 36
lshl
lxor
lxor
lstore 4 /* x1 */
9: .line 111
lload 6 /* x2 */
lload 10 /* x4 */
bipush 35
lushr
lload 10 /* x4 */
bipush 32
lushr
lxor
lload 10 /* x4 */
bipush 29
lushr
lxor
lload 10 /* x4 */
bipush 28
lushr
lxor
lxor
lstore 6 /* x2 */
10: .line 113
lload 2 /* x0 */
lload 8 /* x3 */
bipush 29
lshl
lload 8 /* x3 */
bipush 32
lshl
lxor
lload 8 /* x3 */
bipush 35
lshl
lxor
lload 8 /* x3 */
bipush 36
lshl
lxor
lxor
lstore 2 /* x0 */
11: .line 114
lload 4 /* x1 */
lload 8 /* x3 */
bipush 35
lushr
lload 8 /* x3 */
bipush 32
lushr
lxor
lload 8 /* x3 */
bipush 29
lushr
lxor
lload 8 /* x3 */
bipush 28
lushr
lxor
lxor
lstore 4 /* x1 */
12: .line 116
lload 6 /* x2 */
bipush 35
lushr
lstore 14 /* t */
start local 14 // long t
13: .line 117
aload 1 /* z */
iconst_0
lload 2 /* x0 */
lload 14 /* t */
lxor
lload 14 /* t */
iconst_3
lshl
lxor
lload 14 /* t */
bipush 6
lshl
lxor
lload 14 /* t */
bipush 7
lshl
lxor
lastore
14: .line 118
aload 1 /* z */
iconst_1
lload 4 /* x1 */
lastore
15: .line 119
aload 1 /* z */
iconst_2
lload 6 /* x2 */
ldc 34359738367
land
lastore
16: .line 120
return
end local 14 // long t
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 17 0 xx [J
0 17 1 z [J
1 17 2 x0 J
2 17 4 x1 J
3 17 6 x2 J
4 17 8 x3 J
5 17 10 x4 J
6 17 12 x5 J
13 17 14 t J
MethodParameters:
Name Flags
xx
z
public static void reduce29(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 124
aload 0 /* z */
iload 1 /* zOff */
iconst_2
iadd
laload
lstore 2 /* z2 */
start local 2 // long z2
1: lload 2 /* z2 */
bipush 35
lushr
lstore 4 /* t */
start local 4 // long t
2: .line 125
aload 0 /* z */
iload 1 /* zOff */
dup2
laload
lload 4 /* t */
lload 4 /* t */
iconst_3
lshl
lxor
lload 4 /* t */
bipush 6
lshl
lxor
lload 4 /* t */
bipush 7
lshl
lxor
lxor
lastore
3: .line 126
aload 0 /* z */
iload 1 /* zOff */
iconst_2
iadd
lload 2 /* z2 */
ldc 34359738367
land
lastore
4: .line 127
return
end local 4 // long t
end local 2 // long z2
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 z2 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=11, args_size=2
start local 0 // long[] x
start local 1 // long[] z
0: .line 131
invokestatic org.bouncycastle.math.raw.Nat192.create64:()[J
astore 2 /* odd */
start local 2 // long[] odd
1: .line 134
aload 0 /* x */
iconst_0
laload
invokestatic org.bouncycastle.math.raw.Interleave.unshuffle:(J)J
lstore 3 /* u0 */
start local 3 // long u0
2: aload 0 /* x */
iconst_1
laload
invokestatic org.bouncycastle.math.raw.Interleave.unshuffle:(J)J
lstore 5 /* u1 */
start local 5 // long u1
3: .line 135
lload 3 /* u0 */
ldc 4294967295
land
lload 5 /* u1 */
bipush 32
lshl
lor
lstore 7 /* e0 */
start local 7 // long e0
4: .line 136
aload 2 /* odd */
iconst_0
lload 3 /* u0 */
bipush 32
lushr
lload 5 /* u1 */
ldc -4294967296
land
lor
lastore
5: .line 138
aload 0 /* x */
iconst_2
laload
invokestatic org.bouncycastle.math.raw.Interleave.unshuffle:(J)J
lstore 3 /* u0 */
6: .line 139
lload 3 /* u0 */
ldc 4294967295
land
lstore 9 /* e1 */
start local 9 // long e1
7: .line 140
aload 2 /* odd */
iconst_1
lload 3 /* u0 */
bipush 32
lushr
lastore
8: .line 142
aload 2 /* odd */
getstatic org.bouncycastle.math.ec.custom.sec.SecT163Field.ROOT_Z:[J
aload 1 /* z */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT163Field.multiply:([J[J[J)V
9: .line 144
aload 1 /* z */
iconst_0
dup2
laload
lload 7 /* e0 */
lxor
lastore
10: .line 145
aload 1 /* z */
iconst_1
dup2
laload
lload 9 /* e1 */
lxor
lastore
11: .line 146
return
end local 9 // long e1
end local 7 // long e0
end local 5 // long u1
end local 3 // long u0
end local 2 // long[] odd
end local 1 // long[] z
end local 0 // long[] x
LocalVariableTable:
Start End Slot Name Signature
0 12 0 x [J
0 12 1 z [J
1 12 2 odd [J
2 12 3 u0 J
3 12 5 u1 J
4 12 7 e0 J
7 12 9 e1 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 150
invokestatic org.bouncycastle.math.raw.Nat192.createExt64:()[J
astore 2 /* tt */
start local 2 // long[] tt
1: .line 151
aload 0 /* x */
aload 2 /* tt */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT163Field.implSquare:([J[J)V
2: .line 152
aload 2 /* tt */
aload 1 /* z */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT163Field.reduce:([J[J)V
3: .line 153
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 157
invokestatic org.bouncycastle.math.raw.Nat192.createExt64:()[J
astore 2 /* tt */
start local 2 // long[] tt
1: .line 158
aload 0 /* x */
aload 2 /* tt */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT163Field.implSquare:([J[J)V
2: .line 159
aload 1 /* zz */
aload 2 /* tt */
aload 1 /* zz */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT163Field.addExt:([J[J[J)V
3: .line 160
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 166
invokestatic org.bouncycastle.math.raw.Nat192.createExt64:()[J
astore 3 /* tt */
start local 3 // long[] tt
1: .line 167
aload 0 /* x */
aload 3 /* tt */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT163Field.implSquare:([J[J)V
2: .line 168
aload 3 /* tt */
aload 2 /* z */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT163Field.reduce:([J[J)V
3: .line 170
goto 6
4: .line 172
StackMap locals: long[]
StackMap stack:
aload 2 /* z */
aload 3 /* tt */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT163Field.implSquare:([J[J)V
5: .line 173
aload 3 /* tt */
aload 2 /* z */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT163Field.reduce:([J[J)V
6: .line 170
StackMap locals:
StackMap stack:
iinc 1 /* n */ -1
iload 1 /* n */
ifgt 4
7: .line 175
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 180
aload 0 /* x */
iconst_0
laload
aload 0 /* x */
iconst_2
laload
bipush 29
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=13, args_size=1
start local 0 // long[] zz
0: .line 185
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: .line 186
aload 0 /* zz */
iconst_0
lload 1 /* z0 */
lload 3 /* z1 */
bipush 55
lshl
lxor
lastore
7: .line 187
aload 0 /* zz */
iconst_1
lload 3 /* z1 */
bipush 9
lushr
lload 5 /* z2 */
bipush 46
lshl
lxor
lastore
8: .line 188
aload 0 /* zz */
iconst_2
lload 5 /* z2 */
bipush 18
lushr
lload 7 /* z3 */
bipush 37
lshl
lxor
lastore
9: .line 189
aload 0 /* zz */
iconst_3
lload 7 /* z3 */
bipush 27
lushr
lload 9 /* z4 */
bipush 28
lshl
lxor
lastore
10: .line 190
aload 0 /* zz */
iconst_4
lload 9 /* z4 */
bipush 36
lushr
lload 11 /* z5 */
bipush 19
lshl
lxor
lastore
11: .line 191
aload 0 /* zz */
iconst_5
lload 11 /* z5 */
bipush 45
lushr
lastore
12: .line 192
return
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 13 0 zz [J
1 13 1 z0 J
2 13 3 z1 J
3 13 5 z2 J
4 13 7 z3 J
5 13 9 z4 J
6 13 11 z5 J
MethodParameters:
Name Flags
zz
protected static void implMultiply(long[], long[], long[]);
descriptor: ([J[J[J)V
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=6, locals=46, args_size=3
start local 0 // long[] x
start local 1 // long[] y
start local 2 // long[] zz
0: .line 200
aload 0 /* x */
iconst_0
laload
lstore 3 /* f0 */
start local 3 // long f0
1: aload 0 /* x */
iconst_1
laload
lstore 5 /* f1 */
start local 5 // long f1
2: aload 0 /* x */
iconst_2
laload
lstore 7 /* f2 */
start local 7 // long f2
3: .line 201
lload 5 /* f1 */
bipush 46
lushr
lload 7 /* f2 */
bipush 18
lshl
lxor
lstore 7 /* f2 */
4: .line 202
lload 3 /* f0 */
bipush 55
lushr
lload 5 /* f1 */
bipush 9
lshl
lxor
ldc 36028797018963967
land
lstore 5 /* f1 */
5: .line 203
lload 3 /* f0 */
ldc 36028797018963967
land
lstore 3 /* f0 */
6: .line 205
aload 1 /* y */
iconst_0
laload
lstore 9 /* g0 */
start local 9 // long g0
7: aload 1 /* y */
iconst_1
laload
lstore 11 /* g1 */
start local 11 // long g1
8: aload 1 /* y */
iconst_2
laload
lstore 13 /* g2 */
start local 13 // long g2
9: .line 206
lload 11 /* g1 */
bipush 46
lushr
lload 13 /* g2 */
bipush 18
lshl
lxor
lstore 13 /* g2 */
10: .line 207
lload 9 /* g0 */
bipush 55
lushr
lload 11 /* g1 */
bipush 9
lshl
lxor
ldc 36028797018963967
land
lstore 11 /* g1 */
11: .line 208
lload 9 /* g0 */
ldc 36028797018963967
land
lstore 9 /* g0 */
12: .line 210
bipush 10
newarray 11
astore 15 /* H */
start local 15 // long[] H
13: .line 212
lload 3 /* f0 */
lload 9 /* g0 */
aload 15 /* H */
iconst_0
invokestatic org.bouncycastle.math.ec.custom.sec.SecT163Field.implMulw:(JJ[JI)V
14: .line 213
lload 7 /* f2 */
lload 13 /* g2 */
aload 15 /* H */
iconst_2
invokestatic org.bouncycastle.math.ec.custom.sec.SecT163Field.implMulw:(JJ[JI)V
15: .line 215
lload 3 /* f0 */
lload 5 /* f1 */
lxor
lload 7 /* f2 */
lxor
lstore 16 /* t0 */
start local 16 // long t0
16: .line 216
lload 9 /* g0 */
lload 11 /* g1 */
lxor
lload 13 /* g2 */
lxor
lstore 18 /* t1 */
start local 18 // long t1
17: .line 218
lload 16 /* t0 */
lload 18 /* t1 */
aload 15 /* H */
iconst_4
invokestatic org.bouncycastle.math.ec.custom.sec.SecT163Field.implMulw:(JJ[JI)V
18: .line 220
lload 5 /* f1 */
iconst_1
lshl
lload 7 /* f2 */
iconst_2
lshl
lxor
lstore 20 /* t2 */
start local 20 // long t2
19: .line 221
lload 11 /* g1 */
iconst_1
lshl
lload 13 /* g2 */
iconst_2
lshl
lxor
lstore 22 /* t3 */
start local 22 // long t3
20: .line 223
lload 3 /* f0 */
lload 20 /* t2 */
lxor
lload 9 /* g0 */
lload 22 /* t3 */
lxor
aload 15 /* H */
bipush 6
invokestatic org.bouncycastle.math.ec.custom.sec.SecT163Field.implMulw:(JJ[JI)V
21: .line 224
lload 16 /* t0 */
lload 20 /* t2 */
lxor
lload 18 /* t1 */
lload 22 /* t3 */
lxor
aload 15 /* H */
bipush 8
invokestatic org.bouncycastle.math.ec.custom.sec.SecT163Field.implMulw:(JJ[JI)V
22: .line 226
aload 15 /* H */
bipush 6
laload
aload 15 /* H */
bipush 8
laload
lxor
lstore 24 /* t4 */
start local 24 // long t4
23: .line 227
aload 15 /* H */
bipush 7
laload
aload 15 /* H */
bipush 9
laload
lxor
lstore 26 /* t5 */
start local 26 // long t5
24: .line 232
lload 24 /* t4 */
iconst_1
lshl
aload 15 /* H */
bipush 6
laload
lxor
lstore 28 /* v0 */
start local 28 // long v0
25: .line 233
lload 24 /* t4 */
lload 26 /* t5 */
iconst_1
lshl
lxor
aload 15 /* H */
bipush 7
laload
lxor
lstore 30 /* v1 */
start local 30 // long v1
26: .line 234
lload 26 /* t5 */
lstore 32 /* v2 */
start local 32 // long v2
27: .line 237
aload 15 /* H */
iconst_0
laload
lstore 34 /* u0 */
start local 34 // long u0
28: .line 238
aload 15 /* H */
iconst_1
laload
aload 15 /* H */
iconst_0
laload
lxor
aload 15 /* H */
iconst_4
laload
lxor
lstore 36 /* u1 */
start local 36 // long u1
29: .line 239
aload 15 /* H */
iconst_1
laload
aload 15 /* H */
iconst_5
laload
lxor
lstore 38 /* u2 */
start local 38 // long u2
30: .line 242
lload 34 /* u0 */
lload 28 /* v0 */
lxor
aload 15 /* H */
iconst_2
laload
iconst_4
lshl
lxor
aload 15 /* H */
iconst_2
laload
iconst_1
lshl
lxor
lstore 40 /* w0 */
start local 40 // long w0
31: .line 243
lload 36 /* u1 */
lload 30 /* v1 */
lxor
aload 15 /* H */
iconst_3
laload
iconst_4
lshl
lxor
aload 15 /* H */
iconst_3
laload
iconst_1
lshl
lxor
lstore 42 /* w1 */
start local 42 // long w1
32: .line 244
lload 38 /* u2 */
lload 32 /* v2 */
lxor
lstore 44 /* w2 */
start local 44 // long w2
33: .line 247
lload 42 /* w1 */
lload 40 /* w0 */
bipush 55
lushr
lxor
lstore 42 /* w1 */
lload 40 /* w0 */
ldc 36028797018963967
land
lstore 40 /* w0 */
34: .line 248
lload 44 /* w2 */
lload 42 /* w1 */
bipush 55
lushr
lxor
lstore 44 /* w2 */
lload 42 /* w1 */
ldc 36028797018963967
land
lstore 42 /* w1 */
35: .line 254
lload 40 /* w0 */
iconst_1
lushr
lload 42 /* w1 */
lconst_1
land
bipush 54
lshl
lxor
lstore 40 /* w0 */
36: .line 255
lload 42 /* w1 */
iconst_1
lushr
lload 44 /* w2 */
lconst_1
land
bipush 54
lshl
lxor
lstore 42 /* w1 */
37: .line 256
lload 44 /* w2 */
iconst_1
lushr
lstore 44 /* w2 */
38: .line 260
lload 40 /* w0 */
lload 40 /* w0 */
iconst_1
lshl
lxor
lstore 40 /* w0 */
39: .line 261
lload 40 /* w0 */
lload 40 /* w0 */
iconst_2
lshl
lxor
lstore 40 /* w0 */
40: .line 262
lload 40 /* w0 */
lload 40 /* w0 */
iconst_4
lshl
lxor
lstore 40 /* w0 */
41: .line 263
lload 40 /* w0 */
lload 40 /* w0 */
bipush 8
lshl
lxor
lstore 40 /* w0 */
42: .line 264
lload 40 /* w0 */
lload 40 /* w0 */
bipush 16
lshl
lxor
lstore 40 /* w0 */
43: .line 265
lload 40 /* w0 */
lload 40 /* w0 */
bipush 32
lshl
lxor
lstore 40 /* w0 */
44: .line 267
lload 40 /* w0 */
ldc 36028797018963967
land
lstore 40 /* w0 */
lload 42 /* w1 */
lload 40 /* w0 */
bipush 54
lushr
lxor
lstore 42 /* w1 */
45: .line 269
lload 42 /* w1 */
lload 42 /* w1 */
iconst_1
lshl
lxor
lstore 42 /* w1 */
46: .line 270
lload 42 /* w1 */
lload 42 /* w1 */
iconst_2
lshl
lxor
lstore 42 /* w1 */
47: .line 271
lload 42 /* w1 */
lload 42 /* w1 */
iconst_4
lshl
lxor
lstore 42 /* w1 */
48: .line 272
lload 42 /* w1 */
lload 42 /* w1 */
bipush 8
lshl
lxor
lstore 42 /* w1 */
49: .line 273
lload 42 /* w1 */
lload 42 /* w1 */
bipush 16
lshl
lxor
lstore 42 /* w1 */
50: .line 274
lload 42 /* w1 */
lload 42 /* w1 */
bipush 32
lshl
lxor
lstore 42 /* w1 */
51: .line 276
lload 42 /* w1 */
ldc 36028797018963967
land
lstore 42 /* w1 */
lload 44 /* w2 */
lload 42 /* w1 */
bipush 54
lushr
lxor
lstore 44 /* w2 */
52: .line 278
lload 44 /* w2 */
lload 44 /* w2 */
iconst_1
lshl
lxor
lstore 44 /* w2 */
53: .line 279
lload 44 /* w2 */
lload 44 /* w2 */
iconst_2
lshl
lxor
lstore 44 /* w2 */
54: .line 280
lload 44 /* w2 */
lload 44 /* w2 */
iconst_4
lshl
lxor
lstore 44 /* w2 */
55: .line 281
lload 44 /* w2 */
lload 44 /* w2 */
bipush 8
lshl
lxor
lstore 44 /* w2 */
56: .line 282
lload 44 /* w2 */
lload 44 /* w2 */
bipush 16
lshl
lxor
lstore 44 /* w2 */
57: .line 283
lload 44 /* w2 */
lload 44 /* w2 */
bipush 32
lshl
lxor
lstore 44 /* w2 */
58: .line 287
aload 2 /* zz */
iconst_0
lload 34 /* u0 */
lastore
59: .line 288
aload 2 /* zz */
iconst_1
lload 36 /* u1 */
lload 40 /* w0 */
lxor
aload 15 /* H */
iconst_2
laload
lxor
lastore
60: .line 289
aload 2 /* zz */
iconst_2
lload 38 /* u2 */
lload 42 /* w1 */
lxor
lload 40 /* w0 */
lxor
aload 15 /* H */
iconst_3
laload
lxor
lastore
61: .line 290
aload 2 /* zz */
iconst_3
lload 44 /* w2 */
lload 42 /* w1 */
lxor
lastore
62: .line 291
aload 2 /* zz */
iconst_4
lload 44 /* w2 */
aload 15 /* H */
iconst_2
laload
lxor
lastore
63: .line 292
aload 2 /* zz */
iconst_5
aload 15 /* H */
iconst_3
laload
lastore
64: .line 294
aload 2 /* zz */
invokestatic org.bouncycastle.math.ec.custom.sec.SecT163Field.implCompactExt:([J)V
65: .line 295
return
end local 44 // long w2
end local 42 // long w1
end local 40 // long w0
end local 38 // long u2
end local 36 // long u1
end local 34 // long u0
end local 32 // long v2
end local 30 // long v1
end local 28 // long v0
end local 26 // long t5
end local 24 // long t4
end local 22 // long t3
end local 20 // long t2
end local 18 // long t1
end local 16 // long t0
end local 15 // long[] H
end local 13 // long g2
end local 11 // long g1
end local 9 // long g0
end local 7 // long f2
end local 5 // long f1
end local 3 // long f0
end local 2 // long[] zz
end local 1 // long[] y
end local 0 // long[] x
LocalVariableTable:
Start End Slot Name Signature
0 66 0 x [J
0 66 1 y [J
0 66 2 zz [J
1 66 3 f0 J
2 66 5 f1 J
3 66 7 f2 J
7 66 9 g0 J
8 66 11 g1 J
9 66 13 g2 J
13 66 15 H [J
16 66 16 t0 J
17 66 18 t1 J
19 66 20 t2 J
20 66 22 t3 J
23 66 24 t4 J
24 66 26 t5 J
25 66 28 v0 J
26 66 30 v1 J
27 66 32 v2 J
28 66 34 u0 J
29 66 36 u1 J
30 66 38 u2 J
31 66 40 w0 J
32 66 42 w1 J
33 66 44 w2 J
MethodParameters:
Name Flags
x
y
zz
protected static void implMulw(long, long, long[], int);
descriptor: (JJ[JI)V
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=7, 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 302
bipush 8
newarray 11
astore 6 /* u */
start local 6 // long[] u
1: .line 304
aload 6 /* u */
iconst_1
lload 2 /* y */
lastore
2: .line 305
aload 6 /* u */
iconst_2
aload 6 /* u */
iconst_1
laload
iconst_1
lshl
lastore
3: .line 306
aload 6 /* u */
iconst_3
aload 6 /* u */
iconst_2
laload
lload 2 /* y */
lxor
lastore
4: .line 307
aload 6 /* u */
iconst_4
aload 6 /* u */
iconst_2
laload
iconst_1
lshl
lastore
5: .line 308
aload 6 /* u */
iconst_5
aload 6 /* u */
iconst_4
laload
lload 2 /* y */
lxor
lastore
6: .line 309
aload 6 /* u */
bipush 6
aload 6 /* u */
iconst_3
laload
iconst_1
lshl
lastore
7: .line 310
aload 6 /* u */
bipush 7
aload 6 /* u */
bipush 6
laload
lload 2 /* y */
lxor
lastore
8: .line 312
lload 0 /* x */
l2i
istore 7 /* j */
start local 7 // int j
9: .line 313
lconst_0
lstore 10 /* h */
start local 10 // long h
10: aload 6 /* u */
iload 7 /* j */
iconst_3
iand
laload
lstore 12 /* l */
start local 12 // long l
11: .line 314
bipush 47
istore 14 /* k */
start local 14 // int k
12: .line 317
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 */
13: .line 318
aload 6 /* u */
iload 7 /* j */
bipush 7
iand
laload
14: .line 319
aload 6 /* u */
iload 7 /* j */
iconst_3
iushr
bipush 7
iand
laload
iconst_3
lshl
15: .line 318
lxor
16: .line 320
aload 6 /* u */
iload 7 /* j */
bipush 6
iushr
bipush 7
iand
laload
bipush 6
lshl
17: .line 318
lxor
lstore 8 /* g */
start local 8 // long g
18: .line 321
lload 12 /* l */
lload 8 /* g */
iload 14 /* k */
lshl
lxor
lstore 12 /* l */
19: .line 322
lload 10 /* h */
lload 8 /* g */
iload 14 /* k */
ineg
lushr
lxor
lstore 10 /* h */
20: .line 324
iinc 14 /* k */ -9
iload 14 /* k */
21: .line 315
ifgt 12
22: .line 328
aload 4 /* z */
iload 5 /* zOff */
lload 12 /* l */
ldc 36028797018963967
land
lastore
23: .line 329
aload 4 /* z */
iload 5 /* zOff */
iconst_1
iadd
lload 12 /* l */
bipush 55
lushr
lload 10 /* h */
bipush 9
lshl
lxor
lastore
24: .line 330
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
18 25 8 g J
10 25 10 h J
11 25 12 l J
12 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 334
aload 0 /* x */
iconst_0
laload
aload 1 /* zz */
iconst_0
invokestatic org.bouncycastle.math.raw.Interleave.expand64To128:(J[JI)V
1: .line 335
aload 0 /* x */
iconst_1
laload
aload 1 /* zz */
iconst_2
invokestatic org.bouncycastle.math.raw.Interleave.expand64To128:(J[JI)V
2: .line 337
aload 0 /* x */
iconst_2
laload
lstore 2 /* x2 */
start local 2 // long x2
3: .line 338
aload 1 /* zz */
iconst_4
lload 2 /* x2 */
l2i
invokestatic org.bouncycastle.math.raw.Interleave.expand32to64:(I)J
lastore
4: .line 339
aload 1 /* zz */
iconst_5
lload 2 /* x2 */
bipush 32
lushr
l2i
invokestatic org.bouncycastle.math.raw.Interleave.expand8to16:(I)I
i2l
ldc 4294967295
land
lastore
5: .line 340
return
end local 2 // long x2
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
3 6 2 x2 J
MethodParameters:
Name Flags
x
zz
}
SourceFile: "SecT163Field.java"