MultiDexForMemoryDex$V26.smali
.class final Lcom/wrapper/proxyapplication/MultiDexForMemoryDex$V26;
.super Ljava/lang/Object;
.source "MultiDexForMemoryDex.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/wrapper/proxyapplication/MultiDexForMemoryDex;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1a
name = "V26"
.end annotation
# direct methods
.method private constructor <init>()V
.registers 1
.line 299
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method static synthetic access$000(Ljava/lang/ClassLoader;Ljava/lang/reflect/Field;[Ljava/nio/ByteBuffer;ZZ)Ljava/util/ArrayList;
.registers 5
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/IllegalArgumentException;,
Ljava/lang/IllegalAccessException;,
Ljava/lang/NoSuchFieldException;,
Ljava/lang/reflect/InvocationTargetException;,
Ljava/lang/NoSuchMethodException;
}
.end annotation
.line 299
invoke-static {p0, p1, p2, p3, p4}, Lcom/wrapper/proxyapplication/MultiDexForMemoryDex$V26;->install(Ljava/lang/ClassLoader;Ljava/lang/reflect/Field;[Ljava/nio/ByteBuffer;ZZ)Ljava/util/ArrayList;
move-result-object p0
return-object p0
.end method
.method private static install(Ljava/lang/ClassLoader;Ljava/lang/reflect/Field;[Ljava/nio/ByteBuffer;ZZ)Ljava/util/ArrayList;
.registers 14
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/ClassLoader;",
"Ljava/lang/reflect/Field;",
"[",
"Ljava/nio/ByteBuffer;",
"ZZ)",
"Ljava/util/ArrayList<",
"Ljava/lang/Object;",
">;"
}
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/IllegalArgumentException;,
Ljava/lang/IllegalAccessException;,
Ljava/lang/NoSuchFieldException;,
Ljava/lang/reflect/InvocationTargetException;,
Ljava/lang/NoSuchMethodException;
}
.end annotation
.line 311
invoke-virtual {p1, p0}, Ljava/lang/reflect/Field;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p0
.line 312
new-instance p1, Ljava/util/ArrayList;
invoke-direct {p1}, Ljava/util/ArrayList;-><init>()V
.line 313
invoke-static {p0, p2, p1}, Lcom/wrapper/proxyapplication/MultiDexForMemoryDex$V26;->makeDexElements(Ljava/lang/Object;[Ljava/nio/ByteBuffer;Ljava/util/List;)[Ljava/lang/Object;
move-result-object v0
const/4 v1, 0x0
if-eqz v0, :cond_d9
.line 315
array-length v2, v0
array-length p2, p2
if-eq v2, p2, :cond_16
goto/16 :goto_d9
.line 322
:cond_16
new-instance p2, Ljava/util/ArrayList;
invoke-direct {p2}, Ljava/util/ArrayList;-><init>()V
.line 324
array-length v2, v0
const/4 v3, 0x0
const/4 v4, 0x0
:goto_1e
if-ge v4, v2, :cond_85
aget-object v5, v0, v4
const-string v6, "dexFile"
.line 325
# invokes: Lcom/wrapper/proxyapplication/MultiDexForMemoryDex;->findField(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/reflect/Field;
invoke-static {v5, v6}, Lcom/wrapper/proxyapplication/MultiDexForMemoryDex;->access$100(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/reflect/Field;
move-result-object v6
.line 326
invoke-virtual {v6, v5}, Ljava/lang/reflect/Field;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v5
const-string v6, "mCookie"
.line 328
# invokes: Lcom/wrapper/proxyapplication/MultiDexForMemoryDex;->findField(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/reflect/Field;
invoke-static {v5, v6}, Lcom/wrapper/proxyapplication/MultiDexForMemoryDex;->access$100(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/reflect/Field;
move-result-object v6
.line 330
invoke-virtual {v6}, Ljava/lang/reflect/Field;->getType()Ljava/lang/Class;
move-result-object v7
invoke-virtual {v7}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object v7
const-string v8, "int"
invoke-virtual {v7, v8}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v7
if-eqz v7, :cond_4e
.line 332
invoke-virtual {v6, v5}, Ljava/lang/reflect/Field;->getInt(Ljava/lang/Object;)I
move-result v5
invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v5
.line 333
invoke-virtual {p2, v5}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
goto :goto_82
.line 335
:cond_4e
invoke-virtual {v6}, Ljava/lang/reflect/Field;->getType()Ljava/lang/Class;
move-result-object v7
invoke-virtual {v7}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object v7
const-string v8, "long"
invoke-virtual {v7, v8}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v7
if-eqz v7, :cond_71
.line 338
invoke-virtual {v6, v5}, Ljava/lang/reflect/Field;->getLong(Ljava/lang/Object;)J
move-result-wide v7
invoke-static {v7, v8}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object v7
.line 339
invoke-virtual {p2, v7}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
if-eqz p3, :cond_82
const-wide/16 v7, 0x0
.line 341
invoke-virtual {v6, v5, v7, v8}, Ljava/lang/reflect/Field;->setLong(Ljava/lang/Object;J)V
goto :goto_82
:cond_71
if-eqz p4, :cond_76
.line 347
invoke-virtual {p2, v5}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
.line 350
:cond_76
invoke-virtual {v6, v5}, Ljava/lang/reflect/Field;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v7
.line 351
invoke-virtual {p2, v7}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
if-eqz p3, :cond_82
.line 354
invoke-virtual {v6, v5, v1}, Ljava/lang/reflect/Field;->set(Ljava/lang/Object;Ljava/lang/Object;)V
:cond_82
:goto_82
add-int/lit8 v4, v4, 0x1
goto :goto_1e
:cond_85
const-string p3, "dexElements"
.line 360
# invokes: Lcom/wrapper/proxyapplication/MultiDexForMemoryDex;->expandFieldArray(Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)V
invoke-static {p0, p3, v0}, Lcom/wrapper/proxyapplication/MultiDexForMemoryDex;->access$200(Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)V
.line 361
invoke-virtual {p1}, Ljava/util/ArrayList;->size()I
move-result p3
if-lez p3, :cond_d5
.line 362
invoke-virtual {p1}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator;
move-result-object p3
:goto_94
invoke-interface {p3}, Ljava/util/Iterator;->hasNext()Z
move-result p4
if-eqz p4, :cond_a1
invoke-interface {p3}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object p4
check-cast p4, Ljava/io/IOException;
goto :goto_94
:cond_a1
const-string p3, "dexElementsSuppressedExceptions"
.line 365
# invokes: Lcom/wrapper/proxyapplication/MultiDexForMemoryDex;->findField(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/reflect/Field;
invoke-static {p0, p3}, Lcom/wrapper/proxyapplication/MultiDexForMemoryDex;->access$100(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/reflect/Field;
move-result-object p3
.line 367
invoke-virtual {p3, p0}, Ljava/lang/reflect/Field;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p4
check-cast p4, [Ljava/io/IOException;
check-cast p4, [Ljava/io/IOException;
if-nez p4, :cond_be
.line 371
invoke-virtual {p1}, Ljava/util/ArrayList;->size()I
move-result p4
new-array p4, p4, [Ljava/io/IOException;
invoke-virtual {p1, p4}, Ljava/util/ArrayList;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
move-result-object p1
check-cast p1, [Ljava/io/IOException;
goto :goto_d2
.line 373
:cond_be
invoke-virtual {p1}, Ljava/util/ArrayList;->size()I
move-result v0
array-length v1, p4
add-int/2addr v0, v1
new-array v0, v0, [Ljava/io/IOException;
.line 375
invoke-virtual {p1, v0}, Ljava/util/ArrayList;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
.line 376
invoke-virtual {p1}, Ljava/util/ArrayList;->size()I
move-result p1
array-length v1, p4
invoke-static {p4, v3, v0, p1, v1}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
move-object p1, v0
.line 381
:goto_d2
invoke-virtual {p3, p0, p1}, Ljava/lang/reflect/Field;->set(Ljava/lang/Object;Ljava/lang/Object;)V
:cond_d5
const/4 p0, 0x1
.line 384
sput p0, Lcom/wrapper/proxyapplication/MultiDexForMemoryDex;->hasInjected:I
return-object p2
:cond_d9
:goto_d9
return-object v1
.end method
.method private static makeDexElements(Ljava/lang/Object;[Ljava/nio/ByteBuffer;Ljava/util/List;)[Ljava/lang/Object;
.registers 10
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Object;",
"[",
"Ljava/nio/ByteBuffer;",
"Ljava/util/List<",
"Ljava/io/IOException;",
">;)[",
"Ljava/lang/Object;"
}
.end annotation
const/4 v0, 0x0
:try_start_1
const-string v1, "makeInMemoryDexElements"
const/4 v2, 0x2
new-array v3, v2, [Ljava/lang/Class;
.line 397
const-class v4, [Ljava/nio/ByteBuffer;
const/4 v5, 0x0
aput-object v4, v3, v5
const-class v4, Ljava/util/List;
const/4 v6, 0x1
aput-object v4, v3, v6
# invokes: Lcom/wrapper/proxyapplication/MultiDexForMemoryDex;->findMethod(Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
invoke-static {p0, v1, v3}, Lcom/wrapper/proxyapplication/MultiDexForMemoryDex;->access$300(Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
move-result-object v1
:try_end_14
.catch Ljava/lang/NoSuchMethodException; {:try_start_1 .. :try_end_14} :catch_36
:try_start_14
new-array v2, v2, [Ljava/lang/Object;
aput-object p1, v2, v5
aput-object p2, v2, v6
.line 399
invoke-virtual {v1, p0, v2}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p0
check-cast p0, [Ljava/lang/Object;
check-cast p0, [Ljava/lang/Object;
:try_end_22
.catch Ljava/lang/IllegalAccessException; {:try_start_14 .. :try_end_22} :catch_32
.catch Ljava/lang/IllegalArgumentException; {:try_start_14 .. :try_end_22} :catch_2d
.catch Ljava/lang/reflect/InvocationTargetException; {:try_start_14 .. :try_end_22} :catch_28
.catch Ljava/lang/RuntimeException; {:try_start_14 .. :try_end_22} :catch_23
.catch Ljava/lang/NoSuchMethodException; {:try_start_14 .. :try_end_22} :catch_36
return-object p0
:catch_23
move-exception p0
.line 411
:try_start_24
invoke-virtual {p0}, Ljava/lang/RuntimeException;->printStackTrace()V
goto :goto_36
:catch_28
move-exception p0
.line 408
invoke-virtual {p0}, Ljava/lang/reflect/InvocationTargetException;->printStackTrace()V
goto :goto_36
:catch_2d
move-exception p0
.line 405
invoke-virtual {p0}, Ljava/lang/IllegalArgumentException;->printStackTrace()V
goto :goto_36
:catch_32
move-exception p0
.line 402
invoke-virtual {p0}, Ljava/lang/IllegalAccessException;->printStackTrace()V
:try_end_36
.catch Ljava/lang/NoSuchMethodException; {:try_start_24 .. :try_end_36} :catch_36
:catch_36
:goto_36
return-object v0
.end method