SecT571Field.smali
.class public Lorg/spongycastle/math/ec/custom/sec/SecT571Field;
.super Ljava/lang/Object;
.source "SecT571Field.java"
# static fields
.field private static final M59:J = 0x7ffffffffffffffL
.field private static final RM:J = -0x1084210842108422L
.field private static final ROOT_Z:[J
# direct methods
.method static constructor <clinit>()V
.registers 1
.prologue
.line 15
const/16 v0, 0x9
new-array v0, v0, [J
fill-array-data v0, :array_a
sput-object v0, Lorg/spongycastle/math/ec/custom/sec/SecT571Field;->ROOT_Z:[J
return-void
:array_a
.array-data 8
0x2be1195f08cafb99L # 2.5016400602366306E-97
-0x6a0f73507b9a83ddL # -5.27848393260514E-203
-0x3507b9a83dcd41efL # -1.4531635499737842E53
0x657c232be1195f08L # 7.297283174828906E180
-0x7b9a83dcf73507cL
0x7c232be1195f08caL # 9.34156735235881E289
-0x41ee6a0f73507b9bL # -1.02362256409199E-9
0x5f08caf84657c232L # 6.340366030377565E149
0x784657c232be119L
.end array-data
.end method
.method public constructor <init>()V
.registers 1
.prologue
.line 9
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method private static add([JI[JI[JI)V
.registers 12
.prologue
.line 28
const/4 v0, 0x0
:goto_1
const/16 v1, 0x9
if-ge v0, v1, :cond_15
.line 30
add-int v1, p5, v0
add-int v2, p1, v0
aget-wide v2, p0, v2
add-int v4, p3, v0
aget-wide v4, p2, v4
xor-long/2addr v2, v4
aput-wide v2, p4, v1
.line 28
add-int/lit8 v0, v0, 0x1
goto :goto_1
.line 32
:cond_15
return-void
.end method
.method public static add([J[J[J)V
.registers 9
.prologue
.line 20
const/4 v0, 0x0
:goto_1
const/16 v1, 0x9
if-ge v0, v1, :cond_f
.line 22
aget-wide v2, p0, v0
aget-wide v4, p1, v0
xor-long/2addr v2, v4
aput-wide v2, p2, v0
.line 20
add-int/lit8 v0, v0, 0x1
goto :goto_1
.line 24
:cond_f
return-void
.end method
.method private static addBothTo([JI[JI[JI)V
.registers 14
.prologue
.line 36
const/4 v0, 0x0
:goto_1
const/16 v1, 0x9
if-ge v0, v1, :cond_18
.line 38
add-int v1, p5, v0
aget-wide v2, p4, v1
add-int v4, p1, v0
aget-wide v4, p0, v4
add-int v6, p3, v0
aget-wide v6, p2, v6
xor-long/2addr v4, v6
xor-long/2addr v2, v4
aput-wide v2, p4, v1
.line 36
add-int/lit8 v0, v0, 0x1
goto :goto_1
.line 40
:cond_18
return-void
.end method
.method public static addExt([J[J[J)V
.registers 9
.prologue
.line 44
const/4 v0, 0x0
:goto_1
const/16 v1, 0x12
if-ge v0, v1, :cond_f
.line 46
aget-wide v2, p0, v0
aget-wide v4, p1, v0
xor-long/2addr v2, v4
aput-wide v2, p2, v0
.line 44
add-int/lit8 v0, v0, 0x1
goto :goto_1
.line 48
:cond_f
return-void
.end method
.method public static addOne([J[J)V
.registers 7
.prologue
const/4 v4, 0x0
.line 52
aget-wide v0, p0, v4
const-wide/16 v2, 0x1
xor-long/2addr v0, v2
aput-wide v0, p1, v4
.line 53
const/4 v0, 0x1
:goto_9
const/16 v1, 0x9
if-ge v0, v1, :cond_14
.line 55
aget-wide v2, p0, v0
aput-wide v2, p1, v0
.line 53
add-int/lit8 v0, v0, 0x1
goto :goto_9
.line 57
:cond_14
return-void
.end method
.method public static fromBigInteger(Ljava/math/BigInteger;)[J
.registers 3
.prologue
.line 61
invoke-static {p0}, Lorg/spongycastle/math/raw/Nat576;->fromBigInteger64(Ljava/math/BigInteger;)[J
move-result-object v0
.line 62
const/4 v1, 0x0
invoke-static {v0, v1}, Lorg/spongycastle/math/ec/custom/sec/SecT571Field;->reduce5([JI)V
.line 63
return-object v0
.end method
.method protected static implMultiply([J[J[J)V
.registers 17
.prologue
.line 232
const/16 v0, 0x90
new-array v2, v0, [J
.line 233
const/4 v0, 0x0
const/16 v1, 0x9
const/16 v3, 0x9
invoke-static {p1, v0, v2, v1, v3}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 235
const/4 v7, 0x0
.line 236
const/4 v0, 0x7
move v8, v0
:goto_f
if-lez v8, :cond_2e
.line 238
add-int/lit8 v7, v7, 0x12
.line 239
const/16 v1, 0x9
ushr-int/lit8 v3, v7, 0x1
const-wide/16 v4, 0x0
move-object v6, v2
invoke-static/range {v1 .. v7}, Lorg/spongycastle/math/raw/Nat;->shiftUpBit64(I[JIJ[JI)J
.line 240
invoke-static {v2, v7}, Lorg/spongycastle/math/ec/custom/sec/SecT571Field;->reduce5([JI)V
.line 241
const/16 v1, 0x9
add-int/lit8 v5, v7, 0x9
move-object v0, v2
move v3, v7
move-object v4, v2
invoke-static/range {v0 .. v5}, Lorg/spongycastle/math/ec/custom/sec/SecT571Field;->add([JI[JI[JI)V
.line 236
add-int/lit8 v0, v8, -0x1
move v8, v0
goto :goto_f
.line 247
:cond_2e
const/16 v0, 0x90
new-array v7, v0, [J
.line 248
const/16 v1, 0x90
const/4 v3, 0x0
const/4 v4, 0x4
const-wide/16 v5, 0x0
const/4 v8, 0x0
invoke-static/range {v1 .. v8}, Lorg/spongycastle/math/raw/Nat;->shiftUpBits64(I[JIIJ[JI)J
.line 256
const/16 v0, 0x38
move v1, v0
:goto_3f
if-ltz v1, :cond_6f
.line 258
const/4 v0, 0x1
:goto_42
const/16 v3, 0x9
if-ge v0, v3, :cond_5f
.line 260
aget-wide v4, p0, v0
ushr-long/2addr v4, v1
long-to-int v3, v4
.line 261
and-int/lit8 v4, v3, 0xf
.line 262
ushr-int/lit8 v3, v3, 0x4
and-int/lit8 v3, v3, 0xf
.line 263
mul-int/lit8 v6, v4, 0x9
mul-int/lit8 v8, v3, 0x9
add-int/lit8 v10, v0, -0x1
move-object v5, v2
move-object/from16 v9, p2
invoke-static/range {v5 .. v10}, Lorg/spongycastle/math/ec/custom/sec/SecT571Field;->addBothTo([JI[JI[JI)V
.line 258
add-int/lit8 v0, v0, 0x2
goto :goto_42
.line 265
:cond_5f
const/16 v8, 0x10
const/4 v10, 0x0
const/16 v11, 0x8
const-wide/16 v12, 0x0
move-object/from16 v9, p2
invoke-static/range {v8 .. v13}, Lorg/spongycastle/math/raw/Nat;->shiftUpBits64(I[JIIJ)J
.line 256
add-int/lit8 v0, v1, -0x8
move v1, v0
goto :goto_3f
.line 268
:cond_6f
const/16 v0, 0x38
:goto_71
if-ltz v0, :cond_a0
.line 270
const/4 v10, 0x0
:goto_74
const/16 v1, 0x9
if-ge v10, v1, :cond_8f
.line 272
aget-wide v4, p0, v10
ushr-long/2addr v4, v0
long-to-int v1, v4
.line 273
and-int/lit8 v3, v1, 0xf
.line 274
ushr-int/lit8 v1, v1, 0x4
and-int/lit8 v1, v1, 0xf
.line 275
mul-int/lit8 v6, v3, 0x9
mul-int/lit8 v8, v1, 0x9
move-object v5, v2
move-object/from16 v9, p2
invoke-static/range {v5 .. v10}, Lorg/spongycastle/math/ec/custom/sec/SecT571Field;->addBothTo([JI[JI[JI)V
.line 270
add-int/lit8 v10, v10, 0x2
goto :goto_74
.line 277
:cond_8f
if-lez v0, :cond_9d
.line 279
const/16 v8, 0x12
const/4 v10, 0x0
const/16 v11, 0x8
const-wide/16 v12, 0x0
move-object/from16 v9, p2
invoke-static/range {v8 .. v13}, Lorg/spongycastle/math/raw/Nat;->shiftUpBits64(I[JIIJ)J
.line 268
:cond_9d
add-int/lit8 v0, v0, -0x8
goto :goto_71
.line 282
:cond_a0
return-void
.end method
.method protected static implMulwAcc([JJ[JI)V
.registers 20
.prologue
.line 286
const/16 v0, 0x20
new-array v8, v0, [J
.line 288
const/4 v0, 0x1
aput-wide p1, v8, v0
.line 289
const/4 v0, 0x2
:goto_8
const/16 v1, 0x20
if-ge v0, v1, :cond_1f
.line 291
ushr-int/lit8 v1, v0, 0x1
aget-wide v2, v8, v1
const/4 v1, 0x1
shl-long/2addr v2, v1
aput-wide v2, v8, v0
.line 292
add-int/lit8 v1, v0, 0x1
aget-wide v2, v8, v0
xor-long v2, v2, p1
aput-wide v2, v8, v1
.line 289
add-int/lit8 v0, v0, 0x2
goto :goto_8
.line 295
:cond_1f
const-wide/16 v2, 0x0
.line 296
const/4 v0, 0x0
move v1, v0
:goto_23
const/16 v0, 0x9
if-ge v1, v0, :cond_65
.line 298
aget-wide v6, p0, v1
.line 300
long-to-int v0, v6
.line 302
and-int/lit8 v0, v0, 0x1f
aget-wide v4, v8, v0
xor-long/2addr v4, v2
.line 304
const-wide/16 v2, 0x0
.line 305
const/16 v0, 0x3c
.line 308
:cond_33
ushr-long v10, v6, v0
long-to-int v9, v10
.line 309
and-int/lit8 v9, v9, 0x1f
aget-wide v10, v8, v9
.line 310
shl-long v12, v10, v0
xor-long/2addr v4, v12
.line 311
neg-int v9, v0
ushr-long/2addr v10, v9
xor-long/2addr v2, v10
.line 313
add-int/lit8 v0, v0, -0x5
if-gtz v0, :cond_33
.line 315
const/4 v0, 0x0
:goto_45
const/4 v9, 0x4
if-ge v0, v9, :cond_5a
.line 317
const-wide v10, -0x1084210842108422L # -1.0564009196602605E229
and-long/2addr v6, v10
const/4 v9, 0x1
ushr-long/2addr v6, v9
.line 318
shl-long v10, p1, v0
const/16 v9, 0x3f
shr-long/2addr v10, v9
and-long/2addr v10, v6
xor-long/2addr v2, v10
.line 315
add-int/lit8 v0, v0, 0x1
goto :goto_45
.line 321
:cond_5a
add-int v0, p4, v1
aget-wide v6, p3, v0
xor-long/2addr v4, v6
aput-wide v4, p3, v0
.line 296
add-int/lit8 v0, v1, 0x1
move v1, v0
goto :goto_23
.line 325
:cond_65
add-int/lit8 v0, p4, 0x9
aget-wide v4, p3, v0
xor-long/2addr v2, v4
aput-wide v2, p3, v0
.line 326
return-void
.end method
.method protected static implSquare([J[J)V
.registers 6
.prologue
.line 330
const/4 v0, 0x0
:goto_1
const/16 v1, 0x9
if-ge v0, v1, :cond_f
.line 332
aget-wide v2, p0, v0
shl-int/lit8 v1, v0, 0x1
invoke-static {v2, v3, p1, v1}, Lorg/spongycastle/math/raw/Interleave;->expand64To128(J[JI)V
.line 330
add-int/lit8 v0, v0, 0x1
goto :goto_1
.line 334
:cond_f
return-void
.end method
.method public static invert([J[J)V
.registers 10
.prologue
const/16 v7, 0xb4
const/16 v6, 0x3c
const/16 v5, 0x1e
const/4 v4, 0x5
.line 68
invoke-static {p0}, Lorg/spongycastle/math/raw/Nat576;->isZero64([J)Z
move-result v0
if-eqz v0, :cond_13
.line 70
new-instance v0, Ljava/lang/IllegalStateException;
invoke-direct {v0}, Ljava/lang/IllegalStateException;-><init>()V
throw v0
.line 75
:cond_13
invoke-static {}, Lorg/spongycastle/math/raw/Nat576;->create64()[J
move-result-object v0
.line 76
invoke-static {}, Lorg/spongycastle/math/raw/Nat576;->create64()[J
move-result-object v1
.line 77
invoke-static {}, Lorg/spongycastle/math/raw/Nat576;->create64()[J
move-result-object v2
.line 79
invoke-static {p0, v2}, Lorg/spongycastle/math/ec/custom/sec/SecT571Field;->square([J[J)V
.line 82
invoke-static {v2, v0}, Lorg/spongycastle/math/ec/custom/sec/SecT571Field;->square([J[J)V
.line 83
invoke-static {v0, v1}, Lorg/spongycastle/math/ec/custom/sec/SecT571Field;->square([J[J)V
.line 84
invoke-static {v0, v1, v0}, Lorg/spongycastle/math/ec/custom/sec/SecT571Field;->multiply([J[J[J)V
.line 85
const/4 v3, 0x2
invoke-static {v0, v3, v1}, Lorg/spongycastle/math/ec/custom/sec/SecT571Field;->squareN([JI[J)V
.line 86
invoke-static {v0, v1, v0}, Lorg/spongycastle/math/ec/custom/sec/SecT571Field;->multiply([J[J[J)V
.line 87
invoke-static {v0, v2, v0}, Lorg/spongycastle/math/ec/custom/sec/SecT571Field;->multiply([J[J[J)V
.line 90
invoke-static {v0, v4, v1}, Lorg/spongycastle/math/ec/custom/sec/SecT571Field;->squareN([JI[J)V
.line 91
invoke-static {v0, v1, v0}, Lorg/spongycastle/math/ec/custom/sec/SecT571Field;->multiply([J[J[J)V
.line 92
invoke-static {v1, v4, v1}, Lorg/spongycastle/math/ec/custom/sec/SecT571Field;->squareN([JI[J)V
.line 93
invoke-static {v0, v1, v0}, Lorg/spongycastle/math/ec/custom/sec/SecT571Field;->multiply([J[J[J)V
.line 96
const/16 v3, 0xf
invoke-static {v0, v3, v1}, Lorg/spongycastle/math/ec/custom/sec/SecT571Field;->squareN([JI[J)V
.line 97
invoke-static {v0, v1, v2}, Lorg/spongycastle/math/ec/custom/sec/SecT571Field;->multiply([J[J[J)V
.line 100
invoke-static {v2, v5, v0}, Lorg/spongycastle/math/ec/custom/sec/SecT571Field;->squareN([JI[J)V
.line 101
invoke-static {v0, v5, v1}, Lorg/spongycastle/math/ec/custom/sec/SecT571Field;->squareN([JI[J)V
.line 102
invoke-static {v0, v1, v0}, Lorg/spongycastle/math/ec/custom/sec/SecT571Field;->multiply([J[J[J)V
.line 105
invoke-static {v0, v6, v1}, Lorg/spongycastle/math/ec/custom/sec/SecT571Field;->squareN([JI[J)V
.line 106
invoke-static {v0, v1, v0}, Lorg/spongycastle/math/ec/custom/sec/SecT571Field;->multiply([J[J[J)V
.line 107
invoke-static {v1, v6, v1}, Lorg/spongycastle/math/ec/custom/sec/SecT571Field;->squareN([JI[J)V
.line 108
invoke-static {v0, v1, v0}, Lorg/spongycastle/math/ec/custom/sec/SecT571Field;->multiply([J[J[J)V
.line 111
invoke-static {v0, v7, v1}, Lorg/spongycastle/math/ec/custom/sec/SecT571Field;->squareN([JI[J)V
.line 112
invoke-static {v0, v1, v0}, Lorg/spongycastle/math/ec/custom/sec/SecT571Field;->multiply([J[J[J)V
.line 113
invoke-static {v1, v7, v1}, Lorg/spongycastle/math/ec/custom/sec/SecT571Field;->squareN([JI[J)V
.line 114
invoke-static {v0, v1, v0}, Lorg/spongycastle/math/ec/custom/sec/SecT571Field;->multiply([J[J[J)V
.line 116
invoke-static {v0, v2, p1}, Lorg/spongycastle/math/ec/custom/sec/SecT571Field;->multiply([J[J[J)V
.line 117
return-void
.end method
.method public static multiply([J[J[J)V
.registers 4
.prologue
.line 121
invoke-static {}, Lorg/spongycastle/math/raw/Nat576;->createExt64()[J
move-result-object v0
.line 122
invoke-static {p0, p1, v0}, Lorg/spongycastle/math/ec/custom/sec/SecT571Field;->implMultiply([J[J[J)V
.line 123
invoke-static {v0, p2}, Lorg/spongycastle/math/ec/custom/sec/SecT571Field;->reduce([J[J)V
.line 124
return-void
.end method
.method public static multiplyAddToExt([J[J[J)V
.registers 4
.prologue
.line 128
invoke-static {}, Lorg/spongycastle/math/raw/Nat576;->createExt64()[J
move-result-object v0
.line 129
invoke-static {p0, p1, v0}, Lorg/spongycastle/math/ec/custom/sec/SecT571Field;->implMultiply([J[J[J)V
.line 130
invoke-static {p2, v0, p2}, Lorg/spongycastle/math/ec/custom/sec/SecT571Field;->addExt([J[J[J)V
.line 131
return-void
.end method
.method public static reduce([J[J)V
.registers 12
.prologue
.line 135
const/16 v0, 0x9
aget-wide v0, p0, v0
.line 136
const/16 v2, 0x11
aget-wide v2, p0, v2
.line 138
const/16 v4, 0x3b
ushr-long v4, v2, v4
xor-long/2addr v0, v4
const/16 v4, 0x39
ushr-long v4, v2, v4
xor-long/2addr v0, v4
const/16 v4, 0x36
ushr-long v4, v2, v4
xor-long/2addr v0, v4
const/16 v4, 0x31
ushr-long v4, v2, v4
xor-long/2addr v4, v0
.line 139
const/16 v0, 0x8
aget-wide v0, p0, v0
const/4 v6, 0x5
shl-long v6, v2, v6
xor-long/2addr v0, v6
const/4 v6, 0x7
shl-long v6, v2, v6
xor-long/2addr v0, v6
const/16 v6, 0xa
shl-long v6, v2, v6
xor-long/2addr v0, v6
const/16 v6, 0xf
shl-long/2addr v2, v6
xor-long/2addr v2, v0
.line 141
const/16 v0, 0x10
:goto_33
const/16 v1, 0xa
if-lt v0, v1, :cond_69
.line 143
aget-wide v6, p0, v0
.line 144
add-int/lit8 v1, v0, -0x8
const/16 v8, 0x3b
ushr-long v8, v6, v8
xor-long/2addr v2, v8
const/16 v8, 0x39
ushr-long v8, v6, v8
xor-long/2addr v2, v8
const/16 v8, 0x36
ushr-long v8, v6, v8
xor-long/2addr v2, v8
const/16 v8, 0x31
ushr-long v8, v6, v8
xor-long/2addr v2, v8
aput-wide v2, p1, v1
.line 145
add-int/lit8 v1, v0, -0x9
aget-wide v2, p0, v1
const/4 v1, 0x5
shl-long v8, v6, v1
xor-long/2addr v2, v8
const/4 v1, 0x7
shl-long v8, v6, v1
xor-long/2addr v2, v8
const/16 v1, 0xa
shl-long v8, v6, v1
xor-long/2addr v2, v8
const/16 v1, 0xf
shl-long/2addr v6, v1
xor-long/2addr v2, v6
.line 141
add-int/lit8 v0, v0, -0x1
goto :goto_33
.line 149
:cond_69
const/4 v0, 0x1
const/16 v1, 0x3b
ushr-long v6, v4, v1
xor-long/2addr v2, v6
const/16 v1, 0x39
ushr-long v6, v4, v1
xor-long/2addr v2, v6
const/16 v1, 0x36
ushr-long v6, v4, v1
xor-long/2addr v2, v6
const/16 v1, 0x31
ushr-long v6, v4, v1
xor-long/2addr v2, v6
aput-wide v2, p1, v0
.line 150
const/4 v0, 0x0
aget-wide v0, p0, v0
const/4 v2, 0x5
shl-long v2, v4, v2
xor-long/2addr v0, v2
const/4 v2, 0x7
shl-long v2, v4, v2
xor-long/2addr v0, v2
const/16 v2, 0xa
shl-long v2, v4, v2
xor-long/2addr v0, v2
const/16 v2, 0xf
shl-long v2, v4, v2
xor-long/2addr v0, v2
.line 152
const/16 v2, 0x8
aget-wide v2, p1, v2
.line 153
const/16 v4, 0x3b
ushr-long v4, v2, v4
.line 154
const/4 v6, 0x0
xor-long/2addr v0, v4
const/4 v7, 0x2
shl-long v8, v4, v7
xor-long/2addr v0, v8
const/4 v7, 0x5
shl-long v8, v4, v7
xor-long/2addr v0, v8
const/16 v7, 0xa
shl-long/2addr v4, v7
xor-long/2addr v0, v4
aput-wide v0, p1, v6
.line 155
const/16 v0, 0x8
const-wide v4, 0x7ffffffffffffffL
and-long/2addr v2, v4
aput-wide v2, p1, v0
.line 156
return-void
.end method
.method public static reduce5([JI)V
.registers 12
.prologue
.line 160
add-int/lit8 v0, p1, 0x8
aget-wide v0, p0, v0
const/16 v2, 0x3b
ushr-long v2, v0, v2
.line 161
aget-wide v4, p0, p1
const/4 v6, 0x2
shl-long v6, v2, v6
xor-long/2addr v6, v2
const/4 v8, 0x5
shl-long v8, v2, v8
xor-long/2addr v6, v8
const/16 v8, 0xa
shl-long/2addr v2, v8
xor-long/2addr v2, v6
xor-long/2addr v2, v4
aput-wide v2, p0, p1
.line 162
add-int/lit8 v2, p1, 0x8
const-wide v4, 0x7ffffffffffffffL
and-long/2addr v0, v4
aput-wide v0, p0, v2
.line 163
return-void
.end method
.method public static sqrt([J[J)V
.registers 14
.prologue
.line 167
invoke-static {}, Lorg/spongycastle/math/raw/Nat576;->create64()[J
move-result-object v2
invoke-static {}, Lorg/spongycastle/math/raw/Nat576;->create64()[J
move-result-object v3
.line 169
const/4 v1, 0x0
.line 170
const/4 v0, 0x0
:goto_a
const/4 v4, 0x4
if-ge v0, v4, :cond_39
.line 172
add-int/lit8 v4, v1, 0x1
aget-wide v6, p0, v1
invoke-static {v6, v7}, Lorg/spongycastle/math/raw/Interleave;->unshuffle(J)J
move-result-wide v6
.line 173
add-int/lit8 v1, v4, 0x1
aget-wide v4, p0, v4
invoke-static {v4, v5}, Lorg/spongycastle/math/raw/Interleave;->unshuffle(J)J
move-result-wide v4
.line 174
const-wide v8, 0xffffffffL
and-long/2addr v8, v6
const/16 v10, 0x20
shl-long v10, v4, v10
or-long/2addr v8, v10
aput-wide v8, v2, v0
.line 175
const/16 v8, 0x20
ushr-long/2addr v6, v8
const-wide v8, -0x100000000L
and-long/2addr v4, v8
or-long/2addr v4, v6
aput-wide v4, v3, v0
.line 170
add-int/lit8 v0, v0, 0x1
goto :goto_a
.line 178
:cond_39
const/16 v0, 0x8
aget-wide v0, p0, v0
invoke-static {v0, v1}, Lorg/spongycastle/math/raw/Interleave;->unshuffle(J)J
move-result-wide v0
.line 179
const/4 v4, 0x4
const-wide v6, 0xffffffffL
and-long/2addr v6, v0
aput-wide v6, v2, v4
.line 180
const/4 v4, 0x4
const/16 v5, 0x20
ushr-long/2addr v0, v5
aput-wide v0, v3, v4
.line 183
sget-object v0, Lorg/spongycastle/math/ec/custom/sec/SecT571Field;->ROOT_Z:[J
invoke-static {v3, v0, p1}, Lorg/spongycastle/math/ec/custom/sec/SecT571Field;->multiply([J[J[J)V
.line 184
invoke-static {p1, v2, p1}, Lorg/spongycastle/math/ec/custom/sec/SecT571Field;->add([J[J[J)V
.line 185
return-void
.end method
.method public static square([J[J)V
.registers 3
.prologue
.line 189
invoke-static {}, Lorg/spongycastle/math/raw/Nat576;->createExt64()[J
move-result-object v0
.line 190
invoke-static {p0, v0}, Lorg/spongycastle/math/ec/custom/sec/SecT571Field;->implSquare([J[J)V
.line 191
invoke-static {v0, p1}, Lorg/spongycastle/math/ec/custom/sec/SecT571Field;->reduce([J[J)V
.line 192
return-void
.end method
.method public static squareAddToExt([J[J)V
.registers 3
.prologue
.line 196
invoke-static {}, Lorg/spongycastle/math/raw/Nat576;->createExt64()[J
move-result-object v0
.line 197
invoke-static {p0, v0}, Lorg/spongycastle/math/ec/custom/sec/SecT571Field;->implSquare([J[J)V
.line 198
invoke-static {p1, v0, p1}, Lorg/spongycastle/math/ec/custom/sec/SecT571Field;->addExt([J[J[J)V
.line 199
return-void
.end method
.method public static squareN([JI[J)V
.registers 4
.prologue
.line 205
invoke-static {}, Lorg/spongycastle/math/raw/Nat576;->createExt64()[J
move-result-object v0
.line 206
invoke-static {p0, v0}, Lorg/spongycastle/math/ec/custom/sec/SecT571Field;->implSquare([J[J)V
.line 207
invoke-static {v0, p2}, Lorg/spongycastle/math/ec/custom/sec/SecT571Field;->reduce([J[J)V
.line 209
:goto_a
add-int/lit8 p1, p1, -0x1
if-lez p1, :cond_15
.line 211
invoke-static {p2, v0}, Lorg/spongycastle/math/ec/custom/sec/SecT571Field;->implSquare([J[J)V
.line 212
invoke-static {v0, p2}, Lorg/spongycastle/math/ec/custom/sec/SecT571Field;->reduce([J[J)V
goto :goto_a
.line 214
:cond_15
return-void
.end method
.method public static trace([J)I
.registers 7
.prologue
const/16 v5, 0x8
.line 219
const/4 v0, 0x0
aget-wide v0, p0, v0
aget-wide v2, p0, v5
const/16 v4, 0x31
ushr-long/2addr v2, v4
xor-long/2addr v0, v2
aget-wide v2, p0, v5
const/16 v4, 0x39
ushr-long/2addr v2, v4
xor-long/2addr v0, v2
long-to-int v0, v0
and-int/lit8 v0, v0, 0x1
return v0
.end method