tmap/smali_classes3/com/google/zxing/datamatrix/decoder/DecodedBitStreamParser.smali
2022-06-10 21:38:30 +09:00

1728 lines
34 KiB
Smali

.class final Lcom/google/zxing/datamatrix/decoder/DecodedBitStreamParser;
.super Ljava/lang/Object;
.source "DecodedBitStreamParser.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/google/zxing/datamatrix/decoder/DecodedBitStreamParser$Mode;
}
.end annotation
# static fields
.field private static synthetic $SWITCH_TABLE$com$google$zxing$datamatrix$decoder$DecodedBitStreamParser$Mode:[I
.field private static final C40_BASIC_SET_CHARS:[C
.field private static final C40_SHIFT2_SET_CHARS:[C
.field private static final TEXT_BASIC_SET_CHARS:[C
.field private static final TEXT_SHIFT3_SET_CHARS:[C
# direct methods
.method public static synthetic $SWITCH_TABLE$com$google$zxing$datamatrix$decoder$DecodedBitStreamParser$Mode()[I
.locals 3
.line 1
sget-object v0, Lcom/google/zxing/datamatrix/decoder/DecodedBitStreamParser;->$SWITCH_TABLE$com$google$zxing$datamatrix$decoder$DecodedBitStreamParser$Mode:[I
if-eqz v0, :cond_0
return-object v0
:cond_0
invoke-static {}, Lcom/google/zxing/datamatrix/decoder/DecodedBitStreamParser$Mode;->values()[Lcom/google/zxing/datamatrix/decoder/DecodedBitStreamParser$Mode;
move-result-object v0
array-length v0, v0
new-array v0, v0, [I
:try_start_0
sget-object v1, Lcom/google/zxing/datamatrix/decoder/DecodedBitStreamParser$Mode;->ANSIX12_ENCODE:Lcom/google/zxing/datamatrix/decoder/DecodedBitStreamParser$Mode;
invoke-virtual {v1}, Ljava/lang/Enum;->ordinal()I
move-result v1
const/4 v2, 0x5
aput v2, v0, v1
:try_end_0
.catch Ljava/lang/NoSuchFieldError; {:try_start_0 .. :try_end_0} :catch_0
:catch_0
:try_start_1
sget-object v1, Lcom/google/zxing/datamatrix/decoder/DecodedBitStreamParser$Mode;->ASCII_ENCODE:Lcom/google/zxing/datamatrix/decoder/DecodedBitStreamParser$Mode;
invoke-virtual {v1}, Ljava/lang/Enum;->ordinal()I
move-result v1
const/4 v2, 0x2
aput v2, v0, v1
:try_end_1
.catch Ljava/lang/NoSuchFieldError; {:try_start_1 .. :try_end_1} :catch_1
:catch_1
:try_start_2
sget-object v1, Lcom/google/zxing/datamatrix/decoder/DecodedBitStreamParser$Mode;->BASE256_ENCODE:Lcom/google/zxing/datamatrix/decoder/DecodedBitStreamParser$Mode;
invoke-virtual {v1}, Ljava/lang/Enum;->ordinal()I
move-result v1
const/4 v2, 0x7
aput v2, v0, v1
:try_end_2
.catch Ljava/lang/NoSuchFieldError; {:try_start_2 .. :try_end_2} :catch_2
:catch_2
:try_start_3
sget-object v1, Lcom/google/zxing/datamatrix/decoder/DecodedBitStreamParser$Mode;->C40_ENCODE:Lcom/google/zxing/datamatrix/decoder/DecodedBitStreamParser$Mode;
invoke-virtual {v1}, Ljava/lang/Enum;->ordinal()I
move-result v1
const/4 v2, 0x3
aput v2, v0, v1
:try_end_3
.catch Ljava/lang/NoSuchFieldError; {:try_start_3 .. :try_end_3} :catch_3
:catch_3
:try_start_4
sget-object v1, Lcom/google/zxing/datamatrix/decoder/DecodedBitStreamParser$Mode;->EDIFACT_ENCODE:Lcom/google/zxing/datamatrix/decoder/DecodedBitStreamParser$Mode;
invoke-virtual {v1}, Ljava/lang/Enum;->ordinal()I
move-result v1
const/4 v2, 0x6
aput v2, v0, v1
:try_end_4
.catch Ljava/lang/NoSuchFieldError; {:try_start_4 .. :try_end_4} :catch_4
:catch_4
:try_start_5
sget-object v1, Lcom/google/zxing/datamatrix/decoder/DecodedBitStreamParser$Mode;->PAD_ENCODE:Lcom/google/zxing/datamatrix/decoder/DecodedBitStreamParser$Mode;
invoke-virtual {v1}, Ljava/lang/Enum;->ordinal()I
move-result v1
const/4 v2, 0x1
aput v2, v0, v1
:try_end_5
.catch Ljava/lang/NoSuchFieldError; {:try_start_5 .. :try_end_5} :catch_5
:catch_5
:try_start_6
sget-object v1, Lcom/google/zxing/datamatrix/decoder/DecodedBitStreamParser$Mode;->TEXT_ENCODE:Lcom/google/zxing/datamatrix/decoder/DecodedBitStreamParser$Mode;
invoke-virtual {v1}, Ljava/lang/Enum;->ordinal()I
move-result v1
const/4 v2, 0x4
aput v2, v0, v1
:try_end_6
.catch Ljava/lang/NoSuchFieldError; {:try_start_6 .. :try_end_6} :catch_6
:catch_6
sput-object v0, Lcom/google/zxing/datamatrix/decoder/DecodedBitStreamParser;->$SWITCH_TABLE$com$google$zxing$datamatrix$decoder$DecodedBitStreamParser$Mode:[I
return-object v0
.end method
.method public static constructor <clinit>()V
.locals 2
const/16 v0, 0x28
new-array v1, v0, [C
.line 1
fill-array-data v1, :array_0
sput-object v1, Lcom/google/zxing/datamatrix/decoder/DecodedBitStreamParser;->C40_BASIC_SET_CHARS:[C
const/16 v1, 0x1b
new-array v1, v1, [C
.line 2
fill-array-data v1, :array_1
sput-object v1, Lcom/google/zxing/datamatrix/decoder/DecodedBitStreamParser;->C40_SHIFT2_SET_CHARS:[C
new-array v0, v0, [C
.line 3
fill-array-data v0, :array_2
sput-object v0, Lcom/google/zxing/datamatrix/decoder/DecodedBitStreamParser;->TEXT_BASIC_SET_CHARS:[C
const/16 v0, 0x20
new-array v0, v0, [C
.line 4
fill-array-data v0, :array_3
sput-object v0, Lcom/google/zxing/datamatrix/decoder/DecodedBitStreamParser;->TEXT_SHIFT3_SET_CHARS:[C
return-void
nop
:array_0
.array-data 2
0x2as
0x2as
0x2as
0x20s
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
.end array-data
:array_1
.array-data 2
0x21s
0x22s
0x23s
0x24s
0x25s
0x26s
0x27s
0x28s
0x29s
0x2as
0x2bs
0x2cs
0x2ds
0x2es
0x2fs
0x3as
0x3bs
0x3cs
0x3ds
0x3es
0x3fs
0x40s
0x5bs
0x5cs
0x5ds
0x5es
0x5fs
.end array-data
nop
:array_2
.array-data 2
0x2as
0x2as
0x2as
0x20s
0x30s
0x31s
0x32s
0x33s
0x34s
0x35s
0x36s
0x37s
0x38s
0x39s
0x61s
0x62s
0x63s
0x64s
0x65s
0x66s
0x67s
0x68s
0x69s
0x6as
0x6bs
0x6cs
0x6ds
0x6es
0x6fs
0x70s
0x71s
0x72s
0x73s
0x74s
0x75s
0x76s
0x77s
0x78s
0x79s
0x7as
.end array-data
:array_3
.array-data 2
0x27s
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
0x7bs
0x7cs
0x7ds
0x7es
0x7fs
.end array-data
.end method
.method private constructor <init>()V
.locals 0
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public static decode([B)Lcom/google/zxing/common/DecoderResult;
.locals 7
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/zxing/FormatException;
}
.end annotation
.line 1
new-instance v0, Lcom/google/zxing/common/BitSource;
invoke-direct {v0, p0}, Lcom/google/zxing/common/BitSource;-><init>([B)V
.line 2
new-instance v1, Ljava/lang/StringBuilder;
const/16 v2, 0x64
invoke-direct {v1, v2}, Ljava/lang/StringBuilder;-><init>(I)V
.line 3
new-instance v2, Ljava/lang/StringBuilder;
const/4 v3, 0x0
invoke-direct {v2, v3}, Ljava/lang/StringBuilder;-><init>(I)V
.line 4
new-instance v3, Ljava/util/ArrayList;
const/4 v4, 0x1
invoke-direct {v3, v4}, Ljava/util/ArrayList;-><init>(I)V
.line 5
sget-object v4, Lcom/google/zxing/datamatrix/decoder/DecodedBitStreamParser$Mode;->ASCII_ENCODE:Lcom/google/zxing/datamatrix/decoder/DecodedBitStreamParser$Mode;
.line 6
:cond_0
sget-object v5, Lcom/google/zxing/datamatrix/decoder/DecodedBitStreamParser$Mode;->ASCII_ENCODE:Lcom/google/zxing/datamatrix/decoder/DecodedBitStreamParser$Mode;
if-ne v4, v5, :cond_1
.line 7
invoke-static {v0, v1, v2}, Lcom/google/zxing/datamatrix/decoder/DecodedBitStreamParser;->decodeAsciiSegment(Lcom/google/zxing/common/BitSource;Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;)Lcom/google/zxing/datamatrix/decoder/DecodedBitStreamParser$Mode;
move-result-object v4
goto :goto_1
.line 8
:cond_1
invoke-static {}, Lcom/google/zxing/datamatrix/decoder/DecodedBitStreamParser;->$SWITCH_TABLE$com$google$zxing$datamatrix$decoder$DecodedBitStreamParser$Mode()[I
move-result-object v6
invoke-virtual {v4}, Ljava/lang/Enum;->ordinal()I
move-result v4
aget v4, v6, v4
const/4 v6, 0x3
if-eq v4, v6, :cond_6
const/4 v6, 0x4
if-eq v4, v6, :cond_5
const/4 v6, 0x5
if-eq v4, v6, :cond_4
const/4 v6, 0x6
if-eq v4, v6, :cond_3
const/4 v6, 0x7
if-ne v4, v6, :cond_2
.line 9
invoke-static {v0, v1, v3}, Lcom/google/zxing/datamatrix/decoder/DecodedBitStreamParser;->decodeBase256Segment(Lcom/google/zxing/common/BitSource;Ljava/lang/StringBuilder;Ljava/util/Collection;)V
goto :goto_0
.line 10
:cond_2
invoke-static {}, Lcom/google/zxing/FormatException;->getFormatInstance()Lcom/google/zxing/FormatException;
move-result-object p0
throw p0
.line 11
:cond_3
invoke-static {v0, v1}, Lcom/google/zxing/datamatrix/decoder/DecodedBitStreamParser;->decodeEdifactSegment(Lcom/google/zxing/common/BitSource;Ljava/lang/StringBuilder;)V
goto :goto_0
.line 12
:cond_4
invoke-static {v0, v1}, Lcom/google/zxing/datamatrix/decoder/DecodedBitStreamParser;->decodeAnsiX12Segment(Lcom/google/zxing/common/BitSource;Ljava/lang/StringBuilder;)V
goto :goto_0
.line 13
:cond_5
invoke-static {v0, v1}, Lcom/google/zxing/datamatrix/decoder/DecodedBitStreamParser;->decodeTextSegment(Lcom/google/zxing/common/BitSource;Ljava/lang/StringBuilder;)V
goto :goto_0
.line 14
:cond_6
invoke-static {v0, v1}, Lcom/google/zxing/datamatrix/decoder/DecodedBitStreamParser;->decodeC40Segment(Lcom/google/zxing/common/BitSource;Ljava/lang/StringBuilder;)V
:goto_0
move-object v4, v5
.line 15
:goto_1
sget-object v5, Lcom/google/zxing/datamatrix/decoder/DecodedBitStreamParser$Mode;->PAD_ENCODE:Lcom/google/zxing/datamatrix/decoder/DecodedBitStreamParser$Mode;
if-eq v4, v5, :cond_7
invoke-virtual {v0}, Lcom/google/zxing/common/BitSource;->available()I
move-result v5
if-gtz v5, :cond_0
.line 16
:cond_7
invoke-virtual {v2}, Ljava/lang/StringBuilder;->length()I
move-result v0
if-lez v0, :cond_8
.line 17
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 18
:cond_8
new-instance v0, Lcom/google/zxing/common/DecoderResult;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-virtual {v3}, Ljava/util/ArrayList;->isEmpty()Z
move-result v2
const/4 v4, 0x0
if-eqz v2, :cond_9
move-object v3, v4
:cond_9
invoke-direct {v0, p0, v1, v3, v4}, Lcom/google/zxing/common/DecoderResult;-><init>([BLjava/lang/String;Ljava/util/List;Ljava/lang/String;)V
return-object v0
.end method
.method private static decodeAnsiX12Segment(Lcom/google/zxing/common/BitSource;Ljava/lang/StringBuilder;)V
.locals 5
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/zxing/FormatException;
}
.end annotation
const/4 v0, 0x3
new-array v1, v0, [I
.line 1
:cond_0
invoke-virtual {p0}, Lcom/google/zxing/common/BitSource;->available()I
move-result v2
const/16 v3, 0x8
if-ne v2, v3, :cond_1
return-void
.line 2
:cond_1
invoke-virtual {p0, v3}, Lcom/google/zxing/common/BitSource;->readBits(I)I
move-result v2
const/16 v4, 0xfe
if-ne v2, v4, :cond_2
return-void
.line 3
:cond_2
invoke-virtual {p0, v3}, Lcom/google/zxing/common/BitSource;->readBits(I)I
move-result v3
invoke-static {v2, v3, v1}, Lcom/google/zxing/datamatrix/decoder/DecodedBitStreamParser;->parseTwoBytes(II[I)V
const/4 v2, 0x0
:goto_0
if-lt v2, v0, :cond_3
.line 4
invoke-virtual {p0}, Lcom/google/zxing/common/BitSource;->available()I
move-result v2
if-gtz v2, :cond_0
return-void
.line 5
:cond_3
aget v3, v1, v2
if-nez v3, :cond_4
const/16 v3, 0xd
.line 6
invoke-virtual {p1, v3}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
goto :goto_1
:cond_4
const/4 v4, 0x1
if-ne v3, v4, :cond_5
const/16 v3, 0x2a
.line 7
invoke-virtual {p1, v3}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
goto :goto_1
:cond_5
const/4 v4, 0x2
if-ne v3, v4, :cond_6
const/16 v3, 0x3e
.line 8
invoke-virtual {p1, v3}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
goto :goto_1
:cond_6
if-ne v3, v0, :cond_7
const/16 v3, 0x20
.line 9
invoke-virtual {p1, v3}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
goto :goto_1
:cond_7
const/16 v4, 0xe
if-ge v3, v4, :cond_8
add-int/lit8 v3, v3, 0x2c
int-to-char v3, v3
.line 10
invoke-virtual {p1, v3}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
goto :goto_1
:cond_8
const/16 v4, 0x28
if-ge v3, v4, :cond_9
add-int/lit8 v3, v3, 0x33
int-to-char v3, v3
.line 11
invoke-virtual {p1, v3}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
:goto_1
add-int/lit8 v2, v2, 0x1
goto :goto_0
.line 12
:cond_9
invoke-static {}, Lcom/google/zxing/FormatException;->getFormatInstance()Lcom/google/zxing/FormatException;
move-result-object p0
throw p0
.end method
.method private static decodeAsciiSegment(Lcom/google/zxing/common/BitSource;Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;)Lcom/google/zxing/datamatrix/decoder/DecodedBitStreamParser$Mode;
.locals 5
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/zxing/FormatException;
}
.end annotation
const/4 v0, 0x0
move v1, v0
:cond_0
const/16 v2, 0x8
.line 1
invoke-virtual {p0, v2}, Lcom/google/zxing/common/BitSource;->readBits(I)I
move-result v2
if-eqz v2, :cond_11
const/4 v3, 0x1
const/16 v4, 0x80
if-gt v2, v4, :cond_2
if-eqz v1, :cond_1
add-int/lit16 v2, v2, 0x80
:cond_1
sub-int/2addr v2, v3
int-to-char p0, v2
.line 2
invoke-virtual {p1, p0}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 3
sget-object p0, Lcom/google/zxing/datamatrix/decoder/DecodedBitStreamParser$Mode;->ASCII_ENCODE:Lcom/google/zxing/datamatrix/decoder/DecodedBitStreamParser$Mode;
return-object p0
:cond_2
const/16 v4, 0x81
if-ne v2, v4, :cond_3
.line 4
sget-object p0, Lcom/google/zxing/datamatrix/decoder/DecodedBitStreamParser$Mode;->PAD_ENCODE:Lcom/google/zxing/datamatrix/decoder/DecodedBitStreamParser$Mode;
return-object p0
:cond_3
const/16 v4, 0xe5
if-gt v2, v4, :cond_5
add-int/lit16 v2, v2, -0x82
const/16 v3, 0xa
if-ge v2, v3, :cond_4
const/16 v3, 0x30
.line 5
invoke-virtual {p1, v3}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 6
:cond_4
invoke-virtual {p1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
goto/16 :goto_0
:cond_5
const/16 v4, 0xe6
if-ne v2, v4, :cond_6
.line 7
sget-object p0, Lcom/google/zxing/datamatrix/decoder/DecodedBitStreamParser$Mode;->C40_ENCODE:Lcom/google/zxing/datamatrix/decoder/DecodedBitStreamParser$Mode;
return-object p0
:cond_6
const/16 v4, 0xe7
if-ne v2, v4, :cond_7
.line 8
sget-object p0, Lcom/google/zxing/datamatrix/decoder/DecodedBitStreamParser$Mode;->BASE256_ENCODE:Lcom/google/zxing/datamatrix/decoder/DecodedBitStreamParser$Mode;
return-object p0
:cond_7
const/16 v4, 0xe8
if-ne v2, v4, :cond_8
const/16 v2, 0x1d
.line 9
invoke-virtual {p1, v2}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
goto :goto_0
:cond_8
const/16 v4, 0xe9
if-eq v2, v4, :cond_10
const/16 v4, 0xea
if-eq v2, v4, :cond_10
const/16 v4, 0xeb
if-ne v2, v4, :cond_9
move v1, v3
goto :goto_0
:cond_9
const/16 v3, 0xec
const-string v4, "\u001e\u0004"
if-ne v2, v3, :cond_a
const-string v2, "[)>\u001e05\u001d"
.line 10
invoke-virtual {p1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 11
invoke-virtual {p2, v0, v4}, Ljava/lang/StringBuilder;->insert(ILjava/lang/String;)Ljava/lang/StringBuilder;
goto :goto_0
:cond_a
const/16 v3, 0xed
if-ne v2, v3, :cond_b
const-string v2, "[)>\u001e06\u001d"
.line 12
invoke-virtual {p1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 13
invoke-virtual {p2, v0, v4}, Ljava/lang/StringBuilder;->insert(ILjava/lang/String;)Ljava/lang/StringBuilder;
goto :goto_0
:cond_b
const/16 v3, 0xee
if-ne v2, v3, :cond_c
.line 14
sget-object p0, Lcom/google/zxing/datamatrix/decoder/DecodedBitStreamParser$Mode;->ANSIX12_ENCODE:Lcom/google/zxing/datamatrix/decoder/DecodedBitStreamParser$Mode;
return-object p0
:cond_c
const/16 v3, 0xef
if-ne v2, v3, :cond_d
.line 15
sget-object p0, Lcom/google/zxing/datamatrix/decoder/DecodedBitStreamParser$Mode;->TEXT_ENCODE:Lcom/google/zxing/datamatrix/decoder/DecodedBitStreamParser$Mode;
return-object p0
:cond_d
const/16 v3, 0xf0
if-ne v2, v3, :cond_e
.line 16
sget-object p0, Lcom/google/zxing/datamatrix/decoder/DecodedBitStreamParser$Mode;->EDIFACT_ENCODE:Lcom/google/zxing/datamatrix/decoder/DecodedBitStreamParser$Mode;
return-object p0
:cond_e
const/16 v3, 0xf1
if-eq v2, v3, :cond_10
const/16 v3, 0xf2
if-lt v2, v3, :cond_10
const/16 v3, 0xfe
if-ne v2, v3, :cond_f
.line 17
invoke-virtual {p0}, Lcom/google/zxing/common/BitSource;->available()I
move-result v2
if-nez v2, :cond_f
goto :goto_0
.line 18
:cond_f
invoke-static {}, Lcom/google/zxing/FormatException;->getFormatInstance()Lcom/google/zxing/FormatException;
move-result-object p0
throw p0
.line 19
:cond_10
:goto_0
invoke-virtual {p0}, Lcom/google/zxing/common/BitSource;->available()I
move-result v2
if-gtz v2, :cond_0
.line 20
sget-object p0, Lcom/google/zxing/datamatrix/decoder/DecodedBitStreamParser$Mode;->ASCII_ENCODE:Lcom/google/zxing/datamatrix/decoder/DecodedBitStreamParser$Mode;
return-object p0
.line 21
:cond_11
invoke-static {}, Lcom/google/zxing/FormatException;->getFormatInstance()Lcom/google/zxing/FormatException;
move-result-object p0
throw p0
.end method
.method private static decodeBase256Segment(Lcom/google/zxing/common/BitSource;Ljava/lang/StringBuilder;Ljava/util/Collection;)V
.locals 7
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/google/zxing/common/BitSource;",
"Ljava/lang/StringBuilder;",
"Ljava/util/Collection<",
"[B>;)V"
}
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/zxing/FormatException;
}
.end annotation
.line 1
invoke-virtual {p0}, Lcom/google/zxing/common/BitSource;->getByteOffset()I
move-result v0
add-int/lit8 v0, v0, 0x1
const/16 v1, 0x8
.line 2
invoke-virtual {p0, v1}, Lcom/google/zxing/common/BitSource;->readBits(I)I
move-result v2
add-int/lit8 v3, v0, 0x1
invoke-static {v2, v0}, Lcom/google/zxing/datamatrix/decoder/DecodedBitStreamParser;->unrandomize255State(II)I
move-result v0
if-nez v0, :cond_0
.line 3
invoke-virtual {p0}, Lcom/google/zxing/common/BitSource;->available()I
move-result v0
div-int/2addr v0, v1
goto :goto_0
:cond_0
const/16 v2, 0xfa
if-ge v0, v2, :cond_1
goto :goto_0
:cond_1
add-int/lit16 v0, v0, -0xf9
mul-int/2addr v0, v2
.line 4
invoke-virtual {p0, v1}, Lcom/google/zxing/common/BitSource;->readBits(I)I
move-result v2
add-int/lit8 v4, v3, 0x1
invoke-static {v2, v3}, Lcom/google/zxing/datamatrix/decoder/DecodedBitStreamParser;->unrandomize255State(II)I
move-result v2
add-int/2addr v0, v2
move v3, v4
:goto_0
if-ltz v0, :cond_4
.line 5
new-array v2, v0, [B
const/4 v4, 0x0
:goto_1
if-lt v4, v0, :cond_2
.line 6
invoke-interface {p2, v2}, Ljava/util/Collection;->add(Ljava/lang/Object;)Z
.line 7
:try_start_0
new-instance p0, Ljava/lang/String;
const-string p2, "ISO8859_1"
invoke-direct {p0, v2, 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_0
.catch Ljava/io/UnsupportedEncodingException; {:try_start_0 .. :try_end_0} :catch_0
return-void
:catch_0
move-exception p0
.line 8
new-instance p1, Ljava/lang/IllegalStateException;
new-instance p2, Ljava/lang/StringBuilder;
const-string v0, "Platform does not support required encoding: "
invoke-direct {p2, v0}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {p2, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {p2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
invoke-direct {p1, p0}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw p1
.line 9
:cond_2
invoke-virtual {p0}, Lcom/google/zxing/common/BitSource;->available()I
move-result v5
if-lt v5, v1, :cond_3
.line 10
invoke-virtual {p0, v1}, Lcom/google/zxing/common/BitSource;->readBits(I)I
move-result v5
add-int/lit8 v6, v3, 0x1
invoke-static {v5, v3}, Lcom/google/zxing/datamatrix/decoder/DecodedBitStreamParser;->unrandomize255State(II)I
move-result v3
int-to-byte v3, v3
aput-byte v3, v2, v4
add-int/lit8 v4, v4, 0x1
move v3, v6
goto :goto_1
.line 11
:cond_3
invoke-static {}, Lcom/google/zxing/FormatException;->getFormatInstance()Lcom/google/zxing/FormatException;
move-result-object p0
throw p0
.line 12
:cond_4
invoke-static {}, Lcom/google/zxing/FormatException;->getFormatInstance()Lcom/google/zxing/FormatException;
move-result-object p0
throw p0
.end method
.method private static decodeC40Segment(Lcom/google/zxing/common/BitSource;Ljava/lang/StringBuilder;)V
.locals 9
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/zxing/FormatException;
}
.end annotation
const/4 v0, 0x3
new-array v1, v0, [I
const/4 v2, 0x0
move v3, v2
move v4, v3
.line 1
:cond_0
invoke-virtual {p0}, Lcom/google/zxing/common/BitSource;->available()I
move-result v5
const/16 v6, 0x8
if-ne v5, v6, :cond_1
return-void
.line 2
:cond_1
invoke-virtual {p0, v6}, Lcom/google/zxing/common/BitSource;->readBits(I)I
move-result v5
const/16 v7, 0xfe
if-ne v5, v7, :cond_2
return-void
.line 3
:cond_2
invoke-virtual {p0, v6}, Lcom/google/zxing/common/BitSource;->readBits(I)I
move-result v6
invoke-static {v5, v6, v1}, Lcom/google/zxing/datamatrix/decoder/DecodedBitStreamParser;->parseTwoBytes(II[I)V
move v5, v2
:goto_0
if-lt v5, v0, :cond_3
.line 4
invoke-virtual {p0}, Lcom/google/zxing/common/BitSource;->available()I
move-result v5
if-gtz v5, :cond_0
return-void
.line 5
:cond_3
aget v6, v1, v5
if-eqz v4, :cond_d
const/4 v7, 0x1
if-eq v4, v7, :cond_b
const/4 v8, 0x2
if-eq v4, v8, :cond_6
if-ne v4, v0, :cond_5
if-eqz v3, :cond_4
add-int/lit16 v6, v6, 0xe0
int-to-char v3, v6
.line 6
invoke-virtual {p1, v3}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
goto :goto_1
:cond_4
add-int/lit8 v6, v6, 0x60
int-to-char v4, v6
.line 7
invoke-virtual {p1, v4}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
goto :goto_2
.line 8
:cond_5
invoke-static {}, Lcom/google/zxing/FormatException;->getFormatInstance()Lcom/google/zxing/FormatException;
move-result-object p0
throw p0
.line 9
:cond_6
sget-object v4, Lcom/google/zxing/datamatrix/decoder/DecodedBitStreamParser;->C40_SHIFT2_SET_CHARS:[C
array-length v8, v4
if-ge v6, v8, :cond_8
.line 10
aget-char v4, v4, v6
if-eqz v3, :cond_7
add-int/lit16 v4, v4, 0x80
int-to-char v3, v4
.line 11
invoke-virtual {p1, v3}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
goto :goto_1
.line 12
:cond_7
invoke-virtual {p1, v4}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
goto :goto_2
:cond_8
const/16 v4, 0x1b
if-ne v6, v4, :cond_9
const/16 v4, 0x1d
.line 13
invoke-virtual {p1, v4}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
goto :goto_2
:cond_9
const/16 v3, 0x1e
if-ne v6, v3, :cond_a
move v3, v7
goto :goto_2
.line 14
:cond_a
invoke-static {}, Lcom/google/zxing/FormatException;->getFormatInstance()Lcom/google/zxing/FormatException;
move-result-object p0
throw p0
:cond_b
if-eqz v3, :cond_c
add-int/lit16 v6, v6, 0x80
int-to-char v3, v6
.line 15
invoke-virtual {p1, v3}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
:goto_1
move v3, v2
goto :goto_2
:cond_c
int-to-char v4, v6
.line 16
invoke-virtual {p1, v4}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
:goto_2
move v4, v2
goto :goto_3
:cond_d
if-ge v6, v0, :cond_e
add-int/lit8 v6, v6, 0x1
move v4, v6
goto :goto_3
.line 17
:cond_e
sget-object v7, Lcom/google/zxing/datamatrix/decoder/DecodedBitStreamParser;->C40_BASIC_SET_CHARS:[C
array-length v8, v7
if-ge v6, v8, :cond_10
.line 18
aget-char v6, v7, v6
if-eqz v3, :cond_f
add-int/lit16 v6, v6, 0x80
int-to-char v3, v6
.line 19
invoke-virtual {p1, v3}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
move v3, v2
goto :goto_3
.line 20
:cond_f
invoke-virtual {p1, v6}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
:goto_3
add-int/lit8 v5, v5, 0x1
goto :goto_0
.line 21
:cond_10
invoke-static {}, Lcom/google/zxing/FormatException;->getFormatInstance()Lcom/google/zxing/FormatException;
move-result-object p0
throw p0
.end method
.method private static decodeEdifactSegment(Lcom/google/zxing/common/BitSource;Ljava/lang/StringBuilder;)V
.locals 3
.line 1
:cond_0
invoke-virtual {p0}, Lcom/google/zxing/common/BitSource;->available()I
move-result v0
const/16 v1, 0x10
if-gt v0, v1, :cond_1
return-void
:cond_1
const/4 v0, 0x0
:goto_0
const/4 v1, 0x4
if-lt v0, v1, :cond_2
.line 2
invoke-virtual {p0}, Lcom/google/zxing/common/BitSource;->available()I
move-result v0
if-gtz v0, :cond_0
return-void
:cond_2
const/4 v1, 0x6
.line 3
invoke-virtual {p0, v1}, Lcom/google/zxing/common/BitSource;->readBits(I)I
move-result v1
const/16 v2, 0x1f
if-ne v1, v2, :cond_4
.line 4
invoke-virtual {p0}, Lcom/google/zxing/common/BitSource;->getBitOffset()I
move-result p1
const/16 v0, 0x8
rsub-int/lit8 p1, p1, 0x8
if-eq p1, v0, :cond_3
.line 5
invoke-virtual {p0, p1}, Lcom/google/zxing/common/BitSource;->readBits(I)I
:cond_3
return-void
:cond_4
and-int/lit8 v2, v1, 0x20
if-nez v2, :cond_5
or-int/lit8 v1, v1, 0x40
:cond_5
int-to-char v1, v1
.line 6
invoke-virtual {p1, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
add-int/lit8 v0, v0, 0x1
goto :goto_0
.end method
.method private static decodeTextSegment(Lcom/google/zxing/common/BitSource;Ljava/lang/StringBuilder;)V
.locals 9
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/zxing/FormatException;
}
.end annotation
const/4 v0, 0x3
new-array v1, v0, [I
const/4 v2, 0x0
move v3, v2
move v4, v3
.line 1
:cond_0
invoke-virtual {p0}, Lcom/google/zxing/common/BitSource;->available()I
move-result v5
const/16 v6, 0x8
if-ne v5, v6, :cond_1
return-void
.line 2
:cond_1
invoke-virtual {p0, v6}, Lcom/google/zxing/common/BitSource;->readBits(I)I
move-result v5
const/16 v7, 0xfe
if-ne v5, v7, :cond_2
return-void
.line 3
:cond_2
invoke-virtual {p0, v6}, Lcom/google/zxing/common/BitSource;->readBits(I)I
move-result v6
invoke-static {v5, v6, v1}, Lcom/google/zxing/datamatrix/decoder/DecodedBitStreamParser;->parseTwoBytes(II[I)V
move v5, v2
:goto_0
if-lt v5, v0, :cond_3
.line 4
invoke-virtual {p0}, Lcom/google/zxing/common/BitSource;->available()I
move-result v5
if-gtz v5, :cond_0
return-void
.line 5
:cond_3
aget v6, v1, v5
if-eqz v4, :cond_e
const/4 v7, 0x1
if-eq v4, v7, :cond_c
const/4 v8, 0x2
if-eq v4, v8, :cond_7
if-ne v4, v0, :cond_6
.line 6
sget-object v4, Lcom/google/zxing/datamatrix/decoder/DecodedBitStreamParser;->TEXT_SHIFT3_SET_CHARS:[C
array-length v7, v4
if-ge v6, v7, :cond_5
.line 7
aget-char v4, v4, v6
if-eqz v3, :cond_4
add-int/lit16 v4, v4, 0x80
int-to-char v3, v4
.line 8
invoke-virtual {p1, v3}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
goto :goto_1
.line 9
:cond_4
invoke-virtual {p1, v4}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
goto :goto_2
.line 10
:cond_5
invoke-static {}, Lcom/google/zxing/FormatException;->getFormatInstance()Lcom/google/zxing/FormatException;
move-result-object p0
throw p0
.line 11
:cond_6
invoke-static {}, Lcom/google/zxing/FormatException;->getFormatInstance()Lcom/google/zxing/FormatException;
move-result-object p0
throw p0
.line 12
:cond_7
sget-object v4, Lcom/google/zxing/datamatrix/decoder/DecodedBitStreamParser;->C40_SHIFT2_SET_CHARS:[C
array-length v8, v4
if-ge v6, v8, :cond_9
.line 13
aget-char v4, v4, v6
if-eqz v3, :cond_8
add-int/lit16 v4, v4, 0x80
int-to-char v3, v4
.line 14
invoke-virtual {p1, v3}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
goto :goto_1
.line 15
:cond_8
invoke-virtual {p1, v4}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
goto :goto_2
:cond_9
const/16 v4, 0x1b
if-ne v6, v4, :cond_a
const/16 v4, 0x1d
.line 16
invoke-virtual {p1, v4}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
goto :goto_2
:cond_a
const/16 v3, 0x1e
if-ne v6, v3, :cond_b
move v3, v7
goto :goto_2
.line 17
:cond_b
invoke-static {}, Lcom/google/zxing/FormatException;->getFormatInstance()Lcom/google/zxing/FormatException;
move-result-object p0
throw p0
:cond_c
if-eqz v3, :cond_d
add-int/lit16 v6, v6, 0x80
int-to-char v3, v6
.line 18
invoke-virtual {p1, v3}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
:goto_1
move v3, v2
goto :goto_2
:cond_d
int-to-char v4, v6
.line 19
invoke-virtual {p1, v4}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
:goto_2
move v4, v2
goto :goto_3
:cond_e
if-ge v6, v0, :cond_f
add-int/lit8 v6, v6, 0x1
move v4, v6
goto :goto_3
.line 20
:cond_f
sget-object v7, Lcom/google/zxing/datamatrix/decoder/DecodedBitStreamParser;->TEXT_BASIC_SET_CHARS:[C
array-length v8, v7
if-ge v6, v8, :cond_11
.line 21
aget-char v6, v7, v6
if-eqz v3, :cond_10
add-int/lit16 v6, v6, 0x80
int-to-char v3, v6
.line 22
invoke-virtual {p1, v3}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
move v3, v2
goto :goto_3
.line 23
:cond_10
invoke-virtual {p1, v6}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
:goto_3
add-int/lit8 v5, v5, 0x1
goto/16 :goto_0
.line 24
:cond_11
invoke-static {}, Lcom/google/zxing/FormatException;->getFormatInstance()Lcom/google/zxing/FormatException;
move-result-object p0
throw p0
.end method
.method private static parseTwoBytes(II[I)V
.locals 2
shl-int/lit8 p0, p0, 0x8
add-int/2addr p0, p1
const/4 p1, 0x1
sub-int/2addr p0, p1
.line 1
div-int/lit16 v0, p0, 0x640
const/4 v1, 0x0
.line 2
aput v0, p2, v1
mul-int/lit16 v0, v0, 0x640
sub-int/2addr p0, v0
.line 3
div-int/lit8 v0, p0, 0x28
.line 4
aput v0, p2, p1
mul-int/lit8 v0, v0, 0x28
sub-int/2addr p0, v0
const/4 p1, 0x2
.line 5
aput p0, p2, p1
return-void
.end method
.method private static unrandomize255State(II)I
.locals 0
mul-int/lit16 p1, p1, 0x95
.line 1
rem-int/lit16 p1, p1, 0xff
add-int/lit8 p1, p1, 0x1
sub-int/2addr p0, p1
if-ltz p0, :cond_0
goto :goto_0
:cond_0
add-int/lit16 p0, p0, 0x100
:goto_0
return p0
.end method