cex.smali

.class public Ldxoptimizer/cex;
.super Ljava/lang/Object;
.source "StorageChecker.java"


# annotations
.annotation system Ldalvik/annotation/MemberClasses;
    value = {
        Ldxoptimizer/cex$a;
    }
.end annotation


# direct methods
.method public static a(Ljava/io/File;)Ldxoptimizer/cex$a;
    .registers 3
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Ljava/io/IOException;
        }
    .end annotation

    .prologue
    .line 75
    new-instance v0, Ljava/io/ByteArrayOutputStream;

    invoke-direct {v0}, Ljava/io/ByteArrayOutputStream;-><init>()V

    .line 76
    new-instance v1, Ldxoptimizer/cex$a;

    invoke-direct {v1, p0, v0}, Ldxoptimizer/cex$a;-><init>(Ljava/io/File;Ljava/io/ByteArrayOutputStream;)V

    return-object v1
.end method

.method public static b(Ljava/io/File;)Ljava/io/ObjectInputStream;
    .registers 7
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Ljava/io/IOException;
        }
    .end annotation

    .prologue
    const/4 v0, 0x0

    .line 85
    invoke-virtual {p0}, Ljava/io/File;->exists()Z

    move-result v1

    if-nez v1, :cond_24

    .line 86
    new-instance v0, Ljava/io/IOException;

    new-instance v1, Ljava/lang/StringBuilder;

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

    const-string v2, "file not exists:"

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

    move-result-object v1

    invoke-virtual {p0}, Ljava/io/File;->getName()Ljava/lang/String;

    move-result-object v2

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

    move-result-object v1

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

    move-result-object v1

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

    throw v0

    .line 90
    :cond_24
    const/4 v2, 0x0

    .line 92
    :try_start_25
    new-instance v1, Ljava/io/FileInputStream;

    invoke-direct {v1, p0}, Ljava/io/FileInputStream;-><init>(Ljava/io/File;)V
    :try_end_2a
    .catchall {:try_start_25 .. :try_end_2a} :catchall_81

    .line 93
    const/4 v2, 0x4

    :try_start_2b
    new-array v2, v2, [B

    .line 94
    const/4 v3, 0x0

    const/4 v4, 0x4

    invoke-virtual {v1, v2, v3, v4}, Ljava/io/FileInputStream;->read([BII)I

    .line 95
    invoke-static {v2}, Ldxoptimizer/ccp;->a([B)I

    move-result v2

    .line 96
    invoke-virtual {v1}, Ljava/io/FileInputStream;->available()I

    move-result v3

    .line 98
    if-ne v3, v2, :cond_5f

    if-eqz v3, :cond_5f

    .line 100
    new-array v2, v3, [B

    .line 101
    const/16 v3, 0x1000

    new-array v3, v3, [B

    .line 104
    :goto_44
    invoke-virtual {v1, v3}, Ljava/io/FileInputStream;->read([B)I

    move-result v4

    const/4 v5, -0x1

    if-eq v4, v5, :cond_51

    .line 105
    const/4 v5, 0x0

    invoke-static {v3, v5, v2, v0, v4}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V

    .line 106
    add-int/2addr v0, v4

    goto :goto_44

    .line 109
    :cond_51
    new-instance v0, Ljava/io/ObjectInputStream;

    new-instance v3, Ljava/io/ByteArrayInputStream;

    invoke-direct {v3, v2}, Ljava/io/ByteArrayInputStream;-><init>([B)V

    invoke-direct {v0, v3}, Ljava/io/ObjectInputStream;-><init>(Ljava/io/InputStream;)V
    :try_end_5b
    .catchall {:try_start_2b .. :try_end_5b} :catchall_7c

    .line 114
    invoke-static {v1}, Ldxoptimizer/cdp;->a(Ljava/io/Closeable;)V

    .line 117
    return-object v0

    .line 111
    :cond_5f
    :try_start_5f
    new-instance v0, Ljava/io/IOException;

    new-instance v2, Ljava/lang/StringBuilder;

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

    const-string v3, "malformed file:"

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

    move-result-object v2

    invoke-virtual {p0}, Ljava/io/File;->getName()Ljava/lang/String;

    move-result-object v3

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

    move-result-object v2

    invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v2

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

    throw v0
    :try_end_7c
    .catchall {:try_start_5f .. :try_end_7c} :catchall_7c

    .line 114
    :catchall_7c
    move-exception v0

    :goto_7d
    invoke-static {v1}, Ldxoptimizer/cdp;->a(Ljava/io/Closeable;)V

    throw v0

    :catchall_81
    move-exception v0

    move-object v1, v2

    goto :goto_7d
.end method