d.smali
.class public final Lcom/google/zxing/qrcode/decoder/d;
.super Ljava/lang/Object;
.source "Decoder.java"
# instance fields
.field private final bpx:Lcom/google/zxing/common/reedsolomon/c;
# direct methods
.method public constructor <init>()V
.registers 3
.prologue
.line 40
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 41
new-instance v0, Lcom/google/zxing/common/reedsolomon/c;
sget-object v1, Lcom/google/zxing/common/reedsolomon/a;->bpc:Lcom/google/zxing/common/reedsolomon/a;
invoke-direct {v0, v1}, Lcom/google/zxing/common/reedsolomon/c;-><init>(Lcom/google/zxing/common/reedsolomon/a;)V
iput-object v0, p0, Lcom/google/zxing/qrcode/decoder/d;->bpx:Lcom/google/zxing/common/reedsolomon/c;
.line 42
return-void
.end method
.method private a(Lcom/google/zxing/qrcode/decoder/a;Ljava/util/Map;)Lcom/google/zxing/common/d;
.registers 21
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/google/zxing/qrcode/decoder/a;",
"Ljava/util/Map",
"<",
"Lcom/google/zxing/DecodeHintType;",
"*>;)",
"Lcom/google/zxing/common/d;"
}
.end annotation
.prologue
.line 136
invoke-virtual/range {p1 .. p1}, Lcom/google/zxing/qrcode/decoder/a;->FG()Lcom/google/zxing/qrcode/decoder/g;
move-result-object v10
.line 137
invoke-virtual/range {p1 .. p1}, Lcom/google/zxing/qrcode/decoder/a;->FF()Lcom/google/zxing/qrcode/decoder/e;
move-result-object v1
.line 5135
iget-object v11, v1, Lcom/google/zxing/qrcode/decoder/e;->bpB:Lcom/google/zxing/qrcode/decoder/ErrorCorrectionLevel;
.line 5155
invoke-virtual/range {p1 .. p1}, Lcom/google/zxing/qrcode/decoder/a;->FF()Lcom/google/zxing/qrcode/decoder/e;
move-result-object v1
.line 5156
invoke-virtual/range {p1 .. p1}, Lcom/google/zxing/qrcode/decoder/a;->FG()Lcom/google/zxing/qrcode/decoder/g;
move-result-object v12
.line 5160
invoke-static {}, Lcom/google/zxing/qrcode/decoder/DataMask;->values()[Lcom/google/zxing/qrcode/decoder/DataMask;
move-result-object v2
.line 6139
iget-byte v1, v1, Lcom/google/zxing/qrcode/decoder/e;->bpC:B
.line 5160
aget-object v1, v2, v1
.line 5161
move-object/from16 v0, p1
iget-object v2, v0, Lcom/google/zxing/qrcode/decoder/a;->Mo:Lcom/google/zxing/common/b;
.line 6406
iget v13, v2, Lcom/google/zxing/common/b;->height:I
.line 5162
move-object/from16 v0, p1
iget-object v2, v0, Lcom/google/zxing/qrcode/decoder/a;->Mo:Lcom/google/zxing/common/b;
invoke-virtual {v1, v2, v13}, Lcom/google/zxing/qrcode/decoder/DataMask;->unmaskBitMatrix(Lcom/google/zxing/common/b;I)V
.line 7140
invoke-virtual {v12}, Lcom/google/zxing/qrcode/decoder/g;->FH()I
move-result v3
.line 7141
new-instance v14, Lcom/google/zxing/common/b;
invoke-direct {v14, v3}, Lcom/google/zxing/common/b;-><init>(I)V
.line 7144
const/4 v1, 0x0
const/4 v2, 0x0
const/16 v4, 0x9
const/16 v5, 0x9
invoke-virtual {v14, v1, v2, v4, v5}, Lcom/google/zxing/common/b;->i(IIII)V
.line 7146
add-int/lit8 v1, v3, -0x8
const/4 v2, 0x0
const/16 v4, 0x8
const/16 v5, 0x9
invoke-virtual {v14, v1, v2, v4, v5}, Lcom/google/zxing/common/b;->i(IIII)V
.line 7148
const/4 v1, 0x0
add-int/lit8 v2, v3, -0x8
const/16 v4, 0x9
const/16 v5, 0x8
invoke-virtual {v14, v1, v2, v4, v5}, Lcom/google/zxing/common/b;->i(IIII)V
.line 7151
iget-object v1, v12, Lcom/google/zxing/qrcode/decoder/g;->bpH:[I
array-length v4, v1
.line 7152
const/4 v1, 0x0
move v2, v1
:goto_52
if-ge v2, v4, :cond_7d
.line 7153
iget-object v1, v12, Lcom/google/zxing/qrcode/decoder/g;->bpH:[I
aget v1, v1, v2
add-int/lit8 v5, v1, -0x2
.line 7154
const/4 v1, 0x0
:goto_5b
if-ge v1, v4, :cond_79
.line 7155
if-nez v2, :cond_65
if-eqz v1, :cond_76
add-int/lit8 v6, v4, -0x1
if-eq v1, v6, :cond_76
:cond_65
add-int/lit8 v6, v4, -0x1
if-ne v2, v6, :cond_6b
if-eqz v1, :cond_76
.line 7159
:cond_6b
iget-object v6, v12, Lcom/google/zxing/qrcode/decoder/g;->bpH:[I
aget v6, v6, v1
add-int/lit8 v6, v6, -0x2
const/4 v7, 0x5
const/4 v8, 0x5
invoke-virtual {v14, v6, v5, v7, v8}, Lcom/google/zxing/common/b;->i(IIII)V
.line 7154
:cond_76
add-int/lit8 v1, v1, 0x1
goto :goto_5b
.line 7152
:cond_79
add-int/lit8 v1, v2, 0x1
move v2, v1
goto :goto_52
.line 7164
:cond_7d
const/4 v1, 0x6
const/16 v2, 0x9
const/4 v4, 0x1
add-int/lit8 v5, v3, -0x11
invoke-virtual {v14, v1, v2, v4, v5}, Lcom/google/zxing/common/b;->i(IIII)V
.line 7166
const/16 v1, 0x9
const/4 v2, 0x6
add-int/lit8 v4, v3, -0x11
const/4 v5, 0x1
invoke-virtual {v14, v1, v2, v4, v5}, Lcom/google/zxing/common/b;->i(IIII)V
.line 7168
iget v1, v12, Lcom/google/zxing/qrcode/decoder/g;->bpG:I
const/4 v2, 0x6
if-le v1, v2, :cond_a4
.line 7170
add-int/lit8 v1, v3, -0xb
const/4 v2, 0x0
const/4 v4, 0x3
const/4 v5, 0x6
invoke-virtual {v14, v1, v2, v4, v5}, Lcom/google/zxing/common/b;->i(IIII)V
.line 7172
const/4 v1, 0x0
add-int/lit8 v2, v3, -0xb
const/4 v3, 0x6
const/4 v4, 0x3
invoke-virtual {v14, v1, v2, v3, v4}, Lcom/google/zxing/common/b;->i(IIII)V
.line 5166
:cond_a4
const/4 v2, 0x1
.line 8074
iget v1, v12, Lcom/google/zxing/qrcode/decoder/g;->bpJ:I
.line 5167
new-array v15, v1, [B
.line 5168
const/4 v7, 0x0
.line 5169
const/4 v6, 0x0
.line 5170
const/4 v5, 0x0
.line 5172
add-int/lit8 v1, v13, -0x1
move v9, v2
:goto_af
if-lez v1, :cond_fe
.line 5173
const/4 v2, 0x6
if-ne v1, v2, :cond_b6
.line 5176
add-int/lit8 v1, v1, -0x1
.line 5179
:cond_b6
const/4 v3, 0x0
:goto_b7
if-ge v3, v13, :cond_f8
.line 5180
if-eqz v9, :cond_f1
add-int/lit8 v2, v13, -0x1
sub-int/2addr v2, v3
.line 5181
:goto_be
const/4 v4, 0x0
move v8, v4
move v4, v5
move v5, v6
:goto_c2
const/4 v6, 0x2
if-ge v8, v6, :cond_f3
.line 5183
sub-int v6, v1, v8
invoke-virtual {v14, v6, v2}, Lcom/google/zxing/common/b;->av(II)Z
move-result v6
if-nez v6, :cond_1f8
.line 5185
add-int/lit8 v4, v4, 0x1
.line 5186
shl-int/lit8 v5, v5, 0x1
.line 5187
move-object/from16 v0, p1
iget-object v6, v0, Lcom/google/zxing/qrcode/decoder/a;->Mo:Lcom/google/zxing/common/b;
sub-int v16, v1, v8
move/from16 v0, v16
invoke-virtual {v6, v0, v2}, Lcom/google/zxing/common/b;->av(II)Z
move-result v6
if-eqz v6, :cond_e1
.line 5188
or-int/lit8 v5, v5, 0x1
.line 5191
:cond_e1
const/16 v6, 0x8
if-ne v4, v6, :cond_1f8
.line 5192
add-int/lit8 v6, v7, 0x1
int-to-byte v4, v5
aput-byte v4, v15, v7
.line 5193
const/4 v4, 0x0
.line 5194
const/4 v5, 0x0
.line 5181
:goto_ec
add-int/lit8 v7, v8, 0x1
move v8, v7
move v7, v6
goto :goto_c2
:cond_f1
move v2, v3
.line 5180
goto :goto_be
.line 5179
:cond_f3
add-int/lit8 v3, v3, 0x1
move v6, v5
move v5, v4
goto :goto_b7
.line 5199
:cond_f8
xor-int/lit8 v2, v9, 0x1
.line 5172
add-int/lit8 v1, v1, -0x2
move v9, v2
goto :goto_af
.line 9074
:cond_fe
iget v1, v12, Lcom/google/zxing/qrcode/decoder/g;->bpJ:I
.line 5201
if-eq v7, v1, :cond_107
.line 5202
invoke-static {}, Lcom/google/zxing/FormatException;->getFormatInstance()Lcom/google/zxing/FormatException;
move-result-object v1
throw v1
.line 10051
:cond_107
array-length v1, v15
.line 11074
iget v2, v10, Lcom/google/zxing/qrcode/decoder/g;->bpJ:I
.line 10051
if-eq v1, v2, :cond_112
.line 10052
new-instance v1, Ljava/lang/IllegalArgumentException;
invoke-direct {v1}, Ljava/lang/IllegalArgumentException;-><init>()V
throw v1
.line 10057
:cond_112
invoke-virtual {v10, v11}, Lcom/google/zxing/qrcode/decoder/g;->a(Lcom/google/zxing/qrcode/decoder/ErrorCorrectionLevel;)Lcom/google/zxing/qrcode/decoder/i;
move-result-object v5
.line 10060
const/4 v2, 0x0
.line 11210
iget-object v6, v5, Lcom/google/zxing/qrcode/decoder/i;->bpM:[Lcom/google/zxing/qrcode/decoder/h;
.line 10062
array-length v3, v6
const/4 v1, 0x0
:goto_11b
if-ge v1, v3, :cond_125
aget-object v4, v6, v1
.line 11229
iget v4, v4, Lcom/google/zxing/qrcode/decoder/h;->count:I
.line 10063
add-int/2addr v2, v4
.line 10062
add-int/lit8 v1, v1, 0x1
goto :goto_11b
.line 10067
:cond_125
new-array v8, v2, [Lcom/google/zxing/qrcode/decoder/b;
.line 10068
const/4 v2, 0x0
.line 10069
array-length v7, v6
const/4 v1, 0x0
move v4, v1
:goto_12b
if-ge v4, v7, :cond_14d
aget-object v9, v6, v4
.line 10070
const/4 v1, 0x0
.line 12229
:goto_130
iget v3, v9, Lcom/google/zxing/qrcode/decoder/h;->count:I
.line 10070
if-ge v1, v3, :cond_149
.line 12233
iget v12, v9, Lcom/google/zxing/qrcode/decoder/h;->bpK:I
.line 13194
iget v3, v5, Lcom/google/zxing/qrcode/decoder/i;->bpL:I
.line 10072
add-int v13, v3, v12
.line 10073
add-int/lit8 v3, v2, 0x1
new-instance v14, Lcom/google/zxing/qrcode/decoder/b;
new-array v13, v13, [B
invoke-direct {v14, v12, v13}, Lcom/google/zxing/qrcode/decoder/b;-><init>(I[B)V
aput-object v14, v8, v2
.line 10070
add-int/lit8 v1, v1, 0x1
move v2, v3
goto :goto_130
.line 10069
:cond_149
add-int/lit8 v1, v4, 0x1
move v4, v1
goto :goto_12b
.line 10079
:cond_14d
const/4 v1, 0x0
aget-object v1, v8, v1
iget-object v1, v1, Lcom/google/zxing/qrcode/decoder/b;->bpt:[B
array-length v3, v1
.line 10080
array-length v1, v8
add-int/lit8 v1, v1, -0x1
.line 10081
:goto_156
if-ltz v1, :cond_162
.line 10082
aget-object v4, v8, v1
iget-object v4, v4, Lcom/google/zxing/qrcode/decoder/b;->bpt:[B
array-length v4, v4
.line 10083
if-eq v4, v3, :cond_162
.line 10086
add-int/lit8 v1, v1, -0x1
.line 10087
goto :goto_156
.line 10088
:cond_162
add-int/lit8 v7, v1, 0x1
.line 14194
iget v1, v5, Lcom/google/zxing/qrcode/decoder/i;->bpL:I
.line 10090
sub-int/2addr v3, v1
.line 10093
const/4 v4, 0x0
.line 10094
const/4 v1, 0x0
move v6, v1
move v1, v4
:goto_16b
if-ge v6, v3, :cond_188
.line 10095
const/4 v4, 0x0
move/from16 v17, v4
move v4, v1
move/from16 v1, v17
:goto_173
if-ge v1, v2, :cond_183
.line 10096
aget-object v5, v8, v1
iget-object v9, v5, Lcom/google/zxing/qrcode/decoder/b;->bpt:[B
add-int/lit8 v5, v4, 0x1
aget-byte v4, v15, v4
aput-byte v4, v9, v6
.line 10095
add-int/lit8 v1, v1, 0x1
move v4, v5
goto :goto_173
.line 10094
:cond_183
add-int/lit8 v1, v6, 0x1
move v6, v1
move v1, v4
goto :goto_16b
:cond_188
move v4, v7
.line 10100
:goto_189
if-ge v4, v2, :cond_19a
.line 10101
aget-object v5, v8, v4
iget-object v6, v5, Lcom/google/zxing/qrcode/decoder/b;->bpt:[B
add-int/lit8 v5, v1, 0x1
aget-byte v1, v15, v1
aput-byte v1, v6, v3
.line 10100
add-int/lit8 v1, v4, 0x1
move v4, v1
move v1, v5
goto :goto_189
.line 10104
:cond_19a
const/4 v4, 0x0
aget-object v4, v8, v4
iget-object v4, v4, Lcom/google/zxing/qrcode/decoder/b;->bpt:[B
array-length v9, v4
.line 10105
:goto_1a0
if-ge v3, v9, :cond_1c0
.line 10106
const/4 v4, 0x0
move v5, v4
move v4, v1
:goto_1a5
if-ge v5, v2, :cond_1bc
.line 10107
if-ge v5, v7, :cond_1b9
move v1, v3
.line 10108
:goto_1aa
aget-object v6, v8, v5
iget-object v12, v6, Lcom/google/zxing/qrcode/decoder/b;->bpt:[B
add-int/lit8 v6, v4, 0x1
aget-byte v4, v15, v4
aput-byte v4, v12, v1
.line 10106
add-int/lit8 v1, v5, 0x1
move v5, v1
move v4, v6
goto :goto_1a5
.line 10107
:cond_1b9
add-int/lit8 v1, v3, 0x1
goto :goto_1aa
.line 10105
:cond_1bc
add-int/lit8 v3, v3, 0x1
move v1, v4
goto :goto_1a0
.line 145
:cond_1c0
const/4 v2, 0x0
.line 146
array-length v3, v8
const/4 v1, 0x0
:goto_1c3
if-ge v1, v3, :cond_1cd
aget-object v4, v8, v1
.line 15115
iget v4, v4, Lcom/google/zxing/qrcode/decoder/b;->bps:I
.line 147
add-int/2addr v2, v4
.line 146
add-int/lit8 v1, v1, 0x1
goto :goto_1c3
.line 149
:cond_1cd
new-array v5, v2, [B
.line 150
const/4 v2, 0x0
.line 153
array-length v6, v8
const/4 v1, 0x0
move v4, v1
:goto_1d3
if-ge v4, v6, :cond_1f1
aget-object v1, v8, v4
.line 15119
iget-object v7, v1, Lcom/google/zxing/qrcode/decoder/b;->bpt:[B
.line 16115
iget v9, v1, Lcom/google/zxing/qrcode/decoder/b;->bps:I
.line 156
move-object/from16 v0, p0
invoke-direct {v0, v7, v9}, Lcom/google/zxing/qrcode/decoder/d;->l([BI)V
.line 157
const/4 v1, 0x0
:goto_1e1
if-ge v1, v9, :cond_1ed
.line 158
add-int/lit8 v3, v2, 0x1
aget-byte v12, v7, v1
aput-byte v12, v5, v2
.line 157
add-int/lit8 v1, v1, 0x1
move v2, v3
goto :goto_1e1
.line 153
:cond_1ed
add-int/lit8 v1, v4, 0x1
move v4, v1
goto :goto_1d3
.line 163
:cond_1f1
move-object/from16 v0, p2
invoke-static {v5, v10, v11, v0}, Lcom/google/zxing/qrcode/decoder/c;->a([BLcom/google/zxing/qrcode/decoder/g;Lcom/google/zxing/qrcode/decoder/ErrorCorrectionLevel;Ljava/util/Map;)Lcom/google/zxing/common/d;
move-result-object v1
return-object v1
:cond_1f8
move v6, v7
goto/16 :goto_ec
.end method
.method private l([BI)V
.registers 16
.prologue
.line 175
array-length v1, p1
.line 177
new-array v5, v1, [I
.line 178
const/4 v0, 0x0
:goto_4
if-ge v0, v1, :cond_f
.line 179
aget-byte v2, p1, v0
and-int/lit16 v2, v2, 0xff
aput v2, v5, v0
.line 178
add-int/lit8 v0, v0, 0x1
goto :goto_4
.line 182
:cond_f
:try_start_f
iget-object v6, p0, Lcom/google/zxing/qrcode/decoder/d;->bpx:Lcom/google/zxing/common/reedsolomon/c;
array-length v0, p1
sub-int v7, v0, p2
.line 17059
new-instance v2, Lcom/google/zxing/common/reedsolomon/b;
iget-object v0, v6, Lcom/google/zxing/common/reedsolomon/c;->bpj:Lcom/google/zxing/common/reedsolomon/a;
invoke-direct {v2, v0, v5}, Lcom/google/zxing/common/reedsolomon/b;-><init>(Lcom/google/zxing/common/reedsolomon/a;[I)V
.line 17060
new-array v3, v7, [I
.line 17061
const/4 v1, 0x1
.line 17062
const/4 v0, 0x0
move v12, v0
move v0, v1
move v1, v12
:goto_22
if-ge v1, v7, :cond_3e
.line 17063
iget-object v4, v6, Lcom/google/zxing/common/reedsolomon/c;->bpj:Lcom/google/zxing/common/reedsolomon/a;
iget-object v8, v6, Lcom/google/zxing/common/reedsolomon/c;->bpj:Lcom/google/zxing/common/reedsolomon/a;
.line 17158
iget v8, v8, Lcom/google/zxing/common/reedsolomon/a;->bpi:I
.line 17063
add-int/2addr v8, v1
.line 18120
iget-object v4, v4, Lcom/google/zxing/common/reedsolomon/a;->bpd:[I
aget v4, v4, v8
.line 17063
invoke-virtual {v2, v4}, Lcom/google/zxing/common/reedsolomon/b;->evaluateAt(I)I
move-result v4
.line 17064
add-int/lit8 v8, v7, -0x1
sub-int/2addr v8, v1
aput v4, v3, v8
.line 17065
if-eqz v4, :cond_3b
.line 17066
const/4 v0, 0x0
.line 17062
:cond_3b
add-int/lit8 v1, v1, 0x1
goto :goto_22
.line 17069
:cond_3e
if-nez v0, :cond_152
.line 17072
new-instance v0, Lcom/google/zxing/common/reedsolomon/b;
iget-object v1, v6, Lcom/google/zxing/common/reedsolomon/c;->bpj:Lcom/google/zxing/common/reedsolomon/a;
invoke-direct {v0, v1, v3}, Lcom/google/zxing/common/reedsolomon/b;-><init>(Lcom/google/zxing/common/reedsolomon/a;[I)V
.line 17073
iget-object v1, v6, Lcom/google/zxing/common/reedsolomon/c;->bpj:Lcom/google/zxing/common/reedsolomon/a;
const/4 v2, 0x1
.line 17074
invoke-virtual {v1, v7, v2}, Lcom/google/zxing/common/reedsolomon/a;->aw(II)Lcom/google/zxing/common/reedsolomon/b;
move-result-object v3
.line 20077
iget-object v1, v3, Lcom/google/zxing/common/reedsolomon/b;->coefficients:[I
array-length v1, v1
add-int/lit8 v1, v1, -0x1
.line 21077
iget-object v2, v0, Lcom/google/zxing/common/reedsolomon/b;->coefficients:[I
array-length v2, v2
add-int/lit8 v2, v2, -0x1
.line 19091
if-ge v1, v2, :cond_15e
move-object v1, v0
.line 19099
:goto_5b
iget-object v0, v6, Lcom/google/zxing/common/reedsolomon/c;->bpj:Lcom/google/zxing/common/reedsolomon/a;
.line 21085
iget-object v2, v0, Lcom/google/zxing/common/reedsolomon/a;->bpf:Lcom/google/zxing/common/reedsolomon/b;
.line 19100
iget-object v0, v6, Lcom/google/zxing/common/reedsolomon/c;->bpj:Lcom/google/zxing/common/reedsolomon/a;
.line 21089
iget-object v0, v0, Lcom/google/zxing/common/reedsolomon/a;->bpg:Lcom/google/zxing/common/reedsolomon/b;
move-object v4, v2
move-object v2, v0
.line 22077
:goto_65
iget-object v0, v3, Lcom/google/zxing/common/reedsolomon/b;->coefficients:[I
array-length v0, v0
add-int/lit8 v0, v0, -0x1
.line 19103
div-int/lit8 v8, v7, 0x2
if-lt v0, v8, :cond_f7
.line 19110
invoke-virtual {v3}, Lcom/google/zxing/common/reedsolomon/b;->isZero()Z
move-result v0
if-eqz v0, :cond_82
.line 19112
new-instance v0, Lcom/google/zxing/common/reedsolomon/ReedSolomonException;
const-string v1, "r_{i-1} was zero"
invoke-direct {v0, v1}, Lcom/google/zxing/common/reedsolomon/ReedSolomonException;-><init>(Ljava/lang/String;)V
throw v0
:try_end_7c
.catch Lcom/google/zxing/common/reedsolomon/ReedSolomonException; {:try_start_f .. :try_end_7c} :catch_7c
.line 184
:catch_7c
move-exception v0
invoke-static {}, Lcom/google/zxing/ChecksumException;->getChecksumInstance()Lcom/google/zxing/ChecksumException;
move-result-object v0
throw v0
.line 19115
:cond_82
:try_start_82
iget-object v0, v6, Lcom/google/zxing/common/reedsolomon/c;->bpj:Lcom/google/zxing/common/reedsolomon/a;
.line 22085
iget-object v0, v0, Lcom/google/zxing/common/reedsolomon/a;->bpf:Lcom/google/zxing/common/reedsolomon/b;
.line 23077
iget-object v8, v3, Lcom/google/zxing/common/reedsolomon/b;->coefficients:[I
array-length v8, v8
add-int/lit8 v8, v8, -0x1
.line 19116
invoke-virtual {v3, v8}, Lcom/google/zxing/common/reedsolomon/b;->getCoefficient(I)I
move-result v8
.line 19117
iget-object v9, v6, Lcom/google/zxing/common/reedsolomon/c;->bpj:Lcom/google/zxing/common/reedsolomon/a;
invoke-virtual {v9, v8}, Lcom/google/zxing/common/reedsolomon/a;->inverse(I)I
move-result v8
.line 24077
:goto_95
iget-object v9, v1, Lcom/google/zxing/common/reedsolomon/b;->coefficients:[I
array-length v9, v9
add-int/lit8 v9, v9, -0x1
.line 25077
iget-object v10, v3, Lcom/google/zxing/common/reedsolomon/b;->coefficients:[I
array-length v10, v10
add-int/lit8 v10, v10, -0x1
.line 19118
if-lt v9, v10, :cond_d4
invoke-virtual {v1}, Lcom/google/zxing/common/reedsolomon/b;->isZero()Z
move-result v9
if-nez v9, :cond_d4
.line 26077
iget-object v9, v1, Lcom/google/zxing/common/reedsolomon/b;->coefficients:[I
array-length v9, v9
add-int/lit8 v9, v9, -0x1
.line 27077
iget-object v10, v3, Lcom/google/zxing/common/reedsolomon/b;->coefficients:[I
array-length v10, v10
add-int/lit8 v10, v10, -0x1
.line 19119
sub-int/2addr v9, v10
.line 19120
iget-object v10, v6, Lcom/google/zxing/common/reedsolomon/c;->bpj:Lcom/google/zxing/common/reedsolomon/a;
.line 28077
iget-object v11, v1, Lcom/google/zxing/common/reedsolomon/b;->coefficients:[I
array-length v11, v11
add-int/lit8 v11, v11, -0x1
.line 19120
invoke-virtual {v1, v11}, Lcom/google/zxing/common/reedsolomon/b;->getCoefficient(I)I
move-result v11
invoke-virtual {v10, v11, v8}, Lcom/google/zxing/common/reedsolomon/a;->ay(II)I
move-result v10
.line 19121
iget-object v11, v6, Lcom/google/zxing/common/reedsolomon/c;->bpj:Lcom/google/zxing/common/reedsolomon/a;
invoke-virtual {v11, v9, v10}, Lcom/google/zxing/common/reedsolomon/a;->aw(II)Lcom/google/zxing/common/reedsolomon/b;
move-result-object v11
invoke-virtual {v0, v11}, Lcom/google/zxing/common/reedsolomon/b;->a(Lcom/google/zxing/common/reedsolomon/b;)Lcom/google/zxing/common/reedsolomon/b;
move-result-object v0
.line 19122
invoke-virtual {v3, v9, v10}, Lcom/google/zxing/common/reedsolomon/b;->az(II)Lcom/google/zxing/common/reedsolomon/b;
move-result-object v9
invoke-virtual {v1, v9}, Lcom/google/zxing/common/reedsolomon/b;->a(Lcom/google/zxing/common/reedsolomon/b;)Lcom/google/zxing/common/reedsolomon/b;
move-result-object v1
goto :goto_95
.line 19125
:cond_d4
invoke-virtual {v0, v2}, Lcom/google/zxing/common/reedsolomon/b;->b(Lcom/google/zxing/common/reedsolomon/b;)Lcom/google/zxing/common/reedsolomon/b;
move-result-object v0
invoke-virtual {v0, v4}, Lcom/google/zxing/common/reedsolomon/b;->a(Lcom/google/zxing/common/reedsolomon/b;)Lcom/google/zxing/common/reedsolomon/b;
move-result-object v0
.line 29077
iget-object v4, v1, Lcom/google/zxing/common/reedsolomon/b;->coefficients:[I
array-length v4, v4
add-int/lit8 v4, v4, -0x1
.line 30077
iget-object v8, v3, Lcom/google/zxing/common/reedsolomon/b;->coefficients:[I
array-length v8, v8
add-int/lit8 v8, v8, -0x1
.line 19127
if-lt v4, v8, :cond_f0
.line 19128
new-instance v0, Ljava/lang/IllegalStateException;
const-string v1, "Division algorithm failed to reduce polynomial?"
invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v0
:cond_f0
move-object v4, v2
move-object v2, v0
move-object v12, v3
move-object v3, v1
move-object v1, v12
.line 19130
goto/16 :goto_65
.line 19132
:cond_f7
const/4 v0, 0x0
invoke-virtual {v2, v0}, Lcom/google/zxing/common/reedsolomon/b;->getCoefficient(I)I
move-result v0
.line 19133
if-nez v0, :cond_106
.line 19134
new-instance v0, Lcom/google/zxing/common/reedsolomon/ReedSolomonException;
const-string v1, "sigmaTilde(0) was zero"
invoke-direct {v0, v1}, Lcom/google/zxing/common/reedsolomon/ReedSolomonException;-><init>(Ljava/lang/String;)V
throw v0
.line 19137
:cond_106
iget-object v1, v6, Lcom/google/zxing/common/reedsolomon/c;->bpj:Lcom/google/zxing/common/reedsolomon/a;
invoke-virtual {v1, v0}, Lcom/google/zxing/common/reedsolomon/a;->inverse(I)I
move-result v0
.line 19138
invoke-virtual {v2, v0}, Lcom/google/zxing/common/reedsolomon/b;->ef(I)Lcom/google/zxing/common/reedsolomon/b;
move-result-object v1
.line 19139
invoke-virtual {v3, v0}, Lcom/google/zxing/common/reedsolomon/b;->ef(I)Lcom/google/zxing/common/reedsolomon/b;
move-result-object v0
.line 19140
const/4 v2, 0x2
new-array v2, v2, [Lcom/google/zxing/common/reedsolomon/b;
const/4 v3, 0x0
aput-object v1, v2, v3
const/4 v1, 0x1
aput-object v0, v2, v1
.line 17075
const/4 v0, 0x0
aget-object v0, v2, v0
.line 17076
const/4 v1, 0x1
aget-object v1, v2, v1
.line 17077
invoke-virtual {v6, v0}, Lcom/google/zxing/common/reedsolomon/c;->d(Lcom/google/zxing/common/reedsolomon/b;)[I
move-result-object v2
.line 17078
invoke-virtual {v6, v1, v2}, Lcom/google/zxing/common/reedsolomon/c;->a(Lcom/google/zxing/common/reedsolomon/b;[I)[I
move-result-object v1
.line 17079
const/4 v0, 0x0
:goto_12c
array-length v3, v2
if-ge v0, v3, :cond_152
.line 17080
array-length v3, v5
add-int/lit8 v3, v3, -0x1
iget-object v4, v6, Lcom/google/zxing/common/reedsolomon/c;->bpj:Lcom/google/zxing/common/reedsolomon/a;
aget v7, v2, v0
invoke-virtual {v4, v7}, Lcom/google/zxing/common/reedsolomon/a;->ee(I)I
move-result v4
sub-int/2addr v3, v4
.line 17081
if-gez v3, :cond_145
.line 17082
new-instance v0, Lcom/google/zxing/common/reedsolomon/ReedSolomonException;
const-string v1, "Bad error location"
invoke-direct {v0, v1}, Lcom/google/zxing/common/reedsolomon/ReedSolomonException;-><init>(Ljava/lang/String;)V
throw v0
.line 17084
:cond_145
aget v4, v5, v3
aget v7, v1, v0
invoke-static {v4, v7}, Lcom/google/zxing/common/reedsolomon/a;->ax(II)I
move-result v4
aput v4, v5, v3
:try_end_14f
.catch Lcom/google/zxing/common/reedsolomon/ReedSolomonException; {:try_start_82 .. :try_end_14f} :catch_7c
.line 17079
add-int/lit8 v0, v0, 0x1
goto :goto_12c
.line 188
:cond_152
const/4 v0, 0x0
:goto_153
if-ge v0, p2, :cond_15d
.line 189
aget v1, v5, v0
int-to-byte v1, v1
aput-byte v1, p1, v0
.line 188
add-int/lit8 v0, v0, 0x1
goto :goto_153
.line 191
:cond_15d
return-void
:cond_15e
move-object v1, v3
move-object v3, v0
goto/16 :goto_5b
.end method
# virtual methods
.method public final a(Lcom/google/zxing/common/b;Ljava/util/Map;)Lcom/google/zxing/common/d;
.registers 10
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/google/zxing/common/b;",
"Ljava/util/Map",
"<",
"Lcom/google/zxing/DecodeHintType;",
"*>;)",
"Lcom/google/zxing/common/d;"
}
.end annotation
.prologue
const/4 v0, 0x0
.line 80
new-instance v4, Lcom/google/zxing/qrcode/decoder/a;
invoke-direct {v4, p1}, Lcom/google/zxing/qrcode/decoder/a;-><init>(Lcom/google/zxing/common/b;)V
.line 84
:try_start_6
invoke-direct {p0, v4, p2}, Lcom/google/zxing/qrcode/decoder/d;->a(Lcom/google/zxing/qrcode/decoder/a;Ljava/util/Map;)Lcom/google/zxing/common/d;
:try_end_9
.catch Lcom/google/zxing/FormatException; {:try_start_6 .. :try_end_9} :catch_b
.catch Lcom/google/zxing/ChecksumException; {:try_start_6 .. :try_end_9} :catch_5f
move-result-object v0
.line 119
:goto_a
return-object v0
.line 86
:catch_b
move-exception v1
move-object v2, v0
move-object v3, v1
.line 1211
:goto_e
:try_start_e
iget-object v0, v4, Lcom/google/zxing/qrcode/decoder/a;->bpq:Lcom/google/zxing/qrcode/decoder/e;
if-eqz v0, :cond_25
.line 1214
invoke-static {}, Lcom/google/zxing/qrcode/decoder/DataMask;->values()[Lcom/google/zxing/qrcode/decoder/DataMask;
move-result-object v0
iget-object v1, v4, Lcom/google/zxing/qrcode/decoder/a;->bpq:Lcom/google/zxing/qrcode/decoder/e;
.line 2139
iget-byte v1, v1, Lcom/google/zxing/qrcode/decoder/e;->bpC:B
.line 1214
aget-object v0, v0, v1
.line 1215
iget-object v1, v4, Lcom/google/zxing/qrcode/decoder/a;->Mo:Lcom/google/zxing/common/b;
.line 2406
iget v1, v1, Lcom/google/zxing/common/b;->height:I
.line 1216
iget-object v5, v4, Lcom/google/zxing/qrcode/decoder/a;->Mo:Lcom/google/zxing/common/b;
invoke-virtual {v0, v5, v1}, Lcom/google/zxing/qrcode/decoder/DataMask;->unmaskBitMatrix(Lcom/google/zxing/common/b;I)V
.line 3228
:cond_25
const/4 v0, 0x0
iput-object v0, v4, Lcom/google/zxing/qrcode/decoder/a;->bpp:Lcom/google/zxing/qrcode/decoder/g;
.line 3229
const/4 v0, 0x0
iput-object v0, v4, Lcom/google/zxing/qrcode/decoder/a;->bpq:Lcom/google/zxing/qrcode/decoder/e;
.line 3230
const/4 v0, 0x1
iput-boolean v0, v4, Lcom/google/zxing/qrcode/decoder/a;->bpr:Z
.line 100
invoke-virtual {v4}, Lcom/google/zxing/qrcode/decoder/a;->FG()Lcom/google/zxing/qrcode/decoder/g;
.line 103
invoke-virtual {v4}, Lcom/google/zxing/qrcode/decoder/a;->FF()Lcom/google/zxing/qrcode/decoder/e;
.line 3235
const/4 v0, 0x0
move v1, v0
:goto_36
iget-object v0, v4, Lcom/google/zxing/qrcode/decoder/a;->Mo:Lcom/google/zxing/common/b;
.line 3399
iget v0, v0, Lcom/google/zxing/common/b;->width:I
.line 3235
if-ge v1, v0, :cond_67
.line 3236
add-int/lit8 v0, v1, 0x1
:goto_3e
iget-object v5, v4, Lcom/google/zxing/qrcode/decoder/a;->Mo:Lcom/google/zxing/common/b;
.line 3406
iget v5, v5, Lcom/google/zxing/common/b;->height:I
.line 3236
if-ge v0, v5, :cond_63
.line 3237
iget-object v5, v4, Lcom/google/zxing/qrcode/decoder/a;->Mo:Lcom/google/zxing/common/b;
invoke-virtual {v5, v1, v0}, Lcom/google/zxing/common/b;->av(II)Z
move-result v5
iget-object v6, v4, Lcom/google/zxing/qrcode/decoder/a;->Mo:Lcom/google/zxing/common/b;
invoke-virtual {v6, v0, v1}, Lcom/google/zxing/common/b;->av(II)Z
move-result v6
if-eq v5, v6, :cond_5c
.line 3238
iget-object v5, v4, Lcom/google/zxing/qrcode/decoder/a;->Mo:Lcom/google/zxing/common/b;
invoke-virtual {v5, v0, v1}, Lcom/google/zxing/common/b;->flip(II)V
.line 3239
iget-object v5, v4, Lcom/google/zxing/qrcode/decoder/a;->Mo:Lcom/google/zxing/common/b;
invoke-virtual {v5, v1, v0}, Lcom/google/zxing/common/b;->flip(II)V
.line 3236
:cond_5c
add-int/lit8 v0, v0, 0x1
goto :goto_3e
.line 88
:catch_5f
move-exception v1
move-object v2, v1
move-object v3, v0
goto :goto_e
.line 3235
:cond_63
add-int/lit8 v0, v1, 0x1
move v1, v0
goto :goto_36
.line 114
:cond_67
invoke-direct {p0, v4, p2}, Lcom/google/zxing/qrcode/decoder/d;->a(Lcom/google/zxing/qrcode/decoder/a;Ljava/util/Map;)Lcom/google/zxing/common/d;
move-result-object v0
.line 117
new-instance v1, Lcom/google/zxing/qrcode/decoder/f;
invoke-direct {v1}, Lcom/google/zxing/qrcode/decoder/f;-><init>()V
.line 4137
iput-object v1, v0, Lcom/google/zxing/common/d;->boK:Ljava/lang/Object;
:try_end_72
.catch Lcom/google/zxing/FormatException; {:try_start_e .. :try_end_72} :catch_73
.catch Lcom/google/zxing/ChecksumException; {:try_start_e .. :try_end_72} :catch_7b
goto :goto_a
.line 121
:catch_73
move-exception v0
.line 123
:goto_74
if-eqz v3, :cond_77
.line 124
throw v3
.line 126
:cond_77
if-eqz v2, :cond_7a
.line 127
throw v2
.line 129
:cond_7a
throw v0
.line 121
:catch_7b
move-exception v0
goto :goto_74
.end method