public class org.bouncycastle.math.ec.ECFieldElement$Fp extends org.bouncycastle.math.ec.ECFieldElement
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.bouncycastle.math.ec.ECFieldElement$Fp
super_class: org.bouncycastle.math.ec.ECFieldElement
{
java.math.BigInteger x;
descriptor: Ljava/math/BigInteger;
flags: (0x0000)
java.math.BigInteger q;
descriptor: Ljava/math/BigInteger;
flags: (0x0000)
public void <init>(java.math.BigInteger, java.math.BigInteger);
descriptor: (Ljava/math/BigInteger;Ljava/math/BigInteger;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial org.bouncycastle.math.ec.ECFieldElement.<init>:()V
1: aload 0
aload 2
putfield org.bouncycastle.math.ec.ECFieldElement$Fp.x:Ljava/math/BigInteger;
2: aload 2
aload 1
invokevirtual java.math.BigInteger.compareTo:(Ljava/math/BigInteger;)I
iflt 4
3: new java.lang.IllegalArgumentException
dup
ldc "x value too large in field element"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals: org.bouncycastle.math.ec.ECFieldElement$Fp java.math.BigInteger java.math.BigInteger
StackMap stack:
aload 0
aload 1
putfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
5: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/bouncycastle/math/ec/ECFieldElement$Fp;
0 6 1 q Ljava/math/BigInteger;
0 6 2 x Ljava/math/BigInteger;
MethodParameters:
Name Flags
q
x
public java.math.BigInteger toBigInteger();
descriptor: ()Ljava/math/BigInteger;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.x:Ljava/math/BigInteger;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/math/ec/ECFieldElement$Fp;
public java.lang.String getFieldName();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: ldc "Fp"
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/math/ec/ECFieldElement$Fp;
public int getFieldSize();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.bitLength:()I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/math/ec/ECFieldElement$Fp;
public java.math.BigInteger getQ();
descriptor: ()Ljava/math/BigInteger;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/math/ec/ECFieldElement$Fp;
public org.bouncycastle.math.ec.ECFieldElement add(org.bouncycastle.math.ec.ECFieldElement);
descriptor: (Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: new org.bouncycastle.math.ec.ECFieldElement$Fp
dup
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.x:Ljava/math/BigInteger;
aload 1
invokevirtual org.bouncycastle.math.ec.ECFieldElement.toBigInteger:()Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.mod:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
invokespecial org.bouncycastle.math.ec.ECFieldElement$Fp.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/math/ec/ECFieldElement$Fp;
0 1 1 b Lorg/bouncycastle/math/ec/ECFieldElement;
MethodParameters:
Name Flags
b
public org.bouncycastle.math.ec.ECFieldElement subtract(org.bouncycastle.math.ec.ECFieldElement);
descriptor: (Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: new org.bouncycastle.math.ec.ECFieldElement$Fp
dup
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.x:Ljava/math/BigInteger;
aload 1
invokevirtual org.bouncycastle.math.ec.ECFieldElement.toBigInteger:()Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.mod:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
invokespecial org.bouncycastle.math.ec.ECFieldElement$Fp.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/math/ec/ECFieldElement$Fp;
0 1 1 b Lorg/bouncycastle/math/ec/ECFieldElement;
MethodParameters:
Name Flags
b
public org.bouncycastle.math.ec.ECFieldElement multiply(org.bouncycastle.math.ec.ECFieldElement);
descriptor: (Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: new org.bouncycastle.math.ec.ECFieldElement$Fp
dup
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.x:Ljava/math/BigInteger;
aload 1
invokevirtual org.bouncycastle.math.ec.ECFieldElement.toBigInteger:()Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.mod:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
invokespecial org.bouncycastle.math.ec.ECFieldElement$Fp.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/math/ec/ECFieldElement$Fp;
0 1 1 b Lorg/bouncycastle/math/ec/ECFieldElement;
MethodParameters:
Name Flags
b
public org.bouncycastle.math.ec.ECFieldElement divide(org.bouncycastle.math.ec.ECFieldElement);
descriptor: (Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=2, args_size=2
start local 0 start local 1 0: new org.bouncycastle.math.ec.ECFieldElement$Fp
dup
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.x:Ljava/math/BigInteger;
aload 1
invokevirtual org.bouncycastle.math.ec.ECFieldElement.toBigInteger:()Ljava/math/BigInteger;
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.modInverse:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.mod:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
invokespecial org.bouncycastle.math.ec.ECFieldElement$Fp.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/math/ec/ECFieldElement$Fp;
0 1 1 b Lorg/bouncycastle/math/ec/ECFieldElement;
MethodParameters:
Name Flags
b
public org.bouncycastle.math.ec.ECFieldElement negate();
descriptor: ()Lorg/bouncycastle/math/ec/ECFieldElement;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=1, args_size=1
start local 0 0: new org.bouncycastle.math.ec.ECFieldElement$Fp
dup
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.x:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.negate:()Ljava/math/BigInteger;
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.mod:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
invokespecial org.bouncycastle.math.ec.ECFieldElement$Fp.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/math/ec/ECFieldElement$Fp;
public org.bouncycastle.math.ec.ECFieldElement square();
descriptor: ()Lorg/bouncycastle/math/ec/ECFieldElement;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=1, args_size=1
start local 0 0: new org.bouncycastle.math.ec.ECFieldElement$Fp
dup
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.x:Ljava/math/BigInteger;
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.x:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.mod:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
invokespecial org.bouncycastle.math.ec.ECFieldElement$Fp.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/math/ec/ECFieldElement$Fp;
public org.bouncycastle.math.ec.ECFieldElement invert();
descriptor: ()Lorg/bouncycastle/math/ec/ECFieldElement;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=1, args_size=1
start local 0 0: new org.bouncycastle.math.ec.ECFieldElement$Fp
dup
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.x:Ljava/math/BigInteger;
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.modInverse:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
invokespecial org.bouncycastle.math.ec.ECFieldElement$Fp.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/math/ec/ECFieldElement$Fp;
public org.bouncycastle.math.ec.ECFieldElement sqrt();
descriptor: ()Lorg/bouncycastle/math/ec/ECFieldElement;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=12, args_size=1
start local 0 0: aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
iconst_0
invokevirtual java.math.BigInteger.testBit:(I)Z
ifne 2
1: new java.lang.RuntimeException
dup
ldc "not done yet"
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
iconst_1
invokevirtual java.math.BigInteger.testBit:(I)Z
ifeq 7
3: new org.bouncycastle.math.ec.ECFieldElement$Fp
dup
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.x:Ljava/math/BigInteger;
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
iconst_2
invokevirtual java.math.BigInteger.shiftRight:(I)Ljava/math/BigInteger;
getstatic org.bouncycastle.math.ec.ECConstants.ONE:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.modPow:(Ljava/math/BigInteger;Ljava/math/BigInteger;)Ljava/math/BigInteger;
invokespecial org.bouncycastle.math.ec.ECFieldElement$Fp.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;)V
astore 1
start local 1 4: aload 1
invokevirtual org.bouncycastle.math.ec.ECFieldElement.square:()Lorg/bouncycastle/math/ec/ECFieldElement;
aload 0
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 5
aload 1
goto 6
StackMap locals: org.bouncycastle.math.ec.ECFieldElement
StackMap stack:
5: aconst_null
StackMap locals:
StackMap stack: org.bouncycastle.math.ec.ECFieldElement
6: areturn
end local 1 7: StackMap locals:
StackMap stack:
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
getstatic org.bouncycastle.math.ec.ECConstants.ONE:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 1
start local 1 8: aload 1
iconst_1
invokevirtual java.math.BigInteger.shiftRight:(I)Ljava/math/BigInteger;
astore 2
start local 2 9: aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.x:Ljava/math/BigInteger;
aload 2
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.modPow:(Ljava/math/BigInteger;Ljava/math/BigInteger;)Ljava/math/BigInteger;
getstatic org.bouncycastle.math.ec.ECConstants.ONE:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.equals:(Ljava/lang/Object;)Z
ifne 11
10: aconst_null
areturn
11: StackMap locals: java.math.BigInteger java.math.BigInteger
StackMap stack:
aload 1
iconst_2
invokevirtual java.math.BigInteger.shiftRight:(I)Ljava/math/BigInteger;
astore 3
start local 3 12: aload 3
iconst_1
invokevirtual java.math.BigInteger.shiftLeft:(I)Ljava/math/BigInteger;
getstatic org.bouncycastle.math.ec.ECConstants.ONE:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 4
start local 4 13: aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.x:Ljava/math/BigInteger;
astore 5
start local 5 14: aload 5
iconst_2
invokevirtual java.math.BigInteger.shiftLeft:(I)Ljava/math/BigInteger;
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.mod:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 6
start local 6 15: new java.util.Random
dup
invokespecial java.util.Random.<init>:()V
astore 9
start local 9 16: StackMap locals: org.bouncycastle.math.ec.ECFieldElement$Fp java.math.BigInteger java.math.BigInteger java.math.BigInteger java.math.BigInteger java.math.BigInteger java.math.BigInteger top top java.util.Random
StackMap stack:
new java.math.BigInteger
dup
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.bitLength:()I
aload 9
invokespecial java.math.BigInteger.<init>:(ILjava/util/Random;)V
astore 10
start local 10 17: aload 10
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.compareTo:(Ljava/math/BigInteger;)I
ifge 16
18: aload 10
aload 10
invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
aload 6
invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
aload 2
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.modPow:(Ljava/math/BigInteger;Ljava/math/BigInteger;)Ljava/math/BigInteger;
aload 1
invokevirtual java.math.BigInteger.equals:(Ljava/lang/Object;)Z
ifeq 16
19: aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
aload 10
aload 5
aload 4
invokestatic org.bouncycastle.math.ec.ECFieldElement$Fp.lucasSequence:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)[Ljava/math/BigInteger;
astore 11
start local 11 20: aload 11
iconst_0
aaload
astore 7
start local 7 21: aload 11
iconst_1
aaload
astore 8
start local 8 22: aload 8
aload 8
invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.mod:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
aload 6
invokevirtual java.math.BigInteger.equals:(Ljava/lang/Object;)Z
ifeq 27
23: aload 8
iconst_0
invokevirtual java.math.BigInteger.testBit:(I)Z
ifeq 25
24: aload 8
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 8
25: StackMap locals: org.bouncycastle.math.ec.ECFieldElement$Fp java.math.BigInteger java.math.BigInteger java.math.BigInteger java.math.BigInteger java.math.BigInteger java.math.BigInteger java.math.BigInteger java.math.BigInteger java.util.Random java.math.BigInteger java.math.BigInteger[]
StackMap stack:
aload 8
iconst_1
invokevirtual java.math.BigInteger.shiftRight:(I)Ljava/math/BigInteger;
astore 8
26: new org.bouncycastle.math.ec.ECFieldElement$Fp
dup
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
aload 8
invokespecial org.bouncycastle.math.ec.ECFieldElement$Fp.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;)V
areturn
end local 11 end local 10 27: StackMap locals:
StackMap stack:
aload 7
getstatic org.bouncycastle.math.ec.ECConstants.ONE:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.equals:(Ljava/lang/Object;)Z
ifne 16
aload 7
aload 1
invokevirtual java.math.BigInteger.equals:(Ljava/lang/Object;)Z
ifne 16
28: aconst_null
areturn
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 29 0 this Lorg/bouncycastle/math/ec/ECFieldElement$Fp;
4 7 1 z Lorg/bouncycastle/math/ec/ECFieldElement;
8 29 1 qMinusOne Ljava/math/BigInteger;
9 29 2 legendreExponent Ljava/math/BigInteger;
12 29 3 u Ljava/math/BigInteger;
13 29 4 k Ljava/math/BigInteger;
14 29 5 Q Ljava/math/BigInteger;
15 29 6 fourQ Ljava/math/BigInteger;
21 29 7 U Ljava/math/BigInteger;
22 29 8 V Ljava/math/BigInteger;
16 29 9 rand Ljava/util/Random;
17 27 10 P Ljava/math/BigInteger;
20 27 11 result [Ljava/math/BigInteger;
private static java.math.BigInteger[] lucasSequence(java.math.BigInteger, java.math.BigInteger, java.math.BigInteger, java.math.BigInteger);
descriptor: (Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)[Ljava/math/BigInteger;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=12, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 3
invokevirtual java.math.BigInteger.bitLength:()I
istore 4
start local 4 1: aload 3
invokevirtual java.math.BigInteger.getLowestSetBit:()I
istore 5
start local 5 2: getstatic org.bouncycastle.math.ec.ECConstants.ONE:Ljava/math/BigInteger;
astore 6
start local 6 3: getstatic org.bouncycastle.math.ec.ECConstants.TWO:Ljava/math/BigInteger;
astore 7
start local 7 4: aload 1
astore 8
start local 8 5: getstatic org.bouncycastle.math.ec.ECConstants.ONE:Ljava/math/BigInteger;
astore 9
start local 9 6: getstatic org.bouncycastle.math.ec.ECConstants.ONE:Ljava/math/BigInteger;
astore 10
start local 10 7: iload 4
iconst_1
isub
istore 11
start local 11 8: goto 21
9: StackMap locals: java.math.BigInteger java.math.BigInteger java.math.BigInteger java.math.BigInteger int int java.math.BigInteger java.math.BigInteger java.math.BigInteger java.math.BigInteger java.math.BigInteger int
StackMap stack:
aload 9
aload 10
invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
aload 0
invokevirtual java.math.BigInteger.mod:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 9
10: aload 3
iload 11
invokevirtual java.math.BigInteger.testBit:(I)Z
ifeq 16
11: aload 9
aload 2
invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
aload 0
invokevirtual java.math.BigInteger.mod:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 10
12: aload 6
aload 8
invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
aload 0
invokevirtual java.math.BigInteger.mod:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 6
13: aload 8
aload 7
invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
aload 1
aload 9
invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
aload 0
invokevirtual java.math.BigInteger.mod:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 7
14: aload 8
aload 8
invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
aload 10
iconst_1
invokevirtual java.math.BigInteger.shiftLeft:(I)Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
aload 0
invokevirtual java.math.BigInteger.mod:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 8
15: goto 20
16: StackMap locals:
StackMap stack:
aload 9
astore 10
17: aload 6
aload 7
invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
aload 9
invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
aload 0
invokevirtual java.math.BigInteger.mod:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 6
18: aload 8
aload 7
invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
aload 1
aload 9
invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
aload 0
invokevirtual java.math.BigInteger.mod:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 8
19: aload 7
aload 7
invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
aload 9
iconst_1
invokevirtual java.math.BigInteger.shiftLeft:(I)Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
aload 0
invokevirtual java.math.BigInteger.mod:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 7
20: StackMap locals:
StackMap stack:
iinc 11 -1
StackMap locals:
StackMap stack:
21: iload 11
iload 5
iconst_1
iadd
if_icmpge 9
end local 11 22: aload 9
aload 10
invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
aload 0
invokevirtual java.math.BigInteger.mod:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 9
23: aload 9
aload 2
invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
aload 0
invokevirtual java.math.BigInteger.mod:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 10
24: aload 6
aload 7
invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
aload 9
invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
aload 0
invokevirtual java.math.BigInteger.mod:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 6
25: aload 8
aload 7
invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
aload 1
aload 9
invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
aload 0
invokevirtual java.math.BigInteger.mod:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 7
26: aload 9
aload 10
invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
aload 0
invokevirtual java.math.BigInteger.mod:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 9
27: iconst_1
istore 11
start local 11 28: goto 33
29: StackMap locals:
StackMap stack:
aload 6
aload 7
invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
aload 0
invokevirtual java.math.BigInteger.mod:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 6
30: aload 7
aload 7
invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
aload 9
iconst_1
invokevirtual java.math.BigInteger.shiftLeft:(I)Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
aload 0
invokevirtual java.math.BigInteger.mod:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 7
31: aload 9
aload 9
invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
aload 0
invokevirtual java.math.BigInteger.mod:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 9
32: iinc 11 1
StackMap locals:
StackMap stack:
33: iload 11
iload 5
if_icmple 29
end local 11 34: iconst_2
anewarray java.math.BigInteger
dup
iconst_0
aload 6
aastore
dup
iconst_1
aload 7
aastore
areturn
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 35 0 p Ljava/math/BigInteger;
0 35 1 P Ljava/math/BigInteger;
0 35 2 Q Ljava/math/BigInteger;
0 35 3 k Ljava/math/BigInteger;
1 35 4 n I
2 35 5 s I
3 35 6 Uh Ljava/math/BigInteger;
4 35 7 Vl Ljava/math/BigInteger;
5 35 8 Vh Ljava/math/BigInteger;
6 35 9 Ql Ljava/math/BigInteger;
7 35 10 Qh Ljava/math/BigInteger;
8 22 11 j I
28 34 11 j I
MethodParameters:
Name Flags
p
P
Q
k
public boolean equals(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
aload 0
if_acmpne 2
1: iconst_1
ireturn
2: StackMap locals:
StackMap stack:
aload 1
instanceof org.bouncycastle.math.ec.ECFieldElement$Fp
ifne 4
3: iconst_0
ireturn
4: StackMap locals:
StackMap stack:
aload 1
checkcast org.bouncycastle.math.ec.ECFieldElement$Fp
astore 2
start local 2 5: aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
aload 2
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.equals:(Ljava/lang/Object;)Z
ifeq 6
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.x:Ljava/math/BigInteger;
aload 2
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.x:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.equals:(Ljava/lang/Object;)Z
ifeq 6
iconst_1
ireturn
StackMap locals: org.bouncycastle.math.ec.ECFieldElement$Fp
StackMap stack:
6: iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/bouncycastle/math/ec/ECFieldElement$Fp;
0 7 1 other Ljava/lang/Object;
5 7 2 o Lorg/bouncycastle/math/ec/ECFieldElement$Fp;
MethodParameters:
Name Flags
other
public int hashCode();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.hashCode:()I
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.x:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.hashCode:()I
ixor
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/math/ec/ECFieldElement$Fp;
}
SourceFile: "ECFieldElement.java"
NestHost: org.bouncycastle.math.ec.ECFieldElement
InnerClasses:
public Fp = org.bouncycastle.math.ec.ECFieldElement$Fp of org.bouncycastle.math.ec.ECFieldElement