This was built to track decompiler and CFG progress.
Unimplemented Opcode: NewObject
{
"frames": []
}
{
"current_block_id": {
"index": 2,
"address": 10702,
"block_type": "Normal"
},
"current_ast_node_stack": [
{
"StandaloneNode": {
"Expression": {
"Assignable": {
"Identifier": {
"metadata": {
"properties": {},
"comments": []
},
"ptr": {
"ssa_version": 0,
"id": "FileBrowser_Screen"
},
"node_id": 49060
}
}
}
}
},
{
"StandaloneNode": {
"Expression": {
"Assignable": {
"Identifier": {
"metadata": {
"properties": {},
"comments": []
},
"node_id": 49061,
"ptr": {
"ssa_version": 0,
"id": "FileBrowser_Screen"
}
}
}
}
}
},
{
"StandaloneNode": {
"Expression": {
"Assignable": {
"Identifier": {
"metadata": {
"properties": {},
"comments": []
},
"node_id": 49062,
"ptr": {
"ssa_version": 0,
"id": "FileBrowser_Screen"
}
}
}
}
}
},
{
"StandaloneNode": {
"Expression": {
"Assignable": {
"Identifier": {
"metadata": {
"properties": {},
"comments": []
},
"ptr": {
"ssa_version": 0,
"id": "FileBrowser_Screen"
},
"node_id": 49063
}
}
}
}
},
{
"StandaloneNode": {
"Expression": {
"Literal": {
"metadata": {
"properties": {},
"comments": []
},
"ptr": {
"String": "GuiWindowCtrl"
},
"node_id": 49064
}
}
}
}
],
"current_instruction": {
"opcode": "NewObject",
"operand": null,
"address": 10709
}
}
function openFileBrowser()
{
lit#1 = null;
// RegionId(0)
// RegionId(1)
if (FileBrowser_Screen#0 != lit#1)
{
fn_call#3 = FileBrowser_Screen.destroy();
}
gbf_new_obj#4 = FileBrowser_Screen#0;
lit#5 = "GuiWindowCtrl";
new_node#6 = new lit#5(gbf_new_obj#4);
gbf_new_obj#7 = new_node#6;
// RegionId(2)
// RegionId(3)
with (gbf_new_obj#4)
{
lit#9 = "GuiBlueWindowProfile";
profile#10 = lit#9;
lit#12 = 50;
y#13 = lit#12;
lit#15 = 50;
x#16 = lit#15;
fn_call#19 = getGUIStyle#18();
style#20 = fn_call#19;
lit#22 = true;
clientrelative#23 = lit#22;
lit#25 = 421;
lit#26 = 560;
clientextent#27 = {lit#26, lit#25};
lit#29 = true;
isexternal#30 = lit#29;
lit#32 = true;
canMove#33 = lit#32;
lit#35 = true;
canResize#36 = lit#35;
lit#38 = true;
canClose#39 = lit#38;
lit#41 = "File Browser";
text#42 = lit#41;
lit#44 = true;
tile#45 = lit#44;
lit#47 = true;
destroyonhide#48 = lit#47;
gbf_new_obj#50 = FileBrowser_BigFrameset#49;
lit#51 = "GuiFrameSetCtrl";
new_node#52 = new lit#51(gbf_new_obj#50);
gbf_new_obj#53 = new_node#52;
// RegionId(3)
// RegionId(4)
with (gbf_new_obj#50)
{
lit#55 = 0;
lit#56 = 0;
position#57 = {lit#56, lit#55};
lit#59 = 421;
lit#60 = 560;
extent#61 = {lit#60, lit#59};
lit#63 = 2;
rowcount#64 = lit#63;
lit#66 = 1;
columncount#67 = lit#66;
lit#69 = "width";
horizSizing#70 = lit#69;
lit#72 = "height";
vertSizing#73 = lit#72;
lit#75 = 128;
lit#76 = 128;
lit#77 = 0;
lit#78 = 0;
bordercolor#79 = {lit#78, lit#77, lit#76, lit#75};
lit#80 = 315;
lit#81 = 1;
fn_call#83 = setrowoffset#82(lit#81, lit#80);
gbf_new_obj#85 = FileBrowser_Frameset#84;
lit#86 = "GuiFrameSetCtrl";
new_node#87 = new lit#86(gbf_new_obj#85);
gbf_new_obj#88 = new_node#87;
// RegionId(4)
// RegionId(5)
with (gbf_new_obj#85)
{
lit#89 = 0;
lit#90 = 0;
position#91 = {lit#90, lit#89};
lit#92 = 315;
lit#93 = 560;
extent#94 = {lit#93, lit#92};
lit#95 = 1;
rowcount#96 = lit#95;
lit#97 = 2;
columncount#98 = lit#97;
lit#99 = "width";
horizSizing#100 = lit#99;
lit#101 = "height";
vertSizing#102 = lit#101;
lit#103 = 128;
lit#104 = 128;
lit#105 = 0;
lit#106 = 0;
bordercolor#107 = {lit#106, lit#105, lit#104, lit#103};
lit#108 = 160;
lit#109 = 1;
fn_call#111 = setcolumnoffset#110(lit#109, lit#108);
gbf_new_obj#113 = FileBrowser_TreeScroll#112;
lit#114 = "GuiScrollCtrl";
new_node#115 = new lit#114(gbf_new_obj#113);
gbf_new_obj#116 = new_node#115;
// RegionId(5)
// RegionId(6)
with (gbf_new_obj#113)
{
lit#117 = "GuiBlueScrollProfile";
profile#118 = lit#117;
lit#119 = "right";
horizSizing#120 = lit#119;
lit#121 = "height";
vertSizing#122 = lit#121;
lit#124 = "dynamic";
hScrollBar#125 = lit#124;
lit#127 = "dynamic";
vScrollBar#128 = lit#127;
lit#129 = true;
tile#130 = lit#129;
gbf_new_obj#132 = FileBrowser_Tree#131;
lit#133 = "GuiTreeViewCtrl";
new_node#134 = new lit#133(gbf_new_obj#132);
gbf_new_obj#135 = new_node#134;
// RegionId(6)
// RegionId(7)
with (gbf_new_obj#132)
{
profile#137 = GuiBlueTreeViewProfile#136;
lit#139 = true;
fitparentwidth#140 = lit#139;
lit#141 = "width";
horizSizing#142 = lit#141;
lit#143 = 0;
y#144 = lit#143;
x#145 = y#13;
lit#147 = 120;
width#148 = lit#147;
lit#149 = "onTreeView";
lit#150 = "onSelect";
fn_call#154 = thiso.catchevent(name#151, lit#150, lit#149);
}
fn_call#156 = addcontrol#155(phi<idx=0, regions=()>);
}
fn_call#157 = addcontrol#155(phi<idx=0, regions=()>);
gbf_new_obj#159 = FileBrowser_FilesScroll#158;
lit#160 = "GuiScrollCtrl";
new_node#161 = new lit#160(gbf_new_obj#159);
gbf_new_obj#162 = new_node#161;
// RegionId(9)
// RegionId(10)
with (gbf_new_obj#159)
{
lit#163 = "GuiBlueScrollProfile";
profile#164 = lit#163;
lit#165 = "width";
horizSizing#166 = lit#165;
lit#167 = "height";
vertSizing#168 = lit#167;
lit#169 = "alwaysOff";
hScrollBar#170 = lit#169;
lit#171 = "dynamic";
vScrollBar#172 = lit#171;
lit#173 = true;
tile#174 = lit#173;
gbf_new_obj#176 = FileBrowser_NameLabel#175;
lit#177 = "GuiTextCtrl";
new_node#178 = new lit#177(gbf_new_obj#176);
gbf_new_obj#179 = new_node#178;
// RegionId(10)
// RegionId(11)
with (gbf_new_obj#176)
{
lit#180 = "GuiBlueTextProfile";
profile#181 = lit#180;
lit#182 = 0;
lit#183 = 19;
position#184 = {lit#183, lit#182};
lit#185 = "60 22";
extent#186 = lit#185;
lit#188 = "8 22";
minExtent#189 = lit#188;
lit#190 = "Name";
text#191 = lit#190;
lit#193 = true;
useownprofile#194 = lit#193;
lit#196 = "b";
profile.fontstyle = lit#196;
lit#197 = "onSortFolder";
lit#198 = "onMouseDown";
fn_call#200 = thiso.catchevent(this#199, lit#198, lit#197);
}
fn_call#201 = addcontrol#155(phi<idx=0, regions=()>);
gbf_new_obj#203 = FileBrowser_RightsLabel#202;
lit#204 = "GuiTextCtrl";
new_node#205 = new lit#204(gbf_new_obj#203);
gbf_new_obj#206 = new_node#205;
// RegionId(12)
// RegionId(13)
with (gbf_new_obj#203)
{
lit#207 = "GuiBlueTextProfile";
profile#208 = lit#207;
lit#209 = 0;
lit#210 = -66;
position#211 = {lit#210, lit#209};
lit#212 = "40 22";
extent#213 = lit#212;
lit#214 = "8 22";
minExtent#215 = lit#214;
lit#216 = "R/W";
text#217 = lit#216;
lit#218 = true;
useownprofile#219 = lit#218;
lit#220 = "b";
profile.fontstyle = lit#220;
lit#221 = "onSortFolder";
lit#222 = "onMouseDown";
fn_call#223 = thiso.catchevent(this#199, lit#222, lit#221);
}
fn_call#224 = addcontrol#155(phi<idx=0, regions=()>);
gbf_new_obj#226 = FileBrowser_SizeLabel#225;
lit#227 = "GuiTextCtrl";
new_node#228 = new lit#227(gbf_new_obj#226);
gbf_new_obj#229 = new_node#228;
// RegionId(14)
// RegionId(15)
with (gbf_new_obj#226)
{
lit#230 = "GuiBlueTextProfile";
profile#231 = lit#230;
lit#232 = 0;
lit#233 = -26;
position#234 = {lit#233, lit#232};
lit#235 = "50 22";
extent#236 = lit#235;
lit#237 = "8 22";
minExtent#238 = lit#237;
lit#239 = "Size";
text#240 = lit#239;
lit#241 = true;
useownprofile#242 = lit#241;
lit#243 = "b";
profile.fontstyle = lit#243;
lit#244 = "onSortFolder";
lit#245 = "onMouseDown";
fn_call#246 = thiso.catchevent(this#199, lit#245, lit#244);
}
fn_call#247 = addcontrol#155(phi<idx=0, regions=()>);
gbf_new_obj#249 = FileBrowser_ModifiedLabel#248;
lit#250 = "GuiTextCtrl";
new_node#251 = new lit#250(gbf_new_obj#249);
gbf_new_obj#252 = new_node#251;
// RegionId(16)
// RegionId(17)
with (gbf_new_obj#249)
{
lit#253 = "GuiBlueTextProfile";
profile#254 = lit#253;
lit#255 = 0;
lit#256 = 24;
position#257 = {lit#256, lit#255};
lit#258 = "60 22";
extent#259 = lit#258;
lit#260 = "8 22";
minExtent#261 = lit#260;
lit#262 = "Modified";
text#263 = lit#262;
lit#264 = true;
useownprofile#265 = lit#264;
lit#266 = "b";
profile.fontstyle = lit#266;
lit#267 = "onSortFolder";
lit#268 = "onMouseDown";
fn_call#269 = thiso.catchevent(this#199, lit#268, lit#267);
}
fn_call#270 = addcontrol#155(phi<idx=0, regions=()>);
gbf_new_obj#272 = FileBrowser_FilesList#271;
lit#273 = "GuiTextListCtrl";
new_node#274 = new lit#273(gbf_new_obj#272);
gbf_new_obj#275 = new_node#274;
// RegionId(18)
// RegionId(19)
with (gbf_new_obj#272)
{
lit#276 = "GuiBlueTextListProfile";
profile#277 = lit#276;
lit#278 = "width";
horizSizing#279 = lit#278;
lit#280 = "height";
vertSizing#281 = lit#280;
lit#282 = 0;
x#283 = lit#282;
lit#284 = 24;
y#285 = lit#284;
lit#286 = 330;
width#287 = lit#286;
lit#289 = true;
fitParentWidth#290 = lit#289;
lit#292 = "name";
sortMode#293 = lit#292;
lit#295 = true;
clipColumnText#296 = lit#295;
lit#298 = 20;
lineSpacing#299 = lit#298;
lit#301 = 18;
fontSize#302 = lit#301;
lit#303 = 18;
lit#304 = 16;
fn_call#306 = setIconSize#305(lit#304, lit#303);
lit#308 = 230;
lit#309 = 160;
lit#310 = 120;
lit#311 = 0;
columns#312 = {lit#311, lit#310, lit#309, lit#308};
lit#314 = true;
acceptdropfiles#315 = lit#314;
}
fn_call#316 = addcontrol#155(phi<idx=0, regions=()>);
}
fn_call#317 = addcontrol#155(phi<idx=0, regions=()>);
}
fn_call#318 = addcontrol#155(phi<idx=0, regions=()>);
gbf_new_obj#320 = FileBrowser_Scroll#319;
lit#321 = "GuiScrollCtrl";
new_node#322 = new lit#321(gbf_new_obj#320);
gbf_new_obj#323 = new_node#322;
// RegionId(22)
// RegionId(23)
with (gbf_new_obj#320)
{
lit#324 = "GuiBlueScrollProfile";
profile#325 = lit#324;
lit#326 = 560;
width#327 = lit#326;
lit#329 = 109;
height#330 = lit#329;
lit#331 = "width";
horizSizing#332 = lit#331;
lit#333 = "top";
vertSizing#334 = lit#333;
lit#335 = "alwaysOff";
hScrollBar#336 = lit#335;
lit#337 = "dynamic";
vScrollBar#338 = lit#337;
gbf_new_obj#340 = FileBrowser_DebugText#339;
lit#341 = "GuiMLTextCtrl";
new_node#342 = new lit#341(gbf_new_obj#340);
gbf_new_obj#343 = new_node#342;
// RegionId(23)
// RegionId(24)
with (gbf_new_obj#340)
{
lit#344 = "GuiBlueMLTextProfile";
profile#345 = lit#344;
lit#346 = "width";
horizSizing#347 = lit#346;
lit#348 = 0;
y#349 = lit#348;
x#350 = y#285;
lit#351 = 470;
width#352 = lit#351;
}
fn_call#353 = addcontrol#155(phi<idx=0, regions=()>);
}
fn_call#354 = addcontrol#155(phi<idx=0, regions=()>);
}
fn_call#355 = addcontrol#155(phi<idx=0, regions=()>);
}
fn_call#356 = addcontrol#155(phi<idx=0, regions=()>);
gbf_new_obj#358 = FileBrowser_Menu#357;
lit#359 = "GuiContextMenuCtrl";
new_node#360 = new lit#359(gbf_new_obj#358);
gbf_new_obj#361 = new_node#360;
// RegionId(28)
// RegionId(29)
with (gbf_new_obj#358)
{
lit#362 = "GuiBluePopUpMenuProfile";
profile#363 = lit#362;
lit#365 = "GuiBlueTextListProfile";
textprofile#366 = lit#365;
fn_call#367 = getGUIStyle#18();
style#368 = fn_call#367;
lit#369 = 20;
width#370 = lit#369;
fn_call#372 = clearRows#371();
lit#373 = "Download file";
lit#374 = 0;
fn_call#376 = addRow#375(lit#374, lit#373);
lit#378 = 5.257;
// RegionId(29)
// RegionId(30)
if (graalversion#377 >= lit#378)
{
lit#379 = "Edit as Text";
lit#380 = 2;
fn_call#381 = addRow#375(lit#380, lit#379);
}
lit#382 = "Upload file";
lit#383 = 3;
fn_call#384 = addRow#375(lit#383, lit#382);
lit#385 = "-";
lit#386 = -1;
fn_call#387 = addRow#375(lit#386, lit#385);
lit#388 = "Move file";
lit#389 = 4;
fn_call#390 = addRow#375(lit#389, lit#388);
lit#391 = "Rename file";
lit#392 = 5;
fn_call#393 = addRow#375(lit#392, lit#391);
lit#394 = "-";
lit#395 = -1;
fn_call#396 = addRow#375(lit#395, lit#394);
lit#397 = "Delete file";
lit#398 = 6;
fn_call#399 = addRow#375(lit#398, lit#397);
}
fn_call#400 = addcontrol#155(phi<idx=0, regions=()>);
gbf_new_obj#402 = FileBrowser_Menu2#401;
lit#403 = "GuiContextMenuCtrl";
new_node#404 = new lit#403(gbf_new_obj#402);
gbf_new_obj#405 = new_node#404;
// RegionId(32)
// RegionId(33)
with (gbf_new_obj#402)
{
lit#406 = "GuiBluePopUpMenuProfile";
profile#407 = lit#406;
lit#408 = "GuiBlueTextListProfile";
textprofile#409 = lit#408;
fn_call#410 = getGUIStyle#18();
style#411 = fn_call#410;
lit#412 = 20;
width#413 = lit#412;
fn_call#414 = clearRows#371();
lit#415 = "Upload file";
lit#416 = 2;
fn_call#417 = addRow#375(lit#416, lit#415);
}
fn_call#418 = addcontrol#155(phi<idx=0, regions=()>);
gbf_new_obj#420 = FileBrowser_FolderMenu#419;
lit#421 = "GuiContextMenuCtrl";
new_node#422 = new lit#421(gbf_new_obj#420);
gbf_new_obj#423 = new_node#422;
// RegionId(34)
// RegionId(35)
with (gbf_new_obj#420)
{
lit#424 = "GuiBluePopUpMenuProfile";
profile#425 = lit#424;
lit#426 = "GuiBlueTextListProfile";
textprofile#427 = lit#426;
fn_call#428 = getGUIStyle#18();
style#429 = fn_call#428;
lit#430 = 20;
width#431 = lit#430;
fn_call#432 = clearRows#371();
lit#433 = "Delete folder";
lit#434 = 0;
fn_call#435 = addRow#375(lit#434, lit#433);
}
fn_call#436 = addcontrol#155(phi<idx=0, regions=()>);
lit#437 = true;
lit#438 = "Welcome to the filebrowser!";
fn_call#440 = FileBrowser_DebugText.addText(lit#438, lit#437);
fn_call#442 = FileBrowser_Screen.bringToFront();
lit#443 = 0;
return lit#443;
}
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 73