RSSUtils.smali
.class public final Lcom/google/zxing/oned/rss/RSSUtils;
.super Ljava/lang/Object;
.source "RSSUtils.java"
# direct methods
.method static constructor <clinit>()V
.registers 1
return-void
.end method
.method private constructor <init>()V
.registers 1
.line 22
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method private static combins(II)I
.registers 7
.param p0, "n" # I
.param p1, "r" # I
.line 106
sub-int v0, p0, p1
if-le v0, p1, :cond_8
.line 107
move v0, p1
.line 108
.local v0, "minDenom":I
sub-int v1, p0, p1
.local v1, "maxDenom":I
goto :goto_b
.line 110
.end local v0 # "minDenom":I
.end local v1 # "maxDenom":I
:cond_8
sub-int v0, p0, p1
.line 111
.restart local v0 # "minDenom":I
move v1, p1
.line 113
.restart local v1 # "maxDenom":I
:goto_b
const/4 v2, 0x1
.line 114
.local v2, "val":I
const/4 v3, 0x1
.line 115
.local v3, "j":I
move v4, p0
.local v4, "i":I
:goto_e
if-le v4, v1, :cond_1a
.line 116
mul-int v2, v2, v4
.line 117
if-gt v3, v0, :cond_17
.line 118
div-int/2addr v2, v3
.line 119
add-int/lit8 v3, v3, 0x1
.line 115
:cond_17
add-int/lit8 v4, v4, -0x1
goto :goto_e
.line 122
.end local v4 # "i":I
:cond_1a
:goto_1a
if-gt v3, v0, :cond_20
.line 123
div-int/2addr v2, v3
.line 124
add-int/lit8 v3, v3, 0x1
goto :goto_1a
.line 126
:cond_20
return v2
.end method
.method public static getRSSvalue([IIZ)I
.registers 15
.param p0, "widths" # [I
.param p1, "maxWidth" # I
.param p2, "noNarrow" # Z
.line 67
const/4 v0, 0x0
.line 68
.local v0, "n":I
array-length v1, p0
const/4 v2, 0x0
:goto_3
if-ge v2, v1, :cond_b
aget v3, p0, v2
.line 69
.local v3, "width":I
add-int/2addr v0, v3
.line 68
.end local v3 # "width":I
add-int/lit8 v2, v2, 0x1
goto :goto_3
.line 71
:cond_b
const/4 v1, 0x0
.line 72
.local v1, "val":I
const/4 v2, 0x0
.line 73
.local v2, "narrowMask":I
array-length v3, p0
.line 74
.local v3, "elements":I
const/4 v4, 0x0
.local v4, "bar":I
:goto_f
add-int/lit8 v5, v3, -0x1
if-ge v4, v5, :cond_7f
.line 76
const/4 v5, 0x1
.local v5, "elmWidth":I
const/4 v6, 0x1
shl-int v7, v6, v4
or-int/2addr v2, v7
.line 77
:goto_18
aget v7, p0, v4
if-ge v5, v7, :cond_7b
.line 79
sub-int v7, v0, v5
sub-int/2addr v7, v6
sub-int v8, v3, v4
add-int/lit8 v8, v8, -0x2
invoke-static {v7, v8}, Lcom/google/zxing/oned/rss/RSSUtils;->combins(II)I
move-result v7
.line 80
.local v7, "subVal":I
if-eqz p2, :cond_44
if-nez v2, :cond_44
sub-int v8, v0, v5
sub-int v9, v3, v4
sub-int/2addr v9, v6
sub-int/2addr v8, v9
sub-int v9, v3, v4
sub-int/2addr v9, v6
if-lt v8, v9, :cond_44
.line 82
sub-int v8, v0, v5
sub-int v9, v3, v4
sub-int/2addr v8, v9
sub-int v9, v3, v4
add-int/lit8 v9, v9, -0x2
invoke-static {v8, v9}, Lcom/google/zxing/oned/rss/RSSUtils;->combins(II)I
move-result v8
sub-int/2addr v7, v8
.line 85
:cond_44
sub-int v8, v3, v4
sub-int/2addr v8, v6
if-le v8, v6, :cond_6a
.line 86
const/4 v8, 0x0
.line 87
.local v8, "lessVal":I
sub-int v9, v0, v5
sub-int v10, v3, v4
add-int/lit8 v10, v10, -0x2
sub-int/2addr v9, v10
.line 88
.local v9, "mxwElement":I
:goto_51
if-le v9, p1, :cond_63
.line 89
sub-int v10, v0, v5
sub-int/2addr v10, v9
sub-int/2addr v10, v6
sub-int v11, v3, v4
add-int/lit8 v11, v11, -0x3
invoke-static {v10, v11}, Lcom/google/zxing/oned/rss/RSSUtils;->combins(II)I
move-result v10
add-int/2addr v8, v10
.line 88
add-int/lit8 v9, v9, -0x1
goto :goto_51
.line 92
.end local v9 # "mxwElement":I
:cond_63
add-int/lit8 v9, v3, -0x1
sub-int/2addr v9, v4
mul-int v9, v9, v8
sub-int/2addr v7, v9
.end local v8 # "lessVal":I
goto :goto_71
.line 93
:cond_6a
sub-int v8, v0, v5
if-le v8, p1, :cond_71
.line 94
add-int/lit8 v7, v7, -0x1
goto :goto_72
.line 93
:cond_71
:goto_71
nop
.line 96
:goto_72
add-int/2addr v1, v7
.line 78
.end local v7 # "subVal":I
add-int/lit8 v5, v5, 0x1
shl-int v7, v6, v4
xor-int/lit8 v7, v7, -0x1
and-int/2addr v2, v7
goto :goto_18
.line 98
:cond_7b
sub-int/2addr v0, v5
.line 74
.end local v5 # "elmWidth":I
add-int/lit8 v4, v4, 0x1
goto :goto_f
.line 100
.end local v4 # "bar":I
:cond_7f
return v1
.end method