反编译之后的switch嵌套
编程自留地 2012-04-19 04:20:00 这里面有个switch语句的嵌套,下面红色的部分。怎么还原啊?
public void onCreate(Bundle bundle)
{
_L3:
int k;
int l;
k = 0;
l = 0;
_L35:
mServer.mColorDepth;
JVM INSTR lookupswitch 3: default 336
// 100: 1976
// 200: 1983
// 300: 1990;
goto _L14 _L15 _L16 _L17
_L14:
byte byte0 = 16;
_L36:
SoundParameters soundparameters = null;
mServer.mSoundOption;
JVM INSTR tableswitch 0 2: default 376
// 0 1997
// 1 2003
// 2 2009;
goto _L18 _L19 _L20 _L21
_L18:
boolean flag8 = false;
_L37:
mServer.mSecurityLayerOption;
JVM INSTR tableswitch 1 2: default 408
// 1 2119
// 2 2128;
goto _L22 _L23 _L24
_L22:
int i1;
boolean flag9;
i1 = 1;
flag9 = true;
_L38:
TpktLayer tpktlayer;
UnicodeToUsEnglishKeyboardMapper unicodetousenglishkeyboardmapper;
String s8;
SharedPreferences sharedpreferences1 = sharedpreferences;
String s6 = "pref_warn_ssl_cert_untrusted";
boolean flag10 = false;
if(sharedpreferences1.getBoolean(s6, flag10))
{
AndroidCertificateManager androidcertificatemanager = JVM INSTR new #507 <Class AndroidCertificateManager>;
AndroidCertificateManager androidcertificatemanager1 = androidcertificatemanager;
SessionActivity sessionactivity = this;
androidcertificatemanager1.AndroidCertificateManager(sessionactivity);
AndroidCertificateManager androidcertificatemanager2 = androidcertificatemanager;
mCertificateManager = androidcertificatemanager2;
mCertificateManager.init();
}
String s7 = mServer.mHost;
int j1 = mServer.mPort;
AndroidNetworkWaiter androidnetworkwaiter = JVM INSTR new #525 <Class AndroidNetworkWaiter>;
ConnectivityManager connectivitymanager = (ConnectivityManager)getApplicationContext().getSystemService("connectivity");
AndroidNetworkWaiter androidnetworkwaiter1 = androidnetworkwaiter;
ConnectivityManager connectivitymanager1 = connectivitymanager;
androidnetworkwaiter1.AndroidNetworkWaiter(connectivitymanager1);
CertificateManager certificatemanager = mCertificateManager;
tpktlayer = new TpktLayer(s7, j1, androidnetworkwaiter, certificatemanager);
s8 = "";
if(!App.getApp(this).isMasterPasswordEnabled()) goto _L26; else goto _L25
_L25:
javax.crypto.SecretKey secretkey = App.getApp(this).getPasswordKey();
if(secretkey == null) goto _L28; else goto _L27
_L27:
int k1 = mServer.mPassword.length();
if(k1 == null) goto _L28; else goto _L29
_L29:
String s9;
App app = App.getApp(this);
String s10 = mServer.mPassword;
App app1 = app;
String s11 = s10;
javax.crypto.SecretKey secretkey1 = secretkey;
s9 = app1.decryptPassword(s11, secretkey1);
s8 = s9;
_L28:
SharedPreferences sharedpreferences4;
String s17;
boolean flag23;
Device adevice[] = (Device[])null;
if(sharedpreferences4.getBoolean(s17, flag23)) goto _L31; else goto _L30
_L30:
mVerticalScrollBarView.setVisibility(8);
_L39:
SharedPreferences sharedpreferences5;
String s18;
boolean flag24;
sharedpreferences5 = sharedpreferences;
s18 = "pref_horizontal_scroll_bar_key";
flag24 = true;
if(sharedpreferences5.getBoolean(s18, flag24)) goto _L33; else goto _L32
_L32:
mHorizontalScrollBarView.setVisibility(8);
_L40:
VerticalScrollBar verticalscrollbar1 = mVerticalScrollBarView;
IbmEnhKeyboardEmulator ibmenhkeyboardemulator4 = mIbmEnhKeyboardEmulator;
verticalscrollbar1.mIbmEnhKeyboardEmulator = ibmenhkeyboardemulator4;
HorizontalScrollBar horizontalscrollbar1 = mHorizontalScrollBarView;
IbmEnhKeyboardEmulator ibmenhkeyboardemulator5 = mIbmEnhKeyboardEmulator;
horizontalscrollbar1.mIbmEnhKeyboardEmulator = ibmenhkeyboardemulator5;
SessionActivity sessionactivity8 = this;
int l3 = 0x7f0a002c;
WindowsKeyboardView windowskeyboardview = (WindowsKeyboardView)sessionactivity8.findViewById(l3);
mWindowsKeyboardView = windowskeyboardview;
SessionActivity sessionactivity9 = this;
boolean flag25 = flag;
boolean flag26 = flag1;
boolean flag27 = flag2;
boolean flag28 = flag3;
sessionactivity9.initWindowsKeyboards(flag25, flag26, flag27, flag28);
mWindowsKeyboardView.setVisibility(8);
SessionActivity sessionactivity10 = this;
int i4 = 0x7f0a002b;
ZoomControls zoomcontrols = (ZoomControls)sessionactivity10.findViewById(i4);
setZoomControls(zoomcontrols);
mZoomControls.setVisibility(8);
setClickListeners();
mSessionView.processNewSurfaceParameters();
return;
_L2:
GeneralSecurityException generalsecurityexception;
RdpClientEngine rdpclientengine9;
Object aobj[];
String s20;
SessionActivity sessionactivity11;
int j4;
Object aobj1[];
String s21;
SessionActivity sessionactivity12;
int k4;
String s22;
Intent intent = getIntent();
String s19 = "com.xtralogic.android.rdpclient.server";
Server server1 = (Server)intent.getSerializableExtra(s19);
mServer = server1;
goto _L34
_L4:
k = 640;
l = 480;
goto _L35
_L5:
k = 720;
l = 480;
goto _L35
_L6:
k = 800;
l = 600;
goto _L35
_L7:
k = 1024;
l = 768;
goto _L35
_L8:
k = 1280;
l = 1024;
goto _L35
_L9:
k = 1440;
l = 900;
goto _L35
_L10:
k = 1400;
l = 1050;
goto _L35
_L11:
k = 1680;
l = 1050;
goto _L35
_L12:
k = 1600;
l = 1200;
goto _L35
_L13:
k = 1920;
l = 1080;
goto _L35
_L15:
byte0 = 8;
goto _L36
_L16:
byte0 = 16;
goto _L36
_L17:
byte0 = 24;
goto _L36
_L19:
flag8 = false;
goto _L37
_L20:
flag8 = true;
goto _L37
_L21:
flag8 = false;
IOException ioexception;
try
{
soundparameters = new SoundParameters();
AndroidPcmAudioDeviceFactory androidpcmaudiodevicefactory = new AndroidPcmAudioDeviceFactory();
soundparameters.mPcmAudioDeviceFactory = androidpcmaudiodevicefactory;
SharedPreferences sharedpreferences6 = sharedpreferences;
String s23 = "pref_sound_quality_key";
int l4 = 1;
int i5 = Utility.readIntPreference(sharedpreferences6, s23, l4);
soundparameters.mSoundQuality = i5;
SharedPreferences sharedpreferences7 = sharedpreferences;
String s24 = "pref_mono_stereo_key";
int j5 = 0;
int k5 = Utility.readIntPreference(sharedpreferences7, s24, j5);
soundparameters.mMonoStereoSound = k5;
}
// Misplaced declaration of an exception variable
catch(GeneralSecurityException generalsecurityexception)
{
rdpclientengine9 = null;
mRdpClientEngine = rdpclientengine9;
aobj = new Object[1];
s20 = generalsecurityexception.getMessage();
aobj[0] = s20;
sessionactivity11 = this;
j4 = 0x7f080033;
aobj1 = aobj;
s21 = sessionactivity11.getString(j4, aobj1);
sessionactivity12 = this;
k4 = 0x7f080031;
s22 = s21;
sessionactivity12.showErrorMessageDialog(k4, s22);
return;
}
catch(OutOfMemoryError outofmemoryerror)
{
RdpClientEngine rdpclientengine10 = null;
mRdpClientEngine = rdpclientengine10;
showOutOfMemoryErrorDialog();
outofmemoryerror.printStackTrace();
return;
}
catch(Exception exception)
{
String s25 = exception.getMessage();
SessionActivity sessionactivity13 = this;
int l5 = 0x7f080031;
String s26 = s25;
sessionactivity13.showErrorMessageDialog(l5, s26);
exception.printStackTrace();
return;
}
goto _L37
_L23:
i1 = 0;
flag9 = false;
goto _L38
_L24:
i1 = 1;
flag9 = false;
goto _L38
ioexception;
ioexception.printStackTrace();
goto _L28
GeneralSecurityException generalsecurityexception1;
generalsecurityexception1;
generalsecurityexception1.printStackTrace();
goto _L28
_L26:
s8 = mServer.mPassword;
goto _L28
_L31:
mVerticalScrollBarView.setVisibility(0);
goto _L39
_L33:
mHorizontalScrollBarView.setVisibility(0);
goto _L40
}