g.smali
.class public final Lcom/imo/android/imoim/util/k/g;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/imo/android/imoim/util/k/g$b;,
Lcom/imo/android/imoim/util/k/g$a;
}
.end annotation
# direct methods
.method public constructor <init>()V
.registers 1
.line 14
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method private static a(Ljava/io/InputStream;)I
.registers 5
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
const/4 v0, 0x4
new-array v1, v0, [B
.line 53
invoke-virtual {p0, v1}, Ljava/io/InputStream;->read([B)I
const/4 p0, 0x0
const/4 v2, 0x0
:goto_8
if-ge p0, v0, :cond_14
.line 56
aget-byte v3, v1, p0
shl-int/lit8 v2, v2, 0x8
and-int/lit16 v3, v3, 0xff
add-int/2addr v2, v3
add-int/lit8 p0, p0, 0x1
goto :goto_8
:cond_14
return v2
.end method
.method public static a(Ljava/io/File;Ljava/io/File;)Ljava/io/File;
.registers 20
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/RuntimeException;
}
.end annotation
move-object/from16 v0, p0
move-object/from16 v1, p1
.line 177
:try_start_4
new-instance v3, Ljava/io/FileInputStream;
invoke-direct {v3, v0}, Ljava/io/FileInputStream;-><init>(Ljava/io/File;)V
:try_end_9
.catch Ljava/io/IOException; {:try_start_4 .. :try_end_9} :catch_205
.catch Ljava/lang/Exception; {:try_start_4 .. :try_end_9} :catch_200
.catchall {:try_start_4 .. :try_end_9} :catchall_1fb
.line 188
:try_start_9
invoke-static {v3}, Lcom/imo/android/imoim/util/k/g;->a(Ljava/io/FileInputStream;)Ljava/util/ArrayList;
move-result-object v4
:try_end_d
.catch Ljava/io/IOException; {:try_start_9 .. :try_end_d} :catch_1f3
.catch Ljava/lang/Exception; {:try_start_9 .. :try_end_d} :catch_1f0
.catchall {:try_start_9 .. :try_end_d} :catchall_1ed
const-wide/32 v5, 0xf423f
.line 200
:try_start_10
invoke-virtual {v4}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator;
move-result-object v7
const/4 v10, 0x0
const-wide/16 v11, 0x0
:cond_17
:goto_17
invoke-interface {v7}, Ljava/util/Iterator;->hasNext()Z
move-result v13
:try_end_1b
.catch Ljava/lang/Exception; {:try_start_10 .. :try_end_1b} :catch_1f0
.catchall {:try_start_10 .. :try_end_1b} :catchall_1ed
const-string v14, "free"
const-string v15, "moov"
if-eqz v13, :cond_50
:try_start_21
invoke-interface {v7}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v13
check-cast v13, Lcom/imo/android/imoim/util/k/g$a;
.line 201
iget-object v2, v13, Lcom/imo/android/imoim/util/k/g$a;->a:Ljava/lang/String;
invoke-virtual {v2, v15}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v2
if-eqz v2, :cond_31
move-object v10, v13
goto :goto_17
.line 203
:cond_31
iget-object v2, v13, Lcom/imo/android/imoim/util/k/g$a;->a:Ljava/lang/String;
const-string v15, "mdat"
invoke-virtual {v2, v15}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v2
if-eqz v2, :cond_3e
.line 204
iget-wide v5, v13, Lcom/imo/android/imoim/util/k/g$a;->c:J
goto :goto_17
.line 205
:cond_3e
iget-object v2, v13, Lcom/imo/android/imoim/util/k/g$a;->a:Ljava/lang/String;
invoke-virtual {v2, v14}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v2
if-eqz v2, :cond_17
iget-wide v14, v13, Lcom/imo/android/imoim/util/k/g$a;->c:J
cmp-long v2, v14, v5
if-gez v2, :cond_17
.line 208
iget-wide v13, v13, Lcom/imo/android/imoim/util/k/g$a;->b:J
add-long/2addr v11, v13
goto :goto_17
.line 215
:cond_50
iget-wide v8, v10, Lcom/imo/android/imoim/util/k/g$a;->b:J
sub-long/2addr v8, v11
long-to-int v2, v8
.line 217
iget-wide v7, v10, Lcom/imo/android/imoim/util/k/g$a;->c:J
:try_end_56
.catch Ljava/lang/Exception; {:try_start_21 .. :try_end_56} :catch_1f0
.catchall {:try_start_21 .. :try_end_56} :catchall_1ed
cmp-long v9, v7, v5
if-gez v9, :cond_7b
int-to-long v5, v2
.line 218
:try_start_5b
iget-wide v7, v10, Lcom/imo/android/imoim/util/k/g$a;->b:J
:try_end_5d
.catch Ljava/lang/Exception; {:try_start_5b .. :try_end_5d} :catch_74
.catchall {:try_start_5b .. :try_end_5d} :catchall_6d
sub-long/2addr v5, v7
long-to-int v2, v5
const-wide/16 v5, 0x0
cmp-long v7, v11, v5
if-nez v7, :cond_7b
.line 381
invoke-static {v3}, Lcom/imo/android/imoim/util/ei;->a(Ljava/io/Closeable;)V
const/4 v5, 0x0
.line 382
invoke-static {v5}, Lcom/imo/android/imoim/util/ei;->a(Ljava/io/Closeable;)V
return-object v0
:catchall_6d
move-exception v0
const/4 v5, 0x0
:goto_6f
move-object v2, v3
move-object/from16 v16, v5
goto/16 :goto_218
:catch_74
move-exception v0
const/4 v5, 0x0
:goto_76
move-object v2, v3
move-object/from16 v16, v5
goto/16 :goto_20d
:cond_7b
const/4 v5, 0x0
.line 227
:try_start_7c
iget-wide v6, v10, Lcom/imo/android/imoim/util/k/g$a;->b:J
long-to-int v0, v6
new-array v6, v0, [B
:try_end_81
.catch Ljava/lang/Exception; {:try_start_7c .. :try_end_81} :catch_1f0
.catchall {:try_start_7c .. :try_end_81} :catchall_1ed
.line 229
:try_start_81
invoke-virtual {v3}, Ljava/io/FileInputStream;->getChannel()Ljava/nio/channels/FileChannel;
move-result-object v7
iget-wide v8, v10, Lcom/imo/android/imoim/util/k/g$a;->c:J
invoke-virtual {v7, v8, v9}, Ljava/nio/channels/FileChannel;->position(J)Ljava/nio/channels/FileChannel;
.line 230
invoke-virtual {v3, v6}, Ljava/io/FileInputStream;->read([B)I
:try_end_8d
.catch Ljava/io/IOException; {:try_start_81 .. :try_end_8d} :catch_1e5
.catch Ljava/lang/Exception; {:try_start_81 .. :try_end_8d} :catch_1f0
.catchall {:try_start_81 .. :try_end_8d} :catchall_1ed
.line 237
:try_start_8d
new-instance v7, Lcom/imo/android/imoim/util/k/g$b;
invoke-direct {v7, v6}, Lcom/imo/android/imoim/util/k/g$b;-><init>([B)V
.line 239
new-instance v8, Ljava/io/ByteArrayOutputStream;
invoke-direct {v8, v0}, Ljava/io/ByteArrayOutputStream;-><init>(I)V
const-wide/16 v9, 0x8
.line 243
invoke-virtual {v7, v9, v10}, Lcom/imo/android/imoim/util/k/g$b;->skip(J)J
:try_end_9c
.catch Ljava/lang/Exception; {:try_start_8d .. :try_end_9c} :catch_1f0
.catchall {:try_start_8d .. :try_end_9c} :catchall_1ed
.line 247
:cond_9c
:try_start_9c
invoke-static {v7}, Lcom/imo/android/imoim/util/k/g;->d(Ljava/io/InputStream;)Lcom/imo/android/imoim/util/k/g$a;
move-result-object v9
const/4 v10, 0x0
if-eqz v9, :cond_f1
const-wide/16 v11, 0x4
.line 248
invoke-virtual {v7, v11, v12}, Lcom/imo/android/imoim/util/k/g$b;->skip(J)J
.line 249
invoke-static {v7}, Lcom/imo/android/imoim/util/k/g;->a(Ljava/io/InputStream;)I
move-result v11
.line 254
invoke-virtual {v7}, Lcom/imo/android/imoim/util/k/g$b;->a()I
move-result v12
.line 256
invoke-virtual {v8}, Ljava/io/ByteArrayOutputStream;->size()I
move-result v13
.line 257
invoke-virtual {v8}, Ljava/io/ByteArrayOutputStream;->size()I
move-result v16
sub-int v12, v12, v16
.line 256
invoke-virtual {v8, v6, v13, v12}, Ljava/io/ByteArrayOutputStream;->write([BII)V
.line 259
iget-object v9, v9, Lcom/imo/android/imoim/util/k/g$a;->a:Ljava/lang/String;
const-string v12, "stco"
invoke-virtual {v9, v12}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v9
:try_end_c5
.catch Ljava/io/IOException; {:try_start_9c .. :try_end_c5} :catch_1dd
.catch Ljava/lang/Exception; {:try_start_9c .. :try_end_c5} :catch_1f0
.catchall {:try_start_9c .. :try_end_c5} :catchall_1ed
if-eqz v9, :cond_dc
:goto_c7
if-ge v10, v11, :cond_9c
.line 262
:try_start_c9
invoke-static {v7}, Lcom/imo/android/imoim/util/k/g;->a(Ljava/io/InputStream;)I
move-result v9
add-int/2addr v9, v2
invoke-static {v9}, Lcom/imo/android/imoim/util/k/g;->a(I)[B
move-result-object v9
.line 263
invoke-virtual {v8, v9}, Ljava/io/ByteArrayOutputStream;->write([B)V
:try_end_d5
.catch Ljava/io/IOException; {:try_start_c9 .. :try_end_d5} :catch_1dd
.catch Ljava/lang/Exception; {:try_start_c9 .. :try_end_d5} :catch_da
.catchall {:try_start_c9 .. :try_end_d5} :catchall_d8
add-int/lit8 v10, v10, 0x1
goto :goto_c7
:catchall_d8
move-exception v0
goto :goto_6f
:catch_da
move-exception v0
goto :goto_76
:cond_dc
:goto_dc
if-ge v10, v11, :cond_9c
.line 268
:try_start_de
invoke-static {v7}, Lcom/imo/android/imoim/util/k/g;->b(Ljava/io/InputStream;)J
move-result-wide v12
move-object v9, v6
int-to-long v5, v2
add-long/2addr v12, v5
invoke-static {v12, v13}, Lcom/imo/android/imoim/util/k/g;->a(J)[B
move-result-object v5
.line 269
invoke-virtual {v8, v5}, Ljava/io/ByteArrayOutputStream;->write([B)V
add-int/lit8 v10, v10, 0x1
move-object v6, v9
const/4 v5, 0x0
goto :goto_dc
:cond_f1
move-object v9, v6
.line 274
invoke-virtual {v8}, Ljava/io/ByteArrayOutputStream;->size()I
move-result v2
if-ge v2, v0, :cond_104
.line 275
invoke-virtual {v8}, Ljava/io/ByteArrayOutputStream;->size()I
move-result v2
.line 276
invoke-virtual {v8}, Ljava/io/ByteArrayOutputStream;->size()I
move-result v5
sub-int/2addr v0, v5
.line 275
invoke-virtual {v8, v9, v2, v0}, Ljava/io/ByteArrayOutputStream;->write([BII)V
:try_end_104
.catch Ljava/io/IOException; {:try_start_de .. :try_end_104} :catch_1dd
.catch Ljava/lang/Exception; {:try_start_de .. :try_end_104} :catch_1f0
.catchall {:try_start_de .. :try_end_104} :catchall_1ed
.line 285
:cond_104
:try_start_104
invoke-virtual/range {p1 .. p1}, Ljava/io/File;->exists()Z
move-result v0
if-eqz v0, :cond_111
const/4 v0, 0x1
.line 286
invoke-virtual {v1, v0, v0}, Ljava/io/File;->setWritable(ZZ)Z
.line 287
invoke-virtual/range {p1 .. p1}, Ljava/io/File;->delete()Z
.line 289
:cond_111
invoke-virtual/range {p1 .. p1}, Ljava/io/File;->createNewFile()Z
.line 292
new-instance v2, Ljava/io/FileOutputStream;
invoke-direct {v2, v1}, Ljava/io/FileOutputStream;-><init>(Ljava/io/File;)V
:try_end_119
.catch Ljava/io/IOException; {:try_start_104 .. :try_end_119} :catch_1d5
.catch Ljava/lang/Exception; {:try_start_104 .. :try_end_119} :catch_1f0
.catchall {:try_start_104 .. :try_end_119} :catchall_1ed
.line 303
:try_start_119
invoke-virtual {v4}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator;
move-result-object v0
:cond_11d
:goto_11d
invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z
move-result v5
:try_end_121
.catch Ljava/lang/Exception; {:try_start_119 .. :try_end_121} :catch_1d0
.catchall {:try_start_119 .. :try_end_121} :catchall_1cb
const-string v6, "ftyp"
if-eqz v5, :cond_150
:try_start_125
invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v5
check-cast v5, Lcom/imo/android/imoim/util/k/g$a;
.line 304
iget-object v9, v5, Lcom/imo/android/imoim/util/k/g$a;->a:Ljava/lang/String;
invoke-virtual {v9, v6}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v6
:try_end_131
.catch Ljava/lang/Exception; {:try_start_125 .. :try_end_131} :catch_1d0
.catchall {:try_start_125 .. :try_end_131} :catchall_1cb
if-eqz v6, :cond_11d
.line 308
:try_start_133
invoke-virtual {v3}, Ljava/io/FileInputStream;->getChannel()Ljava/nio/channels/FileChannel;
move-result-object v6
iget-wide v11, v5, Lcom/imo/android/imoim/util/k/g$a;->c:J
invoke-virtual {v6, v11, v12}, Ljava/nio/channels/FileChannel;->position(J)Ljava/nio/channels/FileChannel;
.line 309
iget-wide v5, v5, Lcom/imo/android/imoim/util/k/g$a;->b:J
long-to-int v6, v5
new-array v5, v6, [B
.line 310
invoke-virtual {v3, v5}, Ljava/io/FileInputStream;->read([B)I
.line 311
invoke-virtual {v2, v5}, Ljava/io/FileOutputStream;->write([B)V
:try_end_147
.catch Ljava/io/IOException; {:try_start_133 .. :try_end_147} :catch_148
.catch Ljava/lang/Exception; {:try_start_133 .. :try_end_147} :catch_1d0
.catchall {:try_start_133 .. :try_end_147} :catchall_1cb
goto :goto_11d
.line 315
:catch_148
:try_start_148
new-instance v0, Ljava/lang/RuntimeException;
const-string v1, "IO Exception during writing ftype."
invoke-direct {v0, v1}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
throw v0
:try_end_150
.catch Ljava/lang/Exception; {:try_start_148 .. :try_end_150} :catch_1d0
.catchall {:try_start_148 .. :try_end_150} :catchall_1cb
.line 328
:cond_150
:try_start_150
invoke-virtual {v8, v2}, Ljava/io/ByteArrayOutputStream;->writeTo(Ljava/io/OutputStream;)V
.line 330
invoke-virtual {v7}, Lcom/imo/android/imoim/util/k/g$b;->close()V
.line 331
invoke-virtual {v8}, Ljava/io/ByteArrayOutputStream;->close()V
:try_end_159
.catch Ljava/io/IOException; {:try_start_150 .. :try_end_159} :catch_1c3
.catch Ljava/lang/Exception; {:try_start_150 .. :try_end_159} :catch_1d0
.catchall {:try_start_150 .. :try_end_159} :catchall_1cb
.line 339
:try_start_159
invoke-virtual {v4}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator;
move-result-object v0
:cond_15d
:goto_15d
invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z
move-result v4
if-eqz v4, :cond_1b9
invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v4
check-cast v4, Lcom/imo/android/imoim/util/k/g$a;
.line 340
iget-object v5, v4, Lcom/imo/android/imoim/util/k/g$a;->a:Ljava/lang/String;
invoke-virtual {v5, v6}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v5
if-nez v5, :cond_15d
iget-object v5, v4, Lcom/imo/android/imoim/util/k/g$a;->a:Ljava/lang/String;
.line 341
invoke-virtual {v5, v15}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v5
if-nez v5, :cond_15d
iget-object v5, v4, Lcom/imo/android/imoim/util/k/g$a;->a:Ljava/lang/String;
.line 342
invoke-virtual {v5, v14}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v5
:try_end_17f
.catch Ljava/lang/Exception; {:try_start_159 .. :try_end_17f} :catch_1d0
.catchall {:try_start_159 .. :try_end_17f} :catchall_1cb
if-nez v5, :cond_15d
.line 350
:try_start_181
invoke-virtual {v3}, Ljava/io/FileInputStream;->getChannel()Ljava/nio/channels/FileChannel;
move-result-object v5
iget-wide v7, v4, Lcom/imo/android/imoim/util/k/g$a;->c:J
invoke-virtual {v5, v7, v8}, Ljava/nio/channels/FileChannel;->position(J)Ljava/nio/channels/FileChannel;
const/16 v5, 0x2000
new-array v5, v5, [B
const/4 v7, 0x0
:goto_18f
int-to-long v8, v7
.line 353
iget-wide v11, v4, Lcom/imo/android/imoim/util/k/g$a;->b:J
const-wide/16 v16, 0x2000
div-long v11, v11, v16
cmp-long v13, v8, v11
if-gez v13, :cond_1a3
.line 354
invoke-virtual {v3, v5}, Ljava/io/FileInputStream;->read([B)I
.line 355
invoke-virtual {v2, v5}, Ljava/io/FileOutputStream;->write([B)V
add-int/lit8 v7, v7, 0x1
goto :goto_18f
.line 358
:cond_1a3
iget-wide v7, v4, Lcom/imo/android/imoim/util/k/g$a;->b:J
rem-long v7, v7, v16
long-to-int v4, v7
if-lez v4, :cond_15d
.line 360
invoke-virtual {v3, v5, v10, v4}, Ljava/io/FileInputStream;->read([BII)I
.line 361
invoke-virtual {v2, v5, v10, v4}, Ljava/io/FileOutputStream;->write([BII)V
:try_end_1b0
.catch Ljava/io/IOException; {:try_start_181 .. :try_end_1b0} :catch_1b1
.catch Ljava/lang/Exception; {:try_start_181 .. :try_end_1b0} :catch_1d0
.catchall {:try_start_181 .. :try_end_1b0} :catchall_1cb
goto :goto_15d
.line 366
:catch_1b1
:try_start_1b1
new-instance v0, Ljava/lang/RuntimeException;
const-string v1, "IO Exception during output writing."
invoke-direct {v0, v1}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
throw v0
:try_end_1b9
.catch Ljava/lang/Exception; {:try_start_1b1 .. :try_end_1b9} :catch_1d0
.catchall {:try_start_1b1 .. :try_end_1b9} :catchall_1cb
.line 375
:cond_1b9
:try_start_1b9
invoke-virtual {v2}, Ljava/io/FileOutputStream;->flush()V
:try_end_1bc
.catch Ljava/io/IOException; {:try_start_1b9 .. :try_end_1bc} :catch_1bc
.catch Ljava/lang/Exception; {:try_start_1b9 .. :try_end_1bc} :catch_1d0
.catchall {:try_start_1b9 .. :try_end_1bc} :catchall_1cb
.line 381
:catch_1bc
invoke-static {v3}, Lcom/imo/android/imoim/util/ei;->a(Ljava/io/Closeable;)V
.line 382
invoke-static {v2}, Lcom/imo/android/imoim/util/ei;->a(Ljava/io/Closeable;)V
return-object v1
.line 335
:catch_1c3
:try_start_1c3
new-instance v0, Ljava/lang/RuntimeException;
const-string v1, "IO Exception during writing moov."
invoke-direct {v0, v1}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
throw v0
:try_end_1cb
.catch Ljava/lang/Exception; {:try_start_1c3 .. :try_end_1cb} :catch_1d0
.catchall {:try_start_1c3 .. :try_end_1cb} :catchall_1cb
:catchall_1cb
move-exception v0
move-object/from16 v16, v2
move-object v2, v3
goto :goto_218
:catch_1d0
move-exception v0
move-object/from16 v16, v2
move-object v2, v3
goto :goto_20d
.line 296
:catch_1d5
:try_start_1d5
new-instance v0, Ljava/lang/RuntimeException;
const-string v1, "IO Exception during output file setup."
invoke-direct {v0, v1}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
throw v0
.line 281
:catch_1dd
new-instance v0, Ljava/lang/RuntimeException;
const-string v1, "IO Exception while patching moov."
invoke-direct {v0, v1}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
throw v0
.line 234
:catch_1e5
new-instance v0, Ljava/lang/RuntimeException;
const-string v1, "IO Exception reading moov contents."
invoke-direct {v0, v1}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
throw v0
:catchall_1ed
move-exception v0
move-object v2, v3
goto :goto_1fd
:catch_1f0
move-exception v0
move-object v2, v3
goto :goto_202
.line 192
:catch_1f3
new-instance v0, Ljava/lang/RuntimeException;
const-string v1, "IO Exception during indexing."
invoke-direct {v0, v1}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
throw v0
:try_end_1fb
.catch Ljava/lang/Exception; {:try_start_1d5 .. :try_end_1fb} :catch_1f0
.catchall {:try_start_1d5 .. :try_end_1fb} :catchall_1ed
:catchall_1fb
move-exception v0
const/4 v2, 0x0
:goto_1fd
const/16 v16, 0x0
goto :goto_218
:catch_200
move-exception v0
const/4 v2, 0x0
:goto_202
const/16 v16, 0x0
goto :goto_20d
.line 181
:catch_205
:try_start_205
new-instance v0, Ljava/lang/RuntimeException;
const-string v1, "IO Exception when initialising the input file stream."
invoke-direct {v0, v1}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
throw v0
:try_end_20d
.catch Ljava/lang/Exception; {:try_start_205 .. :try_end_20d} :catch_200
.catchall {:try_start_205 .. :try_end_20d} :catchall_1fb
.line 379
:goto_20d
:try_start_20d
new-instance v1, Ljava/lang/RuntimeException;
invoke-virtual {v0}, Ljava/lang/Exception;->getMessage()Ljava/lang/String;
move-result-object v3
invoke-direct {v1, v3, v0}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
throw v1
:try_end_217
.catchall {:try_start_20d .. :try_end_217} :catchall_217
:catchall_217
move-exception v0
.line 381
:goto_218
invoke-static {v2}, Lcom/imo/android/imoim/util/ei;->a(Ljava/io/Closeable;)V
.line 382
invoke-static/range {v16 .. v16}, Lcom/imo/android/imoim/util/ei;->a(Ljava/io/Closeable;)V
goto :goto_220
:goto_21f
throw v0
:goto_220
goto :goto_21f
.end method
.method private static a(Ljava/io/FileInputStream;)Ljava/util/ArrayList;
.registers 12
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/io/FileInputStream;",
")",
"Ljava/util/ArrayList<",
"Lcom/imo/android/imoim/util/k/g$a;",
">;"
}
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;,
Ljava/lang/RuntimeException;
}
.end annotation
.line 102
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
const/4 v1, 0x0
const/4 v2, 0x0
.line 106
:goto_7
invoke-virtual {p0}, Ljava/io/FileInputStream;->available()I
move-result v3
if-lez v3, :cond_5a
.line 108
:try_start_d
invoke-static {p0}, Lcom/imo/android/imoim/util/k/g;->c(Ljava/io/InputStream;)Lcom/imo/android/imoim/util/k/g$a;
move-result-object v3
const/16 v4, 0x8
.line 110
iget-wide v5, v3, Lcom/imo/android/imoim/util/k/g$a;->b:J
const-wide/16 v7, 0x1
cmp-long v9, v5, v7
if-nez v9, :cond_23
.line 111
invoke-static {p0}, Lcom/imo/android/imoim/util/k/g;->b(Ljava/io/InputStream;)J
move-result-wide v4
iput-wide v4, v3, Lcom/imo/android/imoim/util/k/g$a;->b:J
const/16 v4, 0x10
.line 115
:cond_23
invoke-virtual {p0}, Ljava/io/FileInputStream;->getChannel()Ljava/nio/channels/FileChannel;
move-result-object v5
invoke-virtual {v5}, Ljava/nio/channels/FileChannel;->position()J
move-result-wide v5
int-to-long v7, v4
sub-long/2addr v5, v7
iput-wide v5, v3, Lcom/imo/android/imoim/util/k/g$a;->c:J
.line 116
invoke-virtual {v0, v3}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
.line 121
iget-object v4, v3, Lcom/imo/android/imoim/util/k/g$a;->a:Ljava/lang/String;
const-string v5, "moov"
invoke-virtual {v4, v5}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v4
const/4 v5, 0x1
if-eqz v4, :cond_3e
const/4 v1, 0x1
.line 123
:cond_3e
iget-object v4, v3, Lcom/imo/android/imoim/util/k/g$a;->a:Ljava/lang/String;
const-string v6, "mdat"
invoke-virtual {v4, v6}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v4
if-eqz v4, :cond_49
const/4 v2, 0x1
.line 126
:cond_49
iget-wide v4, v3, Lcom/imo/android/imoim/util/k/g$a;->b:J
const-wide/16 v9, 0x0
cmp-long v6, v4, v9
if-nez v6, :cond_52
goto :goto_5a
.line 129
:cond_52
iget-wide v3, v3, Lcom/imo/android/imoim/util/k/g$a;->b:J
sub-long/2addr v3, v7
invoke-virtual {p0, v3, v4}, Ljava/io/FileInputStream;->skip(J)J
:try_end_58
.catch Ljava/io/IOException; {:try_start_d .. :try_end_58} :catch_59
goto :goto_7
:catch_59
nop
:cond_5a
:goto_5a
if-eqz v1, :cond_67
if-eqz v2, :cond_5f
return-object v0
.line 141
:cond_5f
new-instance p0, Ljava/lang/RuntimeException;
const-string v0, "No mdat atom type found!"
invoke-direct {p0, v0}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
throw p0
.line 139
:cond_67
new-instance p0, Ljava/lang/RuntimeException;
const-string v0, "No moov atom type found!"
invoke-direct {p0, v0}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
goto :goto_70
:goto_6f
throw p0
:goto_70
goto :goto_6f
.end method
.method private static a(I)[B
.registers 6
const/4 v0, 0x4
new-array v1, v0, [B
const/4 v2, 0x0
:goto_4
if-ge v2, v0, :cond_12
rsub-int/lit8 v3, v2, 0x3
mul-int/lit8 v4, v2, 0x8
ushr-int v4, p0, v4
int-to-byte v4, v4
.line 86
aput-byte v4, v1, v3
add-int/lit8 v2, v2, 0x1
goto :goto_4
:cond_12
return-object v1
.end method
.method private static a(J)[B
.registers 8
const/16 v0, 0x8
new-array v1, v0, [B
const/4 v2, 0x0
:goto_5
if-ge v2, v0, :cond_14
rsub-int/lit8 v3, v2, 0x7
mul-int/lit8 v4, v2, 0x8
ushr-long v4, p0, v4
long-to-int v5, v4
int-to-byte v4, v5
.line 93
aput-byte v4, v1, v3
add-int/lit8 v2, v2, 0x1
goto :goto_5
:cond_14
return-object v1
.end method
.method private static b(Ljava/io/InputStream;)J
.registers 7
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
const/16 v0, 0x8
new-array v1, v0, [B
.line 63
invoke-virtual {p0, v1}, Ljava/io/InputStream;->read([B)I
const-wide/16 v2, 0x0
const/4 p0, 0x0
:goto_a
if-ge p0, v0, :cond_16
.line 66
aget-byte v4, v1, p0
shl-long/2addr v2, v0
and-int/lit16 v4, v4, 0xff
int-to-long v4, v4
add-long/2addr v2, v4
add-int/lit8 p0, p0, 0x1
goto :goto_a
:cond_16
return-wide v2
.end method
.method private static c(Ljava/io/InputStream;)Lcom/imo/android/imoim/util/k/g$a;
.registers 5
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 78
invoke-static {p0}, Lcom/imo/android/imoim/util/k/g;->a(Ljava/io/InputStream;)I
move-result v0
const/4 v1, 0x4
new-array v1, v1, [B
.line 1073
invoke-virtual {p0, v1}, Ljava/io/InputStream;->read([B)I
.line 1074
new-instance p0, Ljava/lang/String;
invoke-direct {p0, v1}, Ljava/lang/String;-><init>([B)V
.line 80
new-instance v1, Lcom/imo/android/imoim/util/k/g$a;
int-to-long v2, v0
invoke-direct {v1, p0, v2, v3}, Lcom/imo/android/imoim/util/k/g$a;-><init>(Ljava/lang/String;J)V
return-object v1
.end method
.method private static d(Ljava/io/InputStream;)Lcom/imo/android/imoim/util/k/g$a;
.registers 6
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 147
:cond_0
:goto_0
invoke-virtual {p0}, Ljava/io/InputStream;->available()I
move-result v0
if-lez v0, :cond_53
.line 148
invoke-static {p0}, Lcom/imo/android/imoim/util/k/g;->c(Ljava/io/InputStream;)Lcom/imo/android/imoim/util/k/g$a;
move-result-object v0
.line 149
iget-object v1, v0, Lcom/imo/android/imoim/util/k/g$a;->a:Ljava/lang/String;
const-string v2, "stco"
.line 1167
invoke-virtual {v1, v2}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v2
const/4 v3, 0x0
const/4 v4, 0x1
if-nez v2, :cond_21
const-string v2, "co64"
invoke-virtual {v1, v2}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v1
if-eqz v1, :cond_1f
goto :goto_21
:cond_1f
const/4 v1, 0x0
goto :goto_22
:cond_21
:goto_21
const/4 v1, 0x1
:goto_22
if-eqz v1, :cond_25
return-object v0
.line 151
:cond_25
iget-object v1, v0, Lcom/imo/android/imoim/util/k/g$a;->a:Ljava/lang/String;
const-string v2, "trak"
.line 2161
invoke-virtual {v1, v2}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v2
if-nez v2, :cond_47
const-string v2, "mdia"
invoke-virtual {v1, v2}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v2
if-nez v2, :cond_47
const-string v2, "minf"
.line 2162
invoke-virtual {v1, v2}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v2
if-nez v2, :cond_47
const-string v2, "stbl"
.line 2163
invoke-virtual {v1, v2}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v1
if-eqz v1, :cond_48
:cond_47
const/4 v3, 0x1
:cond_48
if-nez v3, :cond_0
.line 154
iget-wide v0, v0, Lcom/imo/android/imoim/util/k/g$a;->b:J
const-wide/16 v2, 0x8
sub-long/2addr v0, v2
invoke-virtual {p0, v0, v1}, Ljava/io/InputStream;->skip(J)J
goto :goto_0
:cond_53
const/4 p0, 0x0
return-object p0
.end method