Nat128.smali
.class public abstract Lorg/spongycastle/math/raw/Nat128;
.super Ljava/lang/Object;
.source "Nat128.java"
# static fields
.field private static final M:J = 0xffffffffL
# direct methods
.method public constructor <init>()V
.registers 1
.prologue
.line 7
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public static add([I[I[I)I
.registers 15
.prologue
const/4 v11, 0x2
const/4 v10, 0x1
const/4 v9, 0x0
const/16 v8, 0x20
const-wide v6, 0xffffffffL
.line 14
const-wide/16 v0, 0x0
aget v2, p0, v9
int-to-long v2, v2
and-long/2addr v2, v6
aget v4, p1, v9
int-to-long v4, v4
and-long/2addr v4, v6
add-long/2addr v2, v4
add-long/2addr v0, v2
.line 15
long-to-int v2, v0
aput v2, p2, v9
.line 16
ushr-long/2addr v0, v8
.line 17
aget v2, p0, v10
int-to-long v2, v2
and-long/2addr v2, v6
aget v4, p1, v10
int-to-long v4, v4
and-long/2addr v4, v6
add-long/2addr v2, v4
add-long/2addr v0, v2
.line 18
long-to-int v2, v0
aput v2, p2, v10
.line 19
ushr-long/2addr v0, v8
.line 20
aget v2, p0, v11
int-to-long v2, v2
and-long/2addr v2, v6
aget v4, p1, v11
int-to-long v4, v4
and-long/2addr v4, v6
add-long/2addr v2, v4
add-long/2addr v0, v2
.line 21
long-to-int v2, v0
aput v2, p2, v11
.line 22
ushr-long/2addr v0, v8
.line 23
const/4 v2, 0x3
aget v2, p0, v2
int-to-long v2, v2
and-long/2addr v2, v6
const/4 v4, 0x3
aget v4, p1, v4
int-to-long v4, v4
and-long/2addr v4, v6
add-long/2addr v2, v4
add-long/2addr v0, v2
.line 24
const/4 v2, 0x3
long-to-int v3, v0
aput v3, p2, v2
.line 25
ushr-long/2addr v0, v8
.line 26
long-to-int v0, v0
return v0
.end method
.method public static addBothTo([I[I[I)I
.registers 15
.prologue
const/4 v11, 0x3
const/4 v10, 0x2
const/4 v9, 0x1
const/4 v8, 0x0
const-wide v6, 0xffffffffL
.line 32
const-wide/16 v0, 0x0
aget v2, p0, v8
int-to-long v2, v2
and-long/2addr v2, v6
aget v4, p1, v8
int-to-long v4, v4
and-long/2addr v4, v6
add-long/2addr v2, v4
aget v4, p2, v8
int-to-long v4, v4
and-long/2addr v4, v6
add-long/2addr v2, v4
add-long/2addr v0, v2
.line 33
long-to-int v2, v0
aput v2, p2, v8
.line 34
const/16 v2, 0x20
ushr-long/2addr v0, v2
.line 35
aget v2, p0, v9
int-to-long v2, v2
and-long/2addr v2, v6
aget v4, p1, v9
int-to-long v4, v4
and-long/2addr v4, v6
add-long/2addr v2, v4
aget v4, p2, v9
int-to-long v4, v4
and-long/2addr v4, v6
add-long/2addr v2, v4
add-long/2addr v0, v2
.line 36
long-to-int v2, v0
aput v2, p2, v9
.line 37
const/16 v2, 0x20
ushr-long/2addr v0, v2
.line 38
aget v2, p0, v10
int-to-long v2, v2
and-long/2addr v2, v6
aget v4, p1, v10
int-to-long v4, v4
and-long/2addr v4, v6
add-long/2addr v2, v4
aget v4, p2, v10
int-to-long v4, v4
and-long/2addr v4, v6
add-long/2addr v2, v4
add-long/2addr v0, v2
.line 39
long-to-int v2, v0
aput v2, p2, v10
.line 40
const/16 v2, 0x20
ushr-long/2addr v0, v2
.line 41
aget v2, p0, v11
int-to-long v2, v2
and-long/2addr v2, v6
aget v4, p1, v11
int-to-long v4, v4
and-long/2addr v4, v6
add-long/2addr v2, v4
aget v4, p2, v11
int-to-long v4, v4
and-long/2addr v4, v6
add-long/2addr v2, v4
add-long/2addr v0, v2
.line 42
long-to-int v2, v0
aput v2, p2, v11
.line 43
const/16 v2, 0x20
ushr-long/2addr v0, v2
.line 44
long-to-int v0, v0
return v0
.end method
.method public static addTo([II[III)I
.registers 14
.prologue
const/16 v8, 0x20
const-wide v6, 0xffffffffL
.line 67
int-to-long v0, p4
and-long/2addr v0, v6
.line 68
aget v2, p0, p1
int-to-long v2, v2
and-long/2addr v2, v6
aget v4, p2, p3
int-to-long v4, v4
and-long/2addr v4, v6
add-long/2addr v2, v4
add-long/2addr v0, v2
.line 69
long-to-int v2, v0
aput v2, p2, p3
.line 70
ushr-long/2addr v0, v8
.line 71
add-int/lit8 v2, p1, 0x1
aget v2, p0, v2
int-to-long v2, v2
and-long/2addr v2, v6
add-int/lit8 v4, p3, 0x1
aget v4, p2, v4
int-to-long v4, v4
and-long/2addr v4, v6
add-long/2addr v2, v4
add-long/2addr v0, v2
.line 72
add-int/lit8 v2, p3, 0x1
long-to-int v3, v0
aput v3, p2, v2
.line 73
ushr-long/2addr v0, v8
.line 74
add-int/lit8 v2, p1, 0x2
aget v2, p0, v2
int-to-long v2, v2
and-long/2addr v2, v6
add-int/lit8 v4, p3, 0x2
aget v4, p2, v4
int-to-long v4, v4
and-long/2addr v4, v6
add-long/2addr v2, v4
add-long/2addr v0, v2
.line 75
add-int/lit8 v2, p3, 0x2
long-to-int v3, v0
aput v3, p2, v2
.line 76
ushr-long/2addr v0, v8
.line 77
add-int/lit8 v2, p1, 0x3
aget v2, p0, v2
int-to-long v2, v2
and-long/2addr v2, v6
add-int/lit8 v4, p3, 0x3
aget v4, p2, v4
int-to-long v4, v4
and-long/2addr v4, v6
add-long/2addr v2, v4
add-long/2addr v0, v2
.line 78
add-int/lit8 v2, p3, 0x3
long-to-int v3, v0
aput v3, p2, v2
.line 79
ushr-long/2addr v0, v8
.line 80
long-to-int v0, v0
return v0
.end method
.method public static addTo([I[I)I
.registers 14
.prologue
const/4 v11, 0x2
const/4 v10, 0x1
const/4 v9, 0x0
const/16 v8, 0x20
const-wide v6, 0xffffffffL
.line 50
const-wide/16 v0, 0x0
aget v2, p0, v9
int-to-long v2, v2
and-long/2addr v2, v6
aget v4, p1, v9
int-to-long v4, v4
and-long/2addr v4, v6
add-long/2addr v2, v4
add-long/2addr v0, v2
.line 51
long-to-int v2, v0
aput v2, p1, v9
.line 52
ushr-long/2addr v0, v8
.line 53
aget v2, p0, v10
int-to-long v2, v2
and-long/2addr v2, v6
aget v4, p1, v10
int-to-long v4, v4
and-long/2addr v4, v6
add-long/2addr v2, v4
add-long/2addr v0, v2
.line 54
long-to-int v2, v0
aput v2, p1, v10
.line 55
ushr-long/2addr v0, v8
.line 56
aget v2, p0, v11
int-to-long v2, v2
and-long/2addr v2, v6
aget v4, p1, v11
int-to-long v4, v4
and-long/2addr v4, v6
add-long/2addr v2, v4
add-long/2addr v0, v2
.line 57
long-to-int v2, v0
aput v2, p1, v11
.line 58
ushr-long/2addr v0, v8
.line 59
const/4 v2, 0x3
aget v2, p0, v2
int-to-long v2, v2
and-long/2addr v2, v6
const/4 v4, 0x3
aget v4, p1, v4
int-to-long v4, v4
and-long/2addr v4, v6
add-long/2addr v2, v4
add-long/2addr v0, v2
.line 60
const/4 v2, 0x3
long-to-int v3, v0
aput v3, p1, v2
.line 61
ushr-long/2addr v0, v8
.line 62
long-to-int v0, v0
return v0
.end method
.method public static addToEachOther([II[II)I
.registers 13
.prologue
const/16 v8, 0x20
const-wide v6, 0xffffffffL
.line 86
const-wide/16 v0, 0x0
aget v2, p0, p1
int-to-long v2, v2
and-long/2addr v2, v6
aget v4, p2, p3
int-to-long v4, v4
and-long/2addr v4, v6
add-long/2addr v2, v4
add-long/2addr v0, v2
.line 87
long-to-int v2, v0
aput v2, p0, p1
.line 88
long-to-int v2, v0
aput v2, p2, p3
.line 89
ushr-long/2addr v0, v8
.line 90
add-int/lit8 v2, p1, 0x1
aget v2, p0, v2
int-to-long v2, v2
and-long/2addr v2, v6
add-int/lit8 v4, p3, 0x1
aget v4, p2, v4
int-to-long v4, v4
and-long/2addr v4, v6
add-long/2addr v2, v4
add-long/2addr v0, v2
.line 91
add-int/lit8 v2, p1, 0x1
long-to-int v3, v0
aput v3, p0, v2
.line 92
add-int/lit8 v2, p3, 0x1
long-to-int v3, v0
aput v3, p2, v2
.line 93
ushr-long/2addr v0, v8
.line 94
add-int/lit8 v2, p1, 0x2
aget v2, p0, v2
int-to-long v2, v2
and-long/2addr v2, v6
add-int/lit8 v4, p3, 0x2
aget v4, p2, v4
int-to-long v4, v4
and-long/2addr v4, v6
add-long/2addr v2, v4
add-long/2addr v0, v2
.line 95
add-int/lit8 v2, p1, 0x2
long-to-int v3, v0
aput v3, p0, v2
.line 96
add-int/lit8 v2, p3, 0x2
long-to-int v3, v0
aput v3, p2, v2
.line 97
ushr-long/2addr v0, v8
.line 98
add-int/lit8 v2, p1, 0x3
aget v2, p0, v2
int-to-long v2, v2
and-long/2addr v2, v6
add-int/lit8 v4, p3, 0x3
aget v4, p2, v4
int-to-long v4, v4
and-long/2addr v4, v6
add-long/2addr v2, v4
add-long/2addr v0, v2
.line 99
add-int/lit8 v2, p1, 0x3
long-to-int v3, v0
aput v3, p0, v2
.line 100
add-int/lit8 v2, p3, 0x3
long-to-int v3, v0
aput v3, p2, v2
.line 101
ushr-long/2addr v0, v8
.line 102
long-to-int v0, v0
return v0
.end method
.method public static copy([I[I)V
.registers 7
.prologue
const/4 v4, 0x3
const/4 v3, 0x2
const/4 v2, 0x1
const/4 v1, 0x0
.line 107
aget v0, p0, v1
aput v0, p1, v1
.line 108
aget v0, p0, v2
aput v0, p1, v2
.line 109
aget v0, p0, v3
aput v0, p1, v3
.line 110
aget v0, p0, v4
aput v0, p1, v4
.line 111
return-void
.end method
.method public static copy64([J[J)V
.registers 6
.prologue
const/4 v3, 0x1
const/4 v2, 0x0
.line 115
aget-wide v0, p0, v2
aput-wide v0, p1, v2
.line 116
aget-wide v0, p0, v3
aput-wide v0, p1, v3
.line 117
return-void
.end method
.method public static create()[I
.registers 1
.prologue
.line 121
const/4 v0, 0x4
new-array v0, v0, [I
return-object v0
.end method
.method public static create64()[J
.registers 1
.prologue
.line 126
const/4 v0, 0x2
new-array v0, v0, [J
return-object v0
.end method
.method public static createExt()[I
.registers 1
.prologue
.line 131
const/16 v0, 0x8
new-array v0, v0, [I
return-object v0
.end method
.method public static createExt64()[J
.registers 1
.prologue
.line 136
const/4 v0, 0x4
new-array v0, v0, [J
return-object v0
.end method
.method public static diff([II[II[II)Z
.registers 13
.prologue
.line 141
invoke-static {p0, p1, p2, p3}, Lorg/spongycastle/math/raw/Nat128;->gte([II[II)Z
move-result v6
.line 142
if-eqz v6, :cond_a
.line 144
invoke-static/range {p0 .. p5}, Lorg/spongycastle/math/raw/Nat128;->sub([II[II[II)I
.line 150
:goto_9
return v6
:cond_a
move-object v0, p2
move v1, p3
move-object v2, p0
move v3, p1
move-object v4, p4
move v5, p5
.line 148
invoke-static/range {v0 .. v5}, Lorg/spongycastle/math/raw/Nat128;->sub([II[II[II)I
goto :goto_9
.end method
.method public static eq([I[I)Z
.registers 5
.prologue
.line 155
const/4 v0, 0x3
:goto_1
if-ltz v0, :cond_e
.line 157
aget v1, p0, v0
aget v2, p1, v0
if-eq v1, v2, :cond_b
.line 159
const/4 v0, 0x0
.line 162
:goto_a
return v0
.line 155
:cond_b
add-int/lit8 v0, v0, -0x1
goto :goto_1
.line 162
:cond_e
const/4 v0, 0x1
goto :goto_a
.end method
.method public static eq64([J[J)Z
.registers 8
.prologue
const/4 v0, 0x1
.line 167
move v1, v0
:goto_2
if-ltz v1, :cond_d
.line 169
aget-wide v2, p0, v1
aget-wide v4, p1, v1
cmp-long v2, v2, v4
if-eqz v2, :cond_e
.line 171
const/4 v0, 0x0
.line 174
:cond_d
return v0
.line 167
:cond_e
add-int/lit8 v1, v1, -0x1
goto :goto_2
.end method
.method public static fromBigInteger(Ljava/math/BigInteger;)[I
.registers 5
.prologue
.line 179
invoke-virtual {p0}, Ljava/math/BigInteger;->signum()I
move-result v0
if-ltz v0, :cond_e
invoke-virtual {p0}, Ljava/math/BigInteger;->bitLength()I
move-result v0
const/16 v1, 0x80
if-le v0, v1, :cond_14
.line 181
:cond_e
new-instance v0, Ljava/lang/IllegalArgumentException;
invoke-direct {v0}, Ljava/lang/IllegalArgumentException;-><init>()V
throw v0
.line 184
:cond_14
invoke-static {}, Lorg/spongycastle/math/raw/Nat128;->create()[I
move-result-object v2
.line 185
const/4 v0, 0x0
.line 186
:goto_19
invoke-virtual {p0}, Ljava/math/BigInteger;->signum()I
move-result v1
if-eqz v1, :cond_2f
.line 188
add-int/lit8 v1, v0, 0x1
invoke-virtual {p0}, Ljava/math/BigInteger;->intValue()I
move-result v3
aput v3, v2, v0
.line 189
const/16 v0, 0x20
invoke-virtual {p0, v0}, Ljava/math/BigInteger;->shiftRight(I)Ljava/math/BigInteger;
move-result-object p0
move v0, v1
goto :goto_19
.line 191
:cond_2f
return-object v2
.end method
.method public static fromBigInteger64(Ljava/math/BigInteger;)[J
.registers 7
.prologue
.line 196
invoke-virtual {p0}, Ljava/math/BigInteger;->signum()I
move-result v0
if-ltz v0, :cond_e
invoke-virtual {p0}, Ljava/math/BigInteger;->bitLength()I
move-result v0
const/16 v1, 0x80
if-le v0, v1, :cond_14
.line 198
:cond_e
new-instance v0, Ljava/lang/IllegalArgumentException;
invoke-direct {v0}, Ljava/lang/IllegalArgumentException;-><init>()V
throw v0
.line 201
:cond_14
invoke-static {}, Lorg/spongycastle/math/raw/Nat128;->create64()[J
move-result-object v2
.line 202
const/4 v0, 0x0
.line 203
:goto_19
invoke-virtual {p0}, Ljava/math/BigInteger;->signum()I
move-result v1
if-eqz v1, :cond_2f
.line 205
add-int/lit8 v1, v0, 0x1
invoke-virtual {p0}, Ljava/math/BigInteger;->longValue()J
move-result-wide v4
aput-wide v4, v2, v0
.line 206
const/16 v0, 0x40
invoke-virtual {p0, v0}, Ljava/math/BigInteger;->shiftRight(I)Ljava/math/BigInteger;
move-result-object p0
move v0, v1
goto :goto_19
.line 208
:cond_2f
return-object v2
.end method
.method public static getBit([II)I
.registers 5
.prologue
const/4 v0, 0x0
.line 213
if-nez p1, :cond_8
.line 215
aget v0, p0, v0
and-int/lit8 v0, v0, 0x1
.line 223
:cond_7
:goto_7
return v0
.line 217
:cond_8
shr-int/lit8 v1, p1, 0x5
.line 218
if-ltz v1, :cond_7
const/4 v2, 0x4
if-ge v1, v2, :cond_7
.line 222
and-int/lit8 v0, p1, 0x1f
.line 223
aget v1, p0, v1
ushr-int v0, v1, v0
and-int/lit8 v0, v0, 0x1
goto :goto_7
.end method
.method public static gte([II[II)Z
.registers 9
.prologue
const/4 v0, 0x1
const/high16 v4, -0x80000000
.line 242
const/4 v1, 0x3
:goto_4
if-ltz v1, :cond_13
.line 244
add-int v2, p1, v1
aget v2, p0, v2
xor-int/2addr v2, v4
.line 245
add-int v3, p3, v1
aget v3, p2, v3
xor-int/2addr v3, v4
.line 246
if-ge v2, v3, :cond_14
.line 247
const/4 v0, 0x0
.line 251
:cond_13
return v0
.line 248
:cond_14
if-gt v2, v3, :cond_13
.line 242
add-int/lit8 v1, v1, -0x1
goto :goto_4
.end method
.method public static gte([I[I)Z
.registers 7
.prologue
const/4 v0, 0x1
const/high16 v4, -0x80000000
.line 228
const/4 v1, 0x3
:goto_4
if-ltz v1, :cond_f
.line 230
aget v2, p0, v1
xor-int/2addr v2, v4
.line 231
aget v3, p1, v1
xor-int/2addr v3, v4
.line 232
if-ge v2, v3, :cond_10
.line 233
const/4 v0, 0x0
.line 237
:cond_f
return v0
.line 234
:cond_10
if-gt v2, v3, :cond_f
.line 228
add-int/lit8 v1, v1, -0x1
goto :goto_4
.end method
.method public static isOne([I)Z
.registers 5
.prologue
const/4 v1, 0x1
const/4 v0, 0x0
.line 256
aget v2, p0, v0
if-eq v2, v1, :cond_7
.line 267
:cond_6
:goto_6
return v0
:cond_7
move v2, v1
.line 260
:goto_8
const/4 v3, 0x4
if-ge v2, v3, :cond_12
.line 262
aget v3, p0, v2
if-nez v3, :cond_6
.line 260
add-int/lit8 v2, v2, 0x1
goto :goto_8
:cond_12
move v0, v1
.line 267
goto :goto_6
.end method
.method public static isOne64([J)Z
.registers 9
.prologue
const/4 v1, 0x1
const/4 v0, 0x0
.line 272
aget-wide v2, p0, v0
const-wide/16 v4, 0x1
cmp-long v2, v2, v4
if-eqz v2, :cond_b
.line 283
:cond_a
:goto_a
return v0
:cond_b
move v2, v1
.line 276
:goto_c
const/4 v3, 0x2
if-ge v2, v3, :cond_1a
.line 278
aget-wide v4, p0, v1
const-wide/16 v6, 0x0
cmp-long v3, v4, v6
if-nez v3, :cond_a
.line 276
add-int/lit8 v2, v2, 0x1
goto :goto_c
:cond_1a
move v0, v1
.line 283
goto :goto_a
.end method
.method public static isZero([I)Z
.registers 4
.prologue
const/4 v0, 0x0
.line 288
move v1, v0
:goto_2
const/4 v2, 0x4
if-ge v1, v2, :cond_d
.line 290
aget v2, p0, v1
if-eqz v2, :cond_a
.line 295
:goto_9
return v0
.line 288
:cond_a
add-int/lit8 v1, v1, 0x1
goto :goto_2
.line 295
:cond_d
const/4 v0, 0x1
goto :goto_9
.end method
.method public static isZero64([J)Z
.registers 7
.prologue
const/4 v0, 0x0
.line 300
move v1, v0
:goto_2
const/4 v2, 0x2
if-ge v1, v2, :cond_11
.line 302
aget-wide v2, p0, v1
const-wide/16 v4, 0x0
cmp-long v2, v2, v4
if-eqz v2, :cond_e
.line 307
:goto_d
return v0
.line 300
:cond_e
add-int/lit8 v1, v1, 0x1
goto :goto_2
.line 307
:cond_11
const/4 v0, 0x1
goto :goto_d
.end method
.method public static mul([II[II[II)V
.registers 28
.prologue
.line 355
aget v2, p2, p3
int-to-long v2, v2
const-wide v4, 0xffffffffL
and-long/2addr v4, v2
.line 356
add-int/lit8 v2, p3, 0x1
aget v2, p2, v2
int-to-long v2, v2
const-wide v6, 0xffffffffL
and-long/2addr v6, v2
.line 357
add-int/lit8 v2, p3, 0x2
aget v2, p2, v2
int-to-long v2, v2
const-wide v8, 0xffffffffL
and-long/2addr v8, v2
.line 358
add-int/lit8 v2, p3, 0x3
aget v2, p2, v2
int-to-long v2, v2
const-wide v10, 0xffffffffL
and-long/2addr v10, v2
.line 361
aget v2, p0, p1
int-to-long v2, v2
const-wide v12, 0xffffffffL
and-long/2addr v2, v12
.line 362
const-wide/16 v12, 0x0
mul-long v14, v2, v4
add-long/2addr v12, v14
.line 363
long-to-int v14, v12
aput v14, p4, p5
.line 364
const/16 v14, 0x20
ushr-long/2addr v12, v14
.line 365
mul-long v14, v2, v6
add-long/2addr v12, v14
.line 366
add-int/lit8 v14, p5, 0x1
long-to-int v15, v12
aput v15, p4, v14
.line 367
const/16 v14, 0x20
ushr-long/2addr v12, v14
.line 368
mul-long v14, v2, v8
add-long/2addr v12, v14
.line 369
add-int/lit8 v14, p5, 0x2
long-to-int v15, v12
aput v15, p4, v14
.line 370
const/16 v14, 0x20
ushr-long/2addr v12, v14
.line 371
mul-long/2addr v2, v10
add-long/2addr v2, v12
.line 372
add-int/lit8 v12, p5, 0x3
long-to-int v13, v2
aput v13, p4, v12
.line 373
const/16 v12, 0x20
ushr-long/2addr v2, v12
.line 374
add-int/lit8 v12, p5, 0x4
long-to-int v2, v2
aput v2, p4, v12
.line 377
const/4 v2, 0x1
:goto_64
const/4 v3, 0x4
if-ge v2, v3, :cond_ed
.line 379
add-int/lit8 p5, p5, 0x1
.line 380
add-int v3, p1, v2
aget v3, p0, v3
int-to-long v12, v3
const-wide v14, 0xffffffffL
and-long/2addr v12, v14
.line 381
const-wide/16 v14, 0x0
mul-long v16, v12, v4
aget v3, p4, p5
int-to-long v0, v3
move-wide/from16 v18, v0
const-wide v20, 0xffffffffL
and-long v18, v18, v20
add-long v16, v16, v18
add-long v14, v14, v16
.line 382
long-to-int v3, v14
aput v3, p4, p5
.line 383
const/16 v3, 0x20
ushr-long/2addr v14, v3
.line 384
mul-long v16, v12, v6
add-int/lit8 v3, p5, 0x1
aget v3, p4, v3
int-to-long v0, v3
move-wide/from16 v18, v0
const-wide v20, 0xffffffffL
and-long v18, v18, v20
add-long v16, v16, v18
add-long v14, v14, v16
.line 385
add-int/lit8 v3, p5, 0x1
long-to-int v0, v14
move/from16 v16, v0
aput v16, p4, v3
.line 386
const/16 v3, 0x20
ushr-long/2addr v14, v3
.line 387
mul-long v16, v12, v8
add-int/lit8 v3, p5, 0x2
aget v3, p4, v3
int-to-long v0, v3
move-wide/from16 v18, v0
const-wide v20, 0xffffffffL
and-long v18, v18, v20
add-long v16, v16, v18
add-long v14, v14, v16
.line 388
add-int/lit8 v3, p5, 0x2
long-to-int v0, v14
move/from16 v16, v0
aput v16, p4, v3
.line 389
const/16 v3, 0x20
ushr-long/2addr v14, v3
.line 390
mul-long/2addr v12, v10
add-int/lit8 v3, p5, 0x3
aget v3, p4, v3
int-to-long v0, v3
move-wide/from16 v16, v0
const-wide v18, 0xffffffffL
and-long v16, v16, v18
add-long v12, v12, v16
add-long/2addr v12, v14
.line 391
add-int/lit8 v3, p5, 0x3
long-to-int v14, v12
aput v14, p4, v3
.line 392
const/16 v3, 0x20
ushr-long/2addr v12, v3
.line 393
add-int/lit8 v3, p5, 0x4
long-to-int v12, v12
aput v12, p4, v3
.line 377
add-int/lit8 v2, v2, 0x1
goto/16 :goto_64
.line 395
:cond_ed
return-void
.end method
.method public static mul([I[I[I)V
.registers 25
.prologue
.line 312
const/4 v2, 0x0
aget v2, p1, v2
int-to-long v2, v2
const-wide v4, 0xffffffffL
and-long/2addr v4, v2
.line 313
const/4 v2, 0x1
aget v2, p1, v2
int-to-long v2, v2
const-wide v6, 0xffffffffL
and-long/2addr v6, v2
.line 314
const/4 v2, 0x2
aget v2, p1, v2
int-to-long v2, v2
const-wide v8, 0xffffffffL
and-long/2addr v8, v2
.line 315
const/4 v2, 0x3
aget v2, p1, v2
int-to-long v2, v2
const-wide v10, 0xffffffffL
and-long/2addr v10, v2
.line 318
const/4 v2, 0x0
aget v2, p0, v2
int-to-long v2, v2
const-wide v12, 0xffffffffL
and-long/2addr v2, v12
.line 319
const-wide/16 v12, 0x0
mul-long v14, v2, v4
add-long/2addr v12, v14
.line 320
const/4 v14, 0x0
long-to-int v15, v12
aput v15, p2, v14
.line 321
const/16 v14, 0x20
ushr-long/2addr v12, v14
.line 322
mul-long v14, v2, v6
add-long/2addr v12, v14
.line 323
const/4 v14, 0x1
long-to-int v15, v12
aput v15, p2, v14
.line 324
const/16 v14, 0x20
ushr-long/2addr v12, v14
.line 325
mul-long v14, v2, v8
add-long/2addr v12, v14
.line 326
const/4 v14, 0x2
long-to-int v15, v12
aput v15, p2, v14
.line 327
const/16 v14, 0x20
ushr-long/2addr v12, v14
.line 328
mul-long/2addr v2, v10
add-long/2addr v2, v12
.line 329
const/4 v12, 0x3
long-to-int v13, v2
aput v13, p2, v12
.line 330
const/16 v12, 0x20
ushr-long/2addr v2, v12
.line 331
const/4 v12, 0x4
long-to-int v2, v2
aput v2, p2, v12
.line 334
const/4 v2, 0x1
:goto_60
const/4 v3, 0x4
if-ge v2, v3, :cond_e5
.line 336
aget v3, p0, v2
int-to-long v12, v3
const-wide v14, 0xffffffffL
and-long/2addr v12, v14
.line 337
const-wide/16 v14, 0x0
mul-long v16, v12, v4
aget v3, p2, v2
int-to-long v0, v3
move-wide/from16 v18, v0
const-wide v20, 0xffffffffL
and-long v18, v18, v20
add-long v16, v16, v18
add-long v14, v14, v16
.line 338
long-to-int v3, v14
aput v3, p2, v2
.line 339
const/16 v3, 0x20
ushr-long/2addr v14, v3
.line 340
mul-long v16, v12, v6
add-int/lit8 v3, v2, 0x1
aget v3, p2, v3
int-to-long v0, v3
move-wide/from16 v18, v0
const-wide v20, 0xffffffffL
and-long v18, v18, v20
add-long v16, v16, v18
add-long v14, v14, v16
.line 341
add-int/lit8 v3, v2, 0x1
long-to-int v0, v14
move/from16 v16, v0
aput v16, p2, v3
.line 342
const/16 v3, 0x20
ushr-long/2addr v14, v3
.line 343
mul-long v16, v12, v8
add-int/lit8 v3, v2, 0x2
aget v3, p2, v3
int-to-long v0, v3
move-wide/from16 v18, v0
const-wide v20, 0xffffffffL
and-long v18, v18, v20
add-long v16, v16, v18
add-long v14, v14, v16
.line 344
add-int/lit8 v3, v2, 0x2
long-to-int v0, v14
move/from16 v16, v0
aput v16, p2, v3
.line 345
const/16 v3, 0x20
ushr-long/2addr v14, v3
.line 346
mul-long/2addr v12, v10
add-int/lit8 v3, v2, 0x3
aget v3, p2, v3
int-to-long v0, v3
move-wide/from16 v16, v0
const-wide v18, 0xffffffffL
and-long v16, v16, v18
add-long v12, v12, v16
add-long/2addr v12, v14
.line 347
add-int/lit8 v3, v2, 0x3
long-to-int v14, v12
aput v14, p2, v3
.line 348
const/16 v3, 0x20
ushr-long/2addr v12, v3
.line 349
add-int/lit8 v3, v2, 0x4
long-to-int v12, v12
aput v12, p2, v3
.line 334
add-int/lit8 v2, v2, 0x1
goto/16 :goto_60
.line 351
:cond_e5
return-void
.end method
.method public static mul33Add(I[II[II[II)J
.registers 19
.prologue
.line 462
int-to-long v0, p0
const-wide v2, 0xffffffffL
and-long/2addr v0, v2
.line 463
aget v2, p1, p2
int-to-long v2, v2
const-wide v4, 0xffffffffL
and-long/2addr v2, v4
.line 464
const-wide/16 v4, 0x0
mul-long v6, v0, v2
aget v8, p3, p4
int-to-long v8, v8
const-wide v10, 0xffffffffL
and-long/2addr v8, v10
add-long/2addr v6, v8
add-long/2addr v4, v6
.line 465
long-to-int v6, v4
aput v6, p5, p6
.line 466
const/16 v6, 0x20
ushr-long/2addr v4, v6
.line 467
add-int/lit8 v6, p2, 0x1
aget v6, p1, v6
int-to-long v6, v6
const-wide v8, 0xffffffffL
and-long/2addr v6, v8
.line 468
mul-long v8, v0, v6
add-long/2addr v2, v8
add-int/lit8 v8, p4, 0x1
aget v8, p3, v8
int-to-long v8, v8
const-wide v10, 0xffffffffL
and-long/2addr v8, v10
add-long/2addr v2, v8
add-long/2addr v2, v4
.line 469
add-int/lit8 v4, p6, 0x1
long-to-int v5, v2
aput v5, p5, v4
.line 470
const/16 v4, 0x20
ushr-long/2addr v2, v4
.line 471
add-int/lit8 v4, p2, 0x2
aget v4, p1, v4
int-to-long v4, v4
const-wide v8, 0xffffffffL
and-long/2addr v4, v8
.line 472
mul-long v8, v0, v4
add-long/2addr v6, v8
add-int/lit8 v8, p4, 0x2
aget v8, p3, v8
int-to-long v8, v8
const-wide v10, 0xffffffffL
and-long/2addr v8, v10
add-long/2addr v6, v8
add-long/2addr v2, v6
.line 473
add-int/lit8 v6, p6, 0x2
long-to-int v7, v2
aput v7, p5, v6
.line 474
const/16 v6, 0x20
ushr-long/2addr v2, v6
.line 475
add-int/lit8 v6, p2, 0x3
aget v6, p1, v6
int-to-long v6, v6
const-wide v8, 0xffffffffL
and-long/2addr v6, v8
.line 476
mul-long/2addr v0, v6
add-long/2addr v0, v4
add-int/lit8 v4, p4, 0x3
aget v4, p3, v4
int-to-long v4, v4
const-wide v8, 0xffffffffL
and-long/2addr v4, v8
add-long/2addr v0, v4
add-long/2addr v0, v2
.line 477
add-int/lit8 v2, p6, 0x3
long-to-int v3, v0
aput v3, p5, v2
.line 478
const/16 v2, 0x20
ushr-long/2addr v0, v2
.line 479
add-long/2addr v0, v6
.line 480
return-wide v0
.end method
.method public static mul33DWordAdd(IJ[II)I
.registers 18
.prologue
.line 508
int-to-long v0, p0
const-wide v2, 0xffffffffL
and-long/2addr v0, v2
.line 509
const-wide v2, 0xffffffffL
and-long/2addr v2, p1
.line 510
const-wide/16 v4, 0x0
mul-long v6, v0, v2
aget v8, p3, p4
int-to-long v8, v8
const-wide v10, 0xffffffffL
and-long/2addr v8, v10
add-long/2addr v6, v8
add-long/2addr v4, v6
.line 511
long-to-int v6, v4
aput v6, p3, p4
.line 512
const/16 v6, 0x20
ushr-long/2addr v4, v6
.line 513
const/16 v6, 0x20
ushr-long v6, p1, v6
.line 514
mul-long/2addr v0, v6
add-long/2addr v0, v2
add-int/lit8 v2, p4, 0x1
aget v2, p3, v2
int-to-long v2, v2
const-wide v8, 0xffffffffL
and-long/2addr v2, v8
add-long/2addr v0, v2
add-long/2addr v0, v4
.line 515
add-int/lit8 v2, p4, 0x1
long-to-int v3, v0
aput v3, p3, v2
.line 516
const/16 v2, 0x20
ushr-long/2addr v0, v2
.line 517
add-int/lit8 v2, p4, 0x2
aget v2, p3, v2
int-to-long v2, v2
const-wide v4, 0xffffffffL
and-long/2addr v2, v4
add-long/2addr v2, v6
add-long/2addr v0, v2
.line 518
add-int/lit8 v2, p4, 0x2
long-to-int v3, v0
aput v3, p3, v2
.line 519
const/16 v2, 0x20
ushr-long/2addr v0, v2
.line 520
add-int/lit8 v2, p4, 0x3
aget v2, p3, v2
int-to-long v2, v2
const-wide v4, 0xffffffffL
and-long/2addr v2, v4
add-long/2addr v0, v2
.line 521
add-int/lit8 v2, p4, 0x3
long-to-int v3, v0
aput v3, p3, v2
.line 522
const/16 v2, 0x20
ushr-long/2addr v0, v2
.line 523
long-to-int v0, v0
return v0
.end method
.method public static mul33WordAdd(II[II)I
.registers 16
.prologue
const-wide/16 v10, 0x0
const/16 v8, 0x20
const-wide v6, 0xffffffffL
.line 531
int-to-long v0, p0
and-long/2addr v0, v6
int-to-long v2, p1
and-long/2addr v2, v6
.line 532
mul-long/2addr v0, v2
aget v4, p2, p3
int-to-long v4, v4
and-long/2addr v4, v6
add-long/2addr v0, v4
add-long/2addr v0, v10
.line 533
long-to-int v4, v0
aput v4, p2, p3
.line 534
ushr-long/2addr v0, v8
.line 535
add-int/lit8 v4, p3, 0x1
aget v4, p2, v4
int-to-long v4, v4
and-long/2addr v4, v6
add-long/2addr v2, v4
add-long/2addr v0, v2
.line 536
add-int/lit8 v2, p3, 0x1
long-to-int v3, v0
aput v3, p2, v2
.line 537
ushr-long/2addr v0, v8
.line 538
add-int/lit8 v2, p3, 0x2
aget v2, p2, v2
int-to-long v2, v2
and-long/2addr v2, v6
add-long/2addr v0, v2
.line 539
add-int/lit8 v2, p3, 0x2
long-to-int v3, v0
aput v3, p2, v2
.line 540
ushr-long/2addr v0, v8
.line 541
cmp-long v0, v0, v10
if-nez v0, :cond_39
const/4 v0, 0x0
:goto_38
return v0
:cond_39
const/4 v0, 0x4
const/4 v1, 0x3
invoke-static {v0, p2, p3, v1}, Lorg/spongycastle/math/raw/Nat;->incAt(I[III)I
move-result v0
goto :goto_38
.end method
.method public static mulAddTo([II[II[II)I
.registers 30
.prologue
.line 429
aget v2, p2, p3
int-to-long v2, v2
const-wide v4, 0xffffffffL
and-long v6, v2, v4
.line 430
add-int/lit8 v2, p3, 0x1
aget v2, p2, v2
int-to-long v2, v2
const-wide v4, 0xffffffffL
and-long v8, v2, v4
.line 431
add-int/lit8 v2, p3, 0x2
aget v2, p2, v2
int-to-long v2, v2
const-wide v4, 0xffffffffL
and-long v10, v2, v4
.line 432
add-int/lit8 v2, p3, 0x3
aget v2, p2, v2
int-to-long v2, v2
const-wide v4, 0xffffffffL
and-long v12, v2, v4
.line 434
const-wide/16 v2, 0x0
.line 435
const/4 v4, 0x0
:goto_31
const/4 v5, 0x4
if-ge v4, v5, :cond_db
.line 437
add-int v5, p1, v4
aget v5, p0, v5
int-to-long v14, v5
const-wide v16, 0xffffffffL
and-long v14, v14, v16
.line 438
const-wide/16 v16, 0x0
mul-long v18, v14, v6
aget v5, p4, p5
int-to-long v0, v5
move-wide/from16 v20, v0
const-wide v22, 0xffffffffL
and-long v20, v20, v22
add-long v18, v18, v20
add-long v16, v16, v18
.line 439
move-wide/from16 v0, v16
long-to-int v5, v0
aput v5, p4, p5
.line 440
const/16 v5, 0x20
ushr-long v16, v16, v5
.line 441
mul-long v18, v14, v8
add-int/lit8 v5, p5, 0x1
aget v5, p4, v5
int-to-long v0, v5
move-wide/from16 v20, v0
const-wide v22, 0xffffffffL
and-long v20, v20, v22
add-long v18, v18, v20
add-long v16, v16, v18
.line 442
add-int/lit8 v5, p5, 0x1
move-wide/from16 v0, v16
long-to-int v0, v0
move/from16 v18, v0
aput v18, p4, v5
.line 443
const/16 v5, 0x20
ushr-long v16, v16, v5
.line 444
mul-long v18, v14, v10
add-int/lit8 v5, p5, 0x2
aget v5, p4, v5
int-to-long v0, v5
move-wide/from16 v20, v0
const-wide v22, 0xffffffffL
and-long v20, v20, v22
add-long v18, v18, v20
add-long v16, v16, v18
.line 445
add-int/lit8 v5, p5, 0x2
move-wide/from16 v0, v16
long-to-int v0, v0
move/from16 v18, v0
aput v18, p4, v5
.line 446
const/16 v5, 0x20
ushr-long v16, v16, v5
.line 447
mul-long/2addr v14, v12
add-int/lit8 v5, p5, 0x3
aget v5, p4, v5
int-to-long v0, v5
move-wide/from16 v18, v0
const-wide v20, 0xffffffffL
and-long v18, v18, v20
add-long v14, v14, v18
add-long v14, v14, v16
.line 448
add-int/lit8 v5, p5, 0x3
long-to-int v0, v14
move/from16 v16, v0
aput v16, p4, v5
.line 449
const/16 v5, 0x20
ushr-long/2addr v14, v5
.line 450
add-int/lit8 v5, p5, 0x4
aget v5, p4, v5
int-to-long v0, v5
move-wide/from16 v16, v0
const-wide v18, 0xffffffffL
and-long v16, v16, v18
add-long v2, v2, v16
add-long/2addr v2, v14
.line 451
add-int/lit8 v5, p5, 0x4
long-to-int v14, v2
aput v14, p4, v5
.line 452
const/16 v5, 0x20
ushr-long/2addr v2, v5
.line 453
add-int/lit8 p5, p5, 0x1
.line 435
add-int/lit8 v4, v4, 0x1
goto/16 :goto_31
.line 455
:cond_db
long-to-int v2, v2
return v2
.end method
.method public static mulAddTo([I[I[I)I
.registers 27
.prologue
.line 399
const/4 v2, 0x0
aget v2, p1, v2
int-to-long v2, v2
const-wide v4, 0xffffffffL
and-long v6, v2, v4
.line 400
const/4 v2, 0x1
aget v2, p1, v2
int-to-long v2, v2
const-wide v4, 0xffffffffL
and-long v8, v2, v4
.line 401
const/4 v2, 0x2
aget v2, p1, v2
int-to-long v2, v2
const-wide v4, 0xffffffffL
and-long v10, v2, v4
.line 402
const/4 v2, 0x3
aget v2, p1, v2
int-to-long v2, v2
const-wide v4, 0xffffffffL
and-long v12, v2, v4
.line 404
const-wide/16 v2, 0x0
.line 405
const/4 v4, 0x0
:goto_2f
const/4 v5, 0x4
if-ge v4, v5, :cond_d5
.line 407
aget v5, p0, v4
int-to-long v14, v5
const-wide v16, 0xffffffffL
and-long v14, v14, v16
.line 408
const-wide/16 v16, 0x0
mul-long v18, v14, v6
aget v5, p2, v4
int-to-long v0, v5
move-wide/from16 v20, v0
const-wide v22, 0xffffffffL
and-long v20, v20, v22
add-long v18, v18, v20
add-long v16, v16, v18
.line 409
move-wide/from16 v0, v16
long-to-int v5, v0
aput v5, p2, v4
.line 410
const/16 v5, 0x20
ushr-long v16, v16, v5
.line 411
mul-long v18, v14, v8
add-int/lit8 v5, v4, 0x1
aget v5, p2, v5
int-to-long v0, v5
move-wide/from16 v20, v0
const-wide v22, 0xffffffffL
and-long v20, v20, v22
add-long v18, v18, v20
add-long v16, v16, v18
.line 412
add-int/lit8 v5, v4, 0x1
move-wide/from16 v0, v16
long-to-int v0, v0
move/from16 v18, v0
aput v18, p2, v5
.line 413
const/16 v5, 0x20
ushr-long v16, v16, v5
.line 414
mul-long v18, v14, v10
add-int/lit8 v5, v4, 0x2
aget v5, p2, v5
int-to-long v0, v5
move-wide/from16 v20, v0
const-wide v22, 0xffffffffL
and-long v20, v20, v22
add-long v18, v18, v20
add-long v16, v16, v18
.line 415
add-int/lit8 v5, v4, 0x2
move-wide/from16 v0, v16
long-to-int v0, v0
move/from16 v18, v0
aput v18, p2, v5
.line 416
const/16 v5, 0x20
ushr-long v16, v16, v5
.line 417
mul-long/2addr v14, v12
add-int/lit8 v5, v4, 0x3
aget v5, p2, v5
int-to-long v0, v5
move-wide/from16 v18, v0
const-wide v20, 0xffffffffL
and-long v18, v18, v20
add-long v14, v14, v18
add-long v14, v14, v16
.line 418
add-int/lit8 v5, v4, 0x3
long-to-int v0, v14
move/from16 v16, v0
aput v16, p2, v5
.line 419
const/16 v5, 0x20
ushr-long/2addr v14, v5
.line 420
add-int/lit8 v5, v4, 0x4
aget v5, p2, v5
int-to-long v0, v5
move-wide/from16 v16, v0
const-wide v18, 0xffffffffL
and-long v16, v16, v18
add-long v2, v2, v16
add-long/2addr v2, v14
.line 421
add-int/lit8 v5, v4, 0x4
long-to-int v14, v2
aput v14, p2, v5
.line 422
const/16 v5, 0x20
ushr-long/2addr v2, v5
.line 405
add-int/lit8 v4, v4, 0x1
goto/16 :goto_2f
.line 424
:cond_d5
long-to-int v2, v2
return v2
.end method
.method public static mulWord(I[I[II)I
.registers 14
.prologue
const-wide v8, 0xffffffffL
.line 576
const-wide/16 v0, 0x0
int-to-long v2, p0
and-long v4, v2, v8
.line 577
const/4 v2, 0x0
.line 580
:cond_b
aget v3, p1, v2
int-to-long v6, v3
and-long/2addr v6, v8
mul-long/2addr v6, v4
add-long/2addr v0, v6
.line 581
add-int v3, p3, v2
long-to-int v6, v0
aput v6, p2, v3
.line 582
const/16 v3, 0x20
ushr-long/2addr v0, v3
.line 584
add-int/lit8 v2, v2, 0x1
const/4 v3, 0x4
if-lt v2, v3, :cond_b
.line 585
long-to-int v0, v0
return v0
.end method
.method public static mulWordAddExt(I[II[II)I
.registers 16
.prologue
const/16 v10, 0x20
const-wide v8, 0xffffffffL
.line 487
int-to-long v0, p0
and-long/2addr v0, v8
.line 488
const-wide/16 v2, 0x0
aget v4, p1, p2
int-to-long v4, v4
and-long/2addr v4, v8
mul-long/2addr v4, v0
aget v6, p3, p4
int-to-long v6, v6
and-long/2addr v6, v8
add-long/2addr v4, v6
add-long/2addr v2, v4
.line 489
long-to-int v4, v2
aput v4, p3, p4
.line 490
ushr-long/2addr v2, v10
.line 491
add-int/lit8 v4, p2, 0x1
aget v4, p1, v4
int-to-long v4, v4
and-long/2addr v4, v8
mul-long/2addr v4, v0
add-int/lit8 v6, p4, 0x1
aget v6, p3, v6
int-to-long v6, v6
and-long/2addr v6, v8
add-long/2addr v4, v6
add-long/2addr v2, v4
.line 492
add-int/lit8 v4, p4, 0x1
long-to-int v5, v2
aput v5, p3, v4
.line 493
ushr-long/2addr v2, v10
.line 494
add-int/lit8 v4, p2, 0x2
aget v4, p1, v4
int-to-long v4, v4
and-long/2addr v4, v8
mul-long/2addr v4, v0
add-int/lit8 v6, p4, 0x2
aget v6, p3, v6
int-to-long v6, v6
and-long/2addr v6, v8
add-long/2addr v4, v6
add-long/2addr v2, v4
.line 495
add-int/lit8 v4, p4, 0x2
long-to-int v5, v2
aput v5, p3, v4
.line 496
ushr-long/2addr v2, v10
.line 497
add-int/lit8 v4, p2, 0x3
aget v4, p1, v4
int-to-long v4, v4
and-long/2addr v4, v8
mul-long/2addr v0, v4
add-int/lit8 v4, p4, 0x3
aget v4, p3, v4
int-to-long v4, v4
and-long/2addr v4, v8
add-long/2addr v0, v4
add-long/2addr v0, v2
.line 498
add-int/lit8 v2, p4, 0x3
long-to-int v3, v0
aput v3, p3, v2
.line 499
ushr-long/2addr v0, v10
.line 500
long-to-int v0, v0
return v0
.end method
.method public static mulWordDwordAdd(IJ[II)I
.registers 16
.prologue
.line 547
int-to-long v0, p0
const-wide v2, 0xffffffffL
and-long/2addr v0, v2
.line 548
const-wide/16 v2, 0x0
const-wide v4, 0xffffffffL
and-long/2addr v4, p1
mul-long/2addr v4, v0
aget v6, p3, p4
int-to-long v6, v6
const-wide v8, 0xffffffffL
and-long/2addr v6, v8
add-long/2addr v4, v6
add-long/2addr v2, v4
.line 549
long-to-int v4, v2
aput v4, p3, p4
.line 550
const/16 v4, 0x20
ushr-long/2addr v2, v4
.line 551
const/16 v4, 0x20
ushr-long v4, p1, v4
mul-long/2addr v0, v4
add-int/lit8 v4, p4, 0x1
aget v4, p3, v4
int-to-long v4, v4
const-wide v6, 0xffffffffL
and-long/2addr v4, v6
add-long/2addr v0, v4
add-long/2addr v0, v2
.line 552
add-int/lit8 v2, p4, 0x1
long-to-int v3, v0
aput v3, p3, v2
.line 553
const/16 v2, 0x20
ushr-long/2addr v0, v2
.line 554
add-int/lit8 v2, p4, 0x2
aget v2, p3, v2
int-to-long v2, v2
const-wide v4, 0xffffffffL
and-long/2addr v2, v4
add-long/2addr v0, v2
.line 555
add-int/lit8 v2, p4, 0x2
long-to-int v3, v0
aput v3, p3, v2
.line 556
const/16 v2, 0x20
ushr-long/2addr v0, v2
.line 557
const-wide/16 v2, 0x0
cmp-long v0, v0, v2
if-nez v0, :cond_57
const/4 v0, 0x0
:goto_56
return v0
:cond_57
const/4 v0, 0x4
const/4 v1, 0x3
invoke-static {v0, p3, p4, v1}, Lorg/spongycastle/math/raw/Nat;->incAt(I[III)I
move-result v0
goto :goto_56
.end method
.method public static mulWordsAdd(II[II)I
.registers 14
.prologue
const-wide/16 v8, 0x0
const/16 v6, 0x20
const-wide v4, 0xffffffffL
.line 564
int-to-long v0, p0
and-long/2addr v0, v4
int-to-long v2, p1
and-long/2addr v2, v4
.line 565
mul-long/2addr v0, v2
aget v2, p2, p3
int-to-long v2, v2
and-long/2addr v2, v4
add-long/2addr v0, v2
add-long/2addr v0, v8
.line 566
long-to-int v2, v0
aput v2, p2, p3
.line 567
ushr-long/2addr v0, v6
.line 568
add-int/lit8 v2, p3, 0x1
aget v2, p2, v2
int-to-long v2, v2
and-long/2addr v2, v4
add-long/2addr v0, v2
.line 569
add-int/lit8 v2, p3, 0x1
long-to-int v3, v0
aput v3, p2, v2
.line 570
ushr-long/2addr v0, v6
.line 571
cmp-long v0, v0, v8
if-nez v0, :cond_2b
const/4 v0, 0x0
:goto_2a
return v0
:cond_2b
const/4 v0, 0x4
const/4 v1, 0x2
invoke-static {v0, p2, p3, v1}, Lorg/spongycastle/math/raw/Nat;->incAt(I[III)I
move-result v0
goto :goto_2a
.end method
.method public static square([II[II)V
.registers 26
.prologue
.line 667
aget v2, p0, p1
int-to-long v2, v2
const-wide v4, 0xffffffffL
and-long v6, v2, v4
.line 670
const/4 v4, 0x0
.line 672
const/4 v3, 0x3
const/16 v2, 0x8
move v5, v4
.line 675
:goto_f
add-int/lit8 v4, v3, -0x1
add-int v3, v3, p1
aget v3, p0, v3
int-to-long v8, v3
const-wide v10, 0xffffffffL
and-long/2addr v8, v10
.line 676
mul-long/2addr v8, v8
.line 677
add-int/lit8 v2, v2, -0x1
add-int v3, p3, v2
shl-int/lit8 v5, v5, 0x1f
const/16 v10, 0x21
ushr-long v10, v8, v10
long-to-int v10, v10
or-int/2addr v5, v10
aput v5, p2, v3
.line 678
add-int/lit8 v2, v2, -0x1
add-int v3, p3, v2
const/4 v5, 0x1
ushr-long v10, v8, v5
long-to-int v5, v10
aput v5, p2, v3
.line 679
long-to-int v3, v8
.line 681
if-gtz v4, :cond_136
.line 684
mul-long v4, v6, v6
.line 685
shl-int/lit8 v2, v3, 0x1f
int-to-long v2, v2
const-wide v8, 0xffffffffL
and-long/2addr v2, v8
const/16 v8, 0x21
ushr-long v8, v4, v8
or-long/2addr v2, v8
.line 686
long-to-int v8, v4
aput v8, p2, p3
.line 687
const/16 v8, 0x20
ushr-long/2addr v4, v8
long-to-int v4, v4
and-int/lit8 v4, v4, 0x1
.line 691
add-int/lit8 v5, p1, 0x1
aget v5, p0, v5
int-to-long v8, v5
const-wide v10, 0xffffffffL
and-long/2addr v8, v10
.line 692
add-int/lit8 v5, p3, 0x2
aget v5, p2, v5
int-to-long v10, v5
const-wide v12, 0xffffffffL
and-long/2addr v10, v12
.line 695
mul-long v12, v8, v6
add-long/2addr v2, v12
.line 696
long-to-int v5, v2
.line 697
add-int/lit8 v12, p3, 0x1
shl-int/lit8 v13, v5, 0x1
or-int/2addr v4, v13
aput v4, p2, v12
.line 698
ushr-int/lit8 v4, v5, 0x1f
.line 699
const/16 v5, 0x20
ushr-long/2addr v2, v5
add-long/2addr v2, v10
.line 702
add-int/lit8 v5, p1, 0x2
aget v5, p0, v5
int-to-long v10, v5
const-wide v12, 0xffffffffL
and-long/2addr v10, v12
.line 703
add-int/lit8 v5, p3, 0x3
aget v5, p2, v5
int-to-long v12, v5
const-wide v14, 0xffffffffL
and-long/2addr v12, v14
.line 704
add-int/lit8 v5, p3, 0x4
aget v5, p2, v5
int-to-long v14, v5
const-wide v16, 0xffffffffL
and-long v14, v14, v16
.line 706
mul-long v16, v10, v6
add-long v2, v2, v16
.line 707
long-to-int v5, v2
.line 708
add-int/lit8 v16, p3, 0x2
shl-int/lit8 v17, v5, 0x1
or-int v4, v4, v17
aput v4, p2, v16
.line 709
ushr-int/lit8 v4, v5, 0x1f
.line 710
const/16 v5, 0x20
ushr-long/2addr v2, v5
mul-long v16, v10, v8
add-long v2, v2, v16
add-long/2addr v2, v12
.line 711
const/16 v5, 0x20
ushr-long v12, v2, v5
add-long/2addr v12, v14
.line 712
const-wide v14, 0xffffffffL
and-long/2addr v2, v14
.line 715
add-int/lit8 v5, p1, 0x3
aget v5, p0, v5
int-to-long v14, v5
const-wide v16, 0xffffffffL
and-long v14, v14, v16
.line 716
add-int/lit8 v5, p3, 0x5
aget v5, p2, v5
int-to-long v0, v5
move-wide/from16 v16, v0
const-wide v18, 0xffffffffL
and-long v16, v16, v18
.line 717
add-int/lit8 v5, p3, 0x6
aget v5, p2, v5
int-to-long v0, v5
move-wide/from16 v18, v0
const-wide v20, 0xffffffffL
and-long v18, v18, v20
.line 719
mul-long/2addr v6, v14
add-long/2addr v2, v6
.line 720
long-to-int v5, v2
.line 721
add-int/lit8 v6, p3, 0x3
shl-int/lit8 v7, v5, 0x1
or-int/2addr v4, v7
aput v4, p2, v6
.line 722
ushr-int/lit8 v4, v5, 0x1f
.line 723
const/16 v5, 0x20
ushr-long/2addr v2, v5
mul-long v6, v14, v8
add-long/2addr v2, v6
add-long/2addr v2, v12
.line 724
const/16 v5, 0x20
ushr-long v6, v2, v5
mul-long v8, v14, v10
add-long/2addr v6, v8
add-long v6, v6, v16
.line 725
const/16 v5, 0x20
ushr-long v8, v6, v5
add-long v8, v8, v18
.line 728
long-to-int v2, v2
.line 729
add-int/lit8 v3, p3, 0x4
shl-int/lit8 v5, v2, 0x1
or-int/2addr v4, v5
aput v4, p2, v3
.line 730
ushr-int/lit8 v2, v2, 0x1f
.line 731
long-to-int v3, v6
.line 732
add-int/lit8 v4, p3, 0x5
shl-int/lit8 v5, v3, 0x1
or-int/2addr v2, v5
aput v2, p2, v4
.line 733
ushr-int/lit8 v2, v3, 0x1f
.line 734
long-to-int v3, v8
.line 735
add-int/lit8 v4, p3, 0x6
shl-int/lit8 v5, v3, 0x1
or-int/2addr v2, v5
aput v2, p2, v4
.line 736
ushr-int/lit8 v2, v3, 0x1f
.line 737
add-int/lit8 v3, p3, 0x7
aget v3, p2, v3
const/16 v4, 0x20
shr-long v4, v8, v4
long-to-int v4, v4
add-int/2addr v3, v4
.line 738
add-int/lit8 v4, p3, 0x7
shl-int/lit8 v3, v3, 0x1
or-int/2addr v2, v3
aput v2, p2, v4
.line 739
return-void
:cond_136
move v5, v3
move v3, v4
goto/16 :goto_f
.end method
.method public static square([I[I)V
.registers 24
.prologue
.line 590
const/4 v2, 0x0
aget v2, p0, v2
int-to-long v2, v2
const-wide v4, 0xffffffffL
and-long v6, v2, v4
.line 593
const/4 v4, 0x0
.line 595
const/4 v3, 0x3
const/16 v2, 0x8
move v5, v4
.line 598
:goto_10
add-int/lit8 v4, v3, -0x1
aget v3, p0, v3
int-to-long v8, v3
const-wide v10, 0xffffffffL
and-long/2addr v8, v10
.line 599
mul-long/2addr v8, v8
.line 600
add-int/lit8 v2, v2, -0x1
shl-int/lit8 v3, v5, 0x1f
const/16 v5, 0x21
ushr-long v10, v8, v5
long-to-int v5, v10
or-int/2addr v3, v5
aput v3, p1, v2
.line 601
add-int/lit8 v2, v2, -0x1
const/4 v3, 0x1
ushr-long v10, v8, v3
long-to-int v3, v10
aput v3, p1, v2
.line 602
long-to-int v3, v8
.line 604
if-gtz v4, :cond_129
.line 607
mul-long v4, v6, v6
.line 608
shl-int/lit8 v2, v3, 0x1f
int-to-long v2, v2
const-wide v8, 0xffffffffL
and-long/2addr v2, v8
const/16 v8, 0x21
ushr-long v8, v4, v8
or-long/2addr v2, v8
.line 609
const/4 v8, 0x0
long-to-int v9, v4
aput v9, p1, v8
.line 610
const/16 v8, 0x20
ushr-long/2addr v4, v8
long-to-int v4, v4
and-int/lit8 v4, v4, 0x1
.line 614
const/4 v5, 0x1
aget v5, p0, v5
int-to-long v8, v5
const-wide v10, 0xffffffffL
and-long/2addr v8, v10
.line 615
const/4 v5, 0x2
aget v5, p1, v5
int-to-long v10, v5
const-wide v12, 0xffffffffL
and-long/2addr v10, v12
.line 618
mul-long v12, v8, v6
add-long/2addr v2, v12
.line 619
long-to-int v5, v2
.line 620
const/4 v12, 0x1
shl-int/lit8 v13, v5, 0x1
or-int/2addr v4, v13
aput v4, p1, v12
.line 621
ushr-int/lit8 v4, v5, 0x1f
.line 622
const/16 v5, 0x20
ushr-long/2addr v2, v5
add-long/2addr v2, v10
.line 625
const/4 v5, 0x2
aget v5, p0, v5
int-to-long v10, v5
const-wide v12, 0xffffffffL
and-long/2addr v10, v12
.line 626
const/4 v5, 0x3
aget v5, p1, v5
int-to-long v12, v5
const-wide v14, 0xffffffffL
and-long/2addr v12, v14
.line 627
const/4 v5, 0x4
aget v5, p1, v5
int-to-long v14, v5
const-wide v16, 0xffffffffL
and-long v14, v14, v16
.line 629
mul-long v16, v10, v6
add-long v2, v2, v16
.line 630
long-to-int v5, v2
.line 631
const/16 v16, 0x2
shl-int/lit8 v17, v5, 0x1
or-int v4, v4, v17
aput v4, p1, v16
.line 632
ushr-int/lit8 v4, v5, 0x1f
.line 633
const/16 v5, 0x20
ushr-long/2addr v2, v5
mul-long v16, v10, v8
add-long v2, v2, v16
add-long/2addr v2, v12
.line 634
const/16 v5, 0x20
ushr-long v12, v2, v5
add-long/2addr v12, v14
.line 635
const-wide v14, 0xffffffffL
and-long/2addr v2, v14
.line 638
const/4 v5, 0x3
aget v5, p0, v5
int-to-long v14, v5
const-wide v16, 0xffffffffL
and-long v14, v14, v16
.line 639
const/4 v5, 0x5
aget v5, p1, v5
int-to-long v0, v5
move-wide/from16 v16, v0
const-wide v18, 0xffffffffL
and-long v16, v16, v18
.line 640
const/4 v5, 0x6
aget v5, p1, v5
int-to-long v0, v5
move-wide/from16 v18, v0
const-wide v20, 0xffffffffL
and-long v18, v18, v20
.line 642
mul-long/2addr v6, v14
add-long/2addr v2, v6
.line 643
long-to-int v5, v2
.line 644
const/4 v6, 0x3
shl-int/lit8 v7, v5, 0x1
or-int/2addr v4, v7
aput v4, p1, v6
.line 645
ushr-int/lit8 v4, v5, 0x1f
.line 646
const/16 v5, 0x20
ushr-long/2addr v2, v5
mul-long v6, v14, v8
add-long/2addr v2, v6
add-long/2addr v2, v12
.line 647
const/16 v5, 0x20
ushr-long v6, v2, v5
mul-long v8, v14, v10
add-long/2addr v6, v8
add-long v6, v6, v16
.line 648
const/16 v5, 0x20
ushr-long v8, v6, v5
add-long v8, v8, v18
.line 649
const-wide v10, 0xffffffffL
and-long/2addr v6, v10
.line 652
long-to-int v2, v2
.line 653
const/4 v3, 0x4
shl-int/lit8 v5, v2, 0x1
or-int/2addr v4, v5
aput v4, p1, v3
.line 654
ushr-int/lit8 v2, v2, 0x1f
.line 655
long-to-int v3, v6
.line 656
const/4 v4, 0x5
shl-int/lit8 v5, v3, 0x1
or-int/2addr v2, v5
aput v2, p1, v4
.line 657
ushr-int/lit8 v2, v3, 0x1f
.line 658
long-to-int v3, v8
.line 659
const/4 v4, 0x6
shl-int/lit8 v5, v3, 0x1
or-int/2addr v2, v5
aput v2, p1, v4
.line 660
ushr-int/lit8 v2, v3, 0x1f
.line 661
const/4 v3, 0x7
aget v3, p1, v3
const/16 v4, 0x20
shr-long v4, v8, v4
long-to-int v4, v4
add-int/2addr v3, v4
.line 662
const/4 v4, 0x7
shl-int/lit8 v3, v3, 0x1
or-int/2addr v2, v3
aput v2, p1, v4
.line 663
return-void
:cond_129
move v5, v3
move v3, v4
goto/16 :goto_10
.end method
.method public static sub([II[II[II)I
.registers 15
.prologue
const/16 v8, 0x20
const-wide v6, 0xffffffffL
.line 762
const-wide/16 v0, 0x0
aget v2, p0, p1
int-to-long v2, v2
and-long/2addr v2, v6
aget v4, p2, p3
int-to-long v4, v4
and-long/2addr v4, v6
sub-long/2addr v2, v4
add-long/2addr v0, v2
.line 763
long-to-int v2, v0
aput v2, p4, p5
.line 764
shr-long/2addr v0, v8
.line 765
add-int/lit8 v2, p1, 0x1
aget v2, p0, v2
int-to-long v2, v2
and-long/2addr v2, v6
add-int/lit8 v4, p3, 0x1
aget v4, p2, v4
int-to-long v4, v4
and-long/2addr v4, v6
sub-long/2addr v2, v4
add-long/2addr v0, v2
.line 766
add-int/lit8 v2, p5, 0x1
long-to-int v3, v0
aput v3, p4, v2
.line 767
shr-long/2addr v0, v8
.line 768
add-int/lit8 v2, p1, 0x2
aget v2, p0, v2
int-to-long v2, v2
and-long/2addr v2, v6
add-int/lit8 v4, p3, 0x2
aget v4, p2, v4
int-to-long v4, v4
and-long/2addr v4, v6
sub-long/2addr v2, v4
add-long/2addr v0, v2
.line 769
add-int/lit8 v2, p5, 0x2
long-to-int v3, v0
aput v3, p4, v2
.line 770
shr-long/2addr v0, v8
.line 771
add-int/lit8 v2, p1, 0x3
aget v2, p0, v2
int-to-long v2, v2
and-long/2addr v2, v6
add-int/lit8 v4, p3, 0x3
aget v4, p2, v4
int-to-long v4, v4
and-long/2addr v4, v6
sub-long/2addr v2, v4
add-long/2addr v0, v2
.line 772
add-int/lit8 v2, p5, 0x3
long-to-int v3, v0
aput v3, p4, v2
.line 773
shr-long/2addr v0, v8
.line 774
long-to-int v0, v0
return v0
.end method
.method public static sub([I[I[I)I
.registers 15
.prologue
const/4 v11, 0x2
const/4 v10, 0x1
const/4 v9, 0x0
const/16 v8, 0x20
const-wide v6, 0xffffffffL
.line 744
const-wide/16 v0, 0x0
aget v2, p0, v9
int-to-long v2, v2
and-long/2addr v2, v6
aget v4, p1, v9
int-to-long v4, v4
and-long/2addr v4, v6
sub-long/2addr v2, v4
add-long/2addr v0, v2
.line 745
long-to-int v2, v0
aput v2, p2, v9
.line 746
shr-long/2addr v0, v8
.line 747
aget v2, p0, v10
int-to-long v2, v2
and-long/2addr v2, v6
aget v4, p1, v10
int-to-long v4, v4
and-long/2addr v4, v6
sub-long/2addr v2, v4
add-long/2addr v0, v2
.line 748
long-to-int v2, v0
aput v2, p2, v10
.line 749
shr-long/2addr v0, v8
.line 750
aget v2, p0, v11
int-to-long v2, v2
and-long/2addr v2, v6
aget v4, p1, v11
int-to-long v4, v4
and-long/2addr v4, v6
sub-long/2addr v2, v4
add-long/2addr v0, v2
.line 751
long-to-int v2, v0
aput v2, p2, v11
.line 752
shr-long/2addr v0, v8
.line 753
const/4 v2, 0x3
aget v2, p0, v2
int-to-long v2, v2
and-long/2addr v2, v6
const/4 v4, 0x3
aget v4, p1, v4
int-to-long v4, v4
and-long/2addr v4, v6
sub-long/2addr v2, v4
add-long/2addr v0, v2
.line 754
const/4 v2, 0x3
long-to-int v3, v0
aput v3, p2, v2
.line 755
shr-long/2addr v0, v8
.line 756
long-to-int v0, v0
return v0
.end method
.method public static subBothFrom([I[I[I)I
.registers 15
.prologue
const/4 v11, 0x3
const/4 v10, 0x2
const/4 v9, 0x1
const/4 v8, 0x0
const-wide v6, 0xffffffffL
.line 780
const-wide/16 v0, 0x0
aget v2, p2, v8
int-to-long v2, v2
and-long/2addr v2, v6
aget v4, p0, v8
int-to-long v4, v4
and-long/2addr v4, v6
sub-long/2addr v2, v4
aget v4, p1, v8
int-to-long v4, v4
and-long/2addr v4, v6
sub-long/2addr v2, v4
add-long/2addr v0, v2
.line 781
long-to-int v2, v0
aput v2, p2, v8
.line 782
const/16 v2, 0x20
shr-long/2addr v0, v2
.line 783
aget v2, p2, v9
int-to-long v2, v2
and-long/2addr v2, v6
aget v4, p0, v9
int-to-long v4, v4
and-long/2addr v4, v6
sub-long/2addr v2, v4
aget v4, p1, v9
int-to-long v4, v4
and-long/2addr v4, v6
sub-long/2addr v2, v4
add-long/2addr v0, v2
.line 784
long-to-int v2, v0
aput v2, p2, v9
.line 785
const/16 v2, 0x20
shr-long/2addr v0, v2
.line 786
aget v2, p2, v10
int-to-long v2, v2
and-long/2addr v2, v6
aget v4, p0, v10
int-to-long v4, v4
and-long/2addr v4, v6
sub-long/2addr v2, v4
aget v4, p1, v10
int-to-long v4, v4
and-long/2addr v4, v6
sub-long/2addr v2, v4
add-long/2addr v0, v2
.line 787
long-to-int v2, v0
aput v2, p2, v10
.line 788
const/16 v2, 0x20
shr-long/2addr v0, v2
.line 789
aget v2, p2, v11
int-to-long v2, v2
and-long/2addr v2, v6
aget v4, p0, v11
int-to-long v4, v4
and-long/2addr v4, v6
sub-long/2addr v2, v4
aget v4, p1, v11
int-to-long v4, v4
and-long/2addr v4, v6
sub-long/2addr v2, v4
add-long/2addr v0, v2
.line 790
long-to-int v2, v0
aput v2, p2, v11
.line 791
const/16 v2, 0x20
shr-long/2addr v0, v2
.line 792
long-to-int v0, v0
return v0
.end method
.method public static subFrom([II[II)I
.registers 13
.prologue
const/16 v8, 0x20
const-wide v6, 0xffffffffL
.line 816
const-wide/16 v0, 0x0
aget v2, p2, p3
int-to-long v2, v2
and-long/2addr v2, v6
aget v4, p0, p1
int-to-long v4, v4
and-long/2addr v4, v6
sub-long/2addr v2, v4
add-long/2addr v0, v2
.line 817
long-to-int v2, v0
aput v2, p2, p3
.line 818
shr-long/2addr v0, v8
.line 819
add-int/lit8 v2, p3, 0x1
aget v2, p2, v2
int-to-long v2, v2
and-long/2addr v2, v6
add-int/lit8 v4, p1, 0x1
aget v4, p0, v4
int-to-long v4, v4
and-long/2addr v4, v6
sub-long/2addr v2, v4
add-long/2addr v0, v2
.line 820
add-int/lit8 v2, p3, 0x1
long-to-int v3, v0
aput v3, p2, v2
.line 821
shr-long/2addr v0, v8
.line 822
add-int/lit8 v2, p3, 0x2
aget v2, p2, v2
int-to-long v2, v2
and-long/2addr v2, v6
add-int/lit8 v4, p1, 0x2
aget v4, p0, v4
int-to-long v4, v4
and-long/2addr v4, v6
sub-long/2addr v2, v4
add-long/2addr v0, v2
.line 823
add-int/lit8 v2, p3, 0x2
long-to-int v3, v0
aput v3, p2, v2
.line 824
shr-long/2addr v0, v8
.line 825
add-int/lit8 v2, p3, 0x3
aget v2, p2, v2
int-to-long v2, v2
and-long/2addr v2, v6
add-int/lit8 v4, p1, 0x3
aget v4, p0, v4
int-to-long v4, v4
and-long/2addr v4, v6
sub-long/2addr v2, v4
add-long/2addr v0, v2
.line 826
add-int/lit8 v2, p3, 0x3
long-to-int v3, v0
aput v3, p2, v2
.line 827
shr-long/2addr v0, v8
.line 828
long-to-int v0, v0
return v0
.end method
.method public static subFrom([I[I)I
.registers 14
.prologue
const/4 v11, 0x2
const/4 v10, 0x1
const/4 v9, 0x0
const/16 v8, 0x20
const-wide v6, 0xffffffffL
.line 798
const-wide/16 v0, 0x0
aget v2, p1, v9
int-to-long v2, v2
and-long/2addr v2, v6
aget v4, p0, v9
int-to-long v4, v4
and-long/2addr v4, v6
sub-long/2addr v2, v4
add-long/2addr v0, v2
.line 799
long-to-int v2, v0
aput v2, p1, v9
.line 800
shr-long/2addr v0, v8
.line 801
aget v2, p1, v10
int-to-long v2, v2
and-long/2addr v2, v6
aget v4, p0, v10
int-to-long v4, v4
and-long/2addr v4, v6
sub-long/2addr v2, v4
add-long/2addr v0, v2
.line 802
long-to-int v2, v0
aput v2, p1, v10
.line 803
shr-long/2addr v0, v8
.line 804
aget v2, p1, v11
int-to-long v2, v2
and-long/2addr v2, v6
aget v4, p0, v11
int-to-long v4, v4
and-long/2addr v4, v6
sub-long/2addr v2, v4
add-long/2addr v0, v2
.line 805
long-to-int v2, v0
aput v2, p1, v11
.line 806
shr-long/2addr v0, v8
.line 807
const/4 v2, 0x3
aget v2, p1, v2
int-to-long v2, v2
and-long/2addr v2, v6
const/4 v4, 0x3
aget v4, p0, v4
int-to-long v4, v4
and-long/2addr v4, v6
sub-long/2addr v2, v4
add-long/2addr v0, v2
.line 808
const/4 v2, 0x3
long-to-int v3, v0
aput v3, p1, v2
.line 809
shr-long/2addr v0, v8
.line 810
long-to-int v0, v0
return v0
.end method
.method public static toBigInteger([I)Ljava/math/BigInteger;
.registers 5
.prologue
.line 833
const/16 v0, 0x10
new-array v1, v0, [B
.line 834
const/4 v0, 0x0
:goto_5
const/4 v2, 0x4
if-ge v0, v2, :cond_16
.line 836
aget v2, p0, v0
.line 837
if-eqz v2, :cond_13
.line 839
rsub-int/lit8 v3, v0, 0x3
shl-int/lit8 v3, v3, 0x2
invoke-static {v2, v1, v3}, Lorg/spongycastle/util/Pack;->intToBigEndian(I[BI)V
.line 834
:cond_13
add-int/lit8 v0, v0, 0x1
goto :goto_5
.line 842
:cond_16
new-instance v0, Ljava/math/BigInteger;
const/4 v2, 0x1
invoke-direct {v0, v2, v1}, Ljava/math/BigInteger;-><init>(I[B)V
return-object v0
.end method
.method public static toBigInteger64([J)Ljava/math/BigInteger;
.registers 7
.prologue
.line 847
const/16 v0, 0x10
new-array v1, v0, [B
.line 848
const/4 v0, 0x0
:goto_5
const/4 v2, 0x2
if-ge v0, v2, :cond_1a
.line 850
aget-wide v2, p0, v0
.line 851
const-wide/16 v4, 0x0
cmp-long v4, v2, v4
if-eqz v4, :cond_17
.line 853
rsub-int/lit8 v4, v0, 0x1
shl-int/lit8 v4, v4, 0x3
invoke-static {v2, v3, v1, v4}, Lorg/spongycastle/util/Pack;->longToBigEndian(J[BI)V
.line 848
:cond_17
add-int/lit8 v0, v0, 0x1
goto :goto_5
.line 856
:cond_1a
new-instance v0, Ljava/math/BigInteger;
const/4 v2, 0x1
invoke-direct {v0, v2, v1}, Ljava/math/BigInteger;-><init>(I[B)V
return-object v0
.end method
.method public static zero([I)V
.registers 3
.prologue
const/4 v1, 0x0
.line 861
aput v1, p0, v1
.line 862
const/4 v0, 0x1
aput v1, p0, v0
.line 863
const/4 v0, 0x2
aput v1, p0, v0
.line 864
const/4 v0, 0x3
aput v1, p0, v0
.line 865
return-void
.end method