Nat224.smali

.class public abstract Lorg/spongycastle/math/raw/Nat224;
.super Ljava/lang/Object;
.source "Nat224.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([II[II[II)I
    .registers 15

    .prologue
    const/16 v8, 0x20

    const-wide v6, 0xffffffffL

    .line 41
    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 42
    long-to-int v2, v0

    aput v2, p4, p5

    .line 43
    ushr-long/2addr v0, v8

    .line 44
    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 45
    add-int/lit8 v2, p5, 0x1

    long-to-int v3, v0

    aput v3, p4, v2

    .line 46
    ushr-long/2addr v0, v8

    .line 47
    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 48
    add-int/lit8 v2, p5, 0x2

    long-to-int v3, v0

    aput v3, p4, v2

    .line 49
    ushr-long/2addr v0, v8

    .line 50
    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 51
    add-int/lit8 v2, p5, 0x3

    long-to-int v3, v0

    aput v3, p4, v2

    .line 52
    ushr-long/2addr v0, v8

    .line 53
    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 54
    add-int/lit8 v2, p5, 0x4

    long-to-int v3, v0

    aput v3, p4, v2

    .line 55
    ushr-long/2addr v0, v8

    .line 56
    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 57
    add-int/lit8 v2, p5, 0x5

    long-to-int v3, v0

    aput v3, p4, v2

    .line 58
    ushr-long/2addr v0, v8

    .line 59
    add-int/lit8 v2, p1, 0x6

    aget v2, p0, v2

    int-to-long v2, v2

    and-long/2addr v2, v6

    add-int/lit8 v4, p3, 0x6

    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 60
    add-int/lit8 v2, p5, 0x6

    long-to-int v3, v0

    aput v3, p4, v2

    .line 61
    ushr-long/2addr v0, v8

    .line 62
    long-to-int v0, v0

    return v0
.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
    const/4 v2, 0x6

    aget v2, p0, v2

    int-to-long v2, v2

    and-long/2addr v2, v6

    const/4 v4, 0x6

    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 33
    const/4 v2, 0x6

    long-to-int v3, v0

    aput v3, p2, v2

    .line 34
    ushr-long/2addr v0, v8

    .line 35
    long-to-int v0, v0

    return v0
.end method

.method public static addBothTo([II[II[II)I
    .registers 15

    .prologue
    const/16 v8, 0x20

    const-wide v6, 0xffffffffL

    .line 95
    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

    aget v4, p4, p5

    int-to-long v4, v4

    and-long/2addr v4, v6

    add-long/2addr v2, v4

    add-long/2addr v0, v2

    .line 96
    long-to-int v2, v0

    aput v2, p4, p5

    .line 97
    ushr-long/2addr v0, v8

    .line 98
    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-int/lit8 v4, p5, 0x1

    aget v4, p4, 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, p5, 0x1

    long-to-int v3, v0

    aput v3, p4, v2

    .line 100
    ushr-long/2addr v0, v8

    .line 101
    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-int/lit8 v4, p5, 0x2

    aget v4, p4, 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, p5, 0x2

    long-to-int v3, v0

    aput v3, p4, v2

    .line 103
    ushr-long/2addr v0, v8

    .line 104
    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-int/lit8 v4, p5, 0x3

    aget v4, p4, v4

    int-to-long v4, v4

    and-long/2addr v4, v6

    add-long/2addr v2, v4

    add-long/2addr v0, v2

    .line 105
    add-int/lit8 v2, p5, 0x3

    long-to-int v3, v0

    aput v3, p4, v2

    .line 106
    ushr-long/2addr v0, v8

    .line 107
    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-int/lit8 v4, p5, 0x4

    aget v4, p4, v4

    int-to-long v4, v4

    and-long/2addr v4, v6

    add-long/2addr v2, v4

    add-long/2addr v0, v2

    .line 108
    add-int/lit8 v2, p5, 0x4

    long-to-int v3, v0

    aput v3, p4, v2

    .line 109
    ushr-long/2addr v0, v8

    .line 110
    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-int/lit8 v4, p5, 0x5

    aget v4, p4, 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, p5, 0x5

    long-to-int v3, v0

    aput v3, p4, v2

    .line 112
    ushr-long/2addr v0, v8

    .line 113
    add-int/lit8 v2, p1, 0x6

    aget v2, p0, v2

    int-to-long v2, v2

    and-long/2addr v2, v6

    add-int/lit8 v4, p3, 0x6

    aget v4, p2, v4

    int-to-long v4, v4

    and-long/2addr v4, v6

    add-long/2addr v2, v4

    add-int/lit8 v4, p5, 0x6

    aget v4, p4, v4

    int-to-long v4, v4

    and-long/2addr v4, v6

    add-long/2addr v2, v4

    add-long/2addr v0, v2

    .line 114
    add-int/lit8 v2, p5, 0x6

    long-to-int v3, v0

    aput v3, p4, v2

    .line 115
    ushr-long/2addr v0, v8

    .line 116
    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 68
    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 69
    long-to-int v2, v0

    aput v2, p2, v9

    .line 70
    ushr-long/2addr v0, v8

    .line 71
    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 72
    long-to-int v2, v0

    aput v2, p2, v10

    .line 73
    ushr-long/2addr v0, v8

    .line 74
    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 75
    long-to-int v2, v0

    aput v2, p2, v11

    .line 76
    ushr-long/2addr v0, v8

    .line 77
    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 78
    const/4 v2, 0x3

    long-to-int v3, v0

    aput v3, p2, v2

    .line 79
    ushr-long/2addr v0, v8

    .line 80
    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 81
    const/4 v2, 0x4

    long-to-int v3, v0

    aput v3, p2, v2

    .line 82
    ushr-long/2addr v0, v8

    .line 83
    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 84
    const/4 v2, 0x5

    long-to-int v3, v0

    aput v3, p2, v2

    .line 85
    ushr-long/2addr v0, v8

    .line 86
    const/4 v2, 0x6

    aget v2, p0, v2

    int-to-long v2, v2

    and-long/2addr v2, v6

    const/4 v4, 0x6

    aget v4, p1, v4

    int-to-long v4, v4

    and-long/2addr v4, v6

    add-long/2addr v2, v4

    const/4 v4, 0x6

    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
    const/4 v2, 0x6

    long-to-int v3, v0

    aput v3, p2, v2

    .line 88
    ushr-long/2addr v0, v8

    .line 89
    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 148
    int-to-long v0, p4

    and-long/2addr v0, v6

    .line 149
    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 150
    long-to-int v2, v0

    aput v2, p2, p3

    .line 151
    ushr-long/2addr v0, v8

    .line 152
    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 153
    add-int/lit8 v2, p3, 0x1

    long-to-int v3, v0

    aput v3, p2, v2

    .line 154
    ushr-long/2addr v0, v8

    .line 155
    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 156
    add-int/lit8 v2, p3, 0x2

    long-to-int v3, v0

    aput v3, p2, v2

    .line 157
    ushr-long/2addr v0, v8

    .line 158
    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 159
    add-int/lit8 v2, p3, 0x3

    long-to-int v3, v0

    aput v3, p2, v2

    .line 160
    ushr-long/2addr v0, v8

    .line 161
    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 162
    add-int/lit8 v2, p3, 0x4

    long-to-int v3, v0

    aput v3, p2, v2

    .line 163
    ushr-long/2addr v0, v8

    .line 164
    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 165
    add-int/lit8 v2, p3, 0x5

    long-to-int v3, v0

    aput v3, p2, v2

    .line 166
    ushr-long/2addr v0, v8

    .line 167
    add-int/lit8 v2, p1, 0x6

    aget v2, p0, v2

    int-to-long v2, v2

    and-long/2addr v2, v6

    add-int/lit8 v4, p3, 0x6

    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 168
    add-int/lit8 v2, p3, 0x6

    long-to-int v3, v0

    aput v3, p2, v2

    .line 169
    ushr-long/2addr v0, v8

    .line 170
    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 122
    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 123
    long-to-int v2, v0

    aput v2, p1, v9

    .line 124
    ushr-long/2addr v0, v8

    .line 125
    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 126
    long-to-int v2, v0

    aput v2, p1, v10

    .line 127
    ushr-long/2addr v0, v8

    .line 128
    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 129
    long-to-int v2, v0

    aput v2, p1, v11

    .line 130
    ushr-long/2addr v0, v8

    .line 131
    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 132
    const/4 v2, 0x3

    long-to-int v3, v0

    aput v3, p1, v2

    .line 133
    ushr-long/2addr v0, v8

    .line 134
    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 135
    const/4 v2, 0x4

    long-to-int v3, v0

    aput v3, p1, v2

    .line 136
    ushr-long/2addr v0, v8

    .line 137
    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 138
    const/4 v2, 0x5

    long-to-int v3, v0

    aput v3, p1, v2

    .line 139
    ushr-long/2addr v0, v8

    .line 140
    const/4 v2, 0x6

    aget v2, p0, v2

    int-to-long v2, v2

    and-long/2addr v2, v6

    const/4 v4, 0x6

    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 141
    const/4 v2, 0x6

    long-to-int v3, v0

    aput v3, p1, v2

    .line 142
    ushr-long/2addr v0, v8

    .line 143
    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 176
    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 177
    long-to-int v2, v0

    aput v2, p0, p1

    .line 178
    long-to-int v2, v0

    aput v2, p2, p3

    .line 179
    ushr-long/2addr v0, v8

    .line 180
    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 181
    add-int/lit8 v2, p1, 0x1

    long-to-int v3, v0

    aput v3, p0, v2

    .line 182
    add-int/lit8 v2, p3, 0x1

    long-to-int v3, v0

    aput v3, p2, v2

    .line 183
    ushr-long/2addr v0, v8

    .line 184
    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 185
    add-int/lit8 v2, p1, 0x2

    long-to-int v3, v0

    aput v3, p0, v2

    .line 186
    add-int/lit8 v2, p3, 0x2

    long-to-int v3, v0

    aput v3, p2, v2

    .line 187
    ushr-long/2addr v0, v8

    .line 188
    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 189
    add-int/lit8 v2, p1, 0x3

    long-to-int v3, v0

    aput v3, p0, v2

    .line 190
    add-int/lit8 v2, p3, 0x3

    long-to-int v3, v0

    aput v3, p2, v2

    .line 191
    ushr-long/2addr v0, v8

    .line 192
    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 193
    add-int/lit8 v2, p1, 0x4

    long-to-int v3, v0

    aput v3, p0, v2

    .line 194
    add-int/lit8 v2, p3, 0x4

    long-to-int v3, v0

    aput v3, p2, v2

    .line 195
    ushr-long/2addr v0, v8

    .line 196
    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 197
    add-int/lit8 v2, p1, 0x5

    long-to-int v3, v0

    aput v3, p0, v2

    .line 198
    add-int/lit8 v2, p3, 0x5

    long-to-int v3, v0

    aput v3, p2, v2

    .line 199
    ushr-long/2addr v0, v8

    .line 200
    add-int/lit8 v2, p1, 0x6

    aget v2, p0, v2

    int-to-long v2, v2

    and-long/2addr v2, v6

    add-int/lit8 v4, p3, 0x6

    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 201
    add-int/lit8 v2, p1, 0x6

    long-to-int v3, v0

    aput v3, p0, v2

    .line 202
    add-int/lit8 v2, p3, 0x6

    long-to-int v3, v0

    aput v3, p2, v2

    .line 203
    ushr-long/2addr v0, v8

    .line 204
    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 209
    aget v0, p0, v1

    aput v0, p1, v1

    .line 210
    aget v0, p0, v2

    aput v0, p1, v2

    .line 211
    aget v0, p0, v3

    aput v0, p1, v3

    .line 212
    aget v0, p0, v4

    aput v0, p1, v4

    .line 213
    aget v0, p0, v5

    aput v0, p1, v5

    .line 214
    const/4 v0, 0x5

    const/4 v1, 0x5

    aget v1, p0, v1

    aput v1, p1, v0

    .line 215
    const/4 v0, 0x6

    const/4 v1, 0x6

    aget v1, p0, v1

    aput v1, p1, v0

    .line 216
    return-void
.end method

.method public static create()[I
    .registers 1

    .prologue
    .line 220
    const/4 v0, 0x7

    new-array v0, v0, [I

    return-object v0
.end method

.method public static createExt()[I
    .registers 1

    .prologue
    .line 225
    const/16 v0, 0xe

    new-array v0, v0, [I

    return-object v0
.end method

.method public static diff([II[II[II)Z
    .registers 13

    .prologue
    .line 230
    invoke-static {p0, p1, p2, p3}, Lorg/spongycastle/math/raw/Nat224;->gte([II[II)Z

    move-result v6

    .line 231
    if-eqz v6, :cond_a

    .line 233
    invoke-static/range {p0 .. p5}, Lorg/spongycastle/math/raw/Nat224;->sub([II[II[II)I

    .line 239
    :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 237
    invoke-static/range {v0 .. v5}, Lorg/spongycastle/math/raw/Nat224;->sub([II[II[II)I

    goto :goto_9
.end method

.method public static eq([I[I)Z
    .registers 5

    .prologue
    .line 244
    const/4 v0, 0x6

    :goto_1
    if-ltz v0, :cond_e

    .line 246
    aget v1, p0, v0

    aget v2, p1, v0

    if-eq v1, v2, :cond_b

    .line 248
    const/4 v0, 0x0

    .line 251
    :goto_a
    return v0

    .line 244
    :cond_b
    add-int/lit8 v0, v0, -0x1

    goto :goto_1

    .line 251
    :cond_e
    const/4 v0, 0x1

    goto :goto_a
.end method

.method public static fromBigInteger(Ljava/math/BigInteger;)[I
    .registers 5

    .prologue
    .line 256
    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, 0xe0

    if-le v0, v1, :cond_14

    .line 258
    :cond_e
    new-instance v0, Ljava/lang/IllegalArgumentException;

    invoke-direct {v0}, Ljava/lang/IllegalArgumentException;-><init>()V

    throw v0

    .line 261
    :cond_14
    invoke-static {}, Lorg/spongycastle/math/raw/Nat224;->create()[I

    move-result-object v2

    .line 262
    const/4 v0, 0x0

    .line 263
    :goto_19
    invoke-virtual {p0}, Ljava/math/BigInteger;->signum()I

    move-result v1

    if-eqz v1, :cond_2f

    .line 265
    add-int/lit8 v1, v0, 0x1

    invoke-virtual {p0}, Ljava/math/BigInteger;->intValue()I

    move-result v3

    aput v3, v2, v0

    .line 266
    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 268
    :cond_2f
    return-object v2
.end method

.method public static getBit([II)I
    .registers 5

    .prologue
    const/4 v0, 0x0

    .line 273
    if-nez p1, :cond_8

    .line 275
    aget v0, p0, v0

    and-int/lit8 v0, v0, 0x1

    .line 283
    :cond_7
    :goto_7
    return v0

    .line 277
    :cond_8
    shr-int/lit8 v1, p1, 0x5

    .line 278
    if-ltz v1, :cond_7

    const/4 v2, 0x7

    if-ge v1, v2, :cond_7

    .line 282
    and-int/lit8 v0, p1, 0x1f

    .line 283
    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 302
    const/4 v1, 0x6

    :goto_4
    if-ltz v1, :cond_13

    .line 304
    add-int v2, p1, v1

    aget v2, p0, v2

    xor-int/2addr v2, v4

    .line 305
    add-int v3, p3, v1

    aget v3, p2, v3

    xor-int/2addr v3, v4

    .line 306
    if-ge v2, v3, :cond_14

    .line 307
    const/4 v0, 0x0

    .line 311
    :cond_13
    return v0

    .line 308
    :cond_14
    if-gt v2, v3, :cond_13

    .line 302
    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 288
    const/4 v1, 0x6

    :goto_4
    if-ltz v1, :cond_f

    .line 290
    aget v2, p0, v1

    xor-int/2addr v2, v4

    .line 291
    aget v3, p1, v1

    xor-int/2addr v3, v4

    .line 292
    if-ge v2, v3, :cond_10

    .line 293
    const/4 v0, 0x0

    .line 297
    :cond_f
    return v0

    .line 294
    :cond_10
    if-gt v2, v3, :cond_f

    .line 288
    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 316
    aget v2, p0, v0

    if-eq v2, v1, :cond_7

    .line 327
    :cond_6
    :goto_6
    return v0

    :cond_7
    move v2, v1

    .line 320
    :goto_8
    const/4 v3, 0x7

    if-ge v2, v3, :cond_12

    .line 322
    aget v3, p0, v2

    if-nez v3, :cond_6

    .line 320
    add-int/lit8 v2, v2, 0x1

    goto :goto_8

    :cond_12
    move v0, v1

    .line 327
    goto :goto_6
.end method

.method public static isZero([I)Z
    .registers 4

    .prologue
    const/4 v0, 0x0

    .line 332
    move v1, v0

    :goto_2
    const/4 v2, 0x7

    if-ge v1, v2, :cond_d

    .line 334
    aget v2, p0, v1

    if-eqz v2, :cond_a

    .line 339
    :goto_9
    return v0

    .line 332
    :cond_a
    add-int/lit8 v1, v1, 0x1

    goto :goto_2

    .line 339
    :cond_d
    const/4 v0, 0x1

    goto :goto_9
.end method

.method public static mul([II[II[II)V
    .registers 34

    .prologue
    .line 408
    aget v2, p2, p3

    int-to-long v2, v2

    const-wide v4, 0xffffffffL

    and-long/2addr v4, v2

    .line 409
    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 410
    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 411
    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 412
    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 413
    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 414
    add-int/lit8 v2, p3, 0x6

    aget v2, p2, v2

    int-to-long v2, v2

    const-wide v16, 0xffffffffL

    and-long v16, v16, v2

    .line 417
    aget v2, p0, p1

    int-to-long v2, v2

    const-wide v18, 0xffffffffL

    and-long v2, v2, v18

    .line 418
    const-wide/16 v18, 0x0

    mul-long v20, v2, v4

    add-long v18, v18, v20

    .line 419
    move-wide/from16 v0, v18

    long-to-int v0, v0

    move/from16 v20, v0

    aput v20, p4, p5

    .line 420
    const/16 v20, 0x20

    ushr-long v18, v18, v20

    .line 421
    mul-long v20, v2, v6

    add-long v18, v18, v20

    .line 422
    add-int/lit8 v20, p5, 0x1

    move-wide/from16 v0, v18

    long-to-int v0, v0

    move/from16 v21, v0

    aput v21, p4, v20

    .line 423
    const/16 v20, 0x20

    ushr-long v18, v18, v20

    .line 424
    mul-long v20, v2, v8

    add-long v18, v18, v20

    .line 425
    add-int/lit8 v20, p5, 0x2

    move-wide/from16 v0, v18

    long-to-int v0, v0

    move/from16 v21, v0

    aput v21, p4, v20

    .line 426
    const/16 v20, 0x20

    ushr-long v18, v18, v20

    .line 427
    mul-long v20, v2, v10

    add-long v18, v18, v20

    .line 428
    add-int/lit8 v20, p5, 0x3

    move-wide/from16 v0, v18

    long-to-int v0, v0

    move/from16 v21, v0

    aput v21, p4, v20

    .line 429
    const/16 v20, 0x20

    ushr-long v18, v18, v20

    .line 430
    mul-long v20, v2, v12

    add-long v18, v18, v20

    .line 431
    add-int/lit8 v20, p5, 0x4

    move-wide/from16 v0, v18

    long-to-int v0, v0

    move/from16 v21, v0

    aput v21, p4, v20

    .line 432
    const/16 v20, 0x20

    ushr-long v18, v18, v20

    .line 433
    mul-long v20, v2, v14

    add-long v18, v18, v20

    .line 434
    add-int/lit8 v20, p5, 0x5

    move-wide/from16 v0, v18

    long-to-int v0, v0

    move/from16 v21, v0

    aput v21, p4, v20

    .line 435
    const/16 v20, 0x20

    ushr-long v18, v18, v20

    .line 436
    mul-long v2, v2, v16

    add-long v2, v2, v18

    .line 437
    add-int/lit8 v18, p5, 0x6

    long-to-int v0, v2

    move/from16 v19, v0

    aput v19, p4, v18

    .line 438
    const/16 v18, 0x20

    ushr-long v2, v2, v18

    .line 439
    add-int/lit8 v18, p5, 0x7

    long-to-int v2, v2

    aput v2, p4, v18

    .line 442
    const/4 v2, 0x1

    :goto_d1
    const/4 v3, 0x7

    if-ge v2, v3, :cond_1d4

    .line 444
    add-int/lit8 p5, p5, 0x1

    .line 445
    add-int v3, p1, v2

    aget v3, p0, v3

    int-to-long v0, v3

    move-wide/from16 v18, v0

    const-wide v20, 0xffffffffL

    and-long v18, v18, v20

    .line 446
    const-wide/16 v20, 0x0

    mul-long v22, v18, v4

    aget v3, p4, p5

    int-to-long v0, v3

    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 447
    move-wide/from16 v0, v20

    long-to-int v3, v0

    aput v3, p4, p5

    .line 448
    const/16 v3, 0x20

    ushr-long v20, v20, v3

    .line 449
    mul-long v22, v18, v6

    add-int/lit8 v3, p5, 0x1

    aget v3, p4, v3

    int-to-long v0, v3

    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 450
    add-int/lit8 v3, p5, 0x1

    move-wide/from16 v0, v20

    long-to-int v0, v0

    move/from16 v22, v0

    aput v22, p4, v3

    .line 451
    const/16 v3, 0x20

    ushr-long v20, v20, v3

    .line 452
    mul-long v22, v18, v8

    add-int/lit8 v3, p5, 0x2

    aget v3, p4, v3

    int-to-long v0, v3

    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 453
    add-int/lit8 v3, p5, 0x2

    move-wide/from16 v0, v20

    long-to-int v0, v0

    move/from16 v22, v0

    aput v22, p4, v3

    .line 454
    const/16 v3, 0x20

    ushr-long v20, v20, v3

    .line 455
    mul-long v22, v18, v10

    add-int/lit8 v3, p5, 0x3

    aget v3, p4, v3

    int-to-long v0, v3

    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 456
    add-int/lit8 v3, p5, 0x3

    move-wide/from16 v0, v20

    long-to-int v0, v0

    move/from16 v22, v0

    aput v22, p4, v3

    .line 457
    const/16 v3, 0x20

    ushr-long v20, v20, v3

    .line 458
    mul-long v22, v18, v12

    add-int/lit8 v3, p5, 0x4

    aget v3, p4, v3

    int-to-long v0, v3

    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 459
    add-int/lit8 v3, p5, 0x4

    move-wide/from16 v0, v20

    long-to-int v0, v0

    move/from16 v22, v0

    aput v22, p4, v3

    .line 460
    const/16 v3, 0x20

    ushr-long v20, v20, v3

    .line 461
    mul-long v22, v18, v14

    add-int/lit8 v3, p5, 0x5

    aget v3, p4, v3

    int-to-long v0, v3

    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 462
    add-int/lit8 v3, p5, 0x5

    move-wide/from16 v0, v20

    long-to-int v0, v0

    move/from16 v22, v0

    aput v22, p4, v3

    .line 463
    const/16 v3, 0x20

    ushr-long v20, v20, v3

    .line 464
    mul-long v18, v18, v16

    add-int/lit8 v3, p5, 0x6

    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 v18, v18, v22

    add-long v18, v18, v20

    .line 465
    add-int/lit8 v3, p5, 0x6

    move-wide/from16 v0, v18

    long-to-int v0, v0

    move/from16 v20, v0

    aput v20, p4, v3

    .line 466
    const/16 v3, 0x20

    ushr-long v18, v18, v3

    .line 467
    add-int/lit8 v3, p5, 0x7

    move-wide/from16 v0, v18

    long-to-int v0, v0

    move/from16 v18, v0

    aput v18, p4, v3

    .line 442
    add-int/lit8 v2, v2, 0x1

    goto/16 :goto_d1

    .line 469
    :cond_1d4
    return-void
.end method

.method public static mul([I[I[I)V
    .registers 31

    .prologue
    .line 344
    const/4 v2, 0x0

    aget v2, p1, v2

    int-to-long v2, v2

    const-wide v4, 0xffffffffL

    and-long/2addr v4, v2

    .line 345
    const/4 v2, 0x1

    aget v2, p1, v2

    int-to-long v2, v2

    const-wide v6, 0xffffffffL

    and-long/2addr v6, v2

    .line 346
    const/4 v2, 0x2

    aget v2, p1, v2

    int-to-long v2, v2

    const-wide v8, 0xffffffffL

    and-long/2addr v8, v2

    .line 347
    const/4 v2, 0x3

    aget v2, p1, v2

    int-to-long v2, v2

    const-wide v10, 0xffffffffL

    and-long/2addr v10, v2

    .line 348
    const/4 v2, 0x4

    aget v2, p1, v2

    int-to-long v2, v2

    const-wide v12, 0xffffffffL

    and-long/2addr v12, v2

    .line 349
    const/4 v2, 0x5

    aget v2, p1, v2

    int-to-long v2, v2

    const-wide v14, 0xffffffffL

    and-long/2addr v14, v2

    .line 350
    const/4 v2, 0x6

    aget v2, p1, v2

    int-to-long v2, v2

    const-wide v16, 0xffffffffL

    and-long v16, v16, v2

    .line 353
    const/4 v2, 0x0

    aget v2, p0, v2

    int-to-long v2, v2

    const-wide v18, 0xffffffffL

    and-long v2, v2, v18

    .line 354
    const-wide/16 v18, 0x0

    mul-long v20, v2, v4

    add-long v18, v18, v20

    .line 355
    const/16 v20, 0x0

    move-wide/from16 v0, v18

    long-to-int v0, v0

    move/from16 v21, v0

    aput v21, p2, v20

    .line 356
    const/16 v20, 0x20

    ushr-long v18, v18, v20

    .line 357
    mul-long v20, v2, v6

    add-long v18, v18, v20

    .line 358
    const/16 v20, 0x1

    move-wide/from16 v0, v18

    long-to-int v0, v0

    move/from16 v21, v0

    aput v21, p2, v20

    .line 359
    const/16 v20, 0x20

    ushr-long v18, v18, v20

    .line 360
    mul-long v20, v2, v8

    add-long v18, v18, v20

    .line 361
    const/16 v20, 0x2

    move-wide/from16 v0, v18

    long-to-int v0, v0

    move/from16 v21, v0

    aput v21, p2, v20

    .line 362
    const/16 v20, 0x20

    ushr-long v18, v18, v20

    .line 363
    mul-long v20, v2, v10

    add-long v18, v18, v20

    .line 364
    const/16 v20, 0x3

    move-wide/from16 v0, v18

    long-to-int v0, v0

    move/from16 v21, v0

    aput v21, p2, v20

    .line 365
    const/16 v20, 0x20

    ushr-long v18, v18, v20

    .line 366
    mul-long v20, v2, v12

    add-long v18, v18, v20

    .line 367
    const/16 v20, 0x4

    move-wide/from16 v0, v18

    long-to-int v0, v0

    move/from16 v21, v0

    aput v21, p2, v20

    .line 368
    const/16 v20, 0x20

    ushr-long v18, v18, v20

    .line 369
    mul-long v20, v2, v14

    add-long v18, v18, v20

    .line 370
    const/16 v20, 0x5

    move-wide/from16 v0, v18

    long-to-int v0, v0

    move/from16 v21, v0

    aput v21, p2, v20

    .line 371
    const/16 v20, 0x20

    ushr-long v18, v18, v20

    .line 372
    mul-long v2, v2, v16

    add-long v2, v2, v18

    .line 373
    const/16 v18, 0x6

    long-to-int v0, v2

    move/from16 v19, v0

    aput v19, p2, v18

    .line 374
    const/16 v18, 0x20

    ushr-long v2, v2, v18

    .line 375
    const/16 v18, 0x7

    long-to-int v2, v2

    aput v2, p2, v18

    .line 378
    const/4 v2, 0x1

    :goto_cf
    const/4 v3, 0x7

    if-ge v2, v3, :cond_1ce

    .line 380
    aget v3, p0, v2

    int-to-long v0, v3

    move-wide/from16 v18, v0

    const-wide v20, 0xffffffffL

    and-long v18, v18, v20

    .line 381
    const-wide/16 v20, 0x0

    mul-long v22, v18, v4

    aget v3, p2, v2

    int-to-long v0, v3

    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 382
    move-wide/from16 v0, v20

    long-to-int v3, v0

    aput v3, p2, v2

    .line 383
    const/16 v3, 0x20

    ushr-long v20, v20, v3

    .line 384
    mul-long v22, v18, v6

    add-int/lit8 v3, v2, 0x1

    aget v3, p2, v3

    int-to-long v0, v3

    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 385
    add-int/lit8 v3, v2, 0x1

    move-wide/from16 v0, v20

    long-to-int v0, v0

    move/from16 v22, v0

    aput v22, p2, v3

    .line 386
    const/16 v3, 0x20

    ushr-long v20, v20, v3

    .line 387
    mul-long v22, v18, v8

    add-int/lit8 v3, v2, 0x2

    aget v3, p2, v3

    int-to-long v0, v3

    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 388
    add-int/lit8 v3, v2, 0x2

    move-wide/from16 v0, v20

    long-to-int v0, v0

    move/from16 v22, v0

    aput v22, p2, v3

    .line 389
    const/16 v3, 0x20

    ushr-long v20, v20, v3

    .line 390
    mul-long v22, v18, v10

    add-int/lit8 v3, v2, 0x3

    aget v3, p2, v3

    int-to-long v0, v3

    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 391
    add-int/lit8 v3, v2, 0x3

    move-wide/from16 v0, v20

    long-to-int v0, v0

    move/from16 v22, v0

    aput v22, p2, v3

    .line 392
    const/16 v3, 0x20

    ushr-long v20, v20, v3

    .line 393
    mul-long v22, v18, v12

    add-int/lit8 v3, v2, 0x4

    aget v3, p2, v3

    int-to-long v0, v3

    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 394
    add-int/lit8 v3, v2, 0x4

    move-wide/from16 v0, v20

    long-to-int v0, v0

    move/from16 v22, v0

    aput v22, p2, v3

    .line 395
    const/16 v3, 0x20

    ushr-long v20, v20, v3

    .line 396
    mul-long v22, v18, v14

    add-int/lit8 v3, v2, 0x5

    aget v3, p2, v3

    int-to-long v0, v3

    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 397
    add-int/lit8 v3, v2, 0x5

    move-wide/from16 v0, v20

    long-to-int v0, v0

    move/from16 v22, v0

    aput v22, p2, v3

    .line 398
    const/16 v3, 0x20

    ushr-long v20, v20, v3

    .line 399
    mul-long v18, v18, v16

    add-int/lit8 v3, v2, 0x6

    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 v18, v18, v22

    add-long v18, v18, v20

    .line 400
    add-int/lit8 v3, v2, 0x6

    move-wide/from16 v0, v18

    long-to-int v0, v0

    move/from16 v20, v0

    aput v20, p2, v3

    .line 401
    const/16 v3, 0x20

    ushr-long v18, v18, v3

    .line 402
    add-int/lit8 v3, v2, 0x7

    move-wide/from16 v0, v18

    long-to-int v0, v0

    move/from16 v18, v0

    aput v18, p2, v3

    .line 378
    add-int/lit8 v2, v2, 0x1

    goto/16 :goto_cf

    .line 404
    :cond_1ce
    return-void
.end method

.method public static mul33Add(I[II[II[II)J
    .registers 19

    .prologue
    .line 560
    int-to-long v0, p0

    const-wide v2, 0xffffffffL

    and-long/2addr v0, v2

    .line 561
    aget v2, p1, p2

    int-to-long v2, v2

    const-wide v4, 0xffffffffL

    and-long/2addr v2, v4

    .line 562
    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 563
    long-to-int v6, v4

    aput v6, p5, p6

    .line 564
    const/16 v6, 0x20

    ushr-long/2addr v4, v6

    .line 565
    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 566
    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 567
    add-int/lit8 v4, p6, 0x1

    long-to-int v5, v2

    aput v5, p5, v4

    .line 568
    const/16 v4, 0x20

    ushr-long/2addr v2, v4

    .line 569
    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 570
    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 571
    add-int/lit8 v6, p6, 0x2

    long-to-int v7, v2

    aput v7, p5, v6

    .line 572
    const/16 v6, 0x20

    ushr-long/2addr v2, v6

    .line 573
    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 574
    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 575
    add-int/lit8 v4, p6, 0x3

    long-to-int v5, v2

    aput v5, p5, v4

    .line 576
    const/16 v4, 0x20

    ushr-long/2addr v2, v4

    .line 577
    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 578
    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 579
    add-int/lit8 v6, p6, 0x4

    long-to-int v7, v2

    aput v7, p5, v6

    .line 580
    const/16 v6, 0x20

    ushr-long/2addr v2, v6

    .line 581
    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 582
    mul-long v8, v0, v6

    add-long/2addr v4, v8

    add-int/lit8 v8, p4, 0x5

    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 583
    add-int/lit8 v4, p6, 0x5

    long-to-int v5, v2

    aput v5, p5, v4

    .line 584
    const/16 v4, 0x20

    ushr-long/2addr v2, v4

    .line 585
    add-int/lit8 v4, p2, 0x6

    aget v4, p1, v4

    int-to-long v4, v4

    const-wide v8, 0xffffffffL

    and-long/2addr v4, v8

    .line 586
    mul-long/2addr v0, v4

    add-long/2addr v0, v6

    add-int/lit8 v6, p4, 0x6

    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 587
    add-int/lit8 v2, p6, 0x6

    long-to-int v3, v0

    aput v3, p5, v2

    .line 588
    const/16 v2, 0x20

    ushr-long/2addr v0, v2

    .line 589
    add-long/2addr v0, v4

    .line 590
    return-wide v0
.end method

.method public static mul33DWordAdd(IJ[II)I
    .registers 20

    .prologue
    .line 679
    int-to-long v2, p0

    const-wide v4, 0xffffffffL

    and-long/2addr v2, v4

    .line 680
    const-wide v4, 0xffffffffL

    and-long v4, v4, p1

    .line 681
    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 682
    long-to-int v8, v6

    aput v8, p3, p4

    .line 683
    const/16 v8, 0x20

    ushr-long/2addr v6, v8

    .line 684
    const/16 v8, 0x20

    ushr-long v8, p1, v8

    .line 685
    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 686
    add-int/lit8 v4, p4, 0x1

    long-to-int v5, v2

    aput v5, p3, v4

    .line 687
    const/16 v4, 0x20

    ushr-long/2addr v2, v4

    .line 688
    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 689
    add-int/lit8 v4, p4, 0x2

    long-to-int v5, v2

    aput v5, p3, v4

    .line 690
    const/16 v4, 0x20

    ushr-long/2addr v2, v4

    .line 691
    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 692
    add-int/lit8 v4, p4, 0x3

    long-to-int v5, v2

    aput v5, p3, v4

    .line 693
    const/16 v4, 0x20

    ushr-long/2addr v2, v4

    .line 694
    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, 0x7

    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 702
    int-to-long v0, p0

    and-long/2addr v0, v6

    int-to-long v2, p1

    and-long/2addr v2, v6

    .line 703
    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 704
    long-to-int v4, v0

    aput v4, p2, p3

    .line 705
    ushr-long/2addr v0, v8

    .line 706
    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 707
    add-int/lit8 v2, p3, 0x1

    long-to-int v3, v0

    aput v3, p2, v2

    .line 708
    ushr-long/2addr v0, v8

    .line 709
    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 710
    add-int/lit8 v2, p3, 0x2

    long-to-int v3, v0

    aput v3, p2, v2

    .line 711
    ushr-long/2addr v0, v8

    .line 712
    cmp-long v0, v0, v10

    if-nez v0, :cond_39

    const/4 v0, 0x0

    :goto_38
    return v0

    :cond_39
    const/4 v0, 0x7

    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 36

    .prologue
    .line 515
    aget v2, p2, p3

    int-to-long v2, v2

    const-wide v4, 0xffffffffL

    and-long v6, v2, v4

    .line 516
    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 517
    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 518
    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 519
    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 520
    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 521
    add-int/lit8 v2, p3, 0x6

    aget v2, p2, v2

    int-to-long v2, v2

    const-wide v4, 0xffffffffL

    and-long v18, v2, v4

    .line 523
    const-wide/16 v2, 0x0

    .line 524
    const/4 v4, 0x0

    :goto_55
    const/4 v5, 0x7

    if-ge v4, v5, :cond_16b

    .line 526
    add-int v5, p1, v4

    aget v5, p0, v5

    int-to-long v0, v5

    move-wide/from16 v20, v0

    const-wide v22, 0xffffffffL

    and-long v20, v20, v22

    .line 527
    const-wide/16 v22, 0x0

    mul-long v24, v20, v6

    aget v5, p4, p5

    int-to-long v0, v5

    move-wide/from16 v26, v0

    const-wide v28, 0xffffffffL

    and-long v26, v26, v28

    add-long v24, v24, v26

    add-long v22, v22, v24

    .line 528
    move-wide/from16 v0, v22

    long-to-int v5, v0

    aput v5, p4, p5

    .line 529
    const/16 v5, 0x20

    ushr-long v22, v22, v5

    .line 530
    mul-long v24, v20, v8

    add-int/lit8 v5, p5, 0x1

    aget v5, p4, v5

    int-to-long v0, v5

    move-wide/from16 v26, v0

    const-wide v28, 0xffffffffL

    and-long v26, v26, v28

    add-long v24, v24, v26

    add-long v22, v22, v24

    .line 531
    add-int/lit8 v5, p5, 0x1

    move-wide/from16 v0, v22

    long-to-int v0, v0

    move/from16 v24, v0

    aput v24, p4, v5

    .line 532
    const/16 v5, 0x20

    ushr-long v22, v22, v5

    .line 533
    mul-long v24, v20, v10

    add-int/lit8 v5, p5, 0x2

    aget v5, p4, v5

    int-to-long v0, v5

    move-wide/from16 v26, v0

    const-wide v28, 0xffffffffL

    and-long v26, v26, v28

    add-long v24, v24, v26

    add-long v22, v22, v24

    .line 534
    add-int/lit8 v5, p5, 0x2

    move-wide/from16 v0, v22

    long-to-int v0, v0

    move/from16 v24, v0

    aput v24, p4, v5

    .line 535
    const/16 v5, 0x20

    ushr-long v22, v22, v5

    .line 536
    mul-long v24, v20, v12

    add-int/lit8 v5, p5, 0x3

    aget v5, p4, v5

    int-to-long v0, v5

    move-wide/from16 v26, v0

    const-wide v28, 0xffffffffL

    and-long v26, v26, v28

    add-long v24, v24, v26

    add-long v22, v22, v24

    .line 537
    add-int/lit8 v5, p5, 0x3

    move-wide/from16 v0, v22

    long-to-int v0, v0

    move/from16 v24, v0

    aput v24, p4, v5

    .line 538
    const/16 v5, 0x20

    ushr-long v22, v22, v5

    .line 539
    mul-long v24, v20, v14

    add-int/lit8 v5, p5, 0x4

    aget v5, p4, v5

    int-to-long v0, v5

    move-wide/from16 v26, v0

    const-wide v28, 0xffffffffL

    and-long v26, v26, v28

    add-long v24, v24, v26

    add-long v22, v22, v24

    .line 540
    add-int/lit8 v5, p5, 0x4

    move-wide/from16 v0, v22

    long-to-int v0, v0

    move/from16 v24, v0

    aput v24, p4, v5

    .line 541
    const/16 v5, 0x20

    ushr-long v22, v22, v5

    .line 542
    mul-long v24, v20, v16

    add-int/lit8 v5, p5, 0x5

    aget v5, p4, v5

    int-to-long v0, v5

    move-wide/from16 v26, v0

    const-wide v28, 0xffffffffL

    and-long v26, v26, v28

    add-long v24, v24, v26

    add-long v22, v22, v24

    .line 543
    add-int/lit8 v5, p5, 0x5

    move-wide/from16 v0, v22

    long-to-int v0, v0

    move/from16 v24, v0

    aput v24, p4, v5

    .line 544
    const/16 v5, 0x20

    ushr-long v22, v22, v5

    .line 545
    mul-long v20, v20, v18

    add-int/lit8 v5, p5, 0x6

    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 v20, v20, v24

    add-long v20, v20, v22

    .line 546
    add-int/lit8 v5, p5, 0x6

    move-wide/from16 v0, v20

    long-to-int v0, v0

    move/from16 v22, v0

    aput v22, p4, v5

    .line 547
    const/16 v5, 0x20

    ushr-long v20, v20, v5

    .line 548
    add-int/lit8 v5, p5, 0x7

    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 v2, v2, v22

    add-long v2, v2, v20

    .line 549
    add-int/lit8 v5, p5, 0x7

    long-to-int v0, v2

    move/from16 v20, v0

    aput v20, p4, v5

    .line 550
    const/16 v5, 0x20

    ushr-long/2addr v2, v5

    .line 551
    add-int/lit8 p5, p5, 0x1

    .line 524
    add-int/lit8 v4, v4, 0x1

    goto/16 :goto_55

    .line 553
    :cond_16b
    long-to-int v2, v2

    return v2
.end method

.method public static mulAddTo([I[I[I)I
    .registers 33

    .prologue
    .line 473
    const/4 v2, 0x0

    aget v2, p1, v2

    int-to-long v2, v2

    const-wide v4, 0xffffffffL

    and-long v6, v2, v4

    .line 474
    const/4 v2, 0x1

    aget v2, p1, v2

    int-to-long v2, v2

    const-wide v4, 0xffffffffL

    and-long v8, v2, v4

    .line 475
    const/4 v2, 0x2

    aget v2, p1, v2

    int-to-long v2, v2

    const-wide v4, 0xffffffffL

    and-long v10, v2, v4

    .line 476
    const/4 v2, 0x3

    aget v2, p1, v2

    int-to-long v2, v2

    const-wide v4, 0xffffffffL

    and-long v12, v2, v4

    .line 477
    const/4 v2, 0x4

    aget v2, p1, v2

    int-to-long v2, v2

    const-wide v4, 0xffffffffL

    and-long v14, v2, v4

    .line 478
    const/4 v2, 0x5

    aget v2, p1, v2

    int-to-long v2, v2

    const-wide v4, 0xffffffffL

    and-long v16, v2, v4

    .line 479
    const/4 v2, 0x6

    aget v2, p1, v2

    int-to-long v2, v2

    const-wide v4, 0xffffffffL

    and-long v18, v2, v4

    .line 481
    const-wide/16 v2, 0x0

    .line 482
    const/4 v4, 0x0

    :goto_50
    const/4 v5, 0x7

    if-ge v4, v5, :cond_162

    .line 484
    aget v5, p0, v4

    int-to-long v0, v5

    move-wide/from16 v20, v0

    const-wide v22, 0xffffffffL

    and-long v20, v20, v22

    .line 485
    const-wide/16 v22, 0x0

    mul-long v24, v20, v6

    aget v5, p2, v4

    int-to-long v0, v5

    move-wide/from16 v26, v0

    const-wide v28, 0xffffffffL

    and-long v26, v26, v28

    add-long v24, v24, v26

    add-long v22, v22, v24

    .line 486
    move-wide/from16 v0, v22

    long-to-int v5, v0

    aput v5, p2, v4

    .line 487
    const/16 v5, 0x20

    ushr-long v22, v22, v5

    .line 488
    mul-long v24, v20, v8

    add-int/lit8 v5, v4, 0x1

    aget v5, p2, v5

    int-to-long v0, v5

    move-wide/from16 v26, v0

    const-wide v28, 0xffffffffL

    and-long v26, v26, v28

    add-long v24, v24, v26

    add-long v22, v22, v24

    .line 489
    add-int/lit8 v5, v4, 0x1

    move-wide/from16 v0, v22

    long-to-int v0, v0

    move/from16 v24, v0

    aput v24, p2, v5

    .line 490
    const/16 v5, 0x20

    ushr-long v22, v22, v5

    .line 491
    mul-long v24, v20, v10

    add-int/lit8 v5, v4, 0x2

    aget v5, p2, v5

    int-to-long v0, v5

    move-wide/from16 v26, v0

    const-wide v28, 0xffffffffL

    and-long v26, v26, v28

    add-long v24, v24, v26

    add-long v22, v22, v24

    .line 492
    add-int/lit8 v5, v4, 0x2

    move-wide/from16 v0, v22

    long-to-int v0, v0

    move/from16 v24, v0

    aput v24, p2, v5

    .line 493
    const/16 v5, 0x20

    ushr-long v22, v22, v5

    .line 494
    mul-long v24, v20, v12

    add-int/lit8 v5, v4, 0x3

    aget v5, p2, v5

    int-to-long v0, v5

    move-wide/from16 v26, v0

    const-wide v28, 0xffffffffL

    and-long v26, v26, v28

    add-long v24, v24, v26

    add-long v22, v22, v24

    .line 495
    add-int/lit8 v5, v4, 0x3

    move-wide/from16 v0, v22

    long-to-int v0, v0

    move/from16 v24, v0

    aput v24, p2, v5

    .line 496
    const/16 v5, 0x20

    ushr-long v22, v22, v5

    .line 497
    mul-long v24, v20, v14

    add-int/lit8 v5, v4, 0x4

    aget v5, p2, v5

    int-to-long v0, v5

    move-wide/from16 v26, v0

    const-wide v28, 0xffffffffL

    and-long v26, v26, v28

    add-long v24, v24, v26

    add-long v22, v22, v24

    .line 498
    add-int/lit8 v5, v4, 0x4

    move-wide/from16 v0, v22

    long-to-int v0, v0

    move/from16 v24, v0

    aput v24, p2, v5

    .line 499
    const/16 v5, 0x20

    ushr-long v22, v22, v5

    .line 500
    mul-long v24, v20, v16

    add-int/lit8 v5, v4, 0x5

    aget v5, p2, v5

    int-to-long v0, v5

    move-wide/from16 v26, v0

    const-wide v28, 0xffffffffL

    and-long v26, v26, v28

    add-long v24, v24, v26

    add-long v22, v22, v24

    .line 501
    add-int/lit8 v5, v4, 0x5

    move-wide/from16 v0, v22

    long-to-int v0, v0

    move/from16 v24, v0

    aput v24, p2, v5

    .line 502
    const/16 v5, 0x20

    ushr-long v22, v22, v5

    .line 503
    mul-long v20, v20, v18

    add-int/lit8 v5, v4, 0x6

    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 v20, v20, v24

    add-long v20, v20, v22

    .line 504
    add-int/lit8 v5, v4, 0x6

    move-wide/from16 v0, v20

    long-to-int v0, v0

    move/from16 v22, v0

    aput v22, p2, v5

    .line 505
    const/16 v5, 0x20

    ushr-long v20, v20, v5

    .line 506
    add-int/lit8 v5, v4, 0x7

    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 v2, v2, v22

    add-long v2, v2, v20

    .line 507
    add-int/lit8 v5, v4, 0x7

    long-to-int v0, v2

    move/from16 v20, v0

    aput v20, p2, v5

    .line 508
    const/16 v5, 0x20

    ushr-long/2addr v2, v5

    .line 482
    add-int/lit8 v4, v4, 0x1

    goto/16 :goto_50

    .line 510
    :cond_162
    long-to-int v2, v2

    return v2
.end method

.method public static mulByWord(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 595
    int-to-long v0, p0

    and-long/2addr v0, v6

    .line 596
    const-wide/16 v2, 0x0

    aget v4, p1, v9

    int-to-long v4, v4

    and-long/2addr v4, v6

    mul-long/2addr v4, v0

    add-long/2addr v2, v4

    .line 597
    long-to-int v4, v2

    aput v4, p1, v9

    .line 598
    ushr-long/2addr v2, v8

    .line 599
    aget v4, p1, v10

    int-to-long v4, v4

    and-long/2addr v4, v6

    mul-long/2addr v4, v0

    add-long/2addr v2, v4

    .line 600
    long-to-int v4, v2

    aput v4, p1, v10

    .line 601
    ushr-long/2addr v2, v8

    .line 602
    aget v4, p1, v11

    int-to-long v4, v4

    and-long/2addr v4, v6

    mul-long/2addr v4, v0

    add-long/2addr v2, v4

    .line 603
    long-to-int v4, v2

    aput v4, p1, v11

    .line 604
    ushr-long/2addr v2, v8

    .line 605
    const/4 v4, 0x3

    aget v4, p1, v4

    int-to-long v4, v4

    and-long/2addr v4, v6

    mul-long/2addr v4, v0

    add-long/2addr v2, v4

    .line 606
    const/4 v4, 0x3

    long-to-int v5, v2

    aput v5, p1, v4

    .line 607
    ushr-long/2addr v2, v8

    .line 608
    const/4 v4, 0x4

    aget v4, p1, v4

    int-to-long v4, v4

    and-long/2addr v4, v6

    mul-long/2addr v4, v0

    add-long/2addr v2, v4

    .line 609
    const/4 v4, 0x4

    long-to-int v5, v2

    aput v5, p1, v4

    .line 610
    ushr-long/2addr v2, v8

    .line 611
    const/4 v4, 0x5

    aget v4, p1, v4

    int-to-long v4, v4

    and-long/2addr v4, v6

    mul-long/2addr v4, v0

    add-long/2addr v2, v4

    .line 612
    const/4 v4, 0x5

    long-to-int v5, v2

    aput v5, p1, v4

    .line 613
    ushr-long/2addr v2, v8

    .line 614
    const/4 v4, 0x6

    aget v4, p1, v4

    int-to-long v4, v4

    and-long/2addr v4, v6

    mul-long/2addr v0, v4

    add-long/2addr v0, v2

    .line 615
    const/4 v2, 0x6

    long-to-int v3, v0

    aput v3, p1, v2

    .line 616
    ushr-long/2addr v0, v8

    .line 617
    long-to-int v0, v0

    return v0
.end method

.method public static mulByWordAddTo(I[I[I)I
    .registers 13

    .prologue
    .line 622
    int-to-long v0, p0

    const-wide v2, 0xffffffffL

    and-long/2addr v0, v2

    .line 623
    const-wide/16 v2, 0x0

    const/4 v4, 0x0

    aget v4, p2, v4

    int-to-long v4, v4

    const-wide v6, 0xffffffffL

    and-long/2addr v4, v6

    mul-long/2addr v4, v0

    const/4 v6, 0x0

    aget v6, p1, v6

    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 624
    const/4 v4, 0x0

    long-to-int v5, v2

    aput v5, p2, v4

    .line 625
    const/16 v4, 0x20

    ushr-long/2addr v2, v4

    .line 626
    const/4 v4, 0x1

    aget v4, p2, v4

    int-to-long v4, v4

    const-wide v6, 0xffffffffL

    and-long/2addr v4, v6

    mul-long/2addr v4, v0

    const/4 v6, 0x1

    aget v6, p1, v6

    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 627
    const/4 v4, 0x1

    long-to-int v5, v2

    aput v5, p2, v4

    .line 628
    const/16 v4, 0x20

    ushr-long/2addr v2, v4

    .line 629
    const/4 v4, 0x2

    aget v4, p2, v4

    int-to-long v4, v4

    const-wide v6, 0xffffffffL

    and-long/2addr v4, v6

    mul-long/2addr v4, v0

    const/4 v6, 0x2

    aget v6, p1, v6

    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 630
    const/4 v4, 0x2

    long-to-int v5, v2

    aput v5, p2, v4

    .line 631
    const/16 v4, 0x20

    ushr-long/2addr v2, v4

    .line 632
    const/4 v4, 0x3

    aget v4, p2, v4

    int-to-long v4, v4

    const-wide v6, 0xffffffffL

    and-long/2addr v4, v6

    mul-long/2addr v4, v0

    const/4 v6, 0x3

    aget v6, p1, v6

    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 633
    const/4 v4, 0x3

    long-to-int v5, v2

    aput v5, p2, v4

    .line 634
    const/16 v4, 0x20

    ushr-long/2addr v2, v4

    .line 635
    const/4 v4, 0x4

    aget v4, p2, v4

    int-to-long v4, v4

    const-wide v6, 0xffffffffL

    and-long/2addr v4, v6

    mul-long/2addr v4, v0

    const/4 v6, 0x4

    aget v6, p1, v6

    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 636
    const/4 v4, 0x4

    long-to-int v5, v2

    aput v5, p2, v4

    .line 637
    const/16 v4, 0x20

    ushr-long/2addr v2, v4

    .line 638
    const/4 v4, 0x5

    aget v4, p2, v4

    int-to-long v4, v4

    const-wide v6, 0xffffffffL

    and-long/2addr v4, v6

    mul-long/2addr v4, v0

    const/4 v6, 0x5

    aget v6, p1, v6

    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 639
    const/4 v4, 0x5

    long-to-int v5, v2

    aput v5, p2, v4

    .line 640
    const/16 v4, 0x20

    ushr-long/2addr v2, v4

    .line 641
    const/4 v4, 0x6

    aget v4, p2, v4

    int-to-long v4, v4

    const-wide v6, 0xffffffffL

    and-long/2addr v4, v6

    mul-long/2addr v0, v4

    const/4 v4, 0x6

    aget v4, p1, 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 642
    const/4 v2, 0x6

    long-to-int v3, v0

    aput v3, p2, v2

    .line 643
    const/16 v2, 0x20

    ushr-long/2addr v0, v2

    .line 644
    long-to-int v0, v0

    return v0
.end method

.method public static mulWord(I[I[II)I
    .registers 14

    .prologue
    const-wide v8, 0xffffffffL

    .line 733
    const-wide/16 v0, 0x0

    int-to-long v2, p0

    and-long v4, v2, v8

    .line 734
    const/4 v2, 0x0

    .line 737
    :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 738
    add-int v3, p3, v2

    long-to-int v6, v0

    aput v6, p2, v3

    .line 739
    const/16 v3, 0x20

    ushr-long/2addr v0, v3

    .line 741
    add-int/lit8 v2, v2, 0x1

    const/4 v3, 0x7

    if-lt v2, v3, :cond_b

    .line 742
    long-to-int v0, v0

    return v0
.end method

.method public static mulWordAddTo(I[II[II)I
    .registers 16

    .prologue
    const/16 v10, 0x20

    const-wide v8, 0xffffffffL

    .line 649
    int-to-long v0, p0

    and-long/2addr v0, v8

    .line 650
    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 651
    long-to-int v4, v2

    aput v4, p3, p4

    .line 652
    ushr-long/2addr v2, v10

    .line 653
    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 654
    add-int/lit8 v4, p4, 0x1

    long-to-int v5, v2

    aput v5, p3, v4

    .line 655
    ushr-long/2addr v2, v10

    .line 656
    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 657
    add-int/lit8 v4, p4, 0x2

    long-to-int v5, v2

    aput v5, p3, v4

    .line 658
    ushr-long/2addr v2, v10

    .line 659
    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 660
    add-int/lit8 v4, p4, 0x3

    long-to-int v5, v2

    aput v5, p3, v4

    .line 661
    ushr-long/2addr v2, v10

    .line 662
    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 663
    add-int/lit8 v4, p4, 0x4

    long-to-int v5, v2

    aput v5, p3, v4

    .line 664
    ushr-long/2addr v2, v10

    .line 665
    add-int/lit8 v4, p2, 0x5

    aget v4, p1, v4

    int-to-long v4, v4

    and-long/2addr v4, v8

    mul-long/2addr v4, v0

    add-int/lit8 v6, p4, 0x5

    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 666
    add-int/lit8 v4, p4, 0x5

    long-to-int v5, v2

    aput v5, p3, v4

    .line 667
    ushr-long/2addr v2, v10

    .line 668
    add-int/lit8 v4, p2, 0x6

    aget v4, p1, v4

    int-to-long v4, v4

    and-long/2addr v4, v8

    mul-long/2addr v0, v4

    add-int/lit8 v4, p4, 0x6

    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 669
    add-int/lit8 v2, p4, 0x6

    long-to-int v3, v0

    aput v3, p3, v2

    .line 670
    ushr-long/2addr v0, v10

    .line 671
    long-to-int v0, v0

    return v0
.end method

.method public static mulWordDwordAdd(IJ[II)I
    .registers 16

    .prologue
    .line 718
    int-to-long v0, p0

    const-wide v2, 0xffffffffL

    and-long/2addr v0, v2

    .line 719
    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 720
    long-to-int v4, v2

    aput v4, p3, p4

    .line 721
    const/16 v4, 0x20

    ushr-long/2addr v2, v4

    .line 722
    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 723
    add-int/lit8 v2, p4, 0x1

    long-to-int v3, v0

    aput v3, p3, v2

    .line 724
    const/16 v2, 0x20

    ushr-long/2addr v0, v2

    .line 725
    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 726
    add-int/lit8 v2, p4, 0x2

    long-to-int v3, v0

    aput v3, p3, v2

    .line 727
    const/16 v2, 0x20

    ushr-long/2addr v0, v2

    .line 728
    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, 0x7

    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 38

    .prologue
    .line 886
    aget v2, p0, p1

    int-to-long v2, v2

    const-wide v4, 0xffffffffL

    and-long v6, v2, v4

    .line 889
    const/4 v4, 0x0

    .line 891
    const/4 v3, 0x6

    const/16 v2, 0xe

    move v5, v4

    .line 894
    :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 895
    mul-long/2addr v8, v8

    .line 896
    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 897
    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 898
    long-to-int v3, v8

    .line 900
    if-gtz v4, :cond_2c0

    .line 903
    mul-long v4, v6, v6

    .line 904
    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 905
    long-to-int v8, v4

    aput v8, p2, p3

    .line 906
    const/16 v8, 0x20

    ushr-long/2addr v4, v8

    long-to-int v4, v4

    and-int/lit8 v4, v4, 0x1

    .line 910
    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 911
    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 914
    mul-long v12, v8, v6

    add-long/2addr v2, v12

    .line 915
    long-to-int v5, v2

    .line 916
    add-int/lit8 v12, p3, 0x1

    shl-int/lit8 v13, v5, 0x1

    or-int/2addr v4, v13

    aput v4, p2, v12

    .line 917
    ushr-int/lit8 v4, v5, 0x1f

    .line 918
    const/16 v5, 0x20

    ushr-long/2addr v2, v5

    add-long/2addr v2, v10

    .line 921
    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 922
    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 923
    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 925
    mul-long v16, v10, v6

    add-long v2, v2, v16

    .line 926
    long-to-int v5, v2

    .line 927
    add-int/lit8 v16, p3, 0x2

    shl-int/lit8 v17, v5, 0x1

    or-int v4, v4, v17

    aput v4, p2, v16

    .line 928
    ushr-int/lit8 v4, v5, 0x1f

    .line 929
    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 930
    const/16 v5, 0x20

    ushr-long v12, v2, v5

    add-long/2addr v12, v14

    .line 931
    const-wide v14, 0xffffffffL

    and-long/2addr v2, v14

    .line 934
    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 935
    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 936
    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 938
    mul-long v20, v14, v6

    add-long v2, v2, v20

    .line 939
    long-to-int v5, v2

    .line 940
    add-int/lit8 v20, p3, 0x3

    shl-int/lit8 v21, v5, 0x1

    or-int v4, v4, v21

    aput v4, p2, v20

    .line 941
    ushr-int/lit8 v4, v5, 0x1f

    .line 942
    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 943
    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 944
    const-wide v16, 0xffffffffL

    and-long v2, v2, v16

    .line 945
    const/16 v5, 0x20

    ushr-long v16, v12, v5

    add-long v16, v16, v18

    .line 946
    const-wide v18, 0xffffffffL

    and-long v12, v12, v18

    .line 949
    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 950
    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 951
    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 953
    mul-long v24, v18, v6

    add-long v2, v2, v24

    .line 954
    long-to-int v5, v2

    .line 955
    add-int/lit8 v24, p3, 0x4

    shl-int/lit8 v25, v5, 0x1

    or-int v4, v4, v25

    aput v4, p2, v24

    .line 956
    ushr-int/lit8 v4, v5, 0x1f

    .line 957
    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 958
    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 959
    const-wide v16, 0xffffffffL

    and-long v2, v2, v16

    .line 960
    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 961
    const-wide v20, 0xffffffffL

    and-long v12, v12, v20

    .line 962
    const/16 v5, 0x20

    ushr-long v20, v16, v5

    add-long v20, v20, v22

    .line 963
    const-wide v22, 0xffffffffL

    and-long v16, v16, v22

    .line 966
    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 967
    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 968
    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 970
    mul-long v28, v22, v6

    add-long v2, v2, v28

    .line 971
    long-to-int v5, v2

    .line 972
    add-int/lit8 v28, p3, 0x5

    shl-int/lit8 v29, v5, 0x1

    or-int v4, v4, v29

    aput v4, p2, v28

    .line 973
    ushr-int/lit8 v4, v5, 0x1f

    .line 974
    const/16 v5, 0x20

    ushr-long/2addr v2, v5

    mul-long v28, v22, v8

    add-long v2, v2, v28

    add-long/2addr v2, v12

    .line 975
    const/16 v5, 0x20

    ushr-long v12, v2, v5

    mul-long v28, v22, v10

    add-long v12, v12, v28

    add-long v12, v12, v16

    .line 976
    const-wide v16, 0xffffffffL

    and-long v2, v2, v16

    .line 977
    const/16 v5, 0x20

    ushr-long v16, v12, v5

    mul-long v28, v22, v14

    add-long v16, v16, v28

    add-long v16, v16, v20

    .line 978
    const-wide v20, 0xffffffffL

    and-long v12, v12, v20

    .line 979
    const/16 v5, 0x20

    ushr-long v20, v16, v5

    mul-long v28, v22, v18

    add-long v20, v20, v28

    add-long v20, v20, v24

    .line 980
    const-wide v24, 0xffffffffL

    and-long v16, v16, v24

    .line 981
    const/16 v5, 0x20

    ushr-long v24, v20, v5

    add-long v24, v24, v26

    .line 982
    const-wide v26, 0xffffffffL

    and-long v20, v20, v26

    .line 985
    add-int/lit8 v5, p1, 0x6

    aget v5, p0, v5

    int-to-long v0, v5

    move-wide/from16 v26, v0

    const-wide v28, 0xffffffffL

    and-long v26, v26, v28

    .line 986
    add-int/lit8 v5, p3, 0xb

    aget v5, p2, v5

    int-to-long v0, v5

    move-wide/from16 v28, v0

    const-wide v30, 0xffffffffL

    and-long v28, v28, v30

    .line 987
    add-int/lit8 v5, p3, 0xc

    aget v5, p2, v5

    int-to-long v0, v5

    move-wide/from16 v30, v0

    const-wide v32, 0xffffffffL

    and-long v30, v30, v32

    .line 989
    mul-long v6, v6, v26

    add-long/2addr v2, v6

    .line 990
    long-to-int v5, v2

    .line 991
    add-int/lit8 v6, p3, 0x6

    shl-int/lit8 v7, v5, 0x1

    or-int/2addr v4, v7

    aput v4, p2, v6

    .line 992
    ushr-int/lit8 v4, v5, 0x1f

    .line 993
    const/16 v5, 0x20

    ushr-long/2addr v2, v5

    mul-long v6, v26, v8

    add-long/2addr v2, v6

    add-long/2addr v2, v12

    .line 994
    const/16 v5, 0x20

    ushr-long v6, v2, v5

    mul-long v8, v26, v10

    add-long/2addr v6, v8

    add-long v6, v6, v16

    .line 995
    const/16 v5, 0x20

    ushr-long v8, v6, v5

    mul-long v10, v26, v14

    add-long/2addr v8, v10

    add-long v8, v8, v20

    .line 996
    const/16 v5, 0x20

    ushr-long v10, v8, v5

    mul-long v12, v26, v18

    add-long/2addr v10, v12

    add-long v10, v10, v24

    .line 997
    const/16 v5, 0x20

    ushr-long v12, v10, v5

    mul-long v14, v26, v22

    add-long/2addr v12, v14

    add-long v12, v12, v28

    .line 998
    const/16 v5, 0x20

    ushr-long v14, v12, v5

    add-long v14, v14, v30

    .line 1001
    long-to-int v2, v2

    .line 1002
    add-int/lit8 v3, p3, 0x7

    shl-int/lit8 v5, v2, 0x1

    or-int/2addr v4, v5

    aput v4, p2, v3

    .line 1003
    ushr-int/lit8 v2, v2, 0x1f

    .line 1004
    long-to-int v3, v6

    .line 1005
    add-int/lit8 v4, p3, 0x8

    shl-int/lit8 v5, v3, 0x1

    or-int/2addr v2, v5

    aput v2, p2, v4

    .line 1006
    ushr-int/lit8 v2, v3, 0x1f

    .line 1007
    long-to-int v3, v8

    .line 1008
    add-int/lit8 v4, p3, 0x9

    shl-int/lit8 v5, v3, 0x1

    or-int/2addr v2, v5

    aput v2, p2, v4

    .line 1009
    ushr-int/lit8 v2, v3, 0x1f

    .line 1010
    long-to-int v3, v10

    .line 1011
    add-int/lit8 v4, p3, 0xa

    shl-int/lit8 v5, v3, 0x1

    or-int/2addr v2, v5

    aput v2, p2, v4

    .line 1012
    ushr-int/lit8 v2, v3, 0x1f

    .line 1013
    long-to-int v3, v12

    .line 1014
    add-int/lit8 v4, p3, 0xb

    shl-int/lit8 v5, v3, 0x1

    or-int/2addr v2, v5

    aput v2, p2, v4

    .line 1015
    ushr-int/lit8 v2, v3, 0x1f

    .line 1016
    long-to-int v3, v14

    .line 1017
    add-int/lit8 v4, p3, 0xc

    shl-int/lit8 v5, v3, 0x1

    or-int/2addr v2, v5

    aput v2, p2, v4

    .line 1018
    ushr-int/lit8 v2, v3, 0x1f

    .line 1019
    add-int/lit8 v3, p3, 0xd

    aget v3, p2, v3

    const/16 v4, 0x20

    shr-long v4, v14, v4

    long-to-int v4, v4

    add-int/2addr v3, v4

    .line 1020
    add-int/lit8 v4, p3, 0xd

    shl-int/lit8 v3, v3, 0x1

    or-int/2addr v2, v3

    aput v2, p2, v4

    .line 1021
    return-void

    :cond_2c0
    move v5, v3

    move v3, v4

    goto/16 :goto_f
.end method

.method public static square([I[I)V
    .registers 36

    .prologue
    .line 747
    const/4 v2, 0x0

    aget v2, p0, v2

    int-to-long v2, v2

    const-wide v4, 0xffffffffL

    and-long v6, v2, v4

    .line 750
    const/4 v4, 0x0

    .line 752
    const/4 v3, 0x6

    const/16 v2, 0xe

    move v5, v4

    .line 755
    :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 756
    mul-long/2addr v8, v8

    .line 757
    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 758
    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 759
    long-to-int v3, v8

    .line 761
    if-gtz v4, :cond_2ad

    .line 764
    mul-long v4, v6, v6

    .line 765
    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 766
    const/4 v8, 0x0

    long-to-int v9, v4

    aput v9, p1, v8

    .line 767
    const/16 v8, 0x20

    ushr-long/2addr v4, v8

    long-to-int v4, v4

    and-int/lit8 v4, v4, 0x1

    .line 771
    const/4 v5, 0x1

    aget v5, p0, v5

    int-to-long v8, v5

    const-wide v10, 0xffffffffL

    and-long/2addr v8, v10

    .line 772
    const/4 v5, 0x2

    aget v5, p1, v5

    int-to-long v10, v5

    const-wide v12, 0xffffffffL

    and-long/2addr v10, v12

    .line 775
    mul-long v12, v8, v6

    add-long/2addr v2, v12

    .line 776
    long-to-int v5, v2

    .line 777
    const/4 v12, 0x1

    shl-int/lit8 v13, v5, 0x1

    or-int/2addr v4, v13

    aput v4, p1, v12

    .line 778
    ushr-int/lit8 v4, v5, 0x1f

    .line 779
    const/16 v5, 0x20

    ushr-long/2addr v2, v5

    add-long/2addr v2, v10

    .line 782
    const/4 v5, 0x2

    aget v5, p0, v5

    int-to-long v10, v5

    const-wide v12, 0xffffffffL

    and-long/2addr v10, v12

    .line 783
    const/4 v5, 0x3

    aget v5, p1, v5

    int-to-long v12, v5

    const-wide v14, 0xffffffffL

    and-long/2addr v12, v14

    .line 784
    const/4 v5, 0x4

    aget v5, p1, v5

    int-to-long v14, v5

    const-wide v16, 0xffffffffL

    and-long v14, v14, v16

    .line 786
    mul-long v16, v10, v6

    add-long v2, v2, v16

    .line 787
    long-to-int v5, v2

    .line 788
    const/16 v16, 0x2

    shl-int/lit8 v17, v5, 0x1

    or-int v4, v4, v17

    aput v4, p1, v16

    .line 789
    ushr-int/lit8 v4, v5, 0x1f

    .line 790
    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 791
    const/16 v5, 0x20

    ushr-long v12, v2, v5

    add-long/2addr v12, v14

    .line 792
    const-wide v14, 0xffffffffL

    and-long/2addr v2, v14

    .line 795
    const/4 v5, 0x3

    aget v5, p0, v5

    int-to-long v14, v5

    const-wide v16, 0xffffffffL

    and-long v14, v14, v16

    .line 796
    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 797
    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 799
    mul-long v20, v14, v6

    add-long v2, v2, v20

    .line 800
    long-to-int v5, v2

    .line 801
    const/16 v20, 0x3

    shl-int/lit8 v21, v5, 0x1

    or-int v4, v4, v21

    aput v4, p1, v20

    .line 802
    ushr-int/lit8 v4, v5, 0x1f

    .line 803
    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 804
    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 805
    const-wide v16, 0xffffffffL

    and-long v2, v2, v16

    .line 806
    const/16 v5, 0x20

    ushr-long v16, v12, v5

    add-long v16, v16, v18

    .line 807
    const-wide v18, 0xffffffffL

    and-long v12, v12, v18

    .line 810
    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 811
    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 812
    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 814
    mul-long v24, v18, v6

    add-long v2, v2, v24

    .line 815
    long-to-int v5, v2

    .line 816
    const/16 v24, 0x4

    shl-int/lit8 v25, v5, 0x1

    or-int v4, v4, v25

    aput v4, p1, v24

    .line 817
    ushr-int/lit8 v4, v5, 0x1f

    .line 818
    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 819
    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 820
    const-wide v16, 0xffffffffL

    and-long v2, v2, v16

    .line 821
    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 822
    const-wide v20, 0xffffffffL

    and-long v12, v12, v20

    .line 823
    const/16 v5, 0x20

    ushr-long v20, v16, v5

    add-long v20, v20, v22

    .line 824
    const-wide v22, 0xffffffffL

    and-long v16, v16, v22

    .line 827
    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 828
    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 829
    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 831
    mul-long v28, v22, v6

    add-long v2, v2, v28

    .line 832
    long-to-int v5, v2

    .line 833
    const/16 v28, 0x5

    shl-int/lit8 v29, v5, 0x1

    or-int v4, v4, v29

    aput v4, p1, v28

    .line 834
    ushr-int/lit8 v4, v5, 0x1f

    .line 835
    const/16 v5, 0x20

    ushr-long/2addr v2, v5

    mul-long v28, v22, v8

    add-long v2, v2, v28

    add-long/2addr v2, v12

    .line 836
    const/16 v5, 0x20

    ushr-long v12, v2, v5

    mul-long v28, v22, v10

    add-long v12, v12, v28

    add-long v12, v12, v16

    .line 837
    const-wide v16, 0xffffffffL

    and-long v2, v2, v16

    .line 838
    const/16 v5, 0x20

    ushr-long v16, v12, v5

    mul-long v28, v22, v14

    add-long v16, v16, v28

    add-long v16, v16, v20

    .line 839
    const-wide v20, 0xffffffffL

    and-long v12, v12, v20

    .line 840
    const/16 v5, 0x20

    ushr-long v20, v16, v5

    mul-long v28, v22, v18

    add-long v20, v20, v28

    add-long v20, v20, v24

    .line 841
    const-wide v24, 0xffffffffL

    and-long v16, v16, v24

    .line 842
    const/16 v5, 0x20

    ushr-long v24, v20, v5

    add-long v24, v24, v26

    .line 843
    const-wide v26, 0xffffffffL

    and-long v20, v20, v26

    .line 846
    const/4 v5, 0x6

    aget v5, p0, v5

    int-to-long v0, v5

    move-wide/from16 v26, v0

    const-wide v28, 0xffffffffL

    and-long v26, v26, v28

    .line 847
    const/16 v5, 0xb

    aget v5, p1, v5

    int-to-long v0, v5

    move-wide/from16 v28, v0

    const-wide v30, 0xffffffffL

    and-long v28, v28, v30

    .line 848
    const/16 v5, 0xc

    aget v5, p1, v5

    int-to-long v0, v5

    move-wide/from16 v30, v0

    const-wide v32, 0xffffffffL

    and-long v30, v30, v32

    .line 850
    mul-long v6, v6, v26

    add-long/2addr v2, v6

    .line 851
    long-to-int v5, v2

    .line 852
    const/4 v6, 0x6

    shl-int/lit8 v7, v5, 0x1

    or-int/2addr v4, v7

    aput v4, p1, v6

    .line 853
    ushr-int/lit8 v4, v5, 0x1f

    .line 854
    const/16 v5, 0x20

    ushr-long/2addr v2, v5

    mul-long v6, v26, v8

    add-long/2addr v2, v6

    add-long/2addr v2, v12

    .line 855
    const/16 v5, 0x20

    ushr-long v6, v2, v5

    mul-long v8, v26, v10

    add-long/2addr v6, v8

    add-long v6, v6, v16

    .line 856
    const/16 v5, 0x20

    ushr-long v8, v6, v5

    mul-long v10, v26, v14

    add-long/2addr v8, v10

    add-long v8, v8, v20

    .line 857
    const/16 v5, 0x20

    ushr-long v10, v8, v5

    mul-long v12, v26, v18

    add-long/2addr v10, v12

    add-long v10, v10, v24

    .line 858
    const/16 v5, 0x20

    ushr-long v12, v10, v5

    mul-long v14, v26, v22

    add-long/2addr v12, v14

    add-long v12, v12, v28

    .line 859
    const/16 v5, 0x20

    ushr-long v14, v12, v5

    add-long v14, v14, v30

    .line 862
    long-to-int v2, v2

    .line 863
    const/4 v3, 0x7

    shl-int/lit8 v5, v2, 0x1

    or-int/2addr v4, v5

    aput v4, p1, v3

    .line 864
    ushr-int/lit8 v2, v2, 0x1f

    .line 865
    long-to-int v3, v6

    .line 866
    const/16 v4, 0x8

    shl-int/lit8 v5, v3, 0x1

    or-int/2addr v2, v5

    aput v2, p1, v4

    .line 867
    ushr-int/lit8 v2, v3, 0x1f

    .line 868
    long-to-int v3, v8

    .line 869
    const/16 v4, 0x9

    shl-int/lit8 v5, v3, 0x1

    or-int/2addr v2, v5

    aput v2, p1, v4

    .line 870
    ushr-int/lit8 v2, v3, 0x1f

    .line 871
    long-to-int v3, v10

    .line 872
    const/16 v4, 0xa

    shl-int/lit8 v5, v3, 0x1

    or-int/2addr v2, v5

    aput v2, p1, v4

    .line 873
    ushr-int/lit8 v2, v3, 0x1f

    .line 874
    long-to-int v3, v12

    .line 875
    const/16 v4, 0xb

    shl-int/lit8 v5, v3, 0x1

    or-int/2addr v2, v5

    aput v2, p1, v4

    .line 876
    ushr-int/lit8 v2, v3, 0x1f

    .line 877
    long-to-int v3, v14

    .line 878
    const/16 v4, 0xc

    shl-int/lit8 v5, v3, 0x1

    or-int/2addr v2, v5

    aput v2, p1, v4

    .line 879
    ushr-int/lit8 v2, v3, 0x1f

    .line 880
    const/16 v3, 0xd

    aget v3, p1, v3

    const/16 v4, 0x20

    shr-long v4, v14, v4

    long-to-int v4, v4

    add-int/2addr v3, v4

    .line 881
    const/16 v4, 0xd

    shl-int/lit8 v3, v3, 0x1

    or-int/2addr v2, v3

    aput v2, p1, v4

    .line 882
    return-void

    :cond_2ad
    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 1053
    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 1054
    long-to-int v2, v0

    aput v2, p4, p5

    .line 1055
    shr-long/2addr v0, v8

    .line 1056
    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 1057
    add-int/lit8 v2, p5, 0x1

    long-to-int v3, v0

    aput v3, p4, v2

    .line 1058
    shr-long/2addr v0, v8

    .line 1059
    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 1060
    add-int/lit8 v2, p5, 0x2

    long-to-int v3, v0

    aput v3, p4, v2

    .line 1061
    shr-long/2addr v0, v8

    .line 1062
    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 1063
    add-int/lit8 v2, p5, 0x3

    long-to-int v3, v0

    aput v3, p4, v2

    .line 1064
    shr-long/2addr v0, v8

    .line 1065
    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 1066
    add-int/lit8 v2, p5, 0x4

    long-to-int v3, v0

    aput v3, p4, v2

    .line 1067
    shr-long/2addr v0, v8

    .line 1068
    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 1069
    add-int/lit8 v2, p5, 0x5

    long-to-int v3, v0

    aput v3, p4, v2

    .line 1070
    shr-long/2addr v0, v8

    .line 1071
    add-int/lit8 v2, p1, 0x6

    aget v2, p0, v2

    int-to-long v2, v2

    and-long/2addr v2, v6

    add-int/lit8 v4, p3, 0x6

    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 1072
    add-int/lit8 v2, p5, 0x6

    long-to-int v3, v0

    aput v3, p4, v2

    .line 1073
    shr-long/2addr v0, v8

    .line 1074
    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 1026
    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 1027
    long-to-int v2, v0

    aput v2, p2, v9

    .line 1028
    shr-long/2addr v0, v8

    .line 1029
    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 1030
    long-to-int v2, v0

    aput v2, p2, v10

    .line 1031
    shr-long/2addr v0, v8

    .line 1032
    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 1033
    long-to-int v2, v0

    aput v2, p2, v11

    .line 1034
    shr-long/2addr v0, v8

    .line 1035
    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 1036
    const/4 v2, 0x3

    long-to-int v3, v0

    aput v3, p2, v2

    .line 1037
    shr-long/2addr v0, v8

    .line 1038
    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 1039
    const/4 v2, 0x4

    long-to-int v3, v0

    aput v3, p2, v2

    .line 1040
    shr-long/2addr v0, v8

    .line 1041
    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 1042
    const/4 v2, 0x5

    long-to-int v3, v0

    aput v3, p2, v2

    .line 1043
    shr-long/2addr v0, v8

    .line 1044
    const/4 v2, 0x6

    aget v2, p0, v2

    int-to-long v2, v2

    and-long/2addr v2, v6

    const/4 v4, 0x6

    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 1045
    const/4 v2, 0x6

    long-to-int v3, v0

    aput v3, p2, v2

    .line 1046
    shr-long/2addr v0, v8

    .line 1047
    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 1080
    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 1081
    long-to-int v2, v0

    aput v2, p2, v9

    .line 1082
    shr-long/2addr v0, v8

    .line 1083
    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 1084
    long-to-int v2, v0

    aput v2, p2, v10

    .line 1085
    shr-long/2addr v0, v8

    .line 1086
    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 1087
    long-to-int v2, v0

    aput v2, p2, v11

    .line 1088
    shr-long/2addr v0, v8

    .line 1089
    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 1090
    const/4 v2, 0x3

    long-to-int v3, v0

    aput v3, p2, v2

    .line 1091
    shr-long/2addr v0, v8

    .line 1092
    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 1093
    const/4 v2, 0x4

    long-to-int v3, v0

    aput v3, p2, v2

    .line 1094
    shr-long/2addr v0, v8

    .line 1095
    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 1096
    const/4 v2, 0x5

    long-to-int v3, v0

    aput v3, p2, v2

    .line 1097
    shr-long/2addr v0, v8

    .line 1098
    const/4 v2, 0x6

    aget v2, p2, v2

    int-to-long v2, v2

    and-long/2addr v2, v6

    const/4 v4, 0x6

    aget v4, p0, v4

    int-to-long v4, v4

    and-long/2addr v4, v6

    sub-long/2addr v2, v4

    const/4 v4, 0x6

    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 1099
    const/4 v2, 0x6

    long-to-int v3, v0

    aput v3, p2, v2

    .line 1100
    shr-long/2addr v0, v8

    .line 1101
    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 1134
    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 1135
    long-to-int v2, v0

    aput v2, p2, p3

    .line 1136
    shr-long/2addr v0, v8

    .line 1137
    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 1138
    add-int/lit8 v2, p3, 0x1

    long-to-int v3, v0

    aput v3, p2, v2

    .line 1139
    shr-long/2addr v0, v8

    .line 1140
    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 1141
    add-int/lit8 v2, p3, 0x2

    long-to-int v3, v0

    aput v3, p2, v2

    .line 1142
    shr-long/2addr v0, v8

    .line 1143
    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 1144
    add-int/lit8 v2, p3, 0x3

    long-to-int v3, v0

    aput v3, p2, v2

    .line 1145
    shr-long/2addr v0, v8

    .line 1146
    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 1147
    add-int/lit8 v2, p3, 0x4

    long-to-int v3, v0

    aput v3, p2, v2

    .line 1148
    shr-long/2addr v0, v8

    .line 1149
    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 1150
    add-int/lit8 v2, p3, 0x5

    long-to-int v3, v0

    aput v3, p2, v2

    .line 1151
    shr-long/2addr v0, v8

    .line 1152
    add-int/lit8 v2, p3, 0x6

    aget v2, p2, v2

    int-to-long v2, v2

    and-long/2addr v2, v6

    add-int/lit8 v4, p1, 0x6

    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 1153
    add-int/lit8 v2, p3, 0x6

    long-to-int v3, v0

    aput v3, p2, v2

    .line 1154
    shr-long/2addr v0, v8

    .line 1155
    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 1107
    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 1108
    long-to-int v2, v0

    aput v2, p1, v9

    .line 1109
    shr-long/2addr v0, v8

    .line 1110
    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 1111
    long-to-int v2, v0

    aput v2, p1, v10

    .line 1112
    shr-long/2addr v0, v8

    .line 1113
    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 1114
    long-to-int v2, v0

    aput v2, p1, v11

    .line 1115
    shr-long/2addr v0, v8

    .line 1116
    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 1117
    const/4 v2, 0x3

    long-to-int v3, v0

    aput v3, p1, v2

    .line 1118
    shr-long/2addr v0, v8

    .line 1119
    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 1120
    const/4 v2, 0x4

    long-to-int v3, v0

    aput v3, p1, v2

    .line 1121
    shr-long/2addr v0, v8

    .line 1122
    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 1123
    const/4 v2, 0x5

    long-to-int v3, v0

    aput v3, p1, v2

    .line 1124
    shr-long/2addr v0, v8

    .line 1125
    const/4 v2, 0x6

    aget v2, p1, v2

    int-to-long v2, v2

    and-long/2addr v2, v6

    const/4 v4, 0x6

    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 1126
    const/4 v2, 0x6

    long-to-int v3, v0

    aput v3, p1, v2

    .line 1127
    shr-long/2addr v0, v8

    .line 1128
    long-to-int v0, v0

    return v0
.end method

.method public static toBigInteger([I)Ljava/math/BigInteger;
    .registers 5

    .prologue
    .line 1160
    const/16 v0, 0x1c

    new-array v1, v0, [B

    .line 1161
    const/4 v0, 0x0

    :goto_5
    const/4 v2, 0x7

    if-ge v0, v2, :cond_16

    .line 1163
    aget v2, p0, v0

    .line 1164
    if-eqz v2, :cond_13

    .line 1166
    rsub-int/lit8 v3, v0, 0x6

    shl-int/lit8 v3, v3, 0x2

    invoke-static {v2, v1, v3}, Lorg/spongycastle/util/Pack;->intToBigEndian(I[BI)V

    .line 1161
    :cond_13
    add-int/lit8 v0, v0, 0x1

    goto :goto_5

    .line 1169
    :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 1174
    aput v1, p0, v1

    .line 1175
    const/4 v0, 0x1

    aput v1, p0, v0

    .line 1176
    const/4 v0, 0x2

    aput v1, p0, v0

    .line 1177
    const/4 v0, 0x3

    aput v1, p0, v0

    .line 1178
    const/4 v0, 0x4

    aput v1, p0, v0

    .line 1179
    const/4 v0, 0x5

    aput v1, p0, v0

    .line 1180
    const/4 v0, 0x6

    aput v1, p0, v0

    .line 1181
    return-void
.end method