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