Encoder.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
.registers 1
.line 36
const/16 v0, 0x21
new-array v0, v0, [I
fill-array-data v0, :array_a
sput-object v0, Lcom/google/zxing/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 41
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 42
return-void
.end method
.method private static bitsToWords(Lcom/google/zxing/common/BitArray;II)[I
.registers 10
.param p0, "stuffedBits" # Lcom/google/zxing/common/BitArray;
.param p1, "wordSize" # I
.param p2, "totalWords" # I
.line 288
new-array v0, p2, [I
.line 291
.local v0, "message":[I
const/4 v1, 0x0
.local v1, "i":I
invoke-virtual {p0}, Lcom/google/zxing/common/BitArray;->getSize()I
move-result v2
div-int/2addr v2, p1
.local v2, "n":I
:goto_8
if-ge v1, v2, :cond_28
.line 292
const/4 v3, 0x0
.line 293
.local v3, "value":I
const/4 v4, 0x0
.local v4, "j":I
:goto_c
if-ge v4, p1, :cond_23
.line 294
mul-int v5, v1, p1
add-int/2addr v5, v4
invoke-virtual {p0, v5}, Lcom/google/zxing/common/BitArray;->get(I)Z
move-result v5
if-eqz v5, :cond_1e
sub-int v5, p1, v4
const/4 v6, 0x1
sub-int/2addr v5, v6
shl-int v5, v6, v5
goto :goto_1f
:cond_1e
const/4 v5, 0x0
:goto_1f
or-int/2addr v3, v5
.line 293
add-int/lit8 v4, v4, 0x1
goto :goto_c
.line 296
.end local v4 # "j":I
:cond_23
aput v3, v0, v1
.line 291
.end local v3 # "value":I
add-int/lit8 v1, v1, 0x1
goto :goto_8
.line 298
:cond_28
return-object v0
.end method
.method private static drawBullsEye(Lcom/google/zxing/common/BitMatrix;II)V
.registers 6
.param p0, "matrix" # Lcom/google/zxing/common/BitMatrix;
.param p1, "center" # I
.param p2, "size" # I
.line 204
const/4 v0, 0x0
.local v0, "i":I
:goto_1
if-ge v0, p2, :cond_23
.line 205
sub-int v1, p1, v0
.local v1, "j":I
:goto_5
add-int v2, p1, v0
if-gt v1, v2, :cond_20
.line 206
sub-int v2, p1, v0
invoke-virtual {p0, v1, v2}, Lcom/google/zxing/common/BitMatrix;->set(II)V
.line 207
add-int v2, p1, v0
invoke-virtual {p0, v1, v2}, Lcom/google/zxing/common/BitMatrix;->set(II)V
.line 208
sub-int v2, p1, v0
invoke-virtual {p0, v2, v1}, Lcom/google/zxing/common/BitMatrix;->set(II)V
.line 209
add-int v2, p1, v0
invoke-virtual {p0, v2, v1}, Lcom/google/zxing/common/BitMatrix;->set(II)V
.line 205
add-int/lit8 v1, v1, 0x1
goto :goto_5
.line 204
.end local v1 # "j":I
:cond_20
add-int/lit8 v0, v0, 0x2
goto :goto_1
.line 212
.end local v0 # "i":I
:cond_23
sub-int v0, p1, p2
sub-int v1, p1, p2
invoke-virtual {p0, v0, v1}, Lcom/google/zxing/common/BitMatrix;->set(II)V
.line 213
sub-int v0, p1, p2
add-int/lit8 v0, v0, 0x1
sub-int v1, p1, p2
invoke-virtual {p0, v0, v1}, Lcom/google/zxing/common/BitMatrix;->set(II)V
.line 214
sub-int v0, p1, p2
sub-int v1, p1, p2
add-int/lit8 v1, v1, 0x1
invoke-virtual {p0, v0, v1}, Lcom/google/zxing/common/BitMatrix;->set(II)V
.line 215
add-int v0, p1, p2
sub-int v1, p1, p2
invoke-virtual {p0, v0, v1}, Lcom/google/zxing/common/BitMatrix;->set(II)V
.line 216
add-int v0, p1, p2
sub-int v1, p1, p2
add-int/lit8 v1, v1, 0x1
invoke-virtual {p0, v0, v1}, Lcom/google/zxing/common/BitMatrix;->set(II)V
.line 217
add-int v0, p1, p2
add-int v1, p1, p2
add-int/lit8 v1, v1, -0x1
invoke-virtual {p0, v0, v1}, Lcom/google/zxing/common/BitMatrix;->set(II)V
.line 218
return-void
.end method
.method private static drawModeMessage(Lcom/google/zxing/common/BitMatrix;ZILcom/google/zxing/common/BitArray;)V
.registers 8
.param p0, "matrix" # Lcom/google/zxing/common/BitMatrix;
.param p1, "compact" # Z
.param p2, "matrixSize" # I
.param p3, "modeMessage" # Lcom/google/zxing/common/BitArray;
.line 235
div-int/lit8 v0, p2, 0x2
.line 236
.local v0, "center":I
if-eqz p1, :cond_41
.line 237
const/4 v1, 0x0
.local v1, "i":I
:goto_5
const/4 v2, 0x7
if-ge v1, v2, :cond_40
.line 238
add-int/lit8 v2, v0, -0x3
add-int/2addr v2, v1
.line 239
.local v2, "offset":I
invoke-virtual {p3, v1}, Lcom/google/zxing/common/BitArray;->get(I)Z
move-result v3
if-eqz v3, :cond_16
.line 240
add-int/lit8 v3, v0, -0x5
invoke-virtual {p0, v2, v3}, Lcom/google/zxing/common/BitMatrix;->set(II)V
.line 242
:cond_16
add-int/lit8 v3, v1, 0x7
invoke-virtual {p3, v3}, Lcom/google/zxing/common/BitArray;->get(I)Z
move-result v3
if-eqz v3, :cond_23
.line 243
add-int/lit8 v3, v0, 0x5
invoke-virtual {p0, v3, v2}, Lcom/google/zxing/common/BitMatrix;->set(II)V
.line 245
:cond_23
rsub-int/lit8 v3, v1, 0x14
invoke-virtual {p3, v3}, Lcom/google/zxing/common/BitArray;->get(I)Z
move-result v3
if-eqz v3, :cond_30
.line 246
add-int/lit8 v3, v0, 0x5
invoke-virtual {p0, v2, v3}, Lcom/google/zxing/common/BitMatrix;->set(II)V
.line 248
:cond_30
rsub-int/lit8 v3, v1, 0x1b
invoke-virtual {p3, v3}, Lcom/google/zxing/common/BitArray;->get(I)Z
move-result v3
if-eqz v3, :cond_3d
.line 249
add-int/lit8 v3, v0, -0x5
invoke-virtual {p0, v3, v2}, Lcom/google/zxing/common/BitMatrix;->set(II)V
.line 237
.end local v2 # "offset":I
:cond_3d
add-int/lit8 v1, v1, 0x1
goto :goto_5
.end local v1 # "i":I
:cond_40
return-void
.line 253
:cond_41
const/4 v1, 0x0
.restart local v1 # "i":I
:goto_42
const/16 v2, 0xa
if-ge v1, v2, :cond_81
.line 254
add-int/lit8 v2, v0, -0x5
add-int/2addr v2, v1
div-int/lit8 v3, v1, 0x5
add-int/2addr v2, v3
.line 255
.restart local v2 # "offset":I
invoke-virtual {p3, v1}, Lcom/google/zxing/common/BitArray;->get(I)Z
move-result v3
if-eqz v3, :cond_57
.line 256
add-int/lit8 v3, v0, -0x7
invoke-virtual {p0, v2, v3}, Lcom/google/zxing/common/BitMatrix;->set(II)V
.line 258
:cond_57
add-int/lit8 v3, v1, 0xa
invoke-virtual {p3, v3}, Lcom/google/zxing/common/BitArray;->get(I)Z
move-result v3
if-eqz v3, :cond_64
.line 259
add-int/lit8 v3, v0, 0x7
invoke-virtual {p0, v3, v2}, Lcom/google/zxing/common/BitMatrix;->set(II)V
.line 261
:cond_64
rsub-int/lit8 v3, v1, 0x1d
invoke-virtual {p3, v3}, Lcom/google/zxing/common/BitArray;->get(I)Z
move-result v3
if-eqz v3, :cond_71
.line 262
add-int/lit8 v3, v0, 0x7
invoke-virtual {p0, v2, v3}, Lcom/google/zxing/common/BitMatrix;->set(II)V
.line 264
:cond_71
rsub-int/lit8 v3, v1, 0x27
invoke-virtual {p3, v3}, Lcom/google/zxing/common/BitArray;->get(I)Z
move-result v3
if-eqz v3, :cond_7e
.line 265
add-int/lit8 v3, v0, -0x7
invoke-virtual {p0, v3, v2}, Lcom/google/zxing/common/BitMatrix;->set(II)V
.line 253
.end local v2 # "offset":I
:cond_7e
add-int/lit8 v1, v1, 0x1
goto :goto_42
.line 269
.end local v1 # "i":I
:cond_81
return-void
.end method
.method public static encode([B)Lcom/google/zxing/aztec/encoder/AztecCode;
.registers 3
.param p0, "data" # [B
.line 51
const/16 v0, 0x21
const/4 v1, 0x0
invoke-static {p0, v0, v1}, Lcom/google/zxing/aztec/encoder/Encoder;->encode([BII)Lcom/google/zxing/aztec/encoder/AztecCode;
move-result-object v0
return-object v0
.end method
.method public static encode([BII)Lcom/google/zxing/aztec/encoder/AztecCode;
.registers 22
.line 65
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 68
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 69
invoke-virtual {v0}, Lcom/google/zxing/common/BitArray;->getSize()I
move-result v3
add-int/2addr v3, v1
.line 75
const/16 v4, 0x20
const/4 v5, 0x0
const/4 v6, 0x1
if-eqz p2, :cond_75
.line 76
if-gez p2, :cond_25
const/4 v3, 0x1
goto :goto_26
:cond_25
const/4 v3, 0x0
.line 77
:goto_26
invoke-static/range {p2 .. p2}, Ljava/lang/Math;->abs(I)I
move-result v7
.line 78
if-eqz v3, :cond_2d
const/4 v4, 0x4
:cond_2d
if-gt v7, v4, :cond_61
.line 82
invoke-static {v7, v3}, Lcom/google/zxing/aztec/encoder/Encoder;->totalBitsInLayer(IZ)I
move-result v4
.line 83
sget-object v8, Lcom/google/zxing/aztec/encoder/Encoder;->WORD_SIZE:[I
aget v8, v8, v7
.line 84
rem-int v9, v4, v8
sub-int v9, v4, v9
.line 85
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 86
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_5b
.line 89
if-eqz v3, :cond_59
invoke-virtual {v0}, Lcom/google/zxing/common/BitArray;->getSize()I
move-result v9
shl-int/lit8 v10, v8, 0x6
if-gt v9, v10, :cond_53
goto :goto_59
.line 91
:cond_53
new-instance v0, Ljava/lang/IllegalArgumentException;
invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v0
.line 93
:cond_59
:goto_59
goto/16 :goto_bf
.line 87
:cond_5b
new-instance v0, Ljava/lang/IllegalArgumentException;
invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v0
.line 79
:cond_61
new-instance v0, Ljava/lang/IllegalArgumentException;
new-array v1, v6, [Ljava/lang/Object;
.line 80
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
.line 94
:cond_75
nop
.line 95
const/4 v7, 0x0
.line 99
const/4 v8, 0x0
const/4 v9, 0x0
.line 100
:goto_79
if-gt v8, v4, :cond_1f6
.line 103
const/4 v10, 0x3
if-gt v8, v10, :cond_80
const/4 v10, 0x1
goto :goto_81
:cond_80
const/4 v10, 0x0
.line 104
:goto_81
if-eqz v10, :cond_86
add-int/lit8 v11, v8, 0x1
goto :goto_87
:cond_86
move v11, v8
.line 105
:goto_87
invoke-static {v11, v10}, Lcom/google/zxing/aztec/encoder/Encoder;->totalBitsInLayer(IZ)I
move-result v12
.line 106
if-gt v3, v12, :cond_1ef
.line 111
if-eqz v7, :cond_95
sget-object v13, Lcom/google/zxing/aztec/encoder/Encoder;->WORD_SIZE:[I
aget v13, v13, v11
if-eq v9, v13, :cond_a2
.line 112
:cond_95
sget-object v7, Lcom/google/zxing/aztec/encoder/Encoder;->WORD_SIZE:[I
aget v7, v7, v11
.line 113
invoke-static {v0, v7}, Lcom/google/zxing/aztec/encoder/Encoder;->stuffBits(Lcom/google/zxing/common/BitArray;I)Lcom/google/zxing/common/BitArray;
move-result-object v9
move-object/from16 v18, v9
move v9, v7
move-object/from16 v7, v18
.line 115
:cond_a2
rem-int v13, v12, v9
sub-int v13, v12, v13
.line 116
if-eqz v10, :cond_b0
invoke-virtual {v7}, Lcom/google/zxing/common/BitArray;->getSize()I
move-result v14
shl-int/lit8 v15, v9, 0x6
if-gt v14, v15, :cond_b7
.line 120
:cond_b0
invoke-virtual {v7}, Lcom/google/zxing/common/BitArray;->getSize()I
move-result v14
add-int/2addr v14, v1
if-le v14, v13, :cond_ba
.line 99
:cond_b7
const/4 v12, 0x1
goto/16 :goto_1f0
.line 120
:cond_ba
move-object v0, v7
move v8, v9
move v3, v10
move v7, v11
move v4, v12
.line 125
:goto_bf
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 128
invoke-virtual {v0}, Lcom/google/zxing/common/BitArray;->getSize()I
move-result v0
div-int/2addr v0, v8
.line 129
invoke-static {v3, v7, v0}, Lcom/google/zxing/aztec/encoder/Encoder;->generateModeMessage(ZII)Lcom/google/zxing/common/BitArray;
move-result-object v4
.line 132
if-eqz v3, :cond_cf
goto :goto_d1
:cond_cf
const/16 v2, 0xe
:goto_d1
shl-int/lit8 v8, v7, 0x2
add-int/2addr v2, v8
.line 133
new-array v8, v2, [I
.line 135
const/4 v9, 0x2
if-eqz v3, :cond_e4
.line 137
nop
.line 138
const/4 v10, 0x0
:goto_db
if-ge v10, v2, :cond_e2
.line 139
aput v10, v8, v10
.line 138
add-int/lit8 v10, v10, 0x1
goto :goto_db
:cond_e2
move v10, v2
goto :goto_10a
.line 142
:cond_e4
add-int/lit8 v10, v2, 0x1
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 143
nop
.line 144
div-int/lit8 v12, v10, 0x2
.line 145
const/4 v13, 0x0
:goto_f3
if-ge v13, v11, :cond_10a
.line 146
div-int/lit8 v14, v13, 0xf
add-int/2addr v14, v13
.line 147
sub-int v15, v11, v13
sub-int/2addr v15, v6
sub-int v16, v12, v14
add-int/lit8 v16, v16, -0x1
aput v16, v8, v15
.line 148
add-int v15, v11, v13
add-int/2addr v14, v12
add-int/2addr v14, v6
aput v14, v8, v15
.line 145
add-int/lit8 v13, v13, 0x1
goto :goto_f3
.line 151
:cond_10a
:goto_10a
new-instance v11, Lcom/google/zxing/common/BitMatrix;
invoke-direct {v11, v10}, Lcom/google/zxing/common/BitMatrix;-><init>(I)V
.line 154
const/4 v12, 0x0
const/4 v13, 0x0
:goto_111
if-ge v12, v7, :cond_1a3
.line 155
sub-int v14, v7, v12
shl-int/2addr v14, v9
if-eqz v3, :cond_11b
const/16 v15, 0x9
goto :goto_11d
:cond_11b
const/16 v15, 0xc
:goto_11d
add-int/2addr v14, v15
.line 156
const/4 v15, 0x0
:goto_11f
if-ge v15, v14, :cond_199
.line 157
shl-int/lit8 v16, v15, 0x1
.line 158
nop
:goto_124
if-ge v5, v9, :cond_193
.line 159
add-int v17, v13, v16
add-int v6, v17, v5
invoke-virtual {v1, v6}, Lcom/google/zxing/common/BitArray;->get(I)Z
move-result v6
if-eqz v6, :cond_13c
.line 160
shl-int/lit8 v6, v12, 0x1
add-int v17, v6, v5
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
.line 162
:cond_13c
shl-int/lit8 v6, v14, 0x1
add-int/2addr v6, v13
add-int v6, v6, v16
add-int/2addr v6, v5
invoke-virtual {v1, v6}, Lcom/google/zxing/common/BitArray;->get(I)Z
move-result v6
if-eqz v6, :cond_159
.line 163
shl-int/lit8 v6, v12, 0x1
add-int v9, v6, v15
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
.line 165
:cond_159
shl-int/lit8 v6, v14, 0x2
add-int/2addr v6, v13
add-int v6, v6, v16
add-int/2addr v6, v5
invoke-virtual {v1, v6}, Lcom/google/zxing/common/BitArray;->get(I)Z
move-result v6
if-eqz v6, :cond_174
.line 166
add-int/lit8 v6, v2, -0x1
shl-int/lit8 v9, v12, 0x1
sub-int/2addr v6, v9
sub-int v9, v6, v5
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
.line 168
:cond_174
mul-int/lit8 v6, v14, 0x6
add-int/2addr v6, v13
add-int v6, v6, v16
add-int/2addr v6, v5
invoke-virtual {v1, v6}, Lcom/google/zxing/common/BitArray;->get(I)Z
move-result v6
if-eqz v6, :cond_18e
.line 169
add-int/lit8 v6, v2, -0x1
shl-int/lit8 v9, v12, 0x1
sub-int/2addr v6, v9
sub-int/2addr v6, v15
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
.line 158
:cond_18e
add-int/lit8 v5, v5, 0x1
const/4 v6, 0x1
const/4 v9, 0x2
goto :goto_124
.line 156
:cond_193
add-int/lit8 v15, v15, 0x1
const/4 v5, 0x0
const/4 v6, 0x1
const/4 v9, 0x2
goto :goto_11f
.line 173
:cond_199
shl-int/lit8 v5, v14, 0x3
add-int/2addr v13, v5
.line 154
add-int/lit8 v12, v12, 0x1
const/4 v5, 0x0
const/4 v6, 0x1
const/4 v9, 0x2
goto/16 :goto_111
.line 177
:cond_1a3
invoke-static {v11, v3, v10, v4}, Lcom/google/zxing/aztec/encoder/Encoder;->drawModeMessage(Lcom/google/zxing/common/BitMatrix;ZILcom/google/zxing/common/BitArray;)V
.line 180
if-eqz v3, :cond_1af
.line 181
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_1da
.line 183
:cond_1af
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
.line 184
const/4 v4, 0x0
const/4 v5, 0x0
:goto_1b7
const/4 v6, 0x2
div-int/lit8 v8, v2, 0x2
const/4 v12, 0x1
sub-int/2addr v8, v12
if-ge v5, v8, :cond_1da
.line 185
and-int/lit8 v8, v1, 0x1
:goto_1c0
if-ge v8, v10, :cond_1d5
.line 186
sub-int v9, v1, v4
invoke-virtual {v11, v9, v8}, Lcom/google/zxing/common/BitMatrix;->set(II)V
.line 187
add-int v13, v1, v4
invoke-virtual {v11, v13, v8}, Lcom/google/zxing/common/BitMatrix;->set(II)V
.line 188
invoke-virtual {v11, v8, v9}, Lcom/google/zxing/common/BitMatrix;->set(II)V
.line 189
invoke-virtual {v11, v8, v13}, Lcom/google/zxing/common/BitMatrix;->set(II)V
.line 185
add-int/lit8 v8, v8, 0x2
goto :goto_1c0
.line 184
:cond_1d5
add-int/lit8 v5, v5, 0xf
add-int/lit8 v4, v4, 0x10
goto :goto_1b7
.line 194
:cond_1da
:goto_1da
new-instance v1, Lcom/google/zxing/aztec/encoder/AztecCode;
invoke-direct {v1}, Lcom/google/zxing/aztec/encoder/AztecCode;-><init>()V
.line 195
invoke-virtual {v1, v3}, Lcom/google/zxing/aztec/encoder/AztecCode;->setCompact(Z)V
.line 196
invoke-virtual {v1, v10}, Lcom/google/zxing/aztec/encoder/AztecCode;->setSize(I)V
.line 197
invoke-virtual {v1, v7}, Lcom/google/zxing/aztec/encoder/AztecCode;->setLayers(I)V
.line 198
invoke-virtual {v1, v0}, Lcom/google/zxing/aztec/encoder/AztecCode;->setCodeWords(I)V
.line 199
invoke-virtual {v1, v11}, Lcom/google/zxing/aztec/encoder/AztecCode;->setMatrix(Lcom/google/zxing/common/BitMatrix;)V
.line 200
return-object v1
.line 106
:cond_1ef
const/4 v12, 0x1
.line 99
:goto_1f0
add-int/lit8 v8, v8, 0x1
const/4 v5, 0x0
const/4 v6, 0x1
goto/16 :goto_79
.line 101
:cond_1f6
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
goto :goto_1ff
:goto_1fe
throw v0
:goto_1ff
goto :goto_1fe
.end method
.method private static generateCheckWords(Lcom/google/zxing/common/BitArray;II)Lcom/google/zxing/common/BitArray;
.registers 12
.param p0, "bitArray" # Lcom/google/zxing/common/BitArray;
.param p1, "totalBits" # I
.param p2, "wordSize" # I
.line 273
invoke-virtual {p0}, Lcom/google/zxing/common/BitArray;->getSize()I
move-result v0
div-int/2addr v0, p2
.line 274
.local v0, "messageSizeInWords":I
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 275
.local v1, "rs":Lcom/google/zxing/common/reedsolomon/ReedSolomonEncoder;
div-int v2, p1, p2
.line 276
.local v2, "totalWords":I
invoke-static {p0, p2, v2}, Lcom/google/zxing/aztec/encoder/Encoder;->bitsToWords(Lcom/google/zxing/common/BitArray;II)[I
move-result-object v3
.line 277
.local v3, "messageWords":[I
sub-int v4, v2, v0
invoke-virtual {v1, v3, v4}, Lcom/google/zxing/common/reedsolomon/ReedSolomonEncoder;->encode([II)V
.line 278
rem-int v4, p1, p2
.line 279
.local v4, "startPad":I
new-instance v5, Lcom/google/zxing/common/BitArray;
invoke-direct {v5}, Lcom/google/zxing/common/BitArray;-><init>()V
const/4 v6, 0x0
.line 280
.local v6, "messageBits":Lcom/google/zxing/common/BitArray;
move-object v6, v5
const/4 v7, 0x0
invoke-virtual {v5, v7, v4}, Lcom/google/zxing/common/BitArray;->appendBits(II)V
.line 281
array-length v5, v3
:goto_27
if-ge v7, v5, :cond_31
aget v8, v3, v7
.line 282
.local v8, "messageWord":I
invoke-virtual {v6, v8, p2}, Lcom/google/zxing/common/BitArray;->appendBits(II)V
.line 281
.end local v8 # "messageWord":I
add-int/lit8 v7, v7, 0x1
goto :goto_27
.line 284
:cond_31
return-object v6
.end method
.method static generateModeMessage(ZII)Lcom/google/zxing/common/BitArray;
.registers 7
.param p0, "compact" # Z
.param p1, "layers" # I
.param p2, "messageSizeInWords" # I
.line 221
new-instance v0, Lcom/google/zxing/common/BitArray;
invoke-direct {v0}, Lcom/google/zxing/common/BitArray;-><init>()V
.line 222
.local v0, "modeMessage":Lcom/google/zxing/common/BitArray;
const/4 v1, 0x4
if-eqz p0, :cond_1b
.line 223
add-int/lit8 v2, p1, -0x1
const/4 v3, 0x2
invoke-virtual {v0, v2, v3}, Lcom/google/zxing/common/BitArray;->appendBits(II)V
.line 224
add-int/lit8 v2, p2, -0x1
const/4 v3, 0x6
invoke-virtual {v0, v2, v3}, Lcom/google/zxing/common/BitArray;->appendBits(II)V
.line 225
const/16 v2, 0x1c
invoke-static {v0, v2, v1}, Lcom/google/zxing/aztec/encoder/Encoder;->generateCheckWords(Lcom/google/zxing/common/BitArray;II)Lcom/google/zxing/common/BitArray;
move-result-object v0
goto :goto_2e
.line 227
:cond_1b
add-int/lit8 v2, p1, -0x1
const/4 v3, 0x5
invoke-virtual {v0, v2, v3}, Lcom/google/zxing/common/BitArray;->appendBits(II)V
.line 228
add-int/lit8 v2, p2, -0x1
const/16 v3, 0xb
invoke-virtual {v0, v2, v3}, Lcom/google/zxing/common/BitArray;->appendBits(II)V
.line 229
const/16 v2, 0x28
invoke-static {v0, v2, v1}, Lcom/google/zxing/aztec/encoder/Encoder;->generateCheckWords(Lcom/google/zxing/common/BitArray;II)Lcom/google/zxing/common/BitArray;
move-result-object v0
.line 231
:goto_2e
return-object v0
.end method
.method private static getGF(I)Lcom/google/zxing/common/reedsolomon/GenericGF;
.registers 4
.param p0, "wordSize" # I
.line 302
const/4 v0, 0x4
if-eq p0, v0, :cond_2e
const/4 v0, 0x6
if-eq p0, v0, :cond_2b
const/16 v0, 0x8
if-eq p0, v0, :cond_28
const/16 v0, 0xa
if-eq p0, v0, :cond_25
const/16 v0, 0xc
if-ne p0, v0, :cond_15
.line 312
sget-object v0, Lcom/google/zxing/common/reedsolomon/GenericGF;->AZTEC_DATA_12:Lcom/google/zxing/common/reedsolomon/GenericGF;
return-object v0
.line 314
:cond_15
new-instance v0, Ljava/lang/IllegalArgumentException;
invoke-static {p0}, Ljava/lang/String;->valueOf(I)Ljava/lang/String;
move-result-object v1
const-string v2, "Unsupported word size "
invoke-virtual {v2, v1}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v0
.line 310
:cond_25
sget-object v0, Lcom/google/zxing/common/reedsolomon/GenericGF;->AZTEC_DATA_10:Lcom/google/zxing/common/reedsolomon/GenericGF;
return-object v0
.line 308
:cond_28
sget-object v0, Lcom/google/zxing/common/reedsolomon/GenericGF;->AZTEC_DATA_8:Lcom/google/zxing/common/reedsolomon/GenericGF;
return-object v0
.line 306
:cond_2b
sget-object v0, Lcom/google/zxing/common/reedsolomon/GenericGF;->AZTEC_DATA_6:Lcom/google/zxing/common/reedsolomon/GenericGF;
return-object v0
.line 304
:cond_2e
sget-object v0, Lcom/google/zxing/common/reedsolomon/GenericGF;->AZTEC_PARAM:Lcom/google/zxing/common/reedsolomon/GenericGF;
return-object v0
.end method
.method static stuffBits(Lcom/google/zxing/common/BitArray;I)Lcom/google/zxing/common/BitArray;
.registers 10
.param p0, "bits" # Lcom/google/zxing/common/BitArray;
.param p1, "wordSize" # I
.line 319
new-instance v0, Lcom/google/zxing/common/BitArray;
invoke-direct {v0}, Lcom/google/zxing/common/BitArray;-><init>()V
.line 321
.local v0, "out":Lcom/google/zxing/common/BitArray;
invoke-virtual {p0}, Lcom/google/zxing/common/BitArray;->getSize()I
move-result v1
.line 322
.local v1, "n":I
const/4 v2, 0x1
shl-int v3, v2, p1
add-int/lit8 v3, v3, -0x2
.line 323
.local v3, "mask":I
const/4 v4, 0x0
.local v4, "i":I
:goto_f
if-ge v4, v1, :cond_47
.line 324
const/4 v5, 0x0
.line 325
.local v5, "word":I
const/4 v6, 0x0
.local v6, "j":I
:goto_13
if-ge v6, p1, :cond_2a
.line 326
add-int v7, v4, v6
if-ge v7, v1, :cond_21
add-int v7, v4, v6
invoke-virtual {p0, v7}, Lcom/google/zxing/common/BitArray;->get(I)Z
move-result v7
if-eqz v7, :cond_27
.line 327
:cond_21
add-int/lit8 v7, p1, -0x1
sub-int/2addr v7, v6
shl-int v7, v2, v7
or-int/2addr v5, v7
.line 325
:cond_27
add-int/lit8 v6, v6, 0x1
goto :goto_13
.line 330
.end local v6 # "j":I
:cond_2a
and-int v6, v5, v3
if-ne v6, v3, :cond_36
.line 331
and-int v6, v5, v3
invoke-virtual {v0, v6, p1}, Lcom/google/zxing/common/BitArray;->appendBits(II)V
.line 332
add-int/lit8 v4, v4, -0x1
goto :goto_45
.line 333
:cond_36
and-int v6, v5, v3
if-nez v6, :cond_42
.line 334
or-int/lit8 v6, v5, 0x1
invoke-virtual {v0, v6, p1}, Lcom/google/zxing/common/BitArray;->appendBits(II)V
.line 335
add-int/lit8 v4, v4, -0x1
goto :goto_45
.line 337
:cond_42
invoke-virtual {v0, v5, p1}, Lcom/google/zxing/common/BitArray;->appendBits(II)V
.line 323
.end local v5 # "word":I
:goto_45
add-int/2addr v4, p1
goto :goto_f
.line 340
.end local v4 # "i":I
:cond_47
return-object v0
.end method
.method private static totalBitsInLayer(IZ)I
.registers 4
.param p0, "layers" # I
.param p1, "compact" # Z
.line 344
if-eqz p1, :cond_5
const/16 v0, 0x58
goto :goto_7
:cond_5
const/16 v0, 0x70
:goto_7
shl-int/lit8 v1, p0, 0x4
add-int/2addr v0, v1
mul-int v0, v0, p0
return v0
.end method