j.smali

.class public final Lcom/google/zxing/common/j;
.super Lcom/google/zxing/common/h;
.source "SourceFile"


# instance fields
.field private a:Lcom/google/zxing/common/b;


# direct methods
.method public constructor <init>(Lcom/google/zxing/f;)V
    .registers 2

    .line 53
    invoke-direct {p0, p1}, Lcom/google/zxing/common/h;-><init>(Lcom/google/zxing/f;)V

    return-void
.end method

.method private static a(II)I
    .registers 3

    const/4 v0, 0x2

    if-ge p0, v0, :cond_4

    return v0

    :cond_4
    if-le p0, p1, :cond_7

    return p1

    :cond_7
    return p0
.end method


# virtual methods
.method public final b()Lcom/google/zxing/common/b;
    .registers 24
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Lcom/google/zxing/NotFoundException;
        }
    .end annotation

    move-object/from16 v0, p0

    .line 63
    iget-object v1, v0, Lcom/google/zxing/common/j;->a:Lcom/google/zxing/common/b;

    if-eqz v1, :cond_7

    return-object v1

    .line 66
    :cond_7
    invoke-virtual/range {p0 .. p0}, Lcom/google/zxing/common/j;->a()Lcom/google/zxing/f;

    move-result-object v1

    .line 1066
    iget v2, v1, Lcom/google/zxing/f;->a:I

    .line 1073
    iget v3, v1, Lcom/google/zxing/f;->b:I

    const/16 v4, 0x28

    if-lt v2, v4, :cond_19b

    if-lt v3, v4, :cond_19b

    .line 70
    invoke-virtual {v1}, Lcom/google/zxing/f;->a()[B

    move-result-object v1

    shr-int/lit8 v4, v2, 0x3

    and-int/lit8 v5, v2, 0x7

    if-eqz v5, :cond_21

    add-int/lit8 v4, v4, 0x1

    :cond_21
    shr-int/lit8 v5, v3, 0x3

    and-int/lit8 v6, v3, 0x7

    if-eqz v6, :cond_29

    add-int/lit8 v5, v5, 0x1

    :cond_29
    add-int/lit8 v6, v3, -0x8

    add-int/lit8 v7, v2, -0x8

    const/4 v8, 0x2

    new-array v9, v8, [I

    const/4 v10, 0x1

    aput v4, v9, v10

    const/4 v11, 0x0

    aput v5, v9, v11

    .line 1168
    const-class v12, I

    invoke-static {v12, v9}, Ljava/lang/reflect/Array;->newInstance(Ljava/lang/Class;[I)Ljava/lang/Object;

    move-result-object v9

    check-cast v9, [[I

    const/4 v12, 0x0

    :goto_3f
    const/16 v14, 0x8

    if-ge v12, v5, :cond_fa

    shl-int/lit8 v15, v12, 0x3

    if-le v15, v6, :cond_48

    move v15, v6

    :cond_48
    :goto_48
    if-ge v11, v4, :cond_f4

    shl-int/lit8 v8, v11, 0x3

    if-le v8, v7, :cond_4f

    move v8, v7

    :cond_4f
    mul-int v17, v15, v2

    add-int v17, v17, v8

    const/4 v8, 0x0

    const/16 v18, 0x0

    const/16 v19, 0x0

    const/16 v20, 0xff

    :goto_5a
    if-ge v8, v14, :cond_b8

    move/from16 v10, v19

    move/from16 v21, v20

    const/4 v13, 0x0

    :goto_61
    if-ge v13, v14, :cond_81

    add-int v19, v17, v13

    .line 1184
    aget-byte v14, v1, v19

    move/from16 v22, v15

    const/16 v15, 0xff

    and-int/2addr v14, v15

    add-int v18, v18, v14

    move/from16 v15, v21

    if-ge v14, v15, :cond_75

    move/from16 v21, v14

    goto :goto_77

    :cond_75
    move/from16 v21, v15

    :goto_77
    if-le v14, v10, :cond_7a

    move v10, v14

    :cond_7a
    add-int/lit8 v13, v13, 0x1

    move/from16 v15, v22

    const/16 v14, 0x8

    goto :goto_61

    :cond_81
    move/from16 v22, v15

    move/from16 v15, v21

    sub-int v13, v10, v15

    const/16 v14, 0x18

    if-le v13, v14, :cond_ab

    :goto_8b
    add-int/lit8 v8, v8, 0x1

    add-int v17, v17, v2

    const/16 v13, 0x8

    if-ge v8, v13, :cond_ab

    const/4 v14, 0x0

    :goto_94
    if-ge v14, v13, :cond_a8

    add-int v13, v17, v14

    .line 1199
    aget-byte v13, v1, v13

    move/from16 v19, v10

    const/16 v10, 0xff

    and-int/2addr v13, v10

    add-int v18, v18, v13

    add-int/lit8 v14, v14, 0x1

    move/from16 v10, v19

    const/16 v13, 0x8

    goto :goto_94

    :cond_a8
    move/from16 v19, v10

    goto :goto_8b

    :cond_ab
    move/from16 v19, v10

    const/4 v10, 0x1

    add-int/2addr v8, v10

    add-int v17, v17, v2

    move/from16 v20, v15

    move/from16 v15, v22

    const/16 v14, 0x8

    goto :goto_5a

    :cond_b8
    move/from16 v22, v15

    const/4 v10, 0x1

    shr-int/lit8 v8, v18, 0x6

    move/from16 v15, v20

    sub-int v13, v19, v15

    const/16 v14, 0x18

    if-gt v13, v14, :cond_e7

    .line 1214
    div-int/lit8 v8, v15, 0x2

    if-lez v12, :cond_e7

    if-lez v11, :cond_e7

    add-int/lit8 v13, v12, -0x1

    .line 1224
    aget-object v14, v9, v13

    aget v14, v14, v11

    aget-object v17, v9, v12

    add-int/lit8 v18, v11, -0x1

    aget v17, v17, v18

    const/16 v16, 0x2

    mul-int/lit8 v17, v17, 0x2

    add-int v14, v14, v17

    aget-object v13, v9, v13

    aget v13, v13, v18

    add-int/2addr v14, v13

    div-int/lit8 v13, v14, 0x4

    if-ge v15, v13, :cond_e7

    move v8, v13

    .line 1231
    :cond_e7
    aget-object v13, v9, v12

    aput v8, v13, v11

    add-int/lit8 v11, v11, 0x1

    move/from16 v15, v22

    const/4 v8, 0x2

    const/16 v14, 0x8

    goto/16 :goto_48

    :cond_f4
    add-int/lit8 v12, v12, 0x1

    const/4 v8, 0x2

    const/4 v11, 0x0

    goto/16 :goto_3f

    .line 81
    :cond_fa
    new-instance v8, Lcom/google/zxing/common/b;

    invoke-direct {v8, v2, v3}, Lcom/google/zxing/common/b;-><init>(II)V

    const/4 v3, 0x0

    :goto_100
    if-ge v3, v5, :cond_198

    shl-int/lit8 v10, v3, 0x3

    if-le v10, v6, :cond_107

    move v10, v6

    :cond_107
    add-int/lit8 v11, v5, -0x3

    .line 2115
    invoke-static {v3, v11}, Lcom/google/zxing/common/j;->a(II)I

    move-result v11

    const/4 v12, 0x0

    :goto_10e
    if-ge v12, v4, :cond_18a

    shl-int/lit8 v13, v12, 0x3

    if-le v13, v7, :cond_115

    move v13, v7

    :cond_115
    add-int/lit8 v14, v4, -0x3

    .line 2121
    invoke-static {v12, v14}, Lcom/google/zxing/common/j;->a(II)I

    move-result v14

    const/4 v15, -0x2

    move/from16 v18, v4

    const/4 v4, 0x2

    const/16 v17, 0x0

    :goto_121
    if-gt v15, v4, :cond_149

    add-int v4, v11, v15

    .line 2124
    aget-object v4, v9, v4

    add-int/lit8 v19, v14, -0x2

    .line 2125
    aget v19, v4, v19

    add-int/lit8 v20, v14, -0x1

    aget v20, v4, v20

    add-int v19, v19, v20

    aget v20, v4, v14

    add-int v19, v19, v20

    add-int/lit8 v20, v14, 0x1

    aget v20, v4, v20

    add-int v19, v19, v20

    const/16 v16, 0x2

    add-int/lit8 v20, v14, 0x2

    aget v4, v4, v20

    add-int v19, v19, v4

    add-int v17, v17, v19

    add-int/lit8 v15, v15, 0x1

    const/4 v4, 0x2

    goto :goto_121

    :cond_149
    const/16 v16, 0x2

    .line 2127
    div-int/lit8 v4, v17, 0x19

    mul-int v14, v10, v2

    add-int/2addr v14, v13

    move/from16 v17, v5

    const/16 v5, 0x8

    const/4 v15, 0x0

    :goto_155
    if-ge v15, v5, :cond_17f

    move/from16 v19, v6

    const/4 v6, 0x0

    :goto_15a
    if-ge v6, v5, :cond_175

    add-int v20, v14, v6

    .line 2149
    aget-byte v5, v1, v20

    move-object/from16 v20, v1

    const/16 v1, 0xff

    and-int/2addr v5, v1

    if-gt v5, v4, :cond_16e

    add-int v5, v13, v6

    add-int v1, v10, v15

    .line 2150
    invoke-virtual {v8, v5, v1}, Lcom/google/zxing/common/b;->b(II)V

    :cond_16e
    add-int/lit8 v6, v6, 0x1

    move-object/from16 v1, v20

    const/16 v5, 0x8

    goto :goto_15a

    :cond_175
    move-object/from16 v20, v1

    add-int/lit8 v15, v15, 0x1

    add-int/2addr v14, v2

    move/from16 v6, v19

    const/16 v5, 0x8

    goto :goto_155

    :cond_17f
    move-object/from16 v20, v1

    move/from16 v19, v6

    add-int/lit8 v12, v12, 0x1

    move/from16 v5, v17

    move/from16 v4, v18

    goto :goto_10e

    :cond_18a
    move-object/from16 v20, v1

    move/from16 v18, v4

    move/from16 v17, v5

    move/from16 v19, v6

    const/16 v16, 0x2

    add-int/lit8 v3, v3, 0x1

    goto/16 :goto_100

    .line 83
    :cond_198
    iput-object v8, v0, Lcom/google/zxing/common/j;->a:Lcom/google/zxing/common/b;

    goto :goto_1a1

    .line 86
    :cond_19b
    invoke-super/range {p0 .. p0}, Lcom/google/zxing/common/h;->b()Lcom/google/zxing/common/b;

    move-result-object v1

    iput-object v1, v0, Lcom/google/zxing/common/j;->a:Lcom/google/zxing/common/b;

    .line 88
    :goto_1a1
    iget-object v1, v0, Lcom/google/zxing/common/j;->a:Lcom/google/zxing/common/b;

    return-object v1
.end method