a$b.smali

.class Le/s/a/a$b;
.super Ljava/lang/Object;
.source ""


# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
    value = Le/s/a/a;
.end annotation

.annotation system Ldalvik/annotation/InnerClass;
    accessFlags = 0x2
    name = "b"
.end annotation


# instance fields
.field private a:I

.field private b:I

.field private c:I

.field private d:I

.field private e:I

.field private f:I

.field private g:I

.field private h:I

.field private i:I

.field final synthetic j:Le/s/a/a;


# direct methods
.method constructor <init>(Le/s/a/a;II)V
    .registers 4

    iput-object p1, p0, Le/s/a/a$b;->j:Le/s/a/a;

    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    iput p2, p0, Le/s/a/a$b;->a:I

    iput p3, p0, Le/s/a/a$b;->b:I

    invoke-virtual {p0}, Le/s/a/a$b;->c()V

    return-void
.end method


# virtual methods
.method final a()Z
    .registers 3

    invoke-virtual {p0}, Le/s/a/a$b;->e()I

    move-result v0

    const/4 v1, 0x1

    if-le v0, v1, :cond_8

    goto :goto_9

    :cond_8
    const/4 v1, 0x0

    :goto_9
    return v1
.end method

.method final b()I
    .registers 8

    invoke-virtual {p0}, Le/s/a/a$b;->f()I

    move-result v0

    iget-object v1, p0, Le/s/a/a$b;->j:Le/s/a/a;

    iget-object v2, v1, Le/s/a/a;->a:[I

    iget-object v1, v1, Le/s/a/a;->b:[I

    iget v3, p0, Le/s/a/a$b;->a:I

    iget v4, p0, Le/s/a/a$b;->b:I

    invoke-static {v2, v0, v3, v4}, Le/s/a/a;->e([IIII)V

    iget v3, p0, Le/s/a/a$b;->a:I

    iget v4, p0, Le/s/a/a$b;->b:I

    add-int/lit8 v4, v4, 0x1

    invoke-static {v2, v3, v4}, Ljava/util/Arrays;->sort([III)V

    iget v3, p0, Le/s/a/a$b;->a:I

    iget v4, p0, Le/s/a/a$b;->b:I

    invoke-static {v2, v0, v3, v4}, Le/s/a/a;->e([IIII)V

    iget v0, p0, Le/s/a/a$b;->c:I

    div-int/lit8 v0, v0, 0x2

    iget v3, p0, Le/s/a/a$b;->a:I

    const/4 v4, 0x0

    :goto_28
    iget v5, p0, Le/s/a/a$b;->b:I

    if-gt v3, v5, :cond_3d

    aget v6, v2, v3

    aget v6, v1, v6

    add-int/2addr v4, v6

    if-lt v4, v0, :cond_3a

    add-int/lit8 v5, v5, -0x1

    invoke-static {v5, v3}, Ljava/lang/Math;->min(II)I

    move-result v0

    return v0

    :cond_3a
    add-int/lit8 v3, v3, 0x1

    goto :goto_28

    :cond_3d
    iget v0, p0, Le/s/a/a$b;->a:I

    return v0
.end method

.method final c()V
    .registers 14

    iget-object v0, p0, Le/s/a/a$b;->j:Le/s/a/a;

    iget-object v1, v0, Le/s/a/a;->a:[I

    iget-object v0, v0, Le/s/a/a;->b:[I

    iget v2, p0, Le/s/a/a$b;->a:I

    const v3, 0x7fffffff

    const/high16 v4, -0x80000000

    const/4 v5, 0x0

    const v4, 0x7fffffff

    const v5, 0x7fffffff

    const/high16 v6, -0x80000000

    const/high16 v7, -0x80000000

    const/high16 v8, -0x80000000

    const/4 v9, 0x0

    :goto_1b
    iget v10, p0, Le/s/a/a$b;->b:I

    if-gt v2, v10, :cond_45

    aget v10, v1, v2

    aget v11, v0, v10

    add-int/2addr v9, v11

    invoke-static {v10}, Le/s/a/a;->k(I)I

    move-result v11

    invoke-static {v10}, Le/s/a/a;->j(I)I

    move-result v12

    invoke-static {v10}, Le/s/a/a;->i(I)I

    move-result v10

    if-le v11, v6, :cond_33

    move v6, v11

    :cond_33
    if-ge v11, v3, :cond_36

    move v3, v11

    :cond_36
    if-le v12, v7, :cond_39

    move v7, v12

    :cond_39
    if-ge v12, v4, :cond_3c

    move v4, v12

    :cond_3c
    if-le v10, v8, :cond_3f

    move v8, v10

    :cond_3f
    if-ge v10, v5, :cond_42

    move v5, v10

    :cond_42
    add-int/lit8 v2, v2, 0x1

    goto :goto_1b

    :cond_45
    iput v3, p0, Le/s/a/a$b;->d:I

    iput v6, p0, Le/s/a/a$b;->e:I

    iput v4, p0, Le/s/a/a$b;->f:I

    iput v7, p0, Le/s/a/a$b;->g:I

    iput v5, p0, Le/s/a/a$b;->h:I

    iput v8, p0, Le/s/a/a$b;->i:I

    iput v9, p0, Le/s/a/a$b;->c:I

    return-void
.end method

.method final d()Le/s/a/b$d;
    .registers 11

    iget-object v0, p0, Le/s/a/a$b;->j:Le/s/a/a;

    iget-object v1, v0, Le/s/a/a;->a:[I

    iget-object v0, v0, Le/s/a/a;->b:[I

    iget v2, p0, Le/s/a/a$b;->a:I

    const/4 v3, 0x0

    const/4 v4, 0x0

    const/4 v5, 0x0

    const/4 v6, 0x0

    :goto_c
    iget v7, p0, Le/s/a/a$b;->b:I

    if-gt v2, v7, :cond_2d

    aget v7, v1, v2

    aget v8, v0, v7

    add-int/2addr v4, v8

    invoke-static {v7}, Le/s/a/a;->k(I)I

    move-result v9

    mul-int v9, v9, v8

    add-int/2addr v3, v9

    invoke-static {v7}, Le/s/a/a;->j(I)I

    move-result v9

    mul-int v9, v9, v8

    add-int/2addr v5, v9

    invoke-static {v7}, Le/s/a/a;->i(I)I

    move-result v7

    mul-int v8, v8, v7

    add-int/2addr v6, v8

    add-int/lit8 v2, v2, 0x1

    goto :goto_c

    :cond_2d
    int-to-float v0, v3

    int-to-float v1, v4

    div-float/2addr v0, v1

    invoke-static {v0}, Ljava/lang/Math;->round(F)I

    move-result v0

    int-to-float v2, v5

    div-float/2addr v2, v1

    invoke-static {v2}, Ljava/lang/Math;->round(F)I

    move-result v2

    int-to-float v3, v6

    div-float/2addr v3, v1

    invoke-static {v3}, Ljava/lang/Math;->round(F)I

    move-result v1

    new-instance v3, Le/s/a/b$d;

    invoke-static {v0, v2, v1}, Le/s/a/a;->b(III)I

    move-result v0

    invoke-direct {v3, v0, v4}, Le/s/a/b$d;-><init>(II)V

    return-object v3
.end method

.method final e()I
    .registers 3

    iget v0, p0, Le/s/a/a$b;->b:I

    add-int/lit8 v0, v0, 0x1

    iget v1, p0, Le/s/a/a$b;->a:I

    sub-int/2addr v0, v1

    return v0
.end method

.method final f()I
    .registers 5

    iget v0, p0, Le/s/a/a$b;->e:I

    iget v1, p0, Le/s/a/a$b;->d:I

    sub-int/2addr v0, v1

    iget v1, p0, Le/s/a/a$b;->g:I

    iget v2, p0, Le/s/a/a$b;->f:I

    sub-int/2addr v1, v2

    iget v2, p0, Le/s/a/a$b;->i:I

    iget v3, p0, Le/s/a/a$b;->h:I

    sub-int/2addr v2, v3

    if-lt v0, v1, :cond_15

    if-lt v0, v2, :cond_15

    const/4 v0, -0x3

    return v0

    :cond_15
    if-lt v1, v0, :cond_1b

    if-lt v1, v2, :cond_1b

    const/4 v0, -0x2

    return v0

    :cond_1b
    const/4 v0, -0x1

    return v0
.end method

.method final g()I
    .registers 4

    iget v0, p0, Le/s/a/a$b;->e:I

    iget v1, p0, Le/s/a/a$b;->d:I

    sub-int/2addr v0, v1

    add-int/lit8 v0, v0, 0x1

    iget v1, p0, Le/s/a/a$b;->g:I

    iget v2, p0, Le/s/a/a$b;->f:I

    sub-int/2addr v1, v2

    add-int/lit8 v1, v1, 0x1

    mul-int v0, v0, v1

    iget v1, p0, Le/s/a/a$b;->i:I

    iget v2, p0, Le/s/a/a$b;->h:I

    sub-int/2addr v1, v2

    add-int/lit8 v1, v1, 0x1

    mul-int v0, v0, v1

    return v0
.end method

.method final h()Le/s/a/a$b;
    .registers 6

    invoke-virtual {p0}, Le/s/a/a$b;->a()Z

    move-result v0

    if-eqz v0, :cond_1b

    invoke-virtual {p0}, Le/s/a/a$b;->b()I

    move-result v0

    new-instance v1, Le/s/a/a$b;

    iget-object v2, p0, Le/s/a/a$b;->j:Le/s/a/a;

    add-int/lit8 v3, v0, 0x1

    iget v4, p0, Le/s/a/a$b;->b:I

    invoke-direct {v1, v2, v3, v4}, Le/s/a/a$b;-><init>(Le/s/a/a;II)V

    iput v0, p0, Le/s/a/a$b;->b:I

    invoke-virtual {p0}, Le/s/a/a$b;->c()V

    return-object v1

    :cond_1b
    new-instance v0, Ljava/lang/IllegalStateException;

    const-string v1, "Can not split a box with only 1 color"

    invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V

    throw v0
.end method