This was built to track decompiler and CFG progress.
Unimplemented Opcode: NewObject
{
"frames": []
}
{
"current_block_id": {
"index": 2,
"address": 2193,
"block_type": "Normal"
},
"current_ast_node_stack": [
{
"StandaloneNode": {
"Expression": {
"Literal": {
"metadata": {
"properties": {},
"comments": []
},
"ptr": {
"String": "GuiRCFileBrowser"
},
"node_id": 25551
}
}
}
},
{
"StandaloneNode": {
"Expression": {
"Literal": {
"metadata": {
"properties": {},
"comments": []
},
"node_id": 25552,
"ptr": {
"String": "GuiRCFileBrowser"
}
}
}
}
},
{
"StandaloneNode": {
"Expression": {
"Literal": {
"metadata": {
"properties": {},
"comments": []
},
"node_id": 25553,
"ptr": {
"String": "GuiRCFileBrowser"
}
}
}
}
},
{
"StandaloneNode": {
"Expression": {
"Literal": {
"metadata": {
"properties": {},
"comments": []
},
"node_id": 25554,
"ptr": {
"String": "GuiRCFileBrowser"
}
}
}
}
},
{
"StandaloneNode": {
"Expression": {
"Literal": {
"metadata": {
"properties": {},
"comments": []
},
"ptr": {
"String": "GuiWindowCtrl"
},
"node_id": 25555
}
}
}
}
],
"current_instruction": {
"opcode": "NewObject",
"operand": null,
"address": 2200
}
}
function showFileBrowser()
{
lit#0 = "GuiRCFileBrowser";
fn_call#2 = isobject#1(lit#0);
// RegionId(0)
// RegionId(1)
if (fn_call#2)
{
fn_call#5 = GuiRCFileBrowser.destroy();
}
lit#6 = "GuiRCFileBrowser";
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 = "File Browser";
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 = 350;
lit#31 = 1000;
clientextent#32 = {lit#31, lit#30};
lit#34 = false;
visible#35 = lit#34;
lit#36 = "GuiRCFileBrowserTreeViewScroll";
gbf_new_obj#37 = lit#36;
lit#38 = "GuiScrollCtrl";
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 = "GuiRCScrollProfile";
profile#42 = lit#41;
lit#44 = 192;
lit#45 = 192;
extent#46 = {lit#45, lit#44};
lit#48 = "alwaysOn";
hscrollbar#49 = lit#48;
lit#51 = "alwaysOn";
vscrollbar#52 = lit#51;
lit#54 = "height";
vertsizing#55 = lit#54;
lit#56 = "GuiRCFileBrowserTreeView";
gbf_new_obj#57 = lit#56;
lit#58 = "GuiTreeViewCtrl";
new_node#59 = new lit#58(gbf_new_obj#57);
gbf_new_obj#60 = new_node#59;
// RegionId(7)
// RegionId(8)
with (gbf_new_obj#57)
{
lit#61 = "GuiRCTreeViewProfile";
profile#62 = lit#61;
lit#64 = true;
fitparentwidth#65 = lit#64;
lit#67 = 172;
width#68 = lit#67;
lit#70 = "width";
horizsizing#71 = lit#70;
}
fn_call#73 = addcontrol#72(phi<idx=0, regions=()>);
}
fn_call#74 = addcontrol#72(phi<idx=0, regions=()>);
lit#75 = "GuiRCFileBrowserFileListScroll";
gbf_new_obj#76 = lit#75;
lit#77 = "GuiScrollCtrl";
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 = "GuiRCScrollProfile";
profile#81 = lit#80;
lit#83 = 0;
lit#84 = 192;
position#85 = {lit#84, lit#83};
lit#86 = 192;
lit#88 = 0;
extent#89 = {GuiRCFileBrowser.clientwidth - position#85[lit#88], lit#86};
lit#90 = "alwaysOff";
hscrollbar#91 = lit#90;
lit#92 = "dynamic";
vscrollbar#93 = lit#92;
lit#94 = "width";
horizsizing#95 = lit#94;
lit#96 = "height";
vertsizing#97 = lit#96;
lit#98 = "GuiRCFileBrowserFileList";
gbf_new_obj#99 = lit#98;
lit#100 = "GuiTextListCtrl";
new_node#101 = new lit#100(gbf_new_obj#99);
gbf_new_obj#102 = new_node#101;
// RegionId(11)
// RegionId(12)
with (gbf_new_obj#99)
{
lit#103 = "GuiRCTextListProfile";
profile#104 = lit#103;
lit#105 = true;
fitparentwidth#106 = lit#105;
lit#108 = true;
clipcolumntext#109 = lit#108;
lit#110 = 16;
lit#111 = 16;
fn_call#113 = seticonsize#112(lit#111, lit#110);
lit#115 = 500;
lit#116 = 400;
lit#117 = 350;
lit#118 = 0;
columns#119 = {lit#118, lit#117, lit#116, lit#115};
lit#121 = 0;
lit#122 = 20;
width#123 = GuiRCFileBrowserFileListScroll.extent[lit#121] - lit#122;
lit#124 = "width";
horizsizing#125 = lit#124;
lit#127 = true;
acceptdropfiles#128 = lit#127;
}
fn_call#129 = addcontrol#72(phi<idx=0, regions=()>);
}
fn_call#130 = addcontrol#72(phi<idx=0, regions=()>);
lit#131 = "GuiRCFileBrowserConsoleScroll";
gbf_new_obj#132 = lit#131;
lit#133 = "GuiScrollCtrl";
new_node#134 = new lit#133(gbf_new_obj#132);
gbf_new_obj#135 = new_node#134;
// RegionId(14)
// RegionId(15)
with (gbf_new_obj#132)
{
lit#136 = "GuiRCScrollProfile";
profile#137 = lit#136;
lit#138 = 192;
lit#139 = 0;
position#140 = {lit#139, lit#138};
lit#141 = 1;
lit#142 = 1;
lit#143 = 0;
extent#144 = {GuiRCFileBrowser.clientextent[lit#143], GuiRCFileBrowser.clientextent[lit#141] - position#140[lit#142]};
lit#145 = "alwaysOff";
hscrollbar#146 = lit#145;
lit#147 = "dynamic";
vscrollbar#148 = lit#147;
lit#149 = "width";
horizsizing#150 = lit#149;
lit#151 = "top";
vertsizing#152 = lit#151;
}
fn_call#153 = addcontrol#72(phi<idx=0, regions=()>);
lit#154 = true;
visible#155 = lit#154;
}
fn_call#156 = addcontrol#72(phi<idx=0, regions=()>);
lit#159 = 3;
lit#160 = 2;
lit#162 = 1;
lit#163 = 32;
lit#164 = 0;
lit#165 = 32;
GuiRCFileBrowser.externalwindow.bounds = {GuiRC.externalwindow.bounds[lit#164] + lit#165, GuiRC.externalwindow.bounds[lit#162] + lit#163, GuiRCFileBrowser.externalwindow.bounds[lit#160], GuiRCFileBrowser.externalwindow.bounds[lit#159]};
lit#166 = 0;
return lit#166;
}
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 33