GF2Polynomial.smali
.class public Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;
.super Ljava/lang/Object;
.source "GF2Polynomial.java"
# static fields
.field private static final bitMask:[I
.field private static final parity:[Z
.field private static rand:Ljava/util/Random;
.field private static final reverseRightMask:[I
.field private static final squaringTable:[S
# instance fields
.field private blocks:I
.field private len:I
.field private value:[I
# direct methods
.method static constructor <clinit>()V
.registers 3
.prologue
const/16 v2, 0x100
const/16 v1, 0x21
.line 29
new-instance v0, Ljava/util/Random;
invoke-direct {v0}, Ljava/util/Random;-><init>()V
sput-object v0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->rand:Ljava/util/Random;
.line 32
new-array v0, v2, [Z
fill-array-data v0, :array_28
sput-object v0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->parity:[Z
.line 61
new-array v0, v2, [S
fill-array-data v0, :array_ac
sput-object v0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->squaringTable:[S
.line 96
new-array v0, v1, [I
fill-array-data v0, :array_1b0
sput-object v0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->bitMask:[I
.line 105
new-array v0, v1, [I
fill-array-data v0, :array_1f6
sput-object v0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->reverseRightMask:[I
return-void
.line 32
:array_28
.array-data 1
0x0t
0x1t
0x1t
0x0t
0x1t
0x0t
0x0t
0x1t
0x1t
0x0t
0x0t
0x1t
0x0t
0x1t
0x1t
0x0t
0x1t
0x0t
0x0t
0x1t
0x0t
0x1t
0x1t
0x0t
0x0t
0x1t
0x1t
0x0t
0x1t
0x0t
0x0t
0x1t
0x1t
0x0t
0x0t
0x1t
0x0t
0x1t
0x1t
0x0t
0x0t
0x1t
0x1t
0x0t
0x1t
0x0t
0x0t
0x1t
0x0t
0x1t
0x1t
0x0t
0x1t
0x0t
0x0t
0x1t
0x1t
0x0t
0x0t
0x1t
0x0t
0x1t
0x1t
0x0t
0x1t
0x0t
0x0t
0x1t
0x0t
0x1t
0x1t
0x0t
0x0t
0x1t
0x1t
0x0t
0x1t
0x0t
0x0t
0x1t
0x0t
0x1t
0x1t
0x0t
0x1t
0x0t
0x0t
0x1t
0x1t
0x0t
0x0t
0x1t
0x0t
0x1t
0x1t
0x0t
0x0t
0x1t
0x1t
0x0t
0x1t
0x0t
0x0t
0x1t
0x1t
0x0t
0x0t
0x1t
0x0t
0x1t
0x1t
0x0t
0x1t
0x0t
0x0t
0x1t
0x0t
0x1t
0x1t
0x0t
0x0t
0x1t
0x1t
0x0t
0x1t
0x0t
0x0t
0x1t
0x1t
0x0t
0x0t
0x1t
0x0t
0x1t
0x1t
0x0t
0x0t
0x1t
0x1t
0x0t
0x1t
0x0t
0x0t
0x1t
0x0t
0x1t
0x1t
0x0t
0x1t
0x0t
0x0t
0x1t
0x1t
0x0t
0x0t
0x1t
0x0t
0x1t
0x1t
0x0t
0x0t
0x1t
0x1t
0x0t
0x1t
0x0t
0x0t
0x1t
0x1t
0x0t
0x0t
0x1t
0x0t
0x1t
0x1t
0x0t
0x1t
0x0t
0x0t
0x1t
0x0t
0x1t
0x1t
0x0t
0x0t
0x1t
0x1t
0x0t
0x1t
0x0t
0x0t
0x1t
0x0t
0x1t
0x1t
0x0t
0x1t
0x0t
0x0t
0x1t
0x1t
0x0t
0x0t
0x1t
0x0t
0x1t
0x1t
0x0t
0x1t
0x0t
0x0t
0x1t
0x0t
0x1t
0x1t
0x0t
0x0t
0x1t
0x1t
0x0t
0x1t
0x0t
0x0t
0x1t
0x1t
0x0t
0x0t
0x1t
0x0t
0x1t
0x1t
0x0t
0x0t
0x1t
0x1t
0x0t
0x1t
0x0t
0x0t
0x1t
0x0t
0x1t
0x1t
0x0t
0x1t
0x0t
0x0t
0x1t
0x1t
0x0t
0x0t
0x1t
0x0t
0x1t
0x1t
0x0t
.end array-data
.line 61
:array_ac
.array-data 2
0x0s
0x1s
0x4s
0x5s
0x10s
0x11s
0x14s
0x15s
0x40s
0x41s
0x44s
0x45s
0x50s
0x51s
0x54s
0x55s
0x100s
0x101s
0x104s
0x105s
0x110s
0x111s
0x114s
0x115s
0x140s
0x141s
0x144s
0x145s
0x150s
0x151s
0x154s
0x155s
0x400s
0x401s
0x404s
0x405s
0x410s
0x411s
0x414s
0x415s
0x440s
0x441s
0x444s
0x445s
0x450s
0x451s
0x454s
0x455s
0x500s
0x501s
0x504s
0x505s
0x510s
0x511s
0x514s
0x515s
0x540s
0x541s
0x544s
0x545s
0x550s
0x551s
0x554s
0x555s
0x1000s
0x1001s
0x1004s
0x1005s
0x1010s
0x1011s
0x1014s
0x1015s
0x1040s
0x1041s
0x1044s
0x1045s
0x1050s
0x1051s
0x1054s
0x1055s
0x1100s
0x1101s
0x1104s
0x1105s
0x1110s
0x1111s
0x1114s
0x1115s
0x1140s
0x1141s
0x1144s
0x1145s
0x1150s
0x1151s
0x1154s
0x1155s
0x1400s
0x1401s
0x1404s
0x1405s
0x1410s
0x1411s
0x1414s
0x1415s
0x1440s
0x1441s
0x1444s
0x1445s
0x1450s
0x1451s
0x1454s
0x1455s
0x1500s
0x1501s
0x1504s
0x1505s
0x1510s
0x1511s
0x1514s
0x1515s
0x1540s
0x1541s
0x1544s
0x1545s
0x1550s
0x1551s
0x1554s
0x1555s
0x4000s
0x4001s
0x4004s
0x4005s
0x4010s
0x4011s
0x4014s
0x4015s
0x4040s
0x4041s
0x4044s
0x4045s
0x4050s
0x4051s
0x4054s
0x4055s
0x4100s
0x4101s
0x4104s
0x4105s
0x4110s
0x4111s
0x4114s
0x4115s
0x4140s
0x4141s
0x4144s
0x4145s
0x4150s
0x4151s
0x4154s
0x4155s
0x4400s
0x4401s
0x4404s
0x4405s
0x4410s
0x4411s
0x4414s
0x4415s
0x4440s
0x4441s
0x4444s
0x4445s
0x4450s
0x4451s
0x4454s
0x4455s
0x4500s
0x4501s
0x4504s
0x4505s
0x4510s
0x4511s
0x4514s
0x4515s
0x4540s
0x4541s
0x4544s
0x4545s
0x4550s
0x4551s
0x4554s
0x4555s
0x5000s
0x5001s
0x5004s
0x5005s
0x5010s
0x5011s
0x5014s
0x5015s
0x5040s
0x5041s
0x5044s
0x5045s
0x5050s
0x5051s
0x5054s
0x5055s
0x5100s
0x5101s
0x5104s
0x5105s
0x5110s
0x5111s
0x5114s
0x5115s
0x5140s
0x5141s
0x5144s
0x5145s
0x5150s
0x5151s
0x5154s
0x5155s
0x5400s
0x5401s
0x5404s
0x5405s
0x5410s
0x5411s
0x5414s
0x5415s
0x5440s
0x5441s
0x5444s
0x5445s
0x5450s
0x5451s
0x5454s
0x5455s
0x5500s
0x5501s
0x5504s
0x5505s
0x5510s
0x5511s
0x5514s
0x5515s
0x5540s
0x5541s
0x5544s
0x5545s
0x5550s
0x5551s
0x5554s
0x5555s
.end array-data
.line 96
:array_1b0
.array-data 4
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 # 2.0f
-0x80000000
0x0
.end array-data
.line 105
:array_1f6
.array-data 4
0x0
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 # 1.9999999f
0x7fffffff
-0x1
.end array-data
.end method
.method public constructor <init>(I)V
.registers 3
.prologue
.line 120
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 122
if-gtz p1, :cond_6
.line 124
const/4 p1, 0x1
.line 126
:cond_6
add-int/lit8 v0, p1, -0x1
shr-int/lit8 v0, v0, 0x5
add-int/lit8 v0, v0, 0x1
iput v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
.line 127
iget v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
new-array v0, v0, [I
iput-object v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
.line 128
iput p1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
.line 129
return-void
.end method
.method public constructor <init>(ILjava/lang/String;)V
.registers 6
.prologue
.line 165
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 167
if-gtz p1, :cond_6
.line 169
const/4 p1, 0x1
.line 171
:cond_6
add-int/lit8 v0, p1, -0x1
shr-int/lit8 v0, v0, 0x5
add-int/lit8 v0, v0, 0x1
iput v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
.line 172
iget v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
new-array v0, v0, [I
iput-object v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
.line 173
iput p1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
.line 174
const-string v0, "ZERO"
invoke-virtual {p2, v0}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_22
.line 176
invoke-virtual {p0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->assignZero()V
.line 192
:goto_21
return-void
.line 178
:cond_22
const-string v0, "ONE"
invoke-virtual {p2, v0}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_2e
.line 180
invoke-virtual {p0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->assignOne()V
goto :goto_21
.line 182
:cond_2e
const-string v0, "RANDOM"
invoke-virtual {p2, v0}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_3a
.line 184
invoke-virtual {p0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->randomize()V
goto :goto_21
.line 186
:cond_3a
const-string v0, "X"
invoke-virtual {p2, v0}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_46
.line 188
invoke-virtual {p0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->assignX()V
goto :goto_21
.line 190
:cond_46
const-string v0, "ALL"
invoke-virtual {p2, v0}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_52
.line 192
invoke-virtual {p0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->assignAll()V
goto :goto_21
.line 196
:cond_52
new-instance v0, Ljava/lang/IllegalArgumentException;
new-instance v1, Ljava/lang/StringBuilder;
const-string v2, "Error: GF2Polynomial was called using "
invoke-direct {v1, v2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v1, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
const-string v2, " as value!"
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method public constructor <init>(ILjava/math/BigInteger;)V
.registers 13
.prologue
const/4 v0, 0x1
const/4 v3, 0x0
.line 281
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 283
if-gtz p1, :cond_8
move p1, v0
.line 287
:cond_8
add-int/lit8 v1, p1, -0x1
shr-int/lit8 v1, v1, 0x5
add-int/lit8 v1, v1, 0x1
iput v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
.line 288
iget v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
new-array v1, v1, [I
iput-object v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
.line 289
iput p1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
.line 291
invoke-virtual {p2}, Ljava/math/BigInteger;->toByteArray()[B
move-result-object v2
.line 292
aget-byte v1, v2, v3
if-nez v1, :cond_b4
.line 294
array-length v1, v2
add-int/lit8 v1, v1, -0x1
new-array v1, v1, [B
.line 295
array-length v4, v1
invoke-static {v2, v0, v1, v3, v4}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
move-object v0, v1
.line 298
:goto_2a
array-length v1, v0
and-int/lit8 v2, v1, 0x3
.line 299
array-length v1, v0
add-int/lit8 v1, v1, -0x1
shr-int/lit8 v1, v1, 0x2
add-int/lit8 v4, v1, 0x1
move v1, v3
.line 300
:goto_35
if-ge v1, v2, :cond_4d
.line 302
iget-object v5, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
add-int/lit8 v6, v4, -0x1
aget v7, v5, v6
aget-byte v8, v0, v1
and-int/lit16 v8, v8, 0xff
add-int/lit8 v9, v2, -0x1
sub-int/2addr v9, v1
shl-int/lit8 v9, v9, 0x3
shl-int/2addr v8, v9
or-int/2addr v7, v8
aput v7, v5, v6
.line 300
add-int/lit8 v1, v1, 0x1
goto :goto_35
:cond_4d
move v1, v3
.line 305
:goto_4e
array-length v2, v0
add-int/lit8 v2, v2, -0x4
shr-int/lit8 v2, v2, 0x2
if-gt v1, v2, :cond_97
.line 307
array-length v2, v0
add-int/lit8 v2, v2, -0x1
shl-int/lit8 v3, v1, 0x2
sub-int/2addr v2, v3
.line 308
iget-object v3, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aget-byte v4, v0, v2
and-int/lit16 v4, v4, 0xff
aput v4, v3, v1
.line 309
iget-object v3, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aget v4, v3, v1
add-int/lit8 v5, v2, -0x1
aget-byte v5, v0, v5
shl-int/lit8 v5, v5, 0x8
const v6, 0xff00
and-int/2addr v5, v6
or-int/2addr v4, v5
aput v4, v3, v1
.line 310
iget-object v3, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aget v4, v3, v1
add-int/lit8 v5, v2, -0x2
aget-byte v5, v0, v5
shl-int/lit8 v5, v5, 0x10
const/high16 v6, 0xff0000
and-int/2addr v5, v6
or-int/2addr v4, v5
aput v4, v3, v1
.line 311
iget-object v3, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aget v4, v3, v1
add-int/lit8 v2, v2, -0x3
aget-byte v2, v0, v2
shl-int/lit8 v2, v2, 0x18
const/high16 v5, -0x1000000
and-int/2addr v2, v5
or-int/2addr v2, v4
aput v2, v3, v1
.line 305
add-int/lit8 v1, v1, 0x1
goto :goto_4e
.line 313
:cond_97
iget v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
and-int/lit8 v0, v0, 0x1f
if-eqz v0, :cond_b0
.line 315
iget-object v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
iget v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
add-int/lit8 v1, v1, -0x1
aget v2, v0, v1
sget-object v3, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->reverseRightMask:[I
iget v4, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
and-int/lit8 v4, v4, 0x1f
aget v3, v3, v4
and-int/2addr v2, v3
aput v2, v0, v1
.line 317
:cond_b0
invoke-virtual {p0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->reduceN()V
.line 318
return-void
:cond_b4
move-object v0, v2
goto/16 :goto_2a
.end method
.method public constructor <init>(ILjava/util/Random;)V
.registers 4
.prologue
.line 138
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 140
if-gtz p1, :cond_6
.line 142
const/4 p1, 0x1
.line 144
:cond_6
add-int/lit8 v0, p1, -0x1
shr-int/lit8 v0, v0, 0x5
add-int/lit8 v0, v0, 0x1
iput v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
.line 145
iget v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
new-array v0, v0, [I
iput-object v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
.line 146
iput p1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
.line 147
invoke-virtual {p0, p2}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->randomize(Ljava/util/Random;)V
.line 148
return-void
.end method
.method public constructor <init>(I[B)V
.registers 13
.prologue
const/high16 v9, 0xff0000
const v8, 0xff00
const/4 v0, 0x1
const/high16 v7, -0x1000000
.line 234
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 236
if-gtz p1, :cond_e
move p1, v0
.line 240
:cond_e
add-int/lit8 v1, p1, -0x1
shr-int/lit8 v1, v1, 0x5
add-int/lit8 v1, v1, 0x1
iput v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
.line 241
iget v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
new-array v1, v1, [I
iput-object v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
.line 242
iput p1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
.line 244
array-length v1, p2
add-int/lit8 v1, v1, -0x1
shr-int/lit8 v1, v1, 0x2
add-int/lit8 v1, v1, 0x1
iget v2, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
invoke-static {v1, v2}, Ljava/lang/Math;->min(II)I
move-result v2
.line 245
const/4 v1, 0x0
:goto_2c
add-int/lit8 v3, v2, -0x1
if-ge v1, v3, :cond_6b
.line 247
array-length v3, p2
shl-int/lit8 v4, v1, 0x2
sub-int/2addr v3, v4
add-int/lit8 v3, v3, -0x1
.line 248
iget-object v4, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aget-byte v5, p2, v3
and-int/lit16 v5, v5, 0xff
aput v5, v4, v1
.line 249
iget-object v4, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aget v5, v4, v1
add-int/lit8 v6, v3, -0x1
aget-byte v6, p2, v6
shl-int/lit8 v6, v6, 0x8
and-int/2addr v6, v8
or-int/2addr v5, v6
aput v5, v4, v1
.line 250
iget-object v4, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aget v5, v4, v1
add-int/lit8 v6, v3, -0x2
aget-byte v6, p2, v6
shl-int/lit8 v6, v6, 0x10
and-int/2addr v6, v9
or-int/2addr v5, v6
aput v5, v4, v1
.line 251
iget-object v4, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aget v5, v4, v1
add-int/lit8 v3, v3, -0x3
aget-byte v3, p2, v3
shl-int/lit8 v3, v3, 0x18
and-int/2addr v3, v7
or-int/2addr v3, v5
aput v3, v4, v1
.line 245
add-int/lit8 v1, v1, 0x1
goto :goto_2c
.line 253
:cond_6b
add-int/lit8 v1, v2, -0x1
.line 254
array-length v2, p2
shl-int/lit8 v3, v1, 0x2
sub-int/2addr v2, v3
add-int/lit8 v2, v2, -0x1
.line 255
iget-object v3, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aget-byte v4, p2, v2
and-int/lit16 v4, v4, 0xff
aput v4, v3, v1
.line 256
if-lez v2, :cond_8b
.line 258
iget-object v3, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aget v4, v3, v1
add-int/lit8 v5, v2, -0x1
aget-byte v5, p2, v5
shl-int/lit8 v5, v5, 0x8
and-int/2addr v5, v8
or-int/2addr v4, v5
aput v4, v3, v1
.line 260
:cond_8b
if-le v2, v0, :cond_9b
.line 262
iget-object v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aget v3, v0, v1
add-int/lit8 v4, v2, -0x2
aget-byte v4, p2, v4
shl-int/lit8 v4, v4, 0x10
and-int/2addr v4, v9
or-int/2addr v3, v4
aput v3, v0, v1
.line 264
:cond_9b
const/4 v0, 0x2
if-le v2, v0, :cond_ac
.line 266
iget-object v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aget v3, v0, v1
add-int/lit8 v2, v2, -0x3
aget-byte v2, p2, v2
shl-int/lit8 v2, v2, 0x18
and-int/2addr v2, v7
or-int/2addr v2, v3
aput v2, v0, v1
.line 268
:cond_ac
invoke-direct {p0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->zeroUnusedBits()V
.line 269
invoke-virtual {p0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->reduceN()V
.line 270
return-void
.end method
.method public constructor <init>(I[I)V
.registers 6
.prologue
const/4 v2, 0x0
.line 211
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 213
if-gtz p1, :cond_7
.line 215
const/4 p1, 0x1
.line 217
:cond_7
add-int/lit8 v0, p1, -0x1
shr-int/lit8 v0, v0, 0x5
add-int/lit8 v0, v0, 0x1
iput v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
.line 218
iget v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
new-array v0, v0, [I
iput-object v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
.line 219
iput p1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
.line 220
iget v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
array-length v1, p2
invoke-static {v0, v1}, Ljava/lang/Math;->min(II)I
move-result v0
.line 221
iget-object v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
invoke-static {p2, v2, v1, v2, v0}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 222
invoke-direct {p0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->zeroUnusedBits()V
.line 223
return-void
.end method
.method public constructor <init>(Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;)V
.registers 3
.prologue
.line 326
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 327
iget v0, p1, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
iput v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
.line 328
iget v0, p1, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
iput v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
.line 329
iget-object v0, p1, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
invoke-static {v0}, Lorg/spongycastle/pqc/math/linearalgebra/IntUtils;->clone([I)[I
move-result-object v0
iput-object v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
.line 330
return-void
.end method
.method private doShiftBlocksLeft(I)V
.registers 7
.prologue
const/4 v1, 0x0
.line 1969
iget v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
iget-object v2, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
array-length v2, v2
if-gt v0, v2, :cond_25
.line 1972
iget v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
add-int/lit8 v0, v0, -0x1
:goto_c
if-lt v0, p1, :cond_1b
.line 1974
iget-object v2, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
iget-object v3, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
sub-int v4, v0, p1
aget v3, v3, v4
aput v3, v2, v0
.line 1972
add-int/lit8 v0, v0, -0x1
goto :goto_c
:cond_1b
move v0, v1
.line 1976
:goto_1c
if-ge v0, p1, :cond_36
.line 1978
iget-object v2, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aput v1, v2, v0
.line 1976
add-int/lit8 v0, v0, 0x1
goto :goto_1c
.line 1983
:cond_25
iget v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
new-array v0, v0, [I
.line 1984
iget-object v2, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
iget v3, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
sub-int/2addr v3, p1
invoke-static {v2, v1, v0, p1, v3}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 1985
const/4 v1, 0x0
iput-object v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
.line 1986
iput-object v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
.line 1988
:cond_36
return-void
.end method
.method private karaMult(Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;)Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;
.registers 10
.prologue
const/4 v3, 0x0
.line 748
new-instance v0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;
iget v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
shl-int/lit8 v1, v1, 0x1
invoke-direct {v0, v1}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;-><init>(I)V
.line 749
iget v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
const/16 v2, 0x20
if-gt v1, v2, :cond_1f
.line 751
iget-object v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aget v1, v1, v3
iget-object v2, p1, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aget v2, v2, v3
invoke-static {v1, v2}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->mult32(II)[I
move-result-object v1
iput-object v1, v0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
.line 794
:goto_1e
return-object v0
.line 754
:cond_1f
iget v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
const/16 v2, 0x40
if-gt v1, v2, :cond_30
.line 756
iget-object v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
iget-object v2, p1, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
invoke-static {v1, v2}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->mult64([I[I)[I
move-result-object v1
iput-object v1, v0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
goto :goto_1e
.line 759
:cond_30
iget v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
const/16 v2, 0x80
if-gt v1, v2, :cond_41
.line 761
iget-object v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
iget-object v2, p1, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
invoke-static {v1, v2}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->mult128([I[I)[I
move-result-object v1
iput-object v1, v0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
goto :goto_1e
.line 764
:cond_41
iget v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
const/16 v2, 0x100
if-gt v1, v2, :cond_52
.line 766
iget-object v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
iget-object v2, p1, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
invoke-static {v1, v2}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->mult256([I[I)[I
move-result-object v1
iput-object v1, v0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
goto :goto_1e
.line 769
:cond_52
iget v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
const/16 v2, 0x200
if-gt v1, v2, :cond_63
.line 771
iget-object v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
iget-object v2, p1, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
invoke-static {v1, v2}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->mult512([I[I)[I
move-result-object v1
iput-object v1, v0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
goto :goto_1e
.line 775
:cond_63
iget v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
add-int/lit8 v1, v1, -0x1
invoke-static {v1}, Lorg/spongycastle/pqc/math/linearalgebra/IntegerFunctions;->floorLog(I)I
move-result v1
.line 776
sget-object v2, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->bitMask:[I
aget v1, v2, v1
.line 778
add-int/lit8 v2, v1, -0x1
shr-int/lit8 v2, v2, 0x5
add-int/lit8 v2, v2, 0x1
invoke-direct {p0, v2}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->lower(I)Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;
move-result-object v2
.line 779
add-int/lit8 v3, v1, -0x1
shr-int/lit8 v3, v3, 0x5
add-int/lit8 v3, v3, 0x1
invoke-direct {p0, v3}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->upper(I)Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;
move-result-object v3
.line 780
add-int/lit8 v4, v1, -0x1
shr-int/lit8 v4, v4, 0x5
add-int/lit8 v4, v4, 0x1
invoke-direct {p1, v4}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->lower(I)Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;
move-result-object v4
.line 781
add-int/lit8 v5, v1, -0x1
shr-int/lit8 v5, v5, 0x5
add-int/lit8 v5, v5, 0x1
invoke-direct {p1, v5}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->upper(I)Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;
move-result-object v5
.line 783
invoke-direct {v3, v5}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->karaMult(Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;)Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;
move-result-object v6
.line 784
invoke-direct {v2, v4}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->karaMult(Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;)Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;
move-result-object v7
.line 785
invoke-virtual {v2, v3}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->addToThis(Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;)V
.line 786
invoke-virtual {v4, v5}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->addToThis(Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;)V
.line 787
invoke-direct {v2, v4}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->karaMult(Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;)Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;
move-result-object v2
.line 789
shl-int/lit8 v3, v1, 0x1
invoke-virtual {v0, v6, v3}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->shiftLeftAddThis(Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;I)V
.line 790
invoke-virtual {v0, v6, v1}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->shiftLeftAddThis(Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;I)V
.line 791
invoke-virtual {v0, v2, v1}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->shiftLeftAddThis(Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;I)V
.line 792
invoke-virtual {v0, v7, v1}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->shiftLeftAddThis(Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;I)V
.line 793
invoke-virtual {v0, v7}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->addToThis(Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;)V
goto/16 :goto_1e
.end method
.method private lower(I)Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;
.registers 7
.prologue
const/4 v4, 0x0
.line 1171
new-instance v0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;
shl-int/lit8 v1, p1, 0x5
invoke-direct {v0, v1}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;-><init>(I)V
.line 1172
iget-object v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
iget-object v2, v0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
iget v3, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
invoke-static {p1, v3}, Ljava/lang/Math;->min(II)I
move-result v3
invoke-static {v1, v4, v2, v4, v3}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 1173
return-object v0
.end method
.method private static mult128([I[I)[I
.registers 12
.prologue
.line 1003
const/16 v0, 0x8
new-array v0, v0, [I
.line 1004
const/4 v1, 0x2
new-array v1, v1, [I
.line 1005
const/4 v2, 0x0
const/4 v3, 0x0
const/4 v4, 0x2
array-length v5, p0
invoke-static {v4, v5}, Ljava/lang/Math;->min(II)I
move-result v4
invoke-static {p0, v2, v1, v3, v4}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 1006
const/4 v2, 0x2
new-array v2, v2, [I
.line 1007
array-length v3, p0
const/4 v4, 0x2
if-le v3, v4, :cond_26
.line 1009
const/4 v3, 0x2
const/4 v4, 0x0
const/4 v5, 0x2
array-length v6, p0
add-int/lit8 v6, v6, -0x2
invoke-static {v5, v6}, Ljava/lang/Math;->min(II)I
move-result v5
invoke-static {p0, v3, v2, v4, v5}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 1011
:cond_26
const/4 v3, 0x2
new-array v3, v3, [I
.line 1012
const/4 v4, 0x0
const/4 v5, 0x0
const/4 v6, 0x2
array-length v7, p1
invoke-static {v6, v7}, Ljava/lang/Math;->min(II)I
move-result v6
invoke-static {p1, v4, v3, v5, v6}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 1013
const/4 v4, 0x2
new-array v4, v4, [I
.line 1014
array-length v5, p1
const/4 v6, 0x2
if-le v5, v6, :cond_48
.line 1016
const/4 v5, 0x2
const/4 v6, 0x0
const/4 v7, 0x2
array-length v8, p1
add-int/lit8 v8, v8, -0x2
invoke-static {v7, v8}, Ljava/lang/Math;->min(II)I
move-result v7
invoke-static {p1, v5, v4, v6, v7}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 1018
:cond_48
const/4 v5, 0x1
aget v5, v2, v5
if-nez v5, :cond_10d
const/4 v5, 0x1
aget v5, v4, v5
if-nez v5, :cond_10d
.line 1020
const/4 v5, 0x0
aget v5, v2, v5
if-nez v5, :cond_5c
const/4 v5, 0x0
aget v5, v4, v5
if-eqz v5, :cond_8a
.line 1022
:cond_5c
const/4 v5, 0x0
aget v5, v2, v5
const/4 v6, 0x0
aget v6, v4, v6
invoke-static {v5, v6}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->mult32(II)[I
move-result-object v5
.line 1023
const/4 v6, 0x5
aget v7, v0, v6
const/4 v8, 0x1
aget v8, v5, v8
xor-int/2addr v7, v8
aput v7, v0, v6
.line 1024
const/4 v6, 0x4
aget v7, v0, v6
const/4 v8, 0x0
aget v8, v5, v8
xor-int/2addr v7, v8
aput v7, v0, v6
.line 1025
const/4 v6, 0x3
aget v7, v0, v6
const/4 v8, 0x1
aget v8, v5, v8
xor-int/2addr v7, v8
aput v7, v0, v6
.line 1026
const/4 v6, 0x2
aget v7, v0, v6
const/4 v8, 0x0
aget v5, v5, v8
xor-int/2addr v5, v7
aput v5, v0, v6
.line 1039
:cond_8a
:goto_8a
const/4 v5, 0x0
aget v6, v2, v5
const/4 v7, 0x0
aget v7, v1, v7
xor-int/2addr v6, v7
aput v6, v2, v5
.line 1040
const/4 v5, 0x1
aget v6, v2, v5
const/4 v7, 0x1
aget v7, v1, v7
xor-int/2addr v6, v7
aput v6, v2, v5
.line 1041
const/4 v5, 0x0
aget v6, v4, v5
const/4 v7, 0x0
aget v7, v3, v7
xor-int/2addr v6, v7
aput v6, v4, v5
.line 1042
const/4 v5, 0x1
aget v6, v4, v5
const/4 v7, 0x1
aget v7, v3, v7
xor-int/2addr v6, v7
aput v6, v4, v5
.line 1043
const/4 v5, 0x1
aget v5, v2, v5
if-nez v5, :cond_151
const/4 v5, 0x1
aget v5, v4, v5
if-nez v5, :cond_151
.line 1045
const/4 v5, 0x0
aget v2, v2, v5
const/4 v5, 0x0
aget v4, v4, v5
invoke-static {v2, v4}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->mult32(II)[I
move-result-object v2
.line 1046
const/4 v4, 0x3
aget v5, v0, v4
const/4 v6, 0x1
aget v6, v2, v6
xor-int/2addr v5, v6
aput v5, v0, v4
.line 1047
const/4 v4, 0x2
aget v5, v0, v4
const/4 v6, 0x0
aget v2, v2, v6
xor-int/2addr v2, v5
aput v2, v0, v4
.line 1057
:goto_d4
const/4 v2, 0x1
aget v2, v1, v2
if-nez v2, :cond_17b
const/4 v2, 0x1
aget v2, v3, v2
if-nez v2, :cond_17b
.line 1059
const/4 v2, 0x0
aget v1, v1, v2
const/4 v2, 0x0
aget v2, v3, v2
invoke-static {v1, v2}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->mult32(II)[I
move-result-object v1
.line 1060
const/4 v2, 0x3
aget v3, v0, v2
const/4 v4, 0x1
aget v4, v1, v4
xor-int/2addr v3, v4
aput v3, v0, v2
.line 1061
const/4 v2, 0x2
aget v3, v0, v2
const/4 v4, 0x0
aget v4, v1, v4
xor-int/2addr v3, v4
aput v3, v0, v2
.line 1062
const/4 v2, 0x1
aget v3, v0, v2
const/4 v4, 0x1
aget v4, v1, v4
xor-int/2addr v3, v4
aput v3, v0, v2
.line 1063
const/4 v2, 0x0
aget v3, v0, v2
const/4 v4, 0x0
aget v1, v1, v4
xor-int/2addr v1, v3
aput v1, v0, v2
.line 1075
:goto_10c
return-object v0
.line 1031
:cond_10d
invoke-static {v2, v4}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->mult64([I[I)[I
move-result-object v5
.line 1032
const/4 v6, 0x7
aget v7, v0, v6
const/4 v8, 0x3
aget v8, v5, v8
xor-int/2addr v7, v8
aput v7, v0, v6
.line 1033
const/4 v6, 0x6
aget v7, v0, v6
const/4 v8, 0x2
aget v8, v5, v8
xor-int/2addr v7, v8
aput v7, v0, v6
.line 1034
const/4 v6, 0x5
aget v7, v0, v6
const/4 v8, 0x1
aget v8, v5, v8
const/4 v9, 0x3
aget v9, v5, v9
xor-int/2addr v8, v9
xor-int/2addr v7, v8
aput v7, v0, v6
.line 1035
const/4 v6, 0x4
aget v7, v0, v6
const/4 v8, 0x0
aget v8, v5, v8
const/4 v9, 0x2
aget v9, v5, v9
xor-int/2addr v8, v9
xor-int/2addr v7, v8
aput v7, v0, v6
.line 1036
const/4 v6, 0x3
aget v7, v0, v6
const/4 v8, 0x1
aget v8, v5, v8
xor-int/2addr v7, v8
aput v7, v0, v6
.line 1037
const/4 v6, 0x2
aget v7, v0, v6
const/4 v8, 0x0
aget v5, v5, v8
xor-int/2addr v5, v7
aput v5, v0, v6
goto/16 :goto_8a
.line 1051
:cond_151
invoke-static {v2, v4}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->mult64([I[I)[I
move-result-object v2
.line 1052
const/4 v4, 0x5
aget v5, v0, v4
const/4 v6, 0x3
aget v6, v2, v6
xor-int/2addr v5, v6
aput v5, v0, v4
.line 1053
const/4 v4, 0x4
aget v5, v0, v4
const/4 v6, 0x2
aget v6, v2, v6
xor-int/2addr v5, v6
aput v5, v0, v4
.line 1054
const/4 v4, 0x3
aget v5, v0, v4
const/4 v6, 0x1
aget v6, v2, v6
xor-int/2addr v5, v6
aput v5, v0, v4
.line 1055
const/4 v4, 0x2
aget v5, v0, v4
const/4 v6, 0x0
aget v2, v2, v6
xor-int/2addr v2, v5
aput v2, v0, v4
goto/16 :goto_d4
.line 1067
:cond_17b
invoke-static {v1, v3}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->mult64([I[I)[I
move-result-object v1
.line 1068
const/4 v2, 0x5
aget v3, v0, v2
const/4 v4, 0x3
aget v4, v1, v4
xor-int/2addr v3, v4
aput v3, v0, v2
.line 1069
const/4 v2, 0x4
aget v3, v0, v2
const/4 v4, 0x2
aget v4, v1, v4
xor-int/2addr v3, v4
aput v3, v0, v2
.line 1070
const/4 v2, 0x3
aget v3, v0, v2
const/4 v4, 0x1
aget v4, v1, v4
const/4 v5, 0x3
aget v5, v1, v5
xor-int/2addr v4, v5
xor-int/2addr v3, v4
aput v3, v0, v2
.line 1071
const/4 v2, 0x2
aget v3, v0, v2
const/4 v4, 0x0
aget v4, v1, v4
const/4 v5, 0x2
aget v5, v1, v5
xor-int/2addr v4, v5
xor-int/2addr v3, v4
aput v3, v0, v2
.line 1072
const/4 v2, 0x1
aget v3, v0, v2
const/4 v4, 0x1
aget v4, v1, v4
xor-int/2addr v3, v4
aput v3, v0, v2
.line 1073
const/4 v2, 0x0
aget v3, v0, v2
const/4 v4, 0x0
aget v1, v1, v4
xor-int/2addr v1, v3
aput v1, v0, v2
goto/16 :goto_10c
.end method
.method private static mult256([I[I)[I
.registers 12
.prologue
.line 908
const/16 v0, 0x10
new-array v0, v0, [I
.line 909
const/4 v1, 0x4
new-array v1, v1, [I
.line 910
const/4 v2, 0x0
const/4 v3, 0x0
const/4 v4, 0x4
array-length v5, p0
invoke-static {v4, v5}, Ljava/lang/Math;->min(II)I
move-result v4
invoke-static {p0, v2, v1, v3, v4}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 911
const/4 v2, 0x4
new-array v2, v2, [I
.line 912
array-length v3, p0
const/4 v4, 0x4
if-le v3, v4, :cond_26
.line 914
const/4 v3, 0x4
const/4 v4, 0x0
const/4 v5, 0x4
array-length v6, p0
add-int/lit8 v6, v6, -0x4
invoke-static {v5, v6}, Ljava/lang/Math;->min(II)I
move-result v5
invoke-static {p0, v3, v2, v4, v5}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 916
:cond_26
const/4 v3, 0x4
new-array v3, v3, [I
.line 917
const/4 v4, 0x0
const/4 v5, 0x0
const/4 v6, 0x4
array-length v7, p1
invoke-static {v6, v7}, Ljava/lang/Math;->min(II)I
move-result v6
invoke-static {p1, v4, v3, v5, v6}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 918
const/4 v4, 0x4
new-array v4, v4, [I
.line 919
array-length v5, p1
const/4 v6, 0x4
if-le v5, v6, :cond_48
.line 921
const/4 v5, 0x4
const/4 v6, 0x0
const/4 v7, 0x4
array-length v8, p1
add-int/lit8 v8, v8, -0x4
invoke-static {v7, v8}, Ljava/lang/Math;->min(II)I
move-result v7
invoke-static {p1, v5, v4, v6, v7}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 923
:cond_48
const/4 v5, 0x3
aget v5, v2, v5
if-nez v5, :cond_20f
const/4 v5, 0x2
aget v5, v2, v5
if-nez v5, :cond_20f
const/4 v5, 0x3
aget v5, v4, v5
if-nez v5, :cond_20f
const/4 v5, 0x2
aget v5, v4, v5
if-nez v5, :cond_20f
.line 925
const/4 v5, 0x1
aget v5, v2, v5
if-nez v5, :cond_1bd
const/4 v5, 0x1
aget v5, v4, v5
if-nez v5, :cond_1bd
.line 927
const/4 v5, 0x0
aget v5, v2, v5
if-nez v5, :cond_70
const/4 v5, 0x0
aget v5, v4, v5
if-eqz v5, :cond_a0
.line 929
:cond_70
const/4 v5, 0x0
aget v5, v2, v5
const/4 v6, 0x0
aget v6, v4, v6
invoke-static {v5, v6}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->mult32(II)[I
move-result-object v5
.line 930
const/16 v6, 0x9
aget v7, v0, v6
const/4 v8, 0x1
aget v8, v5, v8
xor-int/2addr v7, v8
aput v7, v0, v6
.line 931
const/16 v6, 0x8
aget v7, v0, v6
const/4 v8, 0x0
aget v8, v5, v8
xor-int/2addr v7, v8
aput v7, v0, v6
.line 932
const/4 v6, 0x5
aget v7, v0, v6
const/4 v8, 0x1
aget v8, v5, v8
xor-int/2addr v7, v8
aput v7, v0, v6
.line 933
const/4 v6, 0x4
aget v7, v0, v6
const/4 v8, 0x0
aget v5, v5, v8
xor-int/2addr v5, v7
aput v5, v0, v6
.line 965
:cond_a0
:goto_a0
const/4 v5, 0x0
aget v6, v2, v5
const/4 v7, 0x0
aget v7, v1, v7
xor-int/2addr v6, v7
aput v6, v2, v5
.line 966
const/4 v5, 0x1
aget v6, v2, v5
const/4 v7, 0x1
aget v7, v1, v7
xor-int/2addr v6, v7
aput v6, v2, v5
.line 967
const/4 v5, 0x2
aget v6, v2, v5
const/4 v7, 0x2
aget v7, v1, v7
xor-int/2addr v6, v7
aput v6, v2, v5
.line 968
const/4 v5, 0x3
aget v6, v2, v5
const/4 v7, 0x3
aget v7, v1, v7
xor-int/2addr v6, v7
aput v6, v2, v5
.line 969
const/4 v5, 0x0
aget v6, v4, v5
const/4 v7, 0x0
aget v7, v3, v7
xor-int/2addr v6, v7
aput v6, v4, v5
.line 970
const/4 v5, 0x1
aget v6, v4, v5
const/4 v7, 0x1
aget v7, v3, v7
xor-int/2addr v6, v7
aput v6, v4, v5
.line 971
const/4 v5, 0x2
aget v6, v4, v5
const/4 v7, 0x2
aget v7, v3, v7
xor-int/2addr v6, v7
aput v6, v4, v5
.line 972
const/4 v5, 0x3
aget v6, v4, v5
const/4 v7, 0x3
aget v7, v3, v7
xor-int/2addr v6, v7
aput v6, v4, v5
.line 973
invoke-static {v2, v4}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->mult128([I[I)[I
move-result-object v2
.line 974
const/16 v4, 0xb
aget v5, v0, v4
const/4 v6, 0x7
aget v6, v2, v6
xor-int/2addr v5, v6
aput v5, v0, v4
.line 975
const/16 v4, 0xa
aget v5, v0, v4
const/4 v6, 0x6
aget v6, v2, v6
xor-int/2addr v5, v6
aput v5, v0, v4
.line 976
const/16 v4, 0x9
aget v5, v0, v4
const/4 v6, 0x5
aget v6, v2, v6
xor-int/2addr v5, v6
aput v5, v0, v4
.line 977
const/16 v4, 0x8
aget v5, v0, v4
const/4 v6, 0x4
aget v6, v2, v6
xor-int/2addr v5, v6
aput v5, v0, v4
.line 978
const/4 v4, 0x7
aget v5, v0, v4
const/4 v6, 0x3
aget v6, v2, v6
xor-int/2addr v5, v6
aput v5, v0, v4
.line 979
const/4 v4, 0x6
aget v5, v0, v4
const/4 v6, 0x2
aget v6, v2, v6
xor-int/2addr v5, v6
aput v5, v0, v4
.line 980
const/4 v4, 0x5
aget v5, v0, v4
const/4 v6, 0x1
aget v6, v2, v6
xor-int/2addr v5, v6
aput v5, v0, v4
.line 981
const/4 v4, 0x4
aget v5, v0, v4
const/4 v6, 0x0
aget v2, v2, v6
xor-int/2addr v2, v5
aput v2, v0, v4
.line 982
invoke-static {v1, v3}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->mult128([I[I)[I
move-result-object v1
.line 983
const/16 v2, 0xb
aget v3, v0, v2
const/4 v4, 0x7
aget v4, v1, v4
xor-int/2addr v3, v4
aput v3, v0, v2
.line 984
const/16 v2, 0xa
aget v3, v0, v2
const/4 v4, 0x6
aget v4, v1, v4
xor-int/2addr v3, v4
aput v3, v0, v2
.line 985
const/16 v2, 0x9
aget v3, v0, v2
const/4 v4, 0x5
aget v4, v1, v4
xor-int/2addr v3, v4
aput v3, v0, v2
.line 986
const/16 v2, 0x8
aget v3, v0, v2
const/4 v4, 0x4
aget v4, v1, v4
xor-int/2addr v3, v4
aput v3, v0, v2
.line 987
const/4 v2, 0x7
aget v3, v0, v2
const/4 v4, 0x3
aget v4, v1, v4
const/4 v5, 0x7
aget v5, v1, v5
xor-int/2addr v4, v5
xor-int/2addr v3, v4
aput v3, v0, v2
.line 988
const/4 v2, 0x6
aget v3, v0, v2
const/4 v4, 0x2
aget v4, v1, v4
const/4 v5, 0x6
aget v5, v1, v5
xor-int/2addr v4, v5
xor-int/2addr v3, v4
aput v3, v0, v2
.line 989
const/4 v2, 0x5
aget v3, v0, v2
const/4 v4, 0x1
aget v4, v1, v4
const/4 v5, 0x5
aget v5, v1, v5
xor-int/2addr v4, v5
xor-int/2addr v3, v4
aput v3, v0, v2
.line 990
const/4 v2, 0x4
aget v3, v0, v2
const/4 v4, 0x0
aget v4, v1, v4
const/4 v5, 0x4
aget v5, v1, v5
xor-int/2addr v4, v5
xor-int/2addr v3, v4
aput v3, v0, v2
.line 991
const/4 v2, 0x3
aget v3, v0, v2
const/4 v4, 0x3
aget v4, v1, v4
xor-int/2addr v3, v4
aput v3, v0, v2
.line 992
const/4 v2, 0x2
aget v3, v0, v2
const/4 v4, 0x2
aget v4, v1, v4
xor-int/2addr v3, v4
aput v3, v0, v2
.line 993
const/4 v2, 0x1
aget v3, v0, v2
const/4 v4, 0x1
aget v4, v1, v4
xor-int/2addr v3, v4
aput v3, v0, v2
.line 994
const/4 v2, 0x0
aget v3, v0, v2
const/4 v4, 0x0
aget v1, v1, v4
xor-int/2addr v1, v3
aput v1, v0, v2
.line 995
return-object v0
.line 938
:cond_1bd
invoke-static {v2, v4}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->mult64([I[I)[I
move-result-object v5
.line 939
const/16 v6, 0xb
aget v7, v0, v6
const/4 v8, 0x3
aget v8, v5, v8
xor-int/2addr v7, v8
aput v7, v0, v6
.line 940
const/16 v6, 0xa
aget v7, v0, v6
const/4 v8, 0x2
aget v8, v5, v8
xor-int/2addr v7, v8
aput v7, v0, v6
.line 941
const/16 v6, 0x9
aget v7, v0, v6
const/4 v8, 0x1
aget v8, v5, v8
xor-int/2addr v7, v8
aput v7, v0, v6
.line 942
const/16 v6, 0x8
aget v7, v0, v6
const/4 v8, 0x0
aget v8, v5, v8
xor-int/2addr v7, v8
aput v7, v0, v6
.line 943
const/4 v6, 0x7
aget v7, v0, v6
const/4 v8, 0x3
aget v8, v5, v8
xor-int/2addr v7, v8
aput v7, v0, v6
.line 944
const/4 v6, 0x6
aget v7, v0, v6
const/4 v8, 0x2
aget v8, v5, v8
xor-int/2addr v7, v8
aput v7, v0, v6
.line 945
const/4 v6, 0x5
aget v7, v0, v6
const/4 v8, 0x1
aget v8, v5, v8
xor-int/2addr v7, v8
aput v7, v0, v6
.line 946
const/4 v6, 0x4
aget v7, v0, v6
const/4 v8, 0x0
aget v5, v5, v8
xor-int/2addr v5, v7
aput v5, v0, v6
goto/16 :goto_a0
.line 951
:cond_20f
invoke-static {v2, v4}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->mult128([I[I)[I
move-result-object v5
.line 952
const/16 v6, 0xf
aget v7, v0, v6
const/4 v8, 0x7
aget v8, v5, v8
xor-int/2addr v7, v8
aput v7, v0, v6
.line 953
const/16 v6, 0xe
aget v7, v0, v6
const/4 v8, 0x6
aget v8, v5, v8
xor-int/2addr v7, v8
aput v7, v0, v6
.line 954
const/16 v6, 0xd
aget v7, v0, v6
const/4 v8, 0x5
aget v8, v5, v8
xor-int/2addr v7, v8
aput v7, v0, v6
.line 955
const/16 v6, 0xc
aget v7, v0, v6
const/4 v8, 0x4
aget v8, v5, v8
xor-int/2addr v7, v8
aput v7, v0, v6
.line 956
const/16 v6, 0xb
aget v7, v0, v6
const/4 v8, 0x3
aget v8, v5, v8
const/4 v9, 0x7
aget v9, v5, v9
xor-int/2addr v8, v9
xor-int/2addr v7, v8
aput v7, v0, v6
.line 957
const/16 v6, 0xa
aget v7, v0, v6
const/4 v8, 0x2
aget v8, v5, v8
const/4 v9, 0x6
aget v9, v5, v9
xor-int/2addr v8, v9
xor-int/2addr v7, v8
aput v7, v0, v6
.line 958
const/16 v6, 0x9
aget v7, v0, v6
const/4 v8, 0x1
aget v8, v5, v8
const/4 v9, 0x5
aget v9, v5, v9
xor-int/2addr v8, v9
xor-int/2addr v7, v8
aput v7, v0, v6
.line 959
const/16 v6, 0x8
aget v7, v0, v6
const/4 v8, 0x0
aget v8, v5, v8
const/4 v9, 0x4
aget v9, v5, v9
xor-int/2addr v8, v9
xor-int/2addr v7, v8
aput v7, v0, v6
.line 960
const/4 v6, 0x7
aget v7, v0, v6
const/4 v8, 0x3
aget v8, v5, v8
xor-int/2addr v7, v8
aput v7, v0, v6
.line 961
const/4 v6, 0x6
aget v7, v0, v6
const/4 v8, 0x2
aget v8, v5, v8
xor-int/2addr v7, v8
aput v7, v0, v6
.line 962
const/4 v6, 0x5
aget v7, v0, v6
const/4 v8, 0x1
aget v8, v5, v8
xor-int/2addr v7, v8
aput v7, v0, v6
.line 963
const/4 v6, 0x4
aget v7, v0, v6
const/4 v8, 0x0
aget v5, v5, v8
xor-int/2addr v5, v7
aput v5, v0, v6
goto/16 :goto_a0
.end method
.method private static mult32(II)[I
.registers 12
.prologue
const/16 v9, 0x20
const/4 v6, 0x1
.line 1118
const/4 v0, 0x2
new-array v2, v0, [I
.line 1119
if-eqz p0, :cond_a
if-nez p1, :cond_c
:cond_a
move-object v0, v2
.line 1137
:goto_b
return-object v0
.line 1123
:cond_c
int-to-long v0, p1
.line 1124
const-wide v4, 0xffffffffL
and-long/2addr v4, v0
.line 1126
const-wide/16 v0, 0x0
move v3, v6
.line 1127
:goto_16
if-gt v3, v9, :cond_26
.line 1129
sget-object v7, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->bitMask:[I
add-int/lit8 v8, v3, -0x1
aget v7, v7, v8
and-int/2addr v7, p0
if-eqz v7, :cond_22
.line 1131
xor-long/2addr v0, v4
.line 1133
:cond_22
shl-long/2addr v4, v6
.line 1127
add-int/lit8 v3, v3, 0x1
goto :goto_16
.line 1135
:cond_26
ushr-long v4, v0, v9
long-to-int v3, v4
aput v3, v2, v6
.line 1136
const/4 v3, 0x0
long-to-int v0, v0
aput v0, v2, v3
move-object v0, v2
.line 1137
goto :goto_b
.end method
.method private static mult512([I[I)[I
.registers 12
.prologue
.line 802
const/16 v0, 0x20
new-array v0, v0, [I
.line 803
const/16 v1, 0x8
new-array v1, v1, [I
.line 804
const/4 v2, 0x0
const/4 v3, 0x0
const/16 v4, 0x8
array-length v5, p0
invoke-static {v4, v5}, Ljava/lang/Math;->min(II)I
move-result v4
invoke-static {p0, v2, v1, v3, v4}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 805
const/16 v2, 0x8
new-array v2, v2, [I
.line 806
array-length v3, p0
const/16 v4, 0x8
if-le v3, v4, :cond_2c
.line 808
const/16 v3, 0x8
const/4 v4, 0x0
const/16 v5, 0x8
array-length v6, p0
add-int/lit8 v6, v6, -0x8
invoke-static {v5, v6}, Ljava/lang/Math;->min(II)I
move-result v5
invoke-static {p0, v3, v2, v4, v5}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 810
:cond_2c
const/16 v3, 0x8
new-array v3, v3, [I
.line 811
const/4 v4, 0x0
const/4 v5, 0x0
const/16 v6, 0x8
array-length v7, p1
invoke-static {v6, v7}, Ljava/lang/Math;->min(II)I
move-result v6
invoke-static {p1, v4, v3, v5, v6}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 812
const/16 v4, 0x8
new-array v4, v4, [I
.line 813
array-length v5, p1
const/16 v6, 0x8
if-le v5, v6, :cond_54
.line 815
const/16 v5, 0x8
const/4 v6, 0x0
const/16 v7, 0x8
array-length v8, p1
add-int/lit8 v8, v8, -0x8
invoke-static {v7, v8}, Ljava/lang/Math;->min(II)I
move-result v7
invoke-static {p1, v5, v4, v6, v7}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 817
:cond_54
invoke-static {v2, v4}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->mult256([I[I)[I
move-result-object v5
.line 818
const/16 v6, 0x1f
aget v7, v0, v6
const/16 v8, 0xf
aget v8, v5, v8
xor-int/2addr v7, v8
aput v7, v0, v6
.line 819
const/16 v6, 0x1e
aget v7, v0, v6
const/16 v8, 0xe
aget v8, v5, v8
xor-int/2addr v7, v8
aput v7, v0, v6
.line 820
const/16 v6, 0x1d
aget v7, v0, v6
const/16 v8, 0xd
aget v8, v5, v8
xor-int/2addr v7, v8
aput v7, v0, v6
.line 821
const/16 v6, 0x1c
aget v7, v0, v6
const/16 v8, 0xc
aget v8, v5, v8
xor-int/2addr v7, v8
aput v7, v0, v6
.line 822
const/16 v6, 0x1b
aget v7, v0, v6
const/16 v8, 0xb
aget v8, v5, v8
xor-int/2addr v7, v8
aput v7, v0, v6
.line 823
const/16 v6, 0x1a
aget v7, v0, v6
const/16 v8, 0xa
aget v8, v5, v8
xor-int/2addr v7, v8
aput v7, v0, v6
.line 824
const/16 v6, 0x19
aget v7, v0, v6
const/16 v8, 0x9
aget v8, v5, v8
xor-int/2addr v7, v8
aput v7, v0, v6
.line 825
const/16 v6, 0x18
aget v7, v0, v6
const/16 v8, 0x8
aget v8, v5, v8
xor-int/2addr v7, v8
aput v7, v0, v6
.line 826
const/16 v6, 0x17
aget v7, v0, v6
const/4 v8, 0x7
aget v8, v5, v8
const/16 v9, 0xf
aget v9, v5, v9
xor-int/2addr v8, v9
xor-int/2addr v7, v8
aput v7, v0, v6
.line 827
const/16 v6, 0x16
aget v7, v0, v6
const/4 v8, 0x6
aget v8, v5, v8
const/16 v9, 0xe
aget v9, v5, v9
xor-int/2addr v8, v9
xor-int/2addr v7, v8
aput v7, v0, v6
.line 828
const/16 v6, 0x15
aget v7, v0, v6
const/4 v8, 0x5
aget v8, v5, v8
const/16 v9, 0xd
aget v9, v5, v9
xor-int/2addr v8, v9
xor-int/2addr v7, v8
aput v7, v0, v6
.line 829
const/16 v6, 0x14
aget v7, v0, v6
const/4 v8, 0x4
aget v8, v5, v8
const/16 v9, 0xc
aget v9, v5, v9
xor-int/2addr v8, v9
xor-int/2addr v7, v8
aput v7, v0, v6
.line 830
const/16 v6, 0x13
aget v7, v0, v6
const/4 v8, 0x3
aget v8, v5, v8
const/16 v9, 0xb
aget v9, v5, v9
xor-int/2addr v8, v9
xor-int/2addr v7, v8
aput v7, v0, v6
.line 831
const/16 v6, 0x12
aget v7, v0, v6
const/4 v8, 0x2
aget v8, v5, v8
const/16 v9, 0xa
aget v9, v5, v9
xor-int/2addr v8, v9
xor-int/2addr v7, v8
aput v7, v0, v6
.line 832
const/16 v6, 0x11
aget v7, v0, v6
const/4 v8, 0x1
aget v8, v5, v8
const/16 v9, 0x9
aget v9, v5, v9
xor-int/2addr v8, v9
xor-int/2addr v7, v8
aput v7, v0, v6
.line 833
const/16 v6, 0x10
aget v7, v0, v6
const/4 v8, 0x0
aget v8, v5, v8
const/16 v9, 0x8
aget v9, v5, v9
xor-int/2addr v8, v9
xor-int/2addr v7, v8
aput v7, v0, v6
.line 834
const/16 v6, 0xf
aget v7, v0, v6
const/4 v8, 0x7
aget v8, v5, v8
xor-int/2addr v7, v8
aput v7, v0, v6
.line 835
const/16 v6, 0xe
aget v7, v0, v6
const/4 v8, 0x6
aget v8, v5, v8
xor-int/2addr v7, v8
aput v7, v0, v6
.line 836
const/16 v6, 0xd
aget v7, v0, v6
const/4 v8, 0x5
aget v8, v5, v8
xor-int/2addr v7, v8
aput v7, v0, v6
.line 837
const/16 v6, 0xc
aget v7, v0, v6
const/4 v8, 0x4
aget v8, v5, v8
xor-int/2addr v7, v8
aput v7, v0, v6
.line 838
const/16 v6, 0xb
aget v7, v0, v6
const/4 v8, 0x3
aget v8, v5, v8
xor-int/2addr v7, v8
aput v7, v0, v6
.line 839
const/16 v6, 0xa
aget v7, v0, v6
const/4 v8, 0x2
aget v8, v5, v8
xor-int/2addr v7, v8
aput v7, v0, v6
.line 840
const/16 v6, 0x9
aget v7, v0, v6
const/4 v8, 0x1
aget v8, v5, v8
xor-int/2addr v7, v8
aput v7, v0, v6
.line 841
const/16 v6, 0x8
aget v7, v0, v6
const/4 v8, 0x0
aget v5, v5, v8
xor-int/2addr v5, v7
aput v5, v0, v6
.line 842
const/4 v5, 0x0
aget v6, v2, v5
const/4 v7, 0x0
aget v7, v1, v7
xor-int/2addr v6, v7
aput v6, v2, v5
.line 843
const/4 v5, 0x1
aget v6, v2, v5
const/4 v7, 0x1
aget v7, v1, v7
xor-int/2addr v6, v7
aput v6, v2, v5
.line 844
const/4 v5, 0x2
aget v6, v2, v5
const/4 v7, 0x2
aget v7, v1, v7
xor-int/2addr v6, v7
aput v6, v2, v5
.line 845
const/4 v5, 0x3
aget v6, v2, v5
const/4 v7, 0x3
aget v7, v1, v7
xor-int/2addr v6, v7
aput v6, v2, v5
.line 846
const/4 v5, 0x4
aget v6, v2, v5
const/4 v7, 0x4
aget v7, v1, v7
xor-int/2addr v6, v7
aput v6, v2, v5
.line 847
const/4 v5, 0x5
aget v6, v2, v5
const/4 v7, 0x5
aget v7, v1, v7
xor-int/2addr v6, v7
aput v6, v2, v5
.line 848
const/4 v5, 0x6
aget v6, v2, v5
const/4 v7, 0x6
aget v7, v1, v7
xor-int/2addr v6, v7
aput v6, v2, v5
.line 849
const/4 v5, 0x7
aget v6, v2, v5
const/4 v7, 0x7
aget v7, v1, v7
xor-int/2addr v6, v7
aput v6, v2, v5
.line 850
const/4 v5, 0x0
aget v6, v4, v5
const/4 v7, 0x0
aget v7, v3, v7
xor-int/2addr v6, v7
aput v6, v4, v5
.line 851
const/4 v5, 0x1
aget v6, v4, v5
const/4 v7, 0x1
aget v7, v3, v7
xor-int/2addr v6, v7
aput v6, v4, v5
.line 852
const/4 v5, 0x2
aget v6, v4, v5
const/4 v7, 0x2
aget v7, v3, v7
xor-int/2addr v6, v7
aput v6, v4, v5
.line 853
const/4 v5, 0x3
aget v6, v4, v5
const/4 v7, 0x3
aget v7, v3, v7
xor-int/2addr v6, v7
aput v6, v4, v5
.line 854
const/4 v5, 0x4
aget v6, v4, v5
const/4 v7, 0x4
aget v7, v3, v7
xor-int/2addr v6, v7
aput v6, v4, v5
.line 855
const/4 v5, 0x5
aget v6, v4, v5
const/4 v7, 0x5
aget v7, v3, v7
xor-int/2addr v6, v7
aput v6, v4, v5
.line 856
const/4 v5, 0x6
aget v6, v4, v5
const/4 v7, 0x6
aget v7, v3, v7
xor-int/2addr v6, v7
aput v6, v4, v5
.line 857
const/4 v5, 0x7
aget v6, v4, v5
const/4 v7, 0x7
aget v7, v3, v7
xor-int/2addr v6, v7
aput v6, v4, v5
.line 858
invoke-static {v2, v4}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->mult256([I[I)[I
move-result-object v2
.line 859
const/16 v4, 0x17
aget v5, v0, v4
const/16 v6, 0xf
aget v6, v2, v6
xor-int/2addr v5, v6
aput v5, v0, v4
.line 860
const/16 v4, 0x16
aget v5, v0, v4
const/16 v6, 0xe
aget v6, v2, v6
xor-int/2addr v5, v6
aput v5, v0, v4
.line 861
const/16 v4, 0x15
aget v5, v0, v4
const/16 v6, 0xd
aget v6, v2, v6
xor-int/2addr v5, v6
aput v5, v0, v4
.line 862
const/16 v4, 0x14
aget v5, v0, v4
const/16 v6, 0xc
aget v6, v2, v6
xor-int/2addr v5, v6
aput v5, v0, v4
.line 863
const/16 v4, 0x13
aget v5, v0, v4
const/16 v6, 0xb
aget v6, v2, v6
xor-int/2addr v5, v6
aput v5, v0, v4
.line 864
const/16 v4, 0x12
aget v5, v0, v4
const/16 v6, 0xa
aget v6, v2, v6
xor-int/2addr v5, v6
aput v5, v0, v4
.line 865
const/16 v4, 0x11
aget v5, v0, v4
const/16 v6, 0x9
aget v6, v2, v6
xor-int/2addr v5, v6
aput v5, v0, v4
.line 866
const/16 v4, 0x10
aget v5, v0, v4
const/16 v6, 0x8
aget v6, v2, v6
xor-int/2addr v5, v6
aput v5, v0, v4
.line 867
const/16 v4, 0xf
aget v5, v0, v4
const/4 v6, 0x7
aget v6, v2, v6
xor-int/2addr v5, v6
aput v5, v0, v4
.line 868
const/16 v4, 0xe
aget v5, v0, v4
const/4 v6, 0x6
aget v6, v2, v6
xor-int/2addr v5, v6
aput v5, v0, v4
.line 869
const/16 v4, 0xd
aget v5, v0, v4
const/4 v6, 0x5
aget v6, v2, v6
xor-int/2addr v5, v6
aput v5, v0, v4
.line 870
const/16 v4, 0xc
aget v5, v0, v4
const/4 v6, 0x4
aget v6, v2, v6
xor-int/2addr v5, v6
aput v5, v0, v4
.line 871
const/16 v4, 0xb
aget v5, v0, v4
const/4 v6, 0x3
aget v6, v2, v6
xor-int/2addr v5, v6
aput v5, v0, v4
.line 872
const/16 v4, 0xa
aget v5, v0, v4
const/4 v6, 0x2
aget v6, v2, v6
xor-int/2addr v5, v6
aput v5, v0, v4
.line 873
const/16 v4, 0x9
aget v5, v0, v4
const/4 v6, 0x1
aget v6, v2, v6
xor-int/2addr v5, v6
aput v5, v0, v4
.line 874
const/16 v4, 0x8
aget v5, v0, v4
const/4 v6, 0x0
aget v2, v2, v6
xor-int/2addr v2, v5
aput v2, v0, v4
.line 875
invoke-static {v1, v3}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->mult256([I[I)[I
move-result-object v1
.line 876
const/16 v2, 0x17
aget v3, v0, v2
const/16 v4, 0xf
aget v4, v1, v4
xor-int/2addr v3, v4
aput v3, v0, v2
.line 877
const/16 v2, 0x16
aget v3, v0, v2
const/16 v4, 0xe
aget v4, v1, v4
xor-int/2addr v3, v4
aput v3, v0, v2
.line 878
const/16 v2, 0x15
aget v3, v0, v2
const/16 v4, 0xd
aget v4, v1, v4
xor-int/2addr v3, v4
aput v3, v0, v2
.line 879
const/16 v2, 0x14
aget v3, v0, v2
const/16 v4, 0xc
aget v4, v1, v4
xor-int/2addr v3, v4
aput v3, v0, v2
.line 880
const/16 v2, 0x13
aget v3, v0, v2
const/16 v4, 0xb
aget v4, v1, v4
xor-int/2addr v3, v4
aput v3, v0, v2
.line 881
const/16 v2, 0x12
aget v3, v0, v2
const/16 v4, 0xa
aget v4, v1, v4
xor-int/2addr v3, v4
aput v3, v0, v2
.line 882
const/16 v2, 0x11
aget v3, v0, v2
const/16 v4, 0x9
aget v4, v1, v4
xor-int/2addr v3, v4
aput v3, v0, v2
.line 883
const/16 v2, 0x10
aget v3, v0, v2
const/16 v4, 0x8
aget v4, v1, v4
xor-int/2addr v3, v4
aput v3, v0, v2
.line 884
const/16 v2, 0xf
aget v3, v0, v2
const/4 v4, 0x7
aget v4, v1, v4
const/16 v5, 0xf
aget v5, v1, v5
xor-int/2addr v4, v5
xor-int/2addr v3, v4
aput v3, v0, v2
.line 885
const/16 v2, 0xe
aget v3, v0, v2
const/4 v4, 0x6
aget v4, v1, v4
const/16 v5, 0xe
aget v5, v1, v5
xor-int/2addr v4, v5
xor-int/2addr v3, v4
aput v3, v0, v2
.line 886
const/16 v2, 0xd
aget v3, v0, v2
const/4 v4, 0x5
aget v4, v1, v4
const/16 v5, 0xd
aget v5, v1, v5
xor-int/2addr v4, v5
xor-int/2addr v3, v4
aput v3, v0, v2
.line 887
const/16 v2, 0xc
aget v3, v0, v2
const/4 v4, 0x4
aget v4, v1, v4
const/16 v5, 0xc
aget v5, v1, v5
xor-int/2addr v4, v5
xor-int/2addr v3, v4
aput v3, v0, v2
.line 888
const/16 v2, 0xb
aget v3, v0, v2
const/4 v4, 0x3
aget v4, v1, v4
const/16 v5, 0xb
aget v5, v1, v5
xor-int/2addr v4, v5
xor-int/2addr v3, v4
aput v3, v0, v2
.line 889
const/16 v2, 0xa
aget v3, v0, v2
const/4 v4, 0x2
aget v4, v1, v4
const/16 v5, 0xa
aget v5, v1, v5
xor-int/2addr v4, v5
xor-int/2addr v3, v4
aput v3, v0, v2
.line 890
const/16 v2, 0x9
aget v3, v0, v2
const/4 v4, 0x1
aget v4, v1, v4
const/16 v5, 0x9
aget v5, v1, v5
xor-int/2addr v4, v5
xor-int/2addr v3, v4
aput v3, v0, v2
.line 891
const/16 v2, 0x8
aget v3, v0, v2
const/4 v4, 0x0
aget v4, v1, v4
const/16 v5, 0x8
aget v5, v1, v5
xor-int/2addr v4, v5
xor-int/2addr v3, v4
aput v3, v0, v2
.line 892
const/4 v2, 0x7
aget v3, v0, v2
const/4 v4, 0x7
aget v4, v1, v4
xor-int/2addr v3, v4
aput v3, v0, v2
.line 893
const/4 v2, 0x6
aget v3, v0, v2
const/4 v4, 0x6
aget v4, v1, v4
xor-int/2addr v3, v4
aput v3, v0, v2
.line 894
const/4 v2, 0x5
aget v3, v0, v2
const/4 v4, 0x5
aget v4, v1, v4
xor-int/2addr v3, v4
aput v3, v0, v2
.line 895
const/4 v2, 0x4
aget v3, v0, v2
const/4 v4, 0x4
aget v4, v1, v4
xor-int/2addr v3, v4
aput v3, v0, v2
.line 896
const/4 v2, 0x3
aget v3, v0, v2
const/4 v4, 0x3
aget v4, v1, v4
xor-int/2addr v3, v4
aput v3, v0, v2
.line 897
const/4 v2, 0x2
aget v3, v0, v2
const/4 v4, 0x2
aget v4, v1, v4
xor-int/2addr v3, v4
aput v3, v0, v2
.line 898
const/4 v2, 0x1
aget v3, v0, v2
const/4 v4, 0x1
aget v4, v1, v4
xor-int/2addr v3, v4
aput v3, v0, v2
.line 899
const/4 v2, 0x0
aget v3, v0, v2
const/4 v4, 0x0
aget v1, v1, v4
xor-int/2addr v1, v3
aput v1, v0, v2
.line 900
return-object v0
.end method
.method private static mult64([I[I)[I
.registers 14
.prologue
const/4 v11, 0x2
const/4 v1, 0x0
const/4 v10, 0x1
.line 1083
const/4 v0, 0x4
new-array v3, v0, [I
.line 1084
aget v4, p0, v1
.line 1086
array-length v0, p0
if-le v0, v10, :cond_68
.line 1088
aget v0, p0, v10
.line 1090
:goto_d
aget v5, p1, v1
.line 1092
array-length v2, p1
if-le v2, v10, :cond_66
.line 1094
aget v2, p1, v10
.line 1096
:goto_14
if-nez v0, :cond_18
if-eqz v2, :cond_35
.line 1098
:cond_18
invoke-static {v0, v2}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->mult32(II)[I
move-result-object v6
.line 1099
const/4 v7, 0x3
aget v8, v3, v7
aget v9, v6, v10
xor-int/2addr v8, v9
aput v8, v3, v7
.line 1100
aget v7, v3, v11
aget v8, v6, v1
aget v9, v6, v10
xor-int/2addr v8, v9
xor-int/2addr v7, v8
aput v7, v3, v11
.line 1101
aget v7, v3, v10
aget v6, v6, v1
xor-int/2addr v6, v7
aput v6, v3, v10
.line 1103
:cond_35
xor-int/2addr v0, v4
xor-int/2addr v2, v5
invoke-static {v0, v2}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->mult32(II)[I
move-result-object v0
.line 1104
aget v2, v3, v11
aget v6, v0, v10
xor-int/2addr v2, v6
aput v2, v3, v11
.line 1105
aget v2, v3, v10
aget v0, v0, v1
xor-int/2addr v0, v2
aput v0, v3, v10
.line 1106
invoke-static {v4, v5}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->mult32(II)[I
move-result-object v0
.line 1107
aget v2, v3, v11
aget v4, v0, v10
xor-int/2addr v2, v4
aput v2, v3, v11
.line 1108
aget v2, v3, v10
aget v4, v0, v1
aget v5, v0, v10
xor-int/2addr v4, v5
xor-int/2addr v2, v4
aput v2, v3, v10
.line 1109
aget v2, v3, v1
aget v0, v0, v1
xor-int/2addr v0, v2
aput v0, v3, v1
.line 1110
return-object v3
:cond_66
move v2, v1
goto :goto_14
:cond_68
move v0, v1
goto :goto_d
.end method
.method private upper(I)Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;
.registers 7
.prologue
.line 1151
iget v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
sub-int/2addr v0, p1
invoke-static {p1, v0}, Ljava/lang/Math;->min(II)I
move-result v0
.line 1152
new-instance v1, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;
shl-int/lit8 v2, v0, 0x5
invoke-direct {v1, v2}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;-><init>(I)V
.line 1153
iget v2, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
if-lt v2, p1, :cond_1a
.line 1155
iget-object v2, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
iget-object v3, v1, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
const/4 v4, 0x0
invoke-static {v2, p1, v3, v4, v0}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 1157
:cond_1a
return-object v1
.end method
.method private zeroUnusedBits()V
.registers 6
.prologue
.line 1717
iget v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
and-int/lit8 v0, v0, 0x1f
if-eqz v0, :cond_19
.line 1719
iget-object v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
iget v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
add-int/lit8 v1, v1, -0x1
aget v2, v0, v1
sget-object v3, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->reverseRightMask:[I
iget v4, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
and-int/lit8 v4, v4, 0x1f
aget v3, v3, v4
and-int/2addr v2, v3
aput v2, v0, v1
.line 1721
:cond_19
return-void
.end method
# virtual methods
.method public add(Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;)Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;
.registers 3
.prologue
.line 643
invoke-virtual {p0, p1}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->xor(Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;)Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;
move-result-object v0
return-object v0
.end method
.method public addToThis(Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;)V
.registers 3
.prologue
.line 630
iget v0, p1, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
invoke-virtual {p0, v0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->expandN(I)V
.line 631
invoke-virtual {p0, p1}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->xorThisBy(Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;)V
.line 632
return-void
.end method
.method public assignAll()V
.registers 4
.prologue
.line 491
const/4 v0, 0x0
:goto_1
iget v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
if-ge v0, v1, :cond_d
.line 493
iget-object v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
const/4 v2, -0x1
aput v2, v1, v0
.line 491
add-int/lit8 v0, v0, 0x1
goto :goto_1
.line 495
:cond_d
invoke-direct {p0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->zeroUnusedBits()V
.line 496
return-void
.end method
.method public assignOne()V
.registers 5
.prologue
const/4 v1, 0x1
const/4 v3, 0x0
.line 465
move v0, v1
:goto_3
iget v2, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
if-ge v0, v2, :cond_e
.line 467
iget-object v2, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aput v3, v2, v0
.line 465
add-int/lit8 v0, v0, 0x1
goto :goto_3
.line 469
:cond_e
iget-object v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aput v1, v0, v3
.line 470
return-void
.end method
.method public assignX()V
.registers 4
.prologue
const/4 v2, 0x0
.line 478
const/4 v0, 0x1
:goto_2
iget v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
if-ge v0, v1, :cond_d
.line 480
iget-object v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aput v2, v1, v0
.line 478
add-int/lit8 v0, v0, 0x1
goto :goto_2
.line 482
:cond_d
iget-object v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
const/4 v1, 0x2
aput v1, v0, v2
.line 483
return-void
.end method
.method public assignZero()V
.registers 4
.prologue
const/4 v1, 0x0
.line 504
move v0, v1
:goto_2
iget v2, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
if-ge v0, v2, :cond_d
.line 506
iget-object v2, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aput v1, v2, v0
.line 504
add-int/lit8 v0, v0, 0x1
goto :goto_2
.line 508
:cond_d
return-void
.end method
.method public clone()Ljava/lang/Object;
.registers 2
.prologue
.line 337
new-instance v0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;
invoke-direct {v0, p0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;-><init>(Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;)V
return-object v0
.end method
.method public divide(Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;)[Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;
.registers 10
.prologue
const/4 v7, 0x1
const/4 v6, 0x0
.line 1264
const/4 v0, 0x2
new-array v0, v0, [Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;
.line 1265
new-instance v2, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;
iget v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
invoke-direct {v2, v1}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;-><init>(I)V
.line 1266
new-instance v3, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;
invoke-direct {v3, p0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;-><init>(Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;)V
.line 1267
new-instance v4, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;
invoke-direct {v4, p1}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;-><init>(Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;)V
.line 1270
invoke-virtual {v4}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->isZero()Z
move-result v1
if-eqz v1, :cond_22
.line 1272
new-instance v0, Ljava/lang/RuntimeException;
invoke-direct {v0}, Ljava/lang/RuntimeException;-><init>()V
throw v0
.line 1274
:cond_22
invoke-virtual {v3}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->reduceN()V
.line 1275
invoke-virtual {v4}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->reduceN()V
.line 1276
iget v1, v3, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
iget v5, v4, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
if-ge v1, v5, :cond_38
.line 1278
new-instance v1, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;
invoke-direct {v1, v6}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;-><init>(I)V
aput-object v1, v0, v6
.line 1279
aput-object v3, v0, v7
.line 1296
:goto_37
return-object v0
.line 1282
:cond_38
iget v1, v3, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
iget v5, v4, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
sub-int/2addr v1, v5
.line 1283
add-int/lit8 v5, v1, 0x1
invoke-virtual {v2, v5}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->expandN(I)V
.line 1285
:goto_42
if-ltz v1, :cond_57
.line 1287
invoke-virtual {v4, v1}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->shiftLeft(I)Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;
move-result-object v5
.line 1288
invoke-virtual {v3, v5}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->subtractFromThis(Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;)V
.line 1289
invoke-virtual {v3}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->reduceN()V
.line 1290
invoke-virtual {v2, v1}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->xorBit(I)V
.line 1291
iget v1, v3, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
iget v5, v4, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
sub-int/2addr v1, v5
goto :goto_42
.line 1294
:cond_57
aput-object v2, v0, v6
.line 1295
aput-object v3, v0, v7
goto :goto_37
.end method
.method public equals(Ljava/lang/Object;)Z
.registers 6
.prologue
const/4 v1, 0x0
.line 549
if-eqz p1, :cond_7
instance-of v0, p1, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;
if-nez v0, :cond_8
.line 567
:cond_7
:goto_7
return v1
.line 554
:cond_8
check-cast p1, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;
.line 556
iget v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
iget v2, p1, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
if-ne v0, v2, :cond_7
move v0, v1
.line 560
:goto_11
iget v2, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
if-ge v0, v2, :cond_22
.line 562
iget-object v2, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aget v2, v2, v0
iget-object v3, p1, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aget v3, v3, v0
if-ne v2, v3, :cond_7
.line 560
add-int/lit8 v0, v0, 0x1
goto :goto_11
.line 567
:cond_22
const/4 v1, 0x1
goto :goto_7
.end method
.method public expandN(I)V
.registers 7
.prologue
const/4 v4, 0x0
.line 1524
iget v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
if-lt v0, p1, :cond_6
.line 1549
:cond_5
:goto_5
return-void
.line 1528
:cond_6
iput p1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
.line 1529
add-int/lit8 v0, p1, -0x1
ushr-int/lit8 v0, v0, 0x5
add-int/lit8 v1, v0, 0x1
.line 1530
iget v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
if-ge v0, v1, :cond_5
.line 1534
iget-object v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
array-length v0, v0
if-lt v0, v1, :cond_25
.line 1537
iget v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
:goto_19
if-ge v0, v1, :cond_22
.line 1539
iget-object v2, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aput v4, v2, v0
.line 1537
add-int/lit8 v0, v0, 0x1
goto :goto_19
.line 1541
:cond_22
iput v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
goto :goto_5
.line 1544
:cond_25
new-array v0, v1, [I
.line 1545
iget-object v2, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
iget v3, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
invoke-static {v2, v4, v0, v4, v3}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 1546
iput v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
.line 1547
const/4 v1, 0x0
iput-object v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
.line 1548
iput-object v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
goto :goto_5
.end method
.method public gcd(Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;)Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;
.registers 6
.prologue
.line 1310
invoke-virtual {p0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->isZero()Z
move-result v0
if-eqz v0, :cond_14
invoke-virtual {p1}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->isZero()Z
move-result v0
if-eqz v0, :cond_14
.line 1312
new-instance v0, Ljava/lang/ArithmeticException;
const-string v1, "Both operands of gcd equal zero."
invoke-direct {v0, v1}, Ljava/lang/ArithmeticException;-><init>(Ljava/lang/String;)V
throw v0
.line 1314
:cond_14
invoke-virtual {p0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->isZero()Z
move-result v0
if-eqz v0, :cond_20
.line 1316
new-instance v0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;
invoke-direct {v0, p1}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;-><init>(Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;)V
.line 1333
:cond_1f
:goto_1f
return-object v0
.line 1318
:cond_20
invoke-virtual {p1}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->isZero()Z
move-result v0
if-eqz v0, :cond_2c
.line 1320
new-instance v0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;
invoke-direct {v0, p0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;-><init>(Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;)V
goto :goto_1f
.line 1322
:cond_2c
new-instance v0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;
invoke-direct {v0, p0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;-><init>(Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;)V
.line 1323
new-instance v1, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;
invoke-direct {v1, p1}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;-><init>(Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;)V
.line 1326
:goto_36
invoke-virtual {v1}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->isZero()Z
move-result v2
if-nez v2, :cond_1f
.line 1328
invoke-virtual {v0, v1}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->remainder(Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;)Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;
move-result-object v0
move-object v3, v1
move-object v1, v0
move-object v0, v3
.line 1330
goto :goto_36
.end method
.method public getBit(I)I
.registers 6
.prologue
const/4 v0, 0x0
.line 1749
if-gez p1, :cond_9
.line 1751
new-instance v0, Ljava/lang/RuntimeException;
invoke-direct {v0}, Ljava/lang/RuntimeException;-><init>()V
throw v0
.line 1753
:cond_9
iget v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
add-int/lit8 v1, v1, -0x1
if-le p1, v1, :cond_10
.line 1757
:cond_f
:goto_f
return v0
:cond_10
iget-object v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
ushr-int/lit8 v2, p1, 0x5
aget v1, v1, v2
sget-object v2, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->bitMask:[I
and-int/lit8 v3, p1, 0x1f
aget v2, v2, v3
and-int/2addr v1, v2
if-eqz v1, :cond_f
const/4 v0, 0x1
goto :goto_f
.end method
.method public getLength()I
.registers 2
.prologue
.line 348
iget v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
return v0
.end method
.method public hashCode()I
.registers 3
.prologue
.line 575
iget v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
iget-object v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
invoke-virtual {v1}, Ljava/lang/Object;->hashCode()I
move-result v1
add-int/2addr v0, v1
return v0
.end method
.method public increase()Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;
.registers 2
.prologue
.line 687
new-instance v0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;
invoke-direct {v0, p0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;-><init>(Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;)V
.line 688
invoke-virtual {v0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->increaseThis()V
.line 689
return-object v0
.end method
.method public increaseThis()V
.registers 2
.prologue
.line 676
const/4 v0, 0x0
invoke-virtual {p0, v0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->xorBit(I)V
.line 677
return-void
.end method
.method public isIrreducible()Z
.registers 10
.prologue
const/4 v1, 0x1
const/4 v0, 0x0
.line 1349
invoke-virtual {p0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->isZero()Z
move-result v2
if-eqz v2, :cond_9
.line 1380
:cond_8
:goto_8
return v0
.line 1353
:cond_9
new-instance v4, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;
invoke-direct {v4, p0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;-><init>(Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;)V
.line 1357
invoke-virtual {v4}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->reduceN()V
.line 1358
iget v2, v4, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
add-int/lit8 v5, v2, -0x1
.line 1359
new-instance v2, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;
iget v3, v4, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
const-string v6, "X"
invoke-direct {v2, v3, v6}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;-><init>(ILjava/lang/String;)V
move v3, v1
.line 1361
:goto_1f
shr-int/lit8 v6, v5, 0x1
if-gt v3, v6, :cond_4a
.line 1363
invoke-virtual {v2}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->squareThisPreCalc()V
.line 1364
invoke-virtual {v2, v4}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->remainder(Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;)Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;
move-result-object v2
.line 1365
new-instance v6, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;
const/16 v7, 0x20
const-string v8, "X"
invoke-direct {v6, v7, v8}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;-><init>(ILjava/lang/String;)V
invoke-virtual {v2, v6}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->add(Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;)Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;
move-result-object v6
.line 1366
invoke-virtual {v6}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->isZero()Z
move-result v7
if-nez v7, :cond_8
.line 1368
invoke-virtual {v4, v6}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->gcd(Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;)Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;
move-result-object v6
.line 1369
invoke-virtual {v6}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->isOne()Z
move-result v6
if-eqz v6, :cond_8
.line 1361
add-int/lit8 v3, v3, 0x1
goto :goto_1f
:cond_4a
move v0, v1
.line 1380
goto :goto_8
.end method
.method public isOne()Z
.registers 5
.prologue
const/4 v1, 0x1
const/4 v2, 0x0
.line 608
move v0, v1
:goto_3
iget v3, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
if-ge v0, v3, :cond_12
.line 610
iget-object v3, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aget v3, v3, v0
if-eqz v3, :cond_f
move v1, v2
.line 619
:cond_e
:goto_e
return v1
.line 608
:cond_f
add-int/lit8 v0, v0, 0x1
goto :goto_3
.line 615
:cond_12
iget-object v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aget v0, v0, v2
if-eq v0, v1, :cond_e
move v1, v2
.line 617
goto :goto_e
.end method
.method public isZero()Z
.registers 5
.prologue
const/4 v2, 0x1
const/4 v1, 0x0
.line 586
iget v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
if-nez v0, :cond_8
move v1, v2
.line 597
:cond_7
:goto_7
return v1
:cond_8
move v0, v1
.line 590
:goto_9
iget v3, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
if-ge v0, v3, :cond_16
.line 592
iget-object v3, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aget v3, v3, v0
if-nez v3, :cond_7
.line 590
add-int/lit8 v0, v0, 0x1
goto :goto_9
:cond_16
move v1, v2
.line 597
goto :goto_7
.end method
.method public multiply(Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;)Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;
.registers 4
.prologue
.line 737
iget v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
iget v1, p1, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
invoke-static {v0, v1}, Ljava/lang/Math;->max(II)I
move-result v0
.line 738
invoke-virtual {p0, v0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->expandN(I)V
.line 739
invoke-virtual {p1, v0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->expandN(I)V
.line 740
invoke-direct {p0, p1}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->karaMult(Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;)Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;
move-result-object v0
return-object v0
.end method
.method public multiplyClassic(Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;)Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;
.registers 10
.prologue
const/16 v7, 0x1f
const/4 v1, 0x0
.line 702
new-instance v3, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;
iget v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
iget v2, p1, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
invoke-static {v0, v2}, Ljava/lang/Math;->max(II)I
move-result v0
shl-int/lit8 v0, v0, 0x1
invoke-direct {v3, v0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;-><init>(I)V
.line 703
const/16 v0, 0x20
new-array v4, v0, [Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;
.line 705
new-instance v0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;
invoke-direct {v0, p0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;-><init>(Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;)V
aput-object v0, v4, v1
.line 706
const/4 v0, 0x1
:goto_1e
if-gt v0, v7, :cond_2d
.line 708
add-int/lit8 v2, v0, -0x1
aget-object v2, v4, v2
invoke-virtual {v2}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->shiftLeft()Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;
move-result-object v2
aput-object v2, v4, v0
.line 706
add-int/lit8 v0, v0, 0x1
goto :goto_1e
:cond_2d
move v0, v1
.line 710
:goto_2e
iget v2, p1, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
if-ge v0, v2, :cond_56
move v2, v1
.line 712
:goto_33
if-gt v2, v7, :cond_48
.line 714
iget-object v5, p1, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aget v5, v5, v0
sget-object v6, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->bitMask:[I
aget v6, v6, v2
and-int/2addr v5, v6
if-eqz v5, :cond_45
.line 716
aget-object v5, v4, v2
invoke-virtual {v3, v5}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->xorThisBy(Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;)V
.line 712
:cond_45
add-int/lit8 v2, v2, 0x1
goto :goto_33
:cond_48
move v2, v1
.line 719
:goto_49
if-gt v2, v7, :cond_53
.line 721
aget-object v5, v4, v2
invoke-virtual {v5}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->shiftBlocksLeft()V
.line 719
add-int/lit8 v2, v2, 0x1
goto :goto_49
.line 710
:cond_53
add-int/lit8 v0, v0, 0x1
goto :goto_2e
.line 724
:cond_56
return-object v3
.end method
.method public quotient(Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;)Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;
.registers 7
.prologue
.line 1223
new-instance v0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;
iget v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
invoke-direct {v0, v1}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;-><init>(I)V
.line 1224
new-instance v2, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;
invoke-direct {v2, p0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;-><init>(Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;)V
.line 1225
new-instance v3, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;
invoke-direct {v3, p1}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;-><init>(Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;)V
.line 1228
invoke-virtual {v3}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->isZero()Z
move-result v1
if-eqz v1, :cond_1d
.line 1230
new-instance v0, Ljava/lang/RuntimeException;
invoke-direct {v0}, Ljava/lang/RuntimeException;-><init>()V
throw v0
.line 1232
:cond_1d
invoke-virtual {v2}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->reduceN()V
.line 1233
invoke-virtual {v3}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->reduceN()V
.line 1234
iget v1, v2, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
iget v4, v3, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
if-ge v1, v4, :cond_30
.line 1236
new-instance v0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;
const/4 v1, 0x0
invoke-direct {v0, v1}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;-><init>(I)V
.line 1250
:cond_2f
return-object v0
.line 1238
:cond_30
iget v1, v2, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
iget v4, v3, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
sub-int/2addr v1, v4
.line 1239
add-int/lit8 v4, v1, 0x1
invoke-virtual {v0, v4}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->expandN(I)V
.line 1241
:goto_3a
if-ltz v1, :cond_2f
.line 1243
invoke-virtual {v3, v1}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->shiftLeft(I)Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;
move-result-object v4
.line 1244
invoke-virtual {v2, v4}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->subtractFromThis(Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;)V
.line 1245
invoke-virtual {v2}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->reduceN()V
.line 1246
invoke-virtual {v0, v1}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->xorBit(I)V
.line 1247
iget v1, v2, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
iget v4, v3, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
sub-int/2addr v1, v4
goto :goto_3a
.end method
.method public randomize()V
.registers 4
.prologue
.line 516
const/4 v0, 0x0
:goto_1
iget v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
if-ge v0, v1, :cond_12
.line 518
iget-object v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
sget-object v2, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->rand:Ljava/util/Random;
invoke-virtual {v2}, Ljava/util/Random;->nextInt()I
move-result v2
aput v2, v1, v0
.line 516
add-int/lit8 v0, v0, 0x1
goto :goto_1
.line 520
:cond_12
invoke-direct {p0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->zeroUnusedBits()V
.line 521
return-void
.end method
.method public randomize(Ljava/util/Random;)V
.registers 5
.prologue
.line 532
const/4 v0, 0x0
:goto_1
iget v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
if-ge v0, v1, :cond_10
.line 534
iget-object v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
invoke-virtual {p1}, Ljava/util/Random;->nextInt()I
move-result v2
aput v2, v1, v0
.line 532
add-int/lit8 v0, v0, 0x1
goto :goto_1
.line 536
:cond_10
invoke-direct {p0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->zeroUnusedBits()V
.line 537
return-void
.end method
.method public reduceN()V
.registers 4
.prologue
.line 1498
iget v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
add-int/lit8 v0, v0, -0x1
.line 1499
:goto_4
iget-object v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aget v1, v1, v0
if-nez v1, :cond_f
if-lez v0, :cond_f
.line 1501
add-int/lit8 v0, v0, -0x1
goto :goto_4
.line 1503
:cond_f
iget-object v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aget v1, v1, v0
.line 1504
const/4 v2, 0x0
.line 1505
:goto_14
if-eqz v1, :cond_1b
.line 1507
ushr-int/lit8 v1, v1, 0x1
.line 1508
add-int/lit8 v2, v2, 0x1
goto :goto_14
.line 1510
:cond_1b
shl-int/lit8 v1, v0, 0x5
add-int/2addr v1, v2
iput v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
.line 1511
add-int/lit8 v0, v0, 0x1
iput v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
.line 1512
return-void
.end method
.method reducePentanomial(I[I)V
.registers 23
.prologue
.line 1445
ushr-int/lit8 v3, p1, 0x5
.line 1446
and-int/lit8 v2, p1, 0x1f
rsub-int/lit8 v4, v2, 0x20
.line 1447
const/4 v2, 0x0
aget v2, p2, v2
sub-int v2, p1, v2
ushr-int/lit8 v5, v2, 0x5
.line 1448
const/4 v2, 0x0
aget v2, p2, v2
sub-int v2, p1, v2
and-int/lit8 v2, v2, 0x1f
rsub-int/lit8 v6, v2, 0x20
.line 1449
const/4 v2, 0x1
aget v2, p2, v2
sub-int v2, p1, v2
ushr-int/lit8 v7, v2, 0x5
.line 1450
const/4 v2, 0x1
aget v2, p2, v2
sub-int v2, p1, v2
and-int/lit8 v2, v2, 0x1f
rsub-int/lit8 v8, v2, 0x20
.line 1451
const/4 v2, 0x2
aget v2, p2, v2
sub-int v2, p1, v2
ushr-int/lit8 v9, v2, 0x5
.line 1452
const/4 v2, 0x2
aget v2, p2, v2
sub-int v2, p1, v2
and-int/lit8 v2, v2, 0x1f
rsub-int/lit8 v10, v2, 0x20
.line 1453
shl-int/lit8 v2, p1, 0x1
add-int/lit8 v2, v2, -0x2
ushr-int/lit8 v2, v2, 0x5
.line 1455
:goto_3c
if-le v2, v3, :cond_ff
.line 1457
move-object/from16 v0, p0
iget-object v11, v0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aget v11, v11, v2
int-to-long v12, v11
const-wide v14, 0xffffffffL
and-long/2addr v12, v14
.line 1458
move-object/from16 v0, p0
iget-object v11, v0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
sub-int v14, v2, v3
add-int/lit8 v14, v14, -0x1
aget v15, v11, v14
shl-long v16, v12, v4
move-wide/from16 v0, v16
long-to-int v0, v0
move/from16 v16, v0
xor-int v15, v15, v16
aput v15, v11, v14
.line 1459
move-object/from16 v0, p0
iget-object v11, v0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
sub-int v14, v2, v3
aget v15, v11, v14
int-to-long v0, v15
move-wide/from16 v16, v0
rsub-int/lit8 v15, v4, 0x20
ushr-long v18, v12, v15
xor-long v16, v16, v18
move-wide/from16 v0, v16
long-to-int v15, v0
aput v15, v11, v14
.line 1460
move-object/from16 v0, p0
iget-object v11, v0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
sub-int v14, v2, v5
add-int/lit8 v14, v14, -0x1
aget v15, v11, v14
shl-long v16, v12, v6
move-wide/from16 v0, v16
long-to-int v0, v0
move/from16 v16, v0
xor-int v15, v15, v16
aput v15, v11, v14
.line 1461
move-object/from16 v0, p0
iget-object v11, v0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
sub-int v14, v2, v5
aget v15, v11, v14
int-to-long v0, v15
move-wide/from16 v16, v0
rsub-int/lit8 v15, v6, 0x20
ushr-long v18, v12, v15
xor-long v16, v16, v18
move-wide/from16 v0, v16
long-to-int v15, v0
aput v15, v11, v14
.line 1462
move-object/from16 v0, p0
iget-object v11, v0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
sub-int v14, v2, v7
add-int/lit8 v14, v14, -0x1
aget v15, v11, v14
shl-long v16, v12, v8
move-wide/from16 v0, v16
long-to-int v0, v0
move/from16 v16, v0
xor-int v15, v15, v16
aput v15, v11, v14
.line 1463
move-object/from16 v0, p0
iget-object v11, v0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
sub-int v14, v2, v7
aget v15, v11, v14
int-to-long v0, v15
move-wide/from16 v16, v0
rsub-int/lit8 v15, v8, 0x20
ushr-long v18, v12, v15
xor-long v16, v16, v18
move-wide/from16 v0, v16
long-to-int v15, v0
aput v15, v11, v14
.line 1464
move-object/from16 v0, p0
iget-object v11, v0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
sub-int v14, v2, v9
add-int/lit8 v14, v14, -0x1
aget v15, v11, v14
shl-long v16, v12, v10
move-wide/from16 v0, v16
long-to-int v0, v0
move/from16 v16, v0
xor-int v15, v15, v16
aput v15, v11, v14
.line 1465
move-object/from16 v0, p0
iget-object v11, v0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
sub-int v14, v2, v9
aget v15, v11, v14
int-to-long v0, v15
move-wide/from16 v16, v0
rsub-int/lit8 v15, v10, 0x20
ushr-long/2addr v12, v15
xor-long v12, v12, v16
long-to-int v12, v12
aput v12, v11, v14
.line 1466
move-object/from16 v0, p0
iget-object v11, v0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
const/4 v12, 0x0
aput v12, v11, v2
.line 1455
add-int/lit8 v2, v2, -0x1
goto/16 :goto_3c
.line 1468
:cond_ff
move-object/from16 v0, p0
iget-object v2, v0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aget v2, v2, v3
int-to-long v12, v2
const-wide v14, 0xffffffffL
and-long/2addr v12, v14
const-wide v14, 0xffffffffL
and-int/lit8 v2, p1, 0x1f
shl-long/2addr v14, v2
and-long/2addr v12, v14
.line 1469
move-object/from16 v0, p0
iget-object v2, v0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
const/4 v11, 0x0
aget v14, v2, v11
int-to-long v14, v14
rsub-int/lit8 v4, v4, 0x20
ushr-long v16, v12, v4
xor-long v14, v14, v16
long-to-int v4, v14
aput v4, v2, v11
.line 1470
sub-int v2, v3, v5
add-int/lit8 v2, v2, -0x1
if-ltz v2, :cond_13c
.line 1472
move-object/from16 v0, p0
iget-object v2, v0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
sub-int v4, v3, v5
add-int/lit8 v4, v4, -0x1
aget v11, v2, v4
shl-long v14, v12, v6
long-to-int v14, v14
xor-int/2addr v11, v14
aput v11, v2, v4
.line 1474
:cond_13c
move-object/from16 v0, p0
iget-object v2, v0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
sub-int v4, v3, v5
aget v5, v2, v4
int-to-long v14, v5
rsub-int/lit8 v5, v6, 0x20
ushr-long v16, v12, v5
xor-long v14, v14, v16
long-to-int v5, v14
aput v5, v2, v4
.line 1475
sub-int v2, v3, v7
add-int/lit8 v2, v2, -0x1
if-ltz v2, :cond_164
.line 1477
move-object/from16 v0, p0
iget-object v2, v0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
sub-int v4, v3, v7
add-int/lit8 v4, v4, -0x1
aget v5, v2, v4
shl-long v14, v12, v8
long-to-int v6, v14
xor-int/2addr v5, v6
aput v5, v2, v4
.line 1479
:cond_164
move-object/from16 v0, p0
iget-object v2, v0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
sub-int v4, v3, v7
aget v5, v2, v4
int-to-long v6, v5
rsub-int/lit8 v5, v8, 0x20
ushr-long v14, v12, v5
xor-long/2addr v6, v14
long-to-int v5, v6
aput v5, v2, v4
.line 1480
sub-int v2, v3, v9
add-int/lit8 v2, v2, -0x1
if-ltz v2, :cond_18b
.line 1482
move-object/from16 v0, p0
iget-object v2, v0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
sub-int v4, v3, v9
add-int/lit8 v4, v4, -0x1
aget v5, v2, v4
shl-long v6, v12, v10
long-to-int v6, v6
xor-int/2addr v5, v6
aput v5, v2, v4
.line 1484
:cond_18b
move-object/from16 v0, p0
iget-object v2, v0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
sub-int v4, v3, v9
aget v5, v2, v4
int-to-long v6, v5
rsub-int/lit8 v5, v10, 0x20
ushr-long v8, v12, v5
xor-long/2addr v6, v8
long-to-int v5, v6
aput v5, v2, v4
.line 1485
move-object/from16 v0, p0
iget-object v2, v0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aget v4, v2, v3
sget-object v5, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->reverseRightMask:[I
and-int/lit8 v6, p1, 0x1f
aget v5, v5, v6
and-int/2addr v4, v5
aput v4, v2, v3
.line 1487
add-int/lit8 v2, p1, -0x1
ushr-int/lit8 v2, v2, 0x5
add-int/lit8 v2, v2, 0x1
move-object/from16 v0, p0
iput v2, v0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
.line 1488
move/from16 v0, p1
move-object/from16 v1, p0
iput v0, v1, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
.line 1489
return-void
.end method
.method reduceTrinomial(II)V
.registers 17
.prologue
.line 1396
ushr-int/lit8 v1, p1, 0x5
.line 1397
and-int/lit8 v0, p1, 0x1f
rsub-int/lit8 v2, v0, 0x20
.line 1398
sub-int v0, p1, p2
ushr-int/lit8 v3, v0, 0x5
.line 1399
sub-int v0, p1, p2
and-int/lit8 v0, v0, 0x1f
rsub-int/lit8 v4, v0, 0x20
.line 1400
shl-int/lit8 v0, p1, 0x1
add-int/lit8 v0, v0, -0x2
ushr-int/lit8 v0, v0, 0x5
.line 1402
:goto_16
if-le v0, v1, :cond_64
.line 1406
iget-object v5, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aget v5, v5, v0
int-to-long v6, v5
const-wide v8, 0xffffffffL
and-long/2addr v6, v8
.line 1408
iget-object v5, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
sub-int v8, v0, v1
add-int/lit8 v8, v8, -0x1
aget v9, v5, v8
shl-long v10, v6, v2
long-to-int v10, v10
xor-int/2addr v9, v10
aput v9, v5, v8
.line 1410
iget-object v5, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
sub-int v8, v0, v1
aget v9, v5, v8
int-to-long v10, v9
rsub-int/lit8 v9, v2, 0x20
ushr-long v12, v6, v9
xor-long/2addr v10, v12
long-to-int v9, v10
aput v9, v5, v8
.line 1412
iget-object v5, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
sub-int v8, v0, v3
add-int/lit8 v8, v8, -0x1
aget v9, v5, v8
shl-long v10, v6, v4
long-to-int v10, v10
xor-int/2addr v9, v10
aput v9, v5, v8
.line 1414
iget-object v5, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
sub-int v8, v0, v3
aget v9, v5, v8
int-to-long v10, v9
rsub-int/lit8 v9, v4, 0x20
ushr-long/2addr v6, v9
xor-long/2addr v6, v10
long-to-int v6, v6
aput v6, v5, v8
.line 1415
iget-object v5, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
const/4 v6, 0x0
aput v6, v5, v0
.line 1402
add-int/lit8 v0, v0, -0x1
goto :goto_16
.line 1418
:cond_64
iget-object v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aget v0, v0, v1
int-to-long v6, v0
const-wide v8, 0xffffffffL
and-long/2addr v6, v8
const-wide v8, 0xffffffffL
and-int/lit8 v0, p1, 0x1f
shl-long/2addr v8, v0
and-long/2addr v6, v8
.line 1420
iget-object v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
const/4 v5, 0x0
aget v8, v0, v5
int-to-long v8, v8
rsub-int/lit8 v2, v2, 0x20
ushr-long v10, v6, v2
xor-long/2addr v8, v10
long-to-int v2, v8
aput v2, v0, v5
.line 1421
sub-int v0, v1, v3
add-int/lit8 v0, v0, -0x1
if-ltz v0, :cond_9a
.line 1423
iget-object v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
sub-int v2, v1, v3
add-int/lit8 v2, v2, -0x1
aget v5, v0, v2
shl-long v8, v6, v4
long-to-int v8, v8
xor-int/2addr v5, v8
aput v5, v0, v2
.line 1425
:cond_9a
iget-object v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
sub-int v2, v1, v3
aget v3, v0, v2
int-to-long v8, v3
rsub-int/lit8 v3, v4, 0x20
ushr-long v4, v6, v3
xor-long/2addr v4, v8
long-to-int v3, v4
aput v3, v0, v2
.line 1427
iget-object v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aget v2, v0, v1
sget-object v3, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->reverseRightMask:[I
and-int/lit8 v4, p1, 0x1f
aget v3, v3, v4
and-int/2addr v2, v3
aput v2, v0, v1
.line 1428
add-int/lit8 v0, p1, -0x1
ushr-int/lit8 v0, v0, 0x5
add-int/lit8 v0, v0, 0x1
iput v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
.line 1429
iput p1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
.line 1430
return-void
.end method
.method public remainder(Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;)Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;
.registers 6
.prologue
.line 1187
new-instance v0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;
invoke-direct {v0, p0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;-><init>(Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;)V
.line 1188
new-instance v1, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;
invoke-direct {v1, p1}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;-><init>(Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;)V
.line 1191
invoke-virtual {v1}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->isZero()Z
move-result v2
if-eqz v2, :cond_16
.line 1193
new-instance v0, Ljava/lang/RuntimeException;
invoke-direct {v0}, Ljava/lang/RuntimeException;-><init>()V
throw v0
.line 1195
:cond_16
invoke-virtual {v0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->reduceN()V
.line 1196
invoke-virtual {v1}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->reduceN()V
.line 1197
iget v2, v0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
iget v3, v1, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
if-ge v2, v3, :cond_23
.line 1209
:cond_22
return-object v0
.line 1201
:cond_23
:goto_23
iget v2, v0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
iget v3, v1, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
sub-int/2addr v2, v3
.line 1202
if-ltz v2, :cond_22
.line 1204
invoke-virtual {v1, v2}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->shiftLeft(I)Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;
move-result-object v2
.line 1205
invoke-virtual {v0, v2}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->subtractFromThis(Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;)V
.line 1206
invoke-virtual {v0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->reduceN()V
goto :goto_23
.end method
.method public resetBit(I)V
.registers 7
.prologue
.line 1769
if-gez p1, :cond_8
.line 1771
new-instance v0, Ljava/lang/RuntimeException;
invoke-direct {v0}, Ljava/lang/RuntimeException;-><init>()V
throw v0
.line 1773
:cond_8
iget v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
add-int/lit8 v0, v0, -0x1
if-le p1, v0, :cond_f
.line 1778
:goto_e
return-void
.line 1777
:cond_f
iget-object v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
ushr-int/lit8 v1, p1, 0x5
aget v2, v0, v1
sget-object v3, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->bitMask:[I
and-int/lit8 v4, p1, 0x1f
aget v3, v3, v4
xor-int/lit8 v3, v3, -0x1
and-int/2addr v2, v3
aput v2, v0, v1
goto :goto_e
.end method
.method public setBit(I)V
.registers 7
.prologue
.line 1732
if-ltz p1, :cond_8
iget v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
add-int/lit8 v0, v0, -0x1
if-le p1, v0, :cond_e
.line 1734
:cond_8
new-instance v0, Ljava/lang/RuntimeException;
invoke-direct {v0}, Ljava/lang/RuntimeException;-><init>()V
throw v0
.line 1736
:cond_e
iget-object v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
ushr-int/lit8 v1, p1, 0x5
aget v2, v0, v1
sget-object v3, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->bitMask:[I
and-int/lit8 v4, p1, 0x1f
aget v3, v3, v4
or-int/2addr v2, v3
aput v2, v0, v1
.line 1737
return-void
.end method
.method shiftBlocksLeft()V
.registers 6
.prologue
const/4 v4, 0x0
.line 1940
iget v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
add-int/lit8 v0, v0, 0x1
iput v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
.line 1941
iget v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
add-int/lit8 v0, v0, 0x20
iput v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
.line 1942
iget v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
iget-object v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
array-length v1, v1
if-gt v0, v1, :cond_2c
.line 1945
iget v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
add-int/lit8 v0, v0, -0x1
:goto_18
if-lez v0, :cond_27
.line 1947
iget-object v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
iget-object v2, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
add-int/lit8 v3, v0, -0x1
aget v2, v2, v3
aput v2, v1, v0
.line 1945
add-int/lit8 v0, v0, -0x1
goto :goto_18
.line 1949
:cond_27
iget-object v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aput v4, v0, v4
.line 1958
:goto_2b
return-void
.line 1953
:cond_2c
iget v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
new-array v0, v0, [I
.line 1954
iget-object v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
const/4 v2, 0x1
iget v3, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
add-int/lit8 v3, v3, -0x1
invoke-static {v1, v4, v0, v2, v3}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 1955
const/4 v1, 0x0
iput-object v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
.line 1956
iput-object v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
goto :goto_2b
.end method
.method public shiftLeft()Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;
.registers 7
.prologue
.line 1823
new-instance v1, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;
iget v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
add-int/lit8 v0, v0, 0x1
iget-object v2, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
invoke-direct {v1, v0, v2}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;-><init>(I[I)V
.line 1825
iget v0, v1, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
add-int/lit8 v0, v0, -0x1
:goto_f
if-lez v0, :cond_2b
.line 1827
iget-object v2, v1, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aget v3, v2, v0
shl-int/lit8 v3, v3, 0x1
aput v3, v2, v0
.line 1828
iget-object v2, v1, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aget v3, v2, v0
iget-object v4, v1, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
add-int/lit8 v5, v0, -0x1
aget v4, v4, v5
ushr-int/lit8 v4, v4, 0x1f
or-int/2addr v3, v4
aput v3, v2, v0
.line 1825
add-int/lit8 v0, v0, -0x1
goto :goto_f
.line 1830
:cond_2b
iget-object v0, v1, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
const/4 v2, 0x0
aget v3, v0, v2
shl-int/lit8 v3, v3, 0x1
aput v3, v0, v2
.line 1831
return-object v1
.end method
.method public shiftLeft(I)Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;
.registers 9
.prologue
.line 1884
new-instance v1, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;
iget v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
add-int/2addr v0, p1
iget-object v2, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
invoke-direct {v1, v0, v2}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;-><init>(I[I)V
.line 1886
const/16 v0, 0x20
if-lt p1, v0, :cond_13
.line 1888
ushr-int/lit8 v0, p1, 0x5
invoke-direct {v1, v0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->doShiftBlocksLeft(I)V
.line 1891
:cond_13
and-int/lit8 v2, p1, 0x1f
.line 1892
if-eqz v2, :cond_40
.line 1894
iget v0, v1, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
add-int/lit8 v0, v0, -0x1
:goto_1b
if-lez v0, :cond_37
.line 1896
iget-object v3, v1, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aget v4, v3, v0
shl-int/2addr v4, v2
aput v4, v3, v0
.line 1897
iget-object v3, v1, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aget v4, v3, v0
iget-object v5, v1, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
add-int/lit8 v6, v0, -0x1
aget v5, v5, v6
rsub-int/lit8 v6, v2, 0x20
ushr-int/2addr v5, v6
or-int/2addr v4, v5
aput v4, v3, v0
.line 1894
add-int/lit8 v0, v0, -0x1
goto :goto_1b
.line 1899
:cond_37
iget-object v0, v1, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
const/4 v3, 0x0
aget v4, v0, v3
shl-int v2, v4, v2
aput v2, v0, v3
.line 1901
:cond_40
return-object v1
.end method
.method public shiftLeftAddThis(Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;I)V
.registers 10
.prologue
.line 1914
if-nez p2, :cond_6
.line 1916
invoke-virtual {p0, p1}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->addToThis(Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;)V
.line 1930
:cond_5
return-void
.line 1920
:cond_6
iget v0, p1, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
add-int/2addr v0, p2
invoke-virtual {p0, v0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->expandN(I)V
.line 1921
ushr-int/lit8 v1, p2, 0x5
.line 1922
iget v0, p1, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
add-int/lit8 v0, v0, -0x1
:goto_12
if-ltz v0, :cond_5
.line 1924
add-int v2, v0, v1
add-int/lit8 v2, v2, 0x1
iget v3, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
if-ge v2, v3, :cond_34
and-int/lit8 v2, p2, 0x1f
if-eqz v2, :cond_34
.line 1926
iget-object v2, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
add-int v3, v0, v1
add-int/lit8 v3, v3, 0x1
aget v4, v2, v3
iget-object v5, p1, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aget v5, v5, v0
and-int/lit8 v6, p2, 0x1f
rsub-int/lit8 v6, v6, 0x20
ushr-int/2addr v5, v6
xor-int/2addr v4, v5
aput v4, v2, v3
.line 1928
:cond_34
iget-object v2, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
add-int v3, v0, v1
aget v4, v2, v3
iget-object v5, p1, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aget v5, v5, v0
and-int/lit8 v6, p2, 0x1f
shl-int/2addr v5, v6
xor-int/2addr v4, v5
aput v4, v2, v3
.line 1922
add-int/lit8 v0, v0, -0x1
goto :goto_12
.end method
.method public shiftLeftThis()V
.registers 7
.prologue
const/4 v5, 0x0
.line 1841
iget v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
and-int/lit8 v0, v0, 0x1f
if-nez v0, :cond_4d
.line 1843
iget v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
add-int/lit8 v0, v0, 0x1
iput v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
.line 1844
iget v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
add-int/lit8 v0, v0, 0x1
iput v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
.line 1845
iget v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
iget-object v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
array-length v1, v1
if-le v0, v1, :cond_2b
.line 1847
iget v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
new-array v0, v0, [I
.line 1848
iget-object v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
iget-object v2, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
array-length v2, v2
invoke-static {v1, v5, v0, v5, v2}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 1849
const/4 v1, 0x0
iput-object v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
.line 1850
iput-object v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
.line 1852
:cond_2b
iget v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
add-int/lit8 v0, v0, -0x1
:goto_2f
if-lez v0, :cond_7b
.line 1854
iget-object v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aget v2, v1, v0
iget-object v3, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
add-int/lit8 v4, v0, -0x1
aget v3, v3, v4
ushr-int/lit8 v3, v3, 0x1f
or-int/2addr v2, v3
aput v2, v1, v0
.line 1855
iget-object v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
add-int/lit8 v2, v0, -0x1
aget v3, v1, v2
shl-int/lit8 v3, v3, 0x1
aput v3, v1, v2
.line 1852
add-int/lit8 v0, v0, -0x1
goto :goto_2f
.line 1860
:cond_4d
iget v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
add-int/lit8 v0, v0, 0x1
iput v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
.line 1861
iget v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
add-int/lit8 v0, v0, -0x1
:goto_57
if-lez v0, :cond_73
.line 1863
iget-object v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aget v2, v1, v0
shl-int/lit8 v2, v2, 0x1
aput v2, v1, v0
.line 1864
iget-object v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aget v2, v1, v0
iget-object v3, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
add-int/lit8 v4, v0, -0x1
aget v3, v3, v4
ushr-int/lit8 v3, v3, 0x1f
or-int/2addr v2, v3
aput v2, v1, v0
.line 1861
add-int/lit8 v0, v0, -0x1
goto :goto_57
.line 1866
:cond_73
iget-object v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aget v1, v0, v5
shl-int/lit8 v1, v1, 0x1
aput v1, v0, v5
.line 1868
:cond_7b
return-void
.end method
.method public shiftRight()Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;
.registers 7
.prologue
const/4 v0, 0x0
.line 1997
new-instance v1, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;
iget v2, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
add-int/lit8 v2, v2, -0x1
invoke-direct {v1, v2}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;-><init>(I)V
.line 1999
iget-object v2, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
iget-object v3, v1, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
iget v4, v1, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
invoke-static {v2, v0, v3, v0, v4}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 2000
:goto_13
iget v2, v1, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
add-int/lit8 v2, v2, -0x2
if-gt v0, v2, :cond_33
.line 2002
iget-object v2, v1, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aget v3, v2, v0
ushr-int/lit8 v3, v3, 0x1
aput v3, v2, v0
.line 2003
iget-object v2, v1, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aget v3, v2, v0
iget-object v4, v1, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
add-int/lit8 v5, v0, 0x1
aget v4, v4, v5
shl-int/lit8 v4, v4, 0x1f
or-int/2addr v3, v4
aput v3, v2, v0
.line 2000
add-int/lit8 v0, v0, 0x1
goto :goto_13
.line 2005
:cond_33
iget-object v0, v1, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
iget v2, v1, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
add-int/lit8 v2, v2, -0x1
aget v3, v0, v2
ushr-int/lit8 v3, v3, 0x1
aput v3, v0, v2
.line 2006
iget v0, v1, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
iget v2, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
if-ge v0, v2, :cond_58
.line 2008
iget-object v0, v1, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
iget v2, v1, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
add-int/lit8 v2, v2, -0x1
aget v3, v0, v2
iget-object v4, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
iget v5, v1, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
aget v4, v4, v5
shl-int/lit8 v4, v4, 0x1f
or-int/2addr v3, v4
aput v3, v0, v2
.line 2010
:cond_58
return-object v1
.end method
.method public shiftRightThis()V
.registers 6
.prologue
.line 2019
iget v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
add-int/lit8 v0, v0, -0x1
iput v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
.line 2020
iget v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
add-int/lit8 v0, v0, -0x1
ushr-int/lit8 v0, v0, 0x5
add-int/lit8 v0, v0, 0x1
iput v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
.line 2021
const/4 v0, 0x0
:goto_11
iget v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
add-int/lit8 v1, v1, -0x2
if-gt v0, v1, :cond_31
.line 2023
iget-object v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aget v2, v1, v0
ushr-int/lit8 v2, v2, 0x1
aput v2, v1, v0
.line 2024
iget-object v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aget v2, v1, v0
iget-object v3, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
add-int/lit8 v4, v0, 0x1
aget v3, v3, v4
shl-int/lit8 v3, v3, 0x1f
or-int/2addr v2, v3
aput v2, v1, v0
.line 2021
add-int/lit8 v0, v0, 0x1
goto :goto_11
.line 2026
:cond_31
iget-object v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
iget v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
add-int/lit8 v1, v1, -0x1
aget v2, v0, v1
ushr-int/lit8 v2, v2, 0x1
aput v2, v0, v1
.line 2027
iget v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
and-int/lit8 v0, v0, 0x1f
if-nez v0, :cond_56
.line 2029
iget-object v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
iget v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
add-int/lit8 v1, v1, -0x1
aget v2, v0, v1
iget-object v3, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
iget v4, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
aget v3, v3, v4
shl-int/lit8 v3, v3, 0x1f
or-int/2addr v2, v3
aput v2, v0, v1
.line 2031
:cond_56
return-void
.end method
.method public squareThisBitwise()V
.registers 8
.prologue
.line 1561
invoke-virtual {p0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->isZero()Z
move-result v0
if-eqz v0, :cond_7
.line 1588
:goto_6
return-void
.line 1565
:cond_7
iget v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
shl-int/lit8 v0, v0, 0x1
new-array v4, v0, [I
.line 1566
iget v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
add-int/lit8 v0, v0, -0x1
move v3, v0
:goto_12
if-ltz v3, :cond_42
.line 1568
iget-object v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aget v2, v0, v3
.line 1569
const/4 v1, 0x1
.line 1570
const/4 v0, 0x0
:goto_1a
const/16 v5, 0x10
if-ge v0, v5, :cond_3e
.line 1572
and-int/lit8 v5, v2, 0x1
if-eqz v5, :cond_29
.line 1574
shl-int/lit8 v5, v3, 0x1
aget v6, v4, v5
or-int/2addr v6, v1
aput v6, v4, v5
.line 1576
:cond_29
const/high16 v5, 0x10000
and-int/2addr v5, v2
if-eqz v5, :cond_37
.line 1578
shl-int/lit8 v5, v3, 0x1
add-int/lit8 v5, v5, 0x1
aget v6, v4, v5
or-int/2addr v6, v1
aput v6, v4, v5
.line 1580
:cond_37
shl-int/lit8 v1, v1, 0x2
.line 1581
ushr-int/lit8 v2, v2, 0x1
.line 1570
add-int/lit8 v0, v0, 0x1
goto :goto_1a
.line 1566
:cond_3e
add-int/lit8 v0, v3, -0x1
move v3, v0
goto :goto_12
.line 1584
:cond_42
const/4 v0, 0x0
iput-object v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
.line 1585
iput-object v4, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
.line 1586
array-length v0, v4
iput v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
.line 1587
iget v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
shl-int/lit8 v0, v0, 0x1
add-int/lit8 v0, v0, -0x1
iput v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
goto :goto_6
.end method
.method public squareThisPreCalc()V
.registers 8
.prologue
const/high16 v6, -0x1000000
.line 1597
invoke-virtual {p0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->isZero()Z
move-result v0
if-eqz v0, :cond_9
.line 1628
:goto_8
return-void
.line 1601
:cond_9
iget-object v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
array-length v0, v0
iget v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
shl-int/lit8 v1, v1, 0x1
if-lt v0, v1, :cond_6b
.line 1603
iget v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
add-int/lit8 v0, v0, -0x1
:goto_16
if-ltz v0, :cond_5c
.line 1605
iget-object v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
shl-int/lit8 v2, v0, 0x1
add-int/lit8 v2, v2, 0x1
sget-object v3, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->squaringTable:[S
iget-object v4, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aget v4, v4, v0
ushr-int/lit8 v4, v4, 0x10
and-int/lit16 v4, v4, 0xff
aget-short v3, v3, v4
sget-object v4, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->squaringTable:[S
iget-object v5, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aget v5, v5, v0
and-int/2addr v5, v6
ushr-int/lit8 v5, v5, 0x18
aget-short v4, v4, v5
shl-int/lit8 v4, v4, 0x10
or-int/2addr v3, v4
aput v3, v1, v2
.line 1607
iget-object v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
shl-int/lit8 v2, v0, 0x1
sget-object v3, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->squaringTable:[S
iget-object v4, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aget v4, v4, v0
and-int/lit16 v4, v4, 0xff
aget-short v3, v3, v4
sget-object v4, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->squaringTable:[S
iget-object v5, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aget v5, v5, v0
ushr-int/lit8 v5, v5, 0x8
and-int/lit16 v5, v5, 0xff
aget-short v4, v4, v5
shl-int/lit8 v4, v4, 0x10
or-int/2addr v3, v4
aput v3, v1, v2
.line 1603
add-int/lit8 v0, v0, -0x1
goto :goto_16
.line 1610
:cond_5c
iget v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
shl-int/lit8 v0, v0, 0x1
iput v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
.line 1611
iget v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
shl-int/lit8 v0, v0, 0x1
add-int/lit8 v0, v0, -0x1
iput v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
goto :goto_8
.line 1615
:cond_6b
iget v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
shl-int/lit8 v0, v0, 0x1
new-array v1, v0, [I
.line 1616
const/4 v0, 0x0
:goto_72
iget v2, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
if-ge v0, v2, :cond_b6
.line 1618
shl-int/lit8 v2, v0, 0x1
sget-object v3, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->squaringTable:[S
iget-object v4, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aget v4, v4, v0
and-int/lit16 v4, v4, 0xff
aget-short v3, v3, v4
sget-object v4, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->squaringTable:[S
iget-object v5, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aget v5, v5, v0
ushr-int/lit8 v5, v5, 0x8
and-int/lit16 v5, v5, 0xff
aget-short v4, v4, v5
shl-int/lit8 v4, v4, 0x10
or-int/2addr v3, v4
aput v3, v1, v2
.line 1620
shl-int/lit8 v2, v0, 0x1
add-int/lit8 v2, v2, 0x1
sget-object v3, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->squaringTable:[S
iget-object v4, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aget v4, v4, v0
ushr-int/lit8 v4, v4, 0x10
and-int/lit16 v4, v4, 0xff
aget-short v3, v3, v4
sget-object v4, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->squaringTable:[S
iget-object v5, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aget v5, v5, v0
and-int/2addr v5, v6
ushr-int/lit8 v5, v5, 0x18
aget-short v4, v4, v5
shl-int/lit8 v4, v4, 0x10
or-int/2addr v3, v4
aput v3, v1, v2
.line 1616
add-int/lit8 v0, v0, 0x1
goto :goto_72
.line 1623
:cond_b6
const/4 v0, 0x0
iput-object v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
.line 1624
iput-object v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
.line 1625
iget v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
shl-int/lit8 v0, v0, 0x1
iput v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
.line 1626
iget v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
shl-int/lit8 v0, v0, 0x1
add-int/lit8 v0, v0, -0x1
iput v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
goto/16 :goto_8
.end method
.method public subtract(Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;)Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;
.registers 3
.prologue
.line 668
invoke-virtual {p0, p1}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->xor(Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;)Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;
move-result-object v0
return-object v0
.end method
.method public subtractFromThis(Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;)V
.registers 3
.prologue
.line 654
iget v0, p1, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
invoke-virtual {p0, v0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->expandN(I)V
.line 655
invoke-virtual {p0, p1}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->xorThisBy(Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;)V
.line 656
return-void
.end method
.method public testBit(I)Z
.registers 6
.prologue
const/4 v0, 0x0
.line 1805
if-gez p1, :cond_9
.line 1807
new-instance v0, Ljava/lang/RuntimeException;
invoke-direct {v0}, Ljava/lang/RuntimeException;-><init>()V
throw v0
.line 1809
:cond_9
iget v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
add-int/lit8 v1, v1, -0x1
if-le p1, v1, :cond_10
.line 1813
:cond_f
:goto_f
return v0
:cond_10
iget-object v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
ushr-int/lit8 v2, p1, 0x5
aget v1, v1, v2
sget-object v2, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->bitMask:[I
and-int/lit8 v3, p1, 0x1f
aget v2, v2, v3
and-int/2addr v1, v2
if-eqz v1, :cond_f
const/4 v0, 0x1
goto :goto_f
.end method
.method public toByteArray()[B
.registers 9
.prologue
const/4 v0, 0x0
.line 422
iget v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
add-int/lit8 v1, v1, -0x1
shr-int/lit8 v1, v1, 0x3
add-int/lit8 v2, v1, 0x1
.line 423
and-int/lit8 v3, v2, 0x3
.line 425
new-array v4, v2, [B
move v1, v0
.line 427
:goto_e
shr-int/lit8 v5, v2, 0x2
if-ge v1, v5, :cond_42
.line 429
shl-int/lit8 v5, v1, 0x2
sub-int v5, v2, v5
add-int/lit8 v5, v5, -0x1
.line 430
iget-object v6, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aget v6, v6, v1
int-to-byte v6, v6
aput-byte v6, v4, v5
.line 431
add-int/lit8 v6, v5, -0x1
iget-object v7, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aget v7, v7, v1
ushr-int/lit8 v7, v7, 0x8
int-to-byte v7, v7
aput-byte v7, v4, v6
.line 432
add-int/lit8 v6, v5, -0x2
iget-object v7, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aget v7, v7, v1
ushr-int/lit8 v7, v7, 0x10
int-to-byte v7, v7
aput-byte v7, v4, v6
.line 433
add-int/lit8 v5, v5, -0x3
iget-object v6, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aget v6, v6, v1
shr-int/lit8 v6, v6, 0x18
aput-byte v6, v4, v5
.line 427
add-int/lit8 v1, v1, 0x1
goto :goto_e
.line 435
:cond_42
:goto_42
if-ge v0, v3, :cond_5e
.line 437
sub-int v1, v3, v0
add-int/lit8 v1, v1, -0x1
shl-int/lit8 v1, v1, 0x3
.line 438
iget-object v2, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
iget v5, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
add-int/lit8 v5, v5, -0x1
aget v2, v2, v5
const/16 v5, 0xff
shl-int/2addr v5, v1
and-int/2addr v2, v5
ushr-int v1, v2, v1
int-to-byte v1, v1
aput-byte v1, v4, v0
.line 435
add-int/lit8 v0, v0, 0x1
goto :goto_42
.line 440
:cond_5e
return-object v4
.end method
.method public toFlexiBigInt()Ljava/math/BigInteger;
.registers 4
.prologue
const/4 v2, 0x0
.line 451
iget v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
if-eqz v0, :cond_b
invoke-virtual {p0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->isZero()Z
move-result v0
if-eqz v0, :cond_13
.line 453
:cond_b
new-instance v0, Ljava/math/BigInteger;
new-array v1, v2, [B
invoke-direct {v0, v2, v1}, Ljava/math/BigInteger;-><init>(I[B)V
.line 455
:goto_12
return-object v0
:cond_13
new-instance v0, Ljava/math/BigInteger;
const/4 v1, 0x1
invoke-virtual {p0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->toByteArray()[B
move-result-object v2
invoke-direct {v0, v1, v2}, Ljava/math/BigInteger;-><init>(I[B)V
goto :goto_12
.end method
.method public toIntegerArray()[I
.registers 5
.prologue
const/4 v3, 0x0
.line 359
iget v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
new-array v0, v0, [I
.line 360
iget-object v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
iget v2, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
invoke-static {v1, v3, v0, v3, v2}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 361
return-object v0
.end method
.method public toString(I)Ljava/lang/String;
.registers 7
.prologue
const/16 v4, 0x10
.line 373
new-array v2, v4, [C
fill-array-data v2, :array_250
.line 375
new-array v3, v4, [Ljava/lang/String;
const/4 v0, 0x0
const-string v1, "0000"
aput-object v1, v3, v0
const/4 v0, 0x1
const-string v1, "0001"
aput-object v1, v3, v0
const/4 v0, 0x2
const-string v1, "0010"
aput-object v1, v3, v0
const/4 v0, 0x3
const-string v1, "0011"
aput-object v1, v3, v0
const/4 v0, 0x4
const-string v1, "0100"
aput-object v1, v3, v0
const/4 v0, 0x5
const-string v1, "0101"
aput-object v1, v3, v0
const/4 v0, 0x6
const-string v1, "0110"
aput-object v1, v3, v0
const/4 v0, 0x7
const-string v1, "0111"
aput-object v1, v3, v0
const/16 v0, 0x8
const-string v1, "1000"
aput-object v1, v3, v0
const/16 v0, 0x9
const-string v1, "1001"
aput-object v1, v3, v0
const/16 v0, 0xa
const-string v1, "1010"
aput-object v1, v3, v0
const/16 v0, 0xb
const-string v1, "1011"
aput-object v1, v3, v0
const/16 v0, 0xc
const-string v1, "1100"
aput-object v1, v3, v0
const/16 v0, 0xd
const-string v1, "1101"
aput-object v1, v3, v0
const/16 v0, 0xe
const-string v1, "1110"
aput-object v1, v3, v0
const/16 v0, 0xf
const-string v1, "1111"
aput-object v1, v3, v0
.line 380
new-instance v0, Ljava/lang/String;
invoke-direct {v0}, Ljava/lang/String;-><init>()V
.line 381
if-ne p1, v4, :cond_15b
.line 383
iget v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
add-int/lit8 v1, v1, -0x1
:goto_6c
if-ltz v1, :cond_24e
.line 385
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
iget-object v3, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aget v3, v3, v1
ushr-int/lit8 v3, v3, 0x1c
and-int/lit8 v3, v3, 0xf
aget-char v3, v2, v3
invoke-virtual {v0, v3}, 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 386
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
iget-object v3, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aget v3, v3, v1
ushr-int/lit8 v3, v3, 0x18
and-int/lit8 v3, v3, 0xf
aget-char v3, v2, v3
invoke-virtual {v0, v3}, 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 387
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
iget-object v3, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aget v3, v3, v1
ushr-int/lit8 v3, v3, 0x14
and-int/lit8 v3, v3, 0xf
aget-char v3, v2, v3
invoke-virtual {v0, v3}, 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 388
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
iget-object v3, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aget v3, v3, v1
ushr-int/lit8 v3, v3, 0x10
and-int/lit8 v3, v3, 0xf
aget-char v3, v2, v3
invoke-virtual {v0, v3}, 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 389
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
iget-object v3, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aget v3, v3, v1
ushr-int/lit8 v3, v3, 0xc
and-int/lit8 v3, v3, 0xf
aget-char v3, v2, v3
invoke-virtual {v0, v3}, 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 390
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
iget-object v3, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aget v3, v3, v1
ushr-int/lit8 v3, v3, 0x8
and-int/lit8 v3, v3, 0xf
aget-char v3, v2, v3
invoke-virtual {v0, v3}, 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 391
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
iget-object v3, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aget v3, v3, v1
ushr-int/lit8 v3, v3, 0x4
and-int/lit8 v3, v3, 0xf
aget-char v3, v2, v3
invoke-virtual {v0, v3}, 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 392
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
iget-object v3, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aget v3, v3, v1
and-int/lit8 v3, v3, 0xf
aget-char v3, v2, v3
invoke-virtual {v0, v3}, 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 393
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
const-string v3, " "
invoke-virtual {v0, v3}, 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 383
add-int/lit8 v1, v1, -0x1
goto/16 :goto_6c
.line 398
:cond_15b
iget v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
add-int/lit8 v1, v1, -0x1
:goto_15f
if-ltz v1, :cond_24e
.line 400
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
iget-object v2, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aget v2, v2, v1
ushr-int/lit8 v2, v2, 0x1c
and-int/lit8 v2, v2, 0xf
aget-object v2, v3, 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 v0
.line 401
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
iget-object v2, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aget v2, v2, v1
ushr-int/lit8 v2, v2, 0x18
and-int/lit8 v2, v2, 0xf
aget-object v2, v3, 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 v0
.line 402
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
iget-object v2, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aget v2, v2, v1
ushr-int/lit8 v2, v2, 0x14
and-int/lit8 v2, v2, 0xf
aget-object v2, v3, 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 v0
.line 403
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
iget-object v2, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aget v2, v2, v1
ushr-int/lit8 v2, v2, 0x10
and-int/lit8 v2, v2, 0xf
aget-object v2, v3, 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 v0
.line 404
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
iget-object v2, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aget v2, v2, v1
ushr-int/lit8 v2, v2, 0xc
and-int/lit8 v2, v2, 0xf
aget-object v2, v3, 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 v0
.line 405
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
iget-object v2, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aget v2, v2, v1
ushr-int/lit8 v2, v2, 0x8
and-int/lit8 v2, v2, 0xf
aget-object v2, v3, 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 v0
.line 406
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
iget-object v2, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aget v2, v2, v1
ushr-int/lit8 v2, v2, 0x4
and-int/lit8 v2, v2, 0xf
aget-object v2, v3, 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 v0
.line 407
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
iget-object v2, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aget v2, v2, v1
and-int/lit8 v2, v2, 0xf
aget-object v2, v3, 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 v0
.line 408
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 v0
.line 398
add-int/lit8 v1, v1, -0x1
goto/16 :goto_15f
.line 411
:cond_24e
return-object v0
.line 373
nop
:array_250
.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 vectorMult(Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;)Z
.registers 7
.prologue
const/4 v0, 0x0
.line 1641
.line 1642
iget v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
iget v2, p1, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
if-eq v1, v2, :cond_d
.line 1644
new-instance v0, Ljava/lang/RuntimeException;
invoke-direct {v0}, Ljava/lang/RuntimeException;-><init>()V
throw v0
:cond_d
move v1, v0
.line 1646
:goto_e
iget v2, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
if-ge v1, v2, :cond_3e
.line 1648
iget-object v2, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aget v2, v2, v1
iget-object v3, p1, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aget v3, v3, v1
and-int/2addr v2, v3
.line 1649
sget-object v3, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->parity:[Z
and-int/lit16 v4, v2, 0xff
aget-boolean v3, v3, v4
xor-int/2addr v0, v3
.line 1650
sget-object v3, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->parity:[Z
ushr-int/lit8 v4, v2, 0x8
and-int/lit16 v4, v4, 0xff
aget-boolean v3, v3, v4
xor-int/2addr v0, v3
.line 1651
sget-object v3, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->parity:[Z
ushr-int/lit8 v4, v2, 0x10
and-int/lit16 v4, v4, 0xff
aget-boolean v3, v3, v4
xor-int/2addr v0, v3
.line 1652
sget-object v3, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->parity:[Z
ushr-int/lit8 v2, v2, 0x18
aget-boolean v2, v3, v2
xor-int/2addr v0, v2
.line 1646
add-int/lit8 v1, v1, 0x1
goto :goto_e
.line 1654
:cond_3e
return v0
.end method
.method public xor(Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;)Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;
.registers 8
.prologue
const/4 v1, 0x0
.line 1668
iget v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
iget v2, p1, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
invoke-static {v0, v2}, Ljava/lang/Math;->min(II)I
move-result v2
.line 1669
iget v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
iget v3, p1, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
if-lt v0, v3, :cond_24
.line 1671
new-instance v0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;
invoke-direct {v0, p0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;-><init>(Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;)V
.line 1672
:goto_14
if-ge v1, v2, :cond_39
.line 1674
iget-object v3, v0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aget v4, v3, v1
iget-object v5, p1, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aget v5, v5, v1
xor-int/2addr v4, v5
aput v4, v3, v1
.line 1672
add-int/lit8 v1, v1, 0x1
goto :goto_14
.line 1679
:cond_24
new-instance v0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;
invoke-direct {v0, p1}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;-><init>(Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;)V
.line 1680
:goto_29
if-ge v1, v2, :cond_39
.line 1682
iget-object v3, v0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aget v4, v3, v1
iget-object v5, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aget v5, v5, v1
xor-int/2addr v4, v5
aput v4, v3, v1
.line 1680
add-int/lit8 v1, v1, 0x1
goto :goto_29
.line 1687
:cond_39
invoke-direct {v0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->zeroUnusedBits()V
.line 1688
return-object v0
.end method
.method public xorBit(I)V
.registers 7
.prologue
.line 1789
if-ltz p1, :cond_8
iget v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->len:I
add-int/lit8 v0, v0, -0x1
if-le p1, v0, :cond_e
.line 1791
:cond_8
new-instance v0, Ljava/lang/RuntimeException;
invoke-direct {v0}, Ljava/lang/RuntimeException;-><init>()V
throw v0
.line 1793
:cond_e
iget-object v0, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
ushr-int/lit8 v1, p1, 0x5
aget v2, v0, v1
sget-object v3, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->bitMask:[I
and-int/lit8 v4, p1, 0x1f
aget v3, v3, v4
xor-int/2addr v2, v3
aput v2, v0, v1
.line 1794
return-void
.end method
.method public xorThisBy(Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;)V
.registers 6
.prologue
.line 1701
const/4 v0, 0x0
:goto_1
iget v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
iget v2, p1, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->blocks:I
invoke-static {v1, v2}, Ljava/lang/Math;->min(II)I
move-result v1
if-ge v0, v1, :cond_19
.line 1703
iget-object v1, p0, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aget v2, v1, v0
iget-object v3, p1, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->value:[I
aget v3, v3, v0
xor-int/2addr v2, v3
aput v2, v1, v0
.line 1701
add-int/lit8 v0, v0, 0x1
goto :goto_1
.line 1707
:cond_19
invoke-direct {p0}, Lorg/spongycastle/pqc/math/linearalgebra/GF2Polynomial;->zeroUnusedBits()V
.line 1708
return-void
.end method