class org.bouncycastle.math.ec.Tnaf
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: org.bouncycastle.math.ec.Tnaf
super_class: java.lang.Object
{
private static final java.math.BigInteger MINUS_ONE;
descriptor: Ljava/math/BigInteger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.math.BigInteger MINUS_TWO;
descriptor: Ljava/math/BigInteger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.math.BigInteger MINUS_THREE;
descriptor: Ljava/math/BigInteger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
public static final byte WIDTH;
descriptor: B
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 4
public static final byte POW_2_WIDTH;
descriptor: B
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 16
public static final org.bouncycastle.math.ec.ZTauElement[] alpha0;
descriptor: [Lorg/bouncycastle/math/ec/ZTauElement;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
public static final byte[][] alpha0Tnaf;
descriptor: [[B
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
public static final org.bouncycastle.math.ec.ZTauElement[] alpha1;
descriptor: [Lorg/bouncycastle/math/ec/ZTauElement;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
public static final byte[][] alpha1Tnaf;
descriptor: [[B
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=7, locals=0, args_size=0
0: getstatic org.bouncycastle.math.ec.ECConstants.ONE:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.negate:()Ljava/math/BigInteger;
putstatic org.bouncycastle.math.ec.Tnaf.MINUS_ONE:Ljava/math/BigInteger;
1: getstatic org.bouncycastle.math.ec.ECConstants.TWO:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.negate:()Ljava/math/BigInteger;
putstatic org.bouncycastle.math.ec.Tnaf.MINUS_TWO:Ljava/math/BigInteger;
2: getstatic org.bouncycastle.math.ec.ECConstants.THREE:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.negate:()Ljava/math/BigInteger;
putstatic org.bouncycastle.math.ec.Tnaf.MINUS_THREE:Ljava/math/BigInteger;
3: bipush 9
anewarray org.bouncycastle.math.ec.ZTauElement
dup
iconst_1
4: new org.bouncycastle.math.ec.ZTauElement
dup
getstatic org.bouncycastle.math.ec.ECConstants.ONE:Ljava/math/BigInteger;
getstatic org.bouncycastle.math.ec.ECConstants.ZERO:Ljava/math/BigInteger;
invokespecial org.bouncycastle.math.ec.ZTauElement.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;)V
aastore
dup
iconst_3
5: new org.bouncycastle.math.ec.ZTauElement
dup
getstatic org.bouncycastle.math.ec.Tnaf.MINUS_THREE:Ljava/math/BigInteger;
getstatic org.bouncycastle.math.ec.Tnaf.MINUS_ONE:Ljava/math/BigInteger;
invokespecial org.bouncycastle.math.ec.ZTauElement.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;)V
aastore
dup
iconst_5
6: new org.bouncycastle.math.ec.ZTauElement
dup
getstatic org.bouncycastle.math.ec.Tnaf.MINUS_ONE:Ljava/math/BigInteger;
getstatic org.bouncycastle.math.ec.Tnaf.MINUS_ONE:Ljava/math/BigInteger;
invokespecial org.bouncycastle.math.ec.ZTauElement.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;)V
aastore
dup
bipush 7
7: new org.bouncycastle.math.ec.ZTauElement
dup
getstatic org.bouncycastle.math.ec.ECConstants.ONE:Ljava/math/BigInteger;
getstatic org.bouncycastle.math.ec.Tnaf.MINUS_ONE:Ljava/math/BigInteger;
invokespecial org.bouncycastle.math.ec.ZTauElement.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;)V
aastore
8: putstatic org.bouncycastle.math.ec.Tnaf.alpha0:[Lorg/bouncycastle/math/ec/ZTauElement;
9: bipush 8
anewarray byte[]
dup
iconst_1
10: iconst_1
newarray 8
dup
iconst_0
iconst_1
bastore
aastore
dup
iconst_3
iconst_3
newarray 8
dup
iconst_0
iconst_m1
bastore
dup
iconst_2
iconst_1
bastore
aastore
dup
iconst_5
iconst_3
newarray 8
dup
iconst_0
iconst_1
bastore
dup
iconst_2
iconst_1
bastore
aastore
dup
bipush 7
iconst_4
newarray 8
dup
iconst_0
iconst_m1
bastore
dup
iconst_3
iconst_1
bastore
aastore
11: putstatic org.bouncycastle.math.ec.Tnaf.alpha0Tnaf:[[B
12: bipush 9
anewarray org.bouncycastle.math.ec.ZTauElement
dup
iconst_1
13: new org.bouncycastle.math.ec.ZTauElement
dup
getstatic org.bouncycastle.math.ec.ECConstants.ONE:Ljava/math/BigInteger;
getstatic org.bouncycastle.math.ec.ECConstants.ZERO:Ljava/math/BigInteger;
invokespecial org.bouncycastle.math.ec.ZTauElement.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;)V
aastore
dup
iconst_3
14: new org.bouncycastle.math.ec.ZTauElement
dup
getstatic org.bouncycastle.math.ec.Tnaf.MINUS_THREE:Ljava/math/BigInteger;
getstatic org.bouncycastle.math.ec.ECConstants.ONE:Ljava/math/BigInteger;
invokespecial org.bouncycastle.math.ec.ZTauElement.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;)V
aastore
dup
iconst_5
15: new org.bouncycastle.math.ec.ZTauElement
dup
getstatic org.bouncycastle.math.ec.Tnaf.MINUS_ONE:Ljava/math/BigInteger;
getstatic org.bouncycastle.math.ec.ECConstants.ONE:Ljava/math/BigInteger;
invokespecial org.bouncycastle.math.ec.ZTauElement.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;)V
aastore
dup
bipush 7
16: new org.bouncycastle.math.ec.ZTauElement
dup
getstatic org.bouncycastle.math.ec.ECConstants.ONE:Ljava/math/BigInteger;
getstatic org.bouncycastle.math.ec.ECConstants.ONE:Ljava/math/BigInteger;
invokespecial org.bouncycastle.math.ec.ZTauElement.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;)V
aastore
17: putstatic org.bouncycastle.math.ec.Tnaf.alpha1:[Lorg/bouncycastle/math/ec/ZTauElement;
18: bipush 8
anewarray byte[]
dup
iconst_1
19: iconst_1
newarray 8
dup
iconst_0
iconst_1
bastore
aastore
dup
iconst_3
iconst_3
newarray 8
dup
iconst_0
iconst_m1
bastore
dup
iconst_2
iconst_1
bastore
aastore
dup
iconst_5
iconst_3
newarray 8
dup
iconst_0
iconst_1
bastore
dup
iconst_2
iconst_1
bastore
aastore
dup
bipush 7
iconst_4
newarray 8
dup
iconst_0
iconst_m1
bastore
dup
iconst_3
iconst_m1
bastore
aastore
20: putstatic org.bouncycastle.math.ec.Tnaf.alpha1Tnaf:[[B
21: return
LocalVariableTable:
Start End Slot Name Signature
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/math/ec/Tnaf;
public static java.math.BigInteger norm(byte, org.bouncycastle.math.ec.ZTauElement);
descriptor: (BLorg/bouncycastle/math/ec/ZTauElement;)Ljava/math/BigInteger;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=6, args_size=2
start local 0 start local 1 0: aload 1
getfield org.bouncycastle.math.ec.ZTauElement.u:Ljava/math/BigInteger;
aload 1
getfield org.bouncycastle.math.ec.ZTauElement.u:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 3
start local 3 1: aload 1
getfield org.bouncycastle.math.ec.ZTauElement.u:Ljava/math/BigInteger;
aload 1
getfield org.bouncycastle.math.ec.ZTauElement.v:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 4
start local 4 2: aload 1
getfield org.bouncycastle.math.ec.ZTauElement.v:Ljava/math/BigInteger;
aload 1
getfield org.bouncycastle.math.ec.ZTauElement.v:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
iconst_1
invokevirtual java.math.BigInteger.shiftLeft:(I)Ljava/math/BigInteger;
astore 5
start local 5 3: iload 0
iconst_1
if_icmpne 6
4: aload 3
aload 4
invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
aload 5
invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 2
start local 2 5: goto 10
end local 2 6: StackMap locals: int org.bouncycastle.math.ec.ZTauElement top java.math.BigInteger java.math.BigInteger java.math.BigInteger
StackMap stack:
iload 0
iconst_m1
if_icmpne 9
7: aload 3
aload 4
invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
aload 5
invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 2
start local 2 8: goto 10
end local 2 9: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
ldc "mu must be 1 or -1"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
start local 2 10: StackMap locals: int org.bouncycastle.math.ec.ZTauElement java.math.BigInteger java.math.BigInteger java.math.BigInteger java.math.BigInteger
StackMap stack:
aload 2
areturn
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 11 0 mu B
0 11 1 lambda Lorg/bouncycastle/math/ec/ZTauElement;
5 6 2 norm Ljava/math/BigInteger;
8 9 2 norm Ljava/math/BigInteger;
10 11 2 norm Ljava/math/BigInteger;
1 11 3 s1 Ljava/math/BigInteger;
2 11 4 s2 Ljava/math/BigInteger;
3 11 5 s3 Ljava/math/BigInteger;
MethodParameters:
Name Flags
mu final
lambda
public static org.bouncycastle.math.ec.SimpleBigDecimal norm(byte, org.bouncycastle.math.ec.SimpleBigDecimal, org.bouncycastle.math.ec.SimpleBigDecimal);
descriptor: (BLorg/bouncycastle/math/ec/SimpleBigDecimal;Lorg/bouncycastle/math/ec/SimpleBigDecimal;)Lorg/bouncycastle/math/ec/SimpleBigDecimal;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 1
aload 1
invokevirtual org.bouncycastle.math.ec.SimpleBigDecimal.multiply:(Lorg/bouncycastle/math/ec/SimpleBigDecimal;)Lorg/bouncycastle/math/ec/SimpleBigDecimal;
astore 4
start local 4 1: aload 1
aload 2
invokevirtual org.bouncycastle.math.ec.SimpleBigDecimal.multiply:(Lorg/bouncycastle/math/ec/SimpleBigDecimal;)Lorg/bouncycastle/math/ec/SimpleBigDecimal;
astore 5
start local 5 2: aload 2
aload 2
invokevirtual org.bouncycastle.math.ec.SimpleBigDecimal.multiply:(Lorg/bouncycastle/math/ec/SimpleBigDecimal;)Lorg/bouncycastle/math/ec/SimpleBigDecimal;
iconst_1
invokevirtual org.bouncycastle.math.ec.SimpleBigDecimal.shiftLeft:(I)Lorg/bouncycastle/math/ec/SimpleBigDecimal;
astore 6
start local 6 3: iload 0
iconst_1
if_icmpne 6
4: aload 4
aload 5
invokevirtual org.bouncycastle.math.ec.SimpleBigDecimal.add:(Lorg/bouncycastle/math/ec/SimpleBigDecimal;)Lorg/bouncycastle/math/ec/SimpleBigDecimal;
aload 6
invokevirtual org.bouncycastle.math.ec.SimpleBigDecimal.add:(Lorg/bouncycastle/math/ec/SimpleBigDecimal;)Lorg/bouncycastle/math/ec/SimpleBigDecimal;
astore 3
start local 3 5: goto 10
end local 3 6: StackMap locals: int org.bouncycastle.math.ec.SimpleBigDecimal org.bouncycastle.math.ec.SimpleBigDecimal top org.bouncycastle.math.ec.SimpleBigDecimal org.bouncycastle.math.ec.SimpleBigDecimal org.bouncycastle.math.ec.SimpleBigDecimal
StackMap stack:
iload 0
iconst_m1
if_icmpne 9
7: aload 4
aload 5
invokevirtual org.bouncycastle.math.ec.SimpleBigDecimal.subtract:(Lorg/bouncycastle/math/ec/SimpleBigDecimal;)Lorg/bouncycastle/math/ec/SimpleBigDecimal;
aload 6
invokevirtual org.bouncycastle.math.ec.SimpleBigDecimal.add:(Lorg/bouncycastle/math/ec/SimpleBigDecimal;)Lorg/bouncycastle/math/ec/SimpleBigDecimal;
astore 3
start local 3 8: goto 10
end local 3 9: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
ldc "mu must be 1 or -1"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
start local 3 10: StackMap locals: int org.bouncycastle.math.ec.SimpleBigDecimal org.bouncycastle.math.ec.SimpleBigDecimal org.bouncycastle.math.ec.SimpleBigDecimal org.bouncycastle.math.ec.SimpleBigDecimal org.bouncycastle.math.ec.SimpleBigDecimal org.bouncycastle.math.ec.SimpleBigDecimal
StackMap stack:
aload 3
areturn
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 11 0 mu B
0 11 1 u Lorg/bouncycastle/math/ec/SimpleBigDecimal;
0 11 2 v Lorg/bouncycastle/math/ec/SimpleBigDecimal;
5 6 3 norm Lorg/bouncycastle/math/ec/SimpleBigDecimal;
8 9 3 norm Lorg/bouncycastle/math/ec/SimpleBigDecimal;
10 11 3 norm Lorg/bouncycastle/math/ec/SimpleBigDecimal;
1 11 4 s1 Lorg/bouncycastle/math/ec/SimpleBigDecimal;
2 11 5 s2 Lorg/bouncycastle/math/ec/SimpleBigDecimal;
3 11 6 s3 Lorg/bouncycastle/math/ec/SimpleBigDecimal;
MethodParameters:
Name Flags
mu final
u
v
public static org.bouncycastle.math.ec.ZTauElement round(org.bouncycastle.math.ec.SimpleBigDecimal, org.bouncycastle.math.ec.SimpleBigDecimal, byte);
descriptor: (Lorg/bouncycastle/math/ec/SimpleBigDecimal;Lorg/bouncycastle/math/ec/SimpleBigDecimal;B)Lorg/bouncycastle/math/ec/ZTauElement;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=17, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual org.bouncycastle.math.ec.SimpleBigDecimal.getScale:()I
istore 3
start local 3 1: aload 1
invokevirtual org.bouncycastle.math.ec.SimpleBigDecimal.getScale:()I
iload 3
if_icmpeq 3
2: new java.lang.IllegalArgumentException
dup
ldc "lambda0 and lambda1 do not have same scale"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: int
StackMap stack:
iload 2
iconst_1
if_icmpeq 5
iload 2
iconst_m1
if_icmpeq 5
4: new java.lang.IllegalArgumentException
dup
ldc "mu must be 1 or -1"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.bouncycastle.math.ec.SimpleBigDecimal.round:()Ljava/math/BigInteger;
astore 4
start local 4 6: aload 1
invokevirtual org.bouncycastle.math.ec.SimpleBigDecimal.round:()Ljava/math/BigInteger;
astore 5
start local 5 7: aload 0
aload 4
invokevirtual org.bouncycastle.math.ec.SimpleBigDecimal.subtract:(Ljava/math/BigInteger;)Lorg/bouncycastle/math/ec/SimpleBigDecimal;
astore 6
start local 6 8: aload 1
aload 5
invokevirtual org.bouncycastle.math.ec.SimpleBigDecimal.subtract:(Ljava/math/BigInteger;)Lorg/bouncycastle/math/ec/SimpleBigDecimal;
astore 7
start local 7 9: aload 6
aload 6
invokevirtual org.bouncycastle.math.ec.SimpleBigDecimal.add:(Lorg/bouncycastle/math/ec/SimpleBigDecimal;)Lorg/bouncycastle/math/ec/SimpleBigDecimal;
astore 8
start local 8 10: iload 2
iconst_1
if_icmpne 13
11: aload 8
aload 7
invokevirtual org.bouncycastle.math.ec.SimpleBigDecimal.add:(Lorg/bouncycastle/math/ec/SimpleBigDecimal;)Lorg/bouncycastle/math/ec/SimpleBigDecimal;
astore 8
12: goto 14
13: StackMap locals: org.bouncycastle.math.ec.SimpleBigDecimal org.bouncycastle.math.ec.SimpleBigDecimal int int java.math.BigInteger java.math.BigInteger org.bouncycastle.math.ec.SimpleBigDecimal org.bouncycastle.math.ec.SimpleBigDecimal org.bouncycastle.math.ec.SimpleBigDecimal
StackMap stack:
aload 8
aload 7
invokevirtual org.bouncycastle.math.ec.SimpleBigDecimal.subtract:(Lorg/bouncycastle/math/ec/SimpleBigDecimal;)Lorg/bouncycastle/math/ec/SimpleBigDecimal;
astore 8
14: StackMap locals:
StackMap stack:
aload 7
aload 7
invokevirtual org.bouncycastle.math.ec.SimpleBigDecimal.add:(Lorg/bouncycastle/math/ec/SimpleBigDecimal;)Lorg/bouncycastle/math/ec/SimpleBigDecimal;
aload 7
invokevirtual org.bouncycastle.math.ec.SimpleBigDecimal.add:(Lorg/bouncycastle/math/ec/SimpleBigDecimal;)Lorg/bouncycastle/math/ec/SimpleBigDecimal;
astore 9
start local 9 15: aload 9
aload 7
invokevirtual org.bouncycastle.math.ec.SimpleBigDecimal.add:(Lorg/bouncycastle/math/ec/SimpleBigDecimal;)Lorg/bouncycastle/math/ec/SimpleBigDecimal;
astore 10
start local 10 16: iload 2
iconst_1
if_icmpne 20
17: aload 6
aload 9
invokevirtual org.bouncycastle.math.ec.SimpleBigDecimal.subtract:(Lorg/bouncycastle/math/ec/SimpleBigDecimal;)Lorg/bouncycastle/math/ec/SimpleBigDecimal;
astore 11
start local 11 18: aload 6
aload 10
invokevirtual org.bouncycastle.math.ec.SimpleBigDecimal.add:(Lorg/bouncycastle/math/ec/SimpleBigDecimal;)Lorg/bouncycastle/math/ec/SimpleBigDecimal;
astore 12
start local 12 19: goto 22
end local 12 end local 11 20: StackMap locals: org.bouncycastle.math.ec.SimpleBigDecimal org.bouncycastle.math.ec.SimpleBigDecimal
StackMap stack:
aload 6
aload 9
invokevirtual org.bouncycastle.math.ec.SimpleBigDecimal.add:(Lorg/bouncycastle/math/ec/SimpleBigDecimal;)Lorg/bouncycastle/math/ec/SimpleBigDecimal;
astore 11
start local 11 21: aload 6
aload 10
invokevirtual org.bouncycastle.math.ec.SimpleBigDecimal.subtract:(Lorg/bouncycastle/math/ec/SimpleBigDecimal;)Lorg/bouncycastle/math/ec/SimpleBigDecimal;
astore 12
start local 12 22: StackMap locals: org.bouncycastle.math.ec.SimpleBigDecimal org.bouncycastle.math.ec.SimpleBigDecimal
StackMap stack:
iconst_0
istore 13
start local 13 23: iconst_0
istore 14
start local 14 24: aload 8
getstatic org.bouncycastle.math.ec.ECConstants.ONE:Ljava/math/BigInteger;
invokevirtual org.bouncycastle.math.ec.SimpleBigDecimal.compareTo:(Ljava/math/BigInteger;)I
iflt 30
25: aload 11
getstatic org.bouncycastle.math.ec.Tnaf.MINUS_ONE:Ljava/math/BigInteger;
invokevirtual org.bouncycastle.math.ec.SimpleBigDecimal.compareTo:(Ljava/math/BigInteger;)I
ifge 28
26: iload 2
istore 14
27: goto 32
28: StackMap locals: int int
StackMap stack:
iconst_1
istore 13
29: goto 32
30: StackMap locals:
StackMap stack:
aload 12
getstatic org.bouncycastle.math.ec.ECConstants.TWO:Ljava/math/BigInteger;
invokevirtual org.bouncycastle.math.ec.SimpleBigDecimal.compareTo:(Ljava/math/BigInteger;)I
iflt 32
31: iload 2
istore 14
32: StackMap locals:
StackMap stack:
aload 8
getstatic org.bouncycastle.math.ec.Tnaf.MINUS_ONE:Ljava/math/BigInteger;
invokevirtual org.bouncycastle.math.ec.SimpleBigDecimal.compareTo:(Ljava/math/BigInteger;)I
ifge 38
33: aload 11
getstatic org.bouncycastle.math.ec.ECConstants.ONE:Ljava/math/BigInteger;
invokevirtual org.bouncycastle.math.ec.SimpleBigDecimal.compareTo:(Ljava/math/BigInteger;)I
iflt 36
34: iload 2
ineg
i2b
istore 14
35: goto 40
36: StackMap locals:
StackMap stack:
iconst_m1
istore 13
37: goto 40
38: StackMap locals:
StackMap stack:
aload 12
getstatic org.bouncycastle.math.ec.Tnaf.MINUS_TWO:Ljava/math/BigInteger;
invokevirtual org.bouncycastle.math.ec.SimpleBigDecimal.compareTo:(Ljava/math/BigInteger;)I
ifge 40
39: iload 2
ineg
i2b
istore 14
40: StackMap locals:
StackMap stack:
aload 4
iload 13
i2l
invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 15
start local 15 41: aload 5
iload 14
i2l
invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 16
start local 16 42: new org.bouncycastle.math.ec.ZTauElement
dup
aload 15
aload 16
invokespecial org.bouncycastle.math.ec.ZTauElement.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;)V
areturn
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 43 0 lambda0 Lorg/bouncycastle/math/ec/SimpleBigDecimal;
0 43 1 lambda1 Lorg/bouncycastle/math/ec/SimpleBigDecimal;
0 43 2 mu B
1 43 3 scale I
6 43 4 f0 Ljava/math/BigInteger;
7 43 5 f1 Ljava/math/BigInteger;
8 43 6 eta0 Lorg/bouncycastle/math/ec/SimpleBigDecimal;
9 43 7 eta1 Lorg/bouncycastle/math/ec/SimpleBigDecimal;
10 43 8 eta Lorg/bouncycastle/math/ec/SimpleBigDecimal;
15 43 9 threeEta1 Lorg/bouncycastle/math/ec/SimpleBigDecimal;
16 43 10 fourEta1 Lorg/bouncycastle/math/ec/SimpleBigDecimal;
18 20 11 check1 Lorg/bouncycastle/math/ec/SimpleBigDecimal;
21 43 11 check1 Lorg/bouncycastle/math/ec/SimpleBigDecimal;
19 20 12 check2 Lorg/bouncycastle/math/ec/SimpleBigDecimal;
22 43 12 check2 Lorg/bouncycastle/math/ec/SimpleBigDecimal;
23 43 13 h0 B
24 43 14 h1 B
41 43 15 q0 Ljava/math/BigInteger;
42 43 16 q1 Ljava/math/BigInteger;
MethodParameters:
Name Flags
lambda0
lambda1
mu
public static org.bouncycastle.math.ec.SimpleBigDecimal approximateDivisionByN(java.math.BigInteger, java.math.BigInteger, java.math.BigInteger, byte, int, int);
descriptor: (Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;BII)Lorg/bouncycastle/math/ec/SimpleBigDecimal;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=13, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: iload 4
iconst_5
iadd
iconst_2
idiv
iload 5
iadd
istore 6
start local 6 1: aload 0
iload 4
iload 6
isub
iconst_2
isub
iload 3
iadd
invokevirtual java.math.BigInteger.shiftRight:(I)Ljava/math/BigInteger;
astore 7
start local 7 2: aload 1
aload 7
invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 8
start local 8 3: aload 8
iload 4
invokevirtual java.math.BigInteger.shiftRight:(I)Ljava/math/BigInteger;
astore 9
start local 9 4: aload 2
aload 9
invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 10
start local 10 5: aload 8
aload 10
invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 11
start local 11 6: aload 11
iload 6
iload 5
isub
invokevirtual java.math.BigInteger.shiftRight:(I)Ljava/math/BigInteger;
astore 12
start local 12 7: aload 11
iload 6
iload 5
isub
iconst_1
isub
invokevirtual java.math.BigInteger.testBit:(I)Z
ifeq 9
8: aload 12
getstatic org.bouncycastle.math.ec.ECConstants.ONE:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 12
9: StackMap locals: java.math.BigInteger java.math.BigInteger java.math.BigInteger int int int int java.math.BigInteger java.math.BigInteger java.math.BigInteger java.math.BigInteger java.math.BigInteger java.math.BigInteger
StackMap stack:
new org.bouncycastle.math.ec.SimpleBigDecimal
dup
aload 12
iload 5
invokespecial org.bouncycastle.math.ec.SimpleBigDecimal.<init>:(Ljava/math/BigInteger;I)V
areturn
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 10 0 k Ljava/math/BigInteger;
0 10 1 s Ljava/math/BigInteger;
0 10 2 vm Ljava/math/BigInteger;
0 10 3 a B
0 10 4 m I
0 10 5 c I
1 10 6 _k I
2 10 7 ns Ljava/math/BigInteger;
3 10 8 gs Ljava/math/BigInteger;
4 10 9 hs Ljava/math/BigInteger;
5 10 10 js Ljava/math/BigInteger;
6 10 11 gsPlusJs Ljava/math/BigInteger;
7 10 12 ls Ljava/math/BigInteger;
MethodParameters:
Name Flags
k
s
vm
a
m
c
public static byte[] tauAdicNaf(byte, org.bouncycastle.math.ec.ZTauElement);
descriptor: (BLorg/bouncycastle/math/ec/ZTauElement;)[B
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=12, args_size=2
start local 0 start local 1 0: iload 0
iconst_1
if_icmpeq 2
iload 0
iconst_m1
if_icmpeq 2
1: new java.lang.IllegalArgumentException
dup
ldc "mu must be 1 or -1"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
iload 0
aload 1
invokestatic org.bouncycastle.math.ec.Tnaf.norm:(BLorg/bouncycastle/math/ec/ZTauElement;)Ljava/math/BigInteger;
astore 2
start local 2 3: aload 2
invokevirtual java.math.BigInteger.bitLength:()I
istore 3
start local 3 4: iload 3
bipush 30
if_icmple 5
iload 3
iconst_4
iadd
goto 6
StackMap locals: java.math.BigInteger int
StackMap stack:
5: bipush 34
StackMap locals:
StackMap stack: int
6: istore 4
start local 4 7: iload 4
newarray 8
astore 5
start local 5 8: iconst_0
istore 6
start local 6 9: iconst_0
istore 7
start local 7 10: aload 1
getfield org.bouncycastle.math.ec.ZTauElement.u:Ljava/math/BigInteger;
astore 8
start local 8 11: aload 1
getfield org.bouncycastle.math.ec.ZTauElement.v:Ljava/math/BigInteger;
astore 9
start local 9 12: goto 30
13: StackMap locals: int org.bouncycastle.math.ec.ZTauElement java.math.BigInteger int int byte[] int int java.math.BigInteger java.math.BigInteger
StackMap stack:
aload 8
iconst_0
invokevirtual java.math.BigInteger.testBit:(I)Z
ifeq 21
14: aload 5
iload 6
getstatic org.bouncycastle.math.ec.ECConstants.TWO:Ljava/math/BigInteger;
aload 8
aload 9
iconst_1
invokevirtual java.math.BigInteger.shiftLeft:(I)Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
getstatic org.bouncycastle.math.ec.ECConstants.FOUR:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.mod:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.intValue:()I
i2b
bastore
15: aload 5
iload 6
baload
iconst_1
if_icmpne 18
16: aload 8
iconst_0
invokevirtual java.math.BigInteger.clearBit:(I)Ljava/math/BigInteger;
astore 8
17: goto 19
18: StackMap locals:
StackMap stack:
aload 8
getstatic org.bouncycastle.math.ec.ECConstants.ONE:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 8
19: StackMap locals:
StackMap stack:
iload 6
istore 7
20: goto 22
21: StackMap locals:
StackMap stack:
aload 5
iload 6
iconst_0
bastore
22: StackMap locals:
StackMap stack:
aload 8
astore 10
start local 10 23: aload 8
iconst_1
invokevirtual java.math.BigInteger.shiftRight:(I)Ljava/math/BigInteger;
astore 11
start local 11 24: iload 0
iconst_1
if_icmpne 27
25: aload 9
aload 11
invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 8
26: goto 28
27: StackMap locals: java.math.BigInteger java.math.BigInteger
StackMap stack:
aload 9
aload 11
invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 8
28: StackMap locals:
StackMap stack:
aload 10
iconst_1
invokevirtual java.math.BigInteger.shiftRight:(I)Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.negate:()Ljava/math/BigInteger;
astore 9
29: iinc 6 1
end local 11 end local 10 30: StackMap locals:
StackMap stack:
aload 8
getstatic org.bouncycastle.math.ec.ECConstants.ZERO:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.equals:(Ljava/lang/Object;)Z
ifeq 13
aload 9
getstatic org.bouncycastle.math.ec.ECConstants.ZERO:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.equals:(Ljava/lang/Object;)Z
ifeq 13
31: iinc 7 1
32: iload 7
newarray 8
astore 10
start local 10 33: aload 5
iconst_0
aload 10
iconst_0
iload 7
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
34: aload 10
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 mu B
0 35 1 lambda Lorg/bouncycastle/math/ec/ZTauElement;
3 35 2 norm Ljava/math/BigInteger;
4 35 3 log2Norm I
7 35 4 maxLength I
8 35 5 u [B
9 35 6 i I
10 35 7 length I
11 35 8 r0 Ljava/math/BigInteger;
12 35 9 r1 Ljava/math/BigInteger;
23 30 10 t Ljava/math/BigInteger;
24 30 11 s Ljava/math/BigInteger;
33 35 10 tnaf [B
MethodParameters:
Name Flags
mu
lambda
public static org.bouncycastle.math.ec.ECPoint$AbstractF2m tau(org.bouncycastle.math.ec.ECPoint$AbstractF2m);
descriptor: (Lorg/bouncycastle/math/ec/ECPoint$AbstractF2m;)Lorg/bouncycastle/math/ec/ECPoint$AbstractF2m;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.bouncycastle.math.ec.ECPoint$AbstractF2m.tau:()Lorg/bouncycastle/math/ec/ECPoint$AbstractF2m;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 p Lorg/bouncycastle/math/ec/ECPoint$AbstractF2m;
MethodParameters:
Name Flags
p
public static byte getMu(org.bouncycastle.math.ec.ECCurve$AbstractF2m);
descriptor: (Lorg/bouncycastle/math/ec/ECCurve$AbstractF2m;)B
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.bouncycastle.math.ec.ECCurve$AbstractF2m.isKoblitz:()Z
ifne 2
1: new java.lang.IllegalArgumentException
dup
ldc "No Koblitz curve (ABC), TNAF multiplication not possible"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.bouncycastle.math.ec.ECCurve$AbstractF2m.getA:()Lorg/bouncycastle/math/ec/ECFieldElement;
invokevirtual org.bouncycastle.math.ec.ECFieldElement.isZero:()Z
ifeq 4
3: iconst_m1
ireturn
4: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 curve Lorg/bouncycastle/math/ec/ECCurve$AbstractF2m;
MethodParameters:
Name Flags
curve
public static byte getMu(org.bouncycastle.math.ec.ECFieldElement);
descriptor: (Lorg/bouncycastle/math/ec/ECFieldElement;)B
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.bouncycastle.math.ec.ECFieldElement.isZero:()Z
ifeq 1
iconst_m1
goto 2
StackMap locals:
StackMap stack:
1: iconst_1
StackMap locals:
StackMap stack: int
2: i2b
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 curveA Lorg/bouncycastle/math/ec/ECFieldElement;
MethodParameters:
Name Flags
curveA
public static byte getMu(int);
descriptor: (I)B
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: iload 0
ifne 1
iconst_m1
goto 2
StackMap locals:
StackMap stack:
1: iconst_1
StackMap locals:
StackMap stack: int
2: i2b
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 curveA I
MethodParameters:
Name Flags
curveA
public static java.math.BigInteger[] getLucas(byte, int, boolean);
descriptor: (BIZ)[Ljava/math/BigInteger;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=8, args_size=3
start local 0 start local 1 start local 2 0: iload 0
iconst_1
if_icmpeq 2
iload 0
iconst_m1
if_icmpeq 2
1: new java.lang.IllegalArgumentException
dup
ldc "mu must be 1 or -1"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
iload 2
ifeq 6
3: getstatic org.bouncycastle.math.ec.ECConstants.TWO:Ljava/math/BigInteger;
astore 3
start local 3 4: iload 0
i2l
invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
astore 4
start local 4 5: goto 8
end local 4 end local 3 6: StackMap locals:
StackMap stack:
getstatic org.bouncycastle.math.ec.ECConstants.ZERO:Ljava/math/BigInteger;
astore 3
start local 3 7: getstatic org.bouncycastle.math.ec.ECConstants.ONE:Ljava/math/BigInteger;
astore 4
start local 4 8: StackMap locals: java.math.BigInteger java.math.BigInteger
StackMap stack:
iconst_1
istore 6
start local 6 9: goto 19
10: StackMap locals: int int int java.math.BigInteger java.math.BigInteger top int
StackMap stack:
aconst_null
astore 7
start local 7 11: iload 0
iconst_1
if_icmpne 14
12: aload 4
astore 7
13: goto 15
14: StackMap locals: java.math.BigInteger
StackMap stack:
aload 4
invokevirtual java.math.BigInteger.negate:()Ljava/math/BigInteger;
astore 7
15: StackMap locals:
StackMap stack:
aload 7
aload 3
iconst_1
invokevirtual java.math.BigInteger.shiftLeft:(I)Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 5
start local 5 16: aload 4
astore 3
17: aload 5
astore 4
end local 7 18: iinc 6 1
end local 5 StackMap locals:
StackMap stack:
19: iload 6
iload 1
if_icmplt 10
end local 6 20: iconst_2
anewarray java.math.BigInteger
dup
iconst_0
aload 3
aastore
dup
iconst_1
aload 4
aastore
astore 6
start local 6 21: aload 6
areturn
end local 6 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 mu B
0 22 1 k I
0 22 2 doV Z
4 6 3 u0 Ljava/math/BigInteger;
7 22 3 u0 Ljava/math/BigInteger;
5 6 4 u1 Ljava/math/BigInteger;
8 22 4 u1 Ljava/math/BigInteger;
16 19 5 u2 Ljava/math/BigInteger;
9 20 6 i I
11 18 7 s Ljava/math/BigInteger;
21 22 6 retVal [Ljava/math/BigInteger;
MethodParameters:
Name Flags
mu
k
doV
public static java.math.BigInteger getTw(byte, int);
descriptor: (BI)Ljava/math/BigInteger;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=6, args_size=2
start local 0 start local 1 0: iload 1
iconst_4
if_icmpne 4
1: iload 0
iconst_1
if_icmpne 3
2: ldc 6
invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
areturn
3: StackMap locals:
StackMap stack:
ldc 10
invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
areturn
4: StackMap locals:
StackMap stack:
iload 0
iload 1
iconst_0
invokestatic org.bouncycastle.math.ec.Tnaf.getLucas:(BIZ)[Ljava/math/BigInteger;
astore 2
start local 2 5: getstatic org.bouncycastle.math.ec.ECConstants.ZERO:Ljava/math/BigInteger;
iload 1
invokevirtual java.math.BigInteger.setBit:(I)Ljava/math/BigInteger;
astore 3
start local 3 6: aload 2
iconst_1
aaload
aload 3
invokevirtual java.math.BigInteger.modInverse:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 4
start local 4 7: getstatic org.bouncycastle.math.ec.ECConstants.TWO:Ljava/math/BigInteger;
aload 2
iconst_0
aaload
invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
aload 4
invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
aload 3
invokevirtual java.math.BigInteger.mod:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 5
start local 5 8: aload 5
areturn
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 9 0 mu B
0 9 1 w I
5 9 2 us [Ljava/math/BigInteger;
6 9 3 twoToW Ljava/math/BigInteger;
7 9 4 u1invert Ljava/math/BigInteger;
8 9 5 tw Ljava/math/BigInteger;
MethodParameters:
Name Flags
mu
w
public static java.math.BigInteger[] getSi(org.bouncycastle.math.ec.ECCurve$AbstractF2m);
descriptor: (Lorg/bouncycastle/math/ec/ECCurve$AbstractF2m;)[Ljava/math/BigInteger;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=9, args_size=1
start local 0 0: aload 0
invokevirtual org.bouncycastle.math.ec.ECCurve$AbstractF2m.isKoblitz:()Z
ifne 2
1: new java.lang.IllegalArgumentException
dup
ldc "si is defined for Koblitz curves only"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.bouncycastle.math.ec.ECCurve$AbstractF2m.getFieldSize:()I
istore 1
start local 1 3: aload 0
invokevirtual org.bouncycastle.math.ec.ECCurve$AbstractF2m.getA:()Lorg/bouncycastle/math/ec/ECFieldElement;
invokevirtual org.bouncycastle.math.ec.ECFieldElement.toBigInteger:()Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.intValue:()I
istore 2
start local 2 4: iload 2
invokestatic org.bouncycastle.math.ec.Tnaf.getMu:(I)B
istore 3
start local 3 5: aload 0
invokevirtual org.bouncycastle.math.ec.ECCurve$AbstractF2m.getCofactor:()Ljava/math/BigInteger;
invokestatic org.bouncycastle.math.ec.Tnaf.getShiftsForCofactor:(Ljava/math/BigInteger;)I
istore 4
start local 4 6: iload 1
iconst_3
iadd
iload 2
isub
istore 5
start local 5 7: iload 3
iload 5
iconst_0
invokestatic org.bouncycastle.math.ec.Tnaf.getLucas:(BIZ)[Ljava/math/BigInteger;
astore 6
start local 6 8: iload 3
iconst_1
if_icmpne 11
9: aload 6
iconst_0
aload 6
iconst_0
aaload
invokevirtual java.math.BigInteger.negate:()Ljava/math/BigInteger;
aastore
10: aload 6
iconst_1
aload 6
iconst_1
aaload
invokevirtual java.math.BigInteger.negate:()Ljava/math/BigInteger;
aastore
11: StackMap locals: org.bouncycastle.math.ec.ECCurve$AbstractF2m int int int int int java.math.BigInteger[]
StackMap stack:
getstatic org.bouncycastle.math.ec.ECConstants.ONE:Ljava/math/BigInteger;
aload 6
iconst_1
aaload
invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
iload 4
invokevirtual java.math.BigInteger.shiftRight:(I)Ljava/math/BigInteger;
astore 7
start local 7 12: getstatic org.bouncycastle.math.ec.ECConstants.ONE:Ljava/math/BigInteger;
aload 6
iconst_0
aaload
invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
iload 4
invokevirtual java.math.BigInteger.shiftRight:(I)Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.negate:()Ljava/math/BigInteger;
astore 8
start local 8 13: iconst_2
anewarray java.math.BigInteger
dup
iconst_0
aload 7
aastore
dup
iconst_1
aload 8
aastore
areturn
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 14 0 curve Lorg/bouncycastle/math/ec/ECCurve$AbstractF2m;
3 14 1 m I
4 14 2 a I
5 14 3 mu B
6 14 4 shifts I
7 14 5 index I
8 14 6 ui [Ljava/math/BigInteger;
12 14 7 dividend0 Ljava/math/BigInteger;
13 14 8 dividend1 Ljava/math/BigInteger;
MethodParameters:
Name Flags
curve
public static java.math.BigInteger[] getSi(int, int, java.math.BigInteger);
descriptor: (IILjava/math/BigInteger;)[Ljava/math/BigInteger;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=9, args_size=3
start local 0 start local 1 start local 2 0: iload 1
invokestatic org.bouncycastle.math.ec.Tnaf.getMu:(I)B
istore 3
start local 3 1: aload 2
invokestatic org.bouncycastle.math.ec.Tnaf.getShiftsForCofactor:(Ljava/math/BigInteger;)I
istore 4
start local 4 2: iload 0
iconst_3
iadd
iload 1
isub
istore 5
start local 5 3: iload 3
iload 5
iconst_0
invokestatic org.bouncycastle.math.ec.Tnaf.getLucas:(BIZ)[Ljava/math/BigInteger;
astore 6
start local 6 4: iload 3
iconst_1
if_icmpne 7
5: aload 6
iconst_0
aload 6
iconst_0
aaload
invokevirtual java.math.BigInteger.negate:()Ljava/math/BigInteger;
aastore
6: aload 6
iconst_1
aload 6
iconst_1
aaload
invokevirtual java.math.BigInteger.negate:()Ljava/math/BigInteger;
aastore
7: StackMap locals: int int java.math.BigInteger int int int java.math.BigInteger[]
StackMap stack:
getstatic org.bouncycastle.math.ec.ECConstants.ONE:Ljava/math/BigInteger;
aload 6
iconst_1
aaload
invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
iload 4
invokevirtual java.math.BigInteger.shiftRight:(I)Ljava/math/BigInteger;
astore 7
start local 7 8: getstatic org.bouncycastle.math.ec.ECConstants.ONE:Ljava/math/BigInteger;
aload 6
iconst_0
aaload
invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
iload 4
invokevirtual java.math.BigInteger.shiftRight:(I)Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.negate:()Ljava/math/BigInteger;
astore 8
start local 8 9: iconst_2
anewarray java.math.BigInteger
dup
iconst_0
aload 7
aastore
dup
iconst_1
aload 8
aastore
areturn
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 10 0 fieldSize I
0 10 1 curveA I
0 10 2 cofactor Ljava/math/BigInteger;
1 10 3 mu B
2 10 4 shifts I
3 10 5 index I
4 10 6 ui [Ljava/math/BigInteger;
8 10 7 dividend0 Ljava/math/BigInteger;
9 10 8 dividend1 Ljava/math/BigInteger;
MethodParameters:
Name Flags
fieldSize
curveA
cofactor
protected static int getShiftsForCofactor(java.math.BigInteger);
descriptor: (Ljava/math/BigInteger;)I
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
ifnull 5
1: aload 0
getstatic org.bouncycastle.math.ec.ECConstants.TWO:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.equals:(Ljava/lang/Object;)Z
ifeq 3
2: iconst_1
ireturn
3: StackMap locals:
StackMap stack:
aload 0
getstatic org.bouncycastle.math.ec.ECConstants.FOUR:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.equals:(Ljava/lang/Object;)Z
ifeq 5
4: iconst_2
ireturn
5: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
ldc "h (Cofactor) must be 2 or 4"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 h Ljava/math/BigInteger;
MethodParameters:
Name Flags
h
public static org.bouncycastle.math.ec.ZTauElement partModReduction(java.math.BigInteger, int, byte, java.math.BigInteger[], byte, byte);
descriptor: (Ljava/math/BigInteger;IB[Ljava/math/BigInteger;BB)Lorg/bouncycastle/math/ec/ZTauElement;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=14, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: iload 4
iconst_1
if_icmpne 3
1: aload 3
iconst_0
aaload
aload 3
iconst_1
aaload
invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 6
start local 6 2: goto 4
end local 6 3: StackMap locals:
StackMap stack:
aload 3
iconst_0
aaload
aload 3
iconst_1
aaload
invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 6
start local 6 4: StackMap locals: java.math.BigInteger
StackMap stack:
iload 4
iload 1
iconst_1
invokestatic org.bouncycastle.math.ec.Tnaf.getLucas:(BIZ)[Ljava/math/BigInteger;
astore 7
start local 7 5: aload 7
iconst_1
aaload
astore 8
start local 8 6: aload 0
aload 3
iconst_0
aaload
aload 8
iload 2
iload 1
iload 5
7: invokestatic org.bouncycastle.math.ec.Tnaf.approximateDivisionByN:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;BII)Lorg/bouncycastle/math/ec/SimpleBigDecimal;
astore 9
start local 9 8: aload 0
aload 3
iconst_1
aaload
aload 8
iload 2
iload 1
iload 5
9: invokestatic org.bouncycastle.math.ec.Tnaf.approximateDivisionByN:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;BII)Lorg/bouncycastle/math/ec/SimpleBigDecimal;
astore 10
start local 10 10: aload 9
aload 10
iload 4
invokestatic org.bouncycastle.math.ec.Tnaf.round:(Lorg/bouncycastle/math/ec/SimpleBigDecimal;Lorg/bouncycastle/math/ec/SimpleBigDecimal;B)Lorg/bouncycastle/math/ec/ZTauElement;
astore 11
start local 11 11: aload 0
aload 6
aload 11
getfield org.bouncycastle.math.ec.ZTauElement.u:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
12: ldc 2
invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
aload 3
iconst_1
aaload
invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
aload 11
getfield org.bouncycastle.math.ec.ZTauElement.v:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
13: invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 12
start local 12 14: aload 3
iconst_1
aaload
aload 11
getfield org.bouncycastle.math.ec.ZTauElement.u:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
aload 3
iconst_0
aaload
aload 11
getfield org.bouncycastle.math.ec.ZTauElement.v:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 13
start local 13 15: new org.bouncycastle.math.ec.ZTauElement
dup
aload 12
aload 13
invokespecial org.bouncycastle.math.ec.ZTauElement.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;)V
areturn
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 16 0 k Ljava/math/BigInteger;
0 16 1 m I
0 16 2 a B
0 16 3 s [Ljava/math/BigInteger;
0 16 4 mu B
0 16 5 c B
2 3 6 d0 Ljava/math/BigInteger;
4 16 6 d0 Ljava/math/BigInteger;
5 16 7 v [Ljava/math/BigInteger;
6 16 8 vm Ljava/math/BigInteger;
8 16 9 lambda0 Lorg/bouncycastle/math/ec/SimpleBigDecimal;
10 16 10 lambda1 Lorg/bouncycastle/math/ec/SimpleBigDecimal;
11 16 11 q Lorg/bouncycastle/math/ec/ZTauElement;
14 16 12 r0 Ljava/math/BigInteger;
15 16 13 r1 Ljava/math/BigInteger;
MethodParameters:
Name Flags
k
m
a
s
mu
c
public static org.bouncycastle.math.ec.ECPoint$AbstractF2m multiplyRTnaf(org.bouncycastle.math.ec.ECPoint$AbstractF2m, java.math.BigInteger);
descriptor: (Lorg/bouncycastle/math/ec/ECPoint$AbstractF2m;Ljava/math/BigInteger;)Lorg/bouncycastle/math/ec/ECPoint$AbstractF2m;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=8, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.bouncycastle.math.ec.ECPoint$AbstractF2m.getCurve:()Lorg/bouncycastle/math/ec/ECCurve;
checkcast org.bouncycastle.math.ec.ECCurve$AbstractF2m
astore 2
start local 2 1: aload 2
invokevirtual org.bouncycastle.math.ec.ECCurve$AbstractF2m.getFieldSize:()I
istore 3
start local 3 2: aload 2
invokevirtual org.bouncycastle.math.ec.ECCurve$AbstractF2m.getA:()Lorg/bouncycastle/math/ec/ECFieldElement;
invokevirtual org.bouncycastle.math.ec.ECFieldElement.toBigInteger:()Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.intValue:()I
istore 4
start local 4 3: iload 4
invokestatic org.bouncycastle.math.ec.Tnaf.getMu:(I)B
istore 5
start local 5 4: aload 2
invokevirtual org.bouncycastle.math.ec.ECCurve$AbstractF2m.getSi:()[Ljava/math/BigInteger;
astore 6
start local 6 5: aload 1
iload 3
iload 4
i2b
aload 6
iload 5
bipush 10
invokestatic org.bouncycastle.math.ec.Tnaf.partModReduction:(Ljava/math/BigInteger;IB[Ljava/math/BigInteger;BB)Lorg/bouncycastle/math/ec/ZTauElement;
astore 7
start local 7 6: aload 0
aload 7
invokestatic org.bouncycastle.math.ec.Tnaf.multiplyTnaf:(Lorg/bouncycastle/math/ec/ECPoint$AbstractF2m;Lorg/bouncycastle/math/ec/ZTauElement;)Lorg/bouncycastle/math/ec/ECPoint$AbstractF2m;
areturn
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 7 0 p Lorg/bouncycastle/math/ec/ECPoint$AbstractF2m;
0 7 1 k Ljava/math/BigInteger;
1 7 2 curve Lorg/bouncycastle/math/ec/ECCurve$AbstractF2m;
2 7 3 m I
3 7 4 a I
4 7 5 mu B
5 7 6 s [Ljava/math/BigInteger;
6 7 7 rho Lorg/bouncycastle/math/ec/ZTauElement;
MethodParameters:
Name Flags
p
k
public static org.bouncycastle.math.ec.ECPoint$AbstractF2m multiplyTnaf(org.bouncycastle.math.ec.ECPoint$AbstractF2m, org.bouncycastle.math.ec.ZTauElement);
descriptor: (Lorg/bouncycastle/math/ec/ECPoint$AbstractF2m;Lorg/bouncycastle/math/ec/ZTauElement;)Lorg/bouncycastle/math/ec/ECPoint$AbstractF2m;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=6, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.bouncycastle.math.ec.ECPoint$AbstractF2m.getCurve:()Lorg/bouncycastle/math/ec/ECCurve;
checkcast org.bouncycastle.math.ec.ECCurve$AbstractF2m
astore 2
start local 2 1: aload 2
invokevirtual org.bouncycastle.math.ec.ECCurve$AbstractF2m.getA:()Lorg/bouncycastle/math/ec/ECFieldElement;
invokestatic org.bouncycastle.math.ec.Tnaf.getMu:(Lorg/bouncycastle/math/ec/ECFieldElement;)B
istore 3
start local 3 2: iload 3
aload 1
invokestatic org.bouncycastle.math.ec.Tnaf.tauAdicNaf:(BLorg/bouncycastle/math/ec/ZTauElement;)[B
astore 4
start local 4 3: aload 0
aload 4
invokestatic org.bouncycastle.math.ec.Tnaf.multiplyFromTnaf:(Lorg/bouncycastle/math/ec/ECPoint$AbstractF2m;[B)Lorg/bouncycastle/math/ec/ECPoint$AbstractF2m;
astore 5
start local 5 4: aload 5
areturn
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 5 0 p Lorg/bouncycastle/math/ec/ECPoint$AbstractF2m;
0 5 1 lambda Lorg/bouncycastle/math/ec/ZTauElement;
1 5 2 curve Lorg/bouncycastle/math/ec/ECCurve$AbstractF2m;
2 5 3 mu B
3 5 4 u [B
4 5 5 q Lorg/bouncycastle/math/ec/ECPoint$AbstractF2m;
MethodParameters:
Name Flags
p
lambda
public static org.bouncycastle.math.ec.ECPoint$AbstractF2m multiplyFromTnaf(org.bouncycastle.math.ec.ECPoint$AbstractF2m, byte[]);
descriptor: (Lorg/bouncycastle/math/ec/ECPoint$AbstractF2m;[B)Lorg/bouncycastle/math/ec/ECPoint$AbstractF2m;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=9, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.bouncycastle.math.ec.ECPoint$AbstractF2m.getCurve:()Lorg/bouncycastle/math/ec/ECCurve;
astore 2
start local 2 1: aload 2
invokevirtual org.bouncycastle.math.ec.ECCurve.getInfinity:()Lorg/bouncycastle/math/ec/ECPoint;
checkcast org.bouncycastle.math.ec.ECPoint$AbstractF2m
astore 3
start local 3 2: aload 0
invokevirtual org.bouncycastle.math.ec.ECPoint$AbstractF2m.negate:()Lorg/bouncycastle/math/ec/ECPoint;
checkcast org.bouncycastle.math.ec.ECPoint$AbstractF2m
astore 4
start local 4 3: iconst_0
istore 5
start local 5 4: aload 1
arraylength
iconst_1
isub
istore 6
start local 6 5: goto 16
6: StackMap locals: org.bouncycastle.math.ec.ECPoint$AbstractF2m byte[] org.bouncycastle.math.ec.ECCurve org.bouncycastle.math.ec.ECPoint$AbstractF2m org.bouncycastle.math.ec.ECPoint$AbstractF2m int int
StackMap stack:
iinc 5 1
7: aload 1
iload 6
baload
istore 7
start local 7 8: iload 7
ifeq 15
9: aload 3
iload 5
invokevirtual org.bouncycastle.math.ec.ECPoint$AbstractF2m.tauPow:(I)Lorg/bouncycastle/math/ec/ECPoint$AbstractF2m;
astore 3
10: iconst_0
istore 5
11: iload 7
ifle 12
aload 0
goto 13
StackMap locals: int
StackMap stack:
12: aload 4
StackMap locals:
StackMap stack: org.bouncycastle.math.ec.ECPoint$AbstractF2m
13: astore 8
start local 8 14: aload 3
aload 8
invokevirtual org.bouncycastle.math.ec.ECPoint$AbstractF2m.add:(Lorg/bouncycastle/math/ec/ECPoint;)Lorg/bouncycastle/math/ec/ECPoint;
checkcast org.bouncycastle.math.ec.ECPoint$AbstractF2m
astore 3
end local 8 end local 7 15: StackMap locals:
StackMap stack:
iinc 6 -1
StackMap locals:
StackMap stack:
16: iload 6
ifge 6
end local 6 17: iload 5
ifle 19
18: aload 3
iload 5
invokevirtual org.bouncycastle.math.ec.ECPoint$AbstractF2m.tauPow:(I)Lorg/bouncycastle/math/ec/ECPoint$AbstractF2m;
astore 3
19: StackMap locals:
StackMap stack:
aload 3
areturn
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 20 0 p Lorg/bouncycastle/math/ec/ECPoint$AbstractF2m;
0 20 1 u [B
1 20 2 curve Lorg/bouncycastle/math/ec/ECCurve;
2 20 3 q Lorg/bouncycastle/math/ec/ECPoint$AbstractF2m;
3 20 4 pNeg Lorg/bouncycastle/math/ec/ECPoint$AbstractF2m;
4 20 5 tauCount I
5 17 6 i I
8 15 7 ui B
14 15 8 x Lorg/bouncycastle/math/ec/ECPoint;
MethodParameters:
Name Flags
p
u
public static byte[] tauAdicWNaf(byte, org.bouncycastle.math.ec.ZTauElement, byte, java.math.BigInteger, java.math.BigInteger, org.bouncycastle.math.ec.ZTauElement[]);
descriptor: (BLorg/bouncycastle/math/ec/ZTauElement;BLjava/math/BigInteger;Ljava/math/BigInteger;[Lorg/bouncycastle/math/ec/ZTauElement;)[B
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=17, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: iload 0
iconst_1
if_icmpeq 2
iload 0
iconst_m1
if_icmpeq 2
1: new java.lang.IllegalArgumentException
dup
ldc "mu must be 1 or -1"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
iload 0
aload 1
invokestatic org.bouncycastle.math.ec.Tnaf.norm:(BLorg/bouncycastle/math/ec/ZTauElement;)Ljava/math/BigInteger;
astore 6
start local 6 3: aload 6
invokevirtual java.math.BigInteger.bitLength:()I
istore 7
start local 7 4: iload 7
bipush 30
if_icmple 5
iload 7
iconst_4
iadd
iload 2
iadd
goto 6
StackMap locals: java.math.BigInteger int
StackMap stack:
5: bipush 34
iload 2
iadd
StackMap locals:
StackMap stack: int
6: istore 8
start local 8 7: iload 8
newarray 8
astore 9
start local 9 8: aload 3
iconst_1
invokevirtual java.math.BigInteger.shiftRight:(I)Ljava/math/BigInteger;
astore 10
start local 10 9: aload 1
getfield org.bouncycastle.math.ec.ZTauElement.u:Ljava/math/BigInteger;
astore 11
start local 11 10: aload 1
getfield org.bouncycastle.math.ec.ZTauElement.v:Ljava/math/BigInteger;
astore 12
start local 12 11: iconst_0
istore 13
start local 13 12: goto 40
13: StackMap locals: int org.bouncycastle.math.ec.ZTauElement int java.math.BigInteger java.math.BigInteger org.bouncycastle.math.ec.ZTauElement[] java.math.BigInteger int int byte[] java.math.BigInteger java.math.BigInteger java.math.BigInteger int
StackMap stack:
aload 11
iconst_0
invokevirtual java.math.BigInteger.testBit:(I)Z
ifeq 32
14: aload 11
aload 12
aload 4
invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
aload 3
invokevirtual java.math.BigInteger.mod:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
15: astore 14
start local 14 16: aload 14
aload 10
invokevirtual java.math.BigInteger.compareTo:(Ljava/math/BigInteger;)I
iflt 19
17: aload 14
aload 3
invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.intValue:()I
i2b
istore 15
start local 15 18: goto 20
end local 15 19: StackMap locals: java.math.BigInteger
StackMap stack:
aload 14
invokevirtual java.math.BigInteger.intValue:()I
i2b
istore 15
start local 15 20: StackMap locals: int
StackMap stack:
aload 9
iload 13
iload 15
bastore
21: iconst_1
istore 16
start local 16 22: iload 15
ifge 25
23: iconst_0
istore 16
24: iload 15
ineg
i2b
istore 15
25: StackMap locals: int
StackMap stack:
iload 16
ifeq 29
26: aload 11
aload 5
iload 15
aaload
getfield org.bouncycastle.math.ec.ZTauElement.u:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 11
27: aload 12
aload 5
iload 15
aaload
getfield org.bouncycastle.math.ec.ZTauElement.v:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 12
28: goto 33
29: StackMap locals:
StackMap stack:
aload 11
aload 5
iload 15
aaload
getfield org.bouncycastle.math.ec.ZTauElement.u:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 11
30: aload 12
aload 5
iload 15
aaload
getfield org.bouncycastle.math.ec.ZTauElement.v:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 12
end local 16 end local 15 end local 14 31: goto 33
32: StackMap locals:
StackMap stack:
aload 9
iload 13
iconst_0
bastore
33: StackMap locals:
StackMap stack:
aload 11
astore 14
start local 14 34: iload 0
iconst_1
if_icmpne 37
35: aload 12
aload 11
iconst_1
invokevirtual java.math.BigInteger.shiftRight:(I)Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 11
36: goto 38
37: StackMap locals: java.math.BigInteger
StackMap stack:
aload 12
aload 11
iconst_1
invokevirtual java.math.BigInteger.shiftRight:(I)Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 11
38: StackMap locals:
StackMap stack:
aload 14
iconst_1
invokevirtual java.math.BigInteger.shiftRight:(I)Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.negate:()Ljava/math/BigInteger;
astore 12
39: iinc 13 1
end local 14 40: StackMap locals:
StackMap stack:
aload 11
getstatic org.bouncycastle.math.ec.ECConstants.ZERO:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.equals:(Ljava/lang/Object;)Z
ifeq 13
aload 12
getstatic org.bouncycastle.math.ec.ECConstants.ZERO:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.equals:(Ljava/lang/Object;)Z
ifeq 13
41: aload 9
areturn
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 42 0 mu B
0 42 1 lambda Lorg/bouncycastle/math/ec/ZTauElement;
0 42 2 width B
0 42 3 pow2w Ljava/math/BigInteger;
0 42 4 tw Ljava/math/BigInteger;
0 42 5 alpha [Lorg/bouncycastle/math/ec/ZTauElement;
3 42 6 norm Ljava/math/BigInteger;
4 42 7 log2Norm I
7 42 8 maxLength I
8 42 9 u [B
9 42 10 pow2wMin1 Ljava/math/BigInteger;
10 42 11 r0 Ljava/math/BigInteger;
11 42 12 r1 Ljava/math/BigInteger;
12 42 13 i I
16 31 14 uUnMod Ljava/math/BigInteger;
18 19 15 uLocal B
20 31 15 uLocal B
22 31 16 s Z
34 40 14 t Ljava/math/BigInteger;
MethodParameters:
Name Flags
mu
lambda
width
pow2w
tw
alpha
public static org.bouncycastle.math.ec.ECPoint$AbstractF2m[] getPreComp(org.bouncycastle.math.ec.ECPoint$AbstractF2m, byte);
descriptor: (Lorg/bouncycastle/math/ec/ECPoint$AbstractF2m;B)[Lorg/bouncycastle/math/ec/ECPoint$AbstractF2m;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=6, args_size=2
start local 0 start local 1 0: iload 1
ifne 1
getstatic org.bouncycastle.math.ec.Tnaf.alpha0Tnaf:[[B
goto 2
StackMap locals:
StackMap stack:
1: getstatic org.bouncycastle.math.ec.Tnaf.alpha1Tnaf:[[B
StackMap locals:
StackMap stack: byte[][]
2: astore 2
start local 2 3: aload 2
arraylength
iconst_1
iadd
iconst_1
iushr
anewarray org.bouncycastle.math.ec.ECPoint$AbstractF2m
astore 3
start local 3 4: aload 3
iconst_0
aload 0
aastore
5: aload 2
arraylength
istore 4
start local 4 6: iconst_3
istore 5
start local 5 7: goto 10
8: StackMap locals: org.bouncycastle.math.ec.ECPoint$AbstractF2m int byte[][] org.bouncycastle.math.ec.ECPoint$AbstractF2m[] int int
StackMap stack:
aload 3
iload 5
iconst_1
iushr
aload 0
aload 2
iload 5
aaload
invokestatic org.bouncycastle.math.ec.Tnaf.multiplyFromTnaf:(Lorg/bouncycastle/math/ec/ECPoint$AbstractF2m;[B)Lorg/bouncycastle/math/ec/ECPoint$AbstractF2m;
aastore
9: iinc 5 2
StackMap locals:
StackMap stack:
10: iload 5
iload 4
if_icmplt 8
end local 5 11: aload 0
invokevirtual org.bouncycastle.math.ec.ECPoint$AbstractF2m.getCurve:()Lorg/bouncycastle/math/ec/ECCurve;
aload 3
invokevirtual org.bouncycastle.math.ec.ECCurve.normalizeAll:([Lorg/bouncycastle/math/ec/ECPoint;)V
12: aload 3
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 p Lorg/bouncycastle/math/ec/ECPoint$AbstractF2m;
0 13 1 a B
3 13 2 alphaTnaf [[B
4 13 3 pu [Lorg/bouncycastle/math/ec/ECPoint$AbstractF2m;
6 13 4 precompLen I
7 11 5 i I
MethodParameters:
Name Flags
p
a
}
SourceFile: "Tnaf.java"
InnerClasses:
public abstract AbstractF2m = org.bouncycastle.math.ec.ECCurve$AbstractF2m of org.bouncycastle.math.ec.ECCurve
public abstract AbstractF2m = org.bouncycastle.math.ec.ECPoint$AbstractF2m of org.bouncycastle.math.ec.ECPoint