Nat160.smali
.class public abstract Lorg/spongycastle/math/raw/Nat160;
.super Ljava/lang/Object;
.source "Nat160.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
const/4 v2, 0x4
aget v2, p0, v2
int-to-long v2, v2
and-long/2addr v2, v6
const/4 v4, 0x4
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 27
const/4 v2, 0x4
long-to-int v3, v0
aput v3, p2, v2
.line 28
ushr-long/2addr v0, v8
.line 29
long-to-int v0, v0
return v0
.end method
.method public static addBothTo([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 35
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
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
ushr-long/2addr v0, v8
.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
ushr-long/2addr v0, v8
.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
ushr-long/2addr v0, v8
.line 44
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
const/4 v4, 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 45
const/4 v2, 0x3
long-to-int v3, v0
aput v3, p2, v2
.line 46
ushr-long/2addr v0, v8
.line 47
const/4 v2, 0x4
aget v2, p0, v2
int-to-long v2, v2
and-long/2addr v2, v6
const/4 v4, 0x4
aget v4, p1, v4
int-to-long v4, v4
and-long/2addr v4, v6
add-long/2addr v2, v4
const/4 v4, 0x4
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 48
const/4 v2, 0x4
long-to-int v3, v0
aput v3, p2, v2
.line 49
ushr-long/2addr v0, v8
.line 50
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 76
int-to-long v0, p4
and-long/2addr v0, v6
.line 77
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 78
long-to-int v2, v0
aput v2, p2, p3
.line 79
ushr-long/2addr v0, v8
.line 80
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 81
add-int/lit8 v2, p3, 0x1
long-to-int v3, v0
aput v3, p2, v2
.line 82
ushr-long/2addr v0, v8
.line 83
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 84
add-int/lit8 v2, p3, 0x2
long-to-int v3, v0
aput v3, p2, v2
.line 85
ushr-long/2addr v0, v8
.line 86
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 87
add-int/lit8 v2, p3, 0x3
long-to-int v3, v0
aput v3, p2, v2
.line 88
ushr-long/2addr v0, v8
.line 89
add-int/lit8 v2, p1, 0x4
aget v2, p0, v2
int-to-long v2, v2
and-long/2addr v2, v6
add-int/lit8 v4, p3, 0x4
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 90
add-int/lit8 v2, p3, 0x4
long-to-int v3, v0
aput v3, p2, v2
.line 91
ushr-long/2addr v0, v8
.line 92
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 56
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 57
long-to-int v2, v0
aput v2, p1, v9
.line 58
ushr-long/2addr v0, v8
.line 59
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 60
long-to-int v2, v0
aput v2, p1, v10
.line 61
ushr-long/2addr v0, v8
.line 62
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 63
long-to-int v2, v0
aput v2, p1, v11
.line 64
ushr-long/2addr v0, v8
.line 65
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 66
const/4 v2, 0x3
long-to-int v3, v0
aput v3, p1, v2
.line 67
ushr-long/2addr v0, v8
.line 68
const/4 v2, 0x4
aget v2, p0, v2
int-to-long v2, v2
and-long/2addr v2, v6
const/4 v4, 0x4
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 69
const/4 v2, 0x4
long-to-int v3, v0
aput v3, p1, v2
.line 70
ushr-long/2addr v0, v8
.line 71
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 98
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 99
long-to-int v2, v0
aput v2, p0, p1
.line 100
long-to-int v2, v0
aput v2, p2, p3
.line 101
ushr-long/2addr v0, v8
.line 102
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 103
add-int/lit8 v2, p1, 0x1
long-to-int v3, v0
aput v3, p0, v2
.line 104
add-int/lit8 v2, p3, 0x1
long-to-int v3, v0
aput v3, p2, v2
.line 105
ushr-long/2addr v0, v8
.line 106
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 107
add-int/lit8 v2, p1, 0x2
long-to-int v3, v0
aput v3, p0, v2
.line 108
add-int/lit8 v2, p3, 0x2
long-to-int v3, v0
aput v3, p2, v2
.line 109
ushr-long/2addr v0, v8
.line 110
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 111
add-int/lit8 v2, p1, 0x3
long-to-int v3, v0
aput v3, p0, v2
.line 112
add-int/lit8 v2, p3, 0x3
long-to-int v3, v0
aput v3, p2, v2
.line 113
ushr-long/2addr v0, v8
.line 114
add-int/lit8 v2, p1, 0x4
aget v2, p0, v2
int-to-long v2, v2
and-long/2addr v2, v6
add-int/lit8 v4, p3, 0x4
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 115
add-int/lit8 v2, p1, 0x4
long-to-int v3, v0
aput v3, p0, v2
.line 116
add-int/lit8 v2, p3, 0x4
long-to-int v3, v0
aput v3, p2, v2
.line 117
ushr-long/2addr v0, v8
.line 118
long-to-int v0, v0
return v0
.end method
.method public static copy([I[I)V
.registers 8
.prologue
const/4 v5, 0x4
const/4 v4, 0x3
const/4 v3, 0x2
const/4 v2, 0x1
const/4 v1, 0x0
.line 123
aget v0, p0, v1
aput v0, p1, v1
.line 124
aget v0, p0, v2
aput v0, p1, v2
.line 125
aget v0, p0, v3
aput v0, p1, v3
.line 126
aget v0, p0, v4
aput v0, p1, v4
.line 127
aget v0, p0, v5
aput v0, p1, v5
.line 128
return-void
.end method
.method public static create()[I
.registers 1
.prologue
.line 132
const/4 v0, 0x5
new-array v0, v0, [I
return-object v0
.end method
.method public static createExt()[I
.registers 1
.prologue
.line 137
const/16 v0, 0xa
new-array v0, v0, [I
return-object v0
.end method
.method public static diff([II[II[II)Z
.registers 13
.prologue
.line 142
invoke-static {p0, p1, p2, p3}, Lorg/spongycastle/math/raw/Nat160;->gte([II[II)Z
move-result v6
.line 143
if-eqz v6, :cond_a
.line 145
invoke-static/range {p0 .. p5}, Lorg/spongycastle/math/raw/Nat160;->sub([II[II[II)I
.line 151
: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 149
invoke-static/range {v0 .. v5}, Lorg/spongycastle/math/raw/Nat160;->sub([II[II[II)I
goto :goto_9
.end method
.method public static eq([I[I)Z
.registers 5
.prologue
.line 156
const/4 v0, 0x4
:goto_1
if-ltz v0, :cond_e
.line 158
aget v1, p0, v0
aget v2, p1, v0
if-eq v1, v2, :cond_b
.line 160
const/4 v0, 0x0
.line 163
:goto_a
return v0
.line 156
:cond_b
add-int/lit8 v0, v0, -0x1
goto :goto_1
.line 163
:cond_e
const/4 v0, 0x1
goto :goto_a
.end method
.method public static fromBigInteger(Ljava/math/BigInteger;)[I
.registers 5
.prologue
.line 168
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, 0xa0
if-le v0, v1, :cond_14
.line 170
:cond_e
new-instance v0, Ljava/lang/IllegalArgumentException;
invoke-direct {v0}, Ljava/lang/IllegalArgumentException;-><init>()V
throw v0
.line 173
:cond_14
invoke-static {}, Lorg/spongycastle/math/raw/Nat160;->create()[I
move-result-object v2
.line 174
const/4 v0, 0x0
.line 175
:goto_19
invoke-virtual {p0}, Ljava/math/BigInteger;->signum()I
move-result v1
if-eqz v1, :cond_2f
.line 177
add-int/lit8 v1, v0, 0x1
invoke-virtual {p0}, Ljava/math/BigInteger;->intValue()I
move-result v3
aput v3, v2, v0
.line 178
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 180
:cond_2f
return-object v2
.end method
.method public static getBit([II)I
.registers 5
.prologue
const/4 v0, 0x0
.line 185
if-nez p1, :cond_8
.line 187
aget v0, p0, v0
and-int/lit8 v0, v0, 0x1
.line 195
:cond_7
:goto_7
return v0
.line 189
:cond_8
shr-int/lit8 v1, p1, 0x5
.line 190
if-ltz v1, :cond_7
const/4 v2, 0x5
if-ge v1, v2, :cond_7
.line 194
and-int/lit8 v0, p1, 0x1f
.line 195
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 214
const/4 v1, 0x4
:goto_4
if-ltz v1, :cond_13
.line 216
add-int v2, p1, v1
aget v2, p0, v2
xor-int/2addr v2, v4
.line 217
add-int v3, p3, v1
aget v3, p2, v3
xor-int/2addr v3, v4
.line 218
if-ge v2, v3, :cond_14
.line 219
const/4 v0, 0x0
.line 223
:cond_13
return v0
.line 220
:cond_14
if-gt v2, v3, :cond_13
.line 214
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 200
const/4 v1, 0x4
:goto_4
if-ltz v1, :cond_f
.line 202
aget v2, p0, v1
xor-int/2addr v2, v4
.line 203
aget v3, p1, v1
xor-int/2addr v3, v4
.line 204
if-ge v2, v3, :cond_10
.line 205
const/4 v0, 0x0
.line 209
:cond_f
return v0
.line 206
:cond_10
if-gt v2, v3, :cond_f
.line 200
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 228
aget v2, p0, v0
if-eq v2, v1, :cond_7
.line 239
:cond_6
:goto_6
return v0
:cond_7
move v2, v1
.line 232
:goto_8
const/4 v3, 0x5
if-ge v2, v3, :cond_12
.line 234
aget v3, p0, v2
if-nez v3, :cond_6
.line 232
add-int/lit8 v2, v2, 0x1
goto :goto_8
:cond_12
move v0, v1
.line 239
goto :goto_6
.end method
.method public static isZero([I)Z
.registers 4
.prologue
const/4 v0, 0x0
.line 244
move v1, v0
:goto_2
const/4 v2, 0x5
if-ge v1, v2, :cond_d
.line 246
aget v2, p0, v1
if-eqz v2, :cond_a
.line 251
:goto_9
return v0
.line 244
:cond_a
add-int/lit8 v1, v1, 0x1
goto :goto_2
.line 251
:cond_d
const/4 v0, 0x1
goto :goto_9
.end method
.method public static mul([II[II[II)V
.registers 30
.prologue
.line 306
aget v2, p2, p3
int-to-long v2, v2
const-wide v4, 0xffffffffL
and-long/2addr v4, v2
.line 307
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 308
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 309
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 310
add-int/lit8 v2, p3, 0x4
aget v2, p2, v2
int-to-long v2, v2
const-wide v12, 0xffffffffL
and-long/2addr v12, v2
.line 313
aget v2, p0, p1
int-to-long v2, v2
const-wide v14, 0xffffffffL
and-long/2addr v2, v14
.line 314
const-wide/16 v14, 0x0
mul-long v16, v2, v4
add-long v14, v14, v16
.line 315
long-to-int v0, v14
move/from16 v16, v0
aput v16, p4, p5
.line 316
const/16 v16, 0x20
ushr-long v14, v14, v16
.line 317
mul-long v16, v2, v6
add-long v14, v14, v16
.line 318
add-int/lit8 v16, p5, 0x1
long-to-int v0, v14
move/from16 v17, v0
aput v17, p4, v16
.line 319
const/16 v16, 0x20
ushr-long v14, v14, v16
.line 320
mul-long v16, v2, v8
add-long v14, v14, v16
.line 321
add-int/lit8 v16, p5, 0x2
long-to-int v0, v14
move/from16 v17, v0
aput v17, p4, v16
.line 322
const/16 v16, 0x20
ushr-long v14, v14, v16
.line 323
mul-long v16, v2, v10
add-long v14, v14, v16
.line 324
add-int/lit8 v16, p5, 0x3
long-to-int v0, v14
move/from16 v17, v0
aput v17, p4, v16
.line 325
const/16 v16, 0x20
ushr-long v14, v14, v16
.line 326
mul-long/2addr v2, v12
add-long/2addr v2, v14
.line 327
add-int/lit8 v14, p5, 0x4
long-to-int v15, v2
aput v15, p4, v14
.line 328
const/16 v14, 0x20
ushr-long/2addr v2, v14
.line 329
add-int/lit8 v14, p5, 0x5
long-to-int v2, v2
aput v2, p4, v14
.line 332
const/4 v2, 0x1
:goto_8a
const/4 v3, 0x5
if-ge v2, v3, :cond_141
.line 334
add-int/lit8 p5, p5, 0x1
.line 335
add-int v3, p1, v2
aget v3, p0, v3
int-to-long v14, v3
const-wide v16, 0xffffffffL
and-long v14, v14, v16
.line 336
const-wide/16 v16, 0x0
mul-long v18, v14, v4
aget v3, p4, p5
int-to-long v0, v3
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 337
move-wide/from16 v0, v16
long-to-int v3, v0
aput v3, p4, p5
.line 338
const/16 v3, 0x20
ushr-long v16, v16, v3
.line 339
mul-long v18, v14, v6
add-int/lit8 v3, p5, 0x1
aget v3, p4, v3
int-to-long v0, v3
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 340
add-int/lit8 v3, p5, 0x1
move-wide/from16 v0, v16
long-to-int v0, v0
move/from16 v18, v0
aput v18, p4, v3
.line 341
const/16 v3, 0x20
ushr-long v16, v16, v3
.line 342
mul-long v18, v14, v8
add-int/lit8 v3, p5, 0x2
aget v3, p4, v3
int-to-long v0, v3
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 343
add-int/lit8 v3, p5, 0x2
move-wide/from16 v0, v16
long-to-int v0, v0
move/from16 v18, v0
aput v18, p4, v3
.line 344
const/16 v3, 0x20
ushr-long v16, v16, v3
.line 345
mul-long v18, v14, v10
add-int/lit8 v3, p5, 0x3
aget v3, p4, v3
int-to-long v0, v3
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 346
add-int/lit8 v3, p5, 0x3
move-wide/from16 v0, v16
long-to-int v0, v0
move/from16 v18, v0
aput v18, p4, v3
.line 347
const/16 v3, 0x20
ushr-long v16, v16, v3
.line 348
mul-long/2addr v14, v12
add-int/lit8 v3, p5, 0x4
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 v14, v14, v18
add-long v14, v14, v16
.line 349
add-int/lit8 v3, p5, 0x4
long-to-int v0, v14
move/from16 v16, v0
aput v16, p4, v3
.line 350
const/16 v3, 0x20
ushr-long/2addr v14, v3
.line 351
add-int/lit8 v3, p5, 0x5
long-to-int v14, v14
aput v14, p4, v3
.line 332
add-int/lit8 v2, v2, 0x1
goto/16 :goto_8a
.line 353
:cond_141
return-void
.end method
.method public static mul([I[I[I)V
.registers 27
.prologue
.line 256
const/4 v2, 0x0
aget v2, p1, v2
int-to-long v2, v2
const-wide v4, 0xffffffffL
and-long/2addr v4, v2
.line 257
const/4 v2, 0x1
aget v2, p1, v2
int-to-long v2, v2
const-wide v6, 0xffffffffL
and-long/2addr v6, v2
.line 258
const/4 v2, 0x2
aget v2, p1, v2
int-to-long v2, v2
const-wide v8, 0xffffffffL
and-long/2addr v8, v2
.line 259
const/4 v2, 0x3
aget v2, p1, v2
int-to-long v2, v2
const-wide v10, 0xffffffffL
and-long/2addr v10, v2
.line 260
const/4 v2, 0x4
aget v2, p1, v2
int-to-long v2, v2
const-wide v12, 0xffffffffL
and-long/2addr v12, v2
.line 263
const/4 v2, 0x0
aget v2, p0, v2
int-to-long v2, v2
const-wide v14, 0xffffffffL
and-long/2addr v2, v14
.line 264
const-wide/16 v14, 0x0
mul-long v16, v2, v4
add-long v14, v14, v16
.line 265
const/16 v16, 0x0
long-to-int v0, v14
move/from16 v17, v0
aput v17, p2, v16
.line 266
const/16 v16, 0x20
ushr-long v14, v14, v16
.line 267
mul-long v16, v2, v6
add-long v14, v14, v16
.line 268
const/16 v16, 0x1
long-to-int v0, v14
move/from16 v17, v0
aput v17, p2, v16
.line 269
const/16 v16, 0x20
ushr-long v14, v14, v16
.line 270
mul-long v16, v2, v8
add-long v14, v14, v16
.line 271
const/16 v16, 0x2
long-to-int v0, v14
move/from16 v17, v0
aput v17, p2, v16
.line 272
const/16 v16, 0x20
ushr-long v14, v14, v16
.line 273
mul-long v16, v2, v10
add-long v14, v14, v16
.line 274
const/16 v16, 0x3
long-to-int v0, v14
move/from16 v17, v0
aput v17, p2, v16
.line 275
const/16 v16, 0x20
ushr-long v14, v14, v16
.line 276
mul-long/2addr v2, v12
add-long/2addr v2, v14
.line 277
const/4 v14, 0x4
long-to-int v15, v2
aput v15, p2, v14
.line 278
const/16 v14, 0x20
ushr-long/2addr v2, v14
.line 279
const/4 v14, 0x5
long-to-int v2, v2
aput v2, p2, v14
.line 282
const/4 v2, 0x1
:goto_88
const/4 v3, 0x5
if-ge v2, v3, :cond_13b
.line 284
aget v3, p0, v2
int-to-long v14, v3
const-wide v16, 0xffffffffL
and-long v14, v14, v16
.line 285
const-wide/16 v16, 0x0
mul-long v18, v14, v4
aget v3, p2, v2
int-to-long v0, v3
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 286
move-wide/from16 v0, v16
long-to-int v3, v0
aput v3, p2, v2
.line 287
const/16 v3, 0x20
ushr-long v16, v16, v3
.line 288
mul-long v18, v14, v6
add-int/lit8 v3, v2, 0x1
aget v3, p2, v3
int-to-long v0, v3
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 289
add-int/lit8 v3, v2, 0x1
move-wide/from16 v0, v16
long-to-int v0, v0
move/from16 v18, v0
aput v18, p2, v3
.line 290
const/16 v3, 0x20
ushr-long v16, v16, v3
.line 291
mul-long v18, v14, v8
add-int/lit8 v3, v2, 0x2
aget v3, p2, v3
int-to-long v0, v3
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 292
add-int/lit8 v3, v2, 0x2
move-wide/from16 v0, v16
long-to-int v0, v0
move/from16 v18, v0
aput v18, p2, v3
.line 293
const/16 v3, 0x20
ushr-long v16, v16, v3
.line 294
mul-long v18, v14, v10
add-int/lit8 v3, v2, 0x3
aget v3, p2, v3
int-to-long v0, v3
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 295
add-int/lit8 v3, v2, 0x3
move-wide/from16 v0, v16
long-to-int v0, v0
move/from16 v18, v0
aput v18, p2, v3
.line 296
const/16 v3, 0x20
ushr-long v16, v16, v3
.line 297
mul-long/2addr v14, v12
add-int/lit8 v3, v2, 0x4
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 v14, v14, v18
add-long v14, v14, v16
.line 298
add-int/lit8 v3, v2, 0x4
long-to-int v0, v14
move/from16 v16, v0
aput v16, p2, v3
.line 299
const/16 v3, 0x20
ushr-long/2addr v14, v3
.line 300
add-int/lit8 v3, v2, 0x5
long-to-int v14, v14
aput v14, p2, v3
.line 282
add-int/lit8 v2, v2, 0x1
goto/16 :goto_88
.line 302
:cond_13b
return-void
.end method
.method public static mul33Add(I[II[II[II)J
.registers 19
.prologue
.line 428
int-to-long v0, p0
const-wide v2, 0xffffffffL
and-long/2addr v0, v2
.line 429
aget v2, p1, p2
int-to-long v2, v2
const-wide v4, 0xffffffffL
and-long/2addr v2, v4
.line 430
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 431
long-to-int v6, v4
aput v6, p5, p6
.line 432
const/16 v6, 0x20
ushr-long/2addr v4, v6
.line 433
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 434
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 435
add-int/lit8 v4, p6, 0x1
long-to-int v5, v2
aput v5, p5, v4
.line 436
const/16 v4, 0x20
ushr-long/2addr v2, v4
.line 437
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 438
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 439
add-int/lit8 v6, p6, 0x2
long-to-int v7, v2
aput v7, p5, v6
.line 440
const/16 v6, 0x20
ushr-long/2addr v2, v6
.line 441
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 442
mul-long v8, v0, v6
add-long/2addr v4, v8
add-int/lit8 v8, p4, 0x3
aget v8, p3, v8
int-to-long v8, v8
const-wide v10, 0xffffffffL
and-long/2addr v8, v10
add-long/2addr v4, v8
add-long/2addr v2, v4
.line 443
add-int/lit8 v4, p6, 0x3
long-to-int v5, v2
aput v5, p5, v4
.line 444
const/16 v4, 0x20
ushr-long/2addr v2, v4
.line 445
add-int/lit8 v4, p2, 0x4
aget v4, p1, v4
int-to-long v4, v4
const-wide v8, 0xffffffffL
and-long/2addr v4, v8
.line 446
mul-long/2addr v0, v4
add-long/2addr v0, v6
add-int/lit8 v6, p4, 0x4
aget v6, p3, v6
int-to-long v6, v6
const-wide v8, 0xffffffffL
and-long/2addr v6, v8
add-long/2addr v0, v6
add-long/2addr v0, v2
.line 447
add-int/lit8 v2, p6, 0x4
long-to-int v3, v0
aput v3, p5, v2
.line 448
const/16 v2, 0x20
ushr-long/2addr v0, v2
.line 449
add-long/2addr v0, v4
.line 450
return-wide v0
.end method
.method public static mul33DWordAdd(IJ[II)I
.registers 20
.prologue
.line 481
int-to-long v2, p0
const-wide v4, 0xffffffffL
and-long/2addr v2, v4
.line 482
const-wide v4, 0xffffffffL
and-long v4, v4, p1
.line 483
const-wide/16 v6, 0x0
mul-long v8, v2, v4
aget v10, p3, p4
int-to-long v10, v10
const-wide v12, 0xffffffffL
and-long/2addr v10, v12
add-long/2addr v8, v10
add-long/2addr v6, v8
.line 484
long-to-int v8, v6
aput v8, p3, p4
.line 485
const/16 v8, 0x20
ushr-long/2addr v6, v8
.line 486
const/16 v8, 0x20
ushr-long v8, p1, v8
.line 487
mul-long/2addr v2, v8
add-long/2addr v2, v4
add-int/lit8 v4, p4, 0x1
aget v4, p3, v4
int-to-long v4, v4
const-wide v10, 0xffffffffL
and-long/2addr v4, v10
add-long/2addr v2, v4
add-long/2addr v2, v6
.line 488
add-int/lit8 v4, p4, 0x1
long-to-int v5, v2
aput v5, p3, v4
.line 489
const/16 v4, 0x20
ushr-long/2addr v2, v4
.line 490
add-int/lit8 v4, p4, 0x2
aget v4, p3, v4
int-to-long v4, v4
const-wide v6, 0xffffffffL
and-long/2addr v4, v6
add-long/2addr v4, v8
add-long/2addr v2, v4
.line 491
add-int/lit8 v4, p4, 0x2
long-to-int v5, v2
aput v5, p3, v4
.line 492
const/16 v4, 0x20
ushr-long/2addr v2, v4
.line 493
add-int/lit8 v4, p4, 0x3
aget v4, p3, v4
int-to-long v4, v4
const-wide v6, 0xffffffffL
and-long/2addr v4, v6
add-long/2addr v2, v4
.line 494
add-int/lit8 v4, p4, 0x3
long-to-int v5, v2
aput v5, p3, v4
.line 495
const/16 v4, 0x20
ushr-long/2addr v2, v4
.line 496
const-wide/16 v4, 0x0
cmp-long v2, v2, v4
if-nez v2, :cond_6f
const/4 v2, 0x0
:goto_6e
return v2
:cond_6f
const/4 v2, 0x5
const/4 v3, 0x4
move-object/from16 v0, p3
move/from16 v1, p4
invoke-static {v2, v0, v1, v3}, Lorg/spongycastle/math/raw/Nat;->incAt(I[III)I
move-result v2
goto :goto_6e
.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 504
int-to-long v0, p0
and-long/2addr v0, v6
int-to-long v2, p1
and-long/2addr v2, v6
.line 505
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 506
long-to-int v4, v0
aput v4, p2, p3
.line 507
ushr-long/2addr v0, v8
.line 508
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 509
add-int/lit8 v2, p3, 0x1
long-to-int v3, v0
aput v3, p2, v2
.line 510
ushr-long/2addr v0, v8
.line 511
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 512
add-int/lit8 v2, p3, 0x2
long-to-int v3, v0
aput v3, p2, v2
.line 513
ushr-long/2addr v0, v8
.line 514
cmp-long v0, v0, v10
if-nez v0, :cond_39
const/4 v0, 0x0
:goto_38
return v0
:cond_39
const/4 v0, 0x5
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 32
.prologue
.line 391
aget v2, p2, p3
int-to-long v2, v2
const-wide v4, 0xffffffffL
and-long v6, v2, v4
.line 392
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 393
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 394
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 395
add-int/lit8 v2, p3, 0x4
aget v2, p2, v2
int-to-long v2, v2
const-wide v4, 0xffffffffL
and-long v14, v2, v4
.line 397
const-wide/16 v2, 0x0
.line 398
const/4 v4, 0x0
:goto_3d
const/4 v5, 0x5
if-ge v4, v5, :cond_111
.line 400
add-int v5, p1, v4
aget v5, p0, v5
int-to-long v0, v5
move-wide/from16 v16, v0
const-wide v18, 0xffffffffL
and-long v16, v16, v18
.line 401
const-wide/16 v18, 0x0
mul-long v20, v16, v6
aget v5, p4, p5
int-to-long v0, v5
move-wide/from16 v22, v0
const-wide v24, 0xffffffffL
and-long v22, v22, v24
add-long v20, v20, v22
add-long v18, v18, v20
.line 402
move-wide/from16 v0, v18
long-to-int v5, v0
aput v5, p4, p5
.line 403
const/16 v5, 0x20
ushr-long v18, v18, v5
.line 404
mul-long v20, v16, v8
add-int/lit8 v5, p5, 0x1
aget v5, p4, v5
int-to-long v0, v5
move-wide/from16 v22, v0
const-wide v24, 0xffffffffL
and-long v22, v22, v24
add-long v20, v20, v22
add-long v18, v18, v20
.line 405
add-int/lit8 v5, p5, 0x1
move-wide/from16 v0, v18
long-to-int v0, v0
move/from16 v20, v0
aput v20, p4, v5
.line 406
const/16 v5, 0x20
ushr-long v18, v18, v5
.line 407
mul-long v20, v16, v10
add-int/lit8 v5, p5, 0x2
aget v5, p4, v5
int-to-long v0, v5
move-wide/from16 v22, v0
const-wide v24, 0xffffffffL
and-long v22, v22, v24
add-long v20, v20, v22
add-long v18, v18, v20
.line 408
add-int/lit8 v5, p5, 0x2
move-wide/from16 v0, v18
long-to-int v0, v0
move/from16 v20, v0
aput v20, p4, v5
.line 409
const/16 v5, 0x20
ushr-long v18, v18, v5
.line 410
mul-long v20, v16, v12
add-int/lit8 v5, p5, 0x3
aget v5, p4, v5
int-to-long v0, v5
move-wide/from16 v22, v0
const-wide v24, 0xffffffffL
and-long v22, v22, v24
add-long v20, v20, v22
add-long v18, v18, v20
.line 411
add-int/lit8 v5, p5, 0x3
move-wide/from16 v0, v18
long-to-int v0, v0
move/from16 v20, v0
aput v20, p4, v5
.line 412
const/16 v5, 0x20
ushr-long v18, v18, v5
.line 413
mul-long v16, v16, v14
add-int/lit8 v5, p5, 0x4
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 v16, v16, v20
add-long v16, v16, v18
.line 414
add-int/lit8 v5, p5, 0x4
move-wide/from16 v0, v16
long-to-int v0, v0
move/from16 v18, v0
aput v18, p4, v5
.line 415
const/16 v5, 0x20
ushr-long v16, v16, v5
.line 416
add-int/lit8 v5, p5, 0x5
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 v2, v2, v18
add-long v2, v2, v16
.line 417
add-int/lit8 v5, p5, 0x5
long-to-int v0, v2
move/from16 v16, v0
aput v16, p4, v5
.line 418
const/16 v5, 0x20
ushr-long/2addr v2, v5
.line 419
add-int/lit8 p5, p5, 0x1
.line 398
add-int/lit8 v4, v4, 0x1
goto/16 :goto_3d
.line 421
:cond_111
long-to-int v2, v2
return v2
.end method
.method public static mulAddTo([I[I[I)I
.registers 29
.prologue
.line 357
const/4 v2, 0x0
aget v2, p1, v2
int-to-long v2, v2
const-wide v4, 0xffffffffL
and-long v6, v2, v4
.line 358
const/4 v2, 0x1
aget v2, p1, v2
int-to-long v2, v2
const-wide v4, 0xffffffffL
and-long v8, v2, v4
.line 359
const/4 v2, 0x2
aget v2, p1, v2
int-to-long v2, v2
const-wide v4, 0xffffffffL
and-long v10, v2, v4
.line 360
const/4 v2, 0x3
aget v2, p1, v2
int-to-long v2, v2
const-wide v4, 0xffffffffL
and-long v12, v2, v4
.line 361
const/4 v2, 0x4
aget v2, p1, v2
int-to-long v2, v2
const-wide v4, 0xffffffffL
and-long v14, v2, v4
.line 363
const-wide/16 v2, 0x0
.line 364
const/4 v4, 0x0
:goto_3a
const/4 v5, 0x5
if-ge v4, v5, :cond_10a
.line 366
aget v5, p0, v4
int-to-long v0, v5
move-wide/from16 v16, v0
const-wide v18, 0xffffffffL
and-long v16, v16, v18
.line 367
const-wide/16 v18, 0x0
mul-long v20, v16, v6
aget v5, p2, v4
int-to-long v0, v5
move-wide/from16 v22, v0
const-wide v24, 0xffffffffL
and-long v22, v22, v24
add-long v20, v20, v22
add-long v18, v18, v20
.line 368
move-wide/from16 v0, v18
long-to-int v5, v0
aput v5, p2, v4
.line 369
const/16 v5, 0x20
ushr-long v18, v18, v5
.line 370
mul-long v20, v16, v8
add-int/lit8 v5, v4, 0x1
aget v5, p2, v5
int-to-long v0, v5
move-wide/from16 v22, v0
const-wide v24, 0xffffffffL
and-long v22, v22, v24
add-long v20, v20, v22
add-long v18, v18, v20
.line 371
add-int/lit8 v5, v4, 0x1
move-wide/from16 v0, v18
long-to-int v0, v0
move/from16 v20, v0
aput v20, p2, v5
.line 372
const/16 v5, 0x20
ushr-long v18, v18, v5
.line 373
mul-long v20, v16, v10
add-int/lit8 v5, v4, 0x2
aget v5, p2, v5
int-to-long v0, v5
move-wide/from16 v22, v0
const-wide v24, 0xffffffffL
and-long v22, v22, v24
add-long v20, v20, v22
add-long v18, v18, v20
.line 374
add-int/lit8 v5, v4, 0x2
move-wide/from16 v0, v18
long-to-int v0, v0
move/from16 v20, v0
aput v20, p2, v5
.line 375
const/16 v5, 0x20
ushr-long v18, v18, v5
.line 376
mul-long v20, v16, v12
add-int/lit8 v5, v4, 0x3
aget v5, p2, v5
int-to-long v0, v5
move-wide/from16 v22, v0
const-wide v24, 0xffffffffL
and-long v22, v22, v24
add-long v20, v20, v22
add-long v18, v18, v20
.line 377
add-int/lit8 v5, v4, 0x3
move-wide/from16 v0, v18
long-to-int v0, v0
move/from16 v20, v0
aput v20, p2, v5
.line 378
const/16 v5, 0x20
ushr-long v18, v18, v5
.line 379
mul-long v16, v16, v14
add-int/lit8 v5, v4, 0x4
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 v16, v16, v20
add-long v16, v16, v18
.line 380
add-int/lit8 v5, v4, 0x4
move-wide/from16 v0, v16
long-to-int v0, v0
move/from16 v18, v0
aput v18, p2, v5
.line 381
const/16 v5, 0x20
ushr-long v16, v16, v5
.line 382
add-int/lit8 v5, v4, 0x5
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 v2, v2, v18
add-long v2, v2, v16
.line 383
add-int/lit8 v5, v4, 0x5
long-to-int v0, v2
move/from16 v16, v0
aput v16, p2, v5
.line 384
const/16 v5, 0x20
ushr-long/2addr v2, v5
.line 364
add-int/lit8 v4, v4, 0x1
goto/16 :goto_3a
.line 386
:cond_10a
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 549
const-wide/16 v0, 0x0
int-to-long v2, p0
and-long v4, v2, v8
.line 550
const/4 v2, 0x0
.line 553
: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 554
add-int v3, p3, v2
long-to-int v6, v0
aput v6, p2, v3
.line 555
const/16 v3, 0x20
ushr-long/2addr v0, v3
.line 557
add-int/lit8 v2, v2, 0x1
const/4 v3, 0x5
if-lt v2, v3, :cond_b
.line 558
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 457
int-to-long v0, p0
and-long/2addr v0, v8
.line 458
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 459
long-to-int v4, v2
aput v4, p3, p4
.line 460
ushr-long/2addr v2, v10
.line 461
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 462
add-int/lit8 v4, p4, 0x1
long-to-int v5, v2
aput v5, p3, v4
.line 463
ushr-long/2addr v2, v10
.line 464
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 465
add-int/lit8 v4, p4, 0x2
long-to-int v5, v2
aput v5, p3, v4
.line 466
ushr-long/2addr v2, v10
.line 467
add-int/lit8 v4, p2, 0x3
aget v4, p1, v4
int-to-long v4, v4
and-long/2addr v4, v8
mul-long/2addr v4, v0
add-int/lit8 v6, p4, 0x3
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 468
add-int/lit8 v4, p4, 0x3
long-to-int v5, v2
aput v5, p3, v4
.line 469
ushr-long/2addr v2, v10
.line 470
add-int/lit8 v4, p2, 0x4
aget v4, p1, v4
int-to-long v4, v4
and-long/2addr v4, v8
mul-long/2addr v0, v4
add-int/lit8 v4, p4, 0x4
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 471
add-int/lit8 v2, p4, 0x4
long-to-int v3, v0
aput v3, p3, v2
.line 472
ushr-long/2addr v0, v10
.line 473
long-to-int v0, v0
return v0
.end method
.method public static mulWordDwordAdd(IJ[II)I
.registers 16
.prologue
.line 520
int-to-long v0, p0
const-wide v2, 0xffffffffL
and-long/2addr v0, v2
.line 521
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 522
long-to-int v4, v2
aput v4, p3, p4
.line 523
const/16 v4, 0x20
ushr-long/2addr v2, v4
.line 524
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 525
add-int/lit8 v2, p4, 0x1
long-to-int v3, v0
aput v3, p3, v2
.line 526
const/16 v2, 0x20
ushr-long/2addr v0, v2
.line 527
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 528
add-int/lit8 v2, p4, 0x2
long-to-int v3, v0
aput v3, p3, v2
.line 529
const/16 v2, 0x20
ushr-long/2addr v0, v2
.line 530
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, 0x5
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 537
int-to-long v0, p0
and-long/2addr v0, v4
int-to-long v2, p1
and-long/2addr v2, v4
.line 538
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 539
long-to-int v2, v0
aput v2, p2, p3
.line 540
ushr-long/2addr v0, v6
.line 541
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 542
add-int/lit8 v2, p3, 0x1
long-to-int v3, v0
aput v3, p2, v2
.line 543
ushr-long/2addr v0, v6
.line 544
cmp-long v0, v0, v8
if-nez v0, :cond_2b
const/4 v0, 0x0
:goto_2a
return v0
:cond_2b
const/4 v0, 0x5
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 30
.prologue
.line 658
aget v2, p0, p1
int-to-long v2, v2
const-wide v4, 0xffffffffL
and-long v6, v2, v4
.line 661
const/4 v4, 0x0
.line 663
const/4 v3, 0x4
const/16 v2, 0xa
move v5, v4
.line 666
: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 667
mul-long/2addr v8, v8
.line 668
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 669
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 670
long-to-int v3, v8
.line 672
if-gtz v4, :cond_1a9
.line 675
mul-long v4, v6, v6
.line 676
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 677
long-to-int v8, v4
aput v8, p2, p3
.line 678
const/16 v8, 0x20
ushr-long/2addr v4, v8
long-to-int v4, v4
and-int/lit8 v4, v4, 0x1
.line 682
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 683
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 686
mul-long v12, v8, v6
add-long/2addr v2, v12
.line 687
long-to-int v5, v2
.line 688
add-int/lit8 v12, p3, 0x1
shl-int/lit8 v13, v5, 0x1
or-int/2addr v4, v13
aput v4, p2, v12
.line 689
ushr-int/lit8 v4, v5, 0x1f
.line 690
const/16 v5, 0x20
ushr-long/2addr v2, v5
add-long/2addr v2, v10
.line 693
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 694
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 695
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 697
mul-long v16, v10, v6
add-long v2, v2, v16
.line 698
long-to-int v5, v2
.line 699
add-int/lit8 v16, p3, 0x2
shl-int/lit8 v17, v5, 0x1
or-int v4, v4, v17
aput v4, p2, v16
.line 700
ushr-int/lit8 v4, v5, 0x1f
.line 701
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 702
const/16 v5, 0x20
ushr-long v12, v2, v5
add-long/2addr v12, v14
.line 703
const-wide v14, 0xffffffffL
and-long/2addr v2, v14
.line 706
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 707
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 708
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 710
mul-long v20, v14, v6
add-long v2, v2, v20
.line 711
long-to-int v5, v2
.line 712
add-int/lit8 v20, p3, 0x3
shl-int/lit8 v21, v5, 0x1
or-int v4, v4, v21
aput v4, p2, v20
.line 713
ushr-int/lit8 v4, v5, 0x1f
.line 714
const/16 v5, 0x20
ushr-long/2addr v2, v5
mul-long v20, v14, v8
add-long v2, v2, v20
add-long/2addr v2, v12
.line 715
const/16 v5, 0x20
ushr-long v12, v2, v5
mul-long v20, v14, v10
add-long v12, v12, v20
add-long v12, v12, v16
.line 716
const-wide v16, 0xffffffffL
and-long v2, v2, v16
.line 717
const/16 v5, 0x20
ushr-long v16, v12, v5
add-long v16, v16, v18
.line 718
const-wide v18, 0xffffffffL
and-long v12, v12, v18
.line 721
add-int/lit8 v5, p1, 0x4
aget v5, p0, v5
int-to-long v0, v5
move-wide/from16 v18, v0
const-wide v20, 0xffffffffL
and-long v18, v18, v20
.line 722
add-int/lit8 v5, p3, 0x7
aget v5, p2, v5
int-to-long v0, v5
move-wide/from16 v20, v0
const-wide v22, 0xffffffffL
and-long v20, v20, v22
.line 723
add-int/lit8 v5, p3, 0x8
aget v5, p2, v5
int-to-long v0, v5
move-wide/from16 v22, v0
const-wide v24, 0xffffffffL
and-long v22, v22, v24
.line 725
mul-long v6, v6, v18
add-long/2addr v2, v6
.line 726
long-to-int v5, v2
.line 727
add-int/lit8 v6, p3, 0x4
shl-int/lit8 v7, v5, 0x1
or-int/2addr v4, v7
aput v4, p2, v6
.line 728
ushr-int/lit8 v4, v5, 0x1f
.line 729
const/16 v5, 0x20
ushr-long/2addr v2, v5
mul-long v6, v18, v8
add-long/2addr v2, v6
add-long/2addr v2, v12
.line 730
const/16 v5, 0x20
ushr-long v6, v2, v5
mul-long v8, v18, v10
add-long/2addr v6, v8
add-long v6, v6, v16
.line 731
const/16 v5, 0x20
ushr-long v8, v6, v5
mul-long v10, v18, v14
add-long/2addr v8, v10
add-long v8, v8, v20
.line 732
const/16 v5, 0x20
ushr-long v10, v8, v5
add-long v10, v10, v22
.line 735
long-to-int v2, v2
.line 736
add-int/lit8 v3, p3, 0x5
shl-int/lit8 v5, v2, 0x1
or-int/2addr v4, v5
aput v4, p2, v3
.line 737
ushr-int/lit8 v2, v2, 0x1f
.line 738
long-to-int v3, v6
.line 739
add-int/lit8 v4, p3, 0x6
shl-int/lit8 v5, v3, 0x1
or-int/2addr v2, v5
aput v2, p2, v4
.line 740
ushr-int/lit8 v2, v3, 0x1f
.line 741
long-to-int v3, v8
.line 742
add-int/lit8 v4, p3, 0x7
shl-int/lit8 v5, v3, 0x1
or-int/2addr v2, v5
aput v2, p2, v4
.line 743
ushr-int/lit8 v2, v3, 0x1f
.line 744
long-to-int v3, v10
.line 745
add-int/lit8 v4, p3, 0x8
shl-int/lit8 v5, v3, 0x1
or-int/2addr v2, v5
aput v2, p2, v4
.line 746
ushr-int/lit8 v2, v3, 0x1f
.line 747
add-int/lit8 v3, p3, 0x9
aget v3, p2, v3
const/16 v4, 0x20
shr-long v4, v10, v4
long-to-int v4, v4
add-int/2addr v3, v4
.line 748
add-int/lit8 v4, p3, 0x9
shl-int/lit8 v3, v3, 0x1
or-int/2addr v2, v3
aput v2, p2, v4
.line 749
return-void
:cond_1a9
move v5, v3
move v3, v4
goto/16 :goto_f
.end method
.method public static square([I[I)V
.registers 28
.prologue
.line 563
const/4 v2, 0x0
aget v2, p0, v2
int-to-long v2, v2
const-wide v4, 0xffffffffL
and-long v6, v2, v4
.line 566
const/4 v4, 0x0
.line 568
const/4 v3, 0x4
const/16 v2, 0xa
move v5, v4
.line 571
: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 572
mul-long/2addr v8, v8
.line 573
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 574
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 575
long-to-int v3, v8
.line 577
if-gtz v4, :cond_196
.line 580
mul-long v4, v6, v6
.line 581
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 582
const/4 v8, 0x0
long-to-int v9, v4
aput v9, p1, v8
.line 583
const/16 v8, 0x20
ushr-long/2addr v4, v8
long-to-int v4, v4
and-int/lit8 v4, v4, 0x1
.line 587
const/4 v5, 0x1
aget v5, p0, v5
int-to-long v8, v5
const-wide v10, 0xffffffffL
and-long/2addr v8, v10
.line 588
const/4 v5, 0x2
aget v5, p1, v5
int-to-long v10, v5
const-wide v12, 0xffffffffL
and-long/2addr v10, v12
.line 591
mul-long v12, v8, v6
add-long/2addr v2, v12
.line 592
long-to-int v5, v2
.line 593
const/4 v12, 0x1
shl-int/lit8 v13, v5, 0x1
or-int/2addr v4, v13
aput v4, p1, v12
.line 594
ushr-int/lit8 v4, v5, 0x1f
.line 595
const/16 v5, 0x20
ushr-long/2addr v2, v5
add-long/2addr v2, v10
.line 598
const/4 v5, 0x2
aget v5, p0, v5
int-to-long v10, v5
const-wide v12, 0xffffffffL
and-long/2addr v10, v12
.line 599
const/4 v5, 0x3
aget v5, p1, v5
int-to-long v12, v5
const-wide v14, 0xffffffffL
and-long/2addr v12, v14
.line 600
const/4 v5, 0x4
aget v5, p1, v5
int-to-long v14, v5
const-wide v16, 0xffffffffL
and-long v14, v14, v16
.line 602
mul-long v16, v10, v6
add-long v2, v2, v16
.line 603
long-to-int v5, v2
.line 604
const/16 v16, 0x2
shl-int/lit8 v17, v5, 0x1
or-int v4, v4, v17
aput v4, p1, v16
.line 605
ushr-int/lit8 v4, v5, 0x1f
.line 606
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 607
const/16 v5, 0x20
ushr-long v12, v2, v5
add-long/2addr v12, v14
.line 608
const-wide v14, 0xffffffffL
and-long/2addr v2, v14
.line 611
const/4 v5, 0x3
aget v5, p0, v5
int-to-long v14, v5
const-wide v16, 0xffffffffL
and-long v14, v14, v16
.line 612
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 613
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 615
mul-long v20, v14, v6
add-long v2, v2, v20
.line 616
long-to-int v5, v2
.line 617
const/16 v20, 0x3
shl-int/lit8 v21, v5, 0x1
or-int v4, v4, v21
aput v4, p1, v20
.line 618
ushr-int/lit8 v4, v5, 0x1f
.line 619
const/16 v5, 0x20
ushr-long/2addr v2, v5
mul-long v20, v14, v8
add-long v2, v2, v20
add-long/2addr v2, v12
.line 620
const/16 v5, 0x20
ushr-long v12, v2, v5
mul-long v20, v14, v10
add-long v12, v12, v20
add-long v12, v12, v16
.line 621
const-wide v16, 0xffffffffL
and-long v2, v2, v16
.line 622
const/16 v5, 0x20
ushr-long v16, v12, v5
add-long v16, v16, v18
.line 623
const-wide v18, 0xffffffffL
and-long v12, v12, v18
.line 626
const/4 v5, 0x4
aget v5, p0, v5
int-to-long v0, v5
move-wide/from16 v18, v0
const-wide v20, 0xffffffffL
and-long v18, v18, v20
.line 627
const/4 v5, 0x7
aget v5, p1, v5
int-to-long v0, v5
move-wide/from16 v20, v0
const-wide v22, 0xffffffffL
and-long v20, v20, v22
.line 628
const/16 v5, 0x8
aget v5, p1, v5
int-to-long v0, v5
move-wide/from16 v22, v0
const-wide v24, 0xffffffffL
and-long v22, v22, v24
.line 630
mul-long v6, v6, v18
add-long/2addr v2, v6
.line 631
long-to-int v5, v2
.line 632
const/4 v6, 0x4
shl-int/lit8 v7, v5, 0x1
or-int/2addr v4, v7
aput v4, p1, v6
.line 633
ushr-int/lit8 v4, v5, 0x1f
.line 634
const/16 v5, 0x20
ushr-long/2addr v2, v5
mul-long v6, v18, v8
add-long/2addr v2, v6
add-long/2addr v2, v12
.line 635
const/16 v5, 0x20
ushr-long v6, v2, v5
mul-long v8, v18, v10
add-long/2addr v6, v8
add-long v6, v6, v16
.line 636
const/16 v5, 0x20
ushr-long v8, v6, v5
mul-long v10, v18, v14
add-long/2addr v8, v10
add-long v8, v8, v20
.line 637
const/16 v5, 0x20
ushr-long v10, v8, v5
add-long v10, v10, v22
.line 640
long-to-int v2, v2
.line 641
const/4 v3, 0x5
shl-int/lit8 v5, v2, 0x1
or-int/2addr v4, v5
aput v4, p1, v3
.line 642
ushr-int/lit8 v2, v2, 0x1f
.line 643
long-to-int v3, v6
.line 644
const/4 v4, 0x6
shl-int/lit8 v5, v3, 0x1
or-int/2addr v2, v5
aput v2, p1, v4
.line 645
ushr-int/lit8 v2, v3, 0x1f
.line 646
long-to-int v3, v8
.line 647
const/4 v4, 0x7
shl-int/lit8 v5, v3, 0x1
or-int/2addr v2, v5
aput v2, p1, v4
.line 648
ushr-int/lit8 v2, v3, 0x1f
.line 649
long-to-int v3, v10
.line 650
const/16 v4, 0x8
shl-int/lit8 v5, v3, 0x1
or-int/2addr v2, v5
aput v2, p1, v4
.line 651
ushr-int/lit8 v2, v3, 0x1f
.line 652
const/16 v3, 0x9
aget v3, p1, v3
const/16 v4, 0x20
shr-long v4, v10, v4
long-to-int v4, v4
add-int/2addr v3, v4
.line 653
const/16 v4, 0x9
shl-int/lit8 v3, v3, 0x1
or-int/2addr v2, v3
aput v2, p1, v4
.line 654
return-void
:cond_196
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 775
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 776
long-to-int v2, v0
aput v2, p4, p5
.line 777
shr-long/2addr v0, v8
.line 778
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 779
add-int/lit8 v2, p5, 0x1
long-to-int v3, v0
aput v3, p4, v2
.line 780
shr-long/2addr v0, v8
.line 781
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 782
add-int/lit8 v2, p5, 0x2
long-to-int v3, v0
aput v3, p4, v2
.line 783
shr-long/2addr v0, v8
.line 784
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 785
add-int/lit8 v2, p5, 0x3
long-to-int v3, v0
aput v3, p4, v2
.line 786
shr-long/2addr v0, v8
.line 787
add-int/lit8 v2, p1, 0x4
aget v2, p0, v2
int-to-long v2, v2
and-long/2addr v2, v6
add-int/lit8 v4, p3, 0x4
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 788
add-int/lit8 v2, p5, 0x4
long-to-int v3, v0
aput v3, p4, v2
.line 789
shr-long/2addr v0, v8
.line 790
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 754
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 755
long-to-int v2, v0
aput v2, p2, v9
.line 756
shr-long/2addr v0, v8
.line 757
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 758
long-to-int v2, v0
aput v2, p2, v10
.line 759
shr-long/2addr v0, v8
.line 760
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 761
long-to-int v2, v0
aput v2, p2, v11
.line 762
shr-long/2addr v0, v8
.line 763
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 764
const/4 v2, 0x3
long-to-int v3, v0
aput v3, p2, v2
.line 765
shr-long/2addr v0, v8
.line 766
const/4 v2, 0x4
aget v2, p0, v2
int-to-long v2, v2
and-long/2addr v2, v6
const/4 v4, 0x4
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 767
const/4 v2, 0x4
long-to-int v3, v0
aput v3, p2, v2
.line 768
shr-long/2addr v0, v8
.line 769
long-to-int v0, v0
return v0
.end method
.method public static subBothFrom([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 796
const-wide/16 v0, 0x0
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 797
long-to-int v2, v0
aput v2, p2, v9
.line 798
shr-long/2addr v0, v8
.line 799
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 800
long-to-int v2, v0
aput v2, p2, v10
.line 801
shr-long/2addr v0, v8
.line 802
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 803
long-to-int v2, v0
aput v2, p2, v11
.line 804
shr-long/2addr v0, v8
.line 805
const/4 v2, 0x3
aget v2, p2, 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
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 806
const/4 v2, 0x3
long-to-int v3, v0
aput v3, p2, v2
.line 807
shr-long/2addr v0, v8
.line 808
const/4 v2, 0x4
aget v2, p2, v2
int-to-long v2, v2
and-long/2addr v2, v6
const/4 v4, 0x4
aget v4, p0, v4
int-to-long v4, v4
and-long/2addr v4, v6
sub-long/2addr v2, v4
const/4 v4, 0x4
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 809
const/4 v2, 0x4
long-to-int v3, v0
aput v3, p2, v2
.line 810
shr-long/2addr v0, v8
.line 811
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 838
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 839
long-to-int v2, v0
aput v2, p2, p3
.line 840
shr-long/2addr v0, v8
.line 841
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 842
add-int/lit8 v2, p3, 0x1
long-to-int v3, v0
aput v3, p2, v2
.line 843
shr-long/2addr v0, v8
.line 844
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 845
add-int/lit8 v2, p3, 0x2
long-to-int v3, v0
aput v3, p2, v2
.line 846
shr-long/2addr v0, v8
.line 847
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 848
add-int/lit8 v2, p3, 0x3
long-to-int v3, v0
aput v3, p2, v2
.line 849
shr-long/2addr v0, v8
.line 850
add-int/lit8 v2, p3, 0x4
aget v2, p2, v2
int-to-long v2, v2
and-long/2addr v2, v6
add-int/lit8 v4, p1, 0x4
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 851
add-int/lit8 v2, p3, 0x4
long-to-int v3, v0
aput v3, p2, v2
.line 852
shr-long/2addr v0, v8
.line 853
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 817
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 818
long-to-int v2, v0
aput v2, p1, v9
.line 819
shr-long/2addr v0, v8
.line 820
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 821
long-to-int v2, v0
aput v2, p1, v10
.line 822
shr-long/2addr v0, v8
.line 823
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 824
long-to-int v2, v0
aput v2, p1, v11
.line 825
shr-long/2addr v0, v8
.line 826
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 827
const/4 v2, 0x3
long-to-int v3, v0
aput v3, p1, v2
.line 828
shr-long/2addr v0, v8
.line 829
const/4 v2, 0x4
aget v2, p1, v2
int-to-long v2, v2
and-long/2addr v2, v6
const/4 v4, 0x4
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 830
const/4 v2, 0x4
long-to-int v3, v0
aput v3, p1, v2
.line 831
shr-long/2addr v0, v8
.line 832
long-to-int v0, v0
return v0
.end method
.method public static toBigInteger([I)Ljava/math/BigInteger;
.registers 5
.prologue
.line 858
const/16 v0, 0x14
new-array v1, v0, [B
.line 859
const/4 v0, 0x0
:goto_5
const/4 v2, 0x5
if-ge v0, v2, :cond_16
.line 861
aget v2, p0, v0
.line 862
if-eqz v2, :cond_13
.line 864
rsub-int/lit8 v3, v0, 0x4
shl-int/lit8 v3, v3, 0x2
invoke-static {v2, v1, v3}, Lorg/spongycastle/util/Pack;->intToBigEndian(I[BI)V
.line 859
:cond_13
add-int/lit8 v0, v0, 0x1
goto :goto_5
.line 867
: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 zero([I)V
.registers 3
.prologue
const/4 v1, 0x0
.line 872
aput v1, p0, v1
.line 873
const/4 v0, 0x1
aput v1, p0, v0
.line 874
const/4 v0, 0x2
aput v1, p0, v0
.line 875
const/4 v0, 0x3
aput v1, p0, v0
.line 876
const/4 v0, 0x4
aput v1, p0, v0
.line 877
return-void
.end method