Welcome to the GBF Test Portal

This was built to track decompiler and CFG progress.

Decompiler Output

Backtrace

{
  "frames": []
}

Context

{
  "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;
}