g.smali

.class public final Lcom/google/zxing/common/g;
.super Lcom/google/zxing/a;
.source "GlobalHistogramBinarizer.java"


# static fields
.field private static final EMPTY:[B


# instance fields
.field private final boP:[I

.field private bov:[B


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

    .prologue
    .line 39
    const/4 v0, 0x0

    new-array v0, v0, [B

    sput-object v0, Lcom/google/zxing/common/g;->EMPTY:[B

    return-void
.end method

.method public constructor <init>(Lcom/google/zxing/c;)V
    .registers 3

    .prologue
    .line 45
    invoke-direct {p0, p1}, Lcom/google/zxing/a;-><init>(Lcom/google/zxing/c;)V

    .line 46
    sget-object v0, Lcom/google/zxing/common/g;->EMPTY:[B

    iput-object v0, p0, Lcom/google/zxing/common/g;->bov:[B

    .line 47
    const/16 v0, 0x20

    new-array v0, v0, [I

    iput-object v0, p0, Lcom/google/zxing/common/g;->boP:[I

    .line 48
    return-void
.end method


# virtual methods
.method public final FC()Lcom/google/zxing/common/b;
    .registers 15

    .prologue
    const/16 v13, 0x20

    const/4 v6, 0x0

    .line 95
    .line 1039
    iget-object v8, p0, Lcom/google/zxing/a;->bon:Lcom/google/zxing/c;

    .line 1066
    iget v9, v8, Lcom/google/zxing/c;->width:I

    .line 1073
    iget v10, v8, Lcom/google/zxing/c;->height:I

    .line 98
    new-instance v11, Lcom/google/zxing/common/b;

    invoke-direct {v11, v9, v10}, Lcom/google/zxing/common/b;-><init>(II)V

    .line 1138
    iget-object v0, p0, Lcom/google/zxing/common/g;->bov:[B

    array-length v0, v0

    if-ge v0, v9, :cond_17

    .line 1139
    new-array v0, v9, [B

    iput-object v0, p0, Lcom/google/zxing/common/g;->bov:[B

    :cond_17
    move v0, v6

    .line 1141
    :goto_18
    if-ge v0, v13, :cond_21

    .line 1142
    iget-object v1, p0, Lcom/google/zxing/common/g;->boP:[I

    aput v6, v1, v0

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

    goto :goto_18

    .line 103
    :cond_21
    iget-object v12, p0, Lcom/google/zxing/common/g;->boP:[I

    .line 104
    const/4 v0, 0x1

    move v1, v0

    :goto_25
    const/4 v0, 0x5

    if-ge v1, v0, :cond_4d

    .line 105
    mul-int v0, v10, v1

    div-int/lit8 v0, v0, 0x5

    .line 106
    iget-object v2, p0, Lcom/google/zxing/common/g;->bov:[B

    invoke-virtual {v8, v0, v2}, Lcom/google/zxing/c;->b(I[B)[B

    move-result-object v2

    .line 107
    shl-int/lit8 v0, v9, 0x2

    div-int/lit8 v3, v0, 0x5

    .line 108
    div-int/lit8 v0, v9, 0x5

    :goto_38
    if-ge v0, v3, :cond_49

    .line 109
    aget-byte v4, v2, v0

    and-int/lit16 v4, v4, 0xff

    .line 110
    shr-int/lit8 v4, v4, 0x3

    aget v5, v12, v4

    add-int/lit8 v5, v5, 0x1

    aput v5, v12, v4

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

    goto :goto_38

    .line 104
    :cond_49
    add-int/lit8 v0, v1, 0x1

    move v1, v0

    goto :goto_25

    :cond_4d
    move v2, v6

    move v0, v6

    move v1, v6

    move v3, v6

    .line 1152
    :goto_51
    if-ge v2, v13, :cond_63

    .line 1153
    aget v4, v12, v2

    if-le v4, v0, :cond_5a

    .line 1155
    aget v0, v12, v2

    move v1, v2

    .line 1157
    :cond_5a
    aget v4, v12, v2

    if-le v4, v3, :cond_60

    .line 1158
    aget v3, v12, v2

    .line 1152
    :cond_60
    add-int/lit8 v2, v2, 0x1

    goto :goto_51

    :cond_63
    move v2, v6

    move v0, v6

    move v5, v6

    .line 1165
    :goto_66
    if-ge v2, v13, :cond_75

    .line 1166
    sub-int v4, v2, v1

    .line 1168
    aget v7, v12, v2

    mul-int/2addr v7, v4

    mul-int/2addr v4, v7

    .line 1169
    if-le v4, v5, :cond_c4

    move v0, v2

    .line 1165
    :goto_71
    add-int/lit8 v2, v2, 0x1

    move v5, v4

    goto :goto_66

    .line 1176
    :cond_75
    if-le v1, v0, :cond_c1

    move v5, v1

    move v7, v0

    .line 1184
    :goto_79
    sub-int v0, v5, v7

    const/4 v1, 0x2

    if-gt v0, v1, :cond_83

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

    move-result-object v0

    throw v0

    .line 1189
    :cond_83
    add-int/lit8 v4, v5, -0x1

    .line 1190
    const/4 v1, -0x1

    .line 1191
    add-int/lit8 v2, v5, -0x1

    :goto_88
    if-le v2, v7, :cond_9d

    .line 1192
    sub-int v0, v2, v7

    .line 1193
    mul-int/2addr v0, v0

    sub-int v13, v5, v2

    mul-int/2addr v0, v13

    aget v13, v12, v2

    sub-int v13, v3, v13

    mul-int/2addr v0, v13

    .line 1194
    if-le v0, v1, :cond_be

    move v1, v2

    .line 1191
    :goto_98
    add-int/lit8 v2, v2, -0x1

    move v4, v1

    move v1, v0

    goto :goto_88

    .line 1200
    :cond_9d
    shl-int/lit8 v2, v4, 0x3

    .line 118
    invoke-virtual {v8}, Lcom/google/zxing/c;->FD()[B

    move-result-object v3

    move v1, v6

    .line 119
    :goto_a4
    if-ge v1, v10, :cond_bd

    .line 120
    mul-int v4, v1, v9

    move v0, v6

    .line 121
    :goto_a9
    if-ge v0, v9, :cond_b9

    .line 122
    add-int v5, v4, v0

    aget-byte v5, v3, v5

    and-int/lit16 v5, v5, 0xff

    .line 123
    if-ge v5, v2, :cond_b6

    .line 124
    invoke-virtual {v11, v0, v1}, Lcom/google/zxing/common/b;->set(II)V

    .line 121
    :cond_b6
    add-int/lit8 v0, v0, 0x1

    goto :goto_a9

    .line 119
    :cond_b9
    add-int/lit8 v0, v1, 0x1

    move v1, v0

    goto :goto_a4

    .line 129
    :cond_bd
    return-object v11

    :cond_be
    move v0, v1

    move v1, v4

    goto :goto_98

    :cond_c1
    move v5, v0

    move v7, v1

    goto :goto_79

    :cond_c4
    move v4, v5

    goto :goto_71
.end method