b.smali

.class final Lcom/bumptech/glide/c/b;
.super Ljava/lang/Object;
.source "LZWEncoder.java"


# instance fields
.field DZ:I

.field Ea:I

.field private Eb:[B

.field Ec:I

.field Ed:I

.field Ee:I

.field private Ef:I

.field private Eg:I

.field private Eh:I

.field private Ei:I

.field private Ej:[I

.field private Ek:[I

.field private El:I

.field private Em:I

.field private En:Z

.field private Eo:I

.field private Ep:I

.field private Eq:I

.field private Er:I

.field private Es:I

.field private Et:[I

.field private Eu:I

.field private Ev:[B


# direct methods
.method constructor <init>(II[BI)V
    .registers 8

    .prologue
    const/16 v2, 0x138b

    const/4 v1, 0x0

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

    .line 48
    const/16 v0, 0xc

    iput v0, p0, Lcom/bumptech/glide/c/b;->Eg:I

    .line 52
    const/16 v0, 0x1000

    iput v0, p0, Lcom/bumptech/glide/c/b;->Ei:I

    .line 54
    new-array v0, v2, [I

    iput-object v0, p0, Lcom/bumptech/glide/c/b;->Ej:[I

    .line 56
    new-array v0, v2, [I

    iput-object v0, p0, Lcom/bumptech/glide/c/b;->Ek:[I

    .line 58
    iput v2, p0, Lcom/bumptech/glide/c/b;->El:I

    .line 60
    iput v1, p0, Lcom/bumptech/glide/c/b;->Em:I

    .line 64
    iput-boolean v1, p0, Lcom/bumptech/glide/c/b;->En:Z

    .line 99
    iput v1, p0, Lcom/bumptech/glide/c/b;->Er:I

    .line 101
    iput v1, p0, Lcom/bumptech/glide/c/b;->Es:I

    .line 103
    const/16 v0, 0x11

    new-array v0, v0, [I

    fill-array-data v0, :array_3e

    iput-object v0, p0, Lcom/bumptech/glide/c/b;->Et:[I

    .line 110
    const/16 v0, 0x100

    new-array v0, v0, [B

    iput-object v0, p0, Lcom/bumptech/glide/c/b;->Ev:[B

    .line 114
    iput p1, p0, Lcom/bumptech/glide/c/b;->DZ:I

    .line 115
    iput p2, p0, Lcom/bumptech/glide/c/b;->Ea:I

    .line 116
    iput-object p3, p0, Lcom/bumptech/glide/c/b;->Eb:[B

    .line 117
    const/4 v0, 0x2

    invoke-static {v0, p4}, Ljava/lang/Math;->max(II)I

    move-result v0

    iput v0, p0, Lcom/bumptech/glide/c/b;->Ec:I

    .line 118
    return-void

    .line 103
    nop

    :array_3e
    .array-data 4
        0x0
        0x1
        0x3
        0x7
        0xf
        0x1f
        0x3f
        0x7f
        0xff
        0x1ff
        0x3ff
        0x7ff
        0xfff
        0x1fff
        0x3fff
        0x7fff
        0xffff
    .end array-data
.end method

.method private a(BLjava/io/OutputStream;)V
    .registers 6

    .prologue
    .line 123
    iget-object v0, p0, Lcom/bumptech/glide/c/b;->Ev:[B

    iget v1, p0, Lcom/bumptech/glide/c/b;->Eu:I

    add-int/lit8 v2, v1, 0x1

    iput v2, p0, Lcom/bumptech/glide/c/b;->Eu:I

    aput-byte p1, v0, v1

    .line 124
    iget v0, p0, Lcom/bumptech/glide/c/b;->Eu:I

    const/16 v1, 0xfe

    if-lt v0, v1, :cond_13

    .line 125
    invoke-direct {p0, p2}, Lcom/bumptech/glide/c/b;->b(Ljava/io/OutputStream;)V

    .line 126
    :cond_13
    return-void
.end method

.method private aj(I)V
    .registers 5

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

    :goto_1
    if-ge v0, p1, :cond_b

    .line 142
    iget-object v1, p0, Lcom/bumptech/glide/c/b;->Ej:[I

    const/4 v2, -0x1

    aput v2, v1, v0

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

    goto :goto_1

    .line 143
    :cond_b
    return-void
.end method

.method private b(ILjava/io/OutputStream;)V
    .registers 7

    .prologue
    const/4 v3, 0x1

    .line 256
    iget v0, p0, Lcom/bumptech/glide/c/b;->Er:I

    iget-object v1, p0, Lcom/bumptech/glide/c/b;->Et:[I

    iget v2, p0, Lcom/bumptech/glide/c/b;->Es:I

    aget v1, v1, v2

    and-int/2addr v0, v1

    iput v0, p0, Lcom/bumptech/glide/c/b;->Er:I

    .line 258
    iget v0, p0, Lcom/bumptech/glide/c/b;->Es:I

    if-lez v0, :cond_39

    .line 259
    iget v0, p0, Lcom/bumptech/glide/c/b;->Er:I

    iget v1, p0, Lcom/bumptech/glide/c/b;->Es:I

    shl-int v1, p1, v1

    or-int/2addr v0, v1

    iput v0, p0, Lcom/bumptech/glide/c/b;->Er:I

    .line 263
    :goto_19
    iget v0, p0, Lcom/bumptech/glide/c/b;->Es:I

    iget v1, p0, Lcom/bumptech/glide/c/b;->Ef:I

    add-int/2addr v0, v1

    iput v0, p0, Lcom/bumptech/glide/c/b;->Es:I

    .line 265
    :goto_20
    iget v0, p0, Lcom/bumptech/glide/c/b;->Es:I

    const/16 v1, 0x8

    if-lt v0, v1, :cond_3c

    .line 266
    iget v0, p0, Lcom/bumptech/glide/c/b;->Er:I

    int-to-byte v0, v0

    invoke-direct {p0, v0, p2}, Lcom/bumptech/glide/c/b;->a(BLjava/io/OutputStream;)V

    .line 267
    iget v0, p0, Lcom/bumptech/glide/c/b;->Er:I

    shr-int/lit8 v0, v0, 0x8

    iput v0, p0, Lcom/bumptech/glide/c/b;->Er:I

    .line 268
    iget v0, p0, Lcom/bumptech/glide/c/b;->Es:I

    add-int/lit8 v0, v0, -0x8

    iput v0, p0, Lcom/bumptech/glide/c/b;->Es:I

    goto :goto_20

    .line 261
    :cond_39
    iput p1, p0, Lcom/bumptech/glide/c/b;->Er:I

    goto :goto_19

    .line 273
    :cond_3c
    iget v0, p0, Lcom/bumptech/glide/c/b;->Em:I

    iget v1, p0, Lcom/bumptech/glide/c/b;->Eh:I

    if-gt v0, v1, :cond_46

    iget-boolean v0, p0, Lcom/bumptech/glide/c/b;->En:Z

    if-eqz v0, :cond_57

    .line 274
    :cond_46
    iget-boolean v0, p0, Lcom/bumptech/glide/c/b;->En:Z

    if-eqz v0, :cond_72

    .line 275
    iget v0, p0, Lcom/bumptech/glide/c/b;->Eo:I

    iput v0, p0, Lcom/bumptech/glide/c/b;->Ef:I

    .line 2238
    shl-int v0, v3, v0

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

    .line 275
    iput v0, p0, Lcom/bumptech/glide/c/b;->Eh:I

    .line 276
    const/4 v0, 0x0

    iput-boolean v0, p0, Lcom/bumptech/glide/c/b;->En:Z

    .line 286
    :cond_57
    :goto_57
    iget v0, p0, Lcom/bumptech/glide/c/b;->Eq:I

    if-ne p1, v0, :cond_8f

    .line 288
    :goto_5b
    iget v0, p0, Lcom/bumptech/glide/c/b;->Es:I

    if-lez v0, :cond_8c

    .line 289
    iget v0, p0, Lcom/bumptech/glide/c/b;->Er:I

    int-to-byte v0, v0

    invoke-direct {p0, v0, p2}, Lcom/bumptech/glide/c/b;->a(BLjava/io/OutputStream;)V

    .line 290
    iget v0, p0, Lcom/bumptech/glide/c/b;->Er:I

    shr-int/lit8 v0, v0, 0x8

    iput v0, p0, Lcom/bumptech/glide/c/b;->Er:I

    .line 291
    iget v0, p0, Lcom/bumptech/glide/c/b;->Es:I

    add-int/lit8 v0, v0, -0x8

    iput v0, p0, Lcom/bumptech/glide/c/b;->Es:I

    goto :goto_5b

    .line 278
    :cond_72
    iget v0, p0, Lcom/bumptech/glide/c/b;->Ef:I

    add-int/lit8 v0, v0, 0x1

    iput v0, p0, Lcom/bumptech/glide/c/b;->Ef:I

    .line 279
    iget v0, p0, Lcom/bumptech/glide/c/b;->Ef:I

    iget v1, p0, Lcom/bumptech/glide/c/b;->Eg:I

    if-ne v0, v1, :cond_83

    .line 280
    iget v0, p0, Lcom/bumptech/glide/c/b;->Ei:I

    iput v0, p0, Lcom/bumptech/glide/c/b;->Eh:I

    goto :goto_57

    .line 282
    :cond_83
    iget v0, p0, Lcom/bumptech/glide/c/b;->Ef:I

    .line 3238
    shl-int v0, v3, v0

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

    .line 282
    iput v0, p0, Lcom/bumptech/glide/c/b;->Eh:I

    goto :goto_57

    .line 294
    :cond_8c
    invoke-direct {p0, p2}, Lcom/bumptech/glide/c/b;->b(Ljava/io/OutputStream;)V

    .line 296
    :cond_8f
    return-void
.end method

.method private b(Ljava/io/OutputStream;)V
    .registers 5

    .prologue
    const/4 v2, 0x0

    .line 230
    iget v0, p0, Lcom/bumptech/glide/c/b;->Eu:I

    if-lez v0, :cond_13

    .line 231
    iget v0, p0, Lcom/bumptech/glide/c/b;->Eu:I

    invoke-virtual {p1, v0}, Ljava/io/OutputStream;->write(I)V

    .line 232
    iget-object v0, p0, Lcom/bumptech/glide/c/b;->Ev:[B

    iget v1, p0, Lcom/bumptech/glide/c/b;->Eu:I

    invoke-virtual {p1, v0, v2, v1}, Ljava/io/OutputStream;->write([BII)V

    .line 233
    iput v2, p0, Lcom/bumptech/glide/c/b;->Eu:I

    .line 235
    :cond_13
    return-void
.end method

.method private dF()I
    .registers 4

    .prologue
    .line 245
    iget v0, p0, Lcom/bumptech/glide/c/b;->Ed:I

    if-nez v0, :cond_6

    .line 246
    const/4 v0, -0x1

    .line 252
    :goto_5
    return v0

    .line 248
    :cond_6
    iget v0, p0, Lcom/bumptech/glide/c/b;->Ed:I

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

    iput v0, p0, Lcom/bumptech/glide/c/b;->Ed:I

    .line 250
    iget-object v0, p0, Lcom/bumptech/glide/c/b;->Eb:[B

    iget v1, p0, Lcom/bumptech/glide/c/b;->Ee:I

    add-int/lit8 v2, v1, 0x1

    iput v2, p0, Lcom/bumptech/glide/c/b;->Ee:I

    aget-byte v0, v0, v1

    .line 252
    and-int/lit16 v0, v0, 0xff

    goto :goto_5
.end method


# virtual methods
.method final a(ILjava/io/OutputStream;)V
    .registers 12

    .prologue
    const/4 v1, 0x0

    const/4 v4, 0x1

    .line 155
    iput p1, p0, Lcom/bumptech/glide/c/b;->Eo:I

    .line 158
    iput-boolean v1, p0, Lcom/bumptech/glide/c/b;->En:Z

    .line 159
    iget v0, p0, Lcom/bumptech/glide/c/b;->Eo:I

    iput v0, p0, Lcom/bumptech/glide/c/b;->Ef:I

    .line 160
    iget v0, p0, Lcom/bumptech/glide/c/b;->Ef:I

    .line 1238
    shl-int v0, v4, v0

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

    .line 160
    iput v0, p0, Lcom/bumptech/glide/c/b;->Eh:I

    .line 162
    add-int/lit8 v0, p1, -0x1

    shl-int v0, v4, v0

    iput v0, p0, Lcom/bumptech/glide/c/b;->Ep:I

    .line 163
    iget v0, p0, Lcom/bumptech/glide/c/b;->Ep:I

    add-int/lit8 v0, v0, 0x1

    iput v0, p0, Lcom/bumptech/glide/c/b;->Eq:I

    .line 164
    iget v0, p0, Lcom/bumptech/glide/c/b;->Ep:I

    add-int/lit8 v0, v0, 0x2

    iput v0, p0, Lcom/bumptech/glide/c/b;->Em:I

    .line 166
    iput v1, p0, Lcom/bumptech/glide/c/b;->Eu:I

    .line 168
    invoke-direct {p0}, Lcom/bumptech/glide/c/b;->dF()I

    move-result v0

    .line 171
    iget v2, p0, Lcom/bumptech/glide/c/b;->El:I

    :goto_2c
    const/high16 v3, 0x10000

    if-ge v2, v3, :cond_35

    .line 172
    add-int/lit8 v1, v1, 0x1

    .line 171
    shl-int/lit8 v2, v2, 0x1

    goto :goto_2c

    .line 173
    :cond_35
    rsub-int/lit8 v5, v1, 0x8

    .line 175
    iget v6, p0, Lcom/bumptech/glide/c/b;->El:I

    .line 176
    invoke-direct {p0, v6}, Lcom/bumptech/glide/c/b;->aj(I)V

    .line 178
    iget v1, p0, Lcom/bumptech/glide/c/b;->Ep:I

    invoke-direct {p0, v1, p2}, Lcom/bumptech/glide/c/b;->b(ILjava/io/OutputStream;)V

    move v1, v0

    .line 181
    :goto_42
    invoke-direct {p0}, Lcom/bumptech/glide/c/b;->dF()I

    move-result v2

    const/4 v0, -0x1

    if-eq v2, v0, :cond_ac

    .line 182
    iget v0, p0, Lcom/bumptech/glide/c/b;->Eg:I

    shl-int v0, v2, v0

    add-int v7, v0, v1

    .line 183
    shl-int v0, v2, v5

    xor-int/2addr v0, v1

    .line 185
    iget-object v3, p0, Lcom/bumptech/glide/c/b;->Ej:[I

    aget v3, v3, v0

    if-ne v3, v7, :cond_5e

    .line 186
    iget-object v1, p0, Lcom/bumptech/glide/c/b;->Ek:[I

    aget v0, v1, v0

    move v1, v0

    .line 187
    goto :goto_42

    .line 188
    :cond_5e
    iget-object v3, p0, Lcom/bumptech/glide/c/b;->Ej:[I

    aget v3, v3, v0

    if-ltz v3, :cond_7f

    .line 190
    sub-int v3, v6, v0

    .line 191
    if-nez v0, :cond_69

    move v3, v4

    .line 194
    :cond_69
    sub-int/2addr v0, v3

    if-gez v0, :cond_6d

    .line 195
    add-int/2addr v0, v6

    .line 197
    :cond_6d
    iget-object v8, p0, Lcom/bumptech/glide/c/b;->Ej:[I

    aget v8, v8, v0

    if-ne v8, v7, :cond_79

    .line 198
    iget-object v1, p0, Lcom/bumptech/glide/c/b;->Ek:[I

    aget v0, v1, v0

    move v1, v0

    .line 199
    goto :goto_42

    .line 201
    :cond_79
    iget-object v8, p0, Lcom/bumptech/glide/c/b;->Ej:[I

    aget v8, v8, v0

    if-gez v8, :cond_69

    .line 203
    :cond_7f
    invoke-direct {p0, v1, p2}, Lcom/bumptech/glide/c/b;->b(ILjava/io/OutputStream;)V

    .line 205
    iget v1, p0, Lcom/bumptech/glide/c/b;->Em:I

    iget v3, p0, Lcom/bumptech/glide/c/b;->Ei:I

    if-ge v1, v3, :cond_98

    .line 206
    iget-object v1, p0, Lcom/bumptech/glide/c/b;->Ek:[I

    iget v3, p0, Lcom/bumptech/glide/c/b;->Em:I

    add-int/lit8 v8, v3, 0x1

    iput v8, p0, Lcom/bumptech/glide/c/b;->Em:I

    aput v3, v1, v0

    .line 207
    iget-object v1, p0, Lcom/bumptech/glide/c/b;->Ej:[I

    aput v7, v1, v0

    move v1, v2

    goto :goto_42

    .line 2132
    :cond_98
    iget v0, p0, Lcom/bumptech/glide/c/b;->El:I

    invoke-direct {p0, v0}, Lcom/bumptech/glide/c/b;->aj(I)V

    .line 2133
    iget v0, p0, Lcom/bumptech/glide/c/b;->Ep:I

    add-int/lit8 v0, v0, 0x2

    iput v0, p0, Lcom/bumptech/glide/c/b;->Em:I

    .line 2134
    iput-boolean v4, p0, Lcom/bumptech/glide/c/b;->En:Z

    .line 2136
    iget v0, p0, Lcom/bumptech/glide/c/b;->Ep:I

    invoke-direct {p0, v0, p2}, Lcom/bumptech/glide/c/b;->b(ILjava/io/OutputStream;)V

    move v1, v2

    .line 209
    goto :goto_42

    .line 212
    :cond_ac
    invoke-direct {p0, v1, p2}, Lcom/bumptech/glide/c/b;->b(ILjava/io/OutputStream;)V

    .line 213
    iget v0, p0, Lcom/bumptech/glide/c/b;->Eq:I

    invoke-direct {p0, v0, p2}, Lcom/bumptech/glide/c/b;->b(ILjava/io/OutputStream;)V

    .line 214
    return-void
.end method