This was built to track decompiler and CFG progress.
The AST Node stack is empty.
{
"frames": []
}
{
"current_block_id": {
"index": 21,
"block_type": "Normal",
"address": 635
},
"current_ast_node_stack": [
{
"BuildingArray": [
{
"Identifier": {
"metadata": {
"properties": {},
"comments": []
},
"node_id": 43171,
"ptr": {
"ssa_version": 198,
"id": "lit"
}
}
},
{
"MemberAccess": {
"metadata": {
"properties": {},
"comments": []
},
"node_id": 43174,
"ptr": {
"rhs": {
"Identifier": {
"metadata": {
"properties": {},
"comments": []
},
"ptr": {
"ssa_version": null,
"id": "i"
},
"node_id": 43173
}
},
"lhs": {
"Identifier": {
"metadata": {
"properties": {},
"comments": []
},
"node_id": 43172,
"ptr": {
"ssa_version": null,
"id": "temp"
}
}
},
"ssa_version": null
}
}
},
{
"MemberAccess": {
"metadata": {
"properties": {},
"comments": []
},
"node_id": 43177,
"ptr": {
"rhs": {
"Identifier": {
"metadata": {
"properties": {},
"comments": []
},
"node_id": 43176,
"ptr": {
"ssa_version": null,
"id": "i"
}
}
},
"ssa_version": null,
"lhs": {
"Identifier": {
"metadata": {
"properties": {},
"comments": []
},
"ptr": {
"ssa_version": null,
"id": "temp"
},
"node_id": 43175
}
}
}
}
}
]
}
],
"current_instruction": {
"opcode": "Swap",
"operand": null,
"address": 706
}
}
function public.showOptions()
{
lit#0 = "GuiRCOptions";
fn_call#2 = isobject#1(lit#0);
// RegionId(0)
// RegionId(1)
if (fn_call#2)
{
fn_call#5 = GuiRCOptions.destroy();
}
lit#6 = "GuiRCOptions";
gbf_new_obj#7 = lit#6;
lit#8 = "GuiWindowCtrl";
new_node#9 = new lit#8(gbf_new_obj#7);
gbf_new_obj#10 = new_node#9;
// RegionId(2)
// RegionId(3)
with (gbf_new_obj#7)
{
lit#12 = "RC Options";
text#13 = lit#12;
lit#15 = "GuiRCWindowProfile";
profile#16 = lit#15;
// RegionId(3)
// RegionId(4)
if (remotecontrol.options.noexternalstyle)
{
lit#21 = "none";
}
// RegionId(5)
else
{
}
phi<idx=1, regions=()> = phi<idx=0, regions=()>;
lit#24 = true;
clientrelative#25 = lit#24;
lit#27 = true;
isexternal#28 = lit#27;
lit#30 = 196;
lit#31 = 256;
clientextent#32 = {lit#31, lit#30};
lit#34 = false;
visible#35 = lit#34;
lit#36 = "GuiRCOptionsFontSizeText";
gbf_new_obj#37 = lit#36;
lit#38 = "GuiTextCtrl";
new_node#39 = new lit#38(gbf_new_obj#37);
gbf_new_obj#40 = new_node#39;
// RegionId(6)
// RegionId(7)
with (gbf_new_obj#37)
{
lit#41 = "Console Font Size";
text#42 = lit#41;
lit#43 = "GuiRCTextProfile";
profile#44 = lit#43;
lit#46 = 20;
lit#47 = 20;
position#48 = {lit#47, lit#46};
}
fn_call#50 = addcontrol#49(phi<idx=0, regions=()>);
lit#51 = "GuiRCOptionsFontSizeTextEdit";
gbf_new_obj#52 = lit#51;
lit#53 = "GuiTextEditCtrl";
new_node#54 = new lit#53(gbf_new_obj#52);
gbf_new_obj#55 = new_node#54;
// RegionId(8)
// RegionId(9)
with (gbf_new_obj#52)
{
text#57 = remotecontrol.options.consolefontsize;
lit#58 = "GuiRCTextEditProfile";
profile#59 = lit#58;
lit#61 = true;
useownprofile#62 = lit#61;
lit#64 = true;
profile.numbersonly = lit#64;
lit#66 = 20;
lit#67 = 48;
extent#68 = {lit#67, lit#66};
lit#69 = 20;
lit#70 = 0;
lit#71 = 0;
lit#72 = 20;
position#73 = {(GuiRCOptions.clientextent[lit#70] - extent#68[lit#71]) - lit#72, lit#69};
}
fn_call#74 = addcontrol#49(phi<idx=0, regions=()>);
lit#75 = "GuiRCOptionsBufferLinesText";
gbf_new_obj#76 = lit#75;
lit#77 = "GuiTextCtrl";
new_node#78 = new lit#77(gbf_new_obj#76);
gbf_new_obj#79 = new_node#78;
// RegionId(10)
// RegionId(11)
with (gbf_new_obj#76)
{
lit#80 = "Console Buffer Lines";
text#81 = lit#80;
lit#82 = "GuiRCTextProfile";
profile#83 = lit#82;
lit#84 = 48;
lit#85 = 20;
position#86 = {lit#85, lit#84};
}
fn_call#87 = addcontrol#49(phi<idx=0, regions=()>);
lit#88 = "GuiRCOptionsBufferLinesTextEdit";
gbf_new_obj#89 = lit#88;
lit#90 = "GuiTextEditCtrl";
new_node#91 = new lit#90(gbf_new_obj#89);
gbf_new_obj#92 = new_node#91;
// RegionId(12)
// RegionId(13)
with (gbf_new_obj#89)
{
text#94 = remotecontrol.options.consolebufferlines;
lit#95 = "GuiRCTextEditProfile";
profile#96 = lit#95;
lit#97 = true;
useownprofile#98 = lit#97;
lit#99 = true;
profile.numbersonly = lit#99;
lit#100 = 20;
lit#101 = 48;
extent#102 = {lit#101, lit#100};
lit#103 = 48;
lit#104 = 0;
lit#105 = 0;
lit#106 = 20;
position#107 = {(GuiRCOptions.clientextent[lit#104] - extent#102[lit#105]) - lit#106, lit#103};
}
fn_call#108 = addcontrol#49(phi<idx=0, regions=()>);
lit#109 = "GuiRCOptionsLogRCChatCheckBox";
gbf_new_obj#110 = lit#109;
lit#111 = "GuiCheckBoxCtrl";
new_node#112 = new lit#111(gbf_new_obj#110);
gbf_new_obj#113 = new_node#112;
// RegionId(14)
// RegionId(15)
with (gbf_new_obj#110)
{
lit#114 = "Log scriptfiles/<server>/rcchat.txt";
text#115 = lit#114;
lit#116 = "GuiRCCheckBoxProfile";
profile#117 = lit#116;
lit#118 = 76;
lit#119 = 20;
position#120 = {lit#119, lit#118};
lit#121 = 20;
lit#122 = 0;
lit#123 = 40;
extent#124 = {GuiRCOptions.clientextent[lit#122] - lit#123, lit#121};
checked#127 = remotecontrol.options.logrcchat;
}
fn_call#128 = addcontrol#49(phi<idx=0, regions=()>);
lit#129 = "GuiRCOptionsDisconnectOnCloseCheckBox";
gbf_new_obj#130 = lit#129;
lit#131 = "GuiCheckBoxCtrl";
new_node#132 = new lit#131(gbf_new_obj#130);
gbf_new_obj#133 = new_node#132;
// RegionId(16)
// RegionId(17)
with (gbf_new_obj#130)
{
lit#134 = "Disconnect on close";
text#135 = lit#134;
lit#136 = "GuiRCCheckBoxProfile";
profile#137 = lit#136;
lit#138 = 104;
lit#139 = 20;
position#140 = {lit#139, lit#138};
lit#141 = 20;
lit#142 = 0;
lit#143 = 40;
extent#144 = {GuiRCOptions.clientextent[lit#142] - lit#143, lit#141};
checked#146 = remotecontrol.options.disconnectonclose;
}
fn_call#147 = addcontrol#49(phi<idx=0, regions=()>);
lit#148 = "GuiRCOptionsNoExternalStyleCheckBox";
gbf_new_obj#149 = lit#148;
lit#150 = "GuiCheckBoxCtrl";
new_node#151 = new lit#150(gbf_new_obj#149);
gbf_new_obj#152 = new_node#151;
// RegionId(18)
// RegionId(19)
with (gbf_new_obj#149)
{
lit#153 = "No external style";
text#154 = lit#153;
lit#155 = "GuiRCCheckBoxProfile";
profile#156 = lit#155;
lit#157 = 132;
lit#158 = 20;
position#159 = {lit#158, lit#157};
lit#160 = 20;
lit#161 = 0;
lit#162 = 40;
extent#163 = {GuiRCOptions.clientextent[lit#161] - lit#162, lit#160};
checked#164 = remotecontrol.options.noexternalstyle;
}
fn_call#165 = addcontrol#49(phi<idx=0, regions=()>);
lit#166 = "GuiRCOptionsEditGuiProfilePopUpMenu";
gbf_new_obj#167 = lit#166;
lit#168 = "GuiPopUpMenuCtrl";
new_node#169 = new lit#168(gbf_new_obj#167);
gbf_new_obj#170 = new_node#169;
// RegionId(20)
// RegionId(21)
with (gbf_new_obj#167)
{
lit#171 = "Edit gui profiles (advanced)";
text#172 = lit#171;
lit#173 = "GuiRCPopUpMenuProfile";
profile#174 = lit#173;
lit#175 = 160;
lit#176 = 20;
position#177 = {lit#176, lit#175};
lit#178 = 20;
lit#179 = 0;
lit#180 = 40;
extent#181 = {GuiRCOptions.clientextent[lit#179] - lit#180, lit#178};
textprofile#184 = GuiRCTextListProfile#183;
scrollprofile#187 = GuiRCScrollProfile#186;
lit#190 = 0;
temp.i = lit#190;
lit#191 = "Bitmaps";
phi<idx=0, regions=()>++;
fn_call#193 = addrow#192(temp.i, temp.i, lit#191);
lit#194 = "Button";
phi<idx=1, regions=()>++;
fn_call#195 = addrow#192(temp.i, temp.i, lit#194);
lit#196 = "CheckBox";
phi<idx=2, regions=()>++;
fn_call#197 = addrow#192(temp.i, temp.i, lit#196);
lit#198 = "GreenText";
phi<idx=3, regions=()>++;
fn_call#199 = addrow#192(temp.i, temp.i, lit#198);
lit#200 = "PopUpMenu";
phi<idx=4, regions=()>++;
fn_call#201 = addrow#192(temp.i, temp.i, lit#200);
lit#202 = "MLText";
phi<idx=5, regions=()>++;
fn_call#203 = addrow#192(temp.i, temp.i, lit#202);
lit#204 = "MLTextEdit";
phi<idx=6, regions=()>++;
fn_call#205 = addrow#192(temp.i, temp.i, lit#204);
lit#206 = "Scroll";
phi<idx=7, regions=()>++;
fn_call#207 = addrow#192(temp.i, temp.i, lit#206);
lit#208 = "Tab";
phi<idx=8, regions=()>++;
fn_call#209 = addrow#192(temp.i, temp.i, lit#208);
lit#210 = "Text";
phi<idx=9, regions=()>++;
fn_call#211 = addrow#192(temp.i, temp.i, lit#210);
lit#212 = "TextEdit";
phi<idx=10, regions=()>++;
fn_call#213 = addrow#192(temp.i, temp.i, lit#212);
lit#214 = "TextList";
phi<idx=11, regions=()>++;
fn_call#215 = addrow#192(temp.i, temp.i, lit#214);
lit#216 = "Window";
phi<idx=12, regions=()>++;
fn_call#217 = addrow#192(temp.i, temp.i, lit#216);
}
fn_call#218 = addcontrol#49(phi<idx=0, regions=()>);
lit#219 = true;
visible#220 = lit#219;
}
fn_call#221 = addcontrol#49(phi<idx=0, regions=()>);
lit#224 = 3;
lit#225 = 2;
lit#227 = 1;
lit#228 = 32;
lit#229 = 0;
lit#230 = 32;
GuiRCOptions.externalwindow.bounds = {GuiRC.externalwindow.bounds[lit#229] + lit#230, GuiRC.externalwindow.bounds[lit#227] + lit#228, GuiRCOptions.externalwindow.bounds[lit#225], GuiRCOptions.externalwindow.bounds[lit#224]};
lit#231 = 0;
return lit#231;
}
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 45