Code93Reader.smali

.class public final Lcom/google/zxing/oned/Code93Reader;
.super Lcom/google/zxing/oned/OneDReader;
.source "Code93Reader.java"


# static fields
.field private static final ALPHABET:[C

.field static final ALPHABET_STRING:Ljava/lang/String; = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%abcd*"

.field private static final ASTERISK_ENCODING:I

.field static final CHARACTER_ENCODINGS:[I


# instance fields
.field private final counters:[I

.field private final decodeRowResult:Ljava/lang/StringBuilder;


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

    .line 41
    const-string v0, "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%abcd*"

    invoke-virtual {v0}, Ljava/lang/String;->toCharArray()[C

    move-result-object v0

    sput-object v0, Lcom/google/zxing/oned/Code93Reader;->ALPHABET:[C

    .line 47
    const/16 v0, 0x30

    new-array v0, v0, [I

    fill-array-data v0, :array_18

    .line 55
    sput-object v0, Lcom/google/zxing/oned/Code93Reader;->CHARACTER_ENCODINGS:[I

    const/16 v1, 0x2f

    aget v0, v0, v1

    sput v0, Lcom/google/zxing/oned/Code93Reader;->ASTERISK_ENCODING:I

    return-void

    :array_18
    .array-data 4
        0x114
        0x148
        0x144
        0x142
        0x128
        0x124
        0x122
        0x150
        0x112
        0x10a
        0x1a8
        0x1a4
        0x1a2
        0x194
        0x192
        0x18a
        0x168
        0x164
        0x162
        0x134
        0x11a
        0x158
        0x14c
        0x146
        0x12c
        0x116
        0x1b4
        0x1b2
        0x1ac
        0x1a6
        0x196
        0x19a
        0x16c
        0x166
        0x136
        0x13a
        0x12e
        0x1d4
        0x1d2
        0x1ca
        0x16e
        0x176
        0x1ae
        0x126
        0x1da
        0x1d6
        0x132
        0x15e
    .end array-data
.end method

.method public constructor <init>()V
    .registers 3

    .line 60
    invoke-direct {p0}, Lcom/google/zxing/oned/OneDReader;-><init>()V

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

    const/16 v1, 0x14

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

    iput-object v0, p0, Lcom/google/zxing/oned/Code93Reader;->decodeRowResult:Ljava/lang/StringBuilder;

    .line 62
    const/4 v0, 0x6

    new-array v0, v0, [I

    iput-object v0, p0, Lcom/google/zxing/oned/Code93Reader;->counters:[I

    .line 63
    return-void
.end method

.method private static checkChecksums(Ljava/lang/CharSequence;)V
    .registers 4
    .param p0, "result"    # Ljava/lang/CharSequence;
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Lcom/google/zxing/ChecksumException;
        }
    .end annotation

    .line 267
    invoke-interface {p0}, Ljava/lang/CharSequence;->length()I

    move-result v0

    .line 268
    .local v0, "length":I
    add-int/lit8 v1, v0, -0x2

    const/16 v2, 0x14

    invoke-static {p0, v1, v2}, Lcom/google/zxing/oned/Code93Reader;->checkOneChecksum(Ljava/lang/CharSequence;II)V

    .line 269
    add-int/lit8 v1, v0, -0x1

    const/16 v2, 0xf

    invoke-static {p0, v1, v2}, Lcom/google/zxing/oned/Code93Reader;->checkOneChecksum(Ljava/lang/CharSequence;II)V

    .line 270
    return-void
.end method

.method private static checkOneChecksum(Ljava/lang/CharSequence;II)V
    .registers 8
    .param p0, "result"    # Ljava/lang/CharSequence;
    .param p1, "checkPosition"    # I
    .param p2, "weightMax"    # I
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Lcom/google/zxing/ChecksumException;
        }
    .end annotation

    .line 274
    const/4 v0, 0x1

    .line 275
    .local v0, "weight":I
    const/4 v1, 0x0

    .line 276
    .local v1, "total":I
    add-int/lit8 v2, p1, -0x1

    .local v2, "i":I
    :goto_4
    if-ltz v2, :cond_1b

    .line 277
    invoke-interface {p0, v2}, Ljava/lang/CharSequence;->charAt(I)C

    move-result v3

    const-string v4, "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%abcd*"

    invoke-virtual {v4, v3}, Ljava/lang/String;->indexOf(I)I

    move-result v3

    mul-int v3, v3, v0

    add-int/2addr v1, v3

    .line 278
    add-int/lit8 v0, v0, 0x1

    if-le v0, p2, :cond_18

    .line 279
    const/4 v0, 0x1

    .line 276
    :cond_18
    add-int/lit8 v2, v2, -0x1

    goto :goto_4

    .line 282
    .end local v2    # "i":I
    :cond_1b
    invoke-interface {p0, p1}, Ljava/lang/CharSequence;->charAt(I)C

    move-result v2

    sget-object v3, Lcom/google/zxing/oned/Code93Reader;->ALPHABET:[C

    rem-int/lit8 v4, v1, 0x2f

    aget-char v3, v3, v4

    if-ne v2, v3, :cond_28

    .line 285
    return-void

    .line 283
    :cond_28
    invoke-static {}, Lcom/google/zxing/ChecksumException;->getChecksumInstance()Lcom/google/zxing/ChecksumException;

    move-result-object v2

    goto :goto_2e

    :goto_2d
    throw v2

    :goto_2e
    goto :goto_2d
.end method

.method private static decodeExtended(Ljava/lang/CharSequence;)Ljava/lang/String;
    .registers 10
    .param p0, "encoded"    # Ljava/lang/CharSequence;
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Lcom/google/zxing/FormatException;
        }
    .end annotation

    .line 198
    invoke-interface {p0}, Ljava/lang/CharSequence;->length()I

    move-result v0

    .line 199
    .local v0, "length":I
    new-instance v1, Ljava/lang/StringBuilder;

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

    .line 200
    .local v1, "decoded":Ljava/lang/StringBuilder;
    const/4 v2, 0x0

    .local v2, "i":I
    const/4 v3, 0x0

    :goto_b
    if-ge v2, v0, :cond_aa

    .line 201
    invoke-interface {p0, v2}, Ljava/lang/CharSequence;->charAt(I)C

    move-result v4

    .line 202
    .local v3, "c":C
    move v3, v4

    const/16 v5, 0x61

    if-lt v4, v5, :cond_a3

    const/16 v4, 0x64

    if-gt v3, v4, :cond_a3

    .line 203
    add-int/lit8 v4, v0, -0x1

    if-ge v2, v4, :cond_9e

    .line 206
    add-int/lit8 v4, v2, 0x1

    invoke-interface {p0, v4}, Ljava/lang/CharSequence;->charAt(I)C

    move-result v4

    .line 207
    .local v4, "next":C
    const/4 v5, 0x0

    .line 208
    .local v5, "decodedChar":C
    const/16 v6, 0x4f

    const/16 v7, 0x5a

    const/16 v8, 0x41

    packed-switch v3, :pswitch_data_b0

    goto/16 :goto_97

    .line 211
    :pswitch_30
    if-lt v4, v8, :cond_39

    if-gt v4, v7, :cond_39

    .line 212
    add-int/lit8 v6, v4, 0x20

    int-to-char v5, v6

    goto/16 :goto_97

    .line 214
    :cond_39
    invoke-static {}, Lcom/google/zxing/FormatException;->getFormatInstance()Lcom/google/zxing/FormatException;

    move-result-object v6

    throw v6

    .line 247
    :pswitch_3e
    if-lt v4, v8, :cond_46

    if-gt v4, v6, :cond_46

    .line 248
    add-int/lit8 v6, v4, -0x20

    int-to-char v5, v6

    goto :goto_97

    .line 249
    :cond_46
    if-ne v4, v7, :cond_4b

    .line 250
    const/16 v5, 0x3a

    goto :goto_97

    .line 252
    :cond_4b
    invoke-static {}, Lcom/google/zxing/FormatException;->getFormatInstance()Lcom/google/zxing/FormatException;

    move-result-object v6

    throw v6

    .line 226
    :pswitch_50
    if-lt v4, v8, :cond_5a

    const/16 v8, 0x45

    if-gt v4, v8, :cond_5a

    .line 228
    add-int/lit8 v6, v4, -0x26

    int-to-char v5, v6

    goto :goto_97

    .line 229
    :cond_5a
    const/16 v8, 0x46

    if-lt v4, v8, :cond_66

    const/16 v8, 0x4a

    if-gt v4, v8, :cond_66

    .line 231
    add-int/lit8 v6, v4, -0xb

    int-to-char v5, v6

    goto :goto_97

    .line 232
    :cond_66
    const/16 v8, 0x4b

    if-lt v4, v8, :cond_70

    if-gt v4, v6, :cond_70

    .line 234
    add-int/lit8 v6, v4, 0x10

    int-to-char v5, v6

    goto :goto_97

    .line 235
    :cond_70
    const/16 v6, 0x50

    if-lt v4, v6, :cond_7c

    const/16 v6, 0x53

    if-gt v4, v6, :cond_7c

    .line 237
    add-int/lit8 v6, v4, 0x2b

    int-to-char v5, v6

    goto :goto_97

    .line 238
    :cond_7c
    const/16 v6, 0x54

    if-lt v4, v6, :cond_85

    if-gt v4, v7, :cond_85

    .line 240
    const/16 v5, 0x7f

    goto :goto_97

    .line 242
    :cond_85
    invoke-static {}, Lcom/google/zxing/FormatException;->getFormatInstance()Lcom/google/zxing/FormatException;

    move-result-object v6

    throw v6

    .line 219
    :pswitch_8a
    if-lt v4, v8, :cond_92

    if-gt v4, v7, :cond_92

    .line 220
    add-int/lit8 v6, v4, -0x40

    int-to-char v5, v6

    goto :goto_97

    .line 222
    :cond_92
    invoke-static {}, Lcom/google/zxing/FormatException;->getFormatInstance()Lcom/google/zxing/FormatException;

    move-result-object v6

    throw v6

    .line 256
    :goto_97
    invoke-virtual {v1, v5}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;

    .line 258
    nop

    .end local v4    # "next":C
    .end local v5    # "decodedChar":C
    add-int/lit8 v2, v2, 0x1

    .line 259
    goto :goto_a6

    .line 204
    :cond_9e
    invoke-static {}, Lcom/google/zxing/FormatException;->getFormatInstance()Lcom/google/zxing/FormatException;

    move-result-object v4

    throw v4

    .line 260
    :cond_a3
    invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;

    .line 200
    .end local v3    # "c":C
    :goto_a6
    add-int/lit8 v2, v2, 0x1

    goto/16 :goto_b

    .line 263
    .end local v2    # "i":I
    :cond_aa
    invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v2

    return-object v2

    nop

    :pswitch_data_b0
    .packed-switch 0x61
        :pswitch_8a
        :pswitch_50
        :pswitch_3e
        :pswitch_30
    .end packed-switch
.end method

.method private findAsteriskPattern(Lcom/google/zxing/common/BitArray;)[I
    .registers 15
    .param p1, "row"    # Lcom/google/zxing/common/BitArray;
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Lcom/google/zxing/NotFoundException;
        }
    .end annotation

    .line 132
    invoke-virtual {p1}, Lcom/google/zxing/common/BitArray;->getSize()I

    move-result v0

    .line 133
    .local v0, "width":I
    const/4 v1, 0x0

    invoke-virtual {p1, v1}, Lcom/google/zxing/common/BitArray;->getNextSet(I)I

    move-result v2

    .line 135
    .local v2, "rowOffset":I
    iget-object v3, p0, Lcom/google/zxing/oned/Code93Reader;->counters:[I

    invoke-static {v3, v1}, Ljava/util/Arrays;->fill([II)V

    .line 136
    iget-object v3, p0, Lcom/google/zxing/oned/Code93Reader;->counters:[I

    .line 137
    .local v3, "theCounters":[I
    move v4, v2

    .line 138
    .local v4, "patternStart":I
    const/4 v5, 0x0

    .line 139
    .local v5, "isWhite":Z
    array-length v6, v3

    .line 141
    .local v6, "patternLength":I
    const/4 v7, 0x0

    .line 142
    .local v7, "counterPosition":I
    move v8, v2

    .local v8, "i":I
    :goto_15
    if-ge v8, v0, :cond_58

    .line 143
    invoke-virtual {p1, v8}, Lcom/google/zxing/common/BitArray;->get(I)Z

    move-result v9

    const/4 v10, 0x1

    if-eq v9, v5, :cond_24

    .line 144
    aget v9, v3, v7

    add-int/2addr v9, v10

    aput v9, v3, v7

    goto :goto_55

    .line 146
    :cond_24
    add-int/lit8 v9, v6, -0x1

    if-ne v7, v9, :cond_4c

    .line 147
    invoke-static {v3}, Lcom/google/zxing/oned/Code93Reader;->toPattern([I)I

    move-result v9

    sget v11, Lcom/google/zxing/oned/Code93Reader;->ASTERISK_ENCODING:I

    const/4 v12, 0x2

    if-ne v9, v11, :cond_38

    .line 148
    new-array v9, v12, [I

    aput v4, v9, v1

    aput v8, v9, v10

    return-object v9

    .line 150
    :cond_38
    aget v9, v3, v1

    aget v11, v3, v10

    add-int/2addr v9, v11

    add-int/2addr v4, v9

    .line 151
    add-int/lit8 v9, v7, -0x1

    invoke-static {v3, v12, v3, v1, v9}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V

    .line 152
    add-int/lit8 v9, v7, -0x1

    aput v1, v3, v9

    .line 153
    aput v1, v3, v7

    .line 154
    add-int/lit8 v7, v7, -0x1

    goto :goto_4e

    .line 156
    :cond_4c
    add-int/lit8 v7, v7, 0x1

    .line 158
    :goto_4e
    aput v10, v3, v7

    .line 159
    if-nez v5, :cond_53

    goto :goto_54

    :cond_53
    const/4 v10, 0x0

    :goto_54
    move v5, v10

    .line 142
    :goto_55
    add-int/lit8 v8, v8, 0x1

    goto :goto_15

    .line 162
    .end local v8    # "i":I
    :cond_58
    invoke-static {}, Lcom/google/zxing/NotFoundException;->getNotFoundInstance()Lcom/google/zxing/NotFoundException;

    move-result-object v1

    goto :goto_5e

    :goto_5d
    throw v1

    :goto_5e
    goto :goto_5d
.end method

.method private static patternToChar(I)C
    .registers 4
    .param p0, "pattern"    # I
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Lcom/google/zxing/NotFoundException;
        }
    .end annotation

    .line 189
    const/4 v0, 0x0

    .local v0, "i":I
    :goto_1
    sget-object v1, Lcom/google/zxing/oned/Code93Reader;->CHARACTER_ENCODINGS:[I

    array-length v2, v1

    if-ge v0, v2, :cond_12

    .line 190
    aget v1, v1, v0

    if-ne v1, p0, :cond_f

    .line 191
    sget-object v1, Lcom/google/zxing/oned/Code93Reader;->ALPHABET:[C

    aget-char v1, v1, v0

    return v1

    .line 189
    :cond_f
    add-int/lit8 v0, v0, 0x1

    goto :goto_1

    .line 194
    .end local v0    # "i":I
    :cond_12
    invoke-static {}, Lcom/google/zxing/NotFoundException;->getNotFoundInstance()Lcom/google/zxing/NotFoundException;

    move-result-object v0

    goto :goto_18

    :goto_17
    throw v0

    :goto_18
    goto :goto_17
.end method

.method private static toPattern([I)I
    .registers 8
    .param p0, "counters"    # [I

    .line 166
    const/4 v0, 0x0

    .line 167
    .local v0, "sum":I
    array-length v1, p0

    const/4 v2, 0x0

    const/4 v3, 0x0

    :goto_4
    if-ge v2, v1, :cond_c

    aget v3, p0, v2

    .line 168
    .local v3, "counter":I
    add-int/2addr v0, v3

    .line 167
    .end local v3    # "counter":I
    add-int/lit8 v2, v2, 0x1

    goto :goto_4

    .line 170
    :cond_c
    const/4 v1, 0x0

    .line 171
    .local v1, "pattern":I
    array-length v2, p0

    .line 172
    .local v2, "max":I
    const/4 v4, 0x0

    .local v4, "i":I
    :goto_f
    if-ge v4, v2, :cond_3a

    .line 173
    aget v5, p0, v4

    int-to-float v5, v5

    const/high16 v6, 0x41100000    # 9.0f

    mul-float v5, v5, v6

    int-to-float v6, v0

    div-float/2addr v5, v6

    invoke-static {v5}, Ljava/lang/Math;->round(F)I

    move-result v5

    .line 174
    .local v3, "scaled":I
    move v3, v5

    if-lez v5, :cond_38

    const/4 v5, 0x4

    if-le v3, v5, :cond_25

    goto :goto_38

    .line 177
    :cond_25
    and-int/lit8 v5, v4, 0x1

    if-nez v5, :cond_34

    .line 178
    const/4 v5, 0x0

    .local v5, "j":I
    :goto_2a
    if-ge v5, v3, :cond_33

    .line 179
    shl-int/lit8 v6, v1, 0x1

    or-int/lit8 v1, v6, 0x1

    .line 178
    add-int/lit8 v5, v5, 0x1

    goto :goto_2a

    .end local v5    # "j":I
    :cond_33
    goto :goto_35

    .line 182
    :cond_34
    shl-int/2addr v1, v3

    .line 172
    .end local v3    # "scaled":I
    :goto_35
    add-int/lit8 v4, v4, 0x1

    goto :goto_f

    .line 175
    :cond_38
    :goto_38
    const/4 v5, -0x1

    return v5

    .line 185
    .end local v4    # "i":I
    :cond_3a
    return v1
.end method


# virtual methods
.method public decodeRow(ILcom/google/zxing/common/BitArray;Ljava/util/Map;)Lcom/google/zxing/Result;
    .registers 22
    .param p1, "rowNumber"    # I
    .param p2, "row"    # Lcom/google/zxing/common/BitArray;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(I",
            "Lcom/google/zxing/common/BitArray;",
            "Ljava/util/Map<",
            "Lcom/google/zxing/DecodeHintType;",
            "*>;)",
            "Lcom/google/zxing/Result;"
        }
    .end annotation

    .annotation system Ldalvik/annotation/Throws;
        value = {
            Lcom/google/zxing/NotFoundException;,
            Lcom/google/zxing/ChecksumException;,
            Lcom/google/zxing/FormatException;
        }
    .end annotation

    .line 69
    .local p3, "hints":Ljava/util/Map;, "Ljava/util/Map<Lcom/google/zxing/DecodeHintType;*>;"
    move-object/from16 v0, p0

    move/from16 v1, p1

    move-object/from16 v2, p2

    invoke-direct {v0, v2}, Lcom/google/zxing/oned/Code93Reader;->findAsteriskPattern(Lcom/google/zxing/common/BitArray;)[I

    move-result-object v3

    .line 71
    .local v3, "start":[I
    const/4 v4, 0x1

    aget v5, v3, v4

    invoke-virtual {v2, v5}, Lcom/google/zxing/common/BitArray;->getNextSet(I)I

    move-result v5

    .line 72
    .local v5, "nextStart":I
    invoke-virtual/range {p2 .. p2}, Lcom/google/zxing/common/BitArray;->getSize()I

    move-result v6

    .line 74
    .local v6, "end":I
    iget-object v7, v0, Lcom/google/zxing/oned/Code93Reader;->counters:[I

    const/4 v8, 0x0

    move-object v9, v8

    .line 75
    .local v9, "theCounters":[I
    move-object v9, v7

    const/4 v10, 0x0

    invoke-static {v7, v10}, Ljava/util/Arrays;->fill([II)V

    .line 76
    iget-object v7, v0, Lcom/google/zxing/oned/Code93Reader;->decodeRowResult:Ljava/lang/StringBuilder;

    move-object v11, v8

    .line 77
    .local v11, "result":Ljava/lang/StringBuilder;
    move-object v11, v7

    invoke-virtual {v7, v10}, Ljava/lang/StringBuilder;->setLength(I)V

    const/4 v7, 0x0

    .line 82
    :goto_26
    invoke-static {v2, v5, v9}, Lcom/google/zxing/oned/Code93Reader;->recordPattern(Lcom/google/zxing/common/BitArray;I[I)V

    .line 83
    invoke-static {v9}, Lcom/google/zxing/oned/Code93Reader;->toPattern([I)I

    move-result v12

    .line 84
    .local v7, "pattern":I
    move v7, v12

    if-ltz v12, :cond_c1

    .line 87
    invoke-static {v7}, Lcom/google/zxing/oned/Code93Reader;->patternToChar(I)C

    move-result v12

    .line 88
    .local v12, "decodedChar":C
    invoke-virtual {v11, v12}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;

    .line 89
    move v13, v5

    .line 90
    .local v13, "lastStart":I
    array-length v14, v9

    const/4 v15, 0x0

    :goto_3a
    if-ge v15, v14, :cond_43

    aget v16, v9, v15

    .line 91
    .local v16, "counter":I
    add-int v5, v5, v16

    .line 90
    .end local v16    # "counter":I
    add-int/lit8 v15, v15, 0x1

    goto :goto_3a

    .line 94
    :cond_43
    invoke-virtual {v2, v5}, Lcom/google/zxing/common/BitArray;->getNextSet(I)I

    move-result v5

    .line 95
    .end local v7    # "pattern":I
    const/16 v14, 0x2a

    if-ne v12, v14, :cond_b5

    .line 96
    invoke-virtual {v11}, Ljava/lang/StringBuilder;->length()I

    move-result v7

    sub-int/2addr v7, v4

    invoke-virtual {v11, v7}, Ljava/lang/StringBuilder;->deleteCharAt(I)Ljava/lang/StringBuilder;

    .line 98
    const/4 v7, 0x0

    .line 99
    .local v7, "lastPatternSize":I
    array-length v14, v9

    const/4 v15, 0x0

    :goto_56
    if-ge v15, v14, :cond_5f

    aget v16, v9, v15

    .line 100
    .restart local v16    # "counter":I
    add-int v7, v7, v16

    .line 99
    .end local v16    # "counter":I
    add-int/lit8 v15, v15, 0x1

    goto :goto_56

    .line 104
    :cond_5f
    if-eq v5, v6, :cond_b0

    invoke-virtual {v2, v5}, Lcom/google/zxing/common/BitArray;->get(I)Z

    move-result v14

    if-eqz v14, :cond_b0

    .line 108
    invoke-virtual {v11}, Ljava/lang/StringBuilder;->length()I

    move-result v14

    const/4 v15, 0x2

    if-lt v14, v15, :cond_ab

    .line 113
    invoke-static {v11}, Lcom/google/zxing/oned/Code93Reader;->checkChecksums(Ljava/lang/CharSequence;)V

    .line 115
    invoke-virtual {v11}, Ljava/lang/StringBuilder;->length()I

    move-result v14

    sub-int/2addr v14, v15

    invoke-virtual {v11, v14}, Ljava/lang/StringBuilder;->setLength(I)V

    .line 117
    invoke-static {v11}, Lcom/google/zxing/oned/Code93Reader;->decodeExtended(Ljava/lang/CharSequence;)Ljava/lang/String;

    move-result-object v14

    .line 119
    .local v14, "resultString":Ljava/lang/String;
    aget v16, v3, v4

    aget v17, v3, v10

    add-int v8, v16, v17

    int-to-float v8, v8

    const/high16 v16, 0x40000000    # 2.0f

    div-float v8, v8, v16

    .line 120
    .local v8, "left":F
    int-to-float v4, v13

    int-to-float v10, v7

    div-float v10, v10, v16

    add-float/2addr v4, v10

    .line 121
    .local v4, "right":F
    new-instance v10, Lcom/google/zxing/Result;

    new-array v15, v15, [Lcom/google/zxing/ResultPoint;

    new-instance v0, Lcom/google/zxing/ResultPoint;

    int-to-float v2, v1

    invoke-direct {v0, v8, v2}, Lcom/google/zxing/ResultPoint;-><init>(FF)V

    const/4 v2, 0x0

    aput-object v0, v15, v2

    new-instance v0, Lcom/google/zxing/ResultPoint;

    int-to-float v2, v1

    invoke-direct {v0, v4, v2}, Lcom/google/zxing/ResultPoint;-><init>(FF)V

    const/16 v16, 0x1

    aput-object v0, v15, v16

    sget-object v0, Lcom/google/zxing/BarcodeFormat;->CODE_93:Lcom/google/zxing/BarcodeFormat;

    const/4 v2, 0x0

    invoke-direct {v10, v14, v2, v15, v0}, Lcom/google/zxing/Result;-><init>(Ljava/lang/String;[B[Lcom/google/zxing/ResultPoint;Lcom/google/zxing/BarcodeFormat;)V

    return-object v10

    .line 110
    .end local v4    # "right":F
    .end local v8    # "left":F
    .end local v14    # "resultString":Ljava/lang/String;
    :cond_ab
    invoke-static {}, Lcom/google/zxing/NotFoundException;->getNotFoundInstance()Lcom/google/zxing/NotFoundException;

    move-result-object v0

    throw v0

    .line 105
    :cond_b0
    invoke-static {}, Lcom/google/zxing/NotFoundException;->getNotFoundInstance()Lcom/google/zxing/NotFoundException;

    move-result-object v0

    throw v0

    .line 95
    .end local v7    # "lastPatternSize":I
    :cond_b5
    move-object v0, v8

    const/4 v2, 0x0

    const/16 v16, 0x1

    move-object/from16 v2, p2

    const/4 v4, 0x1

    const/4 v10, 0x0

    move-object/from16 v0, p0

    goto/16 :goto_26

    .line 85
    .end local v12    # "decodedChar":C
    .end local v13    # "lastStart":I
    :cond_c1
    invoke-static {}, Lcom/google/zxing/NotFoundException;->getNotFoundInstance()Lcom/google/zxing/NotFoundException;

    move-result-object v0

    goto :goto_c7

    :goto_c6
    throw v0

    :goto_c7
    goto :goto_c6
.end method