Bitmaps.smali

.class public Lim/tpelyyftgw/messenger/Bitmaps;
.super Ljava/lang/Object;
.source "Bitmaps.java"


# static fields
.field protected static footer:[B

.field protected static header:[B

.field private static final jpegData:Ljava/lang/ThreadLocal;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Ljava/lang/ThreadLocal<",
            "[B>;"
        }
    .end annotation
.end field

.field private static volatile sScaleMatrix:Landroid/graphics/Matrix;


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

    .line 19
    new-instance v0, Lim/tpelyyftgw/messenger/Bitmaps$1;

    invoke-direct {v0}, Lim/tpelyyftgw/messenger/Bitmaps$1;-><init>()V

    sput-object v0, Lim/tpelyyftgw/messenger/Bitmaps;->jpegData:Ljava/lang/ThreadLocal;

    .line 105
    const/16 v0, 0x26f

    new-array v0, v0, [B

    fill-array-data v0, :array_1a

    sput-object v0, Lim/tpelyyftgw/messenger/Bitmaps;->header:[B

    .line 197
    const/4 v0, 0x2

    new-array v0, v0, [B

    fill-array-data v0, :array_156

    sput-object v0, Lim/tpelyyftgw/messenger/Bitmaps;->footer:[B

    return-void

    nop

    :array_1a
    .array-data 1
        -0x1t
        -0x28t
        -0x1t
        -0x20t
        0x0t
        0x10t
        0x4at
        0x46t
        0x49t
        0x46t
        0x0t
        0x1t
        0x1t
        0x0t
        0x0t
        0x1t
        0x0t
        0x1t
        0x0t
        0x0t
        -0x1t
        -0x25t
        0x0t
        0x43t
        0x0t
        0x28t
        0x1ct
        0x1et
        0x23t
        0x1et
        0x19t
        0x28t
        0x23t
        0x21t
        0x23t
        0x2dt
        0x2bt
        0x28t
        0x30t
        0x3ct
        0x64t
        0x41t
        0x3ct
        0x37t
        0x37t
        0x3ct
        0x7bt
        0x58t
        0x5dt
        0x49t
        0x64t
        -0x6ft
        -0x80t
        -0x67t
        -0x6at
        -0x71t
        -0x80t
        -0x74t
        -0x76t
        -0x60t
        -0x4ct
        -0x1at
        -0x3dt
        -0x60t
        -0x56t
        -0x26t
        -0x53t
        -0x76t
        -0x74t
        -0x38t
        -0x1t
        -0x35t
        -0x26t
        -0x12t
        -0xbt
        -0x1t
        -0x1t
        -0x1t
        -0x65t
        -0x3ft
        -0x1t
        -0x1t
        -0x1t
        -0x6t
        -0x1t
        -0x1at
        -0x3t
        -0x1t
        -0x8t
        -0x1t
        -0x25t
        0x0t
        0x43t
        0x1t
        0x2bt
        0x2dt
        0x2dt
        0x3ct
        0x35t
        0x3ct
        0x76t
        0x41t
        0x41t
        0x76t
        -0x8t
        -0x5bt
        -0x74t
        -0x5bt
        -0x8t
        -0x8t
        -0x8t
        -0x8t
        -0x8t
        -0x8t
        -0x8t
        -0x8t
        -0x8t
        -0x8t
        -0x8t
        -0x8t
        -0x8t
        -0x8t
        -0x8t
        -0x8t
        -0x8t
        -0x8t
        -0x8t
        -0x8t
        -0x8t
        -0x8t
        -0x8t
        -0x8t
        -0x8t
        -0x8t
        -0x8t
        -0x8t
        -0x8t
        -0x8t
        -0x8t
        -0x8t
        -0x8t
        -0x8t
        -0x8t
        -0x8t
        -0x8t
        -0x8t
        -0x8t
        -0x8t
        -0x8t
        -0x8t
        -0x8t
        -0x8t
        -0x8t
        -0x8t
        -0x8t
        -0x8t
        -0x8t
        -0x8t
        -0x1t
        -0x40t
        0x0t
        0x11t
        0x8t
        0x0t
        0x1et
        0x0t
        0x28t
        0x3t
        0x1t
        0x22t
        0x0t
        0x2t
        0x11t
        0x1t
        0x3t
        0x11t
        0x1t
        -0x1t
        -0x3ct
        0x0t
        0x1ft
        0x0t
        0x0t
        0x1t
        0x5t
        0x1t
        0x1t
        0x1t
        0x1t
        0x1t
        0x1t
        0x0t
        0x0t
        0x0t
        0x0t
        0x0t
        0x0t
        0x0t
        0x0t
        0x1t
        0x2t
        0x3t
        0x4t
        0x5t
        0x6t
        0x7t
        0x8t
        0x9t
        0xat
        0xbt
        -0x1t
        -0x3ct
        0x0t
        -0x4bt
        0x10t
        0x0t
        0x2t
        0x1t
        0x3t
        0x3t
        0x2t
        0x4t
        0x3t
        0x5t
        0x5t
        0x4t
        0x4t
        0x0t
        0x0t
        0x1t
        0x7dt
        0x1t
        0x2t
        0x3t
        0x0t
        0x4t
        0x11t
        0x5t
        0x12t
        0x21t
        0x31t
        0x41t
        0x6t
        0x13t
        0x51t
        0x61t
        0x7t
        0x22t
        0x71t
        0x14t
        0x32t
        -0x7ft
        -0x6ft
        -0x5ft
        0x8t
        0x23t
        0x42t
        -0x4ft
        -0x3ft
        0x15t
        0x52t
        -0x2ft
        -0x10t
        0x24t
        0x33t
        0x62t
        0x72t
        -0x7et
        0x9t
        0xat
        0x16t
        0x17t
        0x18t
        0x19t
        0x1at
        0x25t
        0x26t
        0x27t
        0x28t
        0x29t
        0x2at
        0x34t
        0x35t
        0x36t
        0x37t
        0x38t
        0x39t
        0x3at
        0x43t
        0x44t
        0x45t
        0x46t
        0x47t
        0x48t
        0x49t
        0x4at
        0x53t
        0x54t
        0x55t
        0x56t
        0x57t
        0x58t
        0x59t
        0x5at
        0x63t
        0x64t
        0x65t
        0x66t
        0x67t
        0x68t
        0x69t
        0x6at
        0x73t
        0x74t
        0x75t
        0x76t
        0x77t
        0x78t
        0x79t
        0x7at
        -0x7dt
        -0x7ct
        -0x7bt
        -0x7at
        -0x79t
        -0x78t
        -0x77t
        -0x76t
        -0x6et
        -0x6dt
        -0x6ct
        -0x6bt
        -0x6at
        -0x69t
        -0x68t
        -0x67t
        -0x66t
        -0x5et
        -0x5dt
        -0x5ct
        -0x5bt
        -0x5at
        -0x59t
        -0x58t
        -0x57t
        -0x56t
        -0x4et
        -0x4dt
        -0x4ct
        -0x4bt
        -0x4at
        -0x49t
        -0x48t
        -0x47t
        -0x46t
        -0x3et
        -0x3dt
        -0x3ct
        -0x3bt
        -0x3at
        -0x39t
        -0x38t
        -0x37t
        -0x36t
        -0x2et
        -0x2dt
        -0x2ct
        -0x2bt
        -0x2at
        -0x29t
        -0x28t
        -0x27t
        -0x26t
        -0x1ft
        -0x1et
        -0x1dt
        -0x1ct
        -0x1bt
        -0x1at
        -0x19t
        -0x18t
        -0x17t
        -0x16t
        -0xft
        -0xet
        -0xdt
        -0xct
        -0xbt
        -0xat
        -0x9t
        -0x8t
        -0x7t
        -0x6t
        -0x1t
        -0x3ct
        0x0t
        0x1ft
        0x1t
        0x0t
        0x3t
        0x1t
        0x1t
        0x1t
        0x1t
        0x1t
        0x1t
        0x1t
        0x1t
        0x1t
        0x0t
        0x0t
        0x0t
        0x0t
        0x0t
        0x0t
        0x1t
        0x2t
        0x3t
        0x4t
        0x5t
        0x6t
        0x7t
        0x8t
        0x9t
        0xat
        0xbt
        -0x1t
        -0x3ct
        0x0t
        -0x4bt
        0x11t
        0x0t
        0x2t
        0x1t
        0x2t
        0x4t
        0x4t
        0x3t
        0x4t
        0x7t
        0x5t
        0x4t
        0x4t
        0x0t
        0x1t
        0x2t
        0x77t
        0x0t
        0x1t
        0x2t
        0x3t
        0x11t
        0x4t
        0x5t
        0x21t
        0x31t
        0x6t
        0x12t
        0x41t
        0x51t
        0x7t
        0x61t
        0x71t
        0x13t
        0x22t
        0x32t
        -0x7ft
        0x8t
        0x14t
        0x42t
        -0x6ft
        -0x5ft
        -0x4ft
        -0x3ft
        0x9t
        0x23t
        0x33t
        0x52t
        -0x10t
        0x15t
        0x62t
        0x72t
        -0x2ft
        0xat
        0x16t
        0x24t
        0x34t
        -0x1ft
        0x25t
        -0xft
        0x17t
        0x18t
        0x19t
        0x1at
        0x26t
        0x27t
        0x28t
        0x29t
        0x2at
        0x35t
        0x36t
        0x37t
        0x38t
        0x39t
        0x3at
        0x43t
        0x44t
        0x45t
        0x46t
        0x47t
        0x48t
        0x49t
        0x4at
        0x53t
        0x54t
        0x55t
        0x56t
        0x57t
        0x58t
        0x59t
        0x5at
        0x63t
        0x64t
        0x65t
        0x66t
        0x67t
        0x68t
        0x69t
        0x6at
        0x73t
        0x74t
        0x75t
        0x76t
        0x77t
        0x78t
        0x79t
        0x7at
        -0x7et
        -0x7dt
        -0x7ct
        -0x7bt
        -0x7at
        -0x79t
        -0x78t
        -0x77t
        -0x76t
        -0x6et
        -0x6dt
        -0x6ct
        -0x6bt
        -0x6at
        -0x69t
        -0x68t
        -0x67t
        -0x66t
        -0x5et
        -0x5dt
        -0x5ct
        -0x5bt
        -0x5at
        -0x59t
        -0x58t
        -0x57t
        -0x56t
        -0x4et
        -0x4dt
        -0x4ct
        -0x4bt
        -0x4at
        -0x49t
        -0x48t
        -0x47t
        -0x46t
        -0x3et
        -0x3dt
        -0x3ct
        -0x3bt
        -0x3at
        -0x39t
        -0x38t
        -0x37t
        -0x36t
        -0x2et
        -0x2dt
        -0x2ct
        -0x2bt
        -0x2at
        -0x29t
        -0x28t
        -0x27t
        -0x26t
        -0x1et
        -0x1dt
        -0x1ct
        -0x1bt
        -0x1at
        -0x19t
        -0x18t
        -0x17t
        -0x16t
        -0xet
        -0xdt
        -0xct
        -0xbt
        -0xat
        -0x9t
        -0x8t
        -0x7t
        -0x6t
        -0x1t
        -0x26t
        0x0t
        0xct
        0x3t
        0x1t
        0x0t
        0x2t
        0x11t
        0x3t
        0x11t
        0x0t
        0x3ft
        0x0t
    .end array-data

    :array_156
    .array-data 1
        -0x1t
        -0x27t
    .end array-data
.end method

.method public constructor <init>()V
    .registers 1

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

    return-void
.end method

.method private static checkWidthHeight(II)V
    .registers 4
    .param p0, "width"    # I
    .param p1, "height"    # I

    .line 239
    if-lez p0, :cond_d

    .line 242
    if-lez p1, :cond_5

    .line 245
    return-void

    .line 243
    :cond_5
    new-instance v0, Ljava/lang/IllegalArgumentException;

    const-string v1, "height must be > 0"

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

    throw v0

    .line 240
    :cond_d
    new-instance v0, Ljava/lang/IllegalArgumentException;

    const-string/jumbo v1, "width must be > 0"

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

    throw v0
.end method

.method private static checkXYSign(II)V
    .registers 4
    .param p0, "x"    # I
    .param p1, "y"    # I

    .line 230
    if-ltz p0, :cond_e

    .line 233
    if-ltz p1, :cond_5

    .line 236
    return-void

    .line 234
    :cond_5
    new-instance v0, Ljava/lang/IllegalArgumentException;

    const-string/jumbo v1, "y must be >= 0"

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

    throw v0

    .line 231
    :cond_e
    new-instance v0, Ljava/lang/IllegalArgumentException;

    const-string/jumbo v1, "x must be >= 0"

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

    throw v0
.end method

.method public static createBitmap(IILandroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap;
    .registers 9
    .param p0, "width"    # I
    .param p1, "height"    # I
    .param p2, "config"    # Landroid/graphics/Bitmap$Config;

    .line 204
    sget v0, Landroid/os/Build$VERSION;->SDK_INT:I

    const/4 v1, 0x0

    const/16 v2, 0x15

    if-ge v0, v2, :cond_4a

    .line 205
    new-instance v0, Landroid/graphics/BitmapFactory$Options;

    invoke-direct {v0}, Landroid/graphics/BitmapFactory$Options;-><init>()V

    .line 206
    .local v0, "options":Landroid/graphics/BitmapFactory$Options;
    const/4 v2, 0x1

    iput-boolean v2, v0, Landroid/graphics/BitmapFactory$Options;->inDither:Z

    .line 207
    iput-object p2, v0, Landroid/graphics/BitmapFactory$Options;->inPreferredConfig:Landroid/graphics/Bitmap$Config;

    .line 208
    iput-boolean v2, v0, Landroid/graphics/BitmapFactory$Options;->inPurgeable:Z

    .line 209
    iput v2, v0, Landroid/graphics/BitmapFactory$Options;->inSampleSize:I

    .line 210
    iput-boolean v2, v0, Landroid/graphics/BitmapFactory$Options;->inMutable:Z

    .line 211
    sget-object v3, Lim/tpelyyftgw/messenger/Bitmaps;->jpegData:Ljava/lang/ThreadLocal;

    invoke-virtual {v3}, Ljava/lang/ThreadLocal;->get()Ljava/lang/Object;

    move-result-object v3

    check-cast v3, [B

    .line 212
    .local v3, "array":[B
    const/16 v4, 0x4c

    shr-int/lit8 v5, p1, 0x8

    int-to-byte v5, v5

    aput-byte v5, v3, v4

    .line 213
    const/16 v4, 0x4d

    and-int/lit16 v5, p1, 0xff

    int-to-byte v5, v5

    aput-byte v5, v3, v4

    .line 214
    const/16 v4, 0x4e

    shr-int/lit8 v5, p0, 0x8

    int-to-byte v5, v5

    aput-byte v5, v3, v4

    .line 215
    const/16 v4, 0x4f

    and-int/lit16 v5, p0, 0xff

    int-to-byte v5, v5

    aput-byte v5, v3, v4

    .line 216
    array-length v4, v3

    invoke-static {v3, v1, v4, v0}, Landroid/graphics/BitmapFactory;->decodeByteArray([BIILandroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;

    move-result-object v4

    .line 217
    .local v4, "bitmap":Landroid/graphics/Bitmap;
    invoke-static {v4}, Lim/tpelyyftgw/messenger/Utilities;->pinBitmap(Landroid/graphics/Bitmap;)I

    .line 218
    invoke-virtual {v4, v2}, Landroid/graphics/Bitmap;->setHasAlpha(Z)V

    .line 219
    invoke-virtual {v4, v1}, Landroid/graphics/Bitmap;->eraseColor(I)V

    .line 220
    .end local v0    # "options":Landroid/graphics/BitmapFactory$Options;
    .end local v3    # "array":[B
    goto :goto_4e

    .line 221
    .end local v4    # "bitmap":Landroid/graphics/Bitmap;
    :cond_4a
    invoke-static {p0, p1, p2}, Landroid/graphics/Bitmap;->createBitmap(IILandroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap;

    move-result-object v4

    .line 223
    .restart local v4    # "bitmap":Landroid/graphics/Bitmap;
    :goto_4e
    sget-object v0, Landroid/graphics/Bitmap$Config;->ARGB_8888:Landroid/graphics/Bitmap$Config;

    if-eq p2, v0, :cond_56

    sget-object v0, Landroid/graphics/Bitmap$Config;->ARGB_4444:Landroid/graphics/Bitmap$Config;

    if-ne p2, v0, :cond_59

    .line 224
    :cond_56
    invoke-virtual {v4, v1}, Landroid/graphics/Bitmap;->eraseColor(I)V

    .line 226
    :cond_59
    return-object v4
.end method

.method public static createBitmap(Landroid/graphics/Bitmap;IIII)Landroid/graphics/Bitmap;
    .registers 12
    .param p0, "source"    # Landroid/graphics/Bitmap;
    .param p1, "x"    # I
    .param p2, "y"    # I
    .param p3, "width"    # I
    .param p4, "height"    # I

    .line 324
    const/4 v5, 0x0

    const/4 v6, 0x0

    move-object v0, p0

    move v1, p1

    move v2, p2

    move v3, p3

    move v4, p4

    invoke-static/range {v0 .. v6}, Lim/tpelyyftgw/messenger/Bitmaps;->createBitmap(Landroid/graphics/Bitmap;IIIILandroid/graphics/Matrix;Z)Landroid/graphics/Bitmap;

    move-result-object v0

    return-object v0
.end method

.method public static createBitmap(Landroid/graphics/Bitmap;IIIILandroid/graphics/Matrix;Z)Landroid/graphics/Bitmap;
    .registers 25
    .param p0, "source"    # Landroid/graphics/Bitmap;
    .param p1, "x"    # I
    .param p2, "y"    # I
    .param p3, "width"    # I
    .param p4, "height"    # I
    .param p5, "m"    # Landroid/graphics/Matrix;
    .param p6, "filter"    # Z

    .line 248
    move-object/from16 v1, p0

    move/from16 v2, p1

    move/from16 v3, p2

    move/from16 v4, p3

    move/from16 v5, p4

    move-object/from16 v6, p5

    sget v0, Landroid/os/Build$VERSION;->SDK_INT:I

    const/16 v7, 0x15

    if-lt v0, v7, :cond_17

    .line 249
    invoke-static/range {p0 .. p6}, Landroid/graphics/Bitmap;->createBitmap(Landroid/graphics/Bitmap;IIIILandroid/graphics/Matrix;Z)Landroid/graphics/Bitmap;

    move-result-object v0

    return-object v0

    .line 251
    :cond_17
    invoke-static/range {p1 .. p2}, Lim/tpelyyftgw/messenger/Bitmaps;->checkXYSign(II)V

    .line 252
    invoke-static/range {p3 .. p4}, Lim/tpelyyftgw/messenger/Bitmaps;->checkWidthHeight(II)V

    .line 253
    add-int v0, v2, v4

    invoke-virtual/range {p0 .. p0}, Landroid/graphics/Bitmap;->getWidth()I

    move-result v7

    if-gt v0, v7, :cond_10e

    .line 256
    add-int v0, v3, v5

    invoke-virtual/range {p0 .. p0}, Landroid/graphics/Bitmap;->getHeight()I

    move-result v7

    if-gt v0, v7, :cond_105

    .line 259
    invoke-virtual/range {p0 .. p0}, Landroid/graphics/Bitmap;->isMutable()Z

    move-result v0

    if-nez v0, :cond_4c

    if-nez v2, :cond_4c

    if-nez v3, :cond_4c

    invoke-virtual/range {p0 .. p0}, Landroid/graphics/Bitmap;->getWidth()I

    move-result v0

    if-ne v4, v0, :cond_4c

    invoke-virtual/range {p0 .. p0}, Landroid/graphics/Bitmap;->getHeight()I

    move-result v0

    if-ne v5, v0, :cond_4c

    if-eqz v6, :cond_4b

    invoke-virtual/range {p5 .. p5}, Landroid/graphics/Matrix;->isIdentity()Z

    move-result v0

    if-eqz v0, :cond_4c

    .line 260
    :cond_4b
    return-object v1

    .line 263
    :cond_4c
    move/from16 v0, p3

    .line 264
    .local v0, "neww":I
    move/from16 v7, p4

    .line 265
    .local v7, "newh":I
    new-instance v8, Landroid/graphics/Canvas;

    invoke-direct {v8}, Landroid/graphics/Canvas;-><init>()V

    .line 269
    .local v8, "canvas":Landroid/graphics/Canvas;
    new-instance v9, Landroid/graphics/Rect;

    add-int v10, v2, v4

    add-int v11, v3, v5

    invoke-direct {v9, v2, v3, v10, v11}, Landroid/graphics/Rect;-><init>(IIII)V

    .line 270
    .local v9, "srcR":Landroid/graphics/Rect;
    new-instance v10, Landroid/graphics/RectF;

    int-to-float v11, v4

    int-to-float v12, v5

    const/4 v13, 0x0

    invoke-direct {v10, v13, v13, v11, v12}, Landroid/graphics/RectF;-><init>(FFFF)V

    .line 272
    .local v10, "dstR":Landroid/graphics/RectF;
    sget-object v11, Landroid/graphics/Bitmap$Config;->ARGB_8888:Landroid/graphics/Bitmap$Config;

    .line 273
    .local v11, "newConfig":Landroid/graphics/Bitmap$Config;
    invoke-virtual/range {p0 .. p0}, Landroid/graphics/Bitmap;->getConfig()Landroid/graphics/Bitmap$Config;

    move-result-object v12

    .line 274
    .local v12, "config":Landroid/graphics/Bitmap$Config;
    const/4 v13, 0x1

    if-eqz v12, :cond_84

    .line 275
    sget-object v14, Lim/tpelyyftgw/messenger/Bitmaps$2;->$SwitchMap$android$graphics$Bitmap$Config:[I

    invoke-virtual {v12}, Landroid/graphics/Bitmap$Config;->ordinal()I

    move-result v15

    aget v14, v14, v15

    if-eq v14, v13, :cond_82

    const/4 v15, 0x2

    if-eq v14, v15, :cond_7f

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

    goto :goto_84

    .line 280
    :cond_7f
    sget-object v11, Landroid/graphics/Bitmap$Config;->ALPHA_8:Landroid/graphics/Bitmap$Config;

    .line 281
    goto :goto_84

    .line 277
    :cond_82
    sget-object v11, Landroid/graphics/Bitmap$Config;->ARGB_8888:Landroid/graphics/Bitmap$Config;

    .line 290
    :cond_84
    :goto_84
    if-eqz v6, :cond_d6

    invoke-virtual/range {p5 .. p5}, Landroid/graphics/Matrix;->isIdentity()Z

    move-result v14

    if-eqz v14, :cond_8d

    goto :goto_d6

    .line 294
    :cond_8d
    invoke-virtual/range {p5 .. p5}, Landroid/graphics/Matrix;->rectStaysRect()Z

    move-result v14

    xor-int/2addr v14, v13

    .line 295
    .local v14, "transformed":Z
    new-instance v15, Landroid/graphics/RectF;

    invoke-direct {v15}, Landroid/graphics/RectF;-><init>()V

    .line 296
    .local v15, "deviceR":Landroid/graphics/RectF;
    invoke-virtual {v6, v15, v10}, Landroid/graphics/Matrix;->mapRect(Landroid/graphics/RectF;Landroid/graphics/RectF;)Z

    .line 297
    invoke-virtual {v15}, Landroid/graphics/RectF;->width()F

    move-result v16

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

    move-result v0

    .line 298
    invoke-virtual {v15}, Landroid/graphics/RectF;->height()F

    move-result v16

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

    move-result v7

    .line 299
    if-eqz v14, :cond_b1

    sget-object v16, Landroid/graphics/Bitmap$Config;->ARGB_8888:Landroid/graphics/Bitmap$Config;

    move-object/from16 v13, v16

    goto :goto_b2

    :cond_b1
    move-object v13, v11

    :goto_b2
    invoke-static {v0, v7, v13}, Lim/tpelyyftgw/messenger/Bitmaps;->createBitmap(IILandroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap;

    move-result-object v13

    .line 300
    .local v13, "bitmap":Landroid/graphics/Bitmap;
    move/from16 v17, v0

    .end local v0    # "neww":I
    .local v17, "neww":I
    iget v0, v15, Landroid/graphics/RectF;->left:F

    neg-float v0, v0

    iget v2, v15, Landroid/graphics/RectF;->top:F

    neg-float v2, v2

    invoke-virtual {v8, v0, v2}, Landroid/graphics/Canvas;->translate(FF)V

    .line 301
    invoke-virtual {v8, v6}, Landroid/graphics/Canvas;->concat(Landroid/graphics/Matrix;)V

    .line 302
    new-instance v0, Landroid/graphics/Paint;

    invoke-direct {v0}, Landroid/graphics/Paint;-><init>()V

    .line 303
    .local v0, "paint":Landroid/graphics/Paint;
    move/from16 v2, p6

    invoke-virtual {v0, v2}, Landroid/graphics/Paint;->setFilterBitmap(Z)V

    .line 304
    if-eqz v14, :cond_d4

    .line 305
    const/4 v2, 0x1

    invoke-virtual {v0, v2}, Landroid/graphics/Paint;->setAntiAlias(Z)V

    .line 308
    .end local v14    # "transformed":Z
    .end local v15    # "deviceR":Landroid/graphics/RectF;
    :cond_d4
    move-object v2, v0

    goto :goto_dd

    .line 291
    .end local v13    # "bitmap":Landroid/graphics/Bitmap;
    .end local v17    # "neww":I
    .local v0, "neww":I
    :cond_d6
    :goto_d6
    invoke-static {v0, v7, v11}, Lim/tpelyyftgw/messenger/Bitmaps;->createBitmap(IILandroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap;

    move-result-object v13

    .line 292
    .restart local v13    # "bitmap":Landroid/graphics/Bitmap;
    const/4 v2, 0x0

    move/from16 v17, v0

    .line 308
    .end local v0    # "neww":I
    .local v2, "paint":Landroid/graphics/Paint;
    .restart local v17    # "neww":I
    :goto_dd
    invoke-virtual/range {p0 .. p0}, Landroid/graphics/Bitmap;->getDensity()I

    move-result v0

    invoke-virtual {v13, v0}, Landroid/graphics/Bitmap;->setDensity(I)V

    .line 309
    invoke-virtual/range {p0 .. p0}, Landroid/graphics/Bitmap;->hasAlpha()Z

    move-result v0

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

    .line 310
    sget v0, Landroid/os/Build$VERSION;->SDK_INT:I

    const/16 v14, 0x13

    if-lt v0, v14, :cond_f8

    .line 311
    invoke-virtual/range {p0 .. p0}, Landroid/graphics/Bitmap;->isPremultiplied()Z

    move-result v0

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

    .line 313
    :cond_f8
    invoke-virtual {v8, v13}, Landroid/graphics/Canvas;->setBitmap(Landroid/graphics/Bitmap;)V

    .line 314
    invoke-virtual {v8, v1, v9, v10, v2}, Landroid/graphics/Canvas;->drawBitmap(Landroid/graphics/Bitmap;Landroid/graphics/Rect;Landroid/graphics/RectF;Landroid/graphics/Paint;)V

    .line 316
    const/4 v0, 0x0

    :try_start_ff
    invoke-virtual {v8, v0}, Landroid/graphics/Canvas;->setBitmap(Landroid/graphics/Bitmap;)V
    :try_end_102
    .catch Ljava/lang/Exception; {:try_start_ff .. :try_end_102} :catch_103

    .line 319
    goto :goto_104

    .line 317
    :catch_103
    move-exception v0

    .line 320
    :goto_104
    return-object v13

    .line 257
    .end local v2    # "paint":Landroid/graphics/Paint;
    .end local v7    # "newh":I
    .end local v8    # "canvas":Landroid/graphics/Canvas;
    .end local v9    # "srcR":Landroid/graphics/Rect;
    .end local v10    # "dstR":Landroid/graphics/RectF;
    .end local v11    # "newConfig":Landroid/graphics/Bitmap$Config;
    .end local v12    # "config":Landroid/graphics/Bitmap$Config;
    .end local v13    # "bitmap":Landroid/graphics/Bitmap;
    .end local v17    # "neww":I
    :cond_105
    new-instance v0, Ljava/lang/IllegalArgumentException;

    const-string/jumbo v2, "y + height must be <= bitmap.height()"

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

    throw v0

    .line 254
    :cond_10e
    new-instance v0, Ljava/lang/IllegalArgumentException;

    const-string/jumbo v2, "x + width must be <= bitmap.width()"

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

    throw v0
.end method

.method public static createScaledBitmap(Landroid/graphics/Bitmap;IIZ)Landroid/graphics/Bitmap;
    .registers 19
    .param p0, "src"    # Landroid/graphics/Bitmap;
    .param p1, "dstWidth"    # I
    .param p2, "dstHeight"    # I
    .param p3, "filter"    # Z

    .line 328
    sget v0, Landroid/os/Build$VERSION;->SDK_INT:I

    const/16 v1, 0x15

    if-lt v0, v1, :cond_b

    .line 329
    invoke-static/range {p0 .. p3}, Landroid/graphics/Bitmap;->createScaledBitmap(Landroid/graphics/Bitmap;IIZ)Landroid/graphics/Bitmap;

    move-result-object v0

    return-object v0

    .line 332
    :cond_b
    const-class v1, Landroid/graphics/Bitmap;

    monitor-enter v1

    .line 333
    :try_start_e
    sget-object v0, Lim/tpelyyftgw/messenger/Bitmaps;->sScaleMatrix:Landroid/graphics/Matrix;

    .line 334
    .local v0, "m":Landroid/graphics/Matrix;
    const/4 v2, 0x0

    sput-object v2, Lim/tpelyyftgw/messenger/Bitmaps;->sScaleMatrix:Landroid/graphics/Matrix;

    .line 335
    monitor-exit v1
    :try_end_14
    .catchall {:try_start_e .. :try_end_14} :catchall_50

    .line 336
    if-nez v0, :cond_1e

    .line 337
    new-instance v1, Landroid/graphics/Matrix;

    invoke-direct {v1}, Landroid/graphics/Matrix;-><init>()V

    move-object v0, v1

    move-object v8, v0

    goto :goto_1f

    .line 336
    :cond_1e
    move-object v8, v0

    .line 339
    .end local v0    # "m":Landroid/graphics/Matrix;
    .local v8, "m":Landroid/graphics/Matrix;
    :goto_1f
    invoke-virtual {p0}, Landroid/graphics/Bitmap;->getWidth()I

    move-result v9

    .line 340
    .local v9, "width":I
    invoke-virtual {p0}, Landroid/graphics/Bitmap;->getHeight()I

    move-result v10

    .line 341
    .local v10, "height":I
    move/from16 v11, p1

    int-to-float v0, v11

    int-to-float v1, v9

    div-float v12, v0, v1

    .line 342
    .local v12, "sx":F
    move/from16 v13, p2

    int-to-float v0, v13

    int-to-float v1, v10

    div-float v14, v0, v1

    .line 343
    .local v14, "sy":F
    invoke-virtual {v8, v12, v14}, Landroid/graphics/Matrix;->setScale(FF)V

    .line 344
    const/4 v2, 0x0

    const/4 v3, 0x0

    move-object v1, p0

    move v4, v9

    move v5, v10

    move-object v6, v8

    move/from16 v7, p3

    invoke-static/range {v1 .. v7}, Lim/tpelyyftgw/messenger/Bitmaps;->createBitmap(Landroid/graphics/Bitmap;IIIILandroid/graphics/Matrix;Z)Landroid/graphics/Bitmap;

    move-result-object v2

    .line 345
    .local v2, "b":Landroid/graphics/Bitmap;
    const-class v3, Landroid/graphics/Bitmap;

    monitor-enter v3

    .line 346
    :try_start_45
    sget-object v0, Lim/tpelyyftgw/messenger/Bitmaps;->sScaleMatrix:Landroid/graphics/Matrix;

    if-nez v0, :cond_4b

    .line 347
    sput-object v8, Lim/tpelyyftgw/messenger/Bitmaps;->sScaleMatrix:Landroid/graphics/Matrix;

    .line 349
    :cond_4b
    monitor-exit v3

    .line 350
    return-object v2

    .line 349
    :catchall_4d
    move-exception v0

    monitor-exit v3
    :try_end_4f
    .catchall {:try_start_45 .. :try_end_4f} :catchall_4d

    throw v0

    .line 335
    .end local v2    # "b":Landroid/graphics/Bitmap;
    .end local v8    # "m":Landroid/graphics/Matrix;
    .end local v9    # "width":I
    .end local v10    # "height":I
    .end local v12    # "sx":F
    .end local v14    # "sy":F
    :catchall_50
    move-exception v0

    move/from16 v11, p1

    move/from16 v13, p2

    :goto_55
    :try_start_55
    monitor-exit v1
    :try_end_56
    .catchall {:try_start_55 .. :try_end_56} :catchall_57

    throw v0

    :catchall_57
    move-exception v0

    goto :goto_55
.end method