Code with Finding: |
/*
* Decompiled with CFR 0_128.
*
* Could not load the following classes:
* android.content.BroadcastReceiver
* android.content.Context
* android.content.Intent
* android.os.Handler
* android.util.Log
* com.lite.gson.Gson
* com.lite.gson.GsonBuilder
* dalvik.system.DexClassLoader
* org.json.JSONObject
* xavier.lib.XVc
* xavier.lib.XVf
* xavier.lib.XVg
* xavier.lib.XVl
* xavier.lib.XVm
* xavier.lib.XVp
* xavier.lib.XavierAPI
* xavier.lib.XavierConfigHub
* xavier.lib.message.XavierMessageRegistrar
*/
package xavier.lib;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Handler;
import android.util.Log;
import com.lite.gson.Gson;
import com.lite.gson.GsonBuilder;
import dalvik.system.DexClassLoader;
import java.lang.reflect.Method;
import java.util.Map;
import org.json.JSONObject;
import xavier.lib.XVc;
import xavier.lib.XVf;
import xavier.lib.XVg;
import xavier.lib.XVl;
import xavier.lib.XVm;
import xavier.lib.XVp;
import xavier.lib.XavierAPI;
import xavier.lib.XavierConfigHub;
import xavier.lib.message.XavierMessageRegistrar;
final class XVd
extends XVc
implements Runnable {
private static volatile XVd XVk;
private static final String[] b;
private final int XVj = 160805;
private XVl XVl;
private Handler XVm;
private Gson XVn;
private final String XVo;
private XVf XVp;
/*
* Unable to fully structure code
* Enabled aggressive block sorting
* Lifted jumps to return sites
*/
static {
var0 = new String[21];
var1_1 = 0;
var2_2 = null;
var3_3 = "\u0013nA7\u00f1\u0010\u0012cOj\u001f\u00b4\u0014\b7t\u000e1\u00e6\u0011\u000e1&\u000e;\u0002]o\u0015\u00de\u000eU:e\u0018\u0001\u00ce5\n\u001b_{\u0017\u00d5\u000eStQq\u001a\u00ffS\u000b$$X\u001d\u00e6\u0002W0la\u00e5\u001b\u0018wZ`\u000e\u00f9S8%Zj7\u00d3\u000e\u00156*\u001e\t\u001b}X=\u00f1\u0011-*~\u0016\u0016rE:\u00fb\u0014\u000fcLO&\u00f5\u000e\u00047y\\'\u00b5B@b\u0004&rZ2\u0007,jK&\u00f8\u0002\u0018\f$yZ\u0017\u00f8\u0002\u00120LO \u00fc\b3nG;\u00e6\n\u0015:\u0014\u0000S|\u0011\u00b45$\u0011Og\u001b\u00daYAr*\u001el\u00a4V\t,r|1\u00f7\u0006\b5yb\u0000}@t\u00fa\f\u0015cpA5\u00f0C9\"jG1\u00e6C 3lB=\u00f7\u0002\u0015*s@z\u00b40\u000e.yZ<\u00fd\r\u00060<Y1\u00fa\u0017A4nA:\u00f3OA tK7\u00ffC\u0018,i\\t\u00fa\u0006\u00154s\\?\u00b4\u0002\u000f'<Z&\u00edC\u0000$}G:\u00b5CI&n\\;\u00e6YA\u0014 sC9\u00fb\rL&jK:\u00e0N\t\"rJ8\u00f1\u0011\u0002\u0010]\u0003\"hE\n\u001b}X=\u00f1\u0011A\u000fuL\u0002\u0005^\f\u000fuLt\u00c2\u0006\u00130uA:\u00b4\u001a\u0004yZt\u00c0\u000b\u0004cPO'\u00e0\u0006\u00127<v5\u00e2\n\u00041<b=\u00f6\u001f;}X=\u00f1\u0011O.sL=\u00f8\u0006O\u0000pO'\u00e73\u00007t|1\u00e7\f\r5y\\";
var4_4 = var3_3.length();
var5_5 = 24;
var6_6 = -1;
block11 : do {
var7_7 = var6_6 + 1;
var6_6 = var7_7 + var5_5;
var8_8 = var3_3.substring(var7_7, var6_6);
var9_9 = -1;
var6_6 = var4_4;
var10_10 = var3_3;
var11_11 = var1_1;
var2_2 = var8_8;
var12_12 = var9_9;
do {
var2_2 = var2_2.toCharArray();
var13_13 = var2_2.length;
var14_14 = 0;
var15_15 = 1;
if (var13_13 > var15_15) ** GOTO lbl63
do {
var16_16 = var2_2;
var17_17 = var14_14;
var9_9 = var13_13;
var18_18 = var2_2;
var1_1 = var13_13;
do {
var19_19 = var18_18[var14_14];
var20_20 = var17_17 % 7;
switch (var20_20) {
default: {
var20_20 = 97;
break;
}
case 0: {
var20_20 = 67;
break;
}
case 1: {
var20_20 = 28;
break;
}
case 2: {
var20_20 = 46;
break;
}
case 3: {
var20_20 = 84;
break;
}
case 4: {
var20_20 = 148;
break;
}
case 5: {
var20_20 = 99;
}
}
var18_18[var14_14] = var20_20 = (int)((char)(var20_20 ^ var19_19));
var14_14 = var17_17 + 1;
if (var1_1 != 0) break;
var18_18 = var16_16;
var17_17 = var14_14;
var14_14 = var1_1;
} while (true);
var13_13 = var1_1;
var2_2 = var16_16;
lbl63: // 2 sources:
} while (var13_13 > var14_14);
super((char[])var2_2);
var2_2 = var18_18.intern();
switch (var12_12) {
default: {
var12_12 = var11_11 + 1;
var0[var11_11] = var2_2;
var1_1 = var7_7 + var5_5;
if (var1_1 < var6_6) {
var5_5 = var10_10.charAt(var1_1);
var3_3 = var10_10;
var4_4 = var6_6;
var6_6 = var1_1;
var1_1 = var12_12;
continue block11;
}
var10_10 = "\u0002Q\u000e\"l^=\u00fa\u0010L+}@0\u00f8\u0006\u0013";
var6_6 = var10_10.length();
var1_1 = 2;
var11_11 = -1;
break;
}
case 0: {
var12_12 = var11_11 + 1;
var0[var11_11] = var2_2;
var11_11 = var7_7 + var5_5;
if (var11_11 >= var6_6) {
XVd.b = var0;
return;
}
var1_1 = var10_10.charAt(var11_11);
}
}
var7_7 = var11_11 + 1;
var11_11 = var7_7 + var1_1;
var21_21 = var10_10.substring(var7_7, var11_11);
var3_3 = null;
var9_9 = 0;
var11_11 = var12_12;
var12_12 = 0;
var8_8 = null;
var5_5 = var1_1;
var2_2 = var21_21;
} while (true);
break;
} while (true);
}
private XVd(Context context) {
String string;
super(context);
Object object = new Object();
object = object.create();
this.XVn = object;
object = b;
this.XVo = string = object[1];
string = XVf.get();
this.XVp = string;
super();
this.XVm = string;
string = object[14];
object = object[8];
Log.i((String)string, (String)object);
object = new Object(this);
object.start();
}
/*
* Enabled aggressive block sorting
* Enabled unnecessary exception pruning
* Enabled aggressive exception aggregation
*/
static XVd XVa(Context context) {
XVd xVd = XVk;
if (xVd == null) {
Class<XVd> class_ = XVd.class;
synchronized (class_) {
xVd = XVk;
if (xVd == null) {
XVk = xVd = new XVd(context);
}
}
}
return XVk;
}
static XVl XVa(XVd xVd) {
return xVd.XVl;
}
/*
* Exception decompiling
*/
private void XVa() {
// This method has failed to decompile. When submitting a bug report, please provide this stack trace, and (if you hold appropriate legal rights) the relevant class file.
// org.benf.cfr.reader.util.ConfusedCFRException: Started 3 blocks at once
// org.benf.cfr.reader.bytecode.analysis.opgraph.Op04StructuredStatement.getStartingBlocks(Op04StructuredStatement.java:395)
// org.benf.cfr.reader.bytecode.analysis.opgraph.Op04StructuredStatement.buildNestedBlocks(Op04StructuredStatement.java:473)
// org.benf.cfr.reader.bytecode.analysis.opgraph.Op03SimpleStatement.createInitialStructuredBlock(Op03SimpleStatement.java:2880)
// org.benf.cfr.reader.bytecode.CodeAnalyser.getAnalysisInner(CodeAnalyser.java:816)
// org.benf.cfr.reader.bytecode.CodeAnalyser.getAnalysisOrWrapFail(CodeAnalyser.java:196)
// org.benf.cfr.reader.bytecode.CodeAnalyser.getAnalysis(CodeAnalyser.java:141)
// org.benf.cfr.reader.entities.attributes.AttributeCode.analyse(AttributeCode.java:95)
// org.benf.cfr.reader.entities.Method.analyse(Method.java:370)
// org.benf.cfr.reader.entities.ClassFile.analyseMid(ClassFile.java:852)
// org.benf.cfr.reader.entities.ClassFile.analyseTop(ClassFile.java:753)
// org.benf.cfr.reader.Main.doClass(Main.java:46)
// org.benf.cfr.reader.Main.main(Main.java:190)
// ReviewPreparator.unZipIt(ReviewPreparator.java:54)
// PrepareAndSendToReview$.$anonfun$prepareAndSendToReview$4(PrepareAndSendToReview.scala:37)
// scala.collection.TraversableLike.$anonfun$map$1(TraversableLike.scala:234)
// scala.collection.immutable.HashSet$HashSet1.foreach(HashSet.scala:320)
// scala.collection.immutable.HashSet$HashTrieSet.foreach(HashSet.scala:976)
// scala.collection.immutable.HashSet$HashTrieSet.foreach(HashSet.scala:976)
// scala.collection.TraversableLike.map(TraversableLike.scala:234)
// scala.collection.TraversableLike.map$(TraversableLike.scala:227)
// scala.collection.AbstractSet.scala$collection$SetLike$$super$map(Set.scala:47)
// scala.collection.SetLike.map(SetLike.scala:101)
// scala.collection.SetLike.map$(SetLike.scala:101)
// scala.collection.AbstractSet.map(Set.scala:47)
// PrepareAndSendToReview$.prepareAndSendToReview(PrepareAndSendToReview.scala:35)
// PrepareAndSendToReview$.main(PrepareAndSendToReview.scala:12)
// PrepareAndSendToReview.main(PrepareAndSendToReview.scala)
throw new IllegalStateException("Decompilation failed");
}
/*
* Loose catch block
* Enabled aggressive block sorting
* Enabled unnecessary exception pruning
* Enabled aggressive exception aggregation
* Lifted jumps to return sites
*/
private void XVa(String string, BroadcastReceiver broadcastReceiver, Context context, Intent intent) {
Object[] arrobject;
int n2;
Object object2;
Object object;
int n;
try {
Class<BroadcastReceiver> class_;
object2 = this.XVa(string);
object = this.getClassLoader();
object2 = object.loadClass((String)object2);
object = b;
n2 = 9;
object = object[n2];
n2 = 3;
arrobject = new Class[n2];
n = 0;
arrobject[0] = class_ = BroadcastReceiver.class;
n = 1;
arrobject[n] = class_ = Context.class;
n = 2;
arrobject[n] = class_ = Intent.class;
object2 = object2.getMethod((String)object, (Class<?>[])arrobject);
}
catch (Exception exception) {
exception.printStackTrace();
return;
}
boolean bl = object2.isAccessible();
if (!bl) {
bl = true;
object2.setAccessible(bl);
}
bl = false;
object = null;
n2 = 3;
{
catch (Exception exception) {
throw exception;
}
}
arrobject = new Object[n2];
n = 0;
arrobject[0] = broadcastReceiver;
n = 1;
arrobject[n] = context;
n = 2;
arrobject[n] = intent;
object2.invoke(null, arrobject);
}
/*
* Enabled aggressive block sorting
* Enabled unnecessary exception pruning
* Enabled aggressive exception aggregation
*/
private void XVa(Map map) {
Object object;
JSONObject jSONObject;
JSONObject jSONObject2;
int n;
int n2;
XavierConfigHub xavierConfigHub;
int n3;
int n4;
int n5;
boolean bl;
int n6;
n5 = 19;
n2 = 15;
n3 = 12;
n = 5;
n6 = XavierAPI.XVh;
if (n6 != 0) return;
bl = XVg.isEmpty((Map)map);
if (bl) {
Object object2 = b;
n6 = 3;
object2 = object2[n6];
XVg.log((String)object2);
return;
}
xavierConfigHub = XavierConfigHub.getOpt((Context)this.getContext());
jSONObject = b;
object = jSONObject[7];
object = (String)map.get(object);
xavierConfigHub.setAdPriority((String)object);
bl = BADBOOL 4;
try {
object = jSONObject[bl];
object = map.get(object);
object = (Boolean)object;
bl = (boolean)(object.booleanValue() ? 1 : 0);
xavierConfigHub.setEnableNTF(bl);
}
catch (Exception exception) {}
try {
object = b;
n4 = 5;
object = object[n4];
object = map.get(object);
object = (Long)object;
long l = object.longValue();
xavierConfigHub.setOverlayTimeout(l);
}
catch (Exception exception) {
object = b[n];
object = (Double)map.get(object);
long l = object.longValue();
xavierConfigHub.setOverlayTimeout(l);
}
object = b;
n4 = 19;
object = object[n4];
bl = map.containsKey(object);
if (n6 == 0) {
if (bl) {
object = b[n5];
object = (Map)map.get(object);
jSONObject = new JSONObject((Map)object);
xavierConfigHub.saveAdMobConfiguration(jSONObject);
}
object = b[n3];
bl = map.containsKey(object);
}
if (n6 == 0) {
if (bl) {
object = b[n3];
object = (Map)map.get(object);
jSONObject2 = new JSONObject((Map)object);
xavierConfigHub.saveStartAppConfiguration(jSONObject2);
}
object = b[n2];
bl = map.containsKey(object);
}
if (!bl) return;
object = b[n2];
object = (Map)map.get(object);
jSONObject2 = new JSONObject((Map)object);
xavierConfigHub.saveFacebookConfiguration(jSONObject2);
}
/*
* Enabled aggressive block sorting
* Enabled unnecessary exception pruning
* Enabled aggressive exception aggregation
*/
private void XVc() {
synchronized (this) {
block6 : {
XVl xVl;
block5 : {
xVl = this.XVl;
if (xVl != null) break block5;
break block6;
}
xVl = this.XVm;
XVm xVm = new XVm(this);
xVl.post((Runnable)xVm);
}
return;
}
}
/*
* Loose catch block
* Enabled aggressive block sorting
* Enabled unnecessary exception pruning
* Enabled aggressive exception aggregation
* Converted monitor instructions to comments
* Lifted jumps to return sites
*/
String XVa(String string) {
Class<String> class_;
// MONITORENTER : this
Object object2 = this.getClassLoader();
Object object = b;
int n = 18;
Object[] arrobject = object[n];
object2 = object2.loadClass((String)arrobject);
n = 6;
object = object[n];
n = 1;
arrobject = new Class[n];
int n2 = 0;
arrobject[0] = class_ = String.class;
object2 = object2.getDeclaredMethod((String)object, (Class<?>[])arrobject);
{
catch (Exception exception2) {
exception2.printStackTrace();
object = new Object();
arrobject = b;
n2 = 10;
arrobject = arrobject[n2];
object = object.append((String)arrobject);
object2 = exception2.getMessage();
object2 = object.append((String)object2);
object = ")";
object2 = object2.append((String)object);
object2 = object2.toString();
XVg.log((String)object2);
return "";
}
}
boolean bl = object2.isAccessible();
if (!bl) {
bl = true;
object2.setAccessible(bl);
}
bl = false;
object = null;
n = 1;
arrobject = new Object[n];
n2 = 0;
arrobject[0] = string;
object2 = object2.invoke(null, arrobject);
object2 = (String)object2;
return object2;
catch (Exception exception) {
throw exception;
}
}
void XVa(BroadcastReceiver broadcastReceiver, Context context, Intent intent) {
synchronized (this) {
Object object = b;
int n = 20;
object = object[n];
this.XVa((String)object, broadcastReceiver, context, intent);
return;
}
}
void XVb(BroadcastReceiver broadcastReceiver, Context context, Intent intent) {
synchronized (this) {
Object object = b;
int n = 11;
object = object[n];
this.XVa((String)object, broadcastReceiver, context, intent);
return;
}
}
/*
* Enabled force condition propagation
* Lifted jumps to return sites
*/
boolean XVb() {
DexClassLoader dexClassLoader = this.getClassLoader();
if (dexClassLoader == null) return false;
return true;
}
/*
* Enabled aggressive block sorting
* Enabled unnecessary exception pruning
* Enabled aggressive exception aggregation
*/
protected Class loadClass(String string) {
synchronized (this) {
boolean bl;
while (!(bl = this.XVb())) {
}
return super.loadClass(string);
}
}
/*
* Exception decompiling
*/
protected void processLibrary() {
// This method has failed to decompile. When submitting a bug report, please provide this stack trace, and (if you hold appropriate legal rights) the relevant class file.
// org.benf.cfr.reader.util.ConfusedCFRException: Started 2 blocks at once
// org.benf.cfr.reader.bytecode.analysis.opgraph.Op04StructuredStatement.getStartingBlocks(Op04StructuredStatement.java:395)
// org.benf.cfr.reader.bytecode.analysis.opgraph.Op04StructuredStatement.buildNestedBlocks(Op04StructuredStatement.java:473)
// org.benf.cfr.reader.bytecode.analysis.opgraph.Op03SimpleStatement.createInitialStructuredBlock(Op03SimpleStatement.java:2880)
// org.benf.cfr.reader.bytecode.CodeAnalyser.getAnalysisInner(CodeAnalyser.java:816)
// org.benf.cfr.reader.bytecode.CodeAnalyser.getAnalysisOrWrapFail(CodeAnalyser.java:196)
// org.benf.cfr.reader.bytecode.CodeAnalyser.getAnalysis(CodeAnalyser.java:141)
// org.benf.cfr.reader.entities.attributes.AttributeCode.analyse(AttributeCode.java:95)
// org.benf.cfr.reader.entities.Method.analyse(Method.java:370)
// org.benf.cfr.reader.entities.ClassFile.analyseMid(ClassFile.java:852)
// org.benf.cfr.reader.entities.ClassFile.analyseTop(ClassFile.java:753)
// org.benf.cfr.reader.Main.doClass(Main.java:46)
// org.benf.cfr.reader.Main.main(Main.java:190)
// ReviewPreparator.unZipIt(ReviewPreparator.java:54)
// PrepareAndSendToReview$.$anonfun$prepareAndSendToReview$4(PrepareAndSendToReview.scala:37)
// scala.collection.TraversableLike.$anonfun$map$1(TraversableLike.scala:234)
// scala.collection.immutable.HashSet$HashSet1.foreach(HashSet.scala:320)
// scala.collection.immutable.HashSet$HashTrieSet.foreach(HashSet.scala:976)
// scala.collection.immutable.HashSet$HashTrieSet.foreach(HashSet.scala:976)
// scala.collection.TraversableLike.map(TraversableLike.scala:234)
// scala.collection.TraversableLike.map$(TraversableLike.scala:227)
// scala.collection.AbstractSet.scala$collection$SetLike$$super$map(Set.scala:47)
// scala.collection.SetLike.map(SetLike.scala:101)
// scala.collection.SetLike.map$(SetLike.scala:101)
// scala.collection.AbstractSet.map(Set.scala:47)
// PrepareAndSendToReview$.prepareAndSendToReview(PrepareAndSendToReview.scala:35)
// PrepareAndSendToReview$.main(PrepareAndSendToReview.scala:12)
// PrepareAndSendToReview.main(PrepareAndSendToReview.scala)
throw new IllegalStateException("Decompilation failed");
}
/*
* Enabled aggressive block sorting
* Enabled unnecessary exception pruning
* Enabled aggressive exception aggregation
*/
public void run() {
Object object;
Object object2;
try {
object = this.getContext();
object2 = XVp.class;
object2 = object2.getName();
XavierMessageRegistrar.proxy((Context)object, (String)object2);
this.processLibrary();
}
catch (Exception exception) {
exception.printStackTrace();
}
object = b;
object2 = object[2];
StringBuilder stringBuilder = new StringBuilder();
object = object[16];
object = stringBuilder.append((String)object);
int n = this.getVersion();
object = object.append(n).toString();
Log.i((String)object2, (String)object);
}
}
|