Code with Finding: |
/*
* Decompiled with CFR 0_128.
*
* Could not load the following classes:
* android.content.Context
* android.os.Build
* android.os.Build$VERSION
* com.whatsapp.App
* com.whatsapp.MediaData
* com.whatsapp.a29
* com.whatsapp.ad7
* com.whatsapp.dy
* com.whatsapp.ho
* com.whatsapp.k6
* com.whatsapp.n2
* com.whatsapp.protocol.a9
* com.whatsapp.protocol.ad
* com.whatsapp.protocol.ay
* com.whatsapp.up
* com.whatsapp.util.Log
* com.whatsapp.util.e
* com.whatsapp.wa
* de.greenrobot.event.f
*/
package com.whatsapp;
import android.content.Context;
import android.os.Build;
import com.whatsapp.App;
import com.whatsapp.Conversation;
import com.whatsapp.MediaData;
import com.whatsapp.a29;
import com.whatsapp.ad7;
import com.whatsapp.c2dm.C2DMRegistrar;
import com.whatsapp.dy;
import com.whatsapp.ho;
import com.whatsapp.k6;
import com.whatsapp.n2;
import com.whatsapp.protocol.a9;
import com.whatsapp.protocol.ad;
import com.whatsapp.protocol.ay;
import com.whatsapp.up;
import com.whatsapp.util.Log;
import com.whatsapp.util.e;
import com.whatsapp.wa;
import de.greenrobot.event.f;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
final class u5
extends up {
private static final String[] z;
/*
* Enabled aggressive block sorting
*/
static {
String[] arrstring = new String[14];
String string = "\f;'9x\u0000;-{zA$8x|\n'99x\u000e$:d";
int n = -1;
String[] arrstring2 = arrstring;
int n2 = 0;
block21 : do {
char[] arrc = string.toCharArray();
int n3 = arrc.length;
int n4 = 0;
do {
int n5;
if (n3 <= n4) {
String string2 = new String(arrc).intern();
switch (n) {
default: {
arrstring2[n2] = string2;
string = "\u000e$:8r\n'9vx\n7\"vq\b1.7j\u0001?$xh\u0001t>no\nt";
n2 = 1;
arrstring2 = arrstring;
n = 0;
continue block21;
}
case 0: {
arrstring2[n2] = string2;
string = "\u0006:<~l";
n2 = 2;
arrstring2 = arrstring;
n = 1;
continue block21;
}
case 1: {
arrstring2[n2] = string2;
string = "\u001d1&vf";
n2 = 3;
arrstring2 = arrstring;
n = 2;
continue block21;
}
case 2: {
arrstring2[n2] = string2;
string = "\u000e:.ep\u00060dez\u001c;?e|\nne8|\u00009d`w\u000e 9vo\u001f{x&,^ds.)Ze";
n2 = 4;
arrstring2 = arrstring;
n = 3;
continue block21;
}
case 3: {
arrstring2[n2] = string2;
n2 = 5;
arrstring2 = arrstring;
string = "\u0002'-v{\u000b1.8y\u001d;'Hq\u000e9/7v\u001ct/zo\u001b-j7u\u00060p";
n = 4;
continue block21;
}
case 4: {
arrstring2[n2] = string2;
n2 = 6;
string = "O9/dl\u000e3/-";
n = 5;
arrstring2 = arrstring;
continue block21;
}
case 5: {
arrstring2[n2] = string2;
n2 = 7;
string = "/'d`w\u000e 9vo\u001fz$rk";
n = 6;
arrstring2 = arrstring;
continue block21;
}
case 6: {
arrstring2[n2] = string2;
n2 = 8;
string = "\u001f=)cj\u001d1";
n = 7;
arrstring2 = arrstring;
continue block21;
}
case 7: {
arrstring2[n2] = string2;
n2 = 9;
string = "\u000e$:8r\n'9vx\n{8r|\n=<r{@:/`j\u001d8j";
n = 8;
arrstring2 = arrstring;
continue block21;
}
case 8: {
arrstring2[n2] = string2;
n2 = 10;
string = "\u000e$:8r\n'9vx\n{8r|\n=<r{@:/`j\u001d8j";
n = 9;
arrstring2 = arrstring;
continue block21;
}
case 9: {
arrstring2[n2] = string2;
n2 = 11;
string = "\u001d1&vf";
n = 10;
arrstring2 = arrstring;
continue block21;
}
case 10: {
arrstring2[n2] = string2;
n2 = 12;
string = "\u001f=)cj\u001d1";
n = 11;
arrstring2 = arrstring;
continue block21;
}
case 11: {
arrstring2[n2] = string2;
n2 = 13;
string = "\u000e$:8r\n'9vx\n{8r|\n=<r{@0?gs\u00067+czO";
n = 12;
arrstring2 = arrstring;
continue block21;
}
case 12:
}
arrstring2[n2] = string2;
z = arrstring;
return;
}
char c = arrc[n4];
switch (n4 % 5) {
default: {
n5 = 31;
break;
}
case 0: {
n5 = 111;
break;
}
case 1: {
n5 = 84;
break;
}
case 2: {
n5 = 74;
break;
}
case 3: {
n5 = 23;
}
}
arrc[n4] = (char)(n5 ^ c);
++n4;
} while (true);
break;
} while (true);
}
u5() {
}
private void a(long l) {
if (!App.aD && l > 900000L && App.k((Context)App.r)) {
C2DMRegistrar.b((Context)App.r);
App.D((String)z[0]);
App.aD = true;
}
}
public void a() {
if (App.aW.J()) {
App.c((Runnable)new k6(this));
}
}
public void a(ad ad2) {
if (ad2.o != null && !App.aY && ad2.N != 8 && System.currentTimeMillis() - ad2.x > 900000L) {
App.aY = true;
boolean bl = App.k((Context)App.r);
if (bl) {
App.c((Context)App.r, (int)(1 + App.b((Context)App.r)));
if (App.k((Context)App.r) != bl) {
App.e((Context)App.r);
}
}
}
}
/*
* Exception decompiling
*/
public void a(ad var1_1, int var2_2) {
// 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.
// java.lang.IllegalStateException: Backjump on non jumping statement [138] lbl337 : TryStatement: try { 85[TRYBLOCK]
// org.benf.cfr.reader.bytecode.analysis.opgraph.op3rewriters.Cleaner$1.call(Cleaner.java:44)
// org.benf.cfr.reader.bytecode.analysis.opgraph.op3rewriters.Cleaner$1.call(Cleaner.java:22)
// org.benf.cfr.reader.util.graph.GraphVisitorDFS.process(GraphVisitorDFS.java:68)
// org.benf.cfr.reader.bytecode.analysis.opgraph.op3rewriters.Cleaner.removeUnreachableCode(Cleaner.java:54)
// org.benf.cfr.reader.bytecode.analysis.opgraph.op3rewriters.RemoveDeterministicJumps.apply(RemoveDeterministicJumps.java:35)
// org.benf.cfr.reader.bytecode.CodeAnalyser.getAnalysisInner(CodeAnalyser.java:495)
// 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");
}
public void a(ad ad2, boolean bl) {
if (ad2 != null) {
App.a((String)z[9], (ad)ad2);
Log.i((String)(z[10] + bl));
App.g((ad)ad2);
if (!ad2.m.b && bl && App.r((ad)ad2) && App.b((ad)ad2)) {
ho.a().b(ad2);
}
}
}
/*
* Enabled aggressive block sorting
*/
public void a(Collection collection, Map map) {
boolean bl = App.U;
HashMap<String, ArrayList<ad>> hashMap = new HashMap<String, ArrayList<ad>>();
for (ad ad2 : collection) {
ArrayList<ad> arrayList = (ArrayList<ad>)hashMap.get(ad2.m.a);
if (arrayList == null) {
arrayList = new ArrayList<ad>();
hashMap.put(ad2.m.a, arrayList);
}
arrayList.add(ad2);
if (!bl) continue;
}
for (Map.Entry entry : hashMap.entrySet()) {
Integer n3 = (Integer)map.get(entry.getKey());
String string = (String)entry.getKey();
Collection collection2 = (Collection)entry.getValue();
int n4 = n3 == null ? 0 : n3;
App.a((String)string, (Collection)collection2, (int)n4);
if (!bl) continue;
}
}
public void b(ad ad2) {
block4 : {
block6 : {
boolean bl;
block7 : {
block5 : {
bl = App.U;
if (ad2 == null) break block4;
App.a((String)z[13], (ad)ad2);
if (ad2.m.b) break block5;
App.g((ad)ad2);
if (!bl) break block4;
}
if (ad2.n != 6) break block6;
if (!(ad2 instanceof n2)) break block7;
App.b((ay)((n2)ad2).P);
if (!bl) break block4;
}
if (ad2.C != 6L) break block4;
App.e((String)ad2.m.c, (String)ad2.m.a, (String)z[12]);
if (!bl) break block4;
}
if (z[11].equals(ad2.v)) {
App.c((String)ad2.m.c, (int)200);
}
}
}
/*
* Enabled aggressive block sorting
* Lifted jumps to return sites
*/
public void b(ad ad2, int n3) {
boolean bl = App.U;
switch (n3) {
default: {
break;
}
case 1:
case 4: {
App.p((ad)ad2);
App.l((ad)ad2);
if (!bl) return;
}
case 3: {
MediaData mediaData = (MediaData)ad2.c;
if (mediaData == null) return;
if (!mediaData.transferred) return;
e.a((Context)App.r, (ad)ad2);
App.a((ad7)new ad7(ad2.a, mediaData.dedupeDownload));
if (ad2.N == 2 && ad2.D == 1) {
if (ad2.o != null) {
App.a((boolean)true, (boolean)App.z);
App.z = true;
if (!bl) return;
}
App.a((boolean)true, (boolean)false);
if (!bl) return;
}
if (Build.VERSION.SDK_INT < 16) return;
wa wa2 = (wa)f.a().b(wa.class);
a29 a292 = Conversation.E();
if (!a292.a() || wa2.a() || !a292.b().aK.equals(ad2.m.a)) {
App.a((boolean)true, (boolean)true, (boolean)true, (boolean)false);
}
if (!bl) return;
}
case -1: {
if (!bl) return;
}
}
Log.w((String)(z[1] + n3));
}
}
|