public class org.bouncycastle.math.ec.custom.sec.SecP160R1Field
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.bouncycastle.math.ec.custom.sec.SecP160R1Field
super_class: java.lang.Object
{
private static final long M;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 4294967295
static final int[] P;
descriptor: [I
flags: (0x0018) ACC_STATIC, ACC_FINAL
static final int[] PExt;
descriptor: [I
flags: (0x0018) ACC_STATIC, ACC_FINAL
private static final int[] PExtInv;
descriptor: [I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final int P4;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: -1
private static final int PExt9;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: -1
private static final int PInv;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: -2147483647
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=0, args_size=0
0: iconst_5
newarray 10
dup
iconst_0
ldc 2147483647
iastore
dup
iconst_1
iconst_m1
iastore
dup
iconst_2
iconst_m1
iastore
dup
iconst_3
iconst_m1
iastore
dup
iconst_4
iconst_m1
iastore
putstatic org.bouncycastle.math.ec.custom.sec.SecP160R1Field.P:[I
1: bipush 10
newarray 10
dup
iconst_0
iconst_1
iastore
dup
iconst_1
ldc 1073741825
iastore
dup
iconst_5
2: bipush -2
iastore
dup
bipush 6
bipush -2
iastore
dup
bipush 7
iconst_m1
iastore
dup
bipush 8
iconst_m1
iastore
dup
bipush 9
iconst_m1
iastore
3: putstatic org.bouncycastle.math.ec.custom.sec.SecP160R1Field.PExt:[I
4: bipush 7
newarray 10
dup
iconst_0
iconst_m1
iastore
dup
iconst_1
ldc -1073741826
iastore
dup
iconst_2
iconst_m1
iastore
dup
iconst_3
iconst_m1
iastore
dup
iconst_4
5: iconst_m1
iastore
dup
iconst_5
iconst_1
iastore
dup
bipush 6
iconst_1
iastore
6: putstatic org.bouncycastle.math.ec.custom.sec.SecP160R1Field.PExtInv:[I
7: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 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/custom/sec/SecP160R1Field;
public static void add(int[], int[], int[]);
descriptor: ([I[I[I)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
invokestatic org.bouncycastle.math.raw.Nat160.add:([I[I[I)I
istore 3
start local 3 1: iload 3
ifne 2
aload 2
iconst_4
iaload
iconst_m1
if_icmpne 3
aload 2
getstatic org.bouncycastle.math.ec.custom.sec.SecP160R1Field.P:[I
invokestatic org.bouncycastle.math.raw.Nat160.gte:([I[I)Z
ifeq 3
2: StackMap locals: int
StackMap stack:
iconst_5
ldc -2147483647
aload 2
invokestatic org.bouncycastle.math.raw.Nat.addWordTo:(II[I)I
pop
3: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 x [I
0 4 1 y [I
0 4 2 z [I
1 4 3 c I
MethodParameters:
Name Flags
x
y
z
public static void addExt(int[], int[], int[]);
descriptor: ([I[I[I)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 2 0: bipush 10
aload 0
aload 1
aload 2
invokestatic org.bouncycastle.math.raw.Nat.add:(I[I[I[I)I
istore 3
start local 3 1: iload 3
ifne 2
aload 2
bipush 9
iaload
iconst_m1
if_icmpne 4
bipush 10
aload 2
getstatic org.bouncycastle.math.ec.custom.sec.SecP160R1Field.PExt:[I
invokestatic org.bouncycastle.math.raw.Nat.gte:(I[I[I)Z
ifeq 4
2: StackMap locals: int
StackMap stack:
getstatic org.bouncycastle.math.ec.custom.sec.SecP160R1Field.PExtInv:[I
arraylength
getstatic org.bouncycastle.math.ec.custom.sec.SecP160R1Field.PExtInv:[I
aload 2
invokestatic org.bouncycastle.math.raw.Nat.addTo:(I[I[I)I
ifeq 4
3: bipush 10
aload 2
getstatic org.bouncycastle.math.ec.custom.sec.SecP160R1Field.PExtInv:[I
arraylength
invokestatic org.bouncycastle.math.raw.Nat.incAt:(I[II)I
pop
4: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 xx [I
0 5 1 yy [I
0 5 2 zz [I
1 5 3 c I
MethodParameters:
Name Flags
xx
yy
zz
public static void addOne(int[], int[]);
descriptor: ([I[I)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: iconst_5
aload 0
aload 1
invokestatic org.bouncycastle.math.raw.Nat.inc:(I[I[I)I
istore 2
start local 2 1: iload 2
ifne 2
aload 1
iconst_4
iaload
iconst_m1
if_icmpne 3
aload 1
getstatic org.bouncycastle.math.ec.custom.sec.SecP160R1Field.P:[I
invokestatic org.bouncycastle.math.raw.Nat160.gte:([I[I)Z
ifeq 3
2: StackMap locals: int
StackMap stack:
iconst_5
ldc -2147483647
aload 1
invokestatic org.bouncycastle.math.raw.Nat.addWordTo:(II[I)I
pop
3: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 x [I
0 4 1 z [I
1 4 2 c I
MethodParameters:
Name Flags
x
z
public static int[] fromBigInteger(java.math.BigInteger);
descriptor: (Ljava/math/BigInteger;)[I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
invokestatic org.bouncycastle.math.raw.Nat160.fromBigInteger:(Ljava/math/BigInteger;)[I
astore 1
start local 1 1: aload 1
iconst_4
iaload
iconst_m1
if_icmpne 3
aload 1
getstatic org.bouncycastle.math.ec.custom.sec.SecP160R1Field.P:[I
invokestatic org.bouncycastle.math.raw.Nat160.gte:([I[I)Z
ifeq 3
2: getstatic org.bouncycastle.math.ec.custom.sec.SecP160R1Field.P:[I
aload 1
invokestatic org.bouncycastle.math.raw.Nat160.subFrom:([I[I)I
pop
3: StackMap locals: int[]
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 x Ljava/math/BigInteger;
1 4 1 z [I
MethodParameters:
Name Flags
x
public static void half(int[], int[]);
descriptor: ([I[I)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
iconst_0
iaload
iconst_1
iand
ifne 3
1: iconst_5
aload 0
iconst_0
aload 1
invokestatic org.bouncycastle.math.raw.Nat.shiftDownBit:(I[II[I)I
pop
2: goto 5
3: StackMap locals:
StackMap stack:
aload 0
getstatic org.bouncycastle.math.ec.custom.sec.SecP160R1Field.P:[I
aload 1
invokestatic org.bouncycastle.math.raw.Nat160.add:([I[I[I)I
istore 2
start local 2 4: iconst_5
aload 1
iload 2
invokestatic org.bouncycastle.math.raw.Nat.shiftDownBit:(I[II)I
pop
end local 2 5: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 x [I
0 6 1 z [I
4 5 2 c I
MethodParameters:
Name Flags
x
z
public static void multiply(int[], int[], int[]);
descriptor: ([I[I[I)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: invokestatic org.bouncycastle.math.raw.Nat160.createExt:()[I
astore 3
start local 3 1: aload 0
aload 1
aload 3
invokestatic org.bouncycastle.math.raw.Nat160.mul:([I[I[I)V
2: aload 3
aload 2
invokestatic org.bouncycastle.math.ec.custom.sec.SecP160R1Field.reduce:([I[I)V
3: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 x [I
0 4 1 y [I
0 4 2 z [I
1 4 3 tt [I
MethodParameters:
Name Flags
x
y
z
public static void multiplyAddToExt(int[], int[], int[]);
descriptor: ([I[I[I)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
invokestatic org.bouncycastle.math.raw.Nat160.mulAddTo:([I[I[I)I
istore 3
start local 3 1: iload 3
ifne 2
aload 2
bipush 9
iaload
iconst_m1
if_icmpne 4
bipush 10
aload 2
getstatic org.bouncycastle.math.ec.custom.sec.SecP160R1Field.PExt:[I
invokestatic org.bouncycastle.math.raw.Nat.gte:(I[I[I)Z
ifeq 4
2: StackMap locals: int
StackMap stack:
getstatic org.bouncycastle.math.ec.custom.sec.SecP160R1Field.PExtInv:[I
arraylength
getstatic org.bouncycastle.math.ec.custom.sec.SecP160R1Field.PExtInv:[I
aload 2
invokestatic org.bouncycastle.math.raw.Nat.addTo:(I[I[I)I
ifeq 4
3: bipush 10
aload 2
getstatic org.bouncycastle.math.ec.custom.sec.SecP160R1Field.PExtInv:[I
arraylength
invokestatic org.bouncycastle.math.raw.Nat.incAt:(I[II)I
pop
4: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 x [I
0 5 1 y [I
0 5 2 zz [I
1 5 3 c I
MethodParameters:
Name Flags
x
y
zz
public static void negate(int[], int[]);
descriptor: ([I[I)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokestatic org.bouncycastle.math.raw.Nat160.isZero:([I)Z
ifeq 3
1: aload 1
invokestatic org.bouncycastle.math.raw.Nat160.zero:([I)V
2: goto 4
3: StackMap locals:
StackMap stack:
getstatic org.bouncycastle.math.ec.custom.sec.SecP160R1Field.P:[I
aload 0
aload 1
invokestatic org.bouncycastle.math.raw.Nat160.sub:([I[I[I)I
pop
4: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 x [I
0 5 1 z [I
MethodParameters:
Name Flags
x
z
public static void reduce(int[], int[]);
descriptor: ([I[I)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=7, locals=14, args_size=2
start local 0 start local 1 0: aload 0
iconst_5
iaload
i2l
ldc 4294967295
land
lstore 2
start local 2 1: aload 0
bipush 6
iaload
i2l
ldc 4294967295
land
lstore 4
start local 4 2: aload 0
bipush 7
iaload
i2l
ldc 4294967295
land
lstore 6
start local 6 3: aload 0
bipush 8
iaload
i2l
ldc 4294967295
land
lstore 8
start local 8 4: aload 0
bipush 9
iaload
i2l
ldc 4294967295
land
lstore 10
start local 10 5: lconst_0
lstore 12
start local 12 6: lload 12
aload 0
iconst_0
iaload
i2l
ldc 4294967295
land
lload 2
ladd
lload 2
bipush 31
lshl
ladd
ladd
lstore 12
7: aload 1
iconst_0
lload 12
l2i
iastore
lload 12
bipush 32
lushr
lstore 12
8: lload 12
aload 0
iconst_1
iaload
i2l
ldc 4294967295
land
lload 4
ladd
lload 4
bipush 31
lshl
ladd
ladd
lstore 12
9: aload 1
iconst_1
lload 12
l2i
iastore
lload 12
bipush 32
lushr
lstore 12
10: lload 12
aload 0
iconst_2
iaload
i2l
ldc 4294967295
land
lload 6
ladd
lload 6
bipush 31
lshl
ladd
ladd
lstore 12
11: aload 1
iconst_2
lload 12
l2i
iastore
lload 12
bipush 32
lushr
lstore 12
12: lload 12
aload 0
iconst_3
iaload
i2l
ldc 4294967295
land
lload 8
ladd
lload 8
bipush 31
lshl
ladd
ladd
lstore 12
13: aload 1
iconst_3
lload 12
l2i
iastore
lload 12
bipush 32
lushr
lstore 12
14: lload 12
aload 0
iconst_4
iaload
i2l
ldc 4294967295
land
lload 10
ladd
lload 10
bipush 31
lshl
ladd
ladd
lstore 12
15: aload 1
iconst_4
lload 12
l2i
iastore
lload 12
bipush 32
lushr
lstore 12
16: lload 12
l2i
aload 1
invokestatic org.bouncycastle.math.ec.custom.sec.SecP160R1Field.reduce32:(I[I)V
17: return
end local 12 end local 10 end local 8 end local 6 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 xx [I
0 18 1 z [I
1 18 2 x5 J
2 18 4 x6 J
3 18 6 x7 J
4 18 8 x8 J
5 18 10 x9 J
6 18 12 c J
MethodParameters:
Name Flags
xx
z
public static void reduce32(int, int[]);
descriptor: (I[I)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: iload 0
ifeq 1
ldc -2147483647
iload 0
aload 1
iconst_0
invokestatic org.bouncycastle.math.raw.Nat160.mulWordsAdd:(II[II)I
ifne 2
1: StackMap locals:
StackMap stack:
aload 1
iconst_4
iaload
iconst_m1
if_icmpne 3
aload 1
getstatic org.bouncycastle.math.ec.custom.sec.SecP160R1Field.P:[I
invokestatic org.bouncycastle.math.raw.Nat160.gte:([I[I)Z
ifeq 3
2: StackMap locals:
StackMap stack:
iconst_5
ldc -2147483647
aload 1
invokestatic org.bouncycastle.math.raw.Nat.addWordTo:(II[I)I
pop
3: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 x I
0 4 1 z [I
MethodParameters:
Name Flags
x
z
public static void square(int[], int[]);
descriptor: ([I[I)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: invokestatic org.bouncycastle.math.raw.Nat160.createExt:()[I
astore 2
start local 2 1: aload 0
aload 2
invokestatic org.bouncycastle.math.raw.Nat160.square:([I[I)V
2: aload 2
aload 1
invokestatic org.bouncycastle.math.ec.custom.sec.SecP160R1Field.reduce:([I[I)V
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 x [I
0 4 1 z [I
1 4 2 tt [I
MethodParameters:
Name Flags
x
z
public static void squareN(int[], int, int[]);
descriptor: ([II[I)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=4, args_size=3
start local 0 start local 1 start local 2 0: invokestatic org.bouncycastle.math.raw.Nat160.createExt:()[I
astore 3
start local 3 1: aload 0
aload 3
invokestatic org.bouncycastle.math.raw.Nat160.square:([I[I)V
2: aload 3
aload 2
invokestatic org.bouncycastle.math.ec.custom.sec.SecP160R1Field.reduce:([I[I)V
3: goto 6
4: StackMap locals: int[]
StackMap stack:
aload 2
aload 3
invokestatic org.bouncycastle.math.raw.Nat160.square:([I[I)V
5: aload 3
aload 2
invokestatic org.bouncycastle.math.ec.custom.sec.SecP160R1Field.reduce:([I[I)V
6: StackMap locals:
StackMap stack:
iinc 1 -1
iload 1
ifgt 4
7: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 x [I
0 8 1 n I
0 8 2 z [I
1 8 3 tt [I
MethodParameters:
Name Flags
x
n
z
public static void subtract(int[], int[], int[]);
descriptor: ([I[I[I)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
invokestatic org.bouncycastle.math.raw.Nat160.sub:([I[I[I)I
istore 3
start local 3 1: iload 3
ifeq 3
2: iconst_5
ldc -2147483647
aload 2
invokestatic org.bouncycastle.math.raw.Nat.subWordFrom:(II[I)I
pop
3: StackMap locals: int
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 x [I
0 4 1 y [I
0 4 2 z [I
1 4 3 c I
MethodParameters:
Name Flags
x
y
z
public static void subtractExt(int[], int[], int[]);
descriptor: ([I[I[I)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 2 0: bipush 10
aload 0
aload 1
aload 2
invokestatic org.bouncycastle.math.raw.Nat.sub:(I[I[I[I)I
istore 3
start local 3 1: iload 3
ifeq 4
2: getstatic org.bouncycastle.math.ec.custom.sec.SecP160R1Field.PExtInv:[I
arraylength
getstatic org.bouncycastle.math.ec.custom.sec.SecP160R1Field.PExtInv:[I
aload 2
invokestatic org.bouncycastle.math.raw.Nat.subFrom:(I[I[I)I
ifeq 4
3: bipush 10
aload 2
getstatic org.bouncycastle.math.ec.custom.sec.SecP160R1Field.PExtInv:[I
arraylength
invokestatic org.bouncycastle.math.raw.Nat.decAt:(I[II)I
pop
4: StackMap locals: int
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 xx [I
0 5 1 yy [I
0 5 2 zz [I
1 5 3 c I
MethodParameters:
Name Flags
xx
yy
zz
public static void twice(int[], int[]);
descriptor: ([I[I)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: iconst_5
aload 0
iconst_0
aload 1
invokestatic org.bouncycastle.math.raw.Nat.shiftUpBit:(I[II[I)I
istore 2
start local 2 1: iload 2
ifne 2
aload 1
iconst_4
iaload
iconst_m1
if_icmpne 3
aload 1
getstatic org.bouncycastle.math.ec.custom.sec.SecP160R1Field.P:[I
invokestatic org.bouncycastle.math.raw.Nat160.gte:([I[I)Z
ifeq 3
2: StackMap locals: int
StackMap stack:
iconst_5
ldc -2147483647
aload 1
invokestatic org.bouncycastle.math.raw.Nat.addWordTo:(II[I)I
pop
3: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 x [I
0 4 1 z [I
1 4 2 c I
MethodParameters:
Name Flags
x
z
}
SourceFile: "SecP160R1Field.java"