a.smali

.class public final Lcom/chinanetcenter/wcs/android/slice/a;
.super Ljava/lang/Object;
.source "SourceFile"


# static fields
.field public static i:I = 0x400000

.field public static j:J = 0x400000L


# instance fields
.field public a:Ljava/io/RandomAccessFile;

.field public b:J

.field public c:J

.field public d:I

.field public e:I

.field public f:J

.field public g:Ljava/lang/String;

.field public h:Lcom/chinanetcenter/wcs/android/slice/b;


# direct methods
.method public constructor <init>(Ljava/io/RandomAccessFile;Ljava/lang/String;JJII)V
    .registers 11
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Ljava/io/IOException;
        }
    .end annotation

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

    .line 2
    iput-object p1, p0, Lcom/chinanetcenter/wcs/android/slice/a;->a:Ljava/io/RandomAccessFile;

    .line 3
    invoke-virtual {p1}, Ljava/io/RandomAccessFile;->length()J

    move-result-wide v0

    iput-wide v0, p0, Lcom/chinanetcenter/wcs/android/slice/a;->f:J

    .line 4
    iput-object p2, p0, Lcom/chinanetcenter/wcs/android/slice/a;->g:Ljava/lang/String;

    .line 5
    iput-wide p3, p0, Lcom/chinanetcenter/wcs/android/slice/a;->b:J

    .line 6
    iput-wide p5, p0, Lcom/chinanetcenter/wcs/android/slice/a;->c:J

    .line 7
    iput p7, p0, Lcom/chinanetcenter/wcs/android/slice/a;->d:I

    return-void
.end method


# virtual methods
.method public final a()Lcom/chinanetcenter/wcs/android/slice/c;
    .registers 14

    .line 1
    iget v0, p0, Lcom/chinanetcenter/wcs/android/slice/a;->e:I

    add-int/lit8 v1, v0, 0x1

    iput v1, p0, Lcom/chinanetcenter/wcs/android/slice/a;->e:I

    .line 2
    iget-object v1, p0, Lcom/chinanetcenter/wcs/android/slice/a;->h:Lcom/chinanetcenter/wcs/android/slice/b;

    if-nez v1, :cond_13

    .line 3
    new-instance v1, Lcom/chinanetcenter/wcs/android/slice/b;

    .line 4
    iget v2, p0, Lcom/chinanetcenter/wcs/android/slice/a;->d:I

    .line 5
    invoke-direct {v1, v2}, Lcom/chinanetcenter/wcs/android/slice/b;-><init>(I)V

    iput-object v1, p0, Lcom/chinanetcenter/wcs/android/slice/a;->h:Lcom/chinanetcenter/wcs/android/slice/b;

    .line 6
    :cond_13
    iget-wide v1, p0, Lcom/chinanetcenter/wcs/android/slice/a;->b:J

    .line 7
    iget v3, p0, Lcom/chinanetcenter/wcs/android/slice/a;->d:I

    mul-int v4, v0, v3

    int-to-long v4, v4

    add-long v6, v4, v1

    .line 8
    iget-wide v8, p0, Lcom/chinanetcenter/wcs/android/slice/a;->c:J

    cmp-long v10, v4, v8

    if-ltz v10, :cond_24

    const/4 v0, 0x0

    goto :goto_65

    :cond_24
    int-to-long v4, v3

    add-long v10, v4, v6

    add-long/2addr v1, v8

    cmp-long v12, v10, v1

    if-lez v12, :cond_2e

    .line 9
    rem-long/2addr v8, v4

    long-to-int v3, v8

    .line 10
    :cond_2e
    iget-object v1, p0, Lcom/chinanetcenter/wcs/android/slice/a;->h:Lcom/chinanetcenter/wcs/android/slice/b;

    .line 11
    iget-object v1, v1, Lcom/chinanetcenter/wcs/android/slice/b;->a:[B

    const/4 v2, 0x0

    if-nez v1, :cond_37

    new-array v1, v2, [B

    .line 12
    :cond_37
    invoke-static {v1, v2}, Ljava/util/Arrays;->fill([BB)V

    .line 13
    iget v4, p0, Lcom/chinanetcenter/wcs/android/slice/a;->d:I

    if-ge v3, v4, :cond_40

    .line 14
    new-array v1, v3, [B

    .line 15
    :cond_40
    :try_start_40
    iget-object v4, p0, Lcom/chinanetcenter/wcs/android/slice/a;->a:Ljava/io/RandomAccessFile;

    invoke-virtual {v4, v6, v7}, Ljava/io/RandomAccessFile;->seek(J)V

    .line 16
    iget-object v4, p0, Lcom/chinanetcenter/wcs/android/slice/a;->a:Ljava/io/RandomAccessFile;

    invoke-virtual {v4, v1, v2, v3}, Ljava/io/RandomAccessFile;->read([BII)I
    :try_end_4a
    .catch Ljava/io/IOException; {:try_start_40 .. :try_end_4a} :catch_4b

    goto :goto_4c

    :catch_4b
    nop

    .line 17
    :goto_4c
    iget v2, p0, Lcom/chinanetcenter/wcs/android/slice/a;->d:I

    if-ge v3, v2, :cond_5a

    .line 18
    new-instance v3, Lcom/chinanetcenter/wcs/android/slice/c;

    mul-int v0, v0, v2

    int-to-long v4, v0

    invoke-direct {v3, v4, v5, v1}, Lcom/chinanetcenter/wcs/android/slice/c;-><init>(J[B)V

    move-object v0, v3

    goto :goto_65

    .line 19
    :cond_5a
    new-instance v1, Lcom/chinanetcenter/wcs/android/slice/c;

    mul-int v0, v0, v2

    int-to-long v2, v0

    iget-object v0, p0, Lcom/chinanetcenter/wcs/android/slice/a;->h:Lcom/chinanetcenter/wcs/android/slice/b;

    invoke-direct {v1, v2, v3, v0}, Lcom/chinanetcenter/wcs/android/slice/c;-><init>(JLcom/chinanetcenter/wcs/android/slice/b;)V

    move-object v0, v1

    :goto_65
    return-object v0
.end method

.method public final toString()Ljava/lang/String;
    .registers 5

    .line 1
    new-instance v0, Lorg/json/JSONObject;

    invoke-direct {v0}, Lorg/json/JSONObject;-><init>()V

    :try_start_5
    const-string v1, "start"

    .line 2
    iget-wide v2, p0, Lcom/chinanetcenter/wcs/android/slice/a;->b:J

    invoke-virtual {v0, v1, v2, v3}, Lorg/json/JSONObject;->put(Ljava/lang/String;J)Lorg/json/JSONObject;

    const-string v1, "size"

    .line 3
    iget-wide v2, p0, Lcom/chinanetcenter/wcs/android/slice/a;->c:J

    invoke-virtual {v0, v1, v2, v3}, Lorg/json/JSONObject;->put(Ljava/lang/String;J)Lorg/json/JSONObject;

    const-string v1, "slice index"

    .line 4
    iget v2, p0, Lcom/chinanetcenter/wcs/android/slice/a;->e:I

    invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;I)Lorg/json/JSONObject;
    :try_end_1a
    .catch Lorg/json/JSONException; {:try_start_5 .. :try_end_1a} :catch_1a

    :catch_1a
    const/4 v1, 0x4

    .line 5
    :try_start_1b
    invoke-virtual {v0, v1}, Lorg/json/JSONObject;->toString(I)Ljava/lang/String;

    move-result-object v0
    :try_end_1f
    .catch Lorg/json/JSONException; {:try_start_1b .. :try_end_1f} :catch_20

    return-object v0

    :catch_20
    const-string v0, "Block<>"

    return-object v0
.end method