Files
2022-06-18 19:27:15 +03:00

1401 lines
25 KiB
Smali

.class public final Lcom/google/zxing/aztec/encoder/Encoder;
.super Ljava/lang/Object;
.source "Encoder.java"
# static fields
.field public static final DEFAULT_AZTEC_LAYERS:I = 0x0
.field public static final DEFAULT_EC_PERCENT:I = 0x21
.field private static final MAX_NB_BITS:I = 0x20
.field private static final MAX_NB_BITS_COMPACT:I = 0x4
.field private static final WORD_SIZE:[I
# direct methods
.method static constructor <clinit>()V
.locals 1
const/16 v0, 0x21
new-array v0, v0, [I
.line 1
fill-array-data v0, :array_0
sput-object v0, Lcom/google/zxing/aztec/encoder/Encoder;->WORD_SIZE:[I
return-void
:array_0
.array-data 4
0x4
0x6
0x6
0x8
0x8
0x8
0x8
0x8
0x8
0xa
0xa
0xa
0xa
0xa
0xa
0xa
0xa
0xa
0xa
0xa
0xa
0xa
0xa
0xc
0xc
0xc
0xc
0xc
0xc
0xc
0xc
0xc
0xc
.end array-data
.end method
.method private constructor <init>()V
.locals 0
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method private static bitsToWords(Lcom/google/zxing/common/BitArray;II)[I
.locals 7
.line 1
new-array p2, p2, [I
.line 2
invoke-virtual {p0}, Lcom/google/zxing/common/BitArray;->getSize()I
move-result v0
div-int/2addr v0, p1
const/4 v1, 0x0
const/4 v2, 0x0
:goto_0
if-ge v2, v0, :cond_2
const/4 v3, 0x0
const/4 v4, 0x0
:goto_1
if-ge v3, p1, :cond_1
mul-int v5, v2, p1
add-int/2addr v5, v3
.line 3
invoke-virtual {p0, v5}, Lcom/google/zxing/common/BitArray;->get(I)Z
move-result v5
if-eqz v5, :cond_0
sub-int v5, p1, v3
const/4 v6, 0x1
sub-int/2addr v5, v6
shl-int v5, v6, v5
goto :goto_2
:cond_0
const/4 v5, 0x0
:goto_2
or-int/2addr v4, v5
add-int/lit8 v3, v3, 0x1
goto :goto_1
.line 4
:cond_1
aput v4, p2, v2
add-int/lit8 v2, v2, 0x1
goto :goto_0
:cond_2
return-object p2
.end method
.method private static drawBullsEye(Lcom/google/zxing/common/BitMatrix;II)V
.locals 4
const/4 v0, 0x0
:goto_0
if-ge v0, p2, :cond_1
sub-int v1, p1, v0
move v2, v1
:goto_1
add-int v3, p1, v0
if-gt v2, v3, :cond_0
.line 1
invoke-virtual {p0, v2, v1}, Lcom/google/zxing/common/BitMatrix;->set(II)V
.line 2
invoke-virtual {p0, v2, v3}, Lcom/google/zxing/common/BitMatrix;->set(II)V
.line 3
invoke-virtual {p0, v1, v2}, Lcom/google/zxing/common/BitMatrix;->set(II)V
.line 4
invoke-virtual {p0, v3, v2}, Lcom/google/zxing/common/BitMatrix;->set(II)V
add-int/lit8 v2, v2, 0x1
goto :goto_1
:cond_0
add-int/lit8 v0, v0, 0x2
goto :goto_0
:cond_1
sub-int v0, p1, p2
.line 5
invoke-virtual {p0, v0, v0}, Lcom/google/zxing/common/BitMatrix;->set(II)V
add-int/lit8 v1, v0, 0x1
.line 6
invoke-virtual {p0, v1, v0}, Lcom/google/zxing/common/BitMatrix;->set(II)V
.line 7
invoke-virtual {p0, v0, v1}, Lcom/google/zxing/common/BitMatrix;->set(II)V
add-int/2addr p1, p2
.line 8
invoke-virtual {p0, p1, v0}, Lcom/google/zxing/common/BitMatrix;->set(II)V
.line 9
invoke-virtual {p0, p1, v1}, Lcom/google/zxing/common/BitMatrix;->set(II)V
add-int/lit8 p2, p1, -0x1
.line 10
invoke-virtual {p0, p1, p2}, Lcom/google/zxing/common/BitMatrix;->set(II)V
return-void
.end method
.method private static drawModeMessage(Lcom/google/zxing/common/BitMatrix;ZILcom/google/zxing/common/BitArray;)V
.locals 2
.line 1
div-int/lit8 p2, p2, 0x2
const/4 v0, 0x0
if-eqz p1, :cond_5
:goto_0
const/4 p1, 0x7
if-ge v0, p1, :cond_4
add-int/lit8 p1, p2, -0x3
add-int/2addr p1, v0
.line 2
invoke-virtual {p3, v0}, Lcom/google/zxing/common/BitArray;->get(I)Z
move-result v1
if-eqz v1, :cond_0
add-int/lit8 v1, p2, -0x5
.line 3
invoke-virtual {p0, p1, v1}, Lcom/google/zxing/common/BitMatrix;->set(II)V
:cond_0
add-int/lit8 v1, v0, 0x7
.line 4
invoke-virtual {p3, v1}, Lcom/google/zxing/common/BitArray;->get(I)Z
move-result v1
if-eqz v1, :cond_1
add-int/lit8 v1, p2, 0x5
.line 5
invoke-virtual {p0, v1, p1}, Lcom/google/zxing/common/BitMatrix;->set(II)V
:cond_1
rsub-int/lit8 v1, v0, 0x14
.line 6
invoke-virtual {p3, v1}, Lcom/google/zxing/common/BitArray;->get(I)Z
move-result v1
if-eqz v1, :cond_2
add-int/lit8 v1, p2, 0x5
.line 7
invoke-virtual {p0, p1, v1}, Lcom/google/zxing/common/BitMatrix;->set(II)V
:cond_2
rsub-int/lit8 v1, v0, 0x1b
.line 8
invoke-virtual {p3, v1}, Lcom/google/zxing/common/BitArray;->get(I)Z
move-result v1
if-eqz v1, :cond_3
add-int/lit8 v1, p2, -0x5
.line 9
invoke-virtual {p0, v1, p1}, Lcom/google/zxing/common/BitMatrix;->set(II)V
:cond_3
add-int/lit8 v0, v0, 0x1
goto :goto_0
:cond_4
return-void
:cond_5
:goto_1
const/16 p1, 0xa
if-ge v0, p1, :cond_a
add-int/lit8 p1, p2, -0x5
add-int/2addr p1, v0
.line 10
div-int/lit8 v1, v0, 0x5
add-int/2addr p1, v1
.line 11
invoke-virtual {p3, v0}, Lcom/google/zxing/common/BitArray;->get(I)Z
move-result v1
if-eqz v1, :cond_6
add-int/lit8 v1, p2, -0x7
.line 12
invoke-virtual {p0, p1, v1}, Lcom/google/zxing/common/BitMatrix;->set(II)V
:cond_6
add-int/lit8 v1, v0, 0xa
.line 13
invoke-virtual {p3, v1}, Lcom/google/zxing/common/BitArray;->get(I)Z
move-result v1
if-eqz v1, :cond_7
add-int/lit8 v1, p2, 0x7
.line 14
invoke-virtual {p0, v1, p1}, Lcom/google/zxing/common/BitMatrix;->set(II)V
:cond_7
rsub-int/lit8 v1, v0, 0x1d
.line 15
invoke-virtual {p3, v1}, Lcom/google/zxing/common/BitArray;->get(I)Z
move-result v1
if-eqz v1, :cond_8
add-int/lit8 v1, p2, 0x7
.line 16
invoke-virtual {p0, p1, v1}, Lcom/google/zxing/common/BitMatrix;->set(II)V
:cond_8
rsub-int/lit8 v1, v0, 0x27
.line 17
invoke-virtual {p3, v1}, Lcom/google/zxing/common/BitArray;->get(I)Z
move-result v1
if-eqz v1, :cond_9
add-int/lit8 v1, p2, -0x7
.line 18
invoke-virtual {p0, v1, p1}, Lcom/google/zxing/common/BitMatrix;->set(II)V
:cond_9
add-int/lit8 v0, v0, 0x1
goto :goto_1
:cond_a
return-void
.end method
.method public static encode([B)Lcom/google/zxing/aztec/encoder/AztecCode;
.locals 2
const/16 v0, 0x21
const/4 v1, 0x0
.line 1
invoke-static {p0, v0, v1}, Lcom/google/zxing/aztec/encoder/Encoder;->encode([BII)Lcom/google/zxing/aztec/encoder/AztecCode;
move-result-object p0
return-object p0
.end method
.method public static encode([BII)Lcom/google/zxing/aztec/encoder/AztecCode;
.locals 19
.line 2
new-instance v0, Lcom/google/zxing/aztec/encoder/HighLevelEncoder;
move-object/from16 v1, p0
invoke-direct {v0, v1}, Lcom/google/zxing/aztec/encoder/HighLevelEncoder;-><init>([B)V
invoke-virtual {v0}, Lcom/google/zxing/aztec/encoder/HighLevelEncoder;->encode()Lcom/google/zxing/common/BitArray;
move-result-object v0
.line 3
invoke-virtual {v0}, Lcom/google/zxing/common/BitArray;->getSize()I
move-result v1
mul-int v1, v1, p1
div-int/lit8 v1, v1, 0x64
const/16 v2, 0xb
add-int/2addr v1, v2
.line 4
invoke-virtual {v0}, Lcom/google/zxing/common/BitArray;->getSize()I
move-result v3
add-int/2addr v3, v1
const/16 v4, 0x20
const/4 v5, 0x0
const/4 v6, 0x1
if-eqz p2, :cond_5
if-gez p2, :cond_0
const/4 v3, 0x1
goto :goto_0
:cond_0
const/4 v3, 0x0
.line 5
:goto_0
invoke-static/range {p2 .. p2}, Ljava/lang/Math;->abs(I)I
move-result v7
if-eqz v3, :cond_1
const/4 v4, 0x4
:cond_1
if-gt v7, v4, :cond_4
.line 6
invoke-static {v7, v3}, Lcom/google/zxing/aztec/encoder/Encoder;->totalBitsInLayer(IZ)I
move-result v4
.line 7
sget-object v8, Lcom/google/zxing/aztec/encoder/Encoder;->WORD_SIZE:[I
aget v8, v8, v7
.line 8
rem-int v9, v4, v8
sub-int v9, v4, v9
.line 9
invoke-static {v0, v8}, Lcom/google/zxing/aztec/encoder/Encoder;->stuffBits(Lcom/google/zxing/common/BitArray;I)Lcom/google/zxing/common/BitArray;
move-result-object v0
.line 10
invoke-virtual {v0}, Lcom/google/zxing/common/BitArray;->getSize()I
move-result v10
add-int/2addr v10, v1
const-string v1, "Data to large for user specified layer"
if-gt v10, v9, :cond_3
if-eqz v3, :cond_d
.line 11
invoke-virtual {v0}, Lcom/google/zxing/common/BitArray;->getSize()I
move-result v9
shl-int/lit8 v10, v8, 0x6
if-gt v9, v10, :cond_2
goto/16 :goto_6
.line 12
:cond_2
new-instance v0, Ljava/lang/IllegalArgumentException;
invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v0
.line 13
:cond_3
new-instance v0, Ljava/lang/IllegalArgumentException;
invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v0
.line 14
:cond_4
new-instance v0, Ljava/lang/IllegalArgumentException;
new-array v1, v6, [Ljava/lang/Object;
.line 15
invoke-static/range {p2 .. p2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v2
aput-object v2, v1, v5
const-string v2, "Illegal value %s for layers"
invoke-static {v2, v1}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v0
:cond_5
const/4 v7, 0x0
move-object v8, v7
const/4 v7, 0x0
const/4 v9, 0x0
:goto_1
if-gt v7, v4, :cond_1e
const/4 v10, 0x3
if-gt v7, v10, :cond_6
const/4 v10, 0x1
goto :goto_2
:cond_6
const/4 v10, 0x0
:goto_2
if-eqz v10, :cond_7
add-int/lit8 v11, v7, 0x1
goto :goto_3
:cond_7
move v11, v7
.line 16
:goto_3
invoke-static {v11, v10}, Lcom/google/zxing/aztec/encoder/Encoder;->totalBitsInLayer(IZ)I
move-result v12
if-gt v3, v12, :cond_1d
if-eqz v8, :cond_9
.line 17
sget-object v13, Lcom/google/zxing/aztec/encoder/Encoder;->WORD_SIZE:[I
aget v13, v13, v11
if-eq v9, v13, :cond_8
goto :goto_4
:cond_8
move/from16 v18, v9
move-object v9, v8
move/from16 v8, v18
goto :goto_5
.line 18
:cond_9
:goto_4
sget-object v8, Lcom/google/zxing/aztec/encoder/Encoder;->WORD_SIZE:[I
aget v8, v8, v11
.line 19
invoke-static {v0, v8}, Lcom/google/zxing/aztec/encoder/Encoder;->stuffBits(Lcom/google/zxing/common/BitArray;I)Lcom/google/zxing/common/BitArray;
move-result-object v9
.line 20
:goto_5
rem-int v13, v12, v8
sub-int v13, v12, v13
if-eqz v10, :cond_a
.line 21
invoke-virtual {v9}, Lcom/google/zxing/common/BitArray;->getSize()I
move-result v14
shl-int/lit8 v15, v8, 0x6
if-gt v14, v15, :cond_b
.line 22
:cond_a
invoke-virtual {v9}, Lcom/google/zxing/common/BitArray;->getSize()I
move-result v14
add-int/2addr v14, v1
if-le v14, v13, :cond_c
:cond_b
const/4 v12, 0x1
move-object/from16 v18, v9
move v9, v8
move-object/from16 v8, v18
goto/16 :goto_12
:cond_c
move-object v0, v9
move v3, v10
move v7, v11
move v4, v12
.line 23
:cond_d
:goto_6
invoke-static {v0, v4, v8}, Lcom/google/zxing/aztec/encoder/Encoder;->generateCheckWords(Lcom/google/zxing/common/BitArray;II)Lcom/google/zxing/common/BitArray;
move-result-object v1
.line 24
invoke-virtual {v0}, Lcom/google/zxing/common/BitArray;->getSize()I
move-result v0
div-int/2addr v0, v8
.line 25
invoke-static {v3, v7, v0}, Lcom/google/zxing/aztec/encoder/Encoder;->generateModeMessage(ZII)Lcom/google/zxing/common/BitArray;
move-result-object v4
if-eqz v3, :cond_e
goto :goto_7
:cond_e
const/16 v2, 0xe
:goto_7
shl-int/lit8 v8, v7, 0x2
add-int/2addr v2, v8
.line 26
new-array v8, v2, [I
const/4 v9, 0x2
if-eqz v3, :cond_10
const/4 v10, 0x0
.line 27
:goto_8
array-length v11, v8
if-ge v10, v11, :cond_f
.line 28
aput v10, v8, v10
add-int/lit8 v10, v10, 0x1
goto :goto_8
:cond_f
move v10, v2
goto :goto_a
:cond_10
add-int/lit8 v10, v2, 0x1
.line 29
div-int/lit8 v11, v2, 0x2
add-int/lit8 v12, v11, -0x1
div-int/lit8 v12, v12, 0xf
mul-int/lit8 v12, v12, 0x2
add-int/2addr v10, v12
.line 30
div-int/lit8 v12, v10, 0x2
const/4 v13, 0x0
:goto_9
if-ge v13, v11, :cond_11
.line 31
div-int/lit8 v14, v13, 0xf
add-int/2addr v14, v13
sub-int v15, v11, v13
sub-int/2addr v15, v6
sub-int v16, v12, v14
add-int/lit8 v16, v16, -0x1
.line 32
aput v16, v8, v15
add-int v15, v11, v13
add-int/2addr v14, v12
add-int/2addr v14, v6
.line 33
aput v14, v8, v15
add-int/lit8 v13, v13, 0x1
goto :goto_9
.line 34
:cond_11
:goto_a
new-instance v11, Lcom/google/zxing/common/BitMatrix;
invoke-direct {v11, v10}, Lcom/google/zxing/common/BitMatrix;-><init>(I)V
const/4 v12, 0x0
const/4 v13, 0x0
:goto_b
if-ge v12, v7, :cond_19
sub-int v14, v7, v12
shl-int/2addr v14, v9
if-eqz v3, :cond_12
const/16 v15, 0x9
goto :goto_c
:cond_12
const/16 v15, 0xc
:goto_c
add-int/2addr v14, v15
const/4 v15, 0x0
:goto_d
if-ge v15, v14, :cond_18
shl-int/lit8 v16, v15, 0x1
:goto_e
if-ge v5, v9, :cond_17
add-int v17, v13, v16
add-int v6, v17, v5
.line 35
invoke-virtual {v1, v6}, Lcom/google/zxing/common/BitArray;->get(I)Z
move-result v6
if-eqz v6, :cond_13
shl-int/lit8 v6, v12, 0x1
add-int v17, v6, v5
.line 36
aget v9, v8, v17
add-int/2addr v6, v15
aget v6, v8, v6
invoke-virtual {v11, v9, v6}, Lcom/google/zxing/common/BitMatrix;->set(II)V
:cond_13
shl-int/lit8 v6, v14, 0x1
add-int/2addr v6, v13
add-int v6, v6, v16
add-int/2addr v6, v5
.line 37
invoke-virtual {v1, v6}, Lcom/google/zxing/common/BitArray;->get(I)Z
move-result v6
if-eqz v6, :cond_14
shl-int/lit8 v6, v12, 0x1
add-int v9, v6, v15
.line 38
aget v9, v8, v9
add-int/lit8 v17, v2, -0x1
sub-int v17, v17, v6
sub-int v17, v17, v5
aget v6, v8, v17
invoke-virtual {v11, v9, v6}, Lcom/google/zxing/common/BitMatrix;->set(II)V
:cond_14
shl-int/lit8 v6, v14, 0x2
add-int/2addr v6, v13
add-int v6, v6, v16
add-int/2addr v6, v5
.line 39
invoke-virtual {v1, v6}, Lcom/google/zxing/common/BitArray;->get(I)Z
move-result v6
if-eqz v6, :cond_15
add-int/lit8 v6, v2, -0x1
shl-int/lit8 v9, v12, 0x1
sub-int/2addr v6, v9
sub-int v9, v6, v5
.line 40
aget v9, v8, v9
sub-int/2addr v6, v15
aget v6, v8, v6
invoke-virtual {v11, v9, v6}, Lcom/google/zxing/common/BitMatrix;->set(II)V
:cond_15
mul-int/lit8 v6, v14, 0x6
add-int/2addr v6, v13
add-int v6, v6, v16
add-int/2addr v6, v5
.line 41
invoke-virtual {v1, v6}, Lcom/google/zxing/common/BitArray;->get(I)Z
move-result v6
if-eqz v6, :cond_16
add-int/lit8 v6, v2, -0x1
shl-int/lit8 v9, v12, 0x1
sub-int/2addr v6, v9
sub-int/2addr v6, v15
.line 42
aget v6, v8, v6
add-int/2addr v9, v5
aget v9, v8, v9
invoke-virtual {v11, v6, v9}, Lcom/google/zxing/common/BitMatrix;->set(II)V
:cond_16
add-int/lit8 v5, v5, 0x1
const/4 v6, 0x1
const/4 v9, 0x2
goto :goto_e
:cond_17
add-int/lit8 v15, v15, 0x1
const/4 v5, 0x0
const/4 v6, 0x1
const/4 v9, 0x2
goto :goto_d
:cond_18
shl-int/lit8 v5, v14, 0x3
add-int/2addr v13, v5
add-int/lit8 v12, v12, 0x1
const/4 v5, 0x0
const/4 v6, 0x1
const/4 v9, 0x2
goto/16 :goto_b
.line 43
:cond_19
invoke-static {v11, v3, v10, v4}, Lcom/google/zxing/aztec/encoder/Encoder;->drawModeMessage(Lcom/google/zxing/common/BitMatrix;ZILcom/google/zxing/common/BitArray;)V
if-eqz v3, :cond_1a
.line 44
div-int/lit8 v1, v10, 0x2
const/4 v2, 0x5
invoke-static {v11, v1, v2}, Lcom/google/zxing/aztec/encoder/Encoder;->drawBullsEye(Lcom/google/zxing/common/BitMatrix;II)V
goto :goto_11
.line 45
:cond_1a
div-int/lit8 v1, v10, 0x2
const/4 v4, 0x7
invoke-static {v11, v1, v4}, Lcom/google/zxing/aztec/encoder/Encoder;->drawBullsEye(Lcom/google/zxing/common/BitMatrix;II)V
const/4 v4, 0x0
const/4 v5, 0x0
const/4 v6, 0x2
.line 46
:goto_f
div-int/lit8 v8, v2, 0x2
const/4 v12, 0x1
sub-int/2addr v8, v12
if-ge v4, v8, :cond_1c
and-int/lit8 v8, v1, 0x1
:goto_10
if-ge v8, v10, :cond_1b
sub-int v9, v1, v5
.line 47
invoke-virtual {v11, v9, v8}, Lcom/google/zxing/common/BitMatrix;->set(II)V
add-int v13, v1, v5
.line 48
invoke-virtual {v11, v13, v8}, Lcom/google/zxing/common/BitMatrix;->set(II)V
.line 49
invoke-virtual {v11, v8, v9}, Lcom/google/zxing/common/BitMatrix;->set(II)V
.line 50
invoke-virtual {v11, v8, v13}, Lcom/google/zxing/common/BitMatrix;->set(II)V
add-int/lit8 v8, v8, 0x2
goto :goto_10
:cond_1b
add-int/lit8 v4, v4, 0xf
add-int/lit8 v5, v5, 0x10
goto :goto_f
.line 51
:cond_1c
:goto_11
new-instance v1, Lcom/google/zxing/aztec/encoder/AztecCode;
invoke-direct {v1}, Lcom/google/zxing/aztec/encoder/AztecCode;-><init>()V
.line 52
invoke-virtual {v1, v3}, Lcom/google/zxing/aztec/encoder/AztecCode;->setCompact(Z)V
.line 53
invoke-virtual {v1, v10}, Lcom/google/zxing/aztec/encoder/AztecCode;->setSize(I)V
.line 54
invoke-virtual {v1, v7}, Lcom/google/zxing/aztec/encoder/AztecCode;->setLayers(I)V
.line 55
invoke-virtual {v1, v0}, Lcom/google/zxing/aztec/encoder/AztecCode;->setCodeWords(I)V
.line 56
invoke-virtual {v1, v11}, Lcom/google/zxing/aztec/encoder/AztecCode;->setMatrix(Lcom/google/zxing/common/BitMatrix;)V
return-object v1
:cond_1d
const/4 v12, 0x1
:goto_12
add-int/lit8 v7, v7, 0x1
const/4 v5, 0x0
const/4 v6, 0x1
goto/16 :goto_1
.line 57
:cond_1e
new-instance v0, Ljava/lang/IllegalArgumentException;
const-string v1, "Data too large for an Aztec code"
invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method private static generateCheckWords(Lcom/google/zxing/common/BitArray;II)Lcom/google/zxing/common/BitArray;
.locals 3
.line 1
invoke-virtual {p0}, Lcom/google/zxing/common/BitArray;->getSize()I
move-result v0
div-int/2addr v0, p2
.line 2
new-instance v1, Lcom/google/zxing/common/reedsolomon/ReedSolomonEncoder;
invoke-static {p2}, Lcom/google/zxing/aztec/encoder/Encoder;->getGF(I)Lcom/google/zxing/common/reedsolomon/GenericGF;
move-result-object v2
invoke-direct {v1, v2}, Lcom/google/zxing/common/reedsolomon/ReedSolomonEncoder;-><init>(Lcom/google/zxing/common/reedsolomon/GenericGF;)V
.line 3
div-int v2, p1, p2
.line 4
invoke-static {p0, p2, v2}, Lcom/google/zxing/aztec/encoder/Encoder;->bitsToWords(Lcom/google/zxing/common/BitArray;II)[I
move-result-object p0
sub-int/2addr v2, v0
.line 5
invoke-virtual {v1, p0, v2}, Lcom/google/zxing/common/reedsolomon/ReedSolomonEncoder;->encode([II)V
.line 6
rem-int/2addr p1, p2
.line 7
new-instance v0, Lcom/google/zxing/common/BitArray;
invoke-direct {v0}, Lcom/google/zxing/common/BitArray;-><init>()V
const/4 v1, 0x0
.line 8
invoke-virtual {v0, v1, p1}, Lcom/google/zxing/common/BitArray;->appendBits(II)V
.line 9
array-length p1, p0
:goto_0
if-ge v1, p1, :cond_0
aget v2, p0, v1
.line 10
invoke-virtual {v0, v2, p2}, Lcom/google/zxing/common/BitArray;->appendBits(II)V
add-int/lit8 v1, v1, 0x1
goto :goto_0
:cond_0
return-object v0
.end method
.method static generateModeMessage(ZII)Lcom/google/zxing/common/BitArray;
.locals 2
.line 1
new-instance v0, Lcom/google/zxing/common/BitArray;
invoke-direct {v0}, Lcom/google/zxing/common/BitArray;-><init>()V
const/4 v1, 0x4
if-eqz p0, :cond_0
add-int/lit8 p1, p1, -0x1
const/4 p0, 0x2
.line 2
invoke-virtual {v0, p1, p0}, Lcom/google/zxing/common/BitArray;->appendBits(II)V
add-int/lit8 p2, p2, -0x1
const/4 p0, 0x6
.line 3
invoke-virtual {v0, p2, p0}, Lcom/google/zxing/common/BitArray;->appendBits(II)V
const/16 p0, 0x1c
.line 4
invoke-static {v0, p0, v1}, Lcom/google/zxing/aztec/encoder/Encoder;->generateCheckWords(Lcom/google/zxing/common/BitArray;II)Lcom/google/zxing/common/BitArray;
move-result-object p0
goto :goto_0
:cond_0
add-int/lit8 p1, p1, -0x1
const/4 p0, 0x5
.line 5
invoke-virtual {v0, p1, p0}, Lcom/google/zxing/common/BitArray;->appendBits(II)V
add-int/lit8 p2, p2, -0x1
const/16 p0, 0xb
.line 6
invoke-virtual {v0, p2, p0}, Lcom/google/zxing/common/BitArray;->appendBits(II)V
const/16 p0, 0x28
.line 7
invoke-static {v0, p0, v1}, Lcom/google/zxing/aztec/encoder/Encoder;->generateCheckWords(Lcom/google/zxing/common/BitArray;II)Lcom/google/zxing/common/BitArray;
move-result-object p0
:goto_0
return-object p0
.end method
.method private static getGF(I)Lcom/google/zxing/common/reedsolomon/GenericGF;
.locals 2
const/4 v0, 0x4
if-eq p0, v0, :cond_4
const/4 v0, 0x6
if-eq p0, v0, :cond_3
const/16 v0, 0x8
if-eq p0, v0, :cond_2
const/16 v0, 0xa
if-eq p0, v0, :cond_1
const/16 v0, 0xc
if-ne p0, v0, :cond_0
.line 1
sget-object p0, Lcom/google/zxing/common/reedsolomon/GenericGF;->AZTEC_DATA_12:Lcom/google/zxing/common/reedsolomon/GenericGF;
return-object p0
.line 2
:cond_0
new-instance v0, Ljava/lang/IllegalArgumentException;
invoke-static {p0}, Ljava/lang/String;->valueOf(I)Ljava/lang/String;
move-result-object p0
const-string v1, "Unsupported word size "
invoke-virtual {v1, p0}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;
move-result-object p0
invoke-direct {v0, p0}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v0
.line 3
:cond_1
sget-object p0, Lcom/google/zxing/common/reedsolomon/GenericGF;->AZTEC_DATA_10:Lcom/google/zxing/common/reedsolomon/GenericGF;
return-object p0
.line 4
:cond_2
sget-object p0, Lcom/google/zxing/common/reedsolomon/GenericGF;->AZTEC_DATA_8:Lcom/google/zxing/common/reedsolomon/GenericGF;
return-object p0
.line 5
:cond_3
sget-object p0, Lcom/google/zxing/common/reedsolomon/GenericGF;->AZTEC_DATA_6:Lcom/google/zxing/common/reedsolomon/GenericGF;
return-object p0
.line 6
:cond_4
sget-object p0, Lcom/google/zxing/common/reedsolomon/GenericGF;->AZTEC_PARAM:Lcom/google/zxing/common/reedsolomon/GenericGF;
return-object p0
.end method
.method static stuffBits(Lcom/google/zxing/common/BitArray;I)Lcom/google/zxing/common/BitArray;
.locals 9
.line 1
new-instance v0, Lcom/google/zxing/common/BitArray;
invoke-direct {v0}, Lcom/google/zxing/common/BitArray;-><init>()V
.line 2
invoke-virtual {p0}, Lcom/google/zxing/common/BitArray;->getSize()I
move-result v1
const/4 v2, 0x1
shl-int v3, v2, p1
add-int/lit8 v3, v3, -0x2
const/4 v4, 0x0
const/4 v5, 0x0
:goto_0
if-ge v5, v1, :cond_5
const/4 v6, 0x0
const/4 v7, 0x0
:goto_1
if-ge v6, p1, :cond_2
add-int v8, v5, v6
if-ge v8, v1, :cond_0
.line 3
invoke-virtual {p0, v8}, Lcom/google/zxing/common/BitArray;->get(I)Z
move-result v8
if-eqz v8, :cond_1
:cond_0
add-int/lit8 v8, p1, -0x1
sub-int/2addr v8, v6
shl-int v8, v2, v8
or-int/2addr v7, v8
:cond_1
add-int/lit8 v6, v6, 0x1
goto :goto_1
:cond_2
and-int v6, v7, v3
if-ne v6, v3, :cond_3
.line 4
invoke-virtual {v0, v6, p1}, Lcom/google/zxing/common/BitArray;->appendBits(II)V
:goto_2
add-int/lit8 v5, v5, -0x1
goto :goto_3
:cond_3
if-nez v6, :cond_4
or-int/lit8 v6, v7, 0x1
.line 5
invoke-virtual {v0, v6, p1}, Lcom/google/zxing/common/BitArray;->appendBits(II)V
goto :goto_2
.line 6
:cond_4
invoke-virtual {v0, v7, p1}, Lcom/google/zxing/common/BitArray;->appendBits(II)V
:goto_3
add-int/2addr v5, p1
goto :goto_0
:cond_5
return-object v0
.end method
.method private static totalBitsInLayer(IZ)I
.locals 1
if-eqz p1, :cond_0
const/16 p1, 0x58
goto :goto_0
:cond_0
const/16 p1, 0x70
:goto_0
shl-int/lit8 v0, p0, 0x4
add-int/2addr p1, v0
mul-int p1, p1, p0
return p1
.end method