const/16 v22 0x0
const/4 v3 0
label_3:
new-instance v4 Ljava/io/BufferedReader;
new-instance v28 Ljava/io/InputStreamReader;
new-instance v29 Ljava/io/FileInputStream;
const-string v30 "/proc/self/maps"
invoke-direct/range {v29..v30} Ljava/io/FileInputStream;->(Ljava/lang/String;)V
invoke-direct/range {v28..v29} Ljava/io/InputStreamReader;->(Ljava/io/InputStream;)V
move-object/from16 v0 v28
invoke-direct {v4,v0} Ljava/io/BufferedReader;->(Ljava/io/Reader;)V
invoke-virtual {v4} Ljava/io/BufferedReader;->readLine()Ljava/lang/String;
move-result-object v17
label_26:
if-nez v17 :label_163
label_28:
invoke-virtual {v4} Ljava/io/BufferedReader;->close()V
label_31:
invoke-static {} Lcom/baidu/protect/StubApplication;->is64BitEnv()Z
move-result v28
if-eqz v28 :label_352
const-string v26 "libbaiduprotect_x86_64.so"
label_39:
if-eqz v3 :label_162
if-eqz v22 :label_162
const-wide/16 v10 0x0
const-wide/16 v20 0x0
invoke-static/range {v22..v22} Lcom/baidu/protect/StubApplication;->getDataFolder(Ljava/lang/String;)Ljava/lang/String;
move-result-object v6
new-instance v28 Ljava/lang/StringBuilder;
invoke-static {v6} Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v29
invoke-direct/range {v28..v29} Ljava/lang/StringBuilder;->(Ljava/lang/String;)V
move-object/from16 v0 v28
move-object/from16 v1 v22
invoke-virtual {v0,v1} Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v28
const-string v29 "/.x86lib/"
invoke-virtual/range {v28..v29} Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v28
invoke-virtual/range {v28..v28} Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v16
new-instance v28 Ljava/lang/StringBuilder;
invoke-static/range {v16..v16} Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v29
invoke-direct/range {v28..v29} Ljava/lang/StringBuilder;->(Ljava/lang/String;)V
move-object/from16 v0 v28
move-object/from16 v1 v26
invoke-virtual {v0,v1} Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v28
invoke-virtual/range {v28..v28} Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v15
new-instance v8 Ljava/io/File;
move-object/from16 v0 v16
invoke-direct {v8,v0} Ljava/io/File;->(Ljava/lang/String;)V
invoke-virtual {v8} Ljava/io/File;->exists()Z
move-result v28
if-nez v28 :label_115
invoke-virtual {v8} Ljava/io/File;->mkdir()Z
label_115:
new-instance v28 Ljava/lang/StringBuilder;
const-string v29 "assets/"
invoke-direct/range {v28..v29} Ljava/lang/StringBuilder;->(Ljava/lang/String;)V
move-object/from16 v0 v28
move-object/from16 v1 v26
invoke-virtual {v0,v1} Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v28
invoke-virtual/range {v28..v28} Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v25
new-instance v19 Ljava/util/zip/ZipInputStream;
new-instance v28 Ljava/io/FileInputStream;
move-object/from16 v0 v28
invoke-direct {v0,v3} Ljava/io/FileInputStream;->(Ljava/lang/String;)V
move-object/from16 v0 v19
move-object/from16 v1 v28
invoke-direct {v0,v1} Ljava/util/zip/ZipInputStream;->(Ljava/io/InputStream;)V
label_150:
invoke-virtual/range {v19..v19} Ljava/util/zip/ZipInputStream;->getNextEntry()Ljava/util/zip/ZipEntry;
move-result-object v18
if-nez v18 :label_356
label_156:
invoke-virtual/range {v19..v19} Ljava/util/zip/ZipInputStream;->close()V
label_159:
invoke-static {v15} Ljava/lang/System;->load(Ljava/lang/String;)V
label_162:
return-void
label_163:
const-string v28 ".apk"
move-object/from16 v0 v17
move-object/from16 v1 v28
invoke-virtual {v0,v1} Ljava/lang/String;->endsWith(Ljava/lang/String;)Z
move-result v28
if-eqz v28 :label_242
const-string v28 " "
move-object/from16 v0 v17
move-object/from16 v1 v28
invoke-virtual {v0,v1} Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String;
move-result-object v24
move-object/from16 v0 v24
array-length v0 v0
move/from16 v28 v0
add-int/lit8 v28 v28 -1
aget-object v23 v24 v28
const-string v28 "/mnt/asec/"
move-object/from16 v0 v23
move-object/from16 v1 v28
invoke-virtual {v0,v1} Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v28
if-nez v28 :label_218
const-string v28 "/data/app/"
move-object/from16 v0 v23
move-object/from16 v1 v28
invoke-virtual {v0,v1} Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v28
if-eqz v28 :label_248
label_218:
const/16 v28 0xa
move-object/from16 v0 v23
move/from16 v1 v28
invoke-virtual {v0,v1} Ljava/lang/String;->substring(I)Ljava/lang/String;
move-result-object v2
label_228:
const/16 v28 0x2d
move/from16 v0 v28
invoke-virtual {v2,v0} Ljava/lang/String;->lastIndexOf(I)I
move-result v14
const/16 v28 -0x1
move/from16 v0 v28
if-ne v14 v0 :label_294
label_242:
invoke-virtual {v4} Ljava/io/BufferedReader;->readLine()Ljava/lang/Stri