public class org.bouncycastle.math.ec.WNafL2RMultiplier extends org.bouncycastle.math.ec.AbstractECMultiplier
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.bouncycastle.math.ec.WNafL2RMultiplier
super_class: org.bouncycastle.math.ec.AbstractECMultiplier
{
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial org.bouncycastle.math.ec.AbstractECMultiplier.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/math/ec/WNafL2RMultiplier;
protected org.bouncycastle.math.ec.ECPoint multiplyPositive(org.bouncycastle.math.ec.ECPoint, java.math.BigInteger);
descriptor: (Lorg/bouncycastle/math/ec/ECPoint;Ljava/math/BigInteger;)Lorg/bouncycastle/math/ec/ECPoint;
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=20, args_size=3
start local 0 start local 1 start local 2 0: iconst_2
bipush 16
aload 0
aload 2
invokevirtual java.math.BigInteger.bitLength:()I
invokevirtual org.bouncycastle.math.ec.WNafL2RMultiplier.getWindowSize:(I)I
invokestatic java.lang.Math.min:(II)I
invokestatic java.lang.Math.max:(II)I
istore 3
start local 3 1: aload 1
iload 3
iconst_1
invokestatic org.bouncycastle.math.ec.WNafUtil.precompute:(Lorg/bouncycastle/math/ec/ECPoint;IZ)Lorg/bouncycastle/math/ec/WNafPreCompInfo;
astore 4
start local 4 2: aload 4
invokevirtual org.bouncycastle.math.ec.WNafPreCompInfo.getPreComp:()[Lorg/bouncycastle/math/ec/ECPoint;
astore 5
start local 5 3: aload 4
invokevirtual org.bouncycastle.math.ec.WNafPreCompInfo.getPreCompNeg:()[Lorg/bouncycastle/math/ec/ECPoint;
astore 6
start local 6 4: iload 3
aload 2
invokestatic org.bouncycastle.math.ec.WNafUtil.generateCompactWindowNaf:(ILjava/math/BigInteger;)[I
astore 7
start local 7 5: aload 1
invokevirtual org.bouncycastle.math.ec.ECPoint.getCurve:()Lorg/bouncycastle/math/ec/ECCurve;
invokevirtual org.bouncycastle.math.ec.ECCurve.getInfinity:()Lorg/bouncycastle/math/ec/ECPoint;
astore 8
start local 8 6: aload 7
arraylength
istore 9
start local 9 7: iload 9
iconst_1
if_icmple 37
8: aload 7
iinc 9 -1
iload 9
iaload
istore 10
start local 10 9: iload 10
bipush 16
ishr
istore 11
start local 11 10: iload 10
ldc 65535
iand
istore 12
start local 12 11: iload 11
invokestatic java.lang.Math.abs:(I)I
istore 13
start local 13 12: iload 11
ifge 13
aload 6
goto 14
StackMap locals: org.bouncycastle.math.ec.WNafL2RMultiplier org.bouncycastle.math.ec.ECPoint java.math.BigInteger int org.bouncycastle.math.ec.WNafPreCompInfo org.bouncycastle.math.ec.ECPoint[] org.bouncycastle.math.ec.ECPoint[] int[] org.bouncycastle.math.ec.ECPoint int int int int int
StackMap stack:
13: aload 5
StackMap locals:
StackMap stack: org.bouncycastle.math.ec.ECPoint[]
14: astore 14
start local 14 15: iload 13
iconst_2
ishl
iconst_1
iload 3
ishl
if_icmpge 24
16: getstatic org.bouncycastle.math.ec.LongArray.bitLengths:[B
iload 13
baload
istore 15
start local 15 17: iload 3
iload 15
isub
istore 16
start local 16 18: iload 13
iconst_1
iload 15
iconst_1
isub
ishl
ixor
istore 17
start local 17 19: iconst_1
iload 3
iconst_1
isub
ishl
iconst_1
isub
istore 18
start local 18 20: iload 17
iload 16
ishl
iconst_1
iadd
istore 19
start local 19 21: aload 14
iload 18
iconst_1
iushr
aaload
aload 14
iload 19
iconst_1
iushr
aaload
invokevirtual org.bouncycastle.math.ec.ECPoint.add:(Lorg/bouncycastle/math/ec/ECPoint;)Lorg/bouncycastle/math/ec/ECPoint;
astore 8
22: iload 12
iload 16
isub
istore 12
end local 19 end local 18 end local 17 end local 16 end local 15 23: goto 25
24: StackMap locals: org.bouncycastle.math.ec.ECPoint[]
StackMap stack:
aload 14
iload 13
iconst_1
iushr
aaload
astore 8
25: StackMap locals:
StackMap stack:
aload 8
iload 12
invokevirtual org.bouncycastle.math.ec.ECPoint.timesPow2:(I)Lorg/bouncycastle/math/ec/ECPoint;
astore 8
end local 14 end local 13 end local 12 end local 11 end local 10 26: goto 37
27: StackMap locals: org.bouncycastle.math.ec.WNafL2RMultiplier org.bouncycastle.math.ec.ECPoint java.math.BigInteger int org.bouncycastle.math.ec.WNafPreCompInfo org.bouncycastle.math.ec.ECPoint[] org.bouncycastle.math.ec.ECPoint[] int[] org.bouncycastle.math.ec.ECPoint int
StackMap stack:
aload 7
iinc 9 -1
iload 9
iaload
istore 10
start local 10 28: iload 10
bipush 16
ishr
istore 11
start local 11 29: iload 10
ldc 65535
iand
istore 12
start local 12 30: iload 11
invokestatic java.lang.Math.abs:(I)I
istore 13
start local 13 31: iload 11
ifge 32
aload 6
goto 33
StackMap locals: org.bouncycastle.math.ec.WNafL2RMultiplier org.bouncycastle.math.ec.ECPoint java.math.BigInteger int org.bouncycastle.math.ec.WNafPreCompInfo org.bouncycastle.math.ec.ECPoint[] org.bouncycastle.math.ec.ECPoint[] int[] org.bouncycastle.math.ec.ECPoint int int int int int
StackMap stack:
32: aload 5
StackMap locals:
StackMap stack: org.bouncycastle.math.ec.ECPoint[]
33: astore 14
start local 14 34: aload 14
iload 13
iconst_1
iushr
aaload
astore 15
start local 15 35: aload 8
aload 15
invokevirtual org.bouncycastle.math.ec.ECPoint.twicePlus:(Lorg/bouncycastle/math/ec/ECPoint;)Lorg/bouncycastle/math/ec/ECPoint;
astore 8
36: aload 8
iload 12
invokevirtual org.bouncycastle.math.ec.ECPoint.timesPow2:(I)Lorg/bouncycastle/math/ec/ECPoint;
astore 8
end local 15 end local 14 end local 13 end local 12 end local 11 end local 10 37: StackMap locals: org.bouncycastle.math.ec.WNafL2RMultiplier org.bouncycastle.math.ec.ECPoint java.math.BigInteger int org.bouncycastle.math.ec.WNafPreCompInfo org.bouncycastle.math.ec.ECPoint[] org.bouncycastle.math.ec.ECPoint[] int[] org.bouncycastle.math.ec.ECPoint int
StackMap stack:
iload 9
ifgt 27
38: aload 8
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 39 0 this Lorg/bouncycastle/math/ec/WNafL2RMultiplier;
0 39 1 p Lorg/bouncycastle/math/ec/ECPoint;
0 39 2 k Ljava/math/BigInteger;
1 39 3 width I
2 39 4 wnafPreCompInfo Lorg/bouncycastle/math/ec/WNafPreCompInfo;
3 39 5 preComp [Lorg/bouncycastle/math/ec/ECPoint;
4 39 6 preCompNeg [Lorg/bouncycastle/math/ec/ECPoint;
5 39 7 wnaf [I
6 39 8 R Lorg/bouncycastle/math/ec/ECPoint;
7 39 9 i I
9 26 10 wi I
10 26 11 digit I
11 26 12 zeroes I
12 26 13 n I
15 26 14 table [Lorg/bouncycastle/math/ec/ECPoint;
17 23 15 highest I
18 23 16 scale I
19 23 17 lowBits I
20 23 18 i1 I
21 23 19 i2 I
28 37 10 wi I
29 37 11 digit I
30 37 12 zeroes I
31 37 13 n I
34 37 14 table [Lorg/bouncycastle/math/ec/ECPoint;
35 37 15 r Lorg/bouncycastle/math/ec/ECPoint;
MethodParameters:
Name Flags
p
k
protected int getWindowSize(int);
descriptor: (I)I
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: iload 1
invokestatic org.bouncycastle.math.ec.WNafUtil.getWindowSize:(I)I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/math/ec/WNafL2RMultiplier;
0 1 1 bits I
MethodParameters:
Name Flags
bits
}
SourceFile: "WNafL2RMultiplier.java"