Encoder.smali

.class public final Lcom/dcloud/zxing2/aztec/encoder/Encoder;
.super Ljava/lang/Object;


# 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
    .registers 1

    const/16 v0, 0x21

    new-array v0, v0, [I

    .line 1
    fill-array-data v0, :array_a

    sput-object v0, Lcom/dcloud/zxing2/aztec/encoder/Encoder;->WORD_SIZE:[I

    return-void

    :array_a
    .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
    .registers 1

    .line 1
    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    return-void
.end method

.method private static bitsToWords(Lcom/dcloud/zxing2/common/BitArray;II)[I
    .registers 10

    .line 1
    new-array p2, p2, [I

    .line 4
    invoke-virtual {p0}, Lcom/dcloud/zxing2/common/BitArray;->getSize()I

    move-result v0

    div-int/2addr v0, p1

    const/4 v1, 0x0

    move v2, v1

    :goto_9
    if-ge v2, v0, :cond_29

    move v3, v1

    move v4, v3

    :goto_d
    if-ge v3, p1, :cond_24

    mul-int v5, v2, p1

    add-int/2addr v5, v3

    .line 7
    invoke-virtual {p0, v5}, Lcom/dcloud/zxing2/common/BitArray;->get(I)Z

    move-result v5

    if-eqz v5, :cond_1f

    sub-int v5, p1, v3

    const/4 v6, 0x1

    sub-int/2addr v5, v6

    shl-int v5, v6, v5

    goto :goto_20

    :cond_1f
    move v5, v1

    :goto_20
    or-int/2addr v4, v5

    add-int/lit8 v3, v3, 0x1

    goto :goto_d

    .line 9
    :cond_24
    aput v4, p2, v2

    add-int/lit8 v2, v2, 0x1

    goto :goto_9

    :cond_29
    return-object p2
.end method

.method private static drawBullsEye(Lcom/dcloud/zxing2/common/BitMatrix;II)V
    .registers 7

    const/4 v0, 0x0

    :goto_1
    if-ge v0, p2, :cond_1c

    sub-int v1, p1, v0

    move v2, v1

    :goto_6
    add-int v3, p1, v0

    if-gt v2, v3, :cond_19

    .line 1
    invoke-virtual {p0, v2, v1}, Lcom/dcloud/zxing2/common/BitMatrix;->set(II)V

    .line 2
    invoke-virtual {p0, v2, v3}, Lcom/dcloud/zxing2/common/BitMatrix;->set(II)V

    .line 3
    invoke-virtual {p0, v1, v2}, Lcom/dcloud/zxing2/common/BitMatrix;->set(II)V

    .line 4
    invoke-virtual {p0, v3, v2}, Lcom/dcloud/zxing2/common/BitMatrix;->set(II)V

    add-int/lit8 v2, v2, 0x1

    goto :goto_6

    :cond_19
    add-int/lit8 v0, v0, 0x2

    goto :goto_1

    :cond_1c
    sub-int v0, p1, p2

    .line 7
    invoke-virtual {p0, v0, v0}, Lcom/dcloud/zxing2/common/BitMatrix;->set(II)V

    add-int/lit8 v1, v0, 0x1

    .line 8
    invoke-virtual {p0, v1, v0}, Lcom/dcloud/zxing2/common/BitMatrix;->set(II)V

    .line 9
    invoke-virtual {p0, v0, v1}, Lcom/dcloud/zxing2/common/BitMatrix;->set(II)V

    add-int/2addr p1, p2

    .line 10
    invoke-virtual {p0, p1, v0}, Lcom/dcloud/zxing2/common/BitMatrix;->set(II)V

    .line 11
    invoke-virtual {p0, p1, v1}, Lcom/dcloud/zxing2/common/BitMatrix;->set(II)V

    add-int/lit8 p2, p1, -0x1

    .line 12
    invoke-virtual {p0, p1, p2}, Lcom/dcloud/zxing2/common/BitMatrix;->set(II)V

    return-void
.end method

.method private static drawModeMessage(Lcom/dcloud/zxing2/common/BitMatrix;ZILcom/dcloud/zxing2/common/BitArray;)V
    .registers 6

    .line 1
    div-int/lit8 p2, p2, 0x2

    const/4 v0, 0x0

    if-eqz p1, :cond_40

    :goto_5
    const/4 p1, 0x7

    if-ge v0, p1, :cond_7f

    add-int/lit8 p1, p2, -0x3

    add-int/2addr p1, v0

    .line 5
    invoke-virtual {p3, v0}, Lcom/dcloud/zxing2/common/BitArray;->get(I)Z

    move-result v1

    if-eqz v1, :cond_16

    add-int/lit8 v1, p2, -0x5

    .line 6
    invoke-virtual {p0, p1, v1}, Lcom/dcloud/zxing2/common/BitMatrix;->set(II)V

    :cond_16
    add-int/lit8 v1, v0, 0x7

    .line 8
    invoke-virtual {p3, v1}, Lcom/dcloud/zxing2/common/BitArray;->get(I)Z

    move-result v1

    if-eqz v1, :cond_23

    add-int/lit8 v1, p2, 0x5

    .line 9
    invoke-virtual {p0, v1, p1}, Lcom/dcloud/zxing2/common/BitMatrix;->set(II)V

    :cond_23
    rsub-int/lit8 v1, v0, 0x14

    .line 11
    invoke-virtual {p3, v1}, Lcom/dcloud/zxing2/common/BitArray;->get(I)Z

    move-result v1

    if-eqz v1, :cond_30

    add-int/lit8 v1, p2, 0x5

    .line 12
    invoke-virtual {p0, p1, v1}, Lcom/dcloud/zxing2/common/BitMatrix;->set(II)V

    :cond_30
    rsub-int/lit8 v1, v0, 0x1b

    .line 14
    invoke-virtual {p3, v1}, Lcom/dcloud/zxing2/common/BitArray;->get(I)Z

    move-result v1

    if-eqz v1, :cond_3d

    add-int/lit8 v1, p2, -0x5

    .line 15
    invoke-virtual {p0, v1, p1}, Lcom/dcloud/zxing2/common/BitMatrix;->set(II)V

    :cond_3d
    add-int/lit8 v0, v0, 0x1

    goto :goto_5

    :cond_40
    :goto_40
    const/16 p1, 0xa

    if-ge v0, p1, :cond_7f

    add-int/lit8 p1, p2, -0x5

    add-int/2addr p1, v0

    .line 20
    div-int/lit8 v1, v0, 0x5

    add-int/2addr p1, v1

    .line 21
    invoke-virtual {p3, v0}, Lcom/dcloud/zxing2/common/BitArray;->get(I)Z

    move-result v1

    if-eqz v1, :cond_55

    add-int/lit8 v1, p2, -0x7

    .line 22
    invoke-virtual {p0, p1, v1}, Lcom/dcloud/zxing2/common/BitMatrix;->set(II)V

    :cond_55
    add-int/lit8 v1, v0, 0xa

    .line 24
    invoke-virtual {p3, v1}, Lcom/dcloud/zxing2/common/BitArray;->get(I)Z

    move-result v1

    if-eqz v1, :cond_62

    add-int/lit8 v1, p2, 0x7

    .line 25
    invoke-virtual {p0, v1, p1}, Lcom/dcloud/zxing2/common/BitMatrix;->set(II)V

    :cond_62
    rsub-int/lit8 v1, v0, 0x1d

    .line 27
    invoke-virtual {p3, v1}, Lcom/dcloud/zxing2/common/BitArray;->get(I)Z

    move-result v1

    if-eqz v1, :cond_6f

    add-int/lit8 v1, p2, 0x7

    .line 28
    invoke-virtual {p0, p1, v1}, Lcom/dcloud/zxing2/common/BitMatrix;->set(II)V

    :cond_6f
    rsub-int/lit8 v1, v0, 0x27

    .line 30
    invoke-virtual {p3, v1}, Lcom/dcloud/zxing2/common/BitArray;->get(I)Z

    move-result v1

    if-eqz v1, :cond_7c

    add-int/lit8 v1, p2, -0x7

    .line 31
    invoke-virtual {p0, v1, p1}, Lcom/dcloud/zxing2/common/BitMatrix;->set(II)V

    :cond_7c
    add-int/lit8 v0, v0, 0x1

    goto :goto_40

    :cond_7f
    return-void
.end method

.method public static encode([B)Lcom/dcloud/zxing2/aztec/encoder/AztecCode;
    .registers 3

    const/16 v0, 0x21

    const/4 v1, 0x0

    .line 1
    invoke-static {p0, v0, v1}, Lcom/dcloud/zxing2/aztec/encoder/Encoder;->encode([BII)Lcom/dcloud/zxing2/aztec/encoder/AztecCode;

    move-result-object p0

    return-object p0
.end method

.method public static encode([BII)Lcom/dcloud/zxing2/aztec/encoder/AztecCode;
    .registers 22

    .line 2
    new-instance v0, Lcom/dcloud/zxing2/aztec/encoder/HighLevelEncoder;

    move-object/from16 v1, p0

    invoke-direct {v0, v1}, Lcom/dcloud/zxing2/aztec/encoder/HighLevelEncoder;-><init>([B)V

    invoke-virtual {v0}, Lcom/dcloud/zxing2/aztec/encoder/HighLevelEncoder;->encode()Lcom/dcloud/zxing2/common/BitArray;

    move-result-object v0

    .line 5
    invoke-virtual {v0}, Lcom/dcloud/zxing2/common/BitArray;->getSize()I

    move-result v1

    mul-int v1, v1, p1

    div-int/lit8 v1, v1, 0x64

    add-int/lit8 v1, v1, 0xb

    .line 6
    invoke-virtual {v0}, Lcom/dcloud/zxing2/common/BitArray;->getSize()I

    move-result v2

    add-int/2addr v2, v1

    const/16 v3, 0x20

    const/4 v4, 0x4

    const/4 v5, 0x0

    const/4 v6, 0x1

    if-eqz p2, :cond_74

    if-gez p2, :cond_25

    move v2, v6

    goto :goto_26

    :cond_25
    move v2, v5

    .line 14
    :goto_26
    invoke-static/range {p2 .. p2}, Ljava/lang/Math;->abs(I)I

    move-result v7

    if-eqz v2, :cond_2d

    move v3, v4

    :cond_2d
    if-gt v7, v3, :cond_60

    .line 19
    invoke-static {v7, v2}, Lcom/dcloud/zxing2/aztec/encoder/Encoder;->totalBitsInLayer(IZ)I

    move-result v3

    .line 20
    sget-object v8, Lcom/dcloud/zxing2/aztec/encoder/Encoder;->WORD_SIZE:[I

    aget v8, v8, v7

    .line 21
    rem-int v9, v3, v8

    sub-int v9, v3, v9

    .line 22
    invoke-static {v0, v8}, Lcom/dcloud/zxing2/aztec/encoder/Encoder;->stuffBits(Lcom/dcloud/zxing2/common/BitArray;I)Lcom/dcloud/zxing2/common/BitArray;

    move-result-object v0

    .line 23
    invoke-virtual {v0}, Lcom/dcloud/zxing2/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_5a

    if-eqz v2, :cond_ba

    .line 26
    invoke-virtual {v0}, Lcom/dcloud/zxing2/common/BitArray;->getSize()I

    move-result v9

    mul-int/lit8 v10, v8, 0x40

    if-gt v9, v10, :cond_54

    goto/16 :goto_ba

    .line 28
    :cond_54
    new-instance v0, Ljava/lang/IllegalArgumentException;

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

    throw v0

    .line 29
    :cond_5a
    new-instance v0, Ljava/lang/IllegalArgumentException;

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

    throw v0

    .line 30
    :cond_60
    new-instance v0, Ljava/lang/IllegalArgumentException;

    new-array v1, v6, [Ljava/lang/Object;

    .line 31
    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_74
    const/4 v7, 0x0

    move v8, v5

    move v9, v8

    :goto_77
    if-gt v8, v3, :cond_1ef

    const/4 v10, 0x3

    if-gt v8, v10, :cond_7e

    move v10, v6

    goto :goto_7f

    :cond_7e
    move v10, v5

    :goto_7f
    if-eqz v10, :cond_84

    add-int/lit8 v11, v8, 0x1

    goto :goto_85

    :cond_84
    move v11, v8

    .line 56
    :goto_85
    invoke-static {v11, v10}, Lcom/dcloud/zxing2/aztec/encoder/Encoder;->totalBitsInLayer(IZ)I

    move-result v12

    if-le v2, v12, :cond_8e

    :cond_8b
    :goto_8b
    move v10, v6

    goto/16 :goto_1e8

    .line 62
    :cond_8e
    sget-object v13, Lcom/dcloud/zxing2/aztec/encoder/Encoder;->WORD_SIZE:[I

    aget v14, v13, v11

    if-eq v9, v14, :cond_9f

    .line 63
    aget v7, v13, v11

    .line 64
    invoke-static {v0, v7}, Lcom/dcloud/zxing2/aztec/encoder/Encoder;->stuffBits(Lcom/dcloud/zxing2/common/BitArray;I)Lcom/dcloud/zxing2/common/BitArray;

    move-result-object v9

    move-object/from16 v18, v9

    move v9, v7

    move-object/from16 v7, v18

    .line 66
    :cond_9f
    rem-int v13, v12, v9

    sub-int v13, v12, v13

    if-eqz v10, :cond_ae

    .line 67
    invoke-virtual {v7}, Lcom/dcloud/zxing2/common/BitArray;->getSize()I

    move-result v14

    mul-int/lit8 v15, v9, 0x40

    if-le v14, v15, :cond_ae

    goto :goto_8b

    .line 71
    :cond_ae
    invoke-virtual {v7}, Lcom/dcloud/zxing2/common/BitArray;->getSize()I

    move-result v14

    add-int/2addr v14, v1

    if-gt v14, v13, :cond_8b

    move-object v0, v7

    move v8, v9

    move v2, v10

    move v7, v11

    move v3, v12

    .line 76
    :cond_ba
    :goto_ba
    invoke-static {v0, v3, v8}, Lcom/dcloud/zxing2/aztec/encoder/Encoder;->generateCheckWords(Lcom/dcloud/zxing2/common/BitArray;II)Lcom/dcloud/zxing2/common/BitArray;

    move-result-object v1

    .line 79
    invoke-virtual {v0}, Lcom/dcloud/zxing2/common/BitArray;->getSize()I

    move-result v0

    div-int/2addr v0, v8

    .line 80
    invoke-static {v2, v7, v0}, Lcom/dcloud/zxing2/aztec/encoder/Encoder;->generateModeMessage(ZII)Lcom/dcloud/zxing2/common/BitArray;

    move-result-object v3

    mul-int/lit8 v8, v7, 0x4

    if-eqz v2, :cond_ce

    add-int/lit8 v8, v8, 0xb

    goto :goto_d0

    :cond_ce
    add-int/lit8 v8, v8, 0xe

    .line 84
    :goto_d0
    new-array v9, v8, [I

    const/4 v10, 0x2

    if-eqz v2, :cond_df

    move v11, v5

    :goto_d6
    if-ge v11, v8, :cond_dd

    .line 90
    aput v11, v9, v11

    add-int/lit8 v11, v11, 0x1

    goto :goto_d6

    :cond_dd
    move v11, v8

    goto :goto_104

    :cond_df
    add-int/lit8 v11, v8, 0x1

    .line 93
    div-int/lit8 v12, v8, 0x2

    add-int/lit8 v13, v12, -0x1

    div-int/lit8 v13, v13, 0xf

    mul-int/2addr v13, v10

    add-int/2addr v11, v13

    .line 95
    div-int/lit8 v13, v11, 0x2

    move v14, v5

    :goto_ec
    if-ge v14, v12, :cond_104

    .line 97
    div-int/lit8 v15, v14, 0xf

    add-int/2addr v15, v14

    sub-int v16, v12, v14

    add-int/lit8 v16, v16, -0x1

    sub-int v17, v13, v15

    add-int/lit8 v17, v17, -0x1

    .line 98
    aput v17, v9, v16

    add-int v16, v12, v14

    add-int/2addr v15, v13

    add-int/2addr v15, v6

    .line 99
    aput v15, v9, v16

    add-int/lit8 v14, v14, 0x1

    goto :goto_ec

    .line 102
    :cond_104
    :goto_104
    new-instance v12, Lcom/dcloud/zxing2/common/BitMatrix;

    invoke-direct {v12, v11}, Lcom/dcloud/zxing2/common/BitMatrix;-><init>(I)V

    move v13, v5

    move v14, v13

    :goto_10b
    if-ge v13, v7, :cond_19c

    sub-int v15, v7, v13

    mul-int/2addr v15, v4

    if-eqz v2, :cond_115

    add-int/lit8 v15, v15, 0x9

    goto :goto_117

    :cond_115
    add-int/lit8 v15, v15, 0xc

    :goto_117
    move v4, v5

    :goto_118
    if-ge v4, v15, :cond_191

    mul-int/lit8 v16, v4, 0x2

    :goto_11c
    if-ge v5, v10, :cond_18b

    add-int v17, v14, v16

    add-int v6, v17, v5

    .line 110
    invoke-virtual {v1, v6}, Lcom/dcloud/zxing2/common/BitArray;->get(I)Z

    move-result v6

    if-eqz v6, :cond_134

    mul-int/lit8 v6, v13, 0x2

    add-int v17, v6, v5

    .line 111
    aget v10, v9, v17

    add-int/2addr v6, v4

    aget v6, v9, v6

    invoke-virtual {v12, v10, v6}, Lcom/dcloud/zxing2/common/BitMatrix;->set(II)V

    :cond_134
    mul-int/lit8 v6, v15, 0x2

    add-int/2addr v6, v14

    add-int v6, v6, v16

    add-int/2addr v6, v5

    .line 113
    invoke-virtual {v1, v6}, Lcom/dcloud/zxing2/common/BitArray;->get(I)Z

    move-result v6

    if-eqz v6, :cond_151

    mul-int/lit8 v6, v13, 0x2

    add-int v10, v6, v4

    .line 114
    aget v10, v9, v10

    add-int/lit8 v17, v8, -0x1

    sub-int v17, v17, v6

    sub-int v17, v17, v5

    aget v6, v9, v17

    invoke-virtual {v12, v10, v6}, Lcom/dcloud/zxing2/common/BitMatrix;->set(II)V

    :cond_151
    mul-int/lit8 v6, v15, 0x4

    add-int/2addr v6, v14

    add-int v6, v6, v16

    add-int/2addr v6, v5

    .line 116
    invoke-virtual {v1, v6}, Lcom/dcloud/zxing2/common/BitArray;->get(I)Z

    move-result v6

    if-eqz v6, :cond_16c

    add-int/lit8 v6, v8, -0x1

    mul-int/lit8 v10, v13, 0x2

    sub-int/2addr v6, v10

    sub-int v10, v6, v5

    .line 117
    aget v10, v9, v10

    sub-int/2addr v6, v4

    aget v6, v9, v6

    invoke-virtual {v12, v10, v6}, Lcom/dcloud/zxing2/common/BitMatrix;->set(II)V

    :cond_16c
    mul-int/lit8 v6, v15, 0x6

    add-int/2addr v6, v14

    add-int v6, v6, v16

    add-int/2addr v6, v5

    .line 119
    invoke-virtual {v1, v6}, Lcom/dcloud/zxing2/common/BitArray;->get(I)Z

    move-result v6

    if-eqz v6, :cond_186

    add-int/lit8 v6, v8, -0x1

    mul-int/lit8 v10, v13, 0x2

    sub-int/2addr v6, v10

    sub-int/2addr v6, v4

    .line 120
    aget v6, v9, v6

    add-int/2addr v10, v5

    aget v10, v9, v10

    invoke-virtual {v12, v6, v10}, Lcom/dcloud/zxing2/common/BitMatrix;->set(II)V

    :cond_186
    add-int/lit8 v5, v5, 0x1

    const/4 v6, 0x1

    const/4 v10, 0x2

    goto :goto_11c

    :cond_18b
    add-int/lit8 v4, v4, 0x1

    const/4 v5, 0x0

    const/4 v6, 0x1

    const/4 v10, 0x2

    goto :goto_118

    :cond_191
    mul-int/lit8 v15, v15, 0x8

    add-int/2addr v14, v15

    add-int/lit8 v13, v13, 0x1

    const/4 v4, 0x4

    const/4 v5, 0x0

    const/4 v6, 0x1

    const/4 v10, 0x2

    goto/16 :goto_10b

    .line 128
    :cond_19c
    invoke-static {v12, v2, v11, v3}, Lcom/dcloud/zxing2/aztec/encoder/Encoder;->drawModeMessage(Lcom/dcloud/zxing2/common/BitMatrix;ZILcom/dcloud/zxing2/common/BitArray;)V

    if-eqz v2, :cond_1a8

    .line 132
    div-int/lit8 v1, v11, 0x2

    const/4 v3, 0x5

    invoke-static {v12, v1, v3}, Lcom/dcloud/zxing2/aztec/encoder/Encoder;->drawBullsEye(Lcom/dcloud/zxing2/common/BitMatrix;II)V

    goto :goto_1d3

    .line 134
    :cond_1a8
    div-int/lit8 v1, v11, 0x2

    const/4 v3, 0x7

    invoke-static {v12, v1, v3}, Lcom/dcloud/zxing2/aztec/encoder/Encoder;->drawBullsEye(Lcom/dcloud/zxing2/common/BitMatrix;II)V

    const/4 v3, 0x0

    const/4 v4, 0x2

    const/4 v5, 0x0

    .line 135
    :goto_1b1
    div-int/lit8 v6, v8, 0x2

    const/4 v10, 0x1

    sub-int/2addr v6, v10

    if-ge v5, v6, :cond_1d3

    and-int/lit8 v6, v1, 0x1

    :goto_1b9
    if-ge v6, v11, :cond_1ce

    sub-int v9, v1, v3

    .line 137
    invoke-virtual {v12, v9, v6}, Lcom/dcloud/zxing2/common/BitMatrix;->set(II)V

    add-int v13, v1, v3

    .line 138
    invoke-virtual {v12, v13, v6}, Lcom/dcloud/zxing2/common/BitMatrix;->set(II)V

    .line 139
    invoke-virtual {v12, v6, v9}, Lcom/dcloud/zxing2/common/BitMatrix;->set(II)V

    .line 140
    invoke-virtual {v12, v6, v13}, Lcom/dcloud/zxing2/common/BitMatrix;->set(II)V

    add-int/lit8 v6, v6, 0x2

    goto :goto_1b9

    :cond_1ce
    add-int/lit8 v5, v5, 0xf

    add-int/lit8 v3, v3, 0x10

    goto :goto_1b1

    .line 145
    :cond_1d3
    :goto_1d3
    new-instance v1, Lcom/dcloud/zxing2/aztec/encoder/AztecCode;

    invoke-direct {v1}, Lcom/dcloud/zxing2/aztec/encoder/AztecCode;-><init>()V

    .line 146
    invoke-virtual {v1, v2}, Lcom/dcloud/zxing2/aztec/encoder/AztecCode;->setCompact(Z)V

    .line 147
    invoke-virtual {v1, v11}, Lcom/dcloud/zxing2/aztec/encoder/AztecCode;->setSize(I)V

    .line 148
    invoke-virtual {v1, v7}, Lcom/dcloud/zxing2/aztec/encoder/AztecCode;->setLayers(I)V

    .line 149
    invoke-virtual {v1, v0}, Lcom/dcloud/zxing2/aztec/encoder/AztecCode;->setCodeWords(I)V

    .line 150
    invoke-virtual {v1, v12}, Lcom/dcloud/zxing2/aztec/encoder/AztecCode;->setMatrix(Lcom/dcloud/zxing2/common/BitMatrix;)V

    return-object v1

    :goto_1e8
    add-int/lit8 v8, v8, 0x1

    move v6, v10

    const/4 v4, 0x4

    const/4 v5, 0x0

    goto/16 :goto_77

    .line 151
    :cond_1ef
    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/dcloud/zxing2/common/BitArray;II)Lcom/dcloud/zxing2/common/BitArray;
    .registers 6

    .line 1
    invoke-virtual {p0}, Lcom/dcloud/zxing2/common/BitArray;->getSize()I

    move-result v0

    div-int/2addr v0, p2

    .line 2
    new-instance v1, Lcom/dcloud/zxing2/common/reedsolomon/ReedSolomonEncoder;

    invoke-static {p2}, Lcom/dcloud/zxing2/aztec/encoder/Encoder;->getGF(I)Lcom/dcloud/zxing2/common/reedsolomon/GenericGF;

    move-result-object v2

    invoke-direct {v1, v2}, Lcom/dcloud/zxing2/common/reedsolomon/ReedSolomonEncoder;-><init>(Lcom/dcloud/zxing2/common/reedsolomon/GenericGF;)V

    .line 3
    div-int v2, p1, p2

    .line 4
    invoke-static {p0, p2, v2}, Lcom/dcloud/zxing2/aztec/encoder/Encoder;->bitsToWords(Lcom/dcloud/zxing2/common/BitArray;II)[I

    move-result-object p0

    sub-int/2addr v2, v0

    .line 5
    invoke-virtual {v1, p0, v2}, Lcom/dcloud/zxing2/common/reedsolomon/ReedSolomonEncoder;->encode([II)V

    .line 6
    rem-int/2addr p1, p2

    .line 7
    new-instance v0, Lcom/dcloud/zxing2/common/BitArray;

    invoke-direct {v0}, Lcom/dcloud/zxing2/common/BitArray;-><init>()V

    const/4 v1, 0x0

    .line 8
    invoke-virtual {v0, v1, p1}, Lcom/dcloud/zxing2/common/BitArray;->appendBits(II)V

    .line 9
    array-length p1, p0

    :goto_23
    if-ge v1, p1, :cond_2d

    aget v2, p0, v1

    .line 10
    invoke-virtual {v0, v2, p2}, Lcom/dcloud/zxing2/common/BitArray;->appendBits(II)V

    add-int/lit8 v1, v1, 0x1

    goto :goto_23

    :cond_2d
    return-object v0
.end method

.method static generateModeMessage(ZII)Lcom/dcloud/zxing2/common/BitArray;
    .registers 5

    .line 1
    new-instance v0, Lcom/dcloud/zxing2/common/BitArray;

    invoke-direct {v0}, Lcom/dcloud/zxing2/common/BitArray;-><init>()V

    const/4 v1, 0x4

    if-eqz p0, :cond_1b

    add-int/lit8 p1, p1, -0x1

    const/4 p0, 0x2

    .line 3
    invoke-virtual {v0, p1, p0}, Lcom/dcloud/zxing2/common/BitArray;->appendBits(II)V

    add-int/lit8 p2, p2, -0x1

    const/4 p0, 0x6

    .line 4
    invoke-virtual {v0, p2, p0}, Lcom/dcloud/zxing2/common/BitArray;->appendBits(II)V

    const/16 p0, 0x1c

    .line 5
    invoke-static {v0, p0, v1}, Lcom/dcloud/zxing2/aztec/encoder/Encoder;->generateCheckWords(Lcom/dcloud/zxing2/common/BitArray;II)Lcom/dcloud/zxing2/common/BitArray;

    move-result-object p0

    goto :goto_2e

    :cond_1b
    add-int/lit8 p1, p1, -0x1

    const/4 p0, 0x5

    .line 7
    invoke-virtual {v0, p1, p0}, Lcom/dcloud/zxing2/common/BitArray;->appendBits(II)V

    add-int/lit8 p2, p2, -0x1

    const/16 p0, 0xb

    .line 8
    invoke-virtual {v0, p2, p0}, Lcom/dcloud/zxing2/common/BitArray;->appendBits(II)V

    const/16 p0, 0x28

    .line 9
    invoke-static {v0, p0, v1}, Lcom/dcloud/zxing2/aztec/encoder/Encoder;->generateCheckWords(Lcom/dcloud/zxing2/common/BitArray;II)Lcom/dcloud/zxing2/common/BitArray;

    move-result-object p0

    :goto_2e
    return-object p0
.end method

.method private static getGF(I)Lcom/dcloud/zxing2/common/reedsolomon/GenericGF;
    .registers 4

    const/4 v0, 0x4

    if-eq p0, v0, :cond_35

    const/4 v0, 0x6

    if-eq p0, v0, :cond_32

    const/16 v0, 0x8

    if-eq p0, v0, :cond_2f

    const/16 v0, 0xa

    if-eq p0, v0, :cond_2c

    const/16 v0, 0xc

    if-ne p0, v0, :cond_15

    .line 1
    sget-object p0, Lcom/dcloud/zxing2/common/reedsolomon/GenericGF;->AZTEC_DATA_12:Lcom/dcloud/zxing2/common/reedsolomon/GenericGF;

    return-object p0

    .line 3
    :cond_15
    new-instance v0, Ljava/lang/IllegalArgumentException;

    new-instance v1, Ljava/lang/StringBuilder;

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

    const-string v2, "Unsupported word size "

    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object p0

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

    throw v0

    .line 4
    :cond_2c
    sget-object p0, Lcom/dcloud/zxing2/common/reedsolomon/GenericGF;->AZTEC_DATA_10:Lcom/dcloud/zxing2/common/reedsolomon/GenericGF;

    return-object p0

    .line 5
    :cond_2f
    sget-object p0, Lcom/dcloud/zxing2/common/reedsolomon/GenericGF;->AZTEC_DATA_8:Lcom/dcloud/zxing2/common/reedsolomon/GenericGF;

    return-object p0

    .line 6
    :cond_32
    sget-object p0, Lcom/dcloud/zxing2/common/reedsolomon/GenericGF;->AZTEC_DATA_6:Lcom/dcloud/zxing2/common/reedsolomon/GenericGF;

    return-object p0

    .line 7
    :cond_35
    sget-object p0, Lcom/dcloud/zxing2/common/reedsolomon/GenericGF;->AZTEC_PARAM:Lcom/dcloud/zxing2/common/reedsolomon/GenericGF;

    return-object p0
.end method

.method static stuffBits(Lcom/dcloud/zxing2/common/BitArray;I)Lcom/dcloud/zxing2/common/BitArray;
    .registers 11

    .line 1
    new-instance v0, Lcom/dcloud/zxing2/common/BitArray;

    invoke-direct {v0}, Lcom/dcloud/zxing2/common/BitArray;-><init>()V

    .line 3
    invoke-virtual {p0}, Lcom/dcloud/zxing2/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

    move v5, v4

    :goto_10
    if-ge v5, v1, :cond_40

    move v6, v4

    move v7, v6

    :goto_14
    if-ge v6, p1, :cond_29

    add-int v8, v5, v6

    if-ge v8, v1, :cond_20

    .line 8
    invoke-virtual {p0, v8}, Lcom/dcloud/zxing2/common/BitArray;->get(I)Z

    move-result v8

    if-eqz v8, :cond_26

    :cond_20
    add-int/lit8 v8, p1, -0x1

    sub-int/2addr v8, v6

    shl-int v8, v2, v8

    or-int/2addr v7, v8

    :cond_26
    add-int/lit8 v6, v6, 0x1

    goto :goto_14

    :cond_29
    and-int v6, v7, v3

    if-ne v6, v3, :cond_33

    .line 13
    invoke-virtual {v0, v6, p1}, Lcom/dcloud/zxing2/common/BitArray;->appendBits(II)V

    :goto_30
    add-int/lit8 v5, v5, -0x1

    goto :goto_3e

    :cond_33
    if-nez v6, :cond_3b

    or-int/lit8 v6, v7, 0x1

    .line 16
    invoke-virtual {v0, v6, p1}, Lcom/dcloud/zxing2/common/BitArray;->appendBits(II)V

    goto :goto_30

    .line 19
    :cond_3b
    invoke-virtual {v0, v7, p1}, Lcom/dcloud/zxing2/common/BitArray;->appendBits(II)V

    :goto_3e
    add-int/2addr v5, p1

    goto :goto_10

    :cond_40
    return-object v0
.end method

.method private static totalBitsInLayer(IZ)I
    .registers 3

    if-eqz p1, :cond_5

    const/16 p1, 0x58

    goto :goto_7

    :cond_5
    const/16 p1, 0x70

    :goto_7
    mul-int/lit8 v0, p0, 0x10

    add-int/2addr p1, v0

    mul-int/2addr p1, p0

    return p1
.end method