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