Nat192.smali
.class public abstract Lorg/spongycastle/math/raw/Nat192;
.super Ljava/lang/Object;
.source "Nat192.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
const/4 v2, 0x5
aget v2, p0, v2
int-to-long v2, v2
and-long/2addr v2, v6
const/4 v4, 0x5
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 30
const/4 v2, 0x5
long-to-int v3, v0
aput v3, p2, v2
.line 31
ushr-long/2addr v0, v8
.line 32
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 38
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 39
long-to-int v2, v0
aput v2, p2, v9
.line 40
ushr-long/2addr v0, v8
.line 41
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 42
long-to-int v2, v0
aput v2, p2, v10
.line 43
ushr-long/2addr v0, v8
.line 44
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 45
long-to-int v2, v0
aput v2, p2, v11
.line 46
ushr-long/2addr v0, v8
.line 47
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 48
const/4 v2, 0x3
long-to-int v3, v0
aput v3, p2, v2
.line 49
ushr-long/2addr v0, v8
.line 50
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 51
const/4 v2, 0x4
long-to-int v3, v0
aput v3, p2, v2
.line 52
ushr-long/2addr v0, v8
.line 53
const/4 v2, 0x5
aget v2, p0, v2
int-to-long v2, v2
and-long/2addr v2, v6
const/4 v4, 0x5
aget v4, p1, v4
int-to-long v4, v4
and-long/2addr v4, v6
add-long/2addr v2, v4
const/4 v4, 0x5
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 54
const/4 v2, 0x5
long-to-int v3, v0
aput v3, p2, v2
.line 55
ushr-long/2addr v0, v8
.line 56
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 85
int-to-long v0, p4
and-long/2addr v0, v6
.line 86
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, p2, p3
.line 88
ushr-long/2addr v0, v8
.line 89
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 90
add-int/lit8 v2, p3, 0x1
long-to-int v3, v0
aput v3, p2, v2
.line 91
ushr-long/2addr v0, v8
.line 92
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 93
add-int/lit8 v2, p3, 0x2
long-to-int v3, v0
aput v3, p2, v2
.line 94
ushr-long/2addr v0, v8
.line 95
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 96
add-int/lit8 v2, p3, 0x3
long-to-int v3, v0
aput v3, p2, v2
.line 97
ushr-long/2addr v0, v8
.line 98
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 99
add-int/lit8 v2, p3, 0x4
long-to-int v3, v0
aput v3, p2, v2
.line 100
ushr-long/2addr v0, v8
.line 101
add-int/lit8 v2, p1, 0x5
aget v2, p0, v2
int-to-long v2, v2
and-long/2addr v2, v6
add-int/lit8 v4, p3, 0x5
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 102
add-int/lit8 v2, p3, 0x5
long-to-int v3, v0
aput v3, p2, v2
.line 103
ushr-long/2addr v0, v8
.line 104
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 62
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 63
long-to-int v2, v0
aput v2, p1, v9
.line 64
ushr-long/2addr v0, v8
.line 65
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 66
long-to-int v2, v0
aput v2, p1, v10
.line 67
ushr-long/2addr v0, v8
.line 68
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 69
long-to-int v2, v0
aput v2, p1, v11
.line 70
ushr-long/2addr v0, v8
.line 71
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 72
const/4 v2, 0x3
long-to-int v3, v0
aput v3, p1, v2
.line 73
ushr-long/2addr v0, v8
.line 74
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 75
const/4 v2, 0x4
long-to-int v3, v0
aput v3, p1, v2
.line 76
ushr-long/2addr v0, v8
.line 77
const/4 v2, 0x5
aget v2, p0, v2
int-to-long v2, v2
and-long/2addr v2, v6
const/4 v4, 0x5
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 78
const/4 v2, 0x5
long-to-int v3, v0
aput v3, p1, v2
.line 79
ushr-long/2addr v0, v8
.line 80
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 110
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 111
long-to-int v2, v0
aput v2, p0, p1
.line 112
long-to-int v2, v0
aput v2, p2, p3
.line 113
ushr-long/2addr v0, v8
.line 114
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 115
add-int/lit8 v2, p1, 0x1
long-to-int v3, v0
aput v3, p0, v2
.line 116
add-int/lit8 v2, p3, 0x1
long-to-int v3, v0
aput v3, p2, v2
.line 117
ushr-long/2addr v0, v8
.line 118
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 119
add-int/lit8 v2, p1, 0x2
long-to-int v3, v0
aput v3, p0, v2
.line 120
add-int/lit8 v2, p3, 0x2
long-to-int v3, v0
aput v3, p2, v2
.line 121
ushr-long/2addr v0, v8
.line 122
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 123
add-int/lit8 v2, p1, 0x3
long-to-int v3, v0
aput v3, p0, v2
.line 124
add-int/lit8 v2, p3, 0x3
long-to-int v3, v0
aput v3, p2, v2
.line 125
ushr-long/2addr v0, v8
.line 126
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 127
add-int/lit8 v2, p1, 0x4
long-to-int v3, v0
aput v3, p0, v2
.line 128
add-int/lit8 v2, p3, 0x4
long-to-int v3, v0
aput v3, p2, v2
.line 129
ushr-long/2addr v0, v8
.line 130
add-int/lit8 v2, p1, 0x5
aget v2, p0, v2
int-to-long v2, v2
and-long/2addr v2, v6
add-int/lit8 v4, p3, 0x5
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 131
add-int/lit8 v2, p1, 0x5
long-to-int v3, v0
aput v3, p0, v2
.line 132
add-int/lit8 v2, p3, 0x5
long-to-int v3, v0
aput v3, p2, v2
.line 133
ushr-long/2addr v0, v8
.line 134
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 139
aget v0, p0, v1
aput v0, p1, v1
.line 140
aget v0, p0, v2
aput v0, p1, v2
.line 141
aget v0, p0, v3
aput v0, p1, v3
.line 142
aget v0, p0, v4
aput v0, p1, v4
.line 143
aget v0, p0, v5
aput v0, p1, v5
.line 144
const/4 v0, 0x5
const/4 v1, 0x5
aget v1, p0, v1
aput v1, p1, v0
.line 145
return-void
.end method
.method public static copy64([J[J)V
.registers 7
.prologue
const/4 v4, 0x2
const/4 v3, 0x1
const/4 v2, 0x0
.line 149
aget-wide v0, p0, v2
aput-wide v0, p1, v2
.line 150
aget-wide v0, p0, v3
aput-wide v0, p1, v3
.line 151
aget-wide v0, p0, v4
aput-wide v0, p1, v4
.line 152
return-void
.end method
.method public static create()[I
.registers 1
.prologue
.line 156
const/4 v0, 0x6
new-array v0, v0, [I
return-object v0
.end method
.method public static create64()[J
.registers 1
.prologue
.line 161
const/4 v0, 0x3
new-array v0, v0, [J
return-object v0
.end method
.method public static createExt()[I
.registers 1
.prologue
.line 166
const/16 v0, 0xc
new-array v0, v0, [I
return-object v0
.end method
.method public static createExt64()[J
.registers 1
.prologue
.line 171
const/4 v0, 0x6
new-array v0, v0, [J
return-object v0
.end method
.method public static diff([II[II[II)Z
.registers 13
.prologue
.line 176
invoke-static {p0, p1, p2, p3}, Lorg/spongycastle/math/raw/Nat192;->gte([II[II)Z
move-result v6
.line 177
if-eqz v6, :cond_a
.line 179
invoke-static/range {p0 .. p5}, Lorg/spongycastle/math/raw/Nat192;->sub([II[II[II)I
.line 185
: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 183
invoke-static/range {v0 .. v5}, Lorg/spongycastle/math/raw/Nat192;->sub([II[II[II)I
goto :goto_9
.end method
.method public static eq([I[I)Z
.registers 5
.prologue
.line 190
const/4 v0, 0x5
:goto_1
if-ltz v0, :cond_e
.line 192
aget v1, p0, v0
aget v2, p1, v0
if-eq v1, v2, :cond_b
.line 194
const/4 v0, 0x0
.line 197
:goto_a
return v0
.line 190
:cond_b
add-int/lit8 v0, v0, -0x1
goto :goto_1
.line 197
:cond_e
const/4 v0, 0x1
goto :goto_a
.end method
.method public static eq64([J[J)Z
.registers 8
.prologue
.line 202
const/4 v0, 0x2
:goto_1
if-ltz v0, :cond_10
.line 204
aget-wide v2, p0, v0
aget-wide v4, p1, v0
cmp-long v1, v2, v4
if-eqz v1, :cond_d
.line 206
const/4 v0, 0x0
.line 209
:goto_c
return v0
.line 202
:cond_d
add-int/lit8 v0, v0, -0x1
goto :goto_1
.line 209
:cond_10
const/4 v0, 0x1
goto :goto_c
.end method
.method public static fromBigInteger(Ljava/math/BigInteger;)[I
.registers 5
.prologue
.line 214
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, 0xc0
if-le v0, v1, :cond_14
.line 216
:cond_e
new-instance v0, Ljava/lang/IllegalArgumentException;
invoke-direct {v0}, Ljava/lang/IllegalArgumentException;-><init>()V
throw v0
.line 219
:cond_14
invoke-static {}, Lorg/spongycastle/math/raw/Nat192;->create()[I
move-result-object v2
.line 220
const/4 v0, 0x0
.line 221
:goto_19
invoke-virtual {p0}, Ljava/math/BigInteger;->signum()I
move-result v1
if-eqz v1, :cond_2f
.line 223
add-int/lit8 v1, v0, 0x1
invoke-virtual {p0}, Ljava/math/BigInteger;->intValue()I
move-result v3
aput v3, v2, v0
.line 224
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 226
:cond_2f
return-object v2
.end method
.method public static fromBigInteger64(Ljava/math/BigInteger;)[J
.registers 7
.prologue
.line 231
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, 0xc0
if-le v0, v1, :cond_14
.line 233
:cond_e
new-instance v0, Ljava/lang/IllegalArgumentException;
invoke-direct {v0}, Ljava/lang/IllegalArgumentException;-><init>()V
throw v0
.line 236
:cond_14
invoke-static {}, Lorg/spongycastle/math/raw/Nat192;->create64()[J
move-result-object v2
.line 237
const/4 v0, 0x0
.line 238
:goto_19
invoke-virtual {p0}, Ljava/math/BigInteger;->signum()I
move-result v1
if-eqz v1, :cond_2f
.line 240
add-int/lit8 v1, v0, 0x1
invoke-virtual {p0}, Ljava/math/BigInteger;->longValue()J
move-result-wide v4
aput-wide v4, v2, v0
.line 241
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 243
:cond_2f
return-object v2
.end method
.method public static getBit([II)I
.registers 5
.prologue
const/4 v0, 0x0
.line 248
if-nez p1, :cond_8
.line 250
aget v0, p0, v0
and-int/lit8 v0, v0, 0x1
.line 258
:cond_7
:goto_7
return v0
.line 252
:cond_8
shr-int/lit8 v1, p1, 0x5
.line 253
if-ltz v1, :cond_7
const/4 v2, 0x6
if-ge v1, v2, :cond_7
.line 257
and-int/lit8 v0, p1, 0x1f
.line 258
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 277
const/4 v1, 0x5
:goto_4
if-ltz v1, :cond_13
.line 279
add-int v2, p1, v1
aget v2, p0, v2
xor-int/2addr v2, v4
.line 280
add-int v3, p3, v1
aget v3, p2, v3
xor-int/2addr v3, v4
.line 281
if-ge v2, v3, :cond_14
.line 282
const/4 v0, 0x0
.line 286
:cond_13
return v0
.line 283
:cond_14
if-gt v2, v3, :cond_13
.line 277
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 263
const/4 v1, 0x5
:goto_4
if-ltz v1, :cond_f
.line 265
aget v2, p0, v1
xor-int/2addr v2, v4
.line 266
aget v3, p1, v1
xor-int/2addr v3, v4
.line 267
if-ge v2, v3, :cond_10
.line 268
const/4 v0, 0x0
.line 272
:cond_f
return v0
.line 269
:cond_10
if-gt v2, v3, :cond_f
.line 263
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 291
aget v2, p0, v0
if-eq v2, v1, :cond_7
.line 302
:cond_6
:goto_6
return v0
:cond_7
move v2, v1
.line 295
:goto_8
const/4 v3, 0x6
if-ge v2, v3, :cond_12
.line 297
aget v3, p0, v2
if-nez v3, :cond_6
.line 295
add-int/lit8 v2, v2, 0x1
goto :goto_8
:cond_12
move v0, v1
.line 302
goto :goto_6
.end method
.method public static isOne64([J)Z
.registers 9
.prologue
const/4 v1, 0x1
const/4 v0, 0x0
.line 307
aget-wide v2, p0, v0
const-wide/16 v4, 0x1
cmp-long v2, v2, v4
if-eqz v2, :cond_b
.line 318
:cond_a
:goto_a
return v0
:cond_b
move v2, v1
.line 311
:goto_c
const/4 v3, 0x3
if-ge v2, v3, :cond_1a
.line 313
aget-wide v4, p0, v2
const-wide/16 v6, 0x0
cmp-long v3, v4, v6
if-nez v3, :cond_a
.line 311
add-int/lit8 v2, v2, 0x1
goto :goto_c
:cond_1a
move v0, v1
.line 318
goto :goto_a
.end method
.method public static isZero([I)Z
.registers 4
.prologue
const/4 v0, 0x0
.line 323
move v1, v0
:goto_2
const/4 v2, 0x6
if-ge v1, v2, :cond_d
.line 325
aget v2, p0, v1
if-eqz v2, :cond_a
.line 330
:goto_9
return v0
.line 323
:cond_a
add-int/lit8 v1, v1, 0x1
goto :goto_2
.line 330
: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 335
move v1, v0
:goto_2
const/4 v2, 0x3
if-ge v1, v2, :cond_11
.line 337
aget-wide v2, p0, v1
const-wide/16 v4, 0x0
cmp-long v2, v2, v4
if-eqz v2, :cond_e
.line 342
:goto_d
return v0
.line 335
:cond_e
add-int/lit8 v1, v1, 0x1
goto :goto_2
.line 342
:cond_11
const/4 v0, 0x1
goto :goto_d
.end method
.method public static mul([II[II[II)V
.registers 32
.prologue
.line 404
aget v2, p2, p3
int-to-long v2, v2
const-wide v4, 0xffffffffL
and-long/2addr v4, v2
.line 405
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 406
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 407
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 408
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 409
add-int/lit8 v2, p3, 0x5
aget v2, p2, v2
int-to-long v2, v2
const-wide v14, 0xffffffffL
and-long/2addr v14, v2
.line 412
aget v2, p0, p1
int-to-long v2, v2
const-wide v16, 0xffffffffL
and-long v2, v2, v16
.line 413
const-wide/16 v16, 0x0
mul-long v18, v2, v4
add-long v16, v16, v18
.line 414
move-wide/from16 v0, v16
long-to-int v0, v0
move/from16 v18, v0
aput v18, p4, p5
.line 415
const/16 v18, 0x20
ushr-long v16, v16, v18
.line 416
mul-long v18, v2, v6
add-long v16, v16, v18
.line 417
add-int/lit8 v18, p5, 0x1
move-wide/from16 v0, v16
long-to-int v0, v0
move/from16 v19, v0
aput v19, p4, v18
.line 418
const/16 v18, 0x20
ushr-long v16, v16, v18
.line 419
mul-long v18, v2, v8
add-long v16, v16, v18
.line 420
add-int/lit8 v18, p5, 0x2
move-wide/from16 v0, v16
long-to-int v0, v0
move/from16 v19, v0
aput v19, p4, v18
.line 421
const/16 v18, 0x20
ushr-long v16, v16, v18
.line 422
mul-long v18, v2, v10
add-long v16, v16, v18
.line 423
add-int/lit8 v18, p5, 0x3
move-wide/from16 v0, v16
long-to-int v0, v0
move/from16 v19, v0
aput v19, p4, v18
.line 424
const/16 v18, 0x20
ushr-long v16, v16, v18
.line 425
mul-long v18, v2, v12
add-long v16, v16, v18
.line 426
add-int/lit8 v18, p5, 0x4
move-wide/from16 v0, v16
long-to-int v0, v0
move/from16 v19, v0
aput v19, p4, v18
.line 427
const/16 v18, 0x20
ushr-long v16, v16, v18
.line 428
mul-long/2addr v2, v14
add-long v2, v2, v16
.line 429
add-int/lit8 v16, p5, 0x5
long-to-int v0, v2
move/from16 v17, v0
aput v17, p4, v16
.line 430
const/16 v16, 0x20
ushr-long v2, v2, v16
.line 431
add-int/lit8 v16, p5, 0x6
long-to-int v2, v2
aput v2, p4, v16
.line 434
const/4 v2, 0x1
:goto_b3
const/4 v3, 0x6
if-ge v2, v3, :cond_195
.line 436
add-int/lit8 p5, p5, 0x1
.line 437
add-int v3, p1, v2
aget v3, p0, v3
int-to-long v0, v3
move-wide/from16 v16, v0
const-wide v18, 0xffffffffL
and-long v16, v16, v18
.line 438
const-wide/16 v18, 0x0
mul-long v20, v16, v4
aget v3, p4, p5
int-to-long v0, v3
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 439
move-wide/from16 v0, v18
long-to-int v3, v0
aput v3, p4, p5
.line 440
const/16 v3, 0x20
ushr-long v18, v18, v3
.line 441
mul-long v20, v16, v6
add-int/lit8 v3, p5, 0x1
aget v3, p4, v3
int-to-long v0, v3
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 442
add-int/lit8 v3, p5, 0x1
move-wide/from16 v0, v18
long-to-int v0, v0
move/from16 v20, v0
aput v20, p4, v3
.line 443
const/16 v3, 0x20
ushr-long v18, v18, v3
.line 444
mul-long v20, v16, v8
add-int/lit8 v3, p5, 0x2
aget v3, p4, v3
int-to-long v0, v3
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 445
add-int/lit8 v3, p5, 0x2
move-wide/from16 v0, v18
long-to-int v0, v0
move/from16 v20, v0
aput v20, p4, v3
.line 446
const/16 v3, 0x20
ushr-long v18, v18, v3
.line 447
mul-long v20, v16, v10
add-int/lit8 v3, p5, 0x3
aget v3, p4, v3
int-to-long v0, v3
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 448
add-int/lit8 v3, p5, 0x3
move-wide/from16 v0, v18
long-to-int v0, v0
move/from16 v20, v0
aput v20, p4, v3
.line 449
const/16 v3, 0x20
ushr-long v18, v18, v3
.line 450
mul-long v20, v16, v12
add-int/lit8 v3, p5, 0x4
aget v3, p4, v3
int-to-long v0, v3
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 451
add-int/lit8 v3, p5, 0x4
move-wide/from16 v0, v18
long-to-int v0, v0
move/from16 v20, v0
aput v20, p4, v3
.line 452
const/16 v3, 0x20
ushr-long v18, v18, v3
.line 453
mul-long v16, v16, v14
add-int/lit8 v3, p5, 0x5
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 v16, v16, v20
add-long v16, v16, v18
.line 454
add-int/lit8 v3, p5, 0x5
move-wide/from16 v0, v16
long-to-int v0, v0
move/from16 v18, v0
aput v18, p4, v3
.line 455
const/16 v3, 0x20
ushr-long v16, v16, v3
.line 456
add-int/lit8 v3, p5, 0x6
move-wide/from16 v0, v16
long-to-int v0, v0
move/from16 v16, v0
aput v16, p4, v3
.line 434
add-int/lit8 v2, v2, 0x1
goto/16 :goto_b3
.line 458
:cond_195
return-void
.end method
.method public static mul([I[I[I)V
.registers 29
.prologue
.line 347
const/4 v2, 0x0
aget v2, p1, v2
int-to-long v2, v2
const-wide v4, 0xffffffffL
and-long/2addr v4, v2
.line 348
const/4 v2, 0x1
aget v2, p1, v2
int-to-long v2, v2
const-wide v6, 0xffffffffL
and-long/2addr v6, v2
.line 349
const/4 v2, 0x2
aget v2, p1, v2
int-to-long v2, v2
const-wide v8, 0xffffffffL
and-long/2addr v8, v2
.line 350
const/4 v2, 0x3
aget v2, p1, v2
int-to-long v2, v2
const-wide v10, 0xffffffffL
and-long/2addr v10, v2
.line 351
const/4 v2, 0x4
aget v2, p1, v2
int-to-long v2, v2
const-wide v12, 0xffffffffL
and-long/2addr v12, v2
.line 352
const/4 v2, 0x5
aget v2, p1, v2
int-to-long v2, v2
const-wide v14, 0xffffffffL
and-long/2addr v14, v2
.line 355
const/4 v2, 0x0
aget v2, p0, v2
int-to-long v2, v2
const-wide v16, 0xffffffffL
and-long v2, v2, v16
.line 356
const-wide/16 v16, 0x0
mul-long v18, v2, v4
add-long v16, v16, v18
.line 357
const/16 v18, 0x0
move-wide/from16 v0, v16
long-to-int v0, v0
move/from16 v19, v0
aput v19, p2, v18
.line 358
const/16 v18, 0x20
ushr-long v16, v16, v18
.line 359
mul-long v18, v2, v6
add-long v16, v16, v18
.line 360
const/16 v18, 0x1
move-wide/from16 v0, v16
long-to-int v0, v0
move/from16 v19, v0
aput v19, p2, v18
.line 361
const/16 v18, 0x20
ushr-long v16, v16, v18
.line 362
mul-long v18, v2, v8
add-long v16, v16, v18
.line 363
const/16 v18, 0x2
move-wide/from16 v0, v16
long-to-int v0, v0
move/from16 v19, v0
aput v19, p2, v18
.line 364
const/16 v18, 0x20
ushr-long v16, v16, v18
.line 365
mul-long v18, v2, v10
add-long v16, v16, v18
.line 366
const/16 v18, 0x3
move-wide/from16 v0, v16
long-to-int v0, v0
move/from16 v19, v0
aput v19, p2, v18
.line 367
const/16 v18, 0x20
ushr-long v16, v16, v18
.line 368
mul-long v18, v2, v12
add-long v16, v16, v18
.line 369
const/16 v18, 0x4
move-wide/from16 v0, v16
long-to-int v0, v0
move/from16 v19, v0
aput v19, p2, v18
.line 370
const/16 v18, 0x20
ushr-long v16, v16, v18
.line 371
mul-long/2addr v2, v14
add-long v2, v2, v16
.line 372
const/16 v16, 0x5
long-to-int v0, v2
move/from16 v17, v0
aput v17, p2, v16
.line 373
const/16 v16, 0x20
ushr-long v2, v2, v16
.line 374
const/16 v16, 0x6
long-to-int v2, v2
aput v2, p2, v16
.line 377
const/4 v2, 0x1
:goto_b2
const/4 v3, 0x6
if-ge v2, v3, :cond_190
.line 379
aget v3, p0, v2
int-to-long v0, v3
move-wide/from16 v16, v0
const-wide v18, 0xffffffffL
and-long v16, v16, v18
.line 380
const-wide/16 v18, 0x0
mul-long v20, v16, v4
aget v3, p2, v2
int-to-long v0, v3
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 381
move-wide/from16 v0, v18
long-to-int v3, v0
aput v3, p2, v2
.line 382
const/16 v3, 0x20
ushr-long v18, v18, v3
.line 383
mul-long v20, v16, v6
add-int/lit8 v3, v2, 0x1
aget v3, p2, v3
int-to-long v0, v3
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 384
add-int/lit8 v3, v2, 0x1
move-wide/from16 v0, v18
long-to-int v0, v0
move/from16 v20, v0
aput v20, p2, v3
.line 385
const/16 v3, 0x20
ushr-long v18, v18, v3
.line 386
mul-long v20, v16, v8
add-int/lit8 v3, v2, 0x2
aget v3, p2, v3
int-to-long v0, v3
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 387
add-int/lit8 v3, v2, 0x2
move-wide/from16 v0, v18
long-to-int v0, v0
move/from16 v20, v0
aput v20, p2, v3
.line 388
const/16 v3, 0x20
ushr-long v18, v18, v3
.line 389
mul-long v20, v16, v10
add-int/lit8 v3, v2, 0x3
aget v3, p2, v3
int-to-long v0, v3
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 390
add-int/lit8 v3, v2, 0x3
move-wide/from16 v0, v18
long-to-int v0, v0
move/from16 v20, v0
aput v20, p2, v3
.line 391
const/16 v3, 0x20
ushr-long v18, v18, v3
.line 392
mul-long v20, v16, v12
add-int/lit8 v3, v2, 0x4
aget v3, p2, v3
int-to-long v0, v3
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 393
add-int/lit8 v3, v2, 0x4
move-wide/from16 v0, v18
long-to-int v0, v0
move/from16 v20, v0
aput v20, p2, v3
.line 394
const/16 v3, 0x20
ushr-long v18, v18, v3
.line 395
mul-long v16, v16, v14
add-int/lit8 v3, v2, 0x5
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 v16, v16, v20
add-long v16, v16, v18
.line 396
add-int/lit8 v3, v2, 0x5
move-wide/from16 v0, v16
long-to-int v0, v0
move/from16 v18, v0
aput v18, p2, v3
.line 397
const/16 v3, 0x20
ushr-long v16, v16, v3
.line 398
add-int/lit8 v3, v2, 0x6
move-wide/from16 v0, v16
long-to-int v0, v0
move/from16 v16, v0
aput v16, p2, v3
.line 377
add-int/lit8 v2, v2, 0x1
goto/16 :goto_b2
.line 400
:cond_190
return-void
.end method
.method public static mul33Add(I[II[II[II)J
.registers 19
.prologue
.line 541
int-to-long v0, p0
const-wide v2, 0xffffffffL
and-long/2addr v0, v2
.line 542
aget v2, p1, p2
int-to-long v2, v2
const-wide v4, 0xffffffffL
and-long/2addr v2, v4
.line 543
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 544
long-to-int v6, v4
aput v6, p5, p6
.line 545
const/16 v6, 0x20
ushr-long/2addr v4, v6
.line 546
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 547
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 548
add-int/lit8 v4, p6, 0x1
long-to-int v5, v2
aput v5, p5, v4
.line 549
const/16 v4, 0x20
ushr-long/2addr v2, v4
.line 550
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 551
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 552
add-int/lit8 v6, p6, 0x2
long-to-int v7, v2
aput v7, p5, v6
.line 553
const/16 v6, 0x20
ushr-long/2addr v2, v6
.line 554
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 555
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 556
add-int/lit8 v4, p6, 0x3
long-to-int v5, v2
aput v5, p5, v4
.line 557
const/16 v4, 0x20
ushr-long/2addr v2, v4
.line 558
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 559
mul-long v8, v0, v4
add-long/2addr v6, v8
add-int/lit8 v8, p4, 0x4
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 560
add-int/lit8 v6, p6, 0x4
long-to-int v7, v2
aput v7, p5, v6
.line 561
const/16 v6, 0x20
ushr-long/2addr v2, v6
.line 562
add-int/lit8 v6, p2, 0x5
aget v6, p1, v6
int-to-long v6, v6
const-wide v8, 0xffffffffL
and-long/2addr v6, v8
.line 563
mul-long/2addr v0, v6
add-long/2addr v0, v4
add-int/lit8 v4, p4, 0x5
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 564
add-int/lit8 v2, p6, 0x5
long-to-int v3, v0
aput v3, p5, v2
.line 565
const/16 v2, 0x20
ushr-long/2addr v0, v2
.line 566
add-long/2addr v0, v6
.line 567
return-wide v0
.end method
.method public static mul33DWordAdd(IJ[II)I
.registers 20
.prologue
.line 601
int-to-long v2, p0
const-wide v4, 0xffffffffL
and-long/2addr v2, v4
.line 602
const-wide v4, 0xffffffffL
and-long v4, v4, p1
.line 603
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 604
long-to-int v8, v6
aput v8, p3, p4
.line 605
const/16 v8, 0x20
ushr-long/2addr v6, v8
.line 606
const/16 v8, 0x20
ushr-long v8, p1, v8
.line 607
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 608
add-int/lit8 v4, p4, 0x1
long-to-int v5, v2
aput v5, p3, v4
.line 609
const/16 v4, 0x20
ushr-long/2addr v2, v4
.line 610
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 611
add-int/lit8 v4, p4, 0x2
long-to-int v5, v2
aput v5, p3, v4
.line 612
const/16 v4, 0x20
ushr-long/2addr v2, v4
.line 613
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 614
add-int/lit8 v4, p4, 0x3
long-to-int v5, v2
aput v5, p3, v4
.line 615
const/16 v4, 0x20
ushr-long/2addr v2, v4
.line 616
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, 0x6
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 624
int-to-long v0, p0
and-long/2addr v0, v6
int-to-long v2, p1
and-long/2addr v2, v6
.line 625
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 626
long-to-int v4, v0
aput v4, p2, p3
.line 627
ushr-long/2addr v0, v8
.line 628
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 629
add-int/lit8 v2, p3, 0x1
long-to-int v3, v0
aput v3, p2, v2
.line 630
ushr-long/2addr v0, v8
.line 631
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 632
add-int/lit8 v2, p3, 0x2
long-to-int v3, v0
aput v3, p2, v2
.line 633
ushr-long/2addr v0, v8
.line 634
cmp-long v0, v0, v10
if-nez v0, :cond_39
const/4 v0, 0x0
:goto_38
return v0
:cond_39
const/4 v0, 0x6
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 34
.prologue
.line 500
aget v2, p2, p3
int-to-long v2, v2
const-wide v4, 0xffffffffL
and-long v6, v2, v4
.line 501
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 502
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 503
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 504
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 505
add-int/lit8 v2, p3, 0x5
aget v2, p2, v2
int-to-long v2, v2
const-wide v4, 0xffffffffL
and-long v16, v2, v4
.line 507
const-wide/16 v2, 0x0
.line 508
const/4 v4, 0x0
:goto_49
const/4 v5, 0x6
if-ge v4, v5, :cond_13e
.line 510
add-int v5, p1, v4
aget v5, p0, v5
int-to-long v0, v5
move-wide/from16 v18, v0
const-wide v20, 0xffffffffL
and-long v18, v18, v20
.line 511
const-wide/16 v20, 0x0
mul-long v22, v18, v6
aget v5, p4, p5
int-to-long v0, v5
move-wide/from16 v24, v0
const-wide v26, 0xffffffffL
and-long v24, v24, v26
add-long v22, v22, v24
add-long v20, v20, v22
.line 512
move-wide/from16 v0, v20
long-to-int v5, v0
aput v5, p4, p5
.line 513
const/16 v5, 0x20
ushr-long v20, v20, v5
.line 514
mul-long v22, v18, v8
add-int/lit8 v5, p5, 0x1
aget v5, p4, v5
int-to-long v0, v5
move-wide/from16 v24, v0
const-wide v26, 0xffffffffL
and-long v24, v24, v26
add-long v22, v22, v24
add-long v20, v20, v22
.line 515
add-int/lit8 v5, p5, 0x1
move-wide/from16 v0, v20
long-to-int v0, v0
move/from16 v22, v0
aput v22, p4, v5
.line 516
const/16 v5, 0x20
ushr-long v20, v20, v5
.line 517
mul-long v22, v18, v10
add-int/lit8 v5, p5, 0x2
aget v5, p4, v5
int-to-long v0, v5
move-wide/from16 v24, v0
const-wide v26, 0xffffffffL
and-long v24, v24, v26
add-long v22, v22, v24
add-long v20, v20, v22
.line 518
add-int/lit8 v5, p5, 0x2
move-wide/from16 v0, v20
long-to-int v0, v0
move/from16 v22, v0
aput v22, p4, v5
.line 519
const/16 v5, 0x20
ushr-long v20, v20, v5
.line 520
mul-long v22, v18, v12
add-int/lit8 v5, p5, 0x3
aget v5, p4, v5
int-to-long v0, v5
move-wide/from16 v24, v0
const-wide v26, 0xffffffffL
and-long v24, v24, v26
add-long v22, v22, v24
add-long v20, v20, v22
.line 521
add-int/lit8 v5, p5, 0x3
move-wide/from16 v0, v20
long-to-int v0, v0
move/from16 v22, v0
aput v22, p4, v5
.line 522
const/16 v5, 0x20
ushr-long v20, v20, v5
.line 523
mul-long v22, v18, v14
add-int/lit8 v5, p5, 0x4
aget v5, p4, v5
int-to-long v0, v5
move-wide/from16 v24, v0
const-wide v26, 0xffffffffL
and-long v24, v24, v26
add-long v22, v22, v24
add-long v20, v20, v22
.line 524
add-int/lit8 v5, p5, 0x4
move-wide/from16 v0, v20
long-to-int v0, v0
move/from16 v22, v0
aput v22, p4, v5
.line 525
const/16 v5, 0x20
ushr-long v20, v20, v5
.line 526
mul-long v18, v18, v16
add-int/lit8 v5, p5, 0x5
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 v18, v18, v22
add-long v18, v18, v20
.line 527
add-int/lit8 v5, p5, 0x5
move-wide/from16 v0, v18
long-to-int v0, v0
move/from16 v20, v0
aput v20, p4, v5
.line 528
const/16 v5, 0x20
ushr-long v18, v18, v5
.line 529
add-int/lit8 v5, p5, 0x6
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 v2, v2, v20
add-long v2, v2, v18
.line 530
add-int/lit8 v5, p5, 0x6
long-to-int v0, v2
move/from16 v18, v0
aput v18, p4, v5
.line 531
const/16 v5, 0x20
ushr-long/2addr v2, v5
.line 532
add-int/lit8 p5, p5, 0x1
.line 508
add-int/lit8 v4, v4, 0x1
goto/16 :goto_49
.line 534
:cond_13e
long-to-int v2, v2
return v2
.end method
.method public static mulAddTo([I[I[I)I
.registers 31
.prologue
.line 462
const/4 v2, 0x0
aget v2, p1, v2
int-to-long v2, v2
const-wide v4, 0xffffffffL
and-long v6, v2, v4
.line 463
const/4 v2, 0x1
aget v2, p1, v2
int-to-long v2, v2
const-wide v4, 0xffffffffL
and-long v8, v2, v4
.line 464
const/4 v2, 0x2
aget v2, p1, v2
int-to-long v2, v2
const-wide v4, 0xffffffffL
and-long v10, v2, v4
.line 465
const/4 v2, 0x3
aget v2, p1, v2
int-to-long v2, v2
const-wide v4, 0xffffffffL
and-long v12, v2, v4
.line 466
const/4 v2, 0x4
aget v2, p1, v2
int-to-long v2, v2
const-wide v4, 0xffffffffL
and-long v14, v2, v4
.line 467
const/4 v2, 0x5
aget v2, p1, v2
int-to-long v2, v2
const-wide v4, 0xffffffffL
and-long v16, v2, v4
.line 469
const-wide/16 v2, 0x0
.line 470
const/4 v4, 0x0
:goto_45
const/4 v5, 0x6
if-ge v4, v5, :cond_136
.line 472
aget v5, p0, v4
int-to-long v0, v5
move-wide/from16 v18, v0
const-wide v20, 0xffffffffL
and-long v18, v18, v20
.line 473
const-wide/16 v20, 0x0
mul-long v22, v18, v6
aget v5, p2, v4
int-to-long v0, v5
move-wide/from16 v24, v0
const-wide v26, 0xffffffffL
and-long v24, v24, v26
add-long v22, v22, v24
add-long v20, v20, v22
.line 474
move-wide/from16 v0, v20
long-to-int v5, v0
aput v5, p2, v4
.line 475
const/16 v5, 0x20
ushr-long v20, v20, v5
.line 476
mul-long v22, v18, v8
add-int/lit8 v5, v4, 0x1
aget v5, p2, v5
int-to-long v0, v5
move-wide/from16 v24, v0
const-wide v26, 0xffffffffL
and-long v24, v24, v26
add-long v22, v22, v24
add-long v20, v20, v22
.line 477
add-int/lit8 v5, v4, 0x1
move-wide/from16 v0, v20
long-to-int v0, v0
move/from16 v22, v0
aput v22, p2, v5
.line 478
const/16 v5, 0x20
ushr-long v20, v20, v5
.line 479
mul-long v22, v18, v10
add-int/lit8 v5, v4, 0x2
aget v5, p2, v5
int-to-long v0, v5
move-wide/from16 v24, v0
const-wide v26, 0xffffffffL
and-long v24, v24, v26
add-long v22, v22, v24
add-long v20, v20, v22
.line 480
add-int/lit8 v5, v4, 0x2
move-wide/from16 v0, v20
long-to-int v0, v0
move/from16 v22, v0
aput v22, p2, v5
.line 481
const/16 v5, 0x20
ushr-long v20, v20, v5
.line 482
mul-long v22, v18, v12
add-int/lit8 v5, v4, 0x3
aget v5, p2, v5
int-to-long v0, v5
move-wide/from16 v24, v0
const-wide v26, 0xffffffffL
and-long v24, v24, v26
add-long v22, v22, v24
add-long v20, v20, v22
.line 483
add-int/lit8 v5, v4, 0x3
move-wide/from16 v0, v20
long-to-int v0, v0
move/from16 v22, v0
aput v22, p2, v5
.line 484
const/16 v5, 0x20
ushr-long v20, v20, v5
.line 485
mul-long v22, v18, v14
add-int/lit8 v5, v4, 0x4
aget v5, p2, v5
int-to-long v0, v5
move-wide/from16 v24, v0
const-wide v26, 0xffffffffL
and-long v24, v24, v26
add-long v22, v22, v24
add-long v20, v20, v22
.line 486
add-int/lit8 v5, v4, 0x4
move-wide/from16 v0, v20
long-to-int v0, v0
move/from16 v22, v0
aput v22, p2, v5
.line 487
const/16 v5, 0x20
ushr-long v20, v20, v5
.line 488
mul-long v18, v18, v16
add-int/lit8 v5, v4, 0x5
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 v18, v18, v22
add-long v18, v18, v20
.line 489
add-int/lit8 v5, v4, 0x5
move-wide/from16 v0, v18
long-to-int v0, v0
move/from16 v20, v0
aput v20, p2, v5
.line 490
const/16 v5, 0x20
ushr-long v18, v18, v5
.line 491
add-int/lit8 v5, v4, 0x6
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 v2, v2, v20
add-long v2, v2, v18
.line 492
add-int/lit8 v5, v4, 0x6
long-to-int v0, v2
move/from16 v18, v0
aput v18, p2, v5
.line 493
const/16 v5, 0x20
ushr-long/2addr v2, v5
.line 470
add-int/lit8 v4, v4, 0x1
goto/16 :goto_45
.line 495
:cond_136
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 655
const-wide/16 v0, 0x0
int-to-long v2, p0
and-long v4, v2, v8
.line 656
const/4 v2, 0x0
.line 659
: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 660
add-int v3, p3, v2
long-to-int v6, v0
aput v6, p2, v3
.line 661
const/16 v3, 0x20
ushr-long/2addr v0, v3
.line 663
add-int/lit8 v2, v2, 0x1
const/4 v3, 0x6
if-lt v2, v3, :cond_b
.line 664
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 574
int-to-long v0, p0
and-long/2addr v0, v8
.line 575
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 576
long-to-int v4, v2
aput v4, p3, p4
.line 577
ushr-long/2addr v2, v10
.line 578
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 579
add-int/lit8 v4, p4, 0x1
long-to-int v5, v2
aput v5, p3, v4
.line 580
ushr-long/2addr v2, v10
.line 581
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 582
add-int/lit8 v4, p4, 0x2
long-to-int v5, v2
aput v5, p3, v4
.line 583
ushr-long/2addr v2, v10
.line 584
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 585
add-int/lit8 v4, p4, 0x3
long-to-int v5, v2
aput v5, p3, v4
.line 586
ushr-long/2addr v2, v10
.line 587
add-int/lit8 v4, p2, 0x4
aget v4, p1, v4
int-to-long v4, v4
and-long/2addr v4, v8
mul-long/2addr v4, v0
add-int/lit8 v6, p4, 0x4
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 588
add-int/lit8 v4, p4, 0x4
long-to-int v5, v2
aput v5, p3, v4
.line 589
ushr-long/2addr v2, v10
.line 590
add-int/lit8 v4, p2, 0x5
aget v4, p1, v4
int-to-long v4, v4
and-long/2addr v4, v8
mul-long/2addr v0, v4
add-int/lit8 v4, p4, 0x5
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 591
add-int/lit8 v2, p4, 0x5
long-to-int v3, v0
aput v3, p3, v2
.line 592
ushr-long/2addr v0, v10
.line 593
long-to-int v0, v0
return v0
.end method
.method public static mulWordDwordAdd(IJ[II)I
.registers 16
.prologue
.line 640
int-to-long v0, p0
const-wide v2, 0xffffffffL
and-long/2addr v0, v2
.line 641
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 642
long-to-int v4, v2
aput v4, p3, p4
.line 643
const/16 v4, 0x20
ushr-long/2addr v2, v4
.line 644
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 645
add-int/lit8 v2, p4, 0x1
long-to-int v3, v0
aput v3, p3, v2
.line 646
const/16 v2, 0x20
ushr-long/2addr v0, v2
.line 647
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 648
add-int/lit8 v2, p4, 0x2
long-to-int v3, v0
aput v3, p3, v2
.line 649
const/16 v2, 0x20
ushr-long/2addr v0, v2
.line 650
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, 0x6
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 square([II[II)V
.registers 34
.prologue
.line 785
aget v2, p0, p1
int-to-long v2, v2
const-wide v4, 0xffffffffL
and-long v6, v2, v4
.line 788
const/4 v4, 0x0
.line 790
const/4 v3, 0x5
const/16 v2, 0xc
move v5, v4
.line 793
: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 794
mul-long/2addr v8, v8
.line 795
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 796
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 797
long-to-int v3, v8
.line 799
if-gtz v4, :cond_22c
.line 802
mul-long v4, v6, v6
.line 803
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 804
long-to-int v8, v4
aput v8, p2, p3
.line 805
const/16 v8, 0x20
ushr-long/2addr v4, v8
long-to-int v4, v4
and-int/lit8 v4, v4, 0x1
.line 809
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 810
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 813
mul-long v12, v8, v6
add-long/2addr v2, v12
.line 814
long-to-int v5, v2
.line 815
add-int/lit8 v12, p3, 0x1
shl-int/lit8 v13, v5, 0x1
or-int/2addr v4, v13
aput v4, p2, v12
.line 816
ushr-int/lit8 v4, v5, 0x1f
.line 817
const/16 v5, 0x20
ushr-long/2addr v2, v5
add-long/2addr v2, v10
.line 820
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 821
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 822
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 824
mul-long v16, v10, v6
add-long v2, v2, v16
.line 825
long-to-int v5, v2
.line 826
add-int/lit8 v16, p3, 0x2
shl-int/lit8 v17, v5, 0x1
or-int v4, v4, v17
aput v4, p2, v16
.line 827
ushr-int/lit8 v4, v5, 0x1f
.line 828
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 829
const/16 v5, 0x20
ushr-long v12, v2, v5
add-long/2addr v12, v14
.line 830
const-wide v14, 0xffffffffL
and-long/2addr v2, v14
.line 833
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 834
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 835
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 837
mul-long v20, v14, v6
add-long v2, v2, v20
.line 838
long-to-int v5, v2
.line 839
add-int/lit8 v20, p3, 0x3
shl-int/lit8 v21, v5, 0x1
or-int v4, v4, v21
aput v4, p2, v20
.line 840
ushr-int/lit8 v4, v5, 0x1f
.line 841
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 842
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 843
const-wide v16, 0xffffffffL
and-long v2, v2, v16
.line 844
const/16 v5, 0x20
ushr-long v16, v12, v5
add-long v16, v16, v18
.line 845
const-wide v18, 0xffffffffL
and-long v12, v12, v18
.line 848
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 849
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 850
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 852
mul-long v24, v18, v6
add-long v2, v2, v24
.line 853
long-to-int v5, v2
.line 854
add-int/lit8 v24, p3, 0x4
shl-int/lit8 v25, v5, 0x1
or-int v4, v4, v25
aput v4, p2, v24
.line 855
ushr-int/lit8 v4, v5, 0x1f
.line 856
const/16 v5, 0x20
ushr-long/2addr v2, v5
mul-long v24, v18, v8
add-long v2, v2, v24
add-long/2addr v2, v12
.line 857
const/16 v5, 0x20
ushr-long v12, v2, v5
mul-long v24, v18, v10
add-long v12, v12, v24
add-long v12, v12, v16
.line 858
const-wide v16, 0xffffffffL
and-long v2, v2, v16
.line 859
const/16 v5, 0x20
ushr-long v16, v12, v5
mul-long v24, v18, v14
add-long v16, v16, v24
add-long v16, v16, v20
.line 860
const-wide v20, 0xffffffffL
and-long v12, v12, v20
.line 861
const/16 v5, 0x20
ushr-long v20, v16, v5
add-long v20, v20, v22
.line 862
const-wide v22, 0xffffffffL
and-long v16, v16, v22
.line 865
add-int/lit8 v5, p1, 0x5
aget v5, p0, v5
int-to-long v0, v5
move-wide/from16 v22, v0
const-wide v24, 0xffffffffL
and-long v22, v22, v24
.line 866
add-int/lit8 v5, p3, 0x9
aget v5, p2, v5
int-to-long v0, v5
move-wide/from16 v24, v0
const-wide v26, 0xffffffffL
and-long v24, v24, v26
.line 867
add-int/lit8 v5, p3, 0xa
aget v5, p2, v5
int-to-long v0, v5
move-wide/from16 v26, v0
const-wide v28, 0xffffffffL
and-long v26, v26, v28
.line 869
mul-long v6, v6, v22
add-long/2addr v2, v6
.line 870
long-to-int v5, v2
.line 871
add-int/lit8 v6, p3, 0x5
shl-int/lit8 v7, v5, 0x1
or-int/2addr v4, v7
aput v4, p2, v6
.line 872
ushr-int/lit8 v4, v5, 0x1f
.line 873
const/16 v5, 0x20
ushr-long/2addr v2, v5
mul-long v6, v22, v8
add-long/2addr v2, v6
add-long/2addr v2, v12
.line 874
const/16 v5, 0x20
ushr-long v6, v2, v5
mul-long v8, v22, v10
add-long/2addr v6, v8
add-long v6, v6, v16
.line 875
const/16 v5, 0x20
ushr-long v8, v6, v5
mul-long v10, v22, v14
add-long/2addr v8, v10
add-long v8, v8, v20
.line 876
const/16 v5, 0x20
ushr-long v10, v8, v5
mul-long v12, v22, v18
add-long/2addr v10, v12
add-long v10, v10, v24
.line 877
const/16 v5, 0x20
ushr-long v12, v10, v5
add-long v12, v12, v26
.line 880
long-to-int v2, v2
.line 881
add-int/lit8 v3, p3, 0x6
shl-int/lit8 v5, v2, 0x1
or-int/2addr v4, v5
aput v4, p2, v3
.line 882
ushr-int/lit8 v2, v2, 0x1f
.line 883
long-to-int v3, v6
.line 884
add-int/lit8 v4, p3, 0x7
shl-int/lit8 v5, v3, 0x1
or-int/2addr v2, v5
aput v2, p2, v4
.line 885
ushr-int/lit8 v2, v3, 0x1f
.line 886
long-to-int v3, v8
.line 887
add-int/lit8 v4, p3, 0x8
shl-int/lit8 v5, v3, 0x1
or-int/2addr v2, v5
aput v2, p2, v4
.line 888
ushr-int/lit8 v2, v3, 0x1f
.line 889
long-to-int v3, v10
.line 890
add-int/lit8 v4, p3, 0x9
shl-int/lit8 v5, v3, 0x1
or-int/2addr v2, v5
aput v2, p2, v4
.line 891
ushr-int/lit8 v2, v3, 0x1f
.line 892
long-to-int v3, v12
.line 893
add-int/lit8 v4, p3, 0xa
shl-int/lit8 v5, v3, 0x1
or-int/2addr v2, v5
aput v2, p2, v4
.line 894
ushr-int/lit8 v2, v3, 0x1f
.line 895
add-int/lit8 v3, p3, 0xb
aget v3, p2, v3
const/16 v4, 0x20
shr-long v4, v12, v4
long-to-int v4, v4
add-int/2addr v3, v4
.line 896
add-int/lit8 v4, p3, 0xb
shl-int/lit8 v3, v3, 0x1
or-int/2addr v2, v3
aput v2, p2, v4
.line 897
return-void
:cond_22c
move v5, v3
move v3, v4
goto/16 :goto_f
.end method
.method public static square([I[I)V
.registers 32
.prologue
.line 669
const/4 v2, 0x0
aget v2, p0, v2
int-to-long v2, v2
const-wide v4, 0xffffffffL
and-long v6, v2, v4
.line 672
const/4 v4, 0x0
.line 674
const/4 v3, 0x5
const/16 v2, 0xc
move v5, v4
.line 677
: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 678
mul-long/2addr v8, v8
.line 679
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 680
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 681
long-to-int v3, v8
.line 683
if-gtz v4, :cond_219
.line 686
mul-long v4, v6, v6
.line 687
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 688
const/4 v8, 0x0
long-to-int v9, v4
aput v9, p1, v8
.line 689
const/16 v8, 0x20
ushr-long/2addr v4, v8
long-to-int v4, v4
and-int/lit8 v4, v4, 0x1
.line 693
const/4 v5, 0x1
aget v5, p0, v5
int-to-long v8, v5
const-wide v10, 0xffffffffL
and-long/2addr v8, v10
.line 694
const/4 v5, 0x2
aget v5, p1, v5
int-to-long v10, v5
const-wide v12, 0xffffffffL
and-long/2addr v10, v12
.line 697
mul-long v12, v8, v6
add-long/2addr v2, v12
.line 698
long-to-int v5, v2
.line 699
const/4 v12, 0x1
shl-int/lit8 v13, v5, 0x1
or-int/2addr v4, v13
aput v4, p1, v12
.line 700
ushr-int/lit8 v4, v5, 0x1f
.line 701
const/16 v5, 0x20
ushr-long/2addr v2, v5
add-long/2addr v2, v10
.line 704
const/4 v5, 0x2
aget v5, p0, v5
int-to-long v10, v5
const-wide v12, 0xffffffffL
and-long/2addr v10, v12
.line 705
const/4 v5, 0x3
aget v5, p1, v5
int-to-long v12, v5
const-wide v14, 0xffffffffL
and-long/2addr v12, v14
.line 706
const/4 v5, 0x4
aget v5, p1, v5
int-to-long v14, v5
const-wide v16, 0xffffffffL
and-long v14, v14, v16
.line 708
mul-long v16, v10, v6
add-long v2, v2, v16
.line 709
long-to-int v5, v2
.line 710
const/16 v16, 0x2
shl-int/lit8 v17, v5, 0x1
or-int v4, v4, v17
aput v4, p1, v16
.line 711
ushr-int/lit8 v4, v5, 0x1f
.line 712
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 713
const/16 v5, 0x20
ushr-long v12, v2, v5
add-long/2addr v12, v14
.line 714
const-wide v14, 0xffffffffL
and-long/2addr v2, v14
.line 717
const/4 v5, 0x3
aget v5, p0, v5
int-to-long v14, v5
const-wide v16, 0xffffffffL
and-long v14, v14, v16
.line 718
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 719
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 721
mul-long v20, v14, v6
add-long v2, v2, v20
.line 722
long-to-int v5, v2
.line 723
const/16 v20, 0x3
shl-int/lit8 v21, v5, 0x1
or-int v4, v4, v21
aput v4, p1, v20
.line 724
ushr-int/lit8 v4, v5, 0x1f
.line 725
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 726
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 727
const-wide v16, 0xffffffffL
and-long v2, v2, v16
.line 728
const/16 v5, 0x20
ushr-long v16, v12, v5
add-long v16, v16, v18
.line 729
const-wide v18, 0xffffffffL
and-long v12, v12, v18
.line 732
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 733
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 734
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 736
mul-long v24, v18, v6
add-long v2, v2, v24
.line 737
long-to-int v5, v2
.line 738
const/16 v24, 0x4
shl-int/lit8 v25, v5, 0x1
or-int v4, v4, v25
aput v4, p1, v24
.line 739
ushr-int/lit8 v4, v5, 0x1f
.line 740
const/16 v5, 0x20
ushr-long/2addr v2, v5
mul-long v24, v18, v8
add-long v2, v2, v24
add-long/2addr v2, v12
.line 741
const/16 v5, 0x20
ushr-long v12, v2, v5
mul-long v24, v18, v10
add-long v12, v12, v24
add-long v12, v12, v16
.line 742
const-wide v16, 0xffffffffL
and-long v2, v2, v16
.line 743
const/16 v5, 0x20
ushr-long v16, v12, v5
mul-long v24, v18, v14
add-long v16, v16, v24
add-long v16, v16, v20
.line 744
const-wide v20, 0xffffffffL
and-long v12, v12, v20
.line 745
const/16 v5, 0x20
ushr-long v20, v16, v5
add-long v20, v20, v22
.line 746
const-wide v22, 0xffffffffL
and-long v16, v16, v22
.line 749
const/4 v5, 0x5
aget v5, p0, v5
int-to-long v0, v5
move-wide/from16 v22, v0
const-wide v24, 0xffffffffL
and-long v22, v22, v24
.line 750
const/16 v5, 0x9
aget v5, p1, v5
int-to-long v0, v5
move-wide/from16 v24, v0
const-wide v26, 0xffffffffL
and-long v24, v24, v26
.line 751
const/16 v5, 0xa
aget v5, p1, v5
int-to-long v0, v5
move-wide/from16 v26, v0
const-wide v28, 0xffffffffL
and-long v26, v26, v28
.line 753
mul-long v6, v6, v22
add-long/2addr v2, v6
.line 754
long-to-int v5, v2
.line 755
const/4 v6, 0x5
shl-int/lit8 v7, v5, 0x1
or-int/2addr v4, v7
aput v4, p1, v6
.line 756
ushr-int/lit8 v4, v5, 0x1f
.line 757
const/16 v5, 0x20
ushr-long/2addr v2, v5
mul-long v6, v22, v8
add-long/2addr v2, v6
add-long/2addr v2, v12
.line 758
const/16 v5, 0x20
ushr-long v6, v2, v5
mul-long v8, v22, v10
add-long/2addr v6, v8
add-long v6, v6, v16
.line 759
const/16 v5, 0x20
ushr-long v8, v6, v5
mul-long v10, v22, v14
add-long/2addr v8, v10
add-long v8, v8, v20
.line 760
const/16 v5, 0x20
ushr-long v10, v8, v5
mul-long v12, v22, v18
add-long/2addr v10, v12
add-long v10, v10, v24
.line 761
const/16 v5, 0x20
ushr-long v12, v10, v5
add-long v12, v12, v26
.line 764
long-to-int v2, v2
.line 765
const/4 v3, 0x6
shl-int/lit8 v5, v2, 0x1
or-int/2addr v4, v5
aput v4, p1, v3
.line 766
ushr-int/lit8 v2, v2, 0x1f
.line 767
long-to-int v3, v6
.line 768
const/4 v4, 0x7
shl-int/lit8 v5, v3, 0x1
or-int/2addr v2, v5
aput v2, p1, v4
.line 769
ushr-int/lit8 v2, v3, 0x1f
.line 770
long-to-int v3, v8
.line 771
const/16 v4, 0x8
shl-int/lit8 v5, v3, 0x1
or-int/2addr v2, v5
aput v2, p1, v4
.line 772
ushr-int/lit8 v2, v3, 0x1f
.line 773
long-to-int v3, v10
.line 774
const/16 v4, 0x9
shl-int/lit8 v5, v3, 0x1
or-int/2addr v2, v5
aput v2, p1, v4
.line 775
ushr-int/lit8 v2, v3, 0x1f
.line 776
long-to-int v3, v12
.line 777
const/16 v4, 0xa
shl-int/lit8 v5, v3, 0x1
or-int/2addr v2, v5
aput v2, p1, v4
.line 778
ushr-int/lit8 v2, v3, 0x1f
.line 779
const/16 v3, 0xb
aget v3, p1, v3
const/16 v4, 0x20
shr-long v4, v12, v4
long-to-int v4, v4
add-int/2addr v3, v4
.line 780
const/16 v4, 0xb
shl-int/lit8 v3, v3, 0x1
or-int/2addr v2, v3
aput v2, p1, v4
.line 781
return-void
:cond_219
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 926
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 927
long-to-int v2, v0
aput v2, p4, p5
.line 928
shr-long/2addr v0, v8
.line 929
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 930
add-int/lit8 v2, p5, 0x1
long-to-int v3, v0
aput v3, p4, v2
.line 931
shr-long/2addr v0, v8
.line 932
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 933
add-int/lit8 v2, p5, 0x2
long-to-int v3, v0
aput v3, p4, v2
.line 934
shr-long/2addr v0, v8
.line 935
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 936
add-int/lit8 v2, p5, 0x3
long-to-int v3, v0
aput v3, p4, v2
.line 937
shr-long/2addr v0, v8
.line 938
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 939
add-int/lit8 v2, p5, 0x4
long-to-int v3, v0
aput v3, p4, v2
.line 940
shr-long/2addr v0, v8
.line 941
add-int/lit8 v2, p1, 0x5
aget v2, p0, v2
int-to-long v2, v2
and-long/2addr v2, v6
add-int/lit8 v4, p3, 0x5
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 942
add-int/lit8 v2, p5, 0x5
long-to-int v3, v0
aput v3, p4, v2
.line 943
shr-long/2addr v0, v8
.line 944
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 902
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 903
long-to-int v2, v0
aput v2, p2, v9
.line 904
shr-long/2addr v0, v8
.line 905
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 906
long-to-int v2, v0
aput v2, p2, v10
.line 907
shr-long/2addr v0, v8
.line 908
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 909
long-to-int v2, v0
aput v2, p2, v11
.line 910
shr-long/2addr v0, v8
.line 911
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 912
const/4 v2, 0x3
long-to-int v3, v0
aput v3, p2, v2
.line 913
shr-long/2addr v0, v8
.line 914
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 915
const/4 v2, 0x4
long-to-int v3, v0
aput v3, p2, v2
.line 916
shr-long/2addr v0, v8
.line 917
const/4 v2, 0x5
aget v2, p0, v2
int-to-long v2, v2
and-long/2addr v2, v6
const/4 v4, 0x5
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 918
const/4 v2, 0x5
long-to-int v3, v0
aput v3, p2, v2
.line 919
shr-long/2addr v0, v8
.line 920
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 950
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 951
long-to-int v2, v0
aput v2, p2, v9
.line 952
shr-long/2addr v0, v8
.line 953
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 954
long-to-int v2, v0
aput v2, p2, v10
.line 955
shr-long/2addr v0, v8
.line 956
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 957
long-to-int v2, v0
aput v2, p2, v11
.line 958
shr-long/2addr v0, v8
.line 959
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 960
const/4 v2, 0x3
long-to-int v3, v0
aput v3, p2, v2
.line 961
shr-long/2addr v0, v8
.line 962
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 963
const/4 v2, 0x4
long-to-int v3, v0
aput v3, p2, v2
.line 964
shr-long/2addr v0, v8
.line 965
const/4 v2, 0x5
aget v2, p2, v2
int-to-long v2, v2
and-long/2addr v2, v6
const/4 v4, 0x5
aget v4, p0, v4
int-to-long v4, v4
and-long/2addr v4, v6
sub-long/2addr v2, v4
const/4 v4, 0x5
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 966
const/4 v2, 0x5
long-to-int v3, v0
aput v3, p2, v2
.line 967
shr-long/2addr v0, v8
.line 968
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 998
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 999
long-to-int v2, v0
aput v2, p2, p3
.line 1000
shr-long/2addr v0, v8
.line 1001
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 1002
add-int/lit8 v2, p3, 0x1
long-to-int v3, v0
aput v3, p2, v2
.line 1003
shr-long/2addr v0, v8
.line 1004
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 1005
add-int/lit8 v2, p3, 0x2
long-to-int v3, v0
aput v3, p2, v2
.line 1006
shr-long/2addr v0, v8
.line 1007
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 1008
add-int/lit8 v2, p3, 0x3
long-to-int v3, v0
aput v3, p2, v2
.line 1009
shr-long/2addr v0, v8
.line 1010
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 1011
add-int/lit8 v2, p3, 0x4
long-to-int v3, v0
aput v3, p2, v2
.line 1012
shr-long/2addr v0, v8
.line 1013
add-int/lit8 v2, p3, 0x5
aget v2, p2, v2
int-to-long v2, v2
and-long/2addr v2, v6
add-int/lit8 v4, p1, 0x5
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 1014
add-int/lit8 v2, p3, 0x5
long-to-int v3, v0
aput v3, p2, v2
.line 1015
shr-long/2addr v0, v8
.line 1016
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 974
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 975
long-to-int v2, v0
aput v2, p1, v9
.line 976
shr-long/2addr v0, v8
.line 977
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 978
long-to-int v2, v0
aput v2, p1, v10
.line 979
shr-long/2addr v0, v8
.line 980
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 981
long-to-int v2, v0
aput v2, p1, v11
.line 982
shr-long/2addr v0, v8
.line 983
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 984
const/4 v2, 0x3
long-to-int v3, v0
aput v3, p1, v2
.line 985
shr-long/2addr v0, v8
.line 986
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 987
const/4 v2, 0x4
long-to-int v3, v0
aput v3, p1, v2
.line 988
shr-long/2addr v0, v8
.line 989
const/4 v2, 0x5
aget v2, p1, v2
int-to-long v2, v2
and-long/2addr v2, v6
const/4 v4, 0x5
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 990
const/4 v2, 0x5
long-to-int v3, v0
aput v3, p1, v2
.line 991
shr-long/2addr v0, v8
.line 992
long-to-int v0, v0
return v0
.end method
.method public static toBigInteger([I)Ljava/math/BigInteger;
.registers 5
.prologue
.line 1021
const/16 v0, 0x18
new-array v1, v0, [B
.line 1022
const/4 v0, 0x0
:goto_5
const/4 v2, 0x6
if-ge v0, v2, :cond_16
.line 1024
aget v2, p0, v0
.line 1025
if-eqz v2, :cond_13
.line 1027
rsub-int/lit8 v3, v0, 0x5
shl-int/lit8 v3, v3, 0x2
invoke-static {v2, v1, v3}, Lorg/spongycastle/util/Pack;->intToBigEndian(I[BI)V
.line 1022
:cond_13
add-int/lit8 v0, v0, 0x1
goto :goto_5
.line 1030
: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 1035
const/16 v0, 0x18
new-array v1, v0, [B
.line 1036
const/4 v0, 0x0
:goto_5
const/4 v2, 0x3
if-ge v0, v2, :cond_1a
.line 1038
aget-wide v2, p0, v0
.line 1039
const-wide/16 v4, 0x0
cmp-long v4, v2, v4
if-eqz v4, :cond_17
.line 1041
rsub-int/lit8 v4, v0, 0x2
shl-int/lit8 v4, v4, 0x3
invoke-static {v2, v3, v1, v4}, Lorg/spongycastle/util/Pack;->longToBigEndian(J[BI)V
.line 1036
:cond_17
add-int/lit8 v0, v0, 0x1
goto :goto_5
.line 1044
: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 1049
aput v1, p0, v1
.line 1050
const/4 v0, 0x1
aput v1, p0, v0
.line 1051
const/4 v0, 0x2
aput v1, p0, v0
.line 1052
const/4 v0, 0x3
aput v1, p0, v0
.line 1053
const/4 v0, 0x4
aput v1, p0, v0
.line 1054
const/4 v0, 0x5
aput v1, p0, v0
.line 1055
return-void
.end method