LittleEndianConversions.smali
.class public final Lorg/spongycastle/pqc/math/linearalgebra/LittleEndianConversions;
.super Ljava/lang/Object;
.source "LittleEndianConversions.java"
# direct methods
.method private constructor <init>()V
.registers 1
.prologue
.line 16
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 18
return-void
.end method
.method public static I2OSP(I[BI)V
.registers 6
.prologue
.line 116
add-int/lit8 v0, p2, 0x1
int-to-byte v1, p0
aput-byte v1, p1, p2
.line 117
add-int/lit8 v1, v0, 0x1
ushr-int/lit8 v2, p0, 0x8
int-to-byte v2, v2
aput-byte v2, p1, v0
.line 118
add-int/lit8 v0, v1, 0x1
ushr-int/lit8 v2, p0, 0x10
int-to-byte v2, v2
aput-byte v2, p1, v1
.line 119
shr-int/lit8 v1, p0, 0x18
aput-byte v1, p1, v0
.line 120
return-void
.end method
.method public static I2OSP(I[BII)V
.registers 7
.prologue
.line 134
add-int/lit8 v0, p3, -0x1
:goto_2
if-ltz v0, :cond_10
.line 136
add-int v1, p2, v0
shl-int/lit8 v2, v0, 0x3
ushr-int v2, p0, v2
int-to-byte v2, v2
aput-byte v2, p1, v1
.line 134
add-int/lit8 v0, v0, -0x1
goto :goto_2
.line 138
:cond_10
return-void
.end method
.method public static I2OSP(J[BI)V
.registers 8
.prologue
.line 169
add-int/lit8 v0, p3, 0x1
long-to-int v1, p0
int-to-byte v1, v1
aput-byte v1, p2, p3
.line 170
add-int/lit8 v1, v0, 0x1
const/16 v2, 0x8
ushr-long v2, p0, v2
long-to-int v2, v2
int-to-byte v2, v2
aput-byte v2, p2, v0
.line 171
add-int/lit8 v0, v1, 0x1
const/16 v2, 0x10
ushr-long v2, p0, v2
long-to-int v2, v2
int-to-byte v2, v2
aput-byte v2, p2, v1
.line 172
add-int/lit8 v1, v0, 0x1
const/16 v2, 0x18
ushr-long v2, p0, v2
long-to-int v2, v2
int-to-byte v2, v2
aput-byte v2, p2, v0
.line 173
add-int/lit8 v0, v1, 0x1
const/16 v2, 0x20
ushr-long v2, p0, v2
long-to-int v2, v2
int-to-byte v2, v2
aput-byte v2, p2, v1
.line 174
add-int/lit8 v1, v0, 0x1
const/16 v2, 0x28
ushr-long v2, p0, v2
long-to-int v2, v2
int-to-byte v2, v2
aput-byte v2, p2, v0
.line 175
add-int/lit8 v0, v1, 0x1
const/16 v2, 0x30
ushr-long v2, p0, v2
long-to-int v2, v2
int-to-byte v2, v2
aput-byte v2, p2, v1
.line 176
const/16 v1, 0x38
ushr-long v2, p0, v1
long-to-int v1, v2
int-to-byte v1, v1
aput-byte v1, p2, v0
.line 177
return-void
.end method
.method public static I2OSP(I)[B
.registers 4
.prologue
.line 99
const/4 v0, 0x4
new-array v0, v0, [B
.line 100
const/4 v1, 0x0
int-to-byte v2, p0
aput-byte v2, v0, v1
.line 101
const/4 v1, 0x1
ushr-int/lit8 v2, p0, 0x8
int-to-byte v2, v2
aput-byte v2, v0, v1
.line 102
const/4 v1, 0x2
ushr-int/lit8 v2, p0, 0x10
int-to-byte v2, v2
aput-byte v2, v0, v1
.line 103
const/4 v1, 0x3
shr-int/lit8 v2, p0, 0x18
aput-byte v2, v0, v1
.line 104
return-object v0
.end method
.method public static I2OSP(J)[B
.registers 6
.prologue
const/16 v3, 0x8
.line 148
new-array v0, v3, [B
.line 149
const/4 v1, 0x0
long-to-int v2, p0
int-to-byte v2, v2
aput-byte v2, v0, v1
.line 150
const/4 v1, 0x1
ushr-long v2, p0, v3
long-to-int v2, v2
int-to-byte v2, v2
aput-byte v2, v0, v1
.line 151
const/4 v1, 0x2
const/16 v2, 0x10
ushr-long v2, p0, v2
long-to-int v2, v2
int-to-byte v2, v2
aput-byte v2, v0, v1
.line 152
const/4 v1, 0x3
const/16 v2, 0x18
ushr-long v2, p0, v2
long-to-int v2, v2
int-to-byte v2, v2
aput-byte v2, v0, v1
.line 153
const/4 v1, 0x4
const/16 v2, 0x20
ushr-long v2, p0, v2
long-to-int v2, v2
int-to-byte v2, v2
aput-byte v2, v0, v1
.line 154
const/4 v1, 0x5
const/16 v2, 0x28
ushr-long v2, p0, v2
long-to-int v2, v2
int-to-byte v2, v2
aput-byte v2, v0, v1
.line 155
const/4 v1, 0x6
const/16 v2, 0x30
ushr-long v2, p0, v2
long-to-int v2, v2
int-to-byte v2, v2
aput-byte v2, v0, v1
.line 156
const/4 v1, 0x7
const/16 v2, 0x38
ushr-long v2, p0, v2
long-to-int v2, v2
int-to-byte v2, v2
aput-byte v2, v0, v1
.line 157
return-object v0
.end method
.method public static OS2IP([B)I
.registers 3
.prologue
.line 30
const/4 v0, 0x0
aget-byte v0, p0, v0
and-int/lit16 v0, v0, 0xff
const/4 v1, 0x1
aget-byte v1, p0, v1
and-int/lit16 v1, v1, 0xff
shl-int/lit8 v1, v1, 0x8
or-int/2addr v0, v1
const/4 v1, 0x2
aget-byte v1, p0, v1
and-int/lit16 v1, v1, 0xff
shl-int/lit8 v1, v1, 0x10
or-int/2addr v0, v1
const/4 v1, 0x3
aget-byte v1, p0, v1
and-int/lit16 v1, v1, 0xff
shl-int/lit8 v1, v1, 0x18
or-int/2addr v0, v1
return v0
.end method
.method public static OS2IP([BI)I
.registers 5
.prologue
.line 44
add-int/lit8 v0, p1, 0x1
aget-byte v1, p0, p1
and-int/lit16 v1, v1, 0xff
.line 45
add-int/lit8 v2, v0, 0x1
aget-byte v0, p0, v0
and-int/lit16 v0, v0, 0xff
shl-int/lit8 v0, v0, 0x8
or-int/2addr v0, v1
.line 46
add-int/lit8 v1, v2, 0x1
aget-byte v2, p0, v2
and-int/lit16 v2, v2, 0xff
shl-int/lit8 v2, v2, 0x10
or-int/2addr v0, v2
.line 47
aget-byte v1, p0, v1
and-int/lit16 v1, v1, 0xff
shl-int/lit8 v1, v1, 0x18
or-int/2addr v0, v1
.line 48
return v0
.end method
.method public static OS2IP([BII)I
.registers 7
.prologue
.line 62
const/4 v0, 0x0
.line 63
add-int/lit8 v1, p2, -0x1
:goto_3
if-ltz v1, :cond_12
.line 65
add-int v2, p1, v1
aget-byte v2, p0, v2
and-int/lit16 v2, v2, 0xff
shl-int/lit8 v3, v1, 0x3
shl-int/2addr v2, v3
or-int/2addr v0, v2
.line 63
add-int/lit8 v1, v1, -0x1
goto :goto_3
.line 67
:cond_12
return v0
.end method
.method public static OS2LIP([BI)J
.registers 10
.prologue
const-wide/16 v6, 0xff
.line 80
add-int/lit8 v0, p1, 0x1
aget-byte v1, p0, p1
and-int/lit16 v1, v1, 0xff
int-to-long v2, v1
.line 81
add-int/lit8 v1, v0, 0x1
aget-byte v0, p0, v0
and-int/lit16 v0, v0, 0xff
shl-int/lit8 v0, v0, 0x8
int-to-long v4, v0
or-long/2addr v2, v4
.line 82
add-int/lit8 v0, v1, 0x1
aget-byte v1, p0, v1
and-int/lit16 v1, v1, 0xff
shl-int/lit8 v1, v1, 0x10
int-to-long v4, v1
or-long/2addr v2, v4
.line 83
add-int/lit8 v1, v0, 0x1
aget-byte v0, p0, v0
int-to-long v4, v0
and-long/2addr v4, v6
const/16 v0, 0x18
shl-long/2addr v4, v0
or-long/2addr v2, v4
.line 84
add-int/lit8 v0, v1, 0x1
aget-byte v1, p0, v1
int-to-long v4, v1
and-long/2addr v4, v6
const/16 v1, 0x20
shl-long/2addr v4, v1
or-long/2addr v2, v4
.line 85
add-int/lit8 v1, v0, 0x1
aget-byte v0, p0, v0
int-to-long v4, v0
and-long/2addr v4, v6
const/16 v0, 0x28
shl-long/2addr v4, v0
or-long/2addr v2, v4
.line 86
add-int/lit8 v0, v1, 0x1
aget-byte v1, p0, v1
int-to-long v4, v1
and-long/2addr v4, v6
const/16 v1, 0x30
shl-long/2addr v4, v1
or-long/2addr v2, v4
.line 87
aget-byte v0, p0, v0
int-to-long v0, v0
and-long/2addr v0, v6
const/16 v4, 0x38
shl-long/2addr v0, v4
or-long/2addr v0, v2
.line 88
return-wide v0
.end method
.method public static toByteArray([II)[B
.registers 7
.prologue
const/4 v0, 0x0
.line 190
array-length v2, p0
.line 191
new-array v3, p1, [B
move v1, v0
.line 193
:goto_5
add-int/lit8 v4, v2, -0x2
if-gt v0, v4, :cond_13
.line 195
aget v4, p0, v0
invoke-static {v4, v3, v1}, Lorg/spongycastle/pqc/math/linearalgebra/LittleEndianConversions;->I2OSP(I[BI)V
.line 193
add-int/lit8 v0, v0, 0x1
add-int/lit8 v1, v1, 0x4
goto :goto_5
.line 197
:cond_13
add-int/lit8 v0, v2, -0x1
aget v0, p0, v0
sub-int v2, p1, v1
invoke-static {v0, v3, v1, v2}, Lorg/spongycastle/pqc/math/linearalgebra/LittleEndianConversions;->I2OSP(I[BII)V
.line 198
return-object v3
.end method
.method public static toIntArray([B)[I
.registers 7
.prologue
const/4 v0, 0x0
.line 209
array-length v1, p0
add-int/lit8 v1, v1, 0x3
div-int/lit8 v2, v1, 0x4
.line 210
array-length v1, p0
and-int/lit8 v3, v1, 0x3
.line 211
new-array v4, v2, [I
move v1, v0
.line 214
:goto_c
add-int/lit8 v5, v2, -0x2
if-gt v0, v5, :cond_1b
.line 216
invoke-static {p0, v1}, Lorg/spongycastle/pqc/math/linearalgebra/LittleEndianConversions;->OS2IP([BI)I
move-result v5
aput v5, v4, v0
.line 214
add-int/lit8 v0, v0, 0x1
add-int/lit8 v1, v1, 0x4
goto :goto_c
.line 218
:cond_1b
if-eqz v3, :cond_26
.line 220
add-int/lit8 v0, v2, -0x1
invoke-static {p0, v1, v3}, Lorg/spongycastle/pqc/math/linearalgebra/LittleEndianConversions;->OS2IP([BII)I
move-result v1
aput v1, v4, v0
.line 227
:goto_25
return-object v4
.line 224
:cond_26
add-int/lit8 v0, v2, -0x1
invoke-static {p0, v1}, Lorg/spongycastle/pqc/math/linearalgebra/LittleEndianConversions;->OS2IP([BI)I
move-result v1
aput v1, v4, v0
goto :goto_25
.end method