a.smali

.class public Lcom/bumptech/glide/b/a;
.super Ljava/lang/Object;
.source "GifDecoder.java"


# static fields
.field private static final Df:Landroid/graphics/Bitmap$Config;

.field private static final TAG:Ljava/lang/String;


# instance fields
.field private Dg:[I

.field public Dh:Ljava/nio/ByteBuffer;

.field private Di:[S

.field private Dj:[B

.field private Dk:[B

.field public Dl:[B

.field public Dm:[I

.field public Dn:I

.field public Do:Lcom/bumptech/glide/b/d;

.field public Dp:Lcom/bumptech/glide/b/b;

.field public Dq:Landroid/graphics/Bitmap;

.field private Dr:Z

.field private final block:[B

.field private status:I


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

    .prologue
    .line 57
    const-class v0, Lcom/bumptech/glide/b/a;

    invoke-virtual {v0}, Ljava/lang/Class;->getSimpleName()Ljava/lang/String;

    move-result-object v0

    sput-object v0, Lcom/bumptech/glide/b/a;->TAG:Ljava/lang/String;

    .line 104
    sget-object v0, Landroid/graphics/Bitmap$Config;->ARGB_8888:Landroid/graphics/Bitmap$Config;

    sput-object v0, Lcom/bumptech/glide/b/a;->Df:Landroid/graphics/Bitmap$Config;

    return-void
.end method

.method public constructor <init>(Lcom/bumptech/glide/b/b;)V
    .registers 3

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

    .line 114
    const/16 v0, 0x100

    new-array v0, v0, [B

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

    .line 155
    iput-object p1, p0, Lcom/bumptech/glide/b/a;->Dp:Lcom/bumptech/glide/b/b;

    .line 156
    new-instance v0, Lcom/bumptech/glide/b/d;

    invoke-direct {v0}, Lcom/bumptech/glide/b/d;-><init>()V

    iput-object v0, p0, Lcom/bumptech/glide/b/a;->Do:Lcom/bumptech/glide/b/d;

    .line 157
    return-void
.end method

.method private a(Lcom/bumptech/glide/b/c;Lcom/bumptech/glide/b/c;)Landroid/graphics/Bitmap;
    .registers 28

    .prologue
    .line 427
    move-object/from16 v0, p0

    iget-object v1, v0, Lcom/bumptech/glide/b/a;->Do:Lcom/bumptech/glide/b/d;

    iget v4, v1, Lcom/bumptech/glide/b/d;->width:I

    .line 428
    move-object/from16 v0, p0

    iget-object v1, v0, Lcom/bumptech/glide/b/a;->Do:Lcom/bumptech/glide/b/d;

    iget v8, v1, Lcom/bumptech/glide/b/d;->height:I

    .line 431
    move-object/from16 v0, p0

    iget-object v2, v0, Lcom/bumptech/glide/b/a;->Dm:[I

    .line 434
    if-eqz p2, :cond_2f

    move-object/from16 v0, p2

    iget v1, v0, Lcom/bumptech/glide/b/c;->Dy:I

    if-lez v1, :cond_2f

    .line 437
    move-object/from16 v0, p2

    iget v1, v0, Lcom/bumptech/glide/b/c;->Dy:I

    const/4 v3, 0x2

    if-ne v1, v3, :cond_b0

    .line 439
    const/4 v1, 0x0

    .line 440
    move-object/from16 v0, p1

    iget-boolean v3, v0, Lcom/bumptech/glide/b/c;->Dx:Z

    if-nez v3, :cond_2c

    .line 441
    move-object/from16 v0, p0

    iget-object v1, v0, Lcom/bumptech/glide/b/a;->Do:Lcom/bumptech/glide/b/d;

    iget v1, v1, Lcom/bumptech/glide/b/d;->bgColor:I

    .line 443
    :cond_2c
    invoke-static {v2, v1}, Ljava/util/Arrays;->fill([II)V

    .line 1525
    :cond_2f
    :goto_2f
    if-eqz p1, :cond_3c

    .line 1527
    move-object/from16 v0, p0

    iget-object v1, v0, Lcom/bumptech/glide/b/a;->Dh:Ljava/nio/ByteBuffer;

    move-object/from16 v0, p1

    iget v3, v0, Lcom/bumptech/glide/b/c;->DA:I

    invoke-virtual {v1, v3}, Ljava/nio/ByteBuffer;->position(I)Ljava/nio/Buffer;

    .line 1530
    :cond_3c
    if-nez p1, :cond_ca

    move-object/from16 v0, p0

    iget-object v1, v0, Lcom/bumptech/glide/b/a;->Do:Lcom/bumptech/glide/b/d;

    iget v1, v1, Lcom/bumptech/glide/b/d;->width:I

    move-object/from16 v0, p0

    iget-object v3, v0, Lcom/bumptech/glide/b/a;->Do:Lcom/bumptech/glide/b/d;

    iget v3, v3, Lcom/bumptech/glide/b/d;->height:I

    mul-int/2addr v1, v3

    .line 1534
    :goto_4b
    move-object/from16 v0, p0

    iget-object v3, v0, Lcom/bumptech/glide/b/a;->Dl:[B

    if-eqz v3, :cond_58

    move-object/from16 v0, p0

    iget-object v3, v0, Lcom/bumptech/glide/b/a;->Dl:[B

    array-length v3, v3

    if-ge v3, v1, :cond_5e

    .line 1536
    :cond_58
    new-array v3, v1, [B

    move-object/from16 v0, p0

    iput-object v3, v0, Lcom/bumptech/glide/b/a;->Dl:[B

    .line 1538
    :cond_5e
    move-object/from16 v0, p0

    iget-object v3, v0, Lcom/bumptech/glide/b/a;->Di:[S

    if-nez v3, :cond_6c

    .line 1539
    const/16 v3, 0x1000

    new-array v3, v3, [S

    move-object/from16 v0, p0

    iput-object v3, v0, Lcom/bumptech/glide/b/a;->Di:[S

    .line 1541
    :cond_6c
    move-object/from16 v0, p0

    iget-object v3, v0, Lcom/bumptech/glide/b/a;->Dj:[B

    if-nez v3, :cond_7a

    .line 1542
    const/16 v3, 0x1000

    new-array v3, v3, [B

    move-object/from16 v0, p0

    iput-object v3, v0, Lcom/bumptech/glide/b/a;->Dj:[B

    .line 1544
    :cond_7a
    move-object/from16 v0, p0

    iget-object v3, v0, Lcom/bumptech/glide/b/a;->Dk:[B

    if-nez v3, :cond_88

    .line 1545
    const/16 v3, 0x1001

    new-array v3, v3, [B

    move-object/from16 v0, p0

    iput-object v3, v0, Lcom/bumptech/glide/b/a;->Dk:[B

    .line 1549
    :cond_88
    invoke-direct/range {p0 .. p0}, Lcom/bumptech/glide/b/a;->read()I

    move-result v19

    .line 1550
    const/4 v3, 0x1

    shl-int v20, v3, v19

    .line 1551
    add-int/lit8 v21, v20, 0x1

    .line 1552
    add-int/lit8 v6, v20, 0x2

    .line 1553
    const/4 v13, -0x1

    .line 1554
    add-int/lit8 v3, v19, 0x1

    .line 1555
    const/4 v5, 0x1

    shl-int/2addr v5, v3

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

    .line 1556
    const/4 v7, 0x0

    :goto_9b
    move/from16 v0, v20

    if-ge v7, v0, :cond_d5

    .line 1558
    move-object/from16 v0, p0

    iget-object v9, v0, Lcom/bumptech/glide/b/a;->Di:[S

    const/4 v10, 0x0

    aput-short v10, v9, v7

    .line 1559
    move-object/from16 v0, p0

    iget-object v9, v0, Lcom/bumptech/glide/b/a;->Dj:[B

    int-to-byte v10, v7

    aput-byte v10, v9, v7

    .line 1556
    add-int/lit8 v7, v7, 0x1

    goto :goto_9b

    .line 444
    :cond_b0
    move-object/from16 v0, p2

    iget v1, v0, Lcom/bumptech/glide/b/c;->Dy:I

    const/4 v3, 0x3

    if-ne v1, v3, :cond_2f

    move-object/from16 v0, p0

    iget-object v1, v0, Lcom/bumptech/glide/b/a;->Dq:Landroid/graphics/Bitmap;

    if-eqz v1, :cond_2f

    .line 446
    move-object/from16 v0, p0

    iget-object v1, v0, Lcom/bumptech/glide/b/a;->Dq:Landroid/graphics/Bitmap;

    const/4 v3, 0x0

    const/4 v5, 0x0

    const/4 v6, 0x0

    move v7, v4

    invoke-virtual/range {v1 .. v8}, Landroid/graphics/Bitmap;->getPixels([IIIIIII)V

    goto/16 :goto_2f

    .line 1530
    :cond_ca
    move-object/from16 v0, p1

    iget v1, v0, Lcom/bumptech/glide/b/c;->Du:I

    move-object/from16 v0, p1

    iget v3, v0, Lcom/bumptech/glide/b/c;->Dv:I

    mul-int/2addr v1, v3

    goto/16 :goto_4b

    .line 1563
    :cond_d5
    const/4 v7, 0x0

    .line 1564
    const/4 v10, 0x0

    move v11, v7

    move v14, v7

    move v9, v7

    move v12, v3

    move v15, v5

    move/from16 v16, v6

    move v3, v7

    move v5, v7

    move v6, v7

    :goto_e1
    if-ge v10, v1, :cond_f0

    .line 1566
    if-nez v5, :cond_fe

    .line 1568
    invoke-direct/range {p0 .. p0}, Lcom/bumptech/glide/b/a;->du()I

    move-result v5

    .line 1569
    if-gtz v5, :cond_fd

    .line 1570
    const/4 v3, 0x3

    move-object/from16 v0, p0

    iput v3, v0, Lcom/bumptech/glide/b/a;->status:I

    :cond_f0
    move v3, v6

    .line 1646
    :goto_f1
    if-ge v3, v1, :cond_1e7

    .line 1647
    move-object/from16 v0, p0

    iget-object v5, v0, Lcom/bumptech/glide/b/a;->Dl:[B

    const/4 v6, 0x0

    aput-byte v6, v5, v3

    .line 1646
    add-int/lit8 v3, v3, 0x1

    goto :goto_f1

    .line 1573
    :cond_fd
    const/4 v3, 0x0

    .line 1576
    :cond_fe
    move-object/from16 v0, p0

    iget-object v0, v0, Lcom/bumptech/glide/b/a;->block:[B

    move-object/from16 v17, v0

    aget-byte v17, v17, v3

    move/from16 v0, v17

    and-int/lit16 v0, v0, 0xff

    move/from16 v17, v0

    shl-int v17, v17, v9

    add-int v7, v7, v17

    .line 1577
    add-int/lit8 v9, v9, 0x8

    .line 1578
    add-int/lit8 v17, v3, 0x1

    .line 1579
    add-int/lit8 v18, v5, -0x1

    move v3, v12

    move v5, v15

    move v12, v14

    move/from16 v24, v9

    move v9, v7

    move v7, v6

    move/from16 v6, v16

    move/from16 v16, v24

    .line 1581
    :goto_121
    move/from16 v0, v16

    if-lt v0, v3, :cond_2b7

    .line 1583
    and-int v14, v9, v5

    .line 1584
    shr-int v15, v9, v3

    .line 1585
    sub-int v16, v16, v3

    .line 1588
    move/from16 v0, v20

    if-ne v14, v0, :cond_13b

    .line 1590
    add-int/lit8 v3, v19, 0x1

    .line 1591
    const/4 v5, 0x1

    shl-int/2addr v5, v3

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

    .line 1592
    add-int/lit8 v6, v20, 0x2

    .line 1593
    const/4 v14, -0x1

    move v9, v15

    move v13, v14

    .line 1594
    goto :goto_121

    .line 1597
    :cond_13b
    if-le v14, v6, :cond_150

    .line 1598
    const/4 v9, 0x3

    move-object/from16 v0, p0

    iput v9, v0, Lcom/bumptech/glide/b/a;->status:I

    move v14, v12

    move/from16 v9, v16

    move v12, v3

    move/from16 v16, v6

    move/from16 v3, v17

    move v6, v7

    move v7, v15

    move v15, v5

    move/from16 v5, v18

    .line 1599
    goto :goto_e1

    .line 1602
    :cond_150
    move/from16 v0, v21

    if-eq v14, v0, :cond_2a8

    .line 1606
    const/4 v9, -0x1

    if-ne v13, v9, :cond_16a

    .line 1607
    move-object/from16 v0, p0

    iget-object v12, v0, Lcom/bumptech/glide/b/a;->Dk:[B

    add-int/lit8 v9, v11, 0x1

    move-object/from16 v0, p0

    iget-object v13, v0, Lcom/bumptech/glide/b/a;->Dj:[B

    aget-byte v13, v13, v14

    aput-byte v13, v12, v11

    move v11, v9

    move v12, v14

    move v13, v14

    move v9, v15

    .line 1610
    goto :goto_121

    .line 1613
    :cond_16a
    if-lt v14, v6, :cond_2a5

    .line 1614
    move-object/from16 v0, p0

    iget-object v0, v0, Lcom/bumptech/glide/b/a;->Dk:[B

    move-object/from16 v22, v0

    add-int/lit8 v9, v11, 0x1

    int-to-byte v12, v12

    aput-byte v12, v22, v11

    move v11, v9

    move v12, v13

    .line 1617
    :goto_179
    move/from16 v0, v20

    if-lt v12, v0, :cond_198

    .line 1618
    move-object/from16 v0, p0

    iget-object v0, v0, Lcom/bumptech/glide/b/a;->Dk:[B

    move-object/from16 v22, v0

    add-int/lit8 v9, v11, 0x1

    move-object/from16 v0, p0

    iget-object v0, v0, Lcom/bumptech/glide/b/a;->Dj:[B

    move-object/from16 v23, v0

    aget-byte v23, v23, v12

    aput-byte v23, v22, v11

    .line 1619
    move-object/from16 v0, p0

    iget-object v11, v0, Lcom/bumptech/glide/b/a;->Di:[S

    aget-short v11, v11, v12

    move v12, v11

    move v11, v9

    goto :goto_179

    .line 1621
    :cond_198
    move-object/from16 v0, p0

    iget-object v9, v0, Lcom/bumptech/glide/b/a;->Dj:[B

    aget-byte v9, v9, v12

    and-int/lit16 v12, v9, 0xff

    .line 1622
    move-object/from16 v0, p0

    iget-object v0, v0, Lcom/bumptech/glide/b/a;->Dk:[B

    move-object/from16 v22, v0

    add-int/lit8 v9, v11, 0x1

    int-to-byte v0, v12

    move/from16 v23, v0

    aput-byte v23, v22, v11

    .line 1625
    const/16 v11, 0x1000

    if-ge v6, v11, :cond_1cc

    .line 1626
    move-object/from16 v0, p0

    iget-object v11, v0, Lcom/bumptech/glide/b/a;->Di:[S

    int-to-short v13, v13

    aput-short v13, v11, v6

    .line 1627
    move-object/from16 v0, p0

    iget-object v11, v0, Lcom/bumptech/glide/b/a;->Dj:[B

    int-to-byte v13, v12

    aput-byte v13, v11, v6

    .line 1628
    add-int/lit8 v6, v6, 0x1

    .line 1629
    and-int v11, v6, v5

    if-nez v11, :cond_1cc

    const/16 v11, 0x1000

    if-ge v6, v11, :cond_1cc

    .line 1630
    add-int/lit8 v3, v3, 0x1

    .line 1631
    add-int/2addr v5, v6

    :cond_1cc
    move v11, v10

    .line 1636
    :goto_1cd
    if-lez v9, :cond_29f

    .line 1638
    add-int/lit8 v10, v9, -0x1

    .line 1639
    move-object/from16 v0, p0

    iget-object v13, v0, Lcom/bumptech/glide/b/a;->Dl:[B

    add-int/lit8 v9, v7, 0x1

    move-object/from16 v0, p0

    iget-object v0, v0, Lcom/bumptech/glide/b/a;->Dk:[B

    move-object/from16 v22, v0

    aget-byte v22, v22, v10

    aput-byte v22, v13, v7

    .line 1640
    add-int/lit8 v7, v11, 0x1

    move v11, v7

    move v7, v9

    move v9, v10

    goto :goto_1cd

    .line 454
    :cond_1e7
    const/4 v6, 0x1

    .line 455
    const/16 v5, 0x8

    .line 456
    const/4 v3, 0x0

    .line 457
    const/4 v1, 0x0

    :goto_1ec
    move-object/from16 v0, p1

    iget v7, v0, Lcom/bumptech/glide/b/c;->Dv:I

    if-ge v1, v7, :cond_264

    .line 459
    move-object/from16 v0, p1

    iget-boolean v7, v0, Lcom/bumptech/glide/b/c;->Dw:Z

    if-eqz v7, :cond_29c

    .line 460
    move-object/from16 v0, p1

    iget v7, v0, Lcom/bumptech/glide/b/c;->Dv:I

    if-lt v3, v7, :cond_203

    .line 461
    add-int/lit8 v6, v6, 0x1

    .line 462
    packed-switch v6, :pswitch_data_2c8

    .line 479
    :cond_203
    :goto_203
    add-int v7, v3, v5

    move/from16 v24, v3

    move v3, v7

    move/from16 v7, v24

    .line 481
    :goto_20a
    move-object/from16 v0, p1

    iget v9, v0, Lcom/bumptech/glide/b/c;->Dt:I

    add-int/2addr v7, v9

    .line 482
    move-object/from16 v0, p0

    iget-object v9, v0, Lcom/bumptech/glide/b/a;->Do:Lcom/bumptech/glide/b/d;

    iget v9, v9, Lcom/bumptech/glide/b/d;->height:I

    if-ge v7, v9, :cond_261

    .line 483
    move-object/from16 v0, p0

    iget-object v9, v0, Lcom/bumptech/glide/b/a;->Do:Lcom/bumptech/glide/b/d;

    iget v9, v9, Lcom/bumptech/glide/b/d;->width:I

    mul-int v10, v7, v9

    .line 485
    move-object/from16 v0, p1

    iget v7, v0, Lcom/bumptech/glide/b/c;->Ds:I

    add-int v9, v10, v7

    .line 487
    move-object/from16 v0, p1

    iget v7, v0, Lcom/bumptech/glide/b/c;->Du:I

    add-int/2addr v7, v9

    .line 488
    move-object/from16 v0, p0

    iget-object v11, v0, Lcom/bumptech/glide/b/a;->Do:Lcom/bumptech/glide/b/d;

    iget v11, v11, Lcom/bumptech/glide/b/d;->width:I

    add-int/2addr v11, v10

    if-ge v11, v7, :cond_23a

    .line 490
    move-object/from16 v0, p0

    iget-object v7, v0, Lcom/bumptech/glide/b/a;->Do:Lcom/bumptech/glide/b/d;

    iget v7, v7, Lcom/bumptech/glide/b/d;->width:I

    add-int/2addr v7, v10

    .line 493
    :cond_23a
    move-object/from16 v0, p1

    iget v10, v0, Lcom/bumptech/glide/b/c;->Du:I

    mul-int/2addr v10, v1

    .line 494
    :goto_23f
    if-ge v9, v7, :cond_261

    .line 496
    move-object/from16 v0, p0

    iget-object v12, v0, Lcom/bumptech/glide/b/a;->Dl:[B

    add-int/lit8 v11, v10, 0x1

    aget-byte v10, v12, v10

    and-int/lit16 v10, v10, 0xff

    .line 497
    move-object/from16 v0, p0

    iget-object v12, v0, Lcom/bumptech/glide/b/a;->Dg:[I

    aget v10, v12, v10

    .line 498
    if-eqz v10, :cond_255

    .line 499
    aput v10, v2, v9

    .line 501
    :cond_255
    add-int/lit8 v9, v9, 0x1

    move v10, v11

    .line 502
    goto :goto_23f

    .line 464
    :pswitch_259
    const/4 v3, 0x4

    .line 465
    goto :goto_203

    .line 467
    :pswitch_25b
    const/4 v3, 0x2

    .line 468
    const/4 v5, 0x4

    .line 469
    goto :goto_203

    .line 471
    :pswitch_25e
    const/4 v3, 0x1

    .line 472
    const/4 v5, 0x2

    goto :goto_203

    .line 457
    :cond_261
    add-int/lit8 v1, v1, 0x1

    goto :goto_1ec

    .line 507
    :cond_264
    move-object/from16 v0, p0

    iget-boolean v1, v0, Lcom/bumptech/glide/b/a;->Dr:Z

    if-eqz v1, :cond_290

    move-object/from16 v0, p1

    iget v1, v0, Lcom/bumptech/glide/b/c;->Dy:I

    if-eqz v1, :cond_277

    move-object/from16 v0, p1

    iget v1, v0, Lcom/bumptech/glide/b/c;->Dy:I

    const/4 v3, 0x1

    if-ne v1, v3, :cond_290

    .line 509
    :cond_277
    move-object/from16 v0, p0

    iget-object v1, v0, Lcom/bumptech/glide/b/a;->Dq:Landroid/graphics/Bitmap;

    if-nez v1, :cond_285

    .line 510
    invoke-direct/range {p0 .. p0}, Lcom/bumptech/glide/b/a;->dv()Landroid/graphics/Bitmap;

    move-result-object v1

    move-object/from16 v0, p0

    iput-object v1, v0, Lcom/bumptech/glide/b/a;->Dq:Landroid/graphics/Bitmap;

    .line 512
    :cond_285
    move-object/from16 v0, p0

    iget-object v1, v0, Lcom/bumptech/glide/b/a;->Dq:Landroid/graphics/Bitmap;

    const/4 v3, 0x0

    const/4 v5, 0x0

    const/4 v6, 0x0

    move v7, v4

    invoke-virtual/range {v1 .. v8}, Landroid/graphics/Bitmap;->setPixels([IIIIIII)V

    .line 516
    :cond_290
    invoke-direct/range {p0 .. p0}, Lcom/bumptech/glide/b/a;->dv()Landroid/graphics/Bitmap;

    move-result-object v1

    .line 517
    const/4 v3, 0x0

    const/4 v5, 0x0

    const/4 v6, 0x0

    move v7, v4

    invoke-virtual/range {v1 .. v8}, Landroid/graphics/Bitmap;->setPixels([IIIIIII)V

    .line 518
    return-object v1

    :cond_29c
    move v7, v1

    goto/16 :goto_20a

    :cond_29f
    move v10, v11

    move v13, v14

    move v11, v9

    move v9, v15

    goto/16 :goto_121

    :cond_2a5
    move v12, v14

    goto/16 :goto_179

    :cond_2a8
    move v14, v12

    move/from16 v9, v16

    move v12, v3

    move/from16 v16, v6

    move/from16 v3, v17

    move v6, v7

    move v7, v15

    move v15, v5

    move/from16 v5, v18

    goto/16 :goto_e1

    :cond_2b7
    move v14, v12

    move v15, v5

    move/from16 v5, v18

    move v12, v3

    move/from16 v3, v17

    move/from16 v24, v16

    move/from16 v16, v6

    move v6, v7

    move v7, v9

    move/from16 v9, v24

    goto/16 :goto_e1

    .line 462
    :pswitch_data_2c8
    .packed-switch 0x2
        :pswitch_259
        :pswitch_25b
        :pswitch_25e
    .end packed-switch
.end method

.method private du()I
    .registers 6

    .prologue
    .line 670
    invoke-direct {p0}, Lcom/bumptech/glide/b/a;->read()I

    move-result v1

    .line 671
    const/4 v0, 0x0

    .line 672
    if-lez v1, :cond_18

    .line 675
    :goto_7
    if-ge v0, v1, :cond_18

    .line 676
    sub-int v2, v1, v0

    .line 677
    :try_start_b
    iget-object v3, p0, Lcom/bumptech/glide/b/a;->Dh:Ljava/nio/ByteBuffer;

    iget-object v4, p0, Lcom/bumptech/glide/b/a;->block:[B

    invoke-virtual {v3, v4, v0, v2}, Ljava/nio/ByteBuffer;->get([BII)Ljava/nio/ByteBuffer;
    :try_end_12
    .catch Ljava/lang/Exception; {:try_start_b .. :try_end_12} :catch_14

    .line 679
    add-int/2addr v0, v2

    goto :goto_7

    .line 683
    :catch_14
    move-exception v1

    const/4 v1, 0x1

    iput v1, p0, Lcom/bumptech/glide/b/a;->status:I

    .line 686
    :cond_18
    return v0
.end method

.method private dv()Landroid/graphics/Bitmap;
    .registers 5

    .prologue
    .line 690
    iget-object v0, p0, Lcom/bumptech/glide/b/a;->Dp:Lcom/bumptech/glide/b/b;

    iget-object v1, p0, Lcom/bumptech/glide/b/a;->Do:Lcom/bumptech/glide/b/d;

    iget v1, v1, Lcom/bumptech/glide/b/d;->width:I

    iget-object v2, p0, Lcom/bumptech/glide/b/a;->Do:Lcom/bumptech/glide/b/d;

    iget v2, v2, Lcom/bumptech/glide/b/d;->height:I

    sget-object v3, Lcom/bumptech/glide/b/a;->Df:Landroid/graphics/Bitmap$Config;

    invoke-interface {v0, v1, v2, v3}, Lcom/bumptech/glide/b/b;->a(IILandroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap;

    move-result-object v0

    .line 691
    if-nez v0, :cond_20

    .line 692
    iget-object v0, p0, Lcom/bumptech/glide/b/a;->Do:Lcom/bumptech/glide/b/d;

    iget v0, v0, Lcom/bumptech/glide/b/d;->width:I

    iget-object v1, p0, Lcom/bumptech/glide/b/a;->Do:Lcom/bumptech/glide/b/d;

    iget v1, v1, Lcom/bumptech/glide/b/d;->height:I

    sget-object v2, Lcom/bumptech/glide/b/a;->Df:Landroid/graphics/Bitmap$Config;

    invoke-static {v0, v1, v2}, Landroid/graphics/Bitmap;->createBitmap(IILandroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap;

    move-result-object v0

    .line 1700
    :cond_20
    sget v1, Landroid/os/Build$VERSION;->SDK_INT:I

    const/16 v2, 0xc

    if-lt v1, v2, :cond_2a

    .line 1701
    const/4 v1, 0x1

    invoke-virtual {v0, v1}, Landroid/graphics/Bitmap;->setHasAlpha(Z)V

    .line 695
    :cond_2a
    return-object v0
.end method

.method private read()I
    .registers 3

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

    .line 657
    :try_start_1
    iget-object v1, p0, Lcom/bumptech/glide/b/a;->Dh:Ljava/nio/ByteBuffer;

    invoke-virtual {v1}, Ljava/nio/ByteBuffer;->get()B
    :try_end_6
    .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_6} :catch_a

    move-result v0

    and-int/lit16 v0, v0, 0xff

    .line 661
    :goto_9
    return v0

    .line 659
    :catch_a
    move-exception v1

    const/4 v1, 0x1

    iput v1, p0, Lcom/bumptech/glide/b/a;->status:I

    goto :goto_9
.end method


# virtual methods
.method public final a(Lcom/bumptech/glide/b/d;[B)V
    .registers 6

    .prologue
    const/4 v2, 0x0

    .line 359
    iput-object p1, p0, Lcom/bumptech/glide/b/a;->Do:Lcom/bumptech/glide/b/d;

    .line 361
    iput v2, p0, Lcom/bumptech/glide/b/a;->status:I

    .line 362
    const/4 v0, -0x1

    iput v0, p0, Lcom/bumptech/glide/b/a;->Dn:I

    .line 364
    invoke-static {p2}, Ljava/nio/ByteBuffer;->wrap([B)Ljava/nio/ByteBuffer;

    move-result-object v0

    iput-object v0, p0, Lcom/bumptech/glide/b/a;->Dh:Ljava/nio/ByteBuffer;

    .line 365
    iget-object v0, p0, Lcom/bumptech/glide/b/a;->Dh:Ljava/nio/ByteBuffer;

    invoke-virtual {v0}, Ljava/nio/ByteBuffer;->rewind()Ljava/nio/Buffer;

    .line 366
    iget-object v0, p0, Lcom/bumptech/glide/b/a;->Dh:Ljava/nio/ByteBuffer;

    sget-object v1, Ljava/nio/ByteOrder;->LITTLE_ENDIAN:Ljava/nio/ByteOrder;

    invoke-virtual {v0, v1}, Ljava/nio/ByteBuffer;->order(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer;

    .line 370
    iput-boolean v2, p0, Lcom/bumptech/glide/b/a;->Dr:Z

    .line 371
    iget-object v0, p1, Lcom/bumptech/glide/b/d;->DG:Ljava/util/List;

    invoke-interface {v0}, Ljava/util/List;->iterator()Ljava/util/Iterator;

    move-result-object v1

    :cond_22
    invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z

    move-result v0

    if-eqz v0, :cond_36

    invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Lcom/bumptech/glide/b/c;

    .line 372
    iget v0, v0, Lcom/bumptech/glide/b/c;->Dy:I

    const/4 v2, 0x3

    if-ne v0, v2, :cond_22

    .line 373
    const/4 v0, 0x1

    iput-boolean v0, p0, Lcom/bumptech/glide/b/a;->Dr:Z

    .line 379
    :cond_36
    iget v0, p1, Lcom/bumptech/glide/b/d;->width:I

    iget v1, p1, Lcom/bumptech/glide/b/d;->height:I

    mul-int/2addr v0, v1

    new-array v0, v0, [B

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

    .line 380
    iget v0, p1, Lcom/bumptech/glide/b/d;->width:I

    iget v1, p1, Lcom/bumptech/glide/b/d;->height:I

    mul-int/2addr v0, v1

    new-array v0, v0, [I

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

    .line 381
    return-void
.end method

.method public final advance()V
    .registers 3

    .prologue
    .line 187
    iget v0, p0, Lcom/bumptech/glide/b/a;->Dn:I

    add-int/lit8 v0, v0, 0x1

    iget-object v1, p0, Lcom/bumptech/glide/b/a;->Do:Lcom/bumptech/glide/b/d;

    iget v1, v1, Lcom/bumptech/glide/b/d;->DE:I

    rem-int/2addr v0, v1

    iput v0, p0, Lcom/bumptech/glide/b/a;->Dn:I

    .line 188
    return-void
.end method

.method public final ah(I)I
    .registers 4

    .prologue
    .line 197
    const/4 v0, -0x1

    .line 198
    if-ltz p1, :cond_15

    iget-object v1, p0, Lcom/bumptech/glide/b/a;->Do:Lcom/bumptech/glide/b/d;

    iget v1, v1, Lcom/bumptech/glide/b/d;->DE:I

    if-ge p1, v1, :cond_15

    .line 199
    iget-object v0, p0, Lcom/bumptech/glide/b/a;->Do:Lcom/bumptech/glide/b/d;

    iget-object v0, v0, Lcom/bumptech/glide/b/d;->DG:Ljava/util/List;

    invoke-interface {v0, p1}, Ljava/util/List;->get(I)Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Lcom/bumptech/glide/b/c;

    iget v0, v0, Lcom/bumptech/glide/b/c;->delay:I

    .line 201
    :cond_15
    return v0
.end method

.method public final declared-synchronized dt()Landroid/graphics/Bitmap;
    .registers 8

    .prologue
    const/4 v2, 0x0

    const/4 v4, 0x1

    const/4 v3, 0x0

    .line 252
    monitor-enter p0

    :try_start_4
    iget-object v0, p0, Lcom/bumptech/glide/b/a;->Do:Lcom/bumptech/glide/b/d;

    iget v0, v0, Lcom/bumptech/glide/b/d;->DE:I

    if-lez v0, :cond_e

    iget v0, p0, Lcom/bumptech/glide/b/a;->Dn:I

    if-gez v0, :cond_34

    .line 253
    :cond_e
    sget-object v0, Lcom/bumptech/glide/b/a;->TAG:Ljava/lang/String;

    const/4 v1, 0x3

    invoke-static {v0, v1}, Landroid/util/Log;->isLoggable(Ljava/lang/String;I)Z

    move-result v0

    if-eqz v0, :cond_31

    .line 254
    new-instance v0, Ljava/lang/StringBuilder;

    const-string v1, "unable to decode frame, frameCount="

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

    iget-object v1, p0, Lcom/bumptech/glide/b/a;->Do:Lcom/bumptech/glide/b/d;

    iget v1, v1, Lcom/bumptech/glide/b/d;->DE:I

    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    move-result-object v0

    const-string v1, " framePointer="

    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v0

    iget v1, p0, Lcom/bumptech/glide/b/a;->Dn:I

    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    .line 256
    :cond_31
    const/4 v0, 0x1

    iput v0, p0, Lcom/bumptech/glide/b/a;->status:I

    .line 258
    :cond_34
    iget v0, p0, Lcom/bumptech/glide/b/a;->status:I

    if-eq v0, v4, :cond_3d

    iget v0, p0, Lcom/bumptech/glide/b/a;->status:I

    const/4 v1, 0x2

    if-ne v0, v1, :cond_55

    .line 259
    :cond_3d
    sget-object v0, Lcom/bumptech/glide/b/a;->TAG:Ljava/lang/String;

    const/4 v1, 0x3

    invoke-static {v0, v1}, Landroid/util/Log;->isLoggable(Ljava/lang/String;I)Z

    move-result v0

    if-eqz v0, :cond_52

    .line 260
    new-instance v0, Ljava/lang/StringBuilder;

    const-string v1, "Unable to decode frame, status="

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

    iget v1, p0, Lcom/bumptech/glide/b/a;->status:I

    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
    :try_end_52
    .catchall {:try_start_4 .. :try_end_52} :catchall_ac

    :cond_52
    move-object v0, v2

    .line 306
    :goto_53
    monitor-exit p0

    return-object v0

    .line 264
    :cond_55
    const/4 v0, 0x0

    :try_start_56
    iput v0, p0, Lcom/bumptech/glide/b/a;->status:I

    .line 266
    iget-object v0, p0, Lcom/bumptech/glide/b/a;->Do:Lcom/bumptech/glide/b/d;

    iget-object v0, v0, Lcom/bumptech/glide/b/d;->DG:Ljava/util/List;

    iget v1, p0, Lcom/bumptech/glide/b/a;->Dn:I

    invoke-interface {v0, v1}, Ljava/util/List;->get(I)Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Lcom/bumptech/glide/b/c;

    .line 268
    iget v1, p0, Lcom/bumptech/glide/b/a;->Dn:I

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

    .line 269
    if-ltz v1, :cond_bf

    .line 270
    iget-object v4, p0, Lcom/bumptech/glide/b/a;->Do:Lcom/bumptech/glide/b/d;

    iget-object v4, v4, Lcom/bumptech/glide/b/d;->DG:Ljava/util/List;

    invoke-interface {v4, v1}, Ljava/util/List;->get(I)Ljava/lang/Object;

    move-result-object v1

    check-cast v1, Lcom/bumptech/glide/b/c;

    move-object v4, v1

    .line 274
    :goto_75
    iget-object v1, v0, Lcom/bumptech/glide/b/c;->DB:[I

    if-nez v1, :cond_9a

    .line 275
    iget-object v1, p0, Lcom/bumptech/glide/b/a;->Do:Lcom/bumptech/glide/b/d;

    iget-object v1, v1, Lcom/bumptech/glide/b/d;->DD:[I

    iput-object v1, p0, Lcom/bumptech/glide/b/a;->Dg:[I

    .line 284
    :cond_7f
    :goto_7f
    iget-boolean v1, v0, Lcom/bumptech/glide/b/c;->Dx:Z

    if-eqz v1, :cond_91

    .line 285
    iget-object v1, p0, Lcom/bumptech/glide/b/a;->Dg:[I

    iget v3, v0, Lcom/bumptech/glide/b/c;->Dz:I

    aget v1, v1, v3

    .line 287
    iget-object v3, p0, Lcom/bumptech/glide/b/a;->Dg:[I

    iget v5, v0, Lcom/bumptech/glide/b/c;->Dz:I

    const/4 v6, 0x0

    aput v6, v3, v5

    move v3, v1

    .line 289
    :cond_91
    iget-object v1, p0, Lcom/bumptech/glide/b/a;->Dg:[I

    if-nez v1, :cond_af

    .line 294
    const/4 v0, 0x1

    iput v0, p0, Lcom/bumptech/glide/b/a;->status:I

    move-object v0, v2

    .line 295
    goto :goto_53

    .line 277
    :cond_9a
    iget-object v1, v0, Lcom/bumptech/glide/b/c;->DB:[I

    iput-object v1, p0, Lcom/bumptech/glide/b/a;->Dg:[I

    .line 278
    iget-object v1, p0, Lcom/bumptech/glide/b/a;->Do:Lcom/bumptech/glide/b/d;

    iget v1, v1, Lcom/bumptech/glide/b/d;->DJ:I

    iget v5, v0, Lcom/bumptech/glide/b/c;->Dz:I

    if-ne v1, v5, :cond_7f

    .line 279
    iget-object v1, p0, Lcom/bumptech/glide/b/a;->Do:Lcom/bumptech/glide/b/d;

    const/4 v5, 0x0

    iput v5, v1, Lcom/bumptech/glide/b/d;->bgColor:I
    :try_end_ab
    .catchall {:try_start_56 .. :try_end_ab} :catchall_ac

    goto :goto_7f

    .line 252
    :catchall_ac
    move-exception v0

    monitor-exit p0

    throw v0

    .line 299
    :cond_af
    :try_start_af
    invoke-direct {p0, v0, v4}, Lcom/bumptech/glide/b/a;->a(Lcom/bumptech/glide/b/c;Lcom/bumptech/glide/b/c;)Landroid/graphics/Bitmap;

    move-result-object v1

    .line 302
    iget-boolean v2, v0, Lcom/bumptech/glide/b/c;->Dx:Z

    if-eqz v2, :cond_bd

    .line 303
    iget-object v2, p0, Lcom/bumptech/glide/b/a;->Dg:[I

    iget v0, v0, Lcom/bumptech/glide/b/c;->Dz:I

    aput v3, v2, v0
    :try_end_bd
    .catchall {:try_start_af .. :try_end_bd} :catchall_ac

    :cond_bd
    move-object v0, v1

    .line 306
    goto :goto_53

    :cond_bf
    move-object v4, v2

    goto :goto_75
.end method