DecodedBitStreamParser.smali
.class final Lcom/dcloud/zxing2/qrcode/decoder/DecodedBitStreamParser;
.super Ljava/lang/Object;
# static fields
.field private static final ALPHANUMERIC_CHARS:[C
.field private static final GB2312_SUBSET:I = 0x1
# direct methods
.method static constructor <clinit>()V
.registers 1
const/16 v0, 0x2d
new-array v0, v0, [C
.line 1
fill-array-data v0, :array_a
sput-object v0, Lcom/dcloud/zxing2/qrcode/decoder/DecodedBitStreamParser;->ALPHANUMERIC_CHARS:[C
return-void
:array_a
.array-data 2
0x30s
0x31s
0x32s
0x33s
0x34s
0x35s
0x36s
0x37s
0x38s
0x39s
0x41s
0x42s
0x43s
0x44s
0x45s
0x46s
0x47s
0x48s
0x49s
0x4as
0x4bs
0x4cs
0x4ds
0x4es
0x4fs
0x50s
0x51s
0x52s
0x53s
0x54s
0x55s
0x56s
0x57s
0x58s
0x59s
0x5as
0x20s
0x24s
0x25s
0x2as
0x2bs
0x2ds
0x2es
0x2fs
0x3as
.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 static decode([BLcom/dcloud/zxing2/qrcode/decoder/Version;Lcom/dcloud/zxing2/qrcode/decoder/ErrorCorrectionLevel;Ljava/util/Map;)Lcom/dcloud/zxing2/common/DecoderResult;
.registers 21
.annotation system Ldalvik/annotation/Signature;
value = {
"([B",
"Lcom/dcloud/zxing2/qrcode/decoder/Version;",
"Lcom/dcloud/zxing2/qrcode/decoder/ErrorCorrectionLevel;",
"Ljava/util/Map<",
"Lcom/dcloud/zxing2/DecodeHintType;",
"*>;)",
"Lcom/dcloud/zxing2/common/DecoderResult;"
}
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/dcloud/zxing2/FormatException;
}
.end annotation
move-object/from16 v0, p1
.line 1
new-instance v7, Lcom/dcloud/zxing2/common/BitSource;
move-object/from16 v8, p0
invoke-direct {v7, v8}, Lcom/dcloud/zxing2/common/BitSource;-><init>([B)V
.line 2
new-instance v9, Ljava/lang/StringBuilder;
const/16 v1, 0x32
invoke-direct {v9, v1}, Ljava/lang/StringBuilder;-><init>(I)V
.line 3
new-instance v10, Ljava/util/ArrayList;
const/4 v11, 0x1
invoke-direct {v10, v11}, Ljava/util/ArrayList;-><init>(I)V
const/4 v1, -0x1
const-string v2, ""
const/4 v3, 0x0
move v13, v1
move v14, v13
move v15, v3
const/16 v16, 0x0
.line 15
:goto_1f
:try_start_1f
invoke-virtual {v7}, Lcom/dcloud/zxing2/common/BitSource;->available()I
move-result v1
const/4 v3, 0x4
if-ge v1, v3, :cond_2a
.line 17
sget-object v1, Lcom/dcloud/zxing2/qrcode/decoder/Mode;->TERMINATOR:Lcom/dcloud/zxing2/qrcode/decoder/Mode;
:goto_28
move-object v6, v1
goto :goto_33
.line 19
:cond_2a
invoke-virtual {v7, v3}, Lcom/dcloud/zxing2/common/BitSource;->readBits(I)I
move-result v1
invoke-static {v1}, Lcom/dcloud/zxing2/qrcode/decoder/Mode;->forBits(I)Lcom/dcloud/zxing2/qrcode/decoder/Mode;
move-result-object v1
goto :goto_28
.line 21
:goto_33
sget-object v5, Lcom/dcloud/zxing2/qrcode/decoder/Mode;->TERMINATOR:Lcom/dcloud/zxing2/qrcode/decoder/Mode;
if-eq v6, v5, :cond_71
.line 22
sget-object v1, Lcom/dcloud/zxing2/qrcode/decoder/Mode;->FNC1_FIRST_POSITION:Lcom/dcloud/zxing2/qrcode/decoder/Mode;
if-eq v6, v1, :cond_cb
sget-object v1, Lcom/dcloud/zxing2/qrcode/decoder/Mode;->FNC1_SECOND_POSITION:Lcom/dcloud/zxing2/qrcode/decoder/Mode;
if-ne v6, v1, :cond_41
goto/16 :goto_cb
.line 25
:cond_41
sget-object v1, Lcom/dcloud/zxing2/qrcode/decoder/Mode;->STRUCTURED_APPEND:Lcom/dcloud/zxing2/qrcode/decoder/Mode;
if-ne v6, v1, :cond_63
.line 26
invoke-virtual {v7}, Lcom/dcloud/zxing2/common/BitSource;->available()I
move-result v1
const/16 v3, 0x10
if-lt v1, v3, :cond_5e
const/16 v1, 0x8
.line 31
invoke-virtual {v7, v1}, Lcom/dcloud/zxing2/common/BitSource;->readBits(I)I
move-result v3
.line 32
invoke-virtual {v7, v1}, Lcom/dcloud/zxing2/common/BitSource;->readBits(I)I
move-result v1
move v14, v1
move-object v13, v2
move-object v11, v5
move-object v12, v6
move v5, v3
goto/16 :goto_d2
.line 33
:cond_5e
invoke-static {}, Lcom/dcloud/zxing2/FormatException;->getFormatInstance()Lcom/dcloud/zxing2/FormatException;
move-result-object v0
throw v0
.line 39
:cond_63
sget-object v1, Lcom/dcloud/zxing2/qrcode/decoder/Mode;->ECI:Lcom/dcloud/zxing2/qrcode/decoder/Mode;
if-ne v6, v1, :cond_7a
.line 41
invoke-static {v7}, Lcom/dcloud/zxing2/qrcode/decoder/DecodedBitStreamParser;->parseECIValue(Lcom/dcloud/zxing2/common/BitSource;)I
move-result v1
.line 42
invoke-static {v1}, Lcom/dcloud/zxing2/common/CharacterSetECI;->getCharacterSetECIByValue(I)Lcom/dcloud/zxing2/common/CharacterSetECI;
move-result-object v16
if-eqz v16, :cond_75
:cond_71
:goto_71
move-object v11, v5
move-object v12, v6
goto/16 :goto_d0
.line 44
:cond_75
invoke-static {}, Lcom/dcloud/zxing2/FormatException;->getFormatInstance()Lcom/dcloud/zxing2/FormatException;
move-result-object v0
throw v0
.line 48
:cond_7a
sget-object v1, Lcom/dcloud/zxing2/qrcode/decoder/Mode;->HANZI:Lcom/dcloud/zxing2/qrcode/decoder/Mode;
if-ne v6, v1, :cond_90
.line 50
invoke-virtual {v7, v3}, Lcom/dcloud/zxing2/common/BitSource;->readBits(I)I
move-result v1
.line 51
invoke-virtual {v6, v0}, Lcom/dcloud/zxing2/qrcode/decoder/Mode;->getCharacterCountBits(Lcom/dcloud/zxing2/qrcode/decoder/Version;)I
move-result v3
invoke-virtual {v7, v3}, Lcom/dcloud/zxing2/common/BitSource;->readBits(I)I
move-result v3
if-ne v1, v11, :cond_71
.line 53
invoke-static {v7, v9, v3}, Lcom/dcloud/zxing2/qrcode/decoder/DecodedBitStreamParser;->decodeHanziSegment(Lcom/dcloud/zxing2/common/BitSource;Ljava/lang/StringBuilder;I)V
goto :goto_71
.line 58
:cond_90
invoke-virtual {v6, v0}, Lcom/dcloud/zxing2/qrcode/decoder/Mode;->getCharacterCountBits(Lcom/dcloud/zxing2/qrcode/decoder/Version;)I
move-result v1
invoke-virtual {v7, v1}, Lcom/dcloud/zxing2/common/BitSource;->readBits(I)I
move-result v3
.line 59
sget-object v1, Lcom/dcloud/zxing2/qrcode/decoder/Mode;->NUMERIC:Lcom/dcloud/zxing2/qrcode/decoder/Mode;
if-ne v6, v1, :cond_a0
.line 60
invoke-static {v7, v9, v3}, Lcom/dcloud/zxing2/qrcode/decoder/DecodedBitStreamParser;->decodeNumericSegment(Lcom/dcloud/zxing2/common/BitSource;Ljava/lang/StringBuilder;I)V
goto :goto_71
.line 61
:cond_a0
sget-object v1, Lcom/dcloud/zxing2/qrcode/decoder/Mode;->ALPHANUMERIC:Lcom/dcloud/zxing2/qrcode/decoder/Mode;
if-ne v6, v1, :cond_a8
.line 62
invoke-static {v7, v9, v3, v15}, Lcom/dcloud/zxing2/qrcode/decoder/DecodedBitStreamParser;->decodeAlphanumericSegment(Lcom/dcloud/zxing2/common/BitSource;Ljava/lang/StringBuilder;IZ)V
goto :goto_71
.line 63
:cond_a8
sget-object v1, Lcom/dcloud/zxing2/qrcode/decoder/Mode;->BYTE:Lcom/dcloud/zxing2/qrcode/decoder/Mode;
if-ne v6, v1, :cond_bc
move-object v1, v7
move-object v2, v9
move-object/from16 v4, v16
move-object v11, v5
move-object v5, v10
move-object v12, v6
move-object/from16 v6, p3
.line 65
invoke-static/range {v1 .. v6}, Lcom/dcloud/zxing2/qrcode/decoder/DecodedBitStreamParser;->decodeByteSegment(Lcom/dcloud/zxing2/common/BitSource;Ljava/lang/StringBuilder;ILcom/dcloud/zxing2/common/CharacterSetECI;Ljava/util/Collection;Ljava/util/Map;)Ljava/lang/String;
move-result-object v1
move v5, v13
move-object v13, v1
goto :goto_d2
:cond_bc
move-object v11, v5
move-object v12, v6
.line 66
sget-object v1, Lcom/dcloud/zxing2/qrcode/decoder/Mode;->KANJI:Lcom/dcloud/zxing2/qrcode/decoder/Mode;
if-ne v12, v1, :cond_c6
.line 67
invoke-static {v7, v9, v3}, Lcom/dcloud/zxing2/qrcode/decoder/DecodedBitStreamParser;->decodeKanjiSegment(Lcom/dcloud/zxing2/common/BitSource;Ljava/lang/StringBuilder;I)V
goto :goto_d0
.line 69
:cond_c6
invoke-static {}, Lcom/dcloud/zxing2/FormatException;->getFormatInstance()Lcom/dcloud/zxing2/FormatException;
move-result-object v0
throw v0
:try_end_cb
.catch Ljava/lang/IllegalArgumentException; {:try_start_1f .. :try_end_cb} :catch_fb
:cond_cb
:goto_cb
move-object v11, v5
move-object v12, v6
move v5, v13
const/4 v15, 0x1
goto :goto_d1
:goto_d0
move v5, v13
:goto_d1
move-object v13, v2
:goto_d2
if-ne v12, v11, :cond_f6
.line 80
new-instance v7, Lcom/dcloud/zxing2/common/DecoderResult;
.line 81
invoke-virtual {v9}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
.line 82
invoke-interface {v10}, Ljava/util/List;->isEmpty()Z
move-result v0
if-eqz v0, :cond_e2
const/4 v3, 0x0
goto :goto_e3
:cond_e2
move-object v3, v10
:goto_e3
if-nez p2, :cond_e7
const/4 v4, 0x0
goto :goto_ec
.line 83
:cond_e7
invoke-virtual/range {p2 .. p2}, Ljava/lang/Enum;->toString()Ljava/lang/String;
move-result-object v0
move-object v4, v0
:goto_ec
move-object v0, v7
move-object/from16 v1, p0
move v6, v14
invoke-direct/range {v0 .. v6}, Lcom/dcloud/zxing2/common/DecoderResult;-><init>([BLjava/lang/String;Ljava/util/List;Ljava/lang/String;II)V
.line 87
iput-object v13, v7, Lcom/dcloud/zxing2/common/DecoderResult;->textCharset:Ljava/lang/String;
return-object v7
:cond_f6
move-object v2, v13
const/4 v11, 0x1
move v13, v5
goto/16 :goto_1f
.line 88
:catch_fb
invoke-static {}, Lcom/dcloud/zxing2/FormatException;->getFormatInstance()Lcom/dcloud/zxing2/FormatException;
move-result-object v0
throw v0
.end method
.method private static decodeAlphanumericSegment(Lcom/dcloud/zxing2/common/BitSource;Ljava/lang/StringBuilder;IZ)V
.registers 7
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/dcloud/zxing2/FormatException;
}
.end annotation
.line 1
invoke-virtual {p1}, Ljava/lang/StringBuilder;->length()I
move-result v0
:goto_4
const/4 v1, 0x1
if-le p2, v1, :cond_2d
.line 3
invoke-virtual {p0}, Lcom/dcloud/zxing2/common/BitSource;->available()I
move-result v1
const/16 v2, 0xb
if-lt v1, v2, :cond_28
.line 6
invoke-virtual {p0, v2}, Lcom/dcloud/zxing2/common/BitSource;->readBits(I)I
move-result v1
.line 7
div-int/lit8 v2, v1, 0x2d
invoke-static {v2}, Lcom/dcloud/zxing2/qrcode/decoder/DecodedBitStreamParser;->toAlphaNumericChar(I)C
move-result v2
invoke-virtual {p1, v2}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 8
rem-int/lit8 v1, v1, 0x2d
invoke-static {v1}, Lcom/dcloud/zxing2/qrcode/decoder/DecodedBitStreamParser;->toAlphaNumericChar(I)C
move-result v1
invoke-virtual {p1, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
add-int/lit8 p2, p2, -0x2
goto :goto_4
.line 9
:cond_28
invoke-static {}, Lcom/dcloud/zxing2/FormatException;->getFormatInstance()Lcom/dcloud/zxing2/FormatException;
move-result-object p0
throw p0
:cond_2d
if-ne p2, v1, :cond_47
.line 18
invoke-virtual {p0}, Lcom/dcloud/zxing2/common/BitSource;->available()I
move-result p2
const/4 v2, 0x6
if-lt p2, v2, :cond_42
.line 21
invoke-virtual {p0, v2}, Lcom/dcloud/zxing2/common/BitSource;->readBits(I)I
move-result p0
invoke-static {p0}, Lcom/dcloud/zxing2/qrcode/decoder/DecodedBitStreamParser;->toAlphaNumericChar(I)C
move-result p0
invoke-virtual {p1, p0}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
goto :goto_47
.line 22
:cond_42
invoke-static {}, Lcom/dcloud/zxing2/FormatException;->getFormatInstance()Lcom/dcloud/zxing2/FormatException;
move-result-object p0
throw p0
:cond_47
:goto_47
if-eqz p3, :cond_72
.line 29
:goto_49
invoke-virtual {p1}, Ljava/lang/StringBuilder;->length()I
move-result p0
if-ge v0, p0, :cond_72
.line 30
invoke-virtual {p1, v0}, Ljava/lang/StringBuilder;->charAt(I)C
move-result p0
const/16 p2, 0x25
if-ne p0, p2, :cond_6f
.line 31
invoke-virtual {p1}, Ljava/lang/StringBuilder;->length()I
move-result p0
sub-int/2addr p0, v1
if-ge v0, p0, :cond_6a
add-int/lit8 p0, v0, 0x1
invoke-virtual {p1, p0}, Ljava/lang/StringBuilder;->charAt(I)C
move-result p3
if-ne p3, p2, :cond_6a
.line 33
invoke-virtual {p1, p0}, Ljava/lang/StringBuilder;->deleteCharAt(I)Ljava/lang/StringBuilder;
goto :goto_6f
:cond_6a
const/16 p0, 0x1d
.line 36
invoke-virtual {p1, v0, p0}, Ljava/lang/StringBuilder;->setCharAt(IC)V
:cond_6f
:goto_6f
add-int/lit8 v0, v0, 0x1
goto :goto_49
:cond_72
return-void
.end method
.method private static decodeByteSegment(Lcom/dcloud/zxing2/common/BitSource;Ljava/lang/StringBuilder;ILcom/dcloud/zxing2/common/CharacterSetECI;Ljava/util/Collection;Ljava/util/Map;)Ljava/lang/String;
.registers 9
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/dcloud/zxing2/common/BitSource;",
"Ljava/lang/StringBuilder;",
"I",
"Lcom/dcloud/zxing2/common/CharacterSetECI;",
"Ljava/util/Collection<",
"[B>;",
"Ljava/util/Map<",
"Lcom/dcloud/zxing2/DecodeHintType;",
"*>;)",
"Ljava/lang/String;"
}
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/dcloud/zxing2/FormatException;
}
.end annotation
mul-int/lit8 v0, p2, 0x8
.line 1
invoke-virtual {p0}, Lcom/dcloud/zxing2/common/BitSource;->available()I
move-result v1
if-gt v0, v1, :cond_35
.line 5
new-array v0, p2, [B
const/4 v1, 0x0
:goto_b
if-ge v1, p2, :cond_19
const/16 v2, 0x8
.line 7
invoke-virtual {p0, v2}, Lcom/dcloud/zxing2/common/BitSource;->readBits(I)I
move-result v2
int-to-byte v2, v2
aput-byte v2, v0, v1
add-int/lit8 v1, v1, 0x1
goto :goto_b
:cond_19
if-nez p3, :cond_20
.line 16
invoke-static {v0, p5}, Lcom/dcloud/zxing2/common/StringUtils;->guessEncoding([BLjava/util/Map;)Ljava/lang/String;
move-result-object p0
goto :goto_24
.line 18
:cond_20
invoke-virtual {p3}, Ljava/lang/Enum;->name()Ljava/lang/String;
move-result-object p0
.line 21
:goto_24
:try_start_24
new-instance p2, Ljava/lang/String;
invoke-direct {p2, v0, p0}, Ljava/lang/String;-><init>([BLjava/lang/String;)V
invoke-virtual {p1, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
:try_end_2c
.catch Ljava/io/UnsupportedEncodingException; {:try_start_24 .. :try_end_2c} :catch_30
.line 25
invoke-interface {p4, v0}, Ljava/util/Collection;->add(Ljava/lang/Object;)Z
return-object p0
.line 26
:catch_30
invoke-static {}, Lcom/dcloud/zxing2/FormatException;->getFormatInstance()Lcom/dcloud/zxing2/FormatException;
move-result-object p0
throw p0
.line 27
:cond_35
invoke-static {}, Lcom/dcloud/zxing2/FormatException;->getFormatInstance()Lcom/dcloud/zxing2/FormatException;
move-result-object p0
throw p0
.end method
.method private static decodeHanziSegment(Lcom/dcloud/zxing2/common/BitSource;Ljava/lang/StringBuilder;I)V
.registers 7
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/dcloud/zxing2/FormatException;
}
.end annotation
mul-int/lit8 v0, p2, 0xd
.line 1
invoke-virtual {p0}, Lcom/dcloud/zxing2/common/BitSource;->available()I
move-result v1
if-gt v0, v1, :cond_4b
mul-int/lit8 v0, p2, 0x2
.line 7
new-array v0, v0, [B
const/4 v1, 0x0
:goto_d
if-lez p2, :cond_3b
const/16 v2, 0xd
.line 11
invoke-virtual {p0, v2}, Lcom/dcloud/zxing2/common/BitSource;->readBits(I)I
move-result v2
.line 12
div-int/lit8 v3, v2, 0x60
shl-int/lit8 v3, v3, 0x8
rem-int/lit8 v2, v2, 0x60
or-int/2addr v2, v3
const/16 v3, 0x3bf
if-ge v2, v3, :cond_24
const v3, 0xa1a1
goto :goto_27
:cond_24
const v3, 0xa6a1
:goto_27
add-int/2addr v2, v3
shr-int/lit8 v3, v2, 0x8
and-int/lit16 v3, v3, 0xff
int-to-byte v3, v3
.line 20
aput-byte v3, v0, v1
add-int/lit8 v3, v1, 0x1
and-int/lit16 v2, v2, 0xff
int-to-byte v2, v2
.line 21
aput-byte v2, v0, v3
add-int/lit8 v1, v1, 0x2
add-int/lit8 p2, p2, -0x1
goto :goto_d
.line 27
:cond_3b
:try_start_3b
new-instance p0, Ljava/lang/String;
const-string p2, "GB2312"
invoke-direct {p0, v0, p2}, Ljava/lang/String;-><init>([BLjava/lang/String;)V
invoke-virtual {p1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
:try_end_45
.catch Ljava/io/UnsupportedEncodingException; {:try_start_3b .. :try_end_45} :catch_46
return-void
.line 29
:catch_46
invoke-static {}, Lcom/dcloud/zxing2/FormatException;->getFormatInstance()Lcom/dcloud/zxing2/FormatException;
move-result-object p0
throw p0
.line 30
:cond_4b
invoke-static {}, Lcom/dcloud/zxing2/FormatException;->getFormatInstance()Lcom/dcloud/zxing2/FormatException;
move-result-object p0
throw p0
.end method
.method private static decodeKanjiSegment(Lcom/dcloud/zxing2/common/BitSource;Ljava/lang/StringBuilder;I)V
.registers 7
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/dcloud/zxing2/FormatException;
}
.end annotation
mul-int/lit8 v0, p2, 0xd
.line 1
invoke-virtual {p0}, Lcom/dcloud/zxing2/common/BitSource;->available()I
move-result v1
if-gt v0, v1, :cond_47
mul-int/lit8 v0, p2, 0x2
.line 7
new-array v0, v0, [B
const/4 v1, 0x0
:goto_d
if-lez p2, :cond_37
const/16 v2, 0xd
.line 11
invoke-virtual {p0, v2}, Lcom/dcloud/zxing2/common/BitSource;->readBits(I)I
move-result v2
.line 12
div-int/lit16 v3, v2, 0xc0
shl-int/lit8 v3, v3, 0x8
rem-int/lit16 v2, v2, 0xc0
or-int/2addr v2, v3
const/16 v3, 0x1f00
if-ge v2, v3, :cond_24
const v3, 0x8140
goto :goto_27
:cond_24
const v3, 0xc140
:goto_27
add-int/2addr v2, v3
shr-int/lit8 v3, v2, 0x8
int-to-byte v3, v3
.line 20
aput-byte v3, v0, v1
add-int/lit8 v3, v1, 0x1
int-to-byte v2, v2
.line 21
aput-byte v2, v0, v3
add-int/lit8 v1, v1, 0x2
add-int/lit8 p2, p2, -0x1
goto :goto_d
.line 27
:cond_37
:try_start_37
new-instance p0, Ljava/lang/String;
const-string p2, "UTF-8"
invoke-direct {p0, v0, p2}, Ljava/lang/String;-><init>([BLjava/lang/String;)V
invoke-virtual {p1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
:try_end_41
.catch Ljava/io/UnsupportedEncodingException; {:try_start_37 .. :try_end_41} :catch_42
return-void
.line 29
:catch_42
invoke-static {}, Lcom/dcloud/zxing2/FormatException;->getFormatInstance()Lcom/dcloud/zxing2/FormatException;
move-result-object p0
throw p0
.line 30
:cond_47
invoke-static {}, Lcom/dcloud/zxing2/FormatException;->getFormatInstance()Lcom/dcloud/zxing2/FormatException;
move-result-object p0
throw p0
.end method
.method private static decodeNumericSegment(Lcom/dcloud/zxing2/common/BitSource;Ljava/lang/StringBuilder;I)V
.registers 6
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/dcloud/zxing2/FormatException;
}
.end annotation
:goto_0
const/4 v0, 0x3
const/16 v1, 0xa
if-lt p2, v0, :cond_3c
.line 1
invoke-virtual {p0}, Lcom/dcloud/zxing2/common/BitSource;->available()I
move-result v0
if-lt v0, v1, :cond_37
.line 4
invoke-virtual {p0, v1}, Lcom/dcloud/zxing2/common/BitSource;->readBits(I)I
move-result v0
const/16 v2, 0x3e8
if-ge v0, v2, :cond_32
.line 8
div-int/lit8 v2, v0, 0x64
invoke-static {v2}, Lcom/dcloud/zxing2/qrcode/decoder/DecodedBitStreamParser;->toAlphaNumericChar(I)C
move-result v2
invoke-virtual {p1, v2}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 9
div-int/lit8 v2, v0, 0xa
rem-int/2addr v2, v1
invoke-static {v2}, Lcom/dcloud/zxing2/qrcode/decoder/DecodedBitStreamParser;->toAlphaNumericChar(I)C
move-result v1
invoke-virtual {p1, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 10
rem-int/lit8 v0, v0, 0xa
invoke-static {v0}, Lcom/dcloud/zxing2/qrcode/decoder/DecodedBitStreamParser;->toAlphaNumericChar(I)C
move-result v0
invoke-virtual {p1, v0}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
add-int/lit8 p2, p2, -0x3
goto :goto_0
.line 11
:cond_32
invoke-static {}, Lcom/dcloud/zxing2/FormatException;->getFormatInstance()Lcom/dcloud/zxing2/FormatException;
move-result-object p0
throw p0
.line 12
:cond_37
invoke-static {}, Lcom/dcloud/zxing2/FormatException;->getFormatInstance()Lcom/dcloud/zxing2/FormatException;
move-result-object p0
throw p0
:cond_3c
const/4 v0, 0x2
if-ne p2, v0, :cond_6a
.line 25
invoke-virtual {p0}, Lcom/dcloud/zxing2/common/BitSource;->available()I
move-result p2
const/4 v0, 0x7
if-lt p2, v0, :cond_65
.line 28
invoke-virtual {p0, v0}, Lcom/dcloud/zxing2/common/BitSource;->readBits(I)I
move-result p0
const/16 p2, 0x64
if-ge p0, p2, :cond_60
.line 32
div-int/lit8 p2, p0, 0xa
invoke-static {p2}, Lcom/dcloud/zxing2/qrcode/decoder/DecodedBitStreamParser;->toAlphaNumericChar(I)C
move-result p2
invoke-virtual {p1, p2}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 33
rem-int/2addr p0, v1
invoke-static {p0}, Lcom/dcloud/zxing2/qrcode/decoder/DecodedBitStreamParser;->toAlphaNumericChar(I)C
move-result p0
invoke-virtual {p1, p0}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
goto :goto_8c
.line 34
:cond_60
invoke-static {}, Lcom/dcloud/zxing2/FormatException;->getFormatInstance()Lcom/dcloud/zxing2/FormatException;
move-result-object p0
throw p0
.line 35
:cond_65
invoke-static {}, Lcom/dcloud/zxing2/FormatException;->getFormatInstance()Lcom/dcloud/zxing2/FormatException;
move-result-object p0
throw p0
:cond_6a
const/4 v0, 0x1
if-ne p2, v0, :cond_8c
.line 45
invoke-virtual {p0}, Lcom/dcloud/zxing2/common/BitSource;->available()I
move-result p2
const/4 v0, 0x4
if-lt p2, v0, :cond_87
.line 48
invoke-virtual {p0, v0}, Lcom/dcloud/zxing2/common/BitSource;->readBits(I)I
move-result p0
if-ge p0, v1, :cond_82
.line 52
invoke-static {p0}, Lcom/dcloud/zxing2/qrcode/decoder/DecodedBitStreamParser;->toAlphaNumericChar(I)C
move-result p0
invoke-virtual {p1, p0}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
goto :goto_8c
.line 53
:cond_82
invoke-static {}, Lcom/dcloud/zxing2/FormatException;->getFormatInstance()Lcom/dcloud/zxing2/FormatException;
move-result-object p0
throw p0
.line 54
:cond_87
invoke-static {}, Lcom/dcloud/zxing2/FormatException;->getFormatInstance()Lcom/dcloud/zxing2/FormatException;
move-result-object p0
throw p0
:cond_8c
:goto_8c
return-void
.end method
.method private static parseECIValue(Lcom/dcloud/zxing2/common/BitSource;)I
.registers 5
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/dcloud/zxing2/FormatException;
}
.end annotation
const/16 v0, 0x8
.line 1
invoke-virtual {p0, v0}, Lcom/dcloud/zxing2/common/BitSource;->readBits(I)I
move-result v1
and-int/lit16 v2, v1, 0x80
if-nez v2, :cond_d
and-int/lit8 p0, v1, 0x7f
return p0
:cond_d
and-int/lit16 v2, v1, 0xc0
const/16 v3, 0x80
if-ne v2, v3, :cond_1d
.line 8
invoke-virtual {p0, v0}, Lcom/dcloud/zxing2/common/BitSource;->readBits(I)I
move-result p0
and-int/lit8 v1, v1, 0x3f
shl-int/lit8 v0, v1, 0x8
or-int/2addr p0, v0
return p0
:cond_1d
and-int/lit16 v0, v1, 0xe0
const/16 v2, 0xc0
if-ne v0, v2, :cond_2f
const/16 v0, 0x10
.line 13
invoke-virtual {p0, v0}, Lcom/dcloud/zxing2/common/BitSource;->readBits(I)I
move-result p0
and-int/lit8 v1, v1, 0x1f
shl-int/lit8 v0, v1, 0x10
or-int/2addr p0, v0
return p0
.line 16
:cond_2f
invoke-static {}, Lcom/dcloud/zxing2/FormatException;->getFormatInstance()Lcom/dcloud/zxing2/FormatException;
move-result-object p0
throw p0
.end method
.method private static toAlphaNumericChar(I)C
.registers 3
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/dcloud/zxing2/FormatException;
}
.end annotation
.line 1
sget-object v0, Lcom/dcloud/zxing2/qrcode/decoder/DecodedBitStreamParser;->ALPHANUMERIC_CHARS:[C
array-length v1, v0
if-ge p0, v1, :cond_8
.line 4
aget-char p0, v0, p0
return p0
.line 5
:cond_8
invoke-static {}, Lcom/dcloud/zxing2/FormatException;->getFormatInstance()Lcom/dcloud/zxing2/FormatException;
move-result-object p0
throw p0
.end method