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