JADX output decompile error: "Code decompiled incorrectly, please refer to instructions dump."

18.8k views Asked by At

I am attempting to decompile a contact duplicate remover Android app using the JADX Dex-to-Java decompiler. However, JADX is generating the following errors in the output:

> /* JADX WARNING: inconsistent code. */
>         /* Code decompiled incorrectly, please refer to instructions dump. */
>         public String analysis() {
>             /*
>             r24 = this;
>             r20 = 0;
>             r0 = r20;
>             r1 = r24;
>             r1.add_count = r0;
>             r0 = r24;
>             r0 = r0.delete_history;
>             r20 = r0;
>             r20.clear();
>             r20 = delete_history_count;
>             r20.clear();
>             r20 = work_to_do;
>             r20 = r20.size();
>             if (r20 <= 0) goto L_0x04e7;
>         L_0x001e:
>             r0 = r24;
>             r0 = r0.delete_history;
>             r20 = r0;
>             r20.clear();
>             r13 = 0;
>         L_0x0028:
>             r20 = work_to_do;
>             r20 = r20.size();
>             r0 = r20;
>             if (r13 >= r0) goto L_0x04e7;
>         L_0x0032:
>             r20 = work_to_do;
>             r0 = r20;
>             r20 = r0.get(r13);
>             r20 = (java.lang.String) r20;
>             r21 = "-";
>             r20 = r20.split(r21);
>             r21 = 0;
>             r20 = r20[r21];
>             r21 = "0";
>             r20 = r20.equals(r21);
>             if (r20 == 0) goto L_0x0184;
>         L_0x004e:
>             r20 = "LOL";
>             r21 = "Come to your deletation";
>             android.util.Log.e(r20, r21);
>             r20 = work_to_do;
>             r0 = r20;
>             r20 = r0.get(r13);
>             r20 = (java.lang.String) r20;
>             r21 = "-";
>             r17 = r20.split(r21);
>             r20 = 2;
>             r20 = r17[r20];
>             r21 = "\n";
>             r18 = r20.split(r21);
>             r20 = 0;
>             r8 = r18[r20];
>             r20 = 1;
>             r10 = r18[r20];
>             r20 = java.lang.System.out;
>             r21 = new java.lang.StringBuilder;
>             r21.<init>();
>             r22 = "WWWWW";
>             r21 = r21.append(r22);
>             r0 = r21;
>             r21 = r0.append(r8);
>             r0 = r21;
>             r21 = r0.append(r10);
>             r21 = r21.toString();
>             r20.println(r21);
>             r2 = new com.tos.database.DatabaseHandler;
>             r20 = r24.getBaseContext();
>             r0 = r20;
>             r2.<init>(r0);
>             r20 = r2.get_list(r8, r10);
>             r0 = r20;
>             r1 = r24;
>             r1._id = r0;
>             r0 = r24;
>             r0 = r0._id;
>             r20 = r0;
>             r20 = r20.size();
>             if (r20 <= 0) goto L_0x017d;
>         L_0x00b8:
>             r0 = r24;
>             r0 = r0._id;
>             r20 = r0;
>             r21 = 0;
>             r20 = r20.get(r21);
>             r20 = (java.lang.Integer) r20;
>             r20 = r20.intValue();
>             r0 = r20;
>             r1 = r24;
>             r1.check = r0;
>             r20 = java.lang.System.out;
>             r21 = new java.lang.StringBuilder;
>             r21.<init>();
>             r22 = "CCCCCC";
>             r21 = r21.append(r22);
>             r0 = r24;
>             r0 = r0.check;
>             r22 = r0;
>             r21 = r21.append(r22);
>             r21 = r21.toString();
>             r20.println(r21);
>             r12 = 0;
>         L_0x00ef:
>             r0 = r24;
>             r0 = r0._id;
>             r20 = r0;
>             r20 = r20.size();
>             r0 = r20;
>             if (r12 >= r0) goto L_0x017d;
>         L_0x00fd:
>             r20 = java.lang.System.out;
>             r21 = new java.lang.StringBuilder;
>             r21.<init>();
>             r22 = "CCCCCC";
>             r21 = r21.append(r22);
>             r0 = r24;
>             r0 = r0._id;
>             r22 = r0;
>             r0 = r22;
>             r22 = r0.get(r12);
>             r21 = r21.append(r22);
>             r21 = r21.toString();
>             r20.println(r21);
>             r0 = r24;
>             r0 = r0._id;
>             r20 = r0;
>             r0 = r20;
>             r20 = r0.get(r12);
>             r20 = (java.lang.Integer) r20;
>             r20 = r20.intValue();
>             r0 = r24;
>             r0 = r0.check;
>             r21 = r0;
>             r0 = r20;
>             r1 = r21;
>             if (r0 == r1) goto L_0x0165;
>         L_0x013f:
>             r0 = r24;
>             r0 = r0.delete_history;
>             r21 = r0;
>             r0 = r24;
>             r0 = r0._id;
>             r20 = r0;
>             r0 = r20;
>             r20 = r0.get(r12);
>             r20 = (java.lang.Integer) r20;
>             r20 = r20.intValue();
>             r20 = com.tos.contact_duplicacy.MainActivity.getAccoutName(r20);
>             r0 = r21;
>             r1 = r20;
>             r0.add(r1);
>         L_0x0162:
>             r12 = r12 + 1;
>             goto L_0x00ef;
>         L_0x0165:
>             r0 = r24;
>             r0 = r0._id;
>             r20 = r0;
>             r0 = r20;
>             r20 = r0.get(r12);
>             r20 = (java.lang.Integer) r20;
>             r20 = r20.intValue();
>             r0 = r20;
>             r0 = (long) r0;
>             r20 = r0;
>             goto L_0x0162;
>         L_0x017d:
>             r20 = "WWWWWWW";
>             r21 = "delete operation works";
>             android.util.Log.e(r20, r21);
>         L_0x0184:
>             r20 = work_to_do;
>             r0 = r20;
>             r20 = r0.get(r13);
>             r20 = (java.lang.String) r20;
>             r21 = "-";
>             r20 = r20.split(r21);
>             r21 = 0;
>             r20 = r20[r21];
>             r21 = "1";
>             r20 = r20.equals(r21);
>             if (r20 == 0) goto L_0x0289;
>         L_0x01a0:
>             r20 = "LOL";
>             r21 = "Come to your edit";
>             android.util.Log.e(r20, r21);
>             r0 = r24;
>             r0 = r0.add_count;
>             r20 = r0;
>             r20 = r20 + 1;
>             r0 = r20;
>             r1 = r24;
>             r1.add_count = r0;
>             r20 = work_to_do;
>             r0 = r20;
>             r20 = r0.get(r13);
>             r20 = (java.lang.String) r20;
>             r21 = "-";
>             r17 = r20.split(r21);
>             r20 = 2;
>             r20 = r17[r20];
>             r21 = "\n";
>             r18 = r20.split(r21);
>             r20 = 0;
>             r20 = r18[r20];
>             r9 = r20.trim();
>             r20 = 1;
>             r20 = r18[r20];
>             r21 = "//";
>             r20 = r20.split(r21);
>             r21 = 0;
>             r20 = r20[r21];
>             r8 = r20.trim();
>             r20 = "LOL";
>             r21 = new java.lang.StringBuilder;
>             r21.<init>();
>             r22 = "Come to your edit";
>             r21 = r21.append(r22);
>             r0 = r21;
>             r21 = r0.append(r9);
>             r22 = "  ";
>             r21 = r21.append(r22);
>             r0 = r21;
>             r21 = r0.append(r8);
>             r21 = r21.toString();
>             android.util.Log.e(r20, r21);
>             r5 = new java.util.ArrayList;
>             r5.<init>();
>             r20 = 2;
>             r20 = r18[r20];
>             r21 = "\\n";
>             r3 = r20.split(r21);
>             r14 = 2;
>         L_0x021f:
>             r0 = r18;
>             r0 = r0.length;
>             r20 = r0;
>             r0 = r20;
>             if (r14 >= r0) goto L_0x0255;
>         L_0x0228:
>             r20 = r18[r14];
>             r21 = "//";
>             r20 = r20.split(r21);
>             r21 = 0;
>             r20 = r20[r21];
>             r20 = r20.trim();
>             r0 = r20;
>             r5.add(r0);
>             r20 = "Delete";
>             r21 = r18[r14];
>             r22 = "//";
>             r21 = r21.split(r22);
>             r22 = 0;
>             r21 = r21[r22];
>             r21 = r21.trim();
>             android.util.Log.e(r20, r21);
>             r14 = r14 + 1;
>             goto L_0x021f;
>         L_0x0255:
>             r12 = 0;
>         L_0x0256:
>             r20 = r5.size();
>             r0 = r20;
>             if (r12 >= r0) goto L_0x0289;
>         L_0x025e:
>             r0 = r24;
>             r0 = r0.delete_history;
>             r21 = r0;
>             r22 = new com.tos.database.DatabaseHandler;
>             r0 = r22;
>             r1 = r24;
>             r0.<init>(r1);
>             r20 = r5.get(r12);
>             r20 = (java.lang.String) r20;
>             r0 = r22;
>             r1 = r20;
>             r20 = r0.get_id_from_name_number(r1, r9);
>             r20 = com.tos.contact_duplicacy.MainActivity.getAccoutName(r20);
>             r0 = r21;
>             r1 = r20;
>             r0.add(r1);
>             r12 = r12 + 1;
>             goto L_0x0256;
>         L_0x0289:
>             r20 = work_to_do;
>             r0 = r20;
>             r20 = r0.get(r13);
>             r20 = (java.lang.String) r20;
>             r21 = "-";
>             r20 = r20.split(r21);
>             r21 = 0;
>             r20 = r20[r21];
>             r21 = "2";
>             r20 = r20.equals(r21);
>             if (r20 == 0) goto L_0x04e3;
>         L_0x02a5:
>             r20 = "LOL";
>             r21 = "Come to your merge";
>             android.util.Log.e(r20, r21);
>             r0 = r24;
>             r0 = r0.add_count;
>             r20 = r0;
>             r20 = r20 + 1;
>             r0 = r20;
>             r1 = r24;
>             r1.add_count = r0;
>             r20 = work_to_do;
>             r0 = r20;
>             r20 = r0.get(r13);
>             r20 = (java.lang.String) r20;
>             r21 = "-";
>             r17 = r20.split(r21);
>             r20 = 2;
>             r20 = r17[r20];
>             r21 = "\n";
>             r18 = r20.split(r21);
>             r20 = 0;
>             r20 = r18[r20];
>             r8 = r20.trim();
>             r19 = "";
>             r11 = "";
>             r16 = "";
>             r7 = "";
>             r15 = new java.util.ArrayList;
>             r15.<init>();
>             r0 = r18;
>             r0 = r0.length;
>             r20 = r0;
>             r21 = 2;
>             r0 = r20;
>             r1 = r21;
>             if (r0 != r1) goto L_0x0350;
>         L_0x02f6:
>             r20 = 1;
>             r20 = r18[r20];
>             r20 = r20.trim();
>             r0 = r20;
>             r15.add(r0);
>             r20 = 1;
>             r20 = r18[r20];
>             r21 = " ";
>             r20 = r20.split(r21);
>             r21 = 0;
>             r20 = r20[r21];
>             r19 = r20.trim();
>             r11 = 0;
>             r16 = 0;
>             r7 = 0;
>             r20 = 1;
>             r20 = r18[r20];
>             r21 = " ";
>             r20 = r20.split(r21);
>             r21 = 0;
>             r20 = r20[r21];
>             r20 = r20.trim();
>             r0 = r20;
>             r15.add(r0);
>             r20 = java.lang.System.out;
>             r21 = new java.lang.StringBuilder;
>             r21.<init>();
>             r22 = "CCCCC";
>             r21 = r21.append(r22);
>             r22 = 1;
>             r22 = r18[r22];
>             r22 = r22.trim();
>             r21 = r21.append(r22);
>             r21 = r21.toString();
>             r20.println(r21);
>         L_0x0350:
>             r0 = r18;
>             r0 = r0.length;
>             r20 = r0;
>             r21 = 3;
>             r0 = r20;
>             r1 = r21;
>             if (r0 != r1) goto L_0x03d4;
>         L_0x035d:
>             r20 = 1;
>             r20 = r18[r20];
>             r20 = r20.trim();
>             r0 = r20;
>             r15.add(r0);
>             r20 = 1;
>             r20 = r18[r20];
>             r19 = r20.trim();
>             r20 = 2;
>             r20 = r18[r20];
>             r21 = " ";
>             r20 = r20.split(r21);
>             r21 = 0;
>             r20 = r20[r21];
>             r11 = r20.trim();
>             r16 = 0;
>             r7 = 0;
>             r20 = 2;
>             r20 = r18[r20];
>             r21 = " ";
>             r20 = r20.split(r21);
>             r21 = 0;
>             r20 = r20[r21];
>             r20 = r20.trim();
>             r0 = r20;
>             r15.add(r0);
>             r20 = java.lang.System.out;
>             r21 = new java.lang.StringBuilder;
>             r21.<init>();
>             r22 = "CCCCC";
>             r21 = r21.append(r22);
>             r22 = 1;
>             r22 = r18[r22];
>             r22 = r22.trim();
>             r21 = r21.append(r22);
>             r22 = 2;
>             r22 = r18[r22];
>             r23 = " ";
>             r22 = r22.split(r23);
>             r23 = 0;
>             r22 = r22[r23];
>             r22 = r22.trim();
>             r21 = r21.append(r22);
>             r21 = r21.toString();
>             r20.println(r21);
>         L_0x03d4:
>             r0 = r18;
>             r0 = r0.length;
>             r20 = r0;
>             r21 = 4;
>             r0 = r20;
>             r1 = r21;
>             if (r0 == r1) goto L_0x03ee;
>         L_0x03e1:
>             r0 = r17;
>             r0 = r0.length;
>             r20 = r0;
>             r21 = 4;
>             r0 = r20;
>             r1 = r21;
>             if (r0 <= r1) goto L_0x0484;
>         L_0x03ee:
>             r20 = 1;
>             r20 = r18[r20];
>             r20 = r20.trim();
>             r0 = r20;
>             r15.add(r0);
>             r20 = 1;
>             r20 = r18[r20];
>             r19 = r20.trim();
>             r20 = 2;
>             r20 = r18[r20];
>             r11 = r20.trim();
>             r20 = 2;
>             r20 = r18[r20];
>             r21 = " ";
>             r20 = r20.split(r21);
>             r21 = 0;
>             r20 = r20[r21];
>             r16 = r20.trim();
>             r7 = 0;
>             r20 = 3;
>             r20 = r18[r20];
>             r20 = r20.trim();
>             r0 = r20;
>             r15.add(r0);
>             r20 = 3;
>             r20 = r18[r20];
>             r21 = " ";
>             r20 = r20.split(r21);
>             r21 = 0;
>             r20 = r20[r21];
>             r20 = r20.trim();
>             r0 = r20;
>             r15.add(r0);
>             r20 = java.lang.System.out;
>             r21 = new java.lang.StringBuilder;
>             r21.<init>();
>             r22 = "CCCCC";
>             r21 = r21.append(r22);
>             r22 = 1;
>             r22 = r18[r22];
>             r22 = r22.trim();
>             r21 = r21.append(r22);
>             r22 = 2;
>             r22 = r18[r22];
>             r22 = r22.trim();
>             r21 = r21.append(r22);
>             r22 = 3;
>             r22 = r18[r22];
>             r23 = " ";
>             r22 = r22.split(r23);
>             r23 = 0;
>             r22 = r22[r23];
>             r22 = r22.trim();
>             r21 = r21.append(r22);
>             r21 = r21.toString();
>             r20.println(r21);
>         L_0x0484:
>             r0 = r17;
>             r0 = r0.length;
>             r20 = r0;
>             r21 = 4;
>             r0 = r20;
>             r1 = r21;
>             if (r0 != r1) goto L_0x04b3;
>         L_0x0491:
>             r20 = 3;
>             r20 = r17[r20];
>             r21 = "\n";
>             r4 = r20.split(r21);
>             r12 = 0;
>         L_0x049c:
>             r0 = r4.length;
>             r20 = r0;
>             r20 = r20 + -1;
>             r0 = r20;
>             if (r12 >= r0) goto L_0x04b3;
>         L_0x04a5:
>             r20 = r4[r12];
>             r20 = r20.trim();
>             r0 = r20;
>             r15.add(r0);
>             r12 = r12 + 1;
>             goto L_0x049c;
>         L_0x04b3:
>             r6 = new com.tos.database.DatabaseHandler;
>             r0 = r24;
>             r6.<init>(r0);
>             r12 = 0;
>         L_0x04bb:
>             r20 = r15.size();
>             r0 = r20;
>             if (r12 >= r0) goto L_0x04e3;
>         L_0x04c3:
>             r0 = r24;
>             r0 = r0.delete_history;
>             r21 = r0;
>             r20 = r15.get(r12);
>             r20 = (java.lang.String) r20;
>             r0 = r20;
>             r20 = r6.get_id_from_name_number(r8, r0);
>             r20 = com.tos.contact_duplicacy.MainActivity.getAccoutName(r20);
>             r0 = r21;
>             r1 = r20;
>             r0.add(r1);
>             r12 = r12 + 1;
>             goto L_0x04bb;
>         L_0x04e3:
>             r13 = r13 + 1;
>             goto L_0x0028;
>         L_0x04e7:
>             r20 = 0;
>             return r20;
>             */
>             throw new UnsupportedOperationException("Method not decompiled:
> com.tos.contact_duplicacy.ShowResult.analysis():java.lang.String");
>         }

Can someone help me understand what this error means and how to workaround or correct it?

2

There are 2 answers

0
Römît Bhïñgrádīyä On
  1. Click file in jadx top of left side.

  2. After Click Preferences.

  3. Now select the check box yes "Show inconsistent code" below picture.

Screenshot

0
Josh Laird On

Running JADX via command line with the --show-bad-code option fixed this for me.

e.g. jadx-gui --show-bad-code my_debug.app.apk

I previously tried dex2jar before trying the --show-bad-code option and that also showed errors.