home *** CD-ROM | disk | FTP | other *** search
- package com.ibm.jax;
-
- import com.ibm.bobby.a1;
- import com.ibm.bobby.a3;
- import com.ibm.bobby.a5;
- import com.ibm.bobby.a6;
- import com.ibm.bobby.aa;
- import com.ibm.bobby.ah;
- import com.ibm.bobby.ai;
- import com.ibm.bobby.aj;
- import com.ibm.bobby.am;
- import com.ibm.bobby.au;
- import com.ibm.bobby.bg;
- import com.ibm.bobby.bo;
- import com.ibm.bobby.bp;
- import com.ibm.bobby.bs;
- import java.util.Hashtable;
-
- // $FF: renamed from: com.ibm.jax.c
- public class class_0 {
- // $FF: renamed from: k boolean
- public static final boolean field_0;
- // $FF: renamed from: ab java.util.Hashtable
- public static Hashtable field_1;
- // $FF: renamed from: aa com.ibm.bobby.bp
- public static bp field_2;
- // $FF: renamed from: z com.ibm.bobby.bp
- public static bp field_3;
- // $FF: renamed from: w com.ibm.bobby.bp
- public static bp field_4;
- // $FF: renamed from: v com.ibm.bobby.bp
- public static bp field_5;
- // $FF: renamed from: u com.ibm.bobby.ah
- public static ah field_6;
- // $FF: renamed from: t com.ibm.bobby.ah
- public static ah field_7;
- // $FF: renamed from: s com.ibm.bobby.ah
- public static ah field_8;
- // $FF: renamed from: r com.ibm.bobby.ah
- public static ah field_9;
- // $FF: renamed from: q com.ibm.jax.i
- public static i field_10;
- // $FF: renamed from: p com.ibm.jax.i
- public static i field_11;
- // $FF: renamed from: o com.ibm.jax.i
- public static i field_12;
- // $FF: renamed from: n com.ibm.jax.h
- public static h field_13;
-
- static {
- field_0 = e.k;
- field_1 = new Hashtable();
- field_2 = new bp();
- field_3 = new bp();
- field_4 = new bp();
- field_5 = new bp();
- field_6 = new ah();
- field_7 = new ah();
- field_8 = new ah();
- field_9 = new ah();
- field_10 = new i();
- field_11 = new i();
- field_12 = new i();
- field_13 = null;
- }
-
- // $FF: renamed from: e (java.lang.String) void
- public static void method_0(String var0) {
- e.e(var0);
- }
-
- // $FF: renamed from: f (java.lang.String) void
- public static void method_1(String var0) {
- e.f(var0);
- }
-
- // $FF: renamed from: a9 (com.ibm.bobby.am) void
- public static void method_2(am var0) {
- if (field_13 != null) {
- field_13.cn(var0);
- }
-
- }
-
- // $FF: renamed from: ba (com.ibm.jax.q) boolean
- public static boolean method_3(q var0) {
- try {
- ((bs)var0).es("readObject", ai.fh("(Ljava/io/ObjectInputStream;)V"));
- ((bs)var0).es("writeObject", ai.fh("(Ljava/io/ObjectOutputStream;)V"));
- return true;
- } catch (NoSuchMethodError var2) {
- return false;
- }
- }
-
- // $FF: renamed from: bb (com.ibm.bobby.bs) boolean
- public static boolean method_4(bs var0) {
- return var0.im(bs.ij("java.io.Serializable")) && !var0.im(bs.ij("java.io.Externalizable"));
- }
-
- // $FF: renamed from: bc (com.ibm.jax.q) void
- public static void method_5(q var0) {
- if (e.m.d9()) {
- var0.em();
- bp var1 = var0.d0;
-
- for(int var2 = 0; var2 < var1.cr(); ++var2) {
- q var3 = (q)var1.cw(var2);
- var3.em();
- }
- }
-
- if (method_3(var0)) {
- if (field_0) {
- method_1("class " + ((au)var0).gg() + " has CUSTOM serialization");
- }
-
- l var4 = q.es(var0, "readObject", ai.fh("(Ljava/io/ObjectInputStream;)V"));
- l var7 = q.es(var0, "writeObject", ai.fh("(Ljava/io/ObjectOutputStream;)V"));
- if (var4 != null) {
- if (!field_6.e4(var4) && !field_7.e4(var4) && !field_8.e4(var4)) {
- if (field_0) {
- method_1("adding " + ((am)var4).aj() + var4.cl.fd() + " to newMethods (serialization)");
- }
-
- field_8.cx(var4);
- var4.c6();
- }
-
- method_2(var4);
- }
-
- if (var7 != null) {
- if (!field_6.e4(var7) && !field_7.e4(var7) && !field_8.e4(var7)) {
- if (field_0) {
- method_1("adding " + ((am)var7).aj() + var7.cl.fd() + " to newMethods (serialization)");
- }
-
- field_8.cx(var7);
- var7.c6();
- }
-
- method_2(var7);
- }
- } else {
- if (field_0) {
- method_1("class " + ((au)var0).gg() + " has DEFAULT serialization");
- }
-
- if (e.m.d9()) {
- a3 var5 = var0.d_;
-
- for(int var8 = 0; var8 < var5.cr(); ++var8) {
- m var9 = (m)var5.cw(var8);
- if (!((au)var9).f4() && !((au)var9).gb()) {
- if (field_0) {
- method_1(" field " + ((a5)var9).aj() + " " + bg.g6(var9.c7) + " preserved (serialization)");
- }
-
- var9.c6();
- }
- }
- }
- }
-
- m var6 = q.eq(var0, "serialVersionUID");
- if (var6 != null) {
- if (field_0) {
- method_1("*** found field " + ((a5)var6).aj());
- }
-
- var6.c6();
- }
-
- }
-
- // $FF: renamed from: bd () void
- public static void method_6() {
- ai var0 = ai.fh("()V");
-
- for(int var1 = 0; var1 < field_3.cr(); ++var1) {
- q var2;
- for(var2 = (q)field_3.cw(var1); method_4(var2); var2 = (q)var2.d1) {
- if (var2.d3) {
- method_5(var2);
- }
- }
-
- if (var2.d3) {
- l var3 = q.es(var2, "<init>", var0);
- if (var3 != null) {
- if (!field_6.e4(var3) && !field_7.e4(var3) && !field_8.e4(var3)) {
- if (field_0) {
- method_1("adding " + ((am)var3).aj() + var3.cl.fd() + " to newMethods (serialization)");
- }
-
- field_8.cx(var3);
- }
-
- method_2(var3);
- }
- }
- }
-
- }
-
- // $FF: renamed from: be () void
- public static void method_7() {
- bp var0 = aa.b7;
-
- for(int var1 = 0; var1 < var0.cr(); ++var1) {
- q var2 = (q)var0.cw(var1);
- if (var2.d3 && !var2.d5) {
- bp var3 = var2.et();
-
- for(int var4 = 0; var4 < var3.cr(); ++var4) {
- bs var5 = var3.cw(var4);
- ah var6 = var5.dz;
-
- for(int var7 = 0; var7 < var6.cr(); ++var7) {
- l var8 = (l)var6.cw(var7);
- if (((am)var8).fn() && var8.da() || !var8.c1.d3) {
- l var9 = q.er(var2, ((au)var8).gg(), var8.cl);
- if (var9 != null) {
- if (field_0 && !var9.da()) {
- method_1("preserveNeededSignatures: " + " preserving signature of dead method " + var9 + " which implements interface method " + var8);
- }
-
- var9.db();
- if (!var8.c1.d3) {
- method_8(var9);
- }
-
- if (!var9.c1.d3) {
- method_8(var8);
- }
- } else {
- System.out.println("*** internal JAX error in preserveNeededSignatures()");
- System.out.println("class: " + ((au)var2).gg());
- System.out.println("interface: " + ((au)var5).gg());
- System.out.println("interface method: " + ((am)var8).aj());
- System.out.println("implementing method: " + ((am)var9).aj());
- e.b7(100);
- }
- }
- }
- }
- }
- }
-
- }
-
- // $FF: renamed from: bf (com.ibm.jax.l) void
- public static void method_8(l var0) {
- if (!var0.c9()) {
- if (field_0 && var0.c1.d3) {
- method_1(" giving property overridesExternalMethod to method " + var0);
- }
-
- var0.bf();
- method_2(var0);
- if (var0.cp != null) {
- method_8((l)var0.cp);
- }
-
- for(int var1 = 0; var1 < var0.co.cr(); ++var1) {
- l var2 = (l)var0.co.cw(var1);
- method_8(var2);
- }
-
- }
- }
-
- // $FF: renamed from: bg () void
- public static void method_9() {
- for(int var0 = 0; var0 < field_3.cr(); ++var0) {
- q var1 = (q)field_3.cw(var0);
- if (field_0) {
- method_1(" examining overridden methods w.r.t. instantiated class " + ((au)var1).gg());
- }
-
- ah var2 = new ah();
- bp var3 = var1.eh();
-
- for(int var4 = 0; var4 < var3.cr(); ++var4) {
- bs var5 = var3.cw(var4);
- if (!var5.d3) {
- ah var6 = var5.dz;
-
- for(int var7 = 0; var7 < var6.cr(); ++var7) {
- am var8 = var6.cw(var7);
- if (var8.fn() && (((au)var8).ga() || ((au)var8).f9()) && !((au)var8).f7()) {
- var2.cx(var8);
- }
- }
- }
- }
-
- for(int var9 = 0; var9 < var2.cr(); ++var9) {
- am var10 = var2.cw(var9);
- l var11 = (l)((bs)var1).er(((au)var10).gg(), var10.cl);
- if (var11.c1.d3) {
- method_8(var11);
- if (!field_6.e4(var11) && !field_7.e4(var11) && !field_8.e4(var11)) {
- field_8.cx(var11);
- if (field_0) {
- method_1(" adding method " + ((am)var11).aj() + var11.cl.fd() + " to newMethods because it overrides external method " + var10.aj() + var10.cl.fd());
- }
- }
- }
- }
- }
-
- }
-
- // $FF: renamed from: bh (com.ibm.jax.j, com.ibm.bobby.bp) void
- public static void method_10(j var0, bp var1) {
- for(int var2 = 0; var2 < var1.cr(); ++var2) {
- q var3 = (q)var1.cw(var2);
- bs var4 = var0.cy().c1;
- if (((bs)var3).in(var4)) {
- if (field_0) {
- method_1(" processing virtual call site " + var0 + " w.r.t. class " + ((au)var3).gg());
- }
-
- l var5 = var0.cy();
- l var6 = q.er(var3, ((au)var5).gg(), var5.cl);
- if (var6 != null) {
- ah var7 = var0.cz();
- if (!var7.e4(var6)) {
- var7.cx(var6);
- if (field_0) {
- method_1(" found new target " + var6 + " for virtual callsite " + var0);
- }
-
- if (field_13 != null) {
- field_13.co(var6, var5);
- }
- }
-
- if (!field_6.e4(var6) && !field_7.e4(var6) && !field_8.e4(var6)) {
- field_8.cx(var6);
- if (field_0) {
- method_1(" adding method " + ((am)var6).aj() + var6.cl.fd() + " to newMethods");
- }
- }
- } else {
- method_0("***internal JAX error in processCallSite: target is NULL!");
- method_0("class = " + ((au)var3).gg());
- method_0("method = " + var5);
- e.b7(100);
- }
- }
- }
-
- }
-
- // $FF: renamed from: bi (com.ibm.jax.l) void
- public static void method_11(l var0) {
- if (var0 != null) {
- if (field_0) {
- method_1(" processing method " + ((am)var0).aj() + var0.cl.fd());
- }
-
- bo var1 = var0.cn;
- if (var1 == null) {
- var0.db();
- if (field_0) {
- method_1("processMethod: abstract or native method: " + ((am)var0).aj() + var0.cl.fd());
- }
- } else {
- var0.df();
- if (field_13 != null) {
- field_13.cq(var0);
- } else {
- for(int var2 = 0; var2 < var0.cn.dw.cr(); ++var2) {
- a1 var3 = var1.dw.cw(var2);
- if (var3.gl()) {
- q var4 = (q)var3.gx();
- if (var4.ea) {
- var4 = (q)var4.d9;
- }
-
- if (var4.d3) {
- var4.eo();
- if (field_0) {
- method_1(" instanceof on " + ((au)var4).gg() + " at index " + var2 + " in " + ((am)var0).aj());
- }
- }
- } else if (var3.gm()) {
- q var8 = (q)var3.gx();
- if (var8.ea) {
- var8 = (q)var8.d9;
- }
-
- if (var8.d3) {
- var8.eo();
- if (field_0) {
- method_1(" checkcast on " + ((au)var8).gg() + " at index " + var2 + " in " + ((am)var0).aj());
- }
- }
- } else if (var3.c4 == 187) {
- q var9 = (q)var3.gx();
- if (!var9.ea) {
- if (!var9.d3) {
- continue;
- }
-
- var9.ek();
- if (!field_2.e4(var9) && !field_3.e4(var9) && !field_4.e4(var9)) {
- field_4.cx(var9);
- }
-
- if (field_0) {
- method_1(" class " + ((au)var9).gg() + " instantiated at index " + var2 + " in " + ((am)var0).aj());
- }
- } else {
- var9 = (q)var9.d9;
- if (!var9.d3) {
- continue;
- }
- }
-
- method_12(var9);
- } else if (var3.gn()) {
- q var10 = (q)var3.gx();
- if (var10.ea) {
- var10 = (q)var10.d9;
- }
-
- if (var10.d3) {
- method_12(var10);
- }
- } else if (var3.go()) {
- m var5 = (m)var3.gy();
- if (var5.c1.d3) {
- if (var3.c4 != 180 && var3.c4 != 178) {
- var5.dq();
- if (field_0) {
- method_1(" field " + ((a5)var5).aj() + " " + bg.g6(var5.c7) + " written at index " + var2 + " in " + ((am)var0).aj());
- }
- } else {
- var5.ds();
- if (field_0) {
- method_1(" field " + ((a5)var5).aj() + " " + bg.g6(var5.c7) + " read at index " + var2 + " in " + ((am)var0).aj());
- }
- }
-
- method_12((q)var5.c1);
- }
- } else if (!var3.gs() && !var3.gq()) {
- if (var3.gr() || var3.gp()) {
- l var12 = (l)var3.fi();
- if (var12.c1.d3) {
- if (field_0) {
- method_1(" virtual call to method: " + ((am)var12).aj() + var12.cl.fd() + " in " + ((am)var0).aj() + " at index " + var2);
- }
-
- var12.dd();
- k var13 = (k)a6.f.dv(var0, (aj)var3, var12);
- if (!field_1.containsKey(var12)) {
- if (field_0) {
- method_1(" registering virtual call site to method: " + ((am)var12).aj() + var12.cl.fd());
- }
-
- j var15 = new j(var12);
- var15.c0(var13);
- field_1.put(var12, var15);
- field_12.cx(var15);
- } else {
- j var16 = (j)field_1.get(var12);
- if (!var16.c1()) {
- field_12.cx(var16);
- }
-
- var16.c0(var13);
- }
-
- method_12((q)var12.c1);
- }
- }
- } else {
- l var11 = (l)var3.fi();
- if (var11.c1.d3) {
- if (field_0) {
- method_1(" direct call to method: " + ((am)var11).aj() + var11.cl.fd() + " in " + ((am)var0).aj() + " at index " + var2);
- }
-
- if (!field_6.e4(var11) && !field_7.e4(var11) && !field_8.e4(var11)) {
- if (field_0) {
- method_1(" adding method " + ((am)var11).aj() + var11.cl.fd() + " to newMethods");
- }
-
- field_8.cx(var11);
- }
-
- k var6 = (k)a6.f.dv(var0, (aj)var3, var11);
- if (!field_1.containsKey(var11)) {
- j var7 = new j(var11);
- var7.c3(var6);
- field_1.put(var11, var7);
- } else {
- j var14 = (j)field_1.get(var11);
- var14.c3(var6);
- }
-
- method_12((q)var11.c1);
- }
- }
- }
- }
- }
- } else {
- method_0("***internal JAX error in processMethod: method is NULL!");
- e.b7(100);
- }
-
- }
-
- // $FF: renamed from: bj (com.ibm.jax.q) void
- public static void method_12(q var0) {
- if (var0 != null) {
- if (!field_5.e4(var0)) {
- field_5.cx(var0);
- ai var1 = ai.fh("()V");
- l var2 = q.es(var0, "<clinit>", var1);
- if (var2 != null && !field_6.e4(var2) && !field_7.e4(var2) && !field_8.e4(var2)) {
- if (field_0) {
- method_1(" adding method " + ((am)var2).aj() + var2.cl.fd() + " to newMethods");
- }
-
- field_8.cx(var2);
- method_2(var2);
- }
- }
-
- while(var0 != null) {
- var0 = (q)var0.d1;
- method_12(var0);
- }
-
- }
- }
-
- // $FF: renamed from: bk () com.ibm.bobby.ah
- public static ah method_13() {
- bp var0 = aa.b7;
- ah var1 = new ah();
- ai var2 = ai.fh("([Ljava/lang/String;)V");
-
- for(int var3 = 0; var3 < var0.cr(); ++var3) {
- q var4 = (q)var0.cw(var3);
- if (var4.d3) {
- l var5 = q.es(var4, "main", var2);
- if (var5 != null && ((au)var5).gb()) {
- method_1("found main in class " + ((au)var4).gg());
- var1.cx(var5);
- }
- }
- }
-
- return var1;
- }
-
- // $FF: renamed from: bl () void
- public static void method_14() {
- q var0 = (q)aa.e1(e.m.bu);
- ah var1 = method_13();
-
- for(int var2 = 0; var2 < var1.cr(); ++var2) {
- l var3 = (l)var1.cw(var2);
- if (var3.c1 != var0 && !var3.dk()) {
- e.m.h("ignoring main() method in class " + var3.c1.gg());
- } else {
- var3.dh();
- ((q)var3.c1).em();
- field_7.cx(var3);
- method_2(var3);
- }
- }
-
- method_12(var0);
- bs var11 = aa.e1("java.applet.Applet");
- bp var12 = aa.b7;
- ai var4 = ai.fh("()V");
-
- for(int var5 = 0; var5 < var12.cr(); ++var5) {
- q var6 = (q)var12.cw(var5);
- if (var6.d3) {
- if (((bs)var6).in(var11) && var6.d6 && !((au)var6).f8()) {
- field_3.cx(var6);
- var6.ek();
- l var7 = q.es(var6, "<init>", var4);
- if (var7 != null) {
- field_7.cx(var7);
- method_2(var7);
- }
- }
-
- if (var6.dk()) {
- if (var6.d6) {
- field_3.cx(var6);
- var6.ek();
- l var13 = q.es(var6, "<init>", var4);
- if (var13 != null) {
- field_7.cx(var13);
- method_2(var13);
- }
- }
-
- method_12(var6);
- }
-
- ah var14 = var6.dz;
-
- for(int var8 = 0; var8 < var14.cr(); ++var8) {
- l var9 = (l)var14.cw(var8);
- if (var9.dk()) {
- field_7.cx(var9);
- method_2(var9);
- method_12(var6);
- }
- }
-
- a3 var15 = var6.d_;
-
- for(int var16 = 0; var16 < var15.cr(); ++var16) {
- m var10 = (m)var15.cw(var16);
- if (var10.dk()) {
- method_12(var6);
- }
- }
- }
- }
-
- }
-
- // $FF: renamed from: bm () void
- public static void method_15() {
- field_11 = field_12;
- field_12 = new i();
- }
-
- // $FF: renamed from: bn () void
- public static void method_16() {
- field_7 = field_8;
- field_8 = new ah();
- }
-
- // $FF: renamed from: bo () void
- public static void method_17() {
- field_3 = field_4;
- field_4 = new bp();
- }
-
- // $FF: renamed from: bp () void
- public static void method_18() {
- for(int var0 = 0; var0 < field_3.cr(); ++var0) {
- bs var1 = field_3.cw(var0);
- field_2.cx(var1);
- field_3.cs(var0);
- --var0;
- }
-
- }
-
- // $FF: renamed from: ae (com.ibm.jax.h) void
- public static void method_19(h var0) {
- int var2 = aa.b7.cr();
- byte var1;
- if (var2 < 50) {
- var1 = 10;
- } else if (var2 < 100) {
- var1 = 20;
- } else {
- var1 = 40;
- }
-
- String var3;
- if (var0 != null) {
- field_13 = var0;
- var3 = "FTA";
- } else {
- var3 = "RTA";
- }
-
- method_0("\nstarting search for entry points");
- method_14();
- method_0("finished search for entry points");
- method_0("\nstarting " + var3 + " analysis ");
-
- for(int var4 = 1; !field_7.ct() || !field_11.ct() || !field_3.ct(); ++var4) {
- int var5 = Math.min(var4 * 100 / var1, 99);
- System.out.print("\r" + var5 + "% done (estimate)... ");
-
- for(int var6 = 0; var6 < field_7.cr(); ++var6) {
- l var7 = (l)field_7.cw(var6);
- method_11(var7);
- field_7.cs(var6);
- field_6.cx(var7);
- --var6;
- }
-
- if (!field_3.ct() && !field_10.ct()) {
- for(int var9 = 0; var9 < field_10.cr(); ++var9) {
- j var14 = field_10.cw(var9);
- method_10(var14, field_3);
- }
- }
-
- if (!field_2.ct() && !field_11.ct()) {
- for(int var10 = 0; var10 < field_11.cr(); ++var10) {
- j var15 = field_11.cw(var10);
- method_10(var15, field_2);
- }
- }
-
- for(int var11 = 0; var11 < field_11.cr(); ++var11) {
- j var16 = field_11.cw(var11);
- if (!field_3.ct()) {
- method_10(var16, field_3);
- }
-
- field_10.cx(var16);
- field_11.cs(var11);
- --var11;
- }
-
- for(int var13 = field_9.cr() - 1; var13 >= 0; --var13) {
- am var17 = field_9.cw(var13);
- if (field_6.e4(var17)) {
- field_6.e0(var17);
- field_8.cx(var17);
- }
-
- if (field_7.e4(var17)) {
- field_7.e0(var17);
- field_8.cx(var17);
- }
- }
-
- field_9 = new ah();
- method_9();
- method_6();
- method_18();
- method_17();
- method_16();
- method_15();
- }
-
- System.out.print("\r99% done (estimate)... ");
- method_7();
- field_13 = null;
- field_2 = null;
- field_3 = null;
- field_4 = null;
- field_6 = null;
- field_7 = null;
- field_8 = null;
- field_10 = null;
- field_11 = null;
- field_12 = null;
- field_5 = null;
- method_0("\rfinished " + var3 + " analysis \n");
- }
- }
-