DecodedBitStreamParser.smali

.class final Lcom/dcloud/zxing2/pdf417/decoder/DecodedBitStreamParser;
.super Ljava/lang/Object;


# annotations
.annotation system Ldalvik/annotation/MemberClasses;
    value = {
        Lcom/dcloud/zxing2/pdf417/decoder/DecodedBitStreamParser$Mode;
    }
.end annotation


# static fields
.field private static final AL:I = 0x1c

.field private static final AS:I = 0x1b

.field private static final BEGIN_MACRO_PDF417_CONTROL_BLOCK:I = 0x3a0

.field private static final BEGIN_MACRO_PDF417_OPTIONAL_FIELD:I = 0x39b

.field private static final BYTE_COMPACTION_MODE_LATCH:I = 0x385

.field private static final BYTE_COMPACTION_MODE_LATCH_6:I = 0x39c

.field private static final DEFAULT_ENCODING:Ljava/nio/charset/Charset;

.field private static final ECI_CHARSET:I = 0x39f

.field private static final ECI_GENERAL_PURPOSE:I = 0x39e

.field private static final ECI_USER_DEFINED:I = 0x39d

.field private static final EXP900:[Ljava/math/BigInteger;

.field private static final LL:I = 0x1b

.field private static final MACRO_PDF417_TERMINATOR:I = 0x39a

.field private static final MAX_NUMERIC_CODEWORDS:I = 0xf

.field private static final MIXED_CHARS:[C

.field private static final ML:I = 0x1c

.field private static final MODE_SHIFT_TO_BYTE_COMPACTION_MODE:I = 0x391

.field private static final NUMBER_OF_SEQUENCE_CODEWORDS:I = 0x2

.field private static final NUMERIC_COMPACTION_MODE_LATCH:I = 0x386

.field private static final PAL:I = 0x1d

.field private static final PL:I = 0x19

.field private static final PS:I = 0x1d

.field private static final PUNCT_CHARS:[C

.field private static final TEXT_COMPACTION_MODE_LATCH:I = 0x384


# direct methods
.method static constructor <clinit>()V
    .registers 4

    const/16 v0, 0x1d

    new-array v0, v0, [C

    .line 1
    fill-array-data v0, :array_42

    sput-object v0, Lcom/dcloud/zxing2/pdf417/decoder/DecodedBitStreamParser;->PUNCT_CHARS:[C

    const/16 v0, 0x19

    new-array v0, v0, [C

    .line 6
    fill-array-data v0, :array_64

    sput-object v0, Lcom/dcloud/zxing2/pdf417/decoder/DecodedBitStreamParser;->MIXED_CHARS:[C

    const-string v0, "ISO-8859-1"

    .line 11
    invoke-static {v0}, Ljava/nio/charset/Charset;->forName(Ljava/lang/String;)Ljava/nio/charset/Charset;

    move-result-object v0

    sput-object v0, Lcom/dcloud/zxing2/pdf417/decoder/DecodedBitStreamParser;->DEFAULT_ENCODING:Ljava/nio/charset/Charset;

    const/16 v0, 0x10

    new-array v0, v0, [Ljava/math/BigInteger;

    .line 19
    sput-object v0, Lcom/dcloud/zxing2/pdf417/decoder/DecodedBitStreamParser;->EXP900:[Ljava/math/BigInteger;

    .line 20
    sget-object v1, Ljava/math/BigInteger;->ONE:Ljava/math/BigInteger;

    const/4 v2, 0x0

    aput-object v1, v0, v2

    const-wide/16 v1, 0x384

    .line 21
    invoke-static {v1, v2}, Ljava/math/BigInteger;->valueOf(J)Ljava/math/BigInteger;

    move-result-object v1

    const/4 v2, 0x1

    aput-object v1, v0, v2

    const/4 v0, 0x2

    .line 23
    :goto_2f
    sget-object v2, Lcom/dcloud/zxing2/pdf417/decoder/DecodedBitStreamParser;->EXP900:[Ljava/math/BigInteger;

    array-length v3, v2

    if-ge v0, v3, :cond_41

    add-int/lit8 v3, v0, -0x1

    .line 24
    aget-object v3, v2, v3

    invoke-virtual {v3, v1}, Ljava/math/BigInteger;->multiply(Ljava/math/BigInteger;)Ljava/math/BigInteger;

    move-result-object v3

    aput-object v3, v2, v0

    add-int/lit8 v0, v0, 0x1

    goto :goto_2f

    :cond_41
    return-void

    :array_42
    .array-data 2
        0x3bs
        0x3cs
        0x3es
        0x40s
        0x5bs
        0x5cs
        0x5ds
        0x5fs
        0x60s
        0x7es
        0x21s
        0xds
        0x9s
        0x2cs
        0x3as
        0xas
        0x2ds
        0x2es
        0x24s
        0x2fs
        0x22s
        0x7cs
        0x2as
        0x28s
        0x29s
        0x3fs
        0x7bs
        0x7ds
        0x27s
    .end array-data

    nop

    :array_64
    .array-data 2
        0x30s
        0x31s
        0x32s
        0x33s
        0x34s
        0x35s
        0x36s
        0x37s
        0x38s
        0x39s
        0x26s
        0xds
        0x9s
        0x2cs
        0x3as
        0x23s
        0x2ds
        0x2es
        0x24s
        0x2fs
        0x2bs
        0x25s
        0x2as
        0x3ds
        0x5es
    .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 byteCompaction(I[ILjava/nio/charset/Charset;ILjava/lang/StringBuilder;)I
    .registers 25

    move/from16 v0, p0

    .line 1
    new-instance v1, Ljava/io/ByteArrayOutputStream;

    invoke-direct {v1}, Ljava/io/ByteArrayOutputStream;-><init>()V

    const/16 v2, 0x39a

    const/16 v3, 0x39b

    const/16 v4, 0x3a0

    const/16 v5, 0x386

    const-wide/16 v6, 0x384

    const/4 v8, 0x6

    const/16 v9, 0x39c

    const/16 v10, 0x385

    const/16 v11, 0x384

    const/4 v15, 0x0

    if-ne v0, v10, :cond_9f

    new-array v0, v8, [I

    add-int/lit8 v16, p3, 0x1

    .line 9
    aget v17, p1, p3

    move/from16 v12, v16

    move/from16 v13, v17

    const-wide/16 v18, 0x0

    move/from16 v16, v15

    move/from16 v17, v16

    .line 10
    :goto_2b
    aget v14, p1, v15

    if-ge v12, v14, :cond_87

    if-nez v16, :cond_87

    add-int/lit8 v14, v17, 0x1

    .line 11
    aput v13, v0, v17

    mul-long v18, v18, v6

    int-to-long v6, v13

    add-long v18, v18, v6

    add-int/lit8 v6, v12, 0x1

    .line 14
    aget v13, p1, v12

    if-eq v13, v11, :cond_7a

    if-eq v13, v10, :cond_7a

    if-eq v13, v5, :cond_7a

    if-eq v13, v9, :cond_7a

    if-eq v13, v4, :cond_7a

    if-eq v13, v3, :cond_7a

    if-ne v13, v2, :cond_4d

    goto :goto_7a

    .line 26
    :cond_4d
    rem-int/lit8 v7, v14, 0x5

    if-nez v7, :cond_70

    if-lez v14, :cond_70

    move v7, v15

    :goto_54
    if-ge v7, v8, :cond_68

    rsub-int/lit8 v12, v7, 0x5

    mul-int/lit8 v12, v12, 0x8

    shr-long v2, v18, v12

    long-to-int v2, v2

    int-to-byte v2, v2

    .line 30
    invoke-virtual {v1, v2}, Ljava/io/ByteArrayOutputStream;->write(I)V

    add-int/lit8 v7, v7, 0x1

    const/16 v2, 0x39a

    const/16 v3, 0x39b

    goto :goto_54

    :cond_68
    move v12, v6

    move/from16 v17, v15

    const-wide/16 v6, 0x384

    const-wide/16 v18, 0x0

    goto :goto_2b

    :cond_70
    move v12, v6

    move/from16 v17, v14

    const/16 v2, 0x39a

    const/16 v3, 0x39b

    const-wide/16 v6, 0x384

    goto :goto_2b

    :cond_7a
    :goto_7a
    add-int/lit8 v12, v6, -0x1

    move/from16 v17, v14

    const/16 v2, 0x39a

    const/16 v3, 0x39b

    const-wide/16 v6, 0x384

    const/16 v16, 0x1

    goto :goto_2b

    .line 39
    :cond_87
    aget v2, p1, v15

    if-ne v12, v2, :cond_92

    if-ge v13, v11, :cond_92

    add-int/lit8 v2, v17, 0x1

    .line 40
    aput v13, v0, v17

    goto :goto_94

    :cond_92
    move/from16 v2, v17

    :goto_94
    if-ge v15, v2, :cond_104

    .line 47
    aget v3, v0, v15

    int-to-byte v3, v3

    invoke-virtual {v1, v3}, Ljava/io/ByteArrayOutputStream;->write(I)V

    add-int/lit8 v15, v15, 0x1

    goto :goto_94

    :cond_9f
    if-ne v0, v9, :cond_102

    move/from16 v0, p3

    move v2, v15

    move v3, v2

    const-wide/16 v6, 0x0

    .line 56
    :goto_a7
    aget v12, p1, v15

    if-ge v0, v12, :cond_100

    if-nez v2, :cond_100

    add-int/lit8 v12, v0, 0x1

    .line 57
    aget v0, p1, v0

    if-ge v0, v11, :cond_c0

    add-int/lit8 v3, v3, 0x1

    const-wide/16 v13, 0x384

    mul-long/2addr v6, v13

    int-to-long v13, v0

    add-long/2addr v6, v13

    move v0, v12

    const/16 v13, 0x39b

    const/16 v14, 0x39a

    goto :goto_dd

    :cond_c0
    if-eq v0, v11, :cond_d5

    if-eq v0, v10, :cond_d5

    if-eq v0, v5, :cond_d5

    if-eq v0, v9, :cond_d5

    if-eq v0, v4, :cond_d5

    const/16 v13, 0x39b

    const/16 v14, 0x39a

    if-eq v0, v13, :cond_d9

    if-ne v0, v14, :cond_d3

    goto :goto_d9

    :cond_d3
    move v0, v12

    goto :goto_dd

    :cond_d5
    const/16 v13, 0x39b

    const/16 v14, 0x39a

    :cond_d9
    :goto_d9
    add-int/lit8 v12, v12, -0x1

    move v0, v12

    const/4 v2, 0x1

    .line 74
    :goto_dd
    rem-int/lit8 v12, v3, 0x5

    if-nez v12, :cond_fb

    if-lez v3, :cond_fb

    move v3, v15

    :goto_e4
    if-ge v3, v8, :cond_f8

    rsub-int/lit8 v12, v3, 0x5

    mul-int/lit8 v12, v12, 0x8

    shr-long v4, v6, v12

    long-to-int v4, v4

    int-to-byte v4, v4

    .line 78
    invoke-virtual {v1, v4}, Ljava/io/ByteArrayOutputStream;->write(I)V

    add-int/lit8 v3, v3, 0x1

    const/16 v4, 0x3a0

    const/16 v5, 0x386

    goto :goto_e4

    :cond_f8
    move v3, v15

    const-wide/16 v6, 0x0

    :cond_fb
    const/16 v4, 0x3a0

    const/16 v5, 0x386

    goto :goto_a7

    :cond_100
    move v12, v0

    goto :goto_104

    :cond_102
    move/from16 v12, p3

    .line 85
    :cond_104
    :goto_104
    new-instance v0, Ljava/lang/String;

    invoke-virtual {v1}, Ljava/io/ByteArrayOutputStream;->toByteArray()[B

    move-result-object v1

    move-object/from16 v2, p2

    invoke-direct {v0, v1, v2}, Ljava/lang/String;-><init>([BLjava/nio/charset/Charset;)V

    move-object/from16 v1, p4

    invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    return v12
.end method

.method static decode([ILjava/lang/String;)Lcom/dcloud/zxing2/common/DecoderResult;
    .registers 9
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Lcom/dcloud/zxing2/FormatException;
        }
    .end annotation

    .line 1
    new-instance v0, Ljava/lang/StringBuilder;

    array-length v1, p0

    const/4 v2, 0x2

    mul-int/2addr v1, v2

    invoke-direct {v0, v1}, Ljava/lang/StringBuilder;-><init>(I)V

    const-string v1, "UTF-8"

    .line 3
    invoke-static {v1}, Ljava/nio/charset/Charset;->forName(Ljava/lang/String;)Ljava/nio/charset/Charset;

    move-result-object v1

    const/4 v3, 0x1

    .line 6
    aget v3, p0, v3

    .line 8
    new-instance v4, Lcom/dcloud/zxing2/pdf417/PDF417ResultMetadata;

    invoke-direct {v4}, Lcom/dcloud/zxing2/pdf417/PDF417ResultMetadata;-><init>()V

    :goto_16
    const/4 v5, 0x0

    .line 9
    aget v5, p0, v5

    if-ge v2, v5, :cond_78

    const/16 v5, 0x391

    if-eq v3, v5, :cond_5f

    packed-switch v3, :pswitch_data_92

    packed-switch v3, :pswitch_data_9c

    add-int/lit8 v2, v2, -0x1

    .line 50
    invoke-static {p0, v2, v0}, Lcom/dcloud/zxing2/pdf417/decoder/DecodedBitStreamParser;->textCompaction([IILjava/lang/StringBuilder;)I

    move-result v2

    goto :goto_68

    .line 71
    :pswitch_2c
    invoke-static {p0, v2, v0}, Lcom/dcloud/zxing2/pdf417/decoder/DecodedBitStreamParser;->numericCompaction([IILjava/lang/StringBuilder;)I

    move-result v2

    goto :goto_68

    .line 73
    :pswitch_31
    invoke-static {p0, v2, v0}, Lcom/dcloud/zxing2/pdf417/decoder/DecodedBitStreamParser;->textCompaction([IILjava/lang/StringBuilder;)I

    move-result v2

    goto :goto_68

    .line 51
    :pswitch_36
    invoke-static {p0, v2, v4}, Lcom/dcloud/zxing2/pdf417/decoder/DecodedBitStreamParser;->decodeMacroBlock([IILcom/dcloud/zxing2/pdf417/PDF417ResultMetadata;)I

    move-result v2

    goto :goto_68

    :pswitch_3b
    add-int/lit8 v1, v2, 0x1

    .line 52
    aget v2, p0, v2

    .line 53
    invoke-static {v2}, Lcom/dcloud/zxing2/common/CharacterSetECI;->getCharacterSetECIByValue(I)Lcom/dcloud/zxing2/common/CharacterSetECI;

    move-result-object v2

    .line 54
    invoke-virtual {v2}, Ljava/lang/Enum;->name()Ljava/lang/String;

    move-result-object v2

    invoke-static {v2}, Ljava/nio/charset/Charset;->forName(Ljava/lang/String;)Ljava/nio/charset/Charset;

    move-result-object v2

    move-object v6, v2

    move v2, v1

    move-object v1, v6

    goto :goto_68

    :pswitch_4f
    add-int/lit8 v2, v2, 0x2

    goto :goto_68

    :pswitch_52
    add-int/lit8 v2, v2, 0x1

    goto :goto_68

    .line 72
    :pswitch_55
    invoke-static {v3, p0, v1, v2, v0}, Lcom/dcloud/zxing2/pdf417/decoder/DecodedBitStreamParser;->byteCompaction(I[ILjava/nio/charset/Charset;ILjava/lang/StringBuilder;)I

    move-result v2

    goto :goto_68

    .line 70
    :pswitch_5a
    invoke-static {}, Lcom/dcloud/zxing2/FormatException;->getFormatInstance()Lcom/dcloud/zxing2/FormatException;

    move-result-object p0

    throw p0

    :cond_5f
    add-int/lit8 v3, v2, 0x1

    .line 80
    aget v2, p0, v2

    int-to-char v2, v2

    invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;

    move v2, v3

    .line 113
    :goto_68
    array-length v3, p0

    if-ge v2, v3, :cond_73

    add-int/lit8 v3, v2, 0x1

    .line 114
    aget v2, p0, v2

    move v6, v3

    move v3, v2

    move v2, v6

    goto :goto_16

    .line 116
    :cond_73
    invoke-static {}, Lcom/dcloud/zxing2/FormatException;->getFormatInstance()Lcom/dcloud/zxing2/FormatException;

    move-result-object p0

    throw p0

    .line 119
    :cond_78
    invoke-virtual {v0}, Ljava/lang/StringBuilder;->length()I

    move-result p0

    if-eqz p0, :cond_8c

    .line 122
    new-instance p0, Lcom/dcloud/zxing2/common/DecoderResult;

    invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v0

    const/4 v1, 0x0

    invoke-direct {p0, v1, v0, v1, p1}, Lcom/dcloud/zxing2/common/DecoderResult;-><init>([BLjava/lang/String;Ljava/util/List;Ljava/lang/String;)V

    .line 123
    invoke-virtual {p0, v4}, Lcom/dcloud/zxing2/common/DecoderResult;->setOther(Ljava/lang/Object;)V

    return-object p0

    .line 124
    :cond_8c
    invoke-static {}, Lcom/dcloud/zxing2/FormatException;->getFormatInstance()Lcom/dcloud/zxing2/FormatException;

    move-result-object p0

    throw p0

    nop

    :pswitch_data_92
    .packed-switch 0x384
        :pswitch_31
        :pswitch_55
        :pswitch_2c
    .end packed-switch

    :pswitch_data_9c
    .packed-switch 0x39a
        :pswitch_5a
        :pswitch_5a
        :pswitch_55
        :pswitch_52
        :pswitch_4f
        :pswitch_3b
        :pswitch_36
    .end packed-switch
.end method

.method private static decodeBase900toBase10([II)Ljava/lang/String;
    .registers 8
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Lcom/dcloud/zxing2/FormatException;
        }
    .end annotation

    .line 1
    sget-object v0, Ljava/math/BigInteger;->ZERO:Ljava/math/BigInteger;

    const/4 v1, 0x0

    move v2, v1

    :goto_4
    const/4 v3, 0x1

    if-ge v2, p1, :cond_20

    .line 3
    sget-object v4, Lcom/dcloud/zxing2/pdf417/decoder/DecodedBitStreamParser;->EXP900:[Ljava/math/BigInteger;

    sub-int v5, p1, v2

    sub-int/2addr v5, v3

    aget-object v3, v4, v5

    aget v4, p0, v2

    int-to-long v4, v4

    invoke-static {v4, v5}, Ljava/math/BigInteger;->valueOf(J)Ljava/math/BigInteger;

    move-result-object v4

    invoke-virtual {v3, v4}, Ljava/math/BigInteger;->multiply(Ljava/math/BigInteger;)Ljava/math/BigInteger;

    move-result-object v3

    invoke-virtual {v0, v3}, Ljava/math/BigInteger;->add(Ljava/math/BigInteger;)Ljava/math/BigInteger;

    move-result-object v0

    add-int/lit8 v2, v2, 0x1

    goto :goto_4

    .line 5
    :cond_20
    invoke-virtual {v0}, Ljava/math/BigInteger;->toString()Ljava/lang/String;

    move-result-object p0

    .line 6
    invoke-virtual {p0, v1}, Ljava/lang/String;->charAt(I)C

    move-result p1

    const/16 v0, 0x31

    if-ne p1, v0, :cond_31

    .line 9
    invoke-virtual {p0, v3}, Ljava/lang/String;->substring(I)Ljava/lang/String;

    move-result-object p0

    return-object p0

    .line 10
    :cond_31
    invoke-static {}, Lcom/dcloud/zxing2/FormatException;->getFormatInstance()Lcom/dcloud/zxing2/FormatException;

    move-result-object p0

    throw p0
.end method

.method private static decodeMacroBlock([IILcom/dcloud/zxing2/pdf417/PDF417ResultMetadata;)I
    .registers 11
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Lcom/dcloud/zxing2/FormatException;
        }
    .end annotation

    add-int/lit8 v0, p1, 0x2

    const/4 v1, 0x0

    .line 1
    aget v2, p0, v1

    if-gt v0, v2, :cond_79

    const/4 v0, 0x2

    new-array v2, v0, [I

    move v3, v1

    :goto_b
    if-ge v3, v0, :cond_16

    .line 7
    aget v4, p0, p1

    aput v4, v2, v3

    add-int/lit8 v3, v3, 0x1

    add-int/lit8 p1, p1, 0x1

    goto :goto_b

    .line 9
    :cond_16
    invoke-static {v2, v0}, Lcom/dcloud/zxing2/pdf417/decoder/DecodedBitStreamParser;->decodeBase900toBase10([II)Ljava/lang/String;

    move-result-object v0

    invoke-static {v0}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I

    move-result v0

    invoke-virtual {p2, v0}, Lcom/dcloud/zxing2/pdf417/PDF417ResultMetadata;->setSegmentIndex(I)V

    .line 12
    new-instance v0, Ljava/lang/StringBuilder;

    invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V

    .line 13
    invoke-static {p0, p1, v0}, Lcom/dcloud/zxing2/pdf417/decoder/DecodedBitStreamParser;->textCompaction([IILjava/lang/StringBuilder;)I

    move-result p1

    .line 14
    invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v0

    invoke-virtual {p2, v0}, Lcom/dcloud/zxing2/pdf417/PDF417ResultMetadata;->setFileId(Ljava/lang/String;)V

    .line 16
    aget v0, p0, p1

    const/16 v2, 0x39b

    const/16 v3, 0x39a

    const/4 v4, 0x1

    if-ne v0, v2, :cond_6f

    add-int/lit8 p1, p1, 0x1

    .line 18
    aget v0, p0, v1

    sub-int/2addr v0, p1

    new-array v0, v0, [I

    move v2, v1

    move v5, v2

    .line 22
    :goto_43
    aget v6, p0, v1

    if-ge p1, v6, :cond_67

    if-nez v2, :cond_67

    add-int/lit8 v6, p1, 0x1

    .line 23
    aget p1, p0, p1

    const/16 v7, 0x384

    if-ge p1, v7, :cond_58

    add-int/lit8 v7, v5, 0x1

    .line 25
    aput p1, v0, v5

    move p1, v6

    move v5, v7

    goto :goto_43

    :cond_58
    if-ne p1, v3, :cond_62

    .line 29
    invoke-virtual {p2, v4}, Lcom/dcloud/zxing2/pdf417/PDF417ResultMetadata;->setLastSegment(Z)V

    add-int/lit8 v6, v6, 0x1

    move v2, v4

    move p1, v6

    goto :goto_43

    .line 34
    :cond_62
    invoke-static {}, Lcom/dcloud/zxing2/FormatException;->getFormatInstance()Lcom/dcloud/zxing2/FormatException;

    move-result-object p0

    throw p0

    .line 39
    :cond_67
    invoke-static {v0, v5}, Ljava/util/Arrays;->copyOf([II)[I

    move-result-object p0

    invoke-virtual {p2, p0}, Lcom/dcloud/zxing2/pdf417/PDF417ResultMetadata;->setOptionalData([I)V

    goto :goto_78

    .line 40
    :cond_6f
    aget p0, p0, p1

    if-ne p0, v3, :cond_78

    .line 41
    invoke-virtual {p2, v4}, Lcom/dcloud/zxing2/pdf417/PDF417ResultMetadata;->setLastSegment(Z)V

    add-int/lit8 p1, p1, 0x1

    :cond_78
    :goto_78
    return p1

    .line 42
    :cond_79
    invoke-static {}, Lcom/dcloud/zxing2/FormatException;->getFormatInstance()Lcom/dcloud/zxing2/FormatException;

    move-result-object p0

    throw p0
.end method

.method private static decodeTextCompaction([I[IILjava/lang/StringBuilder;)V
    .registers 20

    move-object/from16 v0, p3

    .line 1
    sget-object v1, Lcom/dcloud/zxing2/pdf417/decoder/DecodedBitStreamParser$Mode;->ALPHA:Lcom/dcloud/zxing2/pdf417/decoder/DecodedBitStreamParser$Mode;

    const/4 v2, 0x0

    move/from16 v4, p2

    move-object v3, v1

    move v5, v2

    :goto_9
    if-ge v5, v4, :cond_101

    .line 5
    aget v6, p0, v5

    .line 7
    sget-object v7, Lcom/dcloud/zxing2/pdf417/decoder/DecodedBitStreamParser$1;->$SwitchMap$com$dcloud$zxing2$pdf417$decoder$DecodedBitStreamParser$Mode:[I

    invoke-virtual {v1}, Ljava/lang/Enum;->ordinal()I

    move-result v8

    aget v7, v7, v8

    const/16 v8, 0x20

    const/16 v9, 0x1c

    const/16 v10, 0x1b

    const/16 v11, 0x391

    const/16 v12, 0x384

    const/16 v13, 0x1d

    const/16 v14, 0x1a

    packed-switch v7, :pswitch_data_102

    goto/16 :goto_f7

    :pswitch_28
    if-ge v6, v13, :cond_2f

    .line 116
    sget-object v1, Lcom/dcloud/zxing2/pdf417/decoder/DecodedBitStreamParser;->PUNCT_CHARS:[C

    aget-char v1, v1, v6

    goto :goto_47

    :cond_2f
    if-ne v6, v13, :cond_34

    .line 119
    sget-object v1, Lcom/dcloud/zxing2/pdf417/decoder/DecodedBitStreamParser$Mode;->ALPHA:Lcom/dcloud/zxing2/pdf417/decoder/DecodedBitStreamParser$Mode;

    goto :goto_7f

    :cond_34
    if-ne v6, v11, :cond_3d

    .line 123
    aget v1, p1, v5

    int-to-char v1, v1

    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;

    goto :goto_53

    :cond_3d
    if-ne v6, v12, :cond_53

    .line 125
    sget-object v1, Lcom/dcloud/zxing2/pdf417/decoder/DecodedBitStreamParser$Mode;->ALPHA:Lcom/dcloud/zxing2/pdf417/decoder/DecodedBitStreamParser$Mode;

    goto :goto_7f

    :pswitch_42
    if-ge v6, v14, :cond_4b

    add-int/lit8 v6, v6, 0x41

    int-to-char v1, v6

    :goto_47
    move v8, v1

    :goto_48
    move-object v1, v3

    goto/16 :goto_f3

    :cond_4b
    if-ne v6, v14, :cond_4e

    goto :goto_48

    :cond_4e
    if-ne v6, v12, :cond_53

    .line 126
    sget-object v1, Lcom/dcloud/zxing2/pdf417/decoder/DecodedBitStreamParser$Mode;->ALPHA:Lcom/dcloud/zxing2/pdf417/decoder/DecodedBitStreamParser$Mode;

    goto :goto_7f

    :cond_53
    :goto_53
    move v8, v2

    goto :goto_48

    :pswitch_55
    if-ge v6, v13, :cond_5d

    .line 127
    sget-object v7, Lcom/dcloud/zxing2/pdf417/decoder/DecodedBitStreamParser;->PUNCT_CHARS:[C

    aget-char v8, v7, v6

    goto/16 :goto_f8

    :cond_5d
    if-ne v6, v13, :cond_62

    .line 130
    sget-object v1, Lcom/dcloud/zxing2/pdf417/decoder/DecodedBitStreamParser$Mode;->ALPHA:Lcom/dcloud/zxing2/pdf417/decoder/DecodedBitStreamParser$Mode;

    goto :goto_7f

    :cond_62
    if-ne v6, v11, :cond_6c

    .line 132
    aget v6, p1, v5

    int-to-char v6, v6

    invoke-virtual {v0, v6}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;

    goto/16 :goto_f7

    :cond_6c
    if-ne v6, v12, :cond_f7

    .line 134
    sget-object v1, Lcom/dcloud/zxing2/pdf417/decoder/DecodedBitStreamParser$Mode;->ALPHA:Lcom/dcloud/zxing2/pdf417/decoder/DecodedBitStreamParser$Mode;

    goto :goto_7f

    :pswitch_71
    const/16 v7, 0x19

    if-ge v6, v7, :cond_7b

    .line 135
    sget-object v7, Lcom/dcloud/zxing2/pdf417/decoder/DecodedBitStreamParser;->MIXED_CHARS:[C

    aget-char v8, v7, v6

    goto/16 :goto_f8

    :cond_7b
    if-ne v6, v7, :cond_85

    .line 138
    sget-object v1, Lcom/dcloud/zxing2/pdf417/decoder/DecodedBitStreamParser$Mode;->PUNCT:Lcom/dcloud/zxing2/pdf417/decoder/DecodedBitStreamParser$Mode;

    :goto_7f
    move v8, v2

    move-object v15, v3

    move-object v3, v1

    move-object v1, v15

    goto/16 :goto_f3

    :cond_85
    if-ne v6, v14, :cond_89

    goto/16 :goto_f8

    :cond_89
    if-ne v6, v10, :cond_8e

    .line 142
    sget-object v1, Lcom/dcloud/zxing2/pdf417/decoder/DecodedBitStreamParser$Mode;->LOWER:Lcom/dcloud/zxing2/pdf417/decoder/DecodedBitStreamParser$Mode;

    goto :goto_7f

    :cond_8e
    if-ne v6, v9, :cond_93

    .line 144
    sget-object v1, Lcom/dcloud/zxing2/pdf417/decoder/DecodedBitStreamParser$Mode;->ALPHA:Lcom/dcloud/zxing2/pdf417/decoder/DecodedBitStreamParser$Mode;

    goto :goto_7f

    :cond_93
    if-ne v6, v13, :cond_98

    .line 148
    sget-object v3, Lcom/dcloud/zxing2/pdf417/decoder/DecodedBitStreamParser$Mode;->PUNCT_SHIFT:Lcom/dcloud/zxing2/pdf417/decoder/DecodedBitStreamParser$Mode;

    goto :goto_b3

    :cond_98
    if-ne v6, v11, :cond_a2

    .line 150
    aget v6, p1, v5

    int-to-char v6, v6

    invoke-virtual {v0, v6}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;

    goto/16 :goto_f7

    :cond_a2
    if-ne v6, v12, :cond_f7

    .line 152
    sget-object v1, Lcom/dcloud/zxing2/pdf417/decoder/DecodedBitStreamParser$Mode;->ALPHA:Lcom/dcloud/zxing2/pdf417/decoder/DecodedBitStreamParser$Mode;

    goto :goto_7f

    :pswitch_a7
    if-ge v6, v14, :cond_ac

    add-int/lit8 v6, v6, 0x61

    goto :goto_d1

    :cond_ac
    if-ne v6, v14, :cond_af

    goto :goto_f8

    :cond_af
    if-ne v6, v10, :cond_b5

    .line 153
    sget-object v3, Lcom/dcloud/zxing2/pdf417/decoder/DecodedBitStreamParser$Mode;->ALPHA_SHIFT:Lcom/dcloud/zxing2/pdf417/decoder/DecodedBitStreamParser$Mode;

    :goto_b3
    move v8, v2

    goto :goto_f3

    :cond_b5
    if-ne v6, v9, :cond_ba

    .line 155
    sget-object v1, Lcom/dcloud/zxing2/pdf417/decoder/DecodedBitStreamParser$Mode;->MIXED:Lcom/dcloud/zxing2/pdf417/decoder/DecodedBitStreamParser$Mode;

    goto :goto_7f

    :cond_ba
    if-ne v6, v13, :cond_bf

    .line 159
    sget-object v3, Lcom/dcloud/zxing2/pdf417/decoder/DecodedBitStreamParser$Mode;->PUNCT_SHIFT:Lcom/dcloud/zxing2/pdf417/decoder/DecodedBitStreamParser$Mode;

    goto :goto_b3

    :cond_bf
    if-ne v6, v11, :cond_c8

    .line 162
    aget v6, p1, v5

    int-to-char v6, v6

    invoke-virtual {v0, v6}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;

    goto :goto_f7

    :cond_c8
    if-ne v6, v12, :cond_f7

    .line 164
    sget-object v1, Lcom/dcloud/zxing2/pdf417/decoder/DecodedBitStreamParser$Mode;->ALPHA:Lcom/dcloud/zxing2/pdf417/decoder/DecodedBitStreamParser$Mode;

    goto :goto_7f

    :pswitch_cd
    if-ge v6, v14, :cond_d3

    add-int/lit8 v6, v6, 0x41

    :goto_d1
    int-to-char v8, v6

    goto :goto_f8

    :cond_d3
    if-ne v6, v14, :cond_d6

    goto :goto_f8

    :cond_d6
    if-ne v6, v10, :cond_db

    .line 165
    sget-object v1, Lcom/dcloud/zxing2/pdf417/decoder/DecodedBitStreamParser$Mode;->LOWER:Lcom/dcloud/zxing2/pdf417/decoder/DecodedBitStreamParser$Mode;

    goto :goto_7f

    :cond_db
    if-ne v6, v9, :cond_e0

    .line 167
    sget-object v1, Lcom/dcloud/zxing2/pdf417/decoder/DecodedBitStreamParser$Mode;->MIXED:Lcom/dcloud/zxing2/pdf417/decoder/DecodedBitStreamParser$Mode;

    goto :goto_7f

    :cond_e0
    if-ne v6, v13, :cond_e5

    .line 171
    sget-object v3, Lcom/dcloud/zxing2/pdf417/decoder/DecodedBitStreamParser$Mode;->PUNCT_SHIFT:Lcom/dcloud/zxing2/pdf417/decoder/DecodedBitStreamParser$Mode;

    goto :goto_b3

    :cond_e5
    if-ne v6, v11, :cond_ee

    .line 173
    aget v6, p1, v5

    int-to-char v6, v6

    invoke-virtual {v0, v6}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;

    goto :goto_f7

    :cond_ee
    if-ne v6, v12, :cond_f7

    .line 175
    sget-object v1, Lcom/dcloud/zxing2/pdf417/decoder/DecodedBitStreamParser$Mode;->ALPHA:Lcom/dcloud/zxing2/pdf417/decoder/DecodedBitStreamParser$Mode;

    goto :goto_7f

    :goto_f3
    move-object v15, v3

    move-object v3, v1

    move-object v1, v15

    goto :goto_f8

    :cond_f7
    :goto_f7
    move v8, v2

    :goto_f8
    if-eqz v8, :cond_fd

    .line 280
    invoke-virtual {v0, v8}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;

    :cond_fd
    add-int/lit8 v5, v5, 0x1

    goto/16 :goto_9

    :cond_101
    return-void

    :pswitch_data_102
    .packed-switch 0x1
        :pswitch_cd
        :pswitch_a7
        :pswitch_71
        :pswitch_55
        :pswitch_42
        :pswitch_28
    .end packed-switch
.end method

.method private static numericCompaction([IILjava/lang/StringBuilder;)I
    .registers 10
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Lcom/dcloud/zxing2/FormatException;
        }
    .end annotation

    const/16 v0, 0xf

    new-array v0, v0, [I

    const/4 v1, 0x0

    move v2, v1

    move v3, v2

    .line 3
    :goto_7
    aget v4, p0, v1

    if-ge p1, v4, :cond_4f

    if-nez v2, :cond_4f

    add-int/lit8 v4, p1, 0x1

    .line 4
    aget p1, p0, p1

    .line 5
    aget v5, p0, v1

    const/4 v6, 0x1

    if-ne v4, v5, :cond_17

    move v2, v6

    :cond_17
    const/16 v5, 0x384

    if-ge p1, v5, :cond_20

    .line 9
    aput p1, v0, v3

    add-int/lit8 v3, v3, 0x1

    goto :goto_39

    :cond_20
    if-eq p1, v5, :cond_36

    const/16 v5, 0x385

    if-eq p1, v5, :cond_36

    const/16 v5, 0x39c

    if-eq p1, v5, :cond_36

    const/16 v5, 0x3a0

    if-eq p1, v5, :cond_36

    const/16 v5, 0x39b

    if-eq p1, v5, :cond_36

    const/16 v5, 0x39a

    if-ne p1, v5, :cond_39

    :cond_36
    add-int/lit8 v4, v4, -0x1

    move v2, v6

    .line 22
    :cond_39
    :goto_39
    rem-int/lit8 v5, v3, 0xf

    if-eqz v5, :cond_43

    const/16 v5, 0x386

    if-eq p1, v5, :cond_43

    if-eqz v2, :cond_4d

    :cond_43
    if-lez v3, :cond_4d

    .line 30
    invoke-static {v0, v3}, Lcom/dcloud/zxing2/pdf417/decoder/DecodedBitStreamParser;->decodeBase900toBase10([II)Ljava/lang/String;

    move-result-object p1

    .line 31
    invoke-virtual {p2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move v3, v1

    :cond_4d
    move p1, v4

    goto :goto_7

    :cond_4f
    return p1
.end method

.method private static textCompaction([IILjava/lang/StringBuilder;)I
    .registers 11

    const/4 v0, 0x0

    .line 1
    aget v1, p0, v0

    sub-int/2addr v1, p1

    mul-int/lit8 v1, v1, 0x2

    new-array v1, v1, [I

    .line 3
    aget v2, p0, v0

    sub-int/2addr v2, p1

    mul-int/lit8 v2, v2, 0x2

    new-array v2, v2, [I

    move v3, v0

    move v4, v3

    .line 7
    :goto_11
    aget v5, p0, v0

    if-ge p1, v5, :cond_51

    if-nez v3, :cond_51

    add-int/lit8 v5, p1, 0x1

    .line 8
    aget p1, p0, p1

    const/16 v6, 0x384

    if-ge p1, v6, :cond_2d

    .line 10
    div-int/lit8 v6, p1, 0x1e

    aput v6, v1, v4

    add-int/lit8 v6, v4, 0x1

    .line 11
    rem-int/lit8 p1, p1, 0x1e

    aput p1, v1, v6

    add-int/lit8 v4, v4, 0x2

    :goto_2b
    move p1, v5

    goto :goto_11

    :cond_2d
    const/16 v7, 0x391

    if-eq p1, v7, :cond_46

    const/16 v7, 0x3a0

    if-eq p1, v7, :cond_42

    packed-switch p1, :pswitch_data_56

    packed-switch p1, :pswitch_data_60

    goto :goto_2b

    :pswitch_3c
    add-int/lit8 p1, v4, 0x1

    .line 38
    aput v6, v1, v4

    move v4, p1

    goto :goto_2b

    :cond_42
    :pswitch_42
    add-int/lit8 p1, v5, -0x1

    const/4 v3, 0x1

    goto :goto_11

    .line 35
    :cond_46
    aput v7, v1, v4

    add-int/lit8 p1, v5, 0x1

    .line 36
    aget v5, p0, v5

    .line 37
    aput v5, v2, v4

    add-int/lit8 v4, v4, 0x1

    goto :goto_11

    .line 64
    :cond_51
    invoke-static {v1, v2, v4, p2}, Lcom/dcloud/zxing2/pdf417/decoder/DecodedBitStreamParser;->decodeTextCompaction([I[IILjava/lang/StringBuilder;)V

    return p1

    nop

    :pswitch_data_56
    .packed-switch 0x384
        :pswitch_3c
        :pswitch_42
        :pswitch_42
    .end packed-switch

    :pswitch_data_60
    .packed-switch 0x39a
        :pswitch_42
        :pswitch_42
        :pswitch_42
    .end packed-switch
.end method