Code with Finding: |
/*
* Decompiled with CFR 0_128.
*
* Could not load the following classes:
* com.whatsapp.protocol.a2
* com.whatsapp.protocol.ad
* com.whatsapp.protocol.an
* com.whatsapp.protocol.c
* com.whatsapp.protocol.c4
* com.whatsapp.protocol.cf
* com.whatsapp.protocol.ci
* com.whatsapp.protocol.e
* com.whatsapp.protocol.m
* com.whatsapp.protocol.o
* com.whatsapp.protocol.s
* com.whatsapp.protocol.y
*/
package com.whatsapp.protocol;
import com.whatsapp.protocol.a2;
import com.whatsapp.protocol.ad;
import com.whatsapp.protocol.an;
import com.whatsapp.protocol.c;
import com.whatsapp.protocol.c4;
import com.whatsapp.protocol.cf;
import com.whatsapp.protocol.cg;
import com.whatsapp.protocol.ci;
import com.whatsapp.protocol.e;
import com.whatsapp.protocol.m;
import com.whatsapp.protocol.o;
import com.whatsapp.protocol.s;
import com.whatsapp.protocol.y;
import java.io.IOException;
import java.util.Vector;
public final class ai
extends an {
private static final String[] z;
public byte[] l;
/*
* Enabled aggressive block sorting
*/
static {
String[] arrstring = new String[51];
String string = "J\u0000xXb^\u0004";
int n = -1;
String[] arrstring2 = arrstring;
int n2 = 0;
block58 : 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 = "[\u0004s";
n2 = 1;
arrstring2 = arrstring;
n = 0;
continue block58;
}
case 0: {
arrstring2[n2] = string2;
n2 = 2;
arrstring2 = arrstring;
string = "I\u0019aQtX\u0004u\u0014`I\u00031Fr\\\rh\u00187N\u0014e\u0014zE\u0012b]yKM1]y\f\u0013tUs{\u0004s";
n = 1;
continue block58;
}
case 1: {
arrstring2[n2] = string2;
n2 = 3;
string = "^\u0004bDxB\u0012t";
n = 2;
arrstring2 = arrstring;
continue block58;
}
case 2: {
arrstring2[n2] = string2;
n2 = 4;
string = "M\u0002e]aIApWtC\u0014@7[\be\\7B\u000e1Qo\\\bcUcE\u000e";
n = 3;
arrstring2 = arrstring;
continue block58;
}
case 3: {
arrstring2[n2] = string2;
n2 = 5;
string = "E\u000fgU{E\u00051DeC\u0011b\u0014aI\u0013b]xB[1";
n = 4;
arrstring2 = arrstring;
continue block58;
}
case 4: {
arrstring2[n2] = string2;
n2 = 6;
string = "\\\u0000xP";
n = 5;
arrstring2 = arrstring;
continue block58;
}
case 5: {
arrstring2[n2] = string2;
n2 = 7;
string = "_\u0014rWr_\u0012";
n = 6;
arrstring2 = arrstring;
continue block58;
}
case 6: {
arrstring2[n2] = string2;
n2 = 8;
string = "E\u000fgU{E\u00051Qo\\\bcQ7H\u0000eQ-\f";
n = 7;
arrstring2 = arrstring;
continue block58;
}
case 7: {
arrstring2[n2] = string2;
n2 = 9;
string = "\\\u0013~Dd";
n = 8;
arrstring2 = arrstring;
continue block58;
}
case 8: {
arrstring2[n2] = string2;
n2 = 10;
string = "G\bP";
n = 9;
arrstring2 = arrstring;
continue block58;
}
case 9: {
arrstring2[n2] = string2;
n2 = 11;
string = "I\u0019a]eM\u0015x[y";
n = 10;
arrstring2 = arrstring;
continue block58;
}
case 10: {
arrstring2[n2] = string2;
n2 = 12;
string = "E\u000fgU{E\u00051Gr^\u0017tF7X\b|Q-\f";
n = 11;
arrstring2 = arrstring;
continue block58;
}
case 11: {
arrstring2[n2] = string2;
n2 = 13;
string = "J\u0013tQ";
n = 12;
arrstring2 = arrstring;
continue block58;
}
case 12: {
arrstring2[n2] = string2;
n2 = 14;
string = "M\u0002e]aI";
n = 13;
arrstring2 = arrstring;
continue block58;
}
case 13: {
arrstring2[n2] = string2;
n2 = 15;
string = "_\u0015p@b_";
n = 14;
arrstring2 = arrstring;
continue block58;
}
case 14: {
arrstring2[n2] = string2;
n2 = 16;
string = "I\u0019a]eI\u0005";
n = 15;
arrstring2 = arrstring;
continue block58;
}
case 15: {
arrstring2[n2] = string2;
string = "Z\u0004cG~C\u000f";
n = 16;
n2 = 17;
arrstring2 = arrstring;
continue block58;
}
case 16: {
arrstring2[n2] = string2;
n2 = 18;
arrstring2 = arrstring;
string = "\u001cO\"";
n = 17;
continue block58;
}
case 17: {
arrstring2[n2] = string2;
n2 = 19;
string = "[\u0004s";
n = 18;
arrstring2 = arrstring;
continue block58;
}
case 18: {
arrstring2[n2] = string2;
n2 = 20;
string = "[\u0004s";
n = 19;
arrstring2 = arrstring;
continue block58;
}
case 19: {
arrstring2[n2] = string2;
n2 = 21;
string = "I\u0013c[e";
n = 20;
arrstring2 = arrstring;
continue block58;
}
case 20: {
arrstring2[n2] = string2;
n2 = 22;
string = "O\u000euQ";
n = 21;
arrstring2 = arrstring;
continue block58;
}
case 21: {
arrstring2[n2] = string2;
string = "^\u0004pPeI\u0002t]gX\u0012";
n = 22;
n2 = 23;
arrstring2 = arrstring;
continue block58;
}
case 22: {
arrstring2[n2] = string2;
n2 = 24;
arrstring2 = arrstring;
string = "K\u0013~Ag_>g\u0006";
n = 23;
continue block58;
}
case 23: {
arrstring2[n2] = string2;
n2 = 25;
string = "_\u0015cQvA[wQvX\u0014cQd";
n = 24;
arrstring2 = arrstring;
continue block58;
}
case 24: {
arrstring2[n2] = string2;
n2 = 26;
string = "\\\u0013tGrB\u0002t";
n = 25;
arrstring2 = arrstring;
continue block58;
}
case 25: {
arrstring2[n2] = string2;
n2 = 27;
string = "\\\u0013xBvO\u0018";
n = 26;
arrstring2 = arrstring;
continue block58;
}
case 26: {
arrstring2[n2] = string2;
n2 = 28;
string = "J\u0000xXb^\u0004";
n = 27;
arrstring2 = arrstring;
continue block58;
}
case 27: {
arrstring2[n2] = string2;
n2 = 29;
string = "E\u000fgU{E\u00051Qo\\\bcQ7X\b|Q7C\u0014e\u000e7";
n = 28;
arrstring2 = arrstring;
continue block58;
}
case 28: {
arrstring2[n2] = string2;
n2 = 30;
string = "E\u000fgU{E\u00051FrX\u0013h\u000e7";
n = 29;
arrstring2 = arrstring;
continue block58;
}
case 29: {
arrstring2[n2] = string2;
n2 = 31;
string = "^\u0004eFn";
n = 30;
arrstring2 = arrstring;
continue block58;
}
case 30: {
arrstring2[n2] = string2;
n2 = 32;
string = "O\u000euQ";
n = 31;
arrstring2 = arrstring;
continue block58;
}
case 31: {
arrstring2[n2] = string2;
n2 = 33;
string = "E\u000fgU{E\u00051WxH\u0004+\u0014";
n = 32;
arrstring2 = arrstring;
continue block58;
}
case 32: {
arrstring2[n2] = string2;
n2 = 34;
string = "B\u000ee\u0019vY\u0015y[eE\u001btP";
n = 33;
arrstring2 = arrstring;
continue block58;
}
case 33: {
arrstring2[n2] = string2;
n2 = 35;
string = "I\u0019a]eI";
n = 34;
arrstring2 = arrstring;
continue block58;
}
case 34: {
arrstring2[n2] = string2;
n2 = 36;
string = "A\u0004r\\vB\bbY";
n = 35;
arrstring2 = arrstring;
continue block58;
}
case 35: {
arrstring2[n2] = string2;
n2 = 37;
string = "\\\u0000bG~Z\u0004";
n = 36;
arrstring2 = arrstring;
continue block58;
}
case 36: {
arrstring2[n2] = string2;
n2 = 38;
string = "M\u0014e\\";
n = 37;
arrstring2 = arrstring;
continue block58;
}
case 37: {
arrstring2[n2] = string2;
n2 = 39;
string = "{ D`_\u0001S";
n = 38;
arrstring2 = arrstring;
continue block58;
}
case 38: {
arrstring2[n2] = string2;
n2 = 40;
string = "{ D`_\u0001S";
n = 39;
arrstring2 = arrstring;
continue block58;
}
case 39: {
arrstring2[n2] = string2;
n2 = 41;
string = "Y\u0012tF";
n = 40;
arrstring2 = arrstring;
continue block58;
}
case 40: {
arrstring2[n2] = string2;
n2 = 42;
string = "A\u0004r\\vB\bbY";
n = 41;
arrstring2 = arrstring;
continue block58;
}
case 41: {
arrstring2[n2] = string2;
n2 = 43;
string = "X\u0013dQ";
n = 42;
arrstring2 = arrstring;
continue block58;
}
case 42: {
arrstring2[n2] = string2;
string = "Y\u0012tF";
n = 43;
n2 = 44;
arrstring2 = arrstring;
continue block58;
}
case 43: {
arrstring2[n2] = string2;
n2 = 45;
arrstring2 = arrstring;
string = "I\u0019aQtX\u0004u\u0014`I\u00031Fr\\\rh\u00187N\u0014e\u0014zE\u0012b]yKM1]y\f\u0013tUsj\u0004p@b^\u0004buyH\"yU{@\u0004Sr";
n = 44;
continue block58;
}
case 44: {
arrstring2[n2] = string2;
n2 = 46;
string = "J\u0000xXb^\u0004";
n = 45;
arrstring2 = arrstring;
continue block58;
}
case 45: {
arrstring2[n2] = string2;
n2 = 47;
string = "[\u0004s";
n = 46;
arrstring2 = arrstring;
continue block58;
}
case 46: {
arrstring2[n2] = string2;
n2 = 48;
string = "O\tpX{I\u000fvQ";
n = 47;
arrstring2 = arrstring;
continue block58;
}
case 47: {
arrstring2[n2] = string2;
n2 = 49;
string = "J\u0004}X7C\u0014e\u0014xJA}[x\\AxZ7^\u0004pPQI\u0000eAeI\u0012PZso\tpX{I\u000fvQ";
n = 48;
arrstring2 = arrstring;
continue block58;
}
case 48: {
arrstring2[n2] = string2;
n2 = 50;
string = "_\u0014rWr_\u0012";
n = 49;
arrstring2 = arrstring;
continue block58;
}
case 49:
}
arrstring2[n2] = string2;
z = arrstring;
return;
}
char c = arrc[n4];
switch (n4 % 5) {
default: {
n5 = 23;
break;
}
case 0: {
n5 = 44;
break;
}
case 1: {
n5 = 97;
break;
}
case 2: {
n5 = 17;
break;
}
case 3: {
n5 = 52;
}
}
arrc[n4] = (char)(n5 ^ c);
++n4;
} while (true);
break;
} while (true);
}
public ai(m m2, y y2, e e2, byte[] arrby) {
super(e2, m2, y2);
this.l = arrby;
}
/*
* Exception decompiling
*/
private void a() {
// 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");
}
/*
* Exception decompiling
*/
private void a(s var1_1) {
// 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");
}
private void a(byte[] arrby) {
this.f.p = this.f.c.a(this.f.I, arrby);
this.e.a(this.f.p);
}
/*
* Enabled force condition propagation
* Lifted jumps to return sites
*/
private void b(s s2) {
a2 a22;
s s3 = s2.d(z[34]);
String string = s3.e(z[35]);
if (string == null) {
a22 = new a2(0);
if (ad.q == 0) throw a22;
}
a22 = new a2(2);
try {
a22.c = Integer.parseInt(string);
}
catch (NumberFormatException numberFormatException) {
throw new IOException(z[29] + string);
}
String string2 = s3.e(z[32]);
try {
a22.g = Integer.parseInt(string2);
}
catch (NumberFormatException numberFormatException) {
throw new IOException(z[33] + string2);
}
String string3 = s3.e(z[31]);
if (string3 == null) throw a22;
try {
a22.b = Integer.parseInt(string3);
}
catch (NumberFormatException numberFormatException) {
throw new IOException(z[30] + string);
}
throw a22;
}
/*
* Enabled aggressive block sorting
* Enabled unnecessary exception pruning
* Enabled aggressive exception aggregation
*/
private void b(boolean bl) {
byte[] arrby;
if (this.l != null) {
this.a(this.l);
arrby = this.a(this.l);
} else {
arrby = null;
}
String string = z[38];
cf[] arrcf = bl ? new cf[]{new cf(z[44], this.f.G), new cf(z[42], z[40])} : new cf[]{new cf(z[41], this.f.G), new cf(z[37], z[43]), new cf(z[36], z[39])};
s s2 = new s(string, arrcf, arrby);
this.a.a(s2);
}
private void c(s s2) {
s.b((s)s2, (String)z[20]);
s s3 = s2.d(z[21]);
if (s3 != null) {
String string = s3.e(z[22]);
int n = 500;
if (string != null) {
n = Integer.parseInt(string);
}
this.f.g.c(this.f.x, n);
}
}
private void c(byte[] arrby) {
byte[] arrby2 = this.a(arrby);
s s2 = new s(z[3], null, arrby2);
this.a.a(s2);
}
/*
* Unable to fully structure code
* Enabled aggressive block sorting
* Enabled unnecessary exception pruning
* Enabled aggressive exception aggregation
* Lifted jumps to return sites
*/
private byte[] c() {
var1_1 = false;
var2_2 = ad.q;
var4_3 = this.f.x;
if (var4_3 != null) {
var5_4 = true;
} else {
var5_4 = false;
var1_1 = false;
}
while ((var6_5 = this.e.a()) != null) {
block19 : {
block17 : {
block18 : {
if (s.a((s)var6_5, (String)ai.z[48])) {
return var6_5.e;
}
if (!s.a((s)var6_5, (String)ai.z[47])) break block18;
this.c(var6_5);
if (var2_2 == 0) break block19;
var1_1 = true;
}
var11_6 = s.a((s)var6_5, (String)ai.z[50]);
if (!var11_6) break block17;
** if (!var5_4 || var1_1) goto lbl-1000
lbl-1000: // 1 sources:
{
throw new o(ai.z[45], this.e.b());
}
lbl-1000: // 1 sources:
{
}
this.a(var6_5);
return null;
}
if (!s.a((s)var6_5, (String)ai.z[46])) continue;
this.b(var6_5);
if (var2_2 == 0) continue;
throw new o(ai.z[49], this.e.b());
}
var1_1 = true;
}
throw new o(ai.z[49], this.e.b());
}
private void d() {
Object[] arrobject;
y y2;
String string;
block14 : {
Vector<s> vector;
block13 : {
block12 : {
block11 : {
block10 : {
vector = new Vector<s>();
if (!this.f.B) break block10;
vector.addElement(new s(z[27], null));
}
if (!this.f.z) break block11;
vector.addElement(new s(z[23], null));
}
if (!this.f.e) break block12;
vector.addElement(new s(z[24], null));
}
if (!this.f.m) break block13;
vector.addElement(new s(z[26], null));
}
arrobject = new s[vector.size()];
vector.copyInto(arrobject);
y2 = this.a;
string = z[25];
int n = arrobject.length;
if (n != 0) break block14;
arrobject = null;
}
y2.a(new s(string, null, (s[])arrobject), false);
}
private void e() {
if (this.f.x != null) {
y y2 = this.a;
String string = z[19];
cf[] arrcf = new cf[]{new cf(z[17], z[18])};
y2.a(new s(string, arrcf, this.f.x), false);
}
return;
}
private void f() {
s s2;
block2 : {
s2 = this.e.a();
if (!s.a((s)s2, (String)z[28])) break block2;
this.b(s2);
}
this.a(s2);
}
/*
* Loose catch block
* Enabled aggressive block sorting
* Enabled unnecessary exception pruning
* Enabled aggressive exception aggregation
* Lifted jumps to return sites
*/
public void a(boolean bl) {
if (this.f.I == null) {
throw new a2(0);
}
this.a.a(this.f.C, this.f.s);
this.d();
this.e();
this.b(bl);
this.e.c();
byte[] arrby = this.c();
if (arrby != null) {
this.a(arrby);
this.c(arrby);
this.a();
this.f();
}
this.e.d();
this.a.a(this.f.p);
return;
catch (NumberFormatException numberFormatException) {
throw numberFormatException;
}
}
}
|