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