This was built to track decompiler and CFG progress.
Unimplemented Opcode: Dec
{
"frames": []
}
{
"current_block_id": {
"index": 5,
"address": 2073,
"block_type": "Normal"
},
"current_ast_node_stack": [
{
"StandaloneNode": {
"Expression": {
"Assignable": {
"MemberAccess": {
"metadata": {
"properties": {},
"comments": []
},
"node_id": 299162,
"ptr": {
"rhs": {
"Identifier": {
"metadata": {
"properties": {},
"comments": []
},
"node_id": 299161,
"ptr": {
"ssa_version": null,
"id": "i"
}
}
},
"ssa_version": 9,
"lhs": {
"Identifier": {
"metadata": {
"properties": {},
"comments": []
},
"ptr": {
"ssa_version": null,
"id": "temp"
},
"node_id": 299160
}
}
}
}
}
}
}
}
],
"current_instruction": {
"opcode": "Dec",
"operand": null,
"address": 2074
}
}
function onDisconnected(reason#2, error#1, sslerror#0)
{
lit#10 = false;
fn_call#12 = TClient_deleteTClient#11(lit#10);
fn_call#14 = getplatform#13();
lit#15 = "bada";
lit#16 = "javascript";
lit#17 = "flash";
lit#18 = "android";
lit#19 = "iphone";
// RegionId(0)
// RegionId(1)
if (fn_call#14 in {lit#19, lit#18, lit#17, lit#16, lit#15})
{
builtin_fn_call#21 = GUIContainer.controls.size();
lit#22 = 1;
temp.i = builtin_fn_call#21 - lit#22;
lit#23 = 0;
while (temp.i >= lit#23)
{
temp.ctrl = GUIContainer.controls[temp.i];
lit#25 = "GraalControl";
// RegionId(3)
// RegionId(4)
if (temp.ctrl.name != lit#25)
{
fn_call#27 = temp.ctrl.destroy();
}
temp.i--;
}
builtin_fn_call#28 = GraalControl.controls.size();
lit#29 = 1;
temp.i = builtin_fn_call#28 - lit#29;
lit#30 = 0;
while (temp.i >= lit#30)
{
temp.ctrl = GraalControl.controls[temp.i];
fn_call#31 = temp.ctrl.destroy();
temp.i--;
}
}
lit#32 = "ction to the accounts database has been lost";
builtin_fn_call#33 = reason#2.pos(lit#32);
lit#34 = 0;
// RegionId(9)
// RegionId(10)
if (builtin_fn_call#33 >= lit#34)
{
lit#35 = "Connection to the server lost, please try again later";
reason#36 = lit#35;
}
lit#37 = "Connection to the server can\'t be reached!";
builtin_fn_call#38 = reason#36.pos(lit#37);
lit#39 = 0;
// RegionId(12)
if (builtin_fn_call#38 >= lit#39)
{
lit#40 = 0;
lit#41 = 1;
lit#42 = 7;
lit#43 = "";
fn_call#45 = printDisconnectError#44(lit#43, lit#42, lit#41, lit#40);
lit#46 = 0;
return lit#46;
}
// RegionId(13)
else
{
lit#48 = true;
temp.showerror = lit#48;
lit#49 = true;
temp.tryrelogin = lit#49;
lit#50 = 2;
lit#51 = 1;
// RegionId(13)
// RegionId(14)
if (error#1 in {lit#51, lit#50})
{
lit#54 = "Login";
// RegionId(14)
// RegionId(15)
if (this.loginserver == lit#54)
{
lit#56 = "guest";
// RegionId(16)
if (this.logintype == lit#56)
{
lit#59 = ":";
temp.curserver = (this.loginhost @ lit#59) @ this.loginport;
builtin_fn_call#63 = this.loginservers.index(temp.curserver);
temp.serverindex = builtin_fn_call#63;
lit#64 = 0;
// RegionId(16)
// RegionId(17)
if (temp.serverindex >= lit#64)
{
lit#65 = 1;
builtin_fn_call#66 = this.loginservers.size();
// RegionId(18)
if ((temp.serverindex + lit#65) < builtin_fn_call#66)
{
lit#68 = 1;
temp.entry = this.loginservers[temp.serverindex + lit#68];
lit#69 = ":";
builtin_fn_call#70 = temp.entry.pos(lit#69);
temp.i = builtin_fn_call#70;
lit#71 = 0;
builtin_fn_call#72 = temp.entry.substring(lit#71, temp.i);
this.loginhost = builtin_fn_call#72;
lit#73 = 1;
lit#74 = -1;
builtin_fn_call#75 = temp.entry.substring(temp.i + lit#73, lit#74);
this.loginport = builtin_fn_call#75;
lit#76 = false;
temp.showerror = lit#76;
goto RegionId(20);
}
}
lit#77 = false;
temp.tryrelogin = lit#77;
goto RegionId(20);
}
}
}
this.reconnections++;
lit#79 = 5;
// RegionId(20)
// RegionId(21)
if (this.reconnections >= lit#79)
{
lit#80 = false;
temp.tryrelogin = lit#80;
}
lit#83 = 120;
// RegionId(22)
// RegionId(23)
if (this.firstDeco < (timevar2#82 - lit#83))
{
this.firstDeco = timevar2#82;
lit#85 = 0;
this.globalCountDeco = lit#85;
}
this.globalCountDeco++;
lit#86 = "globalCountDeco ";
fn_call#88 = echo#87(lit#86 @ this.globalCountDeco);
lit#89 = false;
temp.autoreconnect = lit#89;
lit#91 = false;
temp.silentReconnect = lit#91;
// RegionId(24)
// RegionId(25)
if (temp.tryrelogin)
{
lit#92 = "You have been disconnected because you didn\'t move.";
builtin_fn_call#93 = reason#36.pos(lit#92);
lit#94 = 0;
// RegionId(25)
// RegionId(26)
if (builtin_fn_call#93 >= lit#94)
{
lit#95 = true;
temp.autoreconnect = lit#95;
}
// RegionId(27)
else
{
lit#96 = 4;
// RegionId(27)
// RegionId(28)
if (this.reconnections < lit#96)
{
lit#97 = 10;
// RegionId(28)
// RegionId(29)
if (this.globalCountDeco < lit#97)
{
lit#98 = true;
temp.silentReconnect = lit#98;
lit#99 = true;
temp.autoreconnect = lit#99;
}
}
}
}
// RegionId(30)
// RegionId(31)
if (temp.tryrelogin)
{
}
phi<idx=1, regions=()> = phi<idx=0, regions=()>;
temp.doclosebutton = !temp.tryrelogin;
lit#102 = "Login";
// RegionId(20)
// RegionId(34)
if (this.loginserver == lit#102)
{
fn_call#104 = getPremiumOption#103();
lit#105 = "";
// RegionId(34)
// RegionId(35)
if (fn_call#104 == lit#105)
{
lit#106 = "Serverlist_Panel";
fn_call#108 = isObject#107(lit#106);
// RegionId(36)
if (!fn_call#108)
{
fn_call#110 = decideHostAndPort#109();
lit#113 = true;
MessageBoxDialog.keepvisibleonlogin = lit#113;
// RegionId(38)
// RegionId(39)
if (temp.autoreconnect)
{
// RegionId(39)
// RegionId(40)
if (temp.silentReconnect)
{
lit#115 = false;
temp.showerror = lit#115;
}
}
// RegionId(41)
// RegionId(42)
if (temp.showerror)
{
fn_call#116 = printDisconnectError#44(reason#36, error#1, temp.doclosebutton, temp.doreconnectbutton);
}
// RegionId(43)
// RegionId(44)
if (temp.autoreconnect)
{
lit#118 = "relogin";
this.messageboxaction = lit#118;
fn_call#120 = onMessageBoxButton#119();
}
lit#121 = 0;
return lit#121;
}
}
}
lit#114 = false;
MessageBoxDialog.keepvisibleonlogin = lit#114;
goto RegionId(38);
}
}
Use the mouse wheel + shift to zoom in and out, and click and drag to pan.
Use the mouse wheel + shift to zoom in and out, and click and drag to pan.
Step 1 of 83