GF2nONBElement.smali
.class public Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;
.super Lorg/spongycastle/pqc/math/linearalgebra/GF2nElement;
.source "GF2nONBElement.java"
# static fields
.field private static final MAXLONG:I = 0x40
.field private static final mBitmask:[J
.field private static final mIBY64:[I
.field private static final mMaxmask:[J
# instance fields
.field private mBit:I
.field private mLength:I
.field private mPol:[J
# direct methods
.method static constructor <clinit>()V
.registers 2
.prologue
const/16 v1, 0x40
.line 23
new-array v0, v1, [J
fill-array-data v0, :array_1a
sput-object v0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mBitmask:[J
.line 46
new-array v0, v1, [J
fill-array-data v0, :array_11e
sput-object v0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mMaxmask:[J
.line 73
const/16 v0, 0x180
new-array v0, v0, [I
fill-array-data v0, :array_222
sput-object v0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mIBY64:[I
return-void
.line 23
:array_1a
.array-data 8
0x1
0x2
0x4
0x8
0x10
0x20
0x40
0x80
0x100
0x200
0x400
0x800
0x1000
0x2000
0x4000
0x8000
0x10000
0x20000
0x40000
0x80000
0x100000
0x200000
0x400000
0x800000
0x1000000
0x2000000
0x4000000
0x8000000
0x10000000
0x20000000
0x40000000
0x80000000L
0x100000000L
0x200000000L
0x400000000L
0x800000000L
0x1000000000L
0x2000000000L
0x4000000000L
0x8000000000L
0x10000000000L
0x20000000000L
0x40000000000L
0x80000000000L
0x100000000000L
0x200000000000L
0x400000000000L
0x800000000000L
0x1000000000000L
0x2000000000000L
0x4000000000000L
0x8000000000000L
0x10000000000000L
0x20000000000000L
0x40000000000000L
0x80000000000000L
0x100000000000000L
0x200000000000000L
0x400000000000000L
0x800000000000000L
0x1000000000000000L
0x2000000000000000L
0x4000000000000000L # 2.0
-0x8000000000000000L
.end array-data
.line 46
:array_11e
.array-data 8
0x1
0x3
0x7
0xf
0x1f
0x3f
0x7f
0xff
0x1ff
0x3ff
0x7ff
0xfff
0x1fff
0x3fff
0x7fff
0xffff
0x1ffff
0x3ffff
0x7ffff
0xfffff
0x1fffff
0x3fffff
0x7fffff
0xffffff
0x1ffffff
0x3ffffff
0x7ffffff
0xfffffff
0x1fffffff
0x3fffffff
0x7fffffff
0xffffffffL
0x1ffffffffL
0x3ffffffffL
0x7ffffffffL
0xfffffffffL
0x1fffffffffL
0x3fffffffffL
0x7fffffffffL
0xffffffffffL
0x1ffffffffffL
0x3ffffffffffL
0x7ffffffffffL
0xfffffffffffL
0x1fffffffffffL
0x3fffffffffffL
0x7fffffffffffL
0xffffffffffffL
0x1ffffffffffffL
0x3ffffffffffffL # 5.562684646268E-309
0x7ffffffffffffL
0xfffffffffffffL
0x1fffffffffffffL
0x3fffffffffffffL
0x7fffffffffffffL
0xffffffffffffffL
0x1ffffffffffffffL # 4.77830972673648E-299
0x3ffffffffffffffL
0x7ffffffffffffffL
0xfffffffffffffffL
0x1fffffffffffffffL
0x3fffffffffffffffL # 1.9999999999999998
0x7fffffffffffffffL
-0x1
.end array-data
.line 73
:array_222
.array-data 4
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x1
0x1
0x1
0x1
0x1
0x1
0x1
0x1
0x1
0x1
0x1
0x1
0x1
0x1
0x1
0x1
0x1
0x1
0x1
0x1
0x1
0x1
0x1
0x1
0x1
0x1
0x1
0x1
0x1
0x1
0x1
0x1
0x1
0x1
0x1
0x1
0x1
0x1
0x1
0x1
0x1
0x1
0x1
0x1
0x1
0x1
0x1
0x1
0x1
0x1
0x1
0x1
0x1
0x1
0x1
0x1
0x1
0x1
0x1
0x1
0x1
0x1
0x1
0x1
0x2
0x2
0x2
0x2
0x2
0x2
0x2
0x2
0x2
0x2
0x2
0x2
0x2
0x2
0x2
0x2
0x2
0x2
0x2
0x2
0x2
0x2
0x2
0x2
0x2
0x2
0x2
0x2
0x2
0x2
0x2
0x2
0x2
0x2
0x2
0x2
0x2
0x2
0x2
0x2
0x2
0x2
0x2
0x2
0x2
0x2
0x2
0x2
0x2
0x2
0x2
0x2
0x2
0x2
0x2
0x2
0x2
0x2
0x2
0x2
0x2
0x2
0x2
0x2
0x3
0x3
0x3
0x3
0x3
0x3
0x3
0x3
0x3
0x3
0x3
0x3
0x3
0x3
0x3
0x3
0x3
0x3
0x3
0x3
0x3
0x3
0x3
0x3
0x3
0x3
0x3
0x3
0x3
0x3
0x3
0x3
0x3
0x3
0x3
0x3
0x3
0x3
0x3
0x3
0x3
0x3
0x3
0x3
0x3
0x3
0x3
0x3
0x3
0x3
0x3
0x3
0x3
0x3
0x3
0x3
0x3
0x3
0x3
0x3
0x3
0x3
0x3
0x3
0x4
0x4
0x4
0x4
0x4
0x4
0x4
0x4
0x4
0x4
0x4
0x4
0x4
0x4
0x4
0x4
0x4
0x4
0x4
0x4
0x4
0x4
0x4
0x4
0x4
0x4
0x4
0x4
0x4
0x4
0x4
0x4
0x4
0x4
0x4
0x4
0x4
0x4
0x4
0x4
0x4
0x4
0x4
0x4
0x4
0x4
0x4
0x4
0x4
0x4
0x4
0x4
0x4
0x4
0x4
0x4
0x4
0x4
0x4
0x4
0x4
0x4
0x4
0x4
0x5
0x5
0x5
0x5
0x5
0x5
0x5
0x5
0x5
0x5
0x5
0x5
0x5
0x5
0x5
0x5
0x5
0x5
0x5
0x5
0x5
0x5
0x5
0x5
0x5
0x5
0x5
0x5
0x5
0x5
0x5
0x5
0x5
0x5
0x5
0x5
0x5
0x5
0x5
0x5
0x5
0x5
0x5
0x5
0x5
0x5
0x5
0x5
0x5
0x5
0x5
0x5
0x5
0x5
0x5
0x5
0x5
0x5
0x5
0x5
0x5
0x5
0x5
0x5
.end array-data
.end method
.method public constructor <init>(Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;)V
.registers 3
.prologue
.line 211
invoke-direct {p0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2nElement;-><init>()V
.line 213
iget-object v0, p1, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mField:Lorg/spongycastle/pqc/math/linearalgebra/GF2nField;
iput-object v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mField:Lorg/spongycastle/pqc/math/linearalgebra/GF2nField;
.line 214
iget-object v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mField:Lorg/spongycastle/pqc/math/linearalgebra/GF2nField;
invoke-virtual {v0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2nField;->getDegree()I
move-result v0
iput v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mDegree:I
.line 215
iget-object v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mField:Lorg/spongycastle/pqc/math/linearalgebra/GF2nField;
check-cast v0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBField;
invoke-virtual {v0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBField;->getONBLength()I
move-result v0
iput v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mLength:I
.line 216
iget-object v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mField:Lorg/spongycastle/pqc/math/linearalgebra/GF2nField;
check-cast v0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBField;
invoke-virtual {v0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBField;->getONBBit()I
move-result v0
iput v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mBit:I
.line 217
iget v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mLength:I
new-array v0, v0, [J
iput-object v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mPol:[J
.line 218
invoke-direct {p1}, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->getElement()[J
move-result-object v0
invoke-direct {p0, v0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->assign([J)V
.line 219
return-void
.end method
.method public constructor <init>(Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBField;Ljava/math/BigInteger;)V
.registers 4
.prologue
.line 176
invoke-direct {p0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2nElement;-><init>()V
.line 177
iput-object p1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mField:Lorg/spongycastle/pqc/math/linearalgebra/GF2nField;
.line 178
iget-object v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mField:Lorg/spongycastle/pqc/math/linearalgebra/GF2nField;
invoke-virtual {v0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2nField;->getDegree()I
move-result v0
iput v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mDegree:I
.line 179
invoke-virtual {p1}, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBField;->getONBLength()I
move-result v0
iput v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mLength:I
.line 180
invoke-virtual {p1}, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBField;->getONBBit()I
move-result v0
iput v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mBit:I
.line 181
iget v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mLength:I
new-array v0, v0, [J
iput-object v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mPol:[J
.line 182
invoke-direct {p0, p2}, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->assign(Ljava/math/BigInteger;)V
.line 183
return-void
.end method
.method public constructor <init>(Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBField;Ljava/security/SecureRandom;)V
.registers 8
.prologue
const/4 v0, 0x0
.line 130
invoke-direct {p0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2nElement;-><init>()V
.line 131
iput-object p1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mField:Lorg/spongycastle/pqc/math/linearalgebra/GF2nField;
.line 132
iget-object v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mField:Lorg/spongycastle/pqc/math/linearalgebra/GF2nField;
invoke-virtual {v1}, Lorg/spongycastle/pqc/math/linearalgebra/GF2nField;->getDegree()I
move-result v1
iput v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mDegree:I
.line 133
invoke-virtual {p1}, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBField;->getONBLength()I
move-result v1
iput v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mLength:I
.line 134
invoke-virtual {p1}, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBField;->getONBBit()I
move-result v1
iput v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mBit:I
.line 135
iget v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mLength:I
new-array v1, v1, [J
iput-object v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mPol:[J
.line 136
iget v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mLength:I
const/4 v2, 0x1
if-le v1, v2, :cond_48
.line 138
:goto_25
iget v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mLength:I
add-int/lit8 v1, v1, -0x1
if-ge v0, v1, :cond_36
.line 140
iget-object v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mPol:[J
invoke-virtual {p2}, Ljava/security/SecureRandom;->nextLong()J
move-result-wide v2
aput-wide v2, v1, v0
.line 138
add-int/lit8 v0, v0, 0x1
goto :goto_25
.line 142
:cond_36
invoke-virtual {p2}, Ljava/security/SecureRandom;->nextLong()J
move-result-wide v0
.line 143
iget-object v2, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mPol:[J
iget v3, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mLength:I
add-int/lit8 v3, v3, -0x1
iget v4, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mBit:I
rsub-int/lit8 v4, v4, 0x40
ushr-long/2addr v0, v4
aput-wide v0, v2, v3
.line 150
:goto_47
return-void
.line 147
:cond_48
iget-object v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mPol:[J
invoke-virtual {p2}, Ljava/security/SecureRandom;->nextLong()J
move-result-wide v2
aput-wide v2, v1, v0
.line 148
iget-object v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mPol:[J
iget-object v2, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mPol:[J
aget-wide v2, v2, v0
iget v4, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mBit:I
rsub-int/lit8 v4, v4, 0x40
ushr-long/2addr v2, v4
aput-wide v2, v1, v0
goto :goto_47
.end method
.method public constructor <init>(Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBField;[B)V
.registers 4
.prologue
.line 159
invoke-direct {p0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2nElement;-><init>()V
.line 160
iput-object p1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mField:Lorg/spongycastle/pqc/math/linearalgebra/GF2nField;
.line 161
iget-object v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mField:Lorg/spongycastle/pqc/math/linearalgebra/GF2nField;
invoke-virtual {v0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2nField;->getDegree()I
move-result v0
iput v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mDegree:I
.line 162
invoke-virtual {p1}, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBField;->getONBLength()I
move-result v0
iput v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mLength:I
.line 163
invoke-virtual {p1}, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBField;->getONBBit()I
move-result v0
iput v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mBit:I
.line 164
iget v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mLength:I
new-array v0, v0, [J
iput-object v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mPol:[J
.line 165
invoke-direct {p0, p2}, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->assign([B)V
.line 166
return-void
.end method
.method private constructor <init>(Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBField;[J)V
.registers 4
.prologue
.line 193
invoke-direct {p0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2nElement;-><init>()V
.line 194
iput-object p1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mField:Lorg/spongycastle/pqc/math/linearalgebra/GF2nField;
.line 195
iget-object v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mField:Lorg/spongycastle/pqc/math/linearalgebra/GF2nField;
invoke-virtual {v0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2nField;->getDegree()I
move-result v0
iput v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mDegree:I
.line 196
invoke-virtual {p1}, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBField;->getONBLength()I
move-result v0
iput v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mLength:I
.line 197
invoke-virtual {p1}, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBField;->getONBBit()I
move-result v0
iput v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mBit:I
.line 198
iput-object p2, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mPol:[J
.line 199
return-void
.end method
.method public static ONE(Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBField;)Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;
.registers 7
.prologue
.line 251
invoke-virtual {p0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBField;->getONBLength()I
move-result v1
.line 252
new-array v2, v1, [J
.line 255
const/4 v0, 0x0
:goto_7
add-int/lit8 v3, v1, -0x1
if-ge v0, v3, :cond_12
.line 257
const-wide/16 v4, -0x1
aput-wide v4, v2, v0
.line 255
add-int/lit8 v0, v0, 0x1
goto :goto_7
.line 259
:cond_12
add-int/lit8 v0, v1, -0x1
sget-object v1, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mMaxmask:[J
invoke-virtual {p0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBField;->getONBBit()I
move-result v3
add-int/lit8 v3, v3, -0x1
aget-wide v4, v1, v3
aput-wide v4, v2, v0
.line 261
new-instance v0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;
invoke-direct {v0, p0, v2}, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;-><init>(Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBField;[J)V
return-object v0
.end method
.method public static ZERO(Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBField;)Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;
.registers 3
.prologue
.line 239
invoke-virtual {p0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBField;->getONBLength()I
move-result v0
new-array v0, v0, [J
.line 240
new-instance v1, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;
invoke-direct {v1, p0, v0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;-><init>(Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBField;[J)V
return-object v1
.end method
.method private assign(Ljava/math/BigInteger;)V
.registers 3
.prologue
.line 296
invoke-virtual {p1}, Ljava/math/BigInteger;->toByteArray()[B
move-result-object v0
invoke-direct {p0, v0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->assign([B)V
.line 297
return-void
.end method
.method private assign([B)V
.registers 12
.prologue
.line 320
iget v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mLength:I
new-array v0, v0, [J
iput-object v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mPol:[J
.line 321
const/4 v0, 0x0
:goto_7
array-length v1, p1
if-ge v0, v1, :cond_25
.line 323
iget-object v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mPol:[J
ushr-int/lit8 v2, v0, 0x3
aget-wide v4, v1, v2
array-length v3, p1
add-int/lit8 v3, v3, -0x1
sub-int/2addr v3, v0
aget-byte v3, p1, v3
int-to-long v6, v3
const-wide/16 v8, 0xff
and-long/2addr v6, v8
and-int/lit8 v3, v0, 0x7
shl-int/lit8 v3, v3, 0x3
shl-long/2addr v6, v3
or-long/2addr v4, v6
aput-wide v4, v1, v2
.line 321
add-int/lit8 v0, v0, 0x1
goto :goto_7
.line 325
:cond_25
return-void
.end method
.method private assign([J)V
.registers 5
.prologue
const/4 v2, 0x0
.line 306
iget-object v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mPol:[J
iget v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mLength:I
invoke-static {p1, v2, v0, v2, v1}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 307
return-void
.end method
.method private getElement()[J
.registers 5
.prologue
const/4 v3, 0x0
.line 450
iget-object v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mPol:[J
array-length v0, v0
new-array v0, v0, [J
.line 451
iget-object v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mPol:[J
iget-object v2, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mPol:[J
array-length v2, v2
invoke-static {v1, v3, v0, v3, v2}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 453
return-object v0
.end method
.method private getElementReverseOrder()[J
.registers 9
.prologue
.line 464
iget-object v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mPol:[J
array-length v0, v0
new-array v1, v0, [J
.line 465
const/4 v0, 0x0
:goto_6
iget v2, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mDegree:I
if-ge v0, v2, :cond_25
.line 467
iget v2, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mDegree:I
sub-int/2addr v2, v0
add-int/lit8 v2, v2, -0x1
invoke-virtual {p0, v2}, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->testBit(I)Z
move-result v2
if-eqz v2, :cond_22
.line 469
ushr-int/lit8 v2, v0, 0x6
aget-wide v4, v1, v2
sget-object v3, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mBitmask:[J
and-int/lit8 v6, v0, 0x3f
aget-wide v6, v3, v6
or-long/2addr v4, v6
aput-wide v4, v1, v2
.line 465
:cond_22
add-int/lit8 v0, v0, 0x1
goto :goto_6
.line 472
:cond_25
return-object v1
.end method
# virtual methods
.method public add(Lorg/spongycastle/pqc/math/linearalgebra/GFElement;)Lorg/spongycastle/pqc/math/linearalgebra/GFElement;
.registers 3
.prologue
.line 497
new-instance v0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;
invoke-direct {v0, p0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;-><init>(Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;)V
.line 498
invoke-virtual {v0, p1}, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->addToThis(Lorg/spongycastle/pqc/math/linearalgebra/GFElement;)V
.line 499
return-object v0
.end method
.method public addToThis(Lorg/spongycastle/pqc/math/linearalgebra/GFElement;)V
.registers 10
.prologue
.line 510
instance-of v0, p1, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;
if-nez v0, :cond_a
.line 512
new-instance v0, Ljava/lang/RuntimeException;
invoke-direct {v0}, Ljava/lang/RuntimeException;-><init>()V
throw v0
.line 514
:cond_a
iget-object v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mField:Lorg/spongycastle/pqc/math/linearalgebra/GF2nField;
move-object v0, p1
check-cast v0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;
iget-object v0, v0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mField:Lorg/spongycastle/pqc/math/linearalgebra/GF2nField;
invoke-virtual {v1, v0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2nField;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_1d
.line 516
new-instance v0, Ljava/lang/RuntimeException;
invoke-direct {v0}, Ljava/lang/RuntimeException;-><init>()V
throw v0
.line 519
:cond_1d
const/4 v0, 0x0
move v1, v0
:goto_1f
iget v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mLength:I
if-ge v1, v0, :cond_35
.line 521
iget-object v2, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mPol:[J
aget-wide v4, v2, v1
move-object v0, p1
check-cast v0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;
iget-object v0, v0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mPol:[J
aget-wide v6, v0, v1
xor-long/2addr v4, v6
aput-wide v4, v2, v1
.line 519
add-int/lit8 v0, v1, 0x1
move v1, v0
goto :goto_1f
.line 523
:cond_35
return-void
.end method
.method assignOne()V
.registers 5
.prologue
.line 282
const/4 v0, 0x0
:goto_1
iget v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mLength:I
add-int/lit8 v1, v1, -0x1
if-ge v0, v1, :cond_10
.line 284
iget-object v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mPol:[J
const-wide/16 v2, -0x1
aput-wide v2, v1, v0
.line 282
add-int/lit8 v0, v0, 0x1
goto :goto_1
.line 286
:cond_10
iget-object v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mPol:[J
iget v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mLength:I
add-int/lit8 v1, v1, -0x1
sget-object v2, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mMaxmask:[J
iget v3, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mBit:I
add-int/lit8 v3, v3, -0x1
aget-wide v2, v2, v3
aput-wide v2, v0, v1
.line 287
return-void
.end method
.method assignZero()V
.registers 2
.prologue
.line 273
iget v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mLength:I
new-array v0, v0, [J
iput-object v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mPol:[J
.line 274
return-void
.end method
.method public clone()Ljava/lang/Object;
.registers 2
.prologue
.line 228
new-instance v0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;
invoke-direct {v0, p0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;-><init>(Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;)V
return-object v0
.end method
.method public equals(Ljava/lang/Object;)Z
.registers 8
.prologue
const/4 v1, 0x0
.line 383
if-eqz p1, :cond_7
instance-of v0, p1, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;
if-nez v0, :cond_8
.line 398
:cond_7
:goto_7
return v1
.line 388
:cond_8
check-cast p1, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;
move v0, v1
.line 390
:goto_b
iget v2, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mLength:I
if-ge v0, v2, :cond_1e
.line 392
iget-object v2, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mPol:[J
aget-wide v2, v2, v0
iget-object v4, p1, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mPol:[J
aget-wide v4, v4, v0
cmp-long v2, v2, v4
if-nez v2, :cond_7
.line 390
add-int/lit8 v0, v0, 0x1
goto :goto_b
.line 398
:cond_1e
const/4 v1, 0x1
goto :goto_7
.end method
.method public hashCode()I
.registers 2
.prologue
.line 406
iget-object v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mPol:[J
invoke-virtual {v0}, Ljava/lang/Object;->hashCode()I
move-result v0
return v0
.end method
.method public increase()Lorg/spongycastle/pqc/math/linearalgebra/GF2nElement;
.registers 2
.prologue
.line 532
new-instance v0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;
invoke-direct {v0, p0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;-><init>(Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;)V
.line 533
invoke-virtual {v0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->increaseThis()V
.line 534
return-object v0
.end method
.method public increaseThis()V
.registers 2
.prologue
.line 542
iget-object v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mField:Lorg/spongycastle/pqc/math/linearalgebra/GF2nField;
check-cast v0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBField;
invoke-static {v0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->ONE(Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBField;)Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;
move-result-object v0
invoke-virtual {p0, v0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->addToThis(Lorg/spongycastle/pqc/math/linearalgebra/GFElement;)V
.line 543
return-void
.end method
.method public invert()Lorg/spongycastle/pqc/math/linearalgebra/GFElement;
.registers 2
.prologue
.line 815
new-instance v0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;
invoke-direct {v0, p0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;-><init>(Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;)V
.line 816
invoke-virtual {v0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->invertThis()V
.line 817
return-object v0
.end method
.method public invertThis()V
.registers 13
.prologue
const-wide/16 v10, 0x0
const/4 v1, 0x1
.line 829
invoke-virtual {p0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->isZero()Z
move-result v0
if-eqz v0, :cond_f
.line 831
new-instance v0, Ljava/lang/ArithmeticException;
invoke-direct {v0}, Ljava/lang/ArithmeticException;-><init>()V
throw v0
.line 833
:cond_f
const/16 v2, 0x1f
.line 836
const/4 v0, 0x0
:goto_12
if-nez v0, :cond_28
if-ltz v2, :cond_28
.line 839
iget v3, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mDegree:I
add-int/lit8 v3, v3, -0x1
int-to-long v4, v3
sget-object v3, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mBitmask:[J
aget-wide v6, v3, v2
and-long/2addr v4, v6
cmp-long v3, v4, v10
if-eqz v3, :cond_25
move v0, v1
.line 836
:cond_25
add-int/lit8 v2, v2, -0x1
goto :goto_12
.line 844
:cond_28
add-int/lit8 v2, v2, 0x1
.line 846
iget-object v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mField:Lorg/spongycastle/pqc/math/linearalgebra/GF2nField;
check-cast v0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBField;
invoke-static {v0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->ZERO(Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBField;)Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;
.line 847
new-instance v5, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;
invoke-direct {v5, p0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;-><init>(Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;)V
.line 851
add-int/lit8 v0, v2, -0x1
move v2, v1
move v3, v0
:goto_3a
if-ltz v3, :cond_6b
.line 853
invoke-virtual {v5}, Lorg/spongycastle/pqc/math/linearalgebra/GF2nElement;->clone()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nElement;
move v4, v1
.line 854
:goto_43
if-gt v4, v2, :cond_4b
.line 856
invoke-virtual {v0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2nElement;->squareThis()V
.line 854
add-int/lit8 v4, v4, 0x1
goto :goto_43
.line 859
:cond_4b
invoke-virtual {v5, v0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2nElement;->multiplyThisBy(Lorg/spongycastle/pqc/math/linearalgebra/GFElement;)V
.line 861
shl-int/lit8 v0, v2, 0x1
.line 862
iget v2, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mDegree:I
add-int/lit8 v2, v2, -0x1
int-to-long v6, v2
sget-object v2, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mBitmask:[J
aget-wide v8, v2, v3
and-long/2addr v6, v8
cmp-long v2, v6, v10
if-eqz v2, :cond_66
.line 864
invoke-virtual {v5}, Lorg/spongycastle/pqc/math/linearalgebra/GF2nElement;->squareThis()V
.line 866
invoke-virtual {v5, p0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2nElement;->multiplyThisBy(Lorg/spongycastle/pqc/math/linearalgebra/GFElement;)V
.line 868
add-int/lit8 v0, v0, 0x1
.line 851
:cond_66
add-int/lit8 v2, v3, -0x1
move v3, v2
move v2, v0
goto :goto_3a
.line 871
:cond_6b
invoke-virtual {v5}, Lorg/spongycastle/pqc/math/linearalgebra/GF2nElement;->squareThis()V
.line 872
return-void
.end method
.method public isOne()Z
.registers 9
.prologue
const/4 v3, 0x1
const/4 v1, 0x0
.line 357
move v0, v1
move v2, v3
.line 359
:goto_4
iget v4, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mLength:I
add-int/lit8 v4, v4, -0x1
if-ge v0, v4, :cond_1e
if-eqz v2, :cond_1e
.line 361
if-eqz v2, :cond_1c
iget-object v2, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mPol:[J
aget-wide v4, v2, v0
const-wide/16 v6, -0x1
cmp-long v2, v4, v6
if-nez v2, :cond_1c
move v2, v3
.line 359
:goto_19
add-int/lit8 v0, v0, 0x1
goto :goto_4
:cond_1c
move v2, v1
.line 361
goto :goto_19
.line 365
:cond_1e
if-eqz v2, :cond_42
.line 367
if-eqz v2, :cond_40
iget-object v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mPol:[J
iget v2, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mLength:I
add-int/lit8 v2, v2, -0x1
aget-wide v4, v0, v2
sget-object v0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mMaxmask:[J
iget v2, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mBit:I
add-int/lit8 v2, v2, -0x1
aget-wide v6, v0, v2
and-long/2addr v4, v6
sget-object v0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mMaxmask:[J
iget v2, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mBit:I
add-int/lit8 v2, v2, -0x1
aget-wide v6, v0, v2
cmp-long v0, v4, v6
if-nez v0, :cond_40
.line 371
:goto_3f
return v3
:cond_40
move v3, v1
.line 367
goto :goto_3f
:cond_42
move v3, v2
goto :goto_3f
.end method
.method public isZero()Z
.registers 9
.prologue
const/4 v3, 0x1
const/4 v1, 0x0
.line 339
move v0, v1
move v2, v3
.line 341
:goto_4
iget v4, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mLength:I
if-ge v0, v4, :cond_1c
if-eqz v2, :cond_1c
.line 343
if-eqz v2, :cond_1a
iget-object v2, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mPol:[J
aget-wide v4, v2, v0
const-wide/16 v6, 0x0
cmp-long v2, v4, v6
if-nez v2, :cond_1a
move v2, v3
.line 341
:goto_17
add-int/lit8 v0, v0, 0x1
goto :goto_4
:cond_1a
move v2, v1
.line 343
goto :goto_17
.line 346
:cond_1c
return v2
.end method
.method public multiply(Lorg/spongycastle/pqc/math/linearalgebra/GFElement;)Lorg/spongycastle/pqc/math/linearalgebra/GFElement;
.registers 3
.prologue
.line 554
new-instance v0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;
invoke-direct {v0, p0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;-><init>(Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;)V
.line 555
invoke-virtual {v0, p1}, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->multiplyThisBy(Lorg/spongycastle/pqc/math/linearalgebra/GFElement;)V
.line 556
return-object v0
.end method
.method public multiplyThisBy(Lorg/spongycastle/pqc/math/linearalgebra/GFElement;)V
.registers 24
.prologue
.line 568
move-object/from16 v0, p1
instance-of v2, v0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;
if-nez v2, :cond_e
.line 570
new-instance v2, Ljava/lang/RuntimeException;
const-string v3, "The elements have different representation: not yet implemented"
invoke-direct {v2, v3}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
throw v2
.line 573
:cond_e
move-object/from16 v0, p0
iget-object v3, v0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mField:Lorg/spongycastle/pqc/math/linearalgebra/GF2nField;
move-object/from16 v2, p1
check-cast v2, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;
iget-object v2, v2, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mField:Lorg/spongycastle/pqc/math/linearalgebra/GF2nField;
invoke-virtual {v3, v2}, Lorg/spongycastle/pqc/math/linearalgebra/GF2nField;->equals(Ljava/lang/Object;)Z
move-result v2
if-nez v2, :cond_24
.line 575
new-instance v2, Ljava/lang/RuntimeException;
invoke-direct {v2}, Ljava/lang/RuntimeException;-><init>()V
throw v2
.line 578
:cond_24
invoke-virtual/range {p0 .. p1}, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->equals(Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_2e
.line 580
invoke-virtual/range {p0 .. p0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->squareThis()V
.line 741
:goto_2d
return-void
.line 585
:cond_2e
move-object/from16 v0, p0
iget-object v6, v0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mPol:[J
.line 586
check-cast p1, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;
move-object/from16 v0, p1
iget-object v7, v0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mPol:[J
.line 587
move-object/from16 v0, p0
iget v2, v0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mLength:I
new-array v8, v2, [J
.line 589
move-object/from16 v0, p0
iget-object v2, v0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mField:Lorg/spongycastle/pqc/math/linearalgebra/GF2nField;
check-cast v2, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBField;
iget-object v9, v2, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBField;->mMult:[[I
.line 592
move-object/from16 v0, p0
iget v2, v0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mLength:I
add-int/lit8 v10, v2, -0x1
.line 593
move-object/from16 v0, p0
iget v2, v0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mBit:I
add-int/lit8 v2, v2, -0x1
.line 596
sget-object v3, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mBitmask:[J
const/16 v4, 0x3f
aget-wide v12, v3, v4
.line 597
sget-object v3, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mBitmask:[J
aget-wide v14, v3, v2
.line 606
const/4 v2, 0x0
:goto_5d
move-object/from16 v0, p0
iget v3, v0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mDegree:I
if-ge v2, v3, :cond_1b6
.line 609
const/4 v4, 0x0
.line 611
const/4 v3, 0x0
:goto_65
move-object/from16 v0, p0
iget v5, v0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mDegree:I
if-ge v3, v5, :cond_ce
.line 616
sget-object v5, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mIBY64:[I
aget v5, v5, v3
.line 620
and-int/lit8 v11, v3, 0x3f
.line 624
sget-object v16, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mIBY64:[I
aget-object v17, v9, v3
const/16 v18, 0x0
aget v17, v17, v18
aget v16, v16, v17
.line 628
aget-object v17, v9, v3
const/16 v18, 0x0
aget v17, v17, v18
and-int/lit8 v17, v17, 0x3f
.line 630
aget-wide v18, v6, v5
sget-object v5, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mBitmask:[J
aget-wide v20, v5, v11
and-long v18, v18, v20
const-wide/16 v20, 0x0
cmp-long v5, v18, v20
if-eqz v5, :cond_cb
.line 633
aget-wide v18, v7, v16
sget-object v5, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mBitmask:[J
aget-wide v16, v5, v17
and-long v16, v16, v18
const-wide/16 v18, 0x0
cmp-long v5, v16, v18
if-eqz v5, :cond_a1
.line 635
xor-int/lit8 v4, v4, 0x1
.line 638
:cond_a1
aget-object v5, v9, v3
const/4 v11, 0x1
aget v5, v5, v11
const/4 v11, -0x1
if-eq v5, v11, :cond_cb
.line 643
sget-object v5, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mIBY64:[I
aget-object v11, v9, v3
const/16 v16, 0x1
aget v11, v11, v16
aget v5, v5, v11
.line 647
aget-object v11, v9, v3
const/16 v16, 0x1
aget v11, v11, v16
and-int/lit8 v11, v11, 0x3f
.line 649
aget-wide v16, v7, v5
sget-object v5, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mBitmask:[J
aget-wide v18, v5, v11
and-long v16, v16, v18
const-wide/16 v18, 0x0
cmp-long v5, v16, v18
if-eqz v5, :cond_cb
.line 651
xor-int/lit8 v4, v4, 0x1
.line 611
:cond_cb
add-int/lit8 v3, v3, 0x1
goto :goto_65
.line 657
:cond_ce
sget-object v3, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mIBY64:[I
aget v3, v3, v2
.line 658
and-int/lit8 v5, v2, 0x3f
.line 660
if-eqz v4, :cond_e0
.line 662
aget-wide v16, v8, v3
sget-object v4, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mBitmask:[J
aget-wide v4, v4, v5
xor-long v4, v4, v16
aput-wide v4, v8, v3
.line 668
:cond_e0
move-object/from16 v0, p0
iget v3, v0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mLength:I
const/4 v4, 0x1
if-le v3, v4, :cond_173
.line 673
aget-wide v4, v6, v10
const-wide/16 v16, 0x1
and-long v4, v4, v16
const-wide/16 v16, 0x1
cmp-long v3, v4, v16
if-nez v3, :cond_119
const/4 v3, 0x1
.line 675
:goto_f4
add-int/lit8 v4, v10, -0x1
move v5, v3
:goto_f7
if-ltz v4, :cond_11d
.line 677
aget-wide v16, v6, v4
const-wide/16 v18, 0x1
and-long v16, v16, v18
const-wide/16 v18, 0x0
cmp-long v3, v16, v18
if-eqz v3, :cond_11b
const/4 v3, 0x1
.line 679
:goto_106
aget-wide v16, v6, v4
const/4 v11, 0x1
ushr-long v16, v16, v11
aput-wide v16, v6, v4
.line 681
if-eqz v5, :cond_115
.line 683
aget-wide v16, v6, v4
xor-long v16, v16, v12
aput-wide v16, v6, v4
.line 675
:cond_115
add-int/lit8 v4, v4, -0x1
move v5, v3
goto :goto_f7
.line 673
:cond_119
const/4 v3, 0x0
goto :goto_f4
.line 677
:cond_11b
const/4 v3, 0x0
goto :goto_106
.line 688
:cond_11d
aget-wide v16, v6, v10
const/4 v3, 0x1
ushr-long v16, v16, v3
aput-wide v16, v6, v10
.line 690
if-eqz v5, :cond_12b
.line 692
aget-wide v4, v6, v10
xor-long/2addr v4, v14
aput-wide v4, v6, v10
.line 697
:cond_12b
aget-wide v4, v7, v10
const-wide/16 v16, 0x1
and-long v4, v4, v16
const-wide/16 v16, 0x1
cmp-long v3, v4, v16
if-nez v3, :cond_15d
const/4 v3, 0x1
.line 699
:goto_138
add-int/lit8 v4, v10, -0x1
move v5, v3
:goto_13b
if-ltz v4, :cond_161
.line 701
aget-wide v16, v7, v4
const-wide/16 v18, 0x1
and-long v16, v16, v18
const-wide/16 v18, 0x0
cmp-long v3, v16, v18
if-eqz v3, :cond_15f
const/4 v3, 0x1
.line 703
:goto_14a
aget-wide v16, v7, v4
const/4 v11, 0x1
ushr-long v16, v16, v11
aput-wide v16, v7, v4
.line 705
if-eqz v5, :cond_159
.line 707
aget-wide v16, v7, v4
xor-long v16, v16, v12
aput-wide v16, v7, v4
.line 699
:cond_159
add-int/lit8 v4, v4, -0x1
move v5, v3
goto :goto_13b
.line 697
:cond_15d
const/4 v3, 0x0
goto :goto_138
.line 701
:cond_15f
const/4 v3, 0x0
goto :goto_14a
.line 713
:cond_161
aget-wide v16, v7, v10
const/4 v3, 0x1
ushr-long v16, v16, v3
aput-wide v16, v7, v10
.line 715
if-eqz v5, :cond_16f
.line 717
aget-wide v4, v7, v10
xor-long/2addr v4, v14
aput-wide v4, v7, v10
.line 606
:cond_16f
:goto_16f
add-int/lit8 v2, v2, 0x1
goto/16 :goto_5d
.line 722
:cond_173
const/4 v3, 0x0
aget-wide v4, v6, v3
const-wide/16 v16, 0x1
and-long v4, v4, v16
const-wide/16 v16, 0x1
cmp-long v3, v4, v16
if-nez v3, :cond_1b2
const/4 v3, 0x1
.line 723
:goto_181
const/4 v4, 0x0
const/4 v5, 0x0
aget-wide v16, v6, v5
const/4 v5, 0x1
ushr-long v16, v16, v5
aput-wide v16, v6, v4
.line 725
if-eqz v3, :cond_192
.line 727
const/4 v3, 0x0
aget-wide v4, v6, v3
xor-long/2addr v4, v14
aput-wide v4, v6, v3
.line 730
:cond_192
const/4 v3, 0x0
aget-wide v4, v7, v3
const-wide/16 v16, 0x1
and-long v4, v4, v16
const-wide/16 v16, 0x1
cmp-long v3, v4, v16
if-nez v3, :cond_1b4
const/4 v3, 0x1
.line 731
:goto_1a0
const/4 v4, 0x0
const/4 v5, 0x0
aget-wide v16, v7, v5
const/4 v5, 0x1
ushr-long v16, v16, v5
aput-wide v16, v7, v4
.line 733
if-eqz v3, :cond_16f
.line 735
const/4 v3, 0x0
aget-wide v4, v7, v3
xor-long/2addr v4, v14
aput-wide v4, v7, v3
goto :goto_16f
.line 722
:cond_1b2
const/4 v3, 0x0
goto :goto_181
.line 730
:cond_1b4
const/4 v3, 0x0
goto :goto_1a0
.line 739
:cond_1b6
move-object/from16 v0, p0
invoke-direct {v0, v8}, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->assign([J)V
goto/16 :goto_2d
.end method
.method reverseOrder()V
.registers 2
.prologue
.line 481
invoke-direct {p0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->getElementReverseOrder()[J
move-result-object v0
iput-object v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mPol:[J
.line 482
return-void
.end method
.method public solveQuadraticEquation()Lorg/spongycastle/pqc/math/linearalgebra/GF2nElement;
.registers 16
.prologue
.line 976
invoke-virtual {p0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->trace()I
move-result v0
const/4 v1, 0x1
if-ne v0, v1, :cond_d
.line 978
new-instance v0, Ljava/lang/RuntimeException;
invoke-direct {v0}, Ljava/lang/RuntimeException;-><init>()V
throw v0
.line 981
:cond_d
sget-object v0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mBitmask:[J
const/16 v1, 0x3f
aget-wide v4, v0, v1
.line 985
iget v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mLength:I
new-array v6, v0, [J
.line 986
const-wide/16 v2, 0x0
.line 988
const/4 v0, 0x0
:goto_1a
iget v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mLength:I
add-int/lit8 v1, v1, -0x1
if-ge v0, v1, :cond_9c
.line 991
const/4 v1, 0x1
:goto_21
const/16 v7, 0x40
if-ge v1, v7, :cond_65
.line 995
sget-object v7, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mBitmask:[J
aget-wide v8, v7, v1
iget-object v7, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mPol:[J
aget-wide v10, v7, v0
and-long/2addr v8, v10
const-wide/16 v10, 0x0
cmp-long v7, v8, v10
if-eqz v7, :cond_41
sget-object v7, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mBitmask:[J
add-int/lit8 v8, v1, -0x1
aget-wide v8, v7, v8
and-long/2addr v8, v2
const-wide/16 v10, 0x0
cmp-long v7, v8, v10
if-nez v7, :cond_62
:cond_41
iget-object v7, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mPol:[J
aget-wide v8, v7, v0
sget-object v7, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mBitmask:[J
aget-wide v10, v7, v1
and-long/2addr v8, v10
const-wide/16 v10, 0x0
cmp-long v7, v8, v10
if-nez v7, :cond_5d
sget-object v7, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mBitmask:[J
add-int/lit8 v8, v1, -0x1
aget-wide v8, v7, v8
and-long/2addr v8, v2
const-wide/16 v10, 0x0
cmp-long v7, v8, v10
if-eqz v7, :cond_62
.line 997
:cond_5d
sget-object v7, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mBitmask:[J
aget-wide v8, v7, v1
xor-long/2addr v2, v8
.line 991
:cond_62
add-int/lit8 v1, v1, 0x1
goto :goto_21
.line 1000
:cond_65
aput-wide v2, v6, v0
.line 1002
and-long v8, v4, v2
const-wide/16 v10, 0x0
cmp-long v1, v8, v10
if-eqz v1, :cond_7e
const-wide/16 v8, 0x1
iget-object v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mPol:[J
add-int/lit8 v7, v0, 0x1
aget-wide v10, v1, v7
and-long/2addr v8, v10
const-wide/16 v10, 0x1
cmp-long v1, v8, v10
if-eqz v1, :cond_94
:cond_7e
and-long/2addr v2, v4
const-wide/16 v8, 0x0
cmp-long v1, v2, v8
if-nez v1, :cond_99
const-wide/16 v2, 0x1
iget-object v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mPol:[J
add-int/lit8 v7, v0, 0x1
aget-wide v8, v1, v7
and-long/2addr v2, v8
const-wide/16 v8, 0x0
cmp-long v1, v2, v8
if-nez v1, :cond_99
.line 1005
:cond_94
const-wide/16 v2, 0x0
.line 988
:goto_96
add-int/lit8 v0, v0, 0x1
goto :goto_1a
.line 1009
:cond_99
const-wide/16 v2, 0x1
goto :goto_96
.line 1013
:cond_9c
iget v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mDegree:I
and-int/lit8 v4, v0, 0x3f
.line 1015
iget-object v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mPol:[J
iget v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mLength:I
add-int/lit8 v1, v1, -0x1
aget-wide v8, v0, v1
.line 1017
const/4 v0, 0x1
move v14, v0
move-wide v0, v2
move v2, v14
:goto_ac
if-ge v2, v4, :cond_e6
.line 1019
sget-object v3, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mBitmask:[J
aget-wide v10, v3, v2
and-long/2addr v10, v8
const-wide/16 v12, 0x0
cmp-long v3, v10, v12
if-eqz v3, :cond_c6
sget-object v3, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mBitmask:[J
add-int/lit8 v5, v2, -0x1
aget-wide v10, v3, v5
and-long/2addr v10, v0
const-wide/16 v12, 0x0
cmp-long v3, v10, v12
if-nez v3, :cond_e3
:cond_c6
sget-object v3, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mBitmask:[J
aget-wide v10, v3, v2
and-long/2addr v10, v8
const-wide/16 v12, 0x0
cmp-long v3, v10, v12
if-nez v3, :cond_de
sget-object v3, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mBitmask:[J
add-int/lit8 v5, v2, -0x1
aget-wide v10, v3, v5
and-long/2addr v10, v0
const-wide/16 v12, 0x0
cmp-long v3, v10, v12
if-eqz v3, :cond_e3
.line 1021
:cond_de
sget-object v3, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mBitmask:[J
aget-wide v10, v3, v2
xor-long/2addr v0, v10
.line 1017
:cond_e3
add-int/lit8 v2, v2, 0x1
goto :goto_ac
.line 1024
:cond_e6
iget v2, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mLength:I
add-int/lit8 v2, v2, -0x1
aput-wide v0, v6, v2
.line 1025
new-instance v1, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;
iget-object v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mField:Lorg/spongycastle/pqc/math/linearalgebra/GF2nField;
check-cast v0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBField;
invoke-direct {v1, v0, v6}, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;-><init>(Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBField;[J)V
return-object v1
.end method
.method public square()Lorg/spongycastle/pqc/math/linearalgebra/GF2nElement;
.registers 2
.prologue
.line 750
new-instance v0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;
invoke-direct {v0, p0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;-><init>(Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;)V
.line 751
invoke-virtual {v0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->squareThis()V
.line 752
return-object v0
.end method
.method public squareRoot()Lorg/spongycastle/pqc/math/linearalgebra/GF2nElement;
.registers 2
.prologue
.line 881
new-instance v0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;
invoke-direct {v0, p0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;-><init>(Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;)V
.line 882
invoke-virtual {v0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->squareRootThis()V
.line 883
return-object v0
.end method
.method public squareRootThis()V
.registers 13
.prologue
.line 892
invoke-direct {p0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->getElement()[J
move-result-object v4
.line 894
iget v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mLength:I
add-int/lit8 v2, v0, -0x1
.line 895
iget v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mBit:I
add-int/lit8 v5, v0, -0x1
.line 899
sget-object v0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mBitmask:[J
const/16 v1, 0x3f
aget-wide v6, v0, v1
.line 902
const/4 v0, 0x0
aget-wide v0, v4, v0
const-wide/16 v8, 0x1
and-long/2addr v0, v8
const-wide/16 v8, 0x0
cmp-long v0, v0, v8
if-eqz v0, :cond_46
const/4 v0, 0x1
:goto_1f
move v1, v2
move v3, v0
.line 904
:goto_21
if-ltz v1, :cond_50
.line 906
aget-wide v8, v4, v1
const-wide/16 v10, 0x1
and-long/2addr v8, v10
const-wide/16 v10, 0x0
cmp-long v0, v8, v10
if-eqz v0, :cond_48
const/4 v0, 0x1
.line 907
:goto_2f
aget-wide v8, v4, v1
const/4 v10, 0x1
ushr-long/2addr v8, v10
aput-wide v8, v4, v1
.line 909
if-eqz v3, :cond_42
.line 911
if-ne v1, v2, :cond_4a
.line 913
aget-wide v8, v4, v1
sget-object v3, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mBitmask:[J
aget-wide v10, v3, v5
xor-long/2addr v8, v10
aput-wide v8, v4, v1
.line 904
:cond_42
:goto_42
add-int/lit8 v1, v1, -0x1
move v3, v0
goto :goto_21
.line 902
:cond_46
const/4 v0, 0x0
goto :goto_1f
.line 906
:cond_48
const/4 v0, 0x0
goto :goto_2f
.line 917
:cond_4a
aget-wide v8, v4, v1
xor-long/2addr v8, v6
aput-wide v8, v4, v1
goto :goto_42
.line 922
:cond_50
invoke-direct {p0, v4}, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->assign([J)V
.line 923
return-void
.end method
.method public squareThis()V
.registers 13
.prologue
.line 761
invoke-direct {p0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->getElement()[J
move-result-object v3
.line 763
iget v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mLength:I
add-int/lit8 v4, v0, -0x1
.line 764
iget v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mBit:I
add-int/lit8 v5, v0, -0x1
.line 768
sget-object v0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mBitmask:[J
const/16 v1, 0x3f
aget-wide v6, v0, v1
.line 771
aget-wide v0, v3, v4
sget-object v2, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mBitmask:[J
aget-wide v8, v2, v5
and-long/2addr v0, v8
const-wide/16 v8, 0x0
cmp-long v0, v0, v8
if-eqz v0, :cond_41
const/4 v0, 0x1
.line 773
:goto_20
const/4 v1, 0x0
move v2, v0
:goto_22
if-ge v1, v4, :cond_45
.line 776
aget-wide v8, v3, v1
and-long/2addr v8, v6
const-wide/16 v10, 0x0
cmp-long v0, v8, v10
if-eqz v0, :cond_43
const/4 v0, 0x1
.line 778
:goto_2e
aget-wide v8, v3, v1
const/4 v10, 0x1
shl-long/2addr v8, v10
aput-wide v8, v3, v1
.line 780
if-eqz v2, :cond_3d
.line 782
aget-wide v8, v3, v1
const-wide/16 v10, 0x1
xor-long/2addr v8, v10
aput-wide v8, v3, v1
.line 773
:cond_3d
add-int/lit8 v1, v1, 0x1
move v2, v0
goto :goto_22
.line 771
:cond_41
const/4 v0, 0x0
goto :goto_20
.line 776
:cond_43
const/4 v0, 0x0
goto :goto_2e
.line 787
:cond_45
aget-wide v0, v3, v4
sget-object v6, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mBitmask:[J
aget-wide v6, v6, v5
and-long/2addr v0, v6
const-wide/16 v6, 0x0
cmp-long v0, v0, v6
if-eqz v0, :cond_73
const/4 v0, 0x1
.line 789
:goto_53
aget-wide v6, v3, v4
const/4 v1, 0x1
shl-long/2addr v6, v1
aput-wide v6, v3, v4
.line 791
if-eqz v2, :cond_62
.line 793
aget-wide v6, v3, v4
const-wide/16 v8, 0x1
xor-long/2addr v6, v8
aput-wide v6, v3, v4
.line 798
:cond_62
if-eqz v0, :cond_6f
.line 800
aget-wide v0, v3, v4
sget-object v2, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mBitmask:[J
add-int/lit8 v5, v5, 0x1
aget-wide v6, v2, v5
xor-long/2addr v0, v6
aput-wide v0, v3, v4
.line 803
:cond_6f
invoke-direct {p0, v3}, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->assign([J)V
.line 804
return-void
.line 787
:cond_73
const/4 v0, 0x0
goto :goto_53
.end method
.method testBit(I)Z
.registers 8
.prologue
const/4 v0, 0x0
.line 436
if-ltz p1, :cond_7
iget v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mDegree:I
if-le p1, v1, :cond_8
.line 441
:cond_7
:goto_7
return v0
.line 440
:cond_8
iget-object v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mPol:[J
ushr-int/lit8 v2, p1, 0x6
aget-wide v2, v1, v2
sget-object v1, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mBitmask:[J
and-int/lit8 v4, p1, 0x3f
aget-wide v4, v1, v4
and-long/2addr v2, v4
.line 441
const-wide/16 v4, 0x0
cmp-long v1, v2, v4
if-eqz v1, :cond_7
const/4 v0, 0x1
goto :goto_7
.end method
.method public testRightmostBit()Z
.registers 5
.prologue
.line 422
iget-object v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mPol:[J
iget v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mLength:I
add-int/lit8 v1, v1, -0x1
aget-wide v0, v0, v1
sget-object v2, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mBitmask:[J
iget v3, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mBit:I
add-int/lit8 v3, v3, -0x1
aget-wide v2, v2, v3
and-long/2addr v0, v2
const-wide/16 v2, 0x0
cmp-long v0, v0, v2
if-eqz v0, :cond_19
const/4 v0, 0x1
:goto_18
return v0
:cond_19
const/4 v0, 0x0
goto :goto_18
.end method
.method public toByteArray()[B
.registers 10
.prologue
.line 1138
iget v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mDegree:I
add-int/lit8 v0, v0, -0x1
shr-int/lit8 v0, v0, 0x3
add-int/lit8 v1, v0, 0x1
.line 1139
new-array v2, v1, [B
.line 1141
const/4 v0, 0x0
:goto_b
if-ge v0, v1, :cond_2b
.line 1143
sub-int v3, v1, v0
add-int/lit8 v3, v3, -0x1
iget-object v4, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mPol:[J
ushr-int/lit8 v5, v0, 0x3
aget-wide v4, v4, v5
const-wide/16 v6, 0xff
and-int/lit8 v8, v0, 0x7
shl-int/lit8 v8, v8, 0x3
shl-long/2addr v6, v8
and-long/2addr v4, v6
and-int/lit8 v6, v0, 0x7
shl-int/lit8 v6, v6, 0x3
ushr-long/2addr v4, v6
long-to-int v4, v4
int-to-byte v4, v4
aput-byte v4, v2, v3
.line 1141
add-int/lit8 v0, v0, 0x1
goto :goto_b
.line 1145
:cond_2b
return-object v2
.end method
.method public toFlexiBigInt()Ljava/math/BigInteger;
.registers 4
.prologue
.line 1125
new-instance v0, Ljava/math/BigInteger;
const/4 v1, 0x1
invoke-virtual {p0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->toByteArray()[B
move-result-object v2
invoke-direct {v0, v1, v2}, Ljava/math/BigInteger;-><init>(I[B)V
return-object v0
.end method
.method public toString()Ljava/lang/String;
.registers 2
.prologue
.line 1039
const/16 v0, 0x10
invoke-virtual {p0, v0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->toString(I)Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public toString(I)Ljava/lang/String;
.registers 12
.prologue
const-wide/16 v8, 0x0
const/16 v5, 0x10
.line 1052
const-string v0, ""
.line 1054
invoke-direct {p0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->getElement()[J
move-result-object v3
.line 1055
iget v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mBit:I
.line 1057
const/4 v2, 0x2
if-ne p1, v2, :cond_8d
.line 1060
add-int/lit8 v1, v1, -0x1
:goto_11
if-ltz v1, :cond_4a
.line 1062
array-length v2, v3
add-int/lit8 v2, v2, -0x1
aget-wide v4, v3, v2
const-wide/16 v6, 0x1
shl-long/2addr v6, v1
and-long/2addr v4, v6
cmp-long v2, v4, v8
if-nez v2, :cond_36
.line 1064
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
const-string v2, "0"
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
.line 1060
:goto_33
add-int/lit8 v1, v1, -0x1
goto :goto_11
.line 1068
:cond_36
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
const-string v2, "1"
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
goto :goto_33
.line 1072
:cond_4a
array-length v1, v3
add-int/lit8 v1, v1, -0x2
move v2, v1
:goto_4e
if-ltz v2, :cond_25c
.line 1074
const/16 v1, 0x3f
:goto_52
if-ltz v1, :cond_89
.line 1076
aget-wide v4, v3, v2
sget-object v6, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mBitmask:[J
aget-wide v6, v6, v1
and-long/2addr v4, v6
cmp-long v4, v4, v8
if-nez v4, :cond_75
.line 1078
new-instance v4, Ljava/lang/StringBuilder;
invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
const-string v4, "0"
invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
.line 1074
:goto_72
add-int/lit8 v1, v1, -0x1
goto :goto_52
.line 1082
:cond_75
new-instance v4, Ljava/lang/StringBuilder;
invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
const-string v4, "1"
invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
goto :goto_72
.line 1072
:cond_89
add-int/lit8 v1, v2, -0x1
move v2, v1
goto :goto_4e
.line 1087
:cond_8d
if-ne p1, v5, :cond_25c
.line 1089
new-array v4, v5, [C
fill-array-data v4, :array_25e
.line 1091
array-length v1, v3
add-int/lit8 v1, v1, -0x1
:goto_97
if-ltz v1, :cond_25c
.line 1093
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
aget-wide v6, v3, v1
const/16 v2, 0x3c
ushr-long/2addr v6, v2
long-to-int v2, v6
and-int/lit8 v2, v2, 0xf
aget-char v2, v4, v2
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
.line 1094
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
aget-wide v6, v3, v1
const/16 v2, 0x38
ushr-long/2addr v6, v2
long-to-int v2, v6
and-int/lit8 v2, v2, 0xf
aget-char v2, v4, v2
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
.line 1095
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
aget-wide v6, v3, v1
const/16 v2, 0x34
ushr-long/2addr v6, v2
long-to-int v2, v6
and-int/lit8 v2, v2, 0xf
aget-char v2, v4, v2
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
.line 1096
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
aget-wide v6, v3, v1
const/16 v2, 0x30
ushr-long/2addr v6, v2
long-to-int v2, v6
and-int/lit8 v2, v2, 0xf
aget-char v2, v4, v2
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
.line 1097
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
aget-wide v6, v3, v1
const/16 v2, 0x2c
ushr-long/2addr v6, v2
long-to-int v2, v6
and-int/lit8 v2, v2, 0xf
aget-char v2, v4, v2
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
.line 1098
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
aget-wide v6, v3, v1
const/16 v2, 0x28
ushr-long/2addr v6, v2
long-to-int v2, v6
and-int/lit8 v2, v2, 0xf
aget-char v2, v4, v2
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
.line 1099
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
aget-wide v6, v3, v1
const/16 v2, 0x24
ushr-long/2addr v6, v2
long-to-int v2, v6
and-int/lit8 v2, v2, 0xf
aget-char v2, v4, v2
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
.line 1100
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
aget-wide v6, v3, v1
const/16 v2, 0x20
ushr-long/2addr v6, v2
long-to-int v2, v6
and-int/lit8 v2, v2, 0xf
aget-char v2, v4, v2
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
.line 1101
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
aget-wide v6, v3, v1
const/16 v2, 0x1c
ushr-long/2addr v6, v2
long-to-int v2, v6
and-int/lit8 v2, v2, 0xf
aget-char v2, v4, v2
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
.line 1102
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
aget-wide v6, v3, v1
const/16 v2, 0x18
ushr-long/2addr v6, v2
long-to-int v2, v6
and-int/lit8 v2, v2, 0xf
aget-char v2, v4, v2
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
.line 1103
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
aget-wide v6, v3, v1
const/16 v2, 0x14
ushr-long/2addr v6, v2
long-to-int v2, v6
and-int/lit8 v2, v2, 0xf
aget-char v2, v4, v2
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
.line 1104
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
aget-wide v6, v3, v1
ushr-long/2addr v6, v5
long-to-int v2, v6
and-int/lit8 v2, v2, 0xf
aget-char v2, v4, v2
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
.line 1105
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
aget-wide v6, v3, v1
const/16 v2, 0xc
ushr-long/2addr v6, v2
long-to-int v2, v6
and-int/lit8 v2, v2, 0xf
aget-char v2, v4, v2
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
.line 1106
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
aget-wide v6, v3, v1
const/16 v2, 0x8
ushr-long/2addr v6, v2
long-to-int v2, v6
and-int/lit8 v2, v2, 0xf
aget-char v2, v4, v2
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
.line 1107
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
aget-wide v6, v3, v1
const/4 v2, 0x4
ushr-long/2addr v6, v2
long-to-int v2, v6
and-int/lit8 v2, v2, 0xf
aget-char v2, v4, v2
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
.line 1108
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
aget-wide v6, v3, v1
long-to-int v2, v6
and-int/lit8 v2, v2, 0xf
aget-char v2, v4, v2
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
.line 1109
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
const-string v2, " "
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
.line 1091
add-int/lit8 v0, v1, -0x1
move v1, v0
move-object v0, v2
goto/16 :goto_97
.line 1112
:cond_25c
return-object v0
.line 1089
nop
:array_25e
.array-data 2
0x30s
0x31s
0x32s
0x33s
0x34s
0x35s
0x36s
0x37s
0x38s
0x39s
0x61s
0x62s
0x63s
0x64s
0x65s
0x66s
.end array-data
.end method
.method public trace()I
.registers 13
.prologue
const-wide/16 v10, 0x0
const/4 v1, 0x0
.line 936
.line 938
iget v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mLength:I
add-int/lit8 v4, v0, -0x1
move v3, v1
move v0, v1
.line 940
:goto_9
if-ge v3, v4, :cond_26
move v2, v1
.line 943
:goto_c
const/16 v5, 0x40
if-ge v2, v5, :cond_22
.line 946
iget-object v5, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mPol:[J
aget-wide v6, v5, v3
sget-object v5, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mBitmask:[J
aget-wide v8, v5, v2
and-long/2addr v6, v8
cmp-long v5, v6, v10
if-eqz v5, :cond_1f
.line 948
xor-int/lit8 v0, v0, 0x1
.line 943
:cond_1f
add-int/lit8 v2, v2, 0x1
goto :goto_c
.line 940
:cond_22
add-int/lit8 v2, v3, 0x1
move v3, v2
goto :goto_9
.line 953
:cond_26
iget v2, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mBit:I
.line 955
:goto_28
if-ge v1, v2, :cond_3c
.line 958
iget-object v3, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mPol:[J
aget-wide v6, v3, v4
sget-object v3, Lorg/spongycastle/pqc/math/linearalgebra/GF2nONBElement;->mBitmask:[J
aget-wide v8, v3, v1
and-long/2addr v6, v8
cmp-long v3, v6, v10
if-eqz v3, :cond_39
.line 960
xor-int/lit8 v0, v0, 0x1
.line 955
:cond_39
add-int/lit8 v1, v1, 0x1
goto :goto_28
.line 963
:cond_3c
return v0
.end method