public class org.bouncycastle.math.ec.custom.sec.SecP521R1Point extends org.bouncycastle.math.ec.ECPoint$AbstractFp
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.bouncycastle.math.ec.custom.sec.SecP521R1Point
super_class: org.bouncycastle.math.ec.ECPoint$AbstractFp
{
public void <init>(org.bouncycastle.math.ec.ECCurve, org.bouncycastle.math.ec.ECFieldElement, org.bouncycastle.math.ec.ECFieldElement);
descriptor: (Lorg/bouncycastle/math/ec/ECCurve;Lorg/bouncycastle/math/ec/ECFieldElement;Lorg/bouncycastle/math/ec/ECFieldElement;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
aload 2
aload 3
iconst_0
invokespecial org.bouncycastle.math.ec.custom.sec.SecP521R1Point.<init>:(Lorg/bouncycastle/math/ec/ECCurve;Lorg/bouncycastle/math/ec/ECFieldElement;Lorg/bouncycastle/math/ec/ECFieldElement;Z)V
1: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/bouncycastle/math/ec/custom/sec/SecP521R1Point;
0 2 1 curve Lorg/bouncycastle/math/ec/ECCurve;
0 2 2 x Lorg/bouncycastle/math/ec/ECFieldElement;
0 2 3 y Lorg/bouncycastle/math/ec/ECFieldElement;
MethodParameters:
Name Flags
curve
x
y
public void <init>(org.bouncycastle.math.ec.ECCurve, org.bouncycastle.math.ec.ECFieldElement, org.bouncycastle.math.ec.ECFieldElement, boolean);
descriptor: (Lorg/bouncycastle/math/ec/ECCurve;Lorg/bouncycastle/math/ec/ECFieldElement;Lorg/bouncycastle/math/ec/ECFieldElement;Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
aload 1
aload 2
aload 3
invokespecial org.bouncycastle.math.ec.ECPoint$AbstractFp.<init>:(Lorg/bouncycastle/math/ec/ECCurve;Lorg/bouncycastle/math/ec/ECFieldElement;Lorg/bouncycastle/math/ec/ECFieldElement;)V
1: aload 2
ifnonnull 2
iconst_1
goto 3
StackMap locals: org.bouncycastle.math.ec.custom.sec.SecP521R1Point org.bouncycastle.math.ec.ECCurve org.bouncycastle.math.ec.ECFieldElement org.bouncycastle.math.ec.ECFieldElement int
StackMap stack:
2: iconst_0
StackMap locals:
StackMap stack: int
3: aload 3
ifnonnull 4
iconst_1
goto 5
StackMap locals:
StackMap stack: int
4: iconst_0
StackMap locals: org.bouncycastle.math.ec.custom.sec.SecP521R1Point org.bouncycastle.math.ec.ECCurve org.bouncycastle.math.ec.ECFieldElement org.bouncycastle.math.ec.ECFieldElement int
StackMap stack: int int
5: if_icmpeq 7
6: new java.lang.IllegalArgumentException
dup
ldc "Exactly one of the field elements is null"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
7: StackMap locals:
StackMap stack:
aload 0
iload 4
putfield org.bouncycastle.math.ec.custom.sec.SecP521R1Point.withCompression:Z
8: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/bouncycastle/math/ec/custom/sec/SecP521R1Point;
0 9 1 curve Lorg/bouncycastle/math/ec/ECCurve;
0 9 2 x Lorg/bouncycastle/math/ec/ECFieldElement;
0 9 3 y Lorg/bouncycastle/math/ec/ECFieldElement;
0 9 4 withCompression Z
MethodParameters:
Name Flags
curve
x
y
withCompression
void <init>(org.bouncycastle.math.ec.ECCurve, org.bouncycastle.math.ec.ECFieldElement, org.bouncycastle.math.ec.ECFieldElement, org.bouncycastle.math.ec.ECFieldElement[], boolean);
descriptor: (Lorg/bouncycastle/math/ec/ECCurve;Lorg/bouncycastle/math/ec/ECFieldElement;Lorg/bouncycastle/math/ec/ECFieldElement;[Lorg/bouncycastle/math/ec/ECFieldElement;Z)V
flags: (0x0000)
Code:
stack=5, locals=6, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
aload 1
aload 2
aload 3
aload 4
invokespecial org.bouncycastle.math.ec.ECPoint$AbstractFp.<init>:(Lorg/bouncycastle/math/ec/ECCurve;Lorg/bouncycastle/math/ec/ECFieldElement;Lorg/bouncycastle/math/ec/ECFieldElement;[Lorg/bouncycastle/math/ec/ECFieldElement;)V
1: aload 0
iload 5
putfield org.bouncycastle.math.ec.custom.sec.SecP521R1Point.withCompression:Z
2: return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/bouncycastle/math/ec/custom/sec/SecP521R1Point;
0 3 1 curve Lorg/bouncycastle/math/ec/ECCurve;
0 3 2 x Lorg/bouncycastle/math/ec/ECFieldElement;
0 3 3 y Lorg/bouncycastle/math/ec/ECFieldElement;
0 3 4 zs [Lorg/bouncycastle/math/ec/ECFieldElement;
0 3 5 withCompression Z
MethodParameters:
Name Flags
curve
x
y
zs
withCompression
protected org.bouncycastle.math.ec.ECPoint detach();
descriptor: ()Lorg/bouncycastle/math/ec/ECPoint;
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=1, args_size=1
start local 0 0: new org.bouncycastle.math.ec.custom.sec.SecP521R1Point
dup
aconst_null
aload 0
invokevirtual org.bouncycastle.math.ec.custom.sec.SecP521R1Point.getAffineXCoord:()Lorg/bouncycastle/math/ec/ECFieldElement;
aload 0
invokevirtual org.bouncycastle.math.ec.custom.sec.SecP521R1Point.getAffineYCoord:()Lorg/bouncycastle/math/ec/ECFieldElement;
invokespecial org.bouncycastle.math.ec.custom.sec.SecP521R1Point.<init>:(Lorg/bouncycastle/math/ec/ECCurve;Lorg/bouncycastle/math/ec/ECFieldElement;Lorg/bouncycastle/math/ec/ECFieldElement;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/math/ec/custom/sec/SecP521R1Point;
public org.bouncycastle.math.ec.ECPoint add(org.bouncycastle.math.ec.ECPoint);
descriptor: (Lorg/bouncycastle/math/ec/ECPoint;)Lorg/bouncycastle/math/ec/ECPoint;
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=28, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.bouncycastle.math.ec.custom.sec.SecP521R1Point.isInfinity:()Z
ifeq 2
1: aload 1
areturn
2: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.bouncycastle.math.ec.ECPoint.isInfinity:()Z
ifeq 4
3: aload 0
areturn
4: StackMap locals:
StackMap stack:
aload 0
aload 1
if_acmpne 6
5: aload 0
invokevirtual org.bouncycastle.math.ec.custom.sec.SecP521R1Point.twice:()Lorg/bouncycastle/math/ec/ECPoint;
areturn
6: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.bouncycastle.math.ec.custom.sec.SecP521R1Point.getCurve:()Lorg/bouncycastle/math/ec/ECCurve;
astore 2
start local 2 7: aload 0
getfield org.bouncycastle.math.ec.custom.sec.SecP521R1Point.x:Lorg/bouncycastle/math/ec/ECFieldElement;
checkcast org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement
astore 3
start local 3 8: aload 0
getfield org.bouncycastle.math.ec.custom.sec.SecP521R1Point.y:Lorg/bouncycastle/math/ec/ECFieldElement;
checkcast org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement
astore 4
start local 4 9: aload 1
invokevirtual org.bouncycastle.math.ec.ECPoint.getXCoord:()Lorg/bouncycastle/math/ec/ECFieldElement;
checkcast org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement
astore 5
start local 5 10: aload 1
invokevirtual org.bouncycastle.math.ec.ECPoint.getYCoord:()Lorg/bouncycastle/math/ec/ECFieldElement;
checkcast org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement
astore 6
start local 6 11: aload 0
getfield org.bouncycastle.math.ec.custom.sec.SecP521R1Point.zs:[Lorg/bouncycastle/math/ec/ECFieldElement;
iconst_0
aaload
checkcast org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement
astore 7
start local 7 12: aload 1
iconst_0
invokevirtual org.bouncycastle.math.ec.ECPoint.getZCoord:(I)Lorg/bouncycastle/math/ec/ECFieldElement;
checkcast org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement
astore 8
start local 8 13: bipush 17
invokestatic org.bouncycastle.math.raw.Nat.create:(I)[I
astore 9
start local 9 14: bipush 17
invokestatic org.bouncycastle.math.raw.Nat.create:(I)[I
astore 10
start local 10 15: bipush 17
invokestatic org.bouncycastle.math.raw.Nat.create:(I)[I
astore 11
start local 11 16: bipush 17
invokestatic org.bouncycastle.math.raw.Nat.create:(I)[I
astore 12
start local 12 17: aload 7
invokevirtual org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement.isOne:()Z
istore 13
start local 13 18: iload 13
ifeq 22
19: aload 5
getfield org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement.x:[I
astore 14
start local 14 20: aload 6
getfield org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement.x:[I
astore 15
start local 15 21: goto 28
end local 15 end local 14 22: StackMap locals: org.bouncycastle.math.ec.custom.sec.SecP521R1Point org.bouncycastle.math.ec.ECPoint org.bouncycastle.math.ec.ECCurve org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement int[] int[] int[] int[] int
StackMap stack:
aload 11
astore 15
start local 15 23: aload 7
getfield org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement.x:[I
aload 15
invokestatic org.bouncycastle.math.ec.custom.sec.SecP521R1Field.square:([I[I)V
24: aload 10
astore 14
start local 14 25: aload 15
aload 5
getfield org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement.x:[I
aload 14
invokestatic org.bouncycastle.math.ec.custom.sec.SecP521R1Field.multiply:([I[I[I)V
26: aload 15
aload 7
getfield org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement.x:[I
aload 15
invokestatic org.bouncycastle.math.ec.custom.sec.SecP521R1Field.multiply:([I[I[I)V
27: aload 15
aload 6
getfield org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement.x:[I
aload 15
invokestatic org.bouncycastle.math.ec.custom.sec.SecP521R1Field.multiply:([I[I[I)V
28: StackMap locals: int[] int[]
StackMap stack:
aload 8
invokevirtual org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement.isOne:()Z
istore 16
start local 16 29: iload 16
ifeq 33
30: aload 3
getfield org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement.x:[I
astore 17
start local 17 31: aload 4
getfield org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement.x:[I
astore 18
start local 18 32: goto 39
end local 18 end local 17 33: StackMap locals: int
StackMap stack:
aload 12
astore 18
start local 18 34: aload 8
getfield org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement.x:[I
aload 18
invokestatic org.bouncycastle.math.ec.custom.sec.SecP521R1Field.square:([I[I)V
35: aload 9
astore 17
start local 17 36: aload 18
aload 3
getfield org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement.x:[I
aload 17
invokestatic org.bouncycastle.math.ec.custom.sec.SecP521R1Field.multiply:([I[I[I)V
37: aload 18
aload 8
getfield org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement.x:[I
aload 18
invokestatic org.bouncycastle.math.ec.custom.sec.SecP521R1Field.multiply:([I[I[I)V
38: aload 18
aload 4
getfield org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement.x:[I
aload 18
invokestatic org.bouncycastle.math.ec.custom.sec.SecP521R1Field.multiply:([I[I[I)V
39: StackMap locals: int[] int[]
StackMap stack:
bipush 17
invokestatic org.bouncycastle.math.raw.Nat.create:(I)[I
astore 19
start local 19 40: aload 17
aload 14
aload 19
invokestatic org.bouncycastle.math.ec.custom.sec.SecP521R1Field.subtract:([I[I[I)V
41: aload 10
astore 20
start local 20 42: aload 18
aload 15
aload 20
invokestatic org.bouncycastle.math.ec.custom.sec.SecP521R1Field.subtract:([I[I[I)V
43: bipush 17
aload 19
invokestatic org.bouncycastle.math.raw.Nat.isZero:(I[I)Z
ifeq 47
44: bipush 17
aload 20
invokestatic org.bouncycastle.math.raw.Nat.isZero:(I[I)Z
ifeq 46
45: aload 0
invokevirtual org.bouncycastle.math.ec.custom.sec.SecP521R1Point.twice:()Lorg/bouncycastle/math/ec/ECPoint;
areturn
46: StackMap locals: int[] int[]
StackMap stack:
aload 2
invokevirtual org.bouncycastle.math.ec.ECCurve.getInfinity:()Lorg/bouncycastle/math/ec/ECPoint;
areturn
47: StackMap locals:
StackMap stack:
aload 11
astore 21
start local 21 48: aload 19
aload 21
invokestatic org.bouncycastle.math.ec.custom.sec.SecP521R1Field.square:([I[I)V
49: bipush 17
invokestatic org.bouncycastle.math.raw.Nat.create:(I)[I
astore 22
start local 22 50: aload 21
aload 19
aload 22
invokestatic org.bouncycastle.math.ec.custom.sec.SecP521R1Field.multiply:([I[I[I)V
51: aload 11
astore 23
start local 23 52: aload 21
aload 17
aload 23
invokestatic org.bouncycastle.math.ec.custom.sec.SecP521R1Field.multiply:([I[I[I)V
53: aload 18
aload 22
aload 9
invokestatic org.bouncycastle.math.ec.custom.sec.SecP521R1Field.multiply:([I[I[I)V
54: new org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement
dup
aload 12
invokespecial org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement.<init>:([I)V
astore 24
start local 24 55: aload 20
aload 24
getfield org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement.x:[I
invokestatic org.bouncycastle.math.ec.custom.sec.SecP521R1Field.square:([I[I)V
56: aload 24
getfield org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement.x:[I
aload 22
aload 24
getfield org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement.x:[I
invokestatic org.bouncycastle.math.ec.custom.sec.SecP521R1Field.add:([I[I[I)V
57: aload 24
getfield org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement.x:[I
aload 23
aload 24
getfield org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement.x:[I
invokestatic org.bouncycastle.math.ec.custom.sec.SecP521R1Field.subtract:([I[I[I)V
58: aload 24
getfield org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement.x:[I
aload 23
aload 24
getfield org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement.x:[I
invokestatic org.bouncycastle.math.ec.custom.sec.SecP521R1Field.subtract:([I[I[I)V
59: new org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement
dup
aload 22
invokespecial org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement.<init>:([I)V
astore 25
start local 25 60: aload 23
aload 24
getfield org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement.x:[I
aload 25
getfield org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement.x:[I
invokestatic org.bouncycastle.math.ec.custom.sec.SecP521R1Field.subtract:([I[I[I)V
61: aload 25
getfield org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement.x:[I
aload 20
aload 10
invokestatic org.bouncycastle.math.ec.custom.sec.SecP521R1Field.multiply:([I[I[I)V
62: aload 10
aload 9
aload 25
getfield org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement.x:[I
invokestatic org.bouncycastle.math.ec.custom.sec.SecP521R1Field.subtract:([I[I[I)V
63: new org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement
dup
aload 19
invokespecial org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement.<init>:([I)V
astore 26
start local 26 64: iload 13
ifne 66
65: aload 26
getfield org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement.x:[I
aload 7
getfield org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement.x:[I
aload 26
getfield org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement.x:[I
invokestatic org.bouncycastle.math.ec.custom.sec.SecP521R1Field.multiply:([I[I[I)V
66: StackMap locals: org.bouncycastle.math.ec.custom.sec.SecP521R1Point org.bouncycastle.math.ec.ECPoint org.bouncycastle.math.ec.ECCurve org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement int[] int[] int[] int[] int int[] int[] int int[] int[] int[] int[] int[] int[] int[] org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement
StackMap stack:
iload 16
ifne 68
67: aload 26
getfield org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement.x:[I
aload 8
getfield org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement.x:[I
aload 26
getfield org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement.x:[I
invokestatic org.bouncycastle.math.ec.custom.sec.SecP521R1Field.multiply:([I[I[I)V
68: StackMap locals:
StackMap stack:
iconst_1
anewarray org.bouncycastle.math.ec.ECFieldElement
dup
iconst_0
aload 26
aastore
astore 27
start local 27 69: new org.bouncycastle.math.ec.custom.sec.SecP521R1Point
dup
aload 2
aload 24
aload 25
aload 27
aload 0
getfield org.bouncycastle.math.ec.custom.sec.SecP521R1Point.withCompression:Z
invokespecial org.bouncycastle.math.ec.custom.sec.SecP521R1Point.<init>:(Lorg/bouncycastle/math/ec/ECCurve;Lorg/bouncycastle/math/ec/ECFieldElement;Lorg/bouncycastle/math/ec/ECFieldElement;[Lorg/bouncycastle/math/ec/ECFieldElement;Z)V
areturn
end local 27 end local 26 end local 25 end local 24 end local 23 end local 22 end local 21 end local 20 end local 19 end local 18 end local 17 end local 16 end local 15 end local 14 end local 13 end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 70 0 this Lorg/bouncycastle/math/ec/custom/sec/SecP521R1Point;
0 70 1 b Lorg/bouncycastle/math/ec/ECPoint;
7 70 2 curve Lorg/bouncycastle/math/ec/ECCurve;
8 70 3 X1 Lorg/bouncycastle/math/ec/custom/sec/SecP521R1FieldElement;
9 70 4 Y1 Lorg/bouncycastle/math/ec/custom/sec/SecP521R1FieldElement;
10 70 5 X2 Lorg/bouncycastle/math/ec/custom/sec/SecP521R1FieldElement;
11 70 6 Y2 Lorg/bouncycastle/math/ec/custom/sec/SecP521R1FieldElement;
12 70 7 Z1 Lorg/bouncycastle/math/ec/custom/sec/SecP521R1FieldElement;
13 70 8 Z2 Lorg/bouncycastle/math/ec/custom/sec/SecP521R1FieldElement;
14 70 9 t1 [I
15 70 10 t2 [I
16 70 11 t3 [I
17 70 12 t4 [I
18 70 13 Z1IsOne Z
20 22 14 U2 [I
25 70 14 U2 [I
21 22 15 S2 [I
23 70 15 S2 [I
29 70 16 Z2IsOne Z
31 33 17 U1 [I
36 70 17 U1 [I
32 33 18 S1 [I
34 70 18 S1 [I
40 70 19 H [I
42 70 20 R [I
48 70 21 HSquared [I
50 70 22 G [I
52 70 23 V [I
55 70 24 X3 Lorg/bouncycastle/math/ec/custom/sec/SecP521R1FieldElement;
60 70 25 Y3 Lorg/bouncycastle/math/ec/custom/sec/SecP521R1FieldElement;
64 70 26 Z3 Lorg/bouncycastle/math/ec/custom/sec/SecP521R1FieldElement;
69 70 27 zs [Lorg/bouncycastle/math/ec/ECFieldElement;
MethodParameters:
Name Flags
b
public org.bouncycastle.math.ec.ECPoint twice();
descriptor: ()Lorg/bouncycastle/math/ec/ECPoint;
flags: (0x0001) ACC_PUBLIC
Code:
stack=9, locals=16, args_size=1
start local 0 0: aload 0
invokevirtual org.bouncycastle.math.ec.custom.sec.SecP521R1Point.isInfinity:()Z
ifeq 2
1: aload 0
areturn
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.bouncycastle.math.ec.custom.sec.SecP521R1Point.getCurve:()Lorg/bouncycastle/math/ec/ECCurve;
astore 1
start local 1 3: aload 0
getfield org.bouncycastle.math.ec.custom.sec.SecP521R1Point.y:Lorg/bouncycastle/math/ec/ECFieldElement;
checkcast org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement
astore 2
start local 2 4: aload 2
invokevirtual org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement.isZero:()Z
ifeq 6
5: aload 1
invokevirtual org.bouncycastle.math.ec.ECCurve.getInfinity:()Lorg/bouncycastle/math/ec/ECPoint;
areturn
6: StackMap locals: org.bouncycastle.math.ec.ECCurve org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement
StackMap stack:
aload 0
getfield org.bouncycastle.math.ec.custom.sec.SecP521R1Point.x:Lorg/bouncycastle/math/ec/ECFieldElement;
checkcast org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement
astore 3
start local 3 7: aload 0
getfield org.bouncycastle.math.ec.custom.sec.SecP521R1Point.zs:[Lorg/bouncycastle/math/ec/ECFieldElement;
iconst_0
aaload
checkcast org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement
astore 4
start local 4 8: bipush 17
invokestatic org.bouncycastle.math.raw.Nat.create:(I)[I
astore 5
start local 5 9: bipush 17
invokestatic org.bouncycastle.math.raw.Nat.create:(I)[I
astore 6
start local 6 10: bipush 17
invokestatic org.bouncycastle.math.raw.Nat.create:(I)[I
astore 7
start local 7 11: aload 2
getfield org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement.x:[I
aload 7
invokestatic org.bouncycastle.math.ec.custom.sec.SecP521R1Field.square:([I[I)V
12: bipush 17
invokestatic org.bouncycastle.math.raw.Nat.create:(I)[I
astore 8
start local 8 13: aload 7
aload 8
invokestatic org.bouncycastle.math.ec.custom.sec.SecP521R1Field.square:([I[I)V
14: aload 4
invokevirtual org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement.isOne:()Z
istore 9
start local 9 15: aload 4
getfield org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement.x:[I
astore 10
start local 10 16: iload 9
ifne 19
17: aload 6
astore 10
18: aload 4
getfield org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement.x:[I
aload 10
invokestatic org.bouncycastle.math.ec.custom.sec.SecP521R1Field.square:([I[I)V
19: StackMap locals: org.bouncycastle.math.ec.custom.sec.SecP521R1Point org.bouncycastle.math.ec.ECCurve org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement int[] int[] int[] int[] int int[]
StackMap stack:
aload 3
getfield org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement.x:[I
aload 10
aload 5
invokestatic org.bouncycastle.math.ec.custom.sec.SecP521R1Field.subtract:([I[I[I)V
20: aload 6
astore 11
start local 11 21: aload 3
getfield org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement.x:[I
aload 10
aload 11
invokestatic org.bouncycastle.math.ec.custom.sec.SecP521R1Field.add:([I[I[I)V
22: aload 11
aload 5
aload 11
invokestatic org.bouncycastle.math.ec.custom.sec.SecP521R1Field.multiply:([I[I[I)V
23: bipush 17
aload 11
aload 11
aload 11
invokestatic org.bouncycastle.math.raw.Nat.addBothTo:(I[I[I[I)I
pop
24: aload 11
invokestatic org.bouncycastle.math.ec.custom.sec.SecP521R1Field.reduce23:([I)V
25: aload 7
astore 12
start local 12 26: aload 7
aload 3
getfield org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement.x:[I
aload 12
invokestatic org.bouncycastle.math.ec.custom.sec.SecP521R1Field.multiply:([I[I[I)V
27: bipush 17
aload 12
iconst_2
iconst_0
invokestatic org.bouncycastle.math.raw.Nat.shiftUpBits:(I[III)I
pop
28: aload 12
invokestatic org.bouncycastle.math.ec.custom.sec.SecP521R1Field.reduce23:([I)V
29: bipush 17
aload 8
iconst_3
iconst_0
aload 5
invokestatic org.bouncycastle.math.raw.Nat.shiftUpBits:(I[III[I)I
pop
30: aload 5
invokestatic org.bouncycastle.math.ec.custom.sec.SecP521R1Field.reduce23:([I)V
31: new org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement
dup
aload 8
invokespecial org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement.<init>:([I)V
astore 13
start local 13 32: aload 11
aload 13
getfield org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement.x:[I
invokestatic org.bouncycastle.math.ec.custom.sec.SecP521R1Field.square:([I[I)V
33: aload 13
getfield org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement.x:[I
aload 12
aload 13
getfield org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement.x:[I
invokestatic org.bouncycastle.math.ec.custom.sec.SecP521R1Field.subtract:([I[I[I)V
34: aload 13
getfield org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement.x:[I
aload 12
aload 13
getfield org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement.x:[I
invokestatic org.bouncycastle.math.ec.custom.sec.SecP521R1Field.subtract:([I[I[I)V
35: new org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement
dup
aload 12
invokespecial org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement.<init>:([I)V
astore 14
start local 14 36: aload 12
aload 13
getfield org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement.x:[I
aload 14
getfield org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement.x:[I
invokestatic org.bouncycastle.math.ec.custom.sec.SecP521R1Field.subtract:([I[I[I)V
37: aload 14
getfield org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement.x:[I
aload 11
aload 14
getfield org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement.x:[I
invokestatic org.bouncycastle.math.ec.custom.sec.SecP521R1Field.multiply:([I[I[I)V
38: aload 14
getfield org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement.x:[I
aload 5
aload 14
getfield org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement.x:[I
invokestatic org.bouncycastle.math.ec.custom.sec.SecP521R1Field.subtract:([I[I[I)V
39: new org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement
dup
aload 11
invokespecial org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement.<init>:([I)V
astore 15
start local 15 40: aload 2
getfield org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement.x:[I
aload 15
getfield org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement.x:[I
invokestatic org.bouncycastle.math.ec.custom.sec.SecP521R1Field.twice:([I[I)V
41: iload 9
ifne 43
42: aload 15
getfield org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement.x:[I
aload 4
getfield org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement.x:[I
aload 15
getfield org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement.x:[I
invokestatic org.bouncycastle.math.ec.custom.sec.SecP521R1Field.multiply:([I[I[I)V
43: StackMap locals: org.bouncycastle.math.ec.custom.sec.SecP521R1Point org.bouncycastle.math.ec.ECCurve org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement int[] int[] int[] int[] int int[] int[] int[] org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement org.bouncycastle.math.ec.custom.sec.SecP521R1FieldElement
StackMap stack:
new org.bouncycastle.math.ec.custom.sec.SecP521R1Point
dup
aload 1
aload 13
aload 14
iconst_1
anewarray org.bouncycastle.math.ec.ECFieldElement
dup
iconst_0
aload 15
aastore
aload 0
getfield org.bouncycastle.math.ec.custom.sec.SecP521R1Point.withCompression:Z
invokespecial org.bouncycastle.math.ec.custom.sec.SecP521R1Point.<init>:(Lorg/bouncycastle/math/ec/ECCurve;Lorg/bouncycastle/math/ec/ECFieldElement;Lorg/bouncycastle/math/ec/ECFieldElement;[Lorg/bouncycastle/math/ec/ECFieldElement;Z)V
areturn
end local 15 end local 14 end local 13 end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 44 0 this Lorg/bouncycastle/math/ec/custom/sec/SecP521R1Point;
3 44 1 curve Lorg/bouncycastle/math/ec/ECCurve;
4 44 2 Y1 Lorg/bouncycastle/math/ec/custom/sec/SecP521R1FieldElement;
7 44 3 X1 Lorg/bouncycastle/math/ec/custom/sec/SecP521R1FieldElement;
8 44 4 Z1 Lorg/bouncycastle/math/ec/custom/sec/SecP521R1FieldElement;
9 44 5 t1 [I
10 44 6 t2 [I
11 44 7 Y1Squared [I
13 44 8 T [I
15 44 9 Z1IsOne Z
16 44 10 Z1Squared [I
21 44 11 M [I
26 44 12 S [I
32 44 13 X3 Lorg/bouncycastle/math/ec/custom/sec/SecP521R1FieldElement;
36 44 14 Y3 Lorg/bouncycastle/math/ec/custom/sec/SecP521R1FieldElement;
40 44 15 Z3 Lorg/bouncycastle/math/ec/custom/sec/SecP521R1FieldElement;
public org.bouncycastle.math.ec.ECPoint twicePlus(org.bouncycastle.math.ec.ECPoint);
descriptor: (Lorg/bouncycastle/math/ec/ECPoint;)Lorg/bouncycastle/math/ec/ECPoint;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
if_acmpne 2
1: aload 0
invokevirtual org.bouncycastle.math.ec.custom.sec.SecP521R1Point.threeTimes:()Lorg/bouncycastle/math/ec/ECPoint;
areturn
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.bouncycastle.math.ec.custom.sec.SecP521R1Point.isInfinity:()Z
ifeq 4
3: aload 1
areturn
4: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.bouncycastle.math.ec.ECPoint.isInfinity:()Z
ifeq 6
5: aload 0
invokevirtual org.bouncycastle.math.ec.custom.sec.SecP521R1Point.twice:()Lorg/bouncycastle/math/ec/ECPoint;
areturn
6: StackMap locals:
StackMap stack:
aload 0
getfield org.bouncycastle.math.ec.custom.sec.SecP521R1Point.y:Lorg/bouncycastle/math/ec/ECFieldElement;
astore 2
start local 2 7: aload 2
invokevirtual org.bouncycastle.math.ec.ECFieldElement.isZero:()Z
ifeq 9
8: aload 1
areturn
9: StackMap locals: org.bouncycastle.math.ec.ECFieldElement
StackMap stack:
aload 0
invokevirtual org.bouncycastle.math.ec.custom.sec.SecP521R1Point.twice:()Lorg/bouncycastle/math/ec/ECPoint;
aload 1
invokevirtual org.bouncycastle.math.ec.ECPoint.add:(Lorg/bouncycastle/math/ec/ECPoint;)Lorg/bouncycastle/math/ec/ECPoint;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/bouncycastle/math/ec/custom/sec/SecP521R1Point;
0 10 1 b Lorg/bouncycastle/math/ec/ECPoint;
7 10 2 Y1 Lorg/bouncycastle/math/ec/ECFieldElement;
MethodParameters:
Name Flags
b
public org.bouncycastle.math.ec.ECPoint threeTimes();
descriptor: ()Lorg/bouncycastle/math/ec/ECPoint;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.bouncycastle.math.ec.custom.sec.SecP521R1Point.isInfinity:()Z
ifne 1
aload 0
getfield org.bouncycastle.math.ec.custom.sec.SecP521R1Point.y:Lorg/bouncycastle/math/ec/ECFieldElement;
invokevirtual org.bouncycastle.math.ec.ECFieldElement.isZero:()Z
ifeq 2
1: StackMap locals:
StackMap stack:
aload 0
areturn
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.bouncycastle.math.ec.custom.sec.SecP521R1Point.twice:()Lorg/bouncycastle/math/ec/ECPoint;
aload 0
invokevirtual org.bouncycastle.math.ec.ECPoint.add:(Lorg/bouncycastle/math/ec/ECPoint;)Lorg/bouncycastle/math/ec/ECPoint;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/bouncycastle/math/ec/custom/sec/SecP521R1Point;
protected org.bouncycastle.math.ec.ECFieldElement two(org.bouncycastle.math.ec.ECFieldElement);
descriptor: (Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
aload 1
invokevirtual org.bouncycastle.math.ec.ECFieldElement.add:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/math/ec/custom/sec/SecP521R1Point;
0 1 1 x Lorg/bouncycastle/math/ec/ECFieldElement;
MethodParameters:
Name Flags
x
protected org.bouncycastle.math.ec.ECFieldElement three(org.bouncycastle.math.ec.ECFieldElement);
descriptor: (Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual org.bouncycastle.math.ec.custom.sec.SecP521R1Point.two:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
aload 1
invokevirtual org.bouncycastle.math.ec.ECFieldElement.add:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/math/ec/custom/sec/SecP521R1Point;
0 1 1 x Lorg/bouncycastle/math/ec/ECFieldElement;
MethodParameters:
Name Flags
x
protected org.bouncycastle.math.ec.ECFieldElement four(org.bouncycastle.math.ec.ECFieldElement);
descriptor: (Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 0
aload 1
invokevirtual org.bouncycastle.math.ec.custom.sec.SecP521R1Point.two:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
invokevirtual org.bouncycastle.math.ec.custom.sec.SecP521R1Point.two:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/math/ec/custom/sec/SecP521R1Point;
0 1 1 x Lorg/bouncycastle/math/ec/ECFieldElement;
MethodParameters:
Name Flags
x
protected org.bouncycastle.math.ec.ECFieldElement eight(org.bouncycastle.math.ec.ECFieldElement);
descriptor: (Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 0
aload 1
invokevirtual org.bouncycastle.math.ec.custom.sec.SecP521R1Point.two:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
invokevirtual org.bouncycastle.math.ec.custom.sec.SecP521R1Point.four:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/math/ec/custom/sec/SecP521R1Point;
0 1 1 x Lorg/bouncycastle/math/ec/ECFieldElement;
MethodParameters:
Name Flags
x
protected org.bouncycastle.math.ec.ECFieldElement doubleProductFromSquares(org.bouncycastle.math.ec.ECFieldElement, org.bouncycastle.math.ec.ECFieldElement, org.bouncycastle.math.ec.ECFieldElement, org.bouncycastle.math.ec.ECFieldElement);
descriptor: (Lorg/bouncycastle/math/ec/ECFieldElement;Lorg/bouncycastle/math/ec/ECFieldElement;Lorg/bouncycastle/math/ec/ECFieldElement;Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 1
aload 2
invokevirtual org.bouncycastle.math.ec.ECFieldElement.add:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
invokevirtual org.bouncycastle.math.ec.ECFieldElement.square:()Lorg/bouncycastle/math/ec/ECFieldElement;
aload 3
invokevirtual org.bouncycastle.math.ec.ECFieldElement.subtract:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
aload 4
invokevirtual org.bouncycastle.math.ec.ECFieldElement.subtract:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/math/ec/custom/sec/SecP521R1Point;
0 1 1 a Lorg/bouncycastle/math/ec/ECFieldElement;
0 1 2 b Lorg/bouncycastle/math/ec/ECFieldElement;
0 1 3 aSquared Lorg/bouncycastle/math/ec/ECFieldElement;
0 1 4 bSquared Lorg/bouncycastle/math/ec/ECFieldElement;
MethodParameters:
Name Flags
a
b
aSquared
bSquared
public org.bouncycastle.math.ec.ECPoint negate();
descriptor: ()Lorg/bouncycastle/math/ec/ECPoint;
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.bouncycastle.math.ec.custom.sec.SecP521R1Point.isInfinity:()Z
ifeq 2
1: aload 0
areturn
2: StackMap locals:
StackMap stack:
new org.bouncycastle.math.ec.custom.sec.SecP521R1Point
dup
aload 0
getfield org.bouncycastle.math.ec.custom.sec.SecP521R1Point.curve:Lorg/bouncycastle/math/ec/ECCurve;
aload 0
getfield org.bouncycastle.math.ec.custom.sec.SecP521R1Point.x:Lorg/bouncycastle/math/ec/ECFieldElement;
aload 0
getfield org.bouncycastle.math.ec.custom.sec.SecP521R1Point.y:Lorg/bouncycastle/math/ec/ECFieldElement;
invokevirtual org.bouncycastle.math.ec.ECFieldElement.negate:()Lorg/bouncycastle/math/ec/ECFieldElement;
aload 0
getfield org.bouncycastle.math.ec.custom.sec.SecP521R1Point.zs:[Lorg/bouncycastle/math/ec/ECFieldElement;
aload 0
getfield org.bouncycastle.math.ec.custom.sec.SecP521R1Point.withCompression:Z
invokespecial org.bouncycastle.math.ec.custom.sec.SecP521R1Point.<init>:(Lorg/bouncycastle/math/ec/ECCurve;Lorg/bouncycastle/math/ec/ECFieldElement;Lorg/bouncycastle/math/ec/ECFieldElement;[Lorg/bouncycastle/math/ec/ECFieldElement;Z)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/bouncycastle/math/ec/custom/sec/SecP521R1Point;
}
SourceFile: "SecP521R1Point.java"
InnerClasses:
public abstract AbstractFp = org.bouncycastle.math.ec.ECPoint$AbstractFp of org.bouncycastle.math.ec.ECPoint