Welcome to the GBF Test Portal

This was built to track decompiler and CFG progress.

Decompiler Output

Backtrace

{
  "frames": []
}

Context

{
  "current_block_id": {
    "index": 6,
    "block_type": "Normal",
    "address": 13269
  },
  "current_ast_node_stack": [],
  "current_instruction": {
    "opcode": "Jne",
    "operand": {
      "Number": 13271
    },
    "address": 13268
  }
}
function createNamePrompt(temp.title, temp.itemtype, temp.desc)
{
    this.npp = temp.title;
    lit#7 = null;
    // RegionId(0)
    // RegionId(1)
    if (ScriptedRCNamePrompt#6 != lit#7) 
    {
        fn_call#9 = ScriptedRCNamePrompt.destroy();
    }
    lit#10 = "ScriptedRCNamePrompt";
    gbf_new_obj#11 = lit#10;
    lit#12 = "GuiWindowCtrl";
    new_node#13 = new lit#12(gbf_new_obj#11);
    gbf_new_obj#14 = new_node#13;
    // RegionId(2)
    // RegionId(3)
    with (gbf_new_obj#11) 
    {
        lit#17 = 2;
        lit#19 = 1;
        lit#20 = 2;
        lit#22 = 2;
        lit#23 = 0;
        lit#24 = 2;
        position#25 = {(screenwidth#21 / lit#22) - (extent#18[lit#23] / lit#24), (screenheight#16 / lit#17) - (extent#18[lit#19] / lit#20)};
        profile#28 = GuiBlueWindowProfile#27;
        lit#30 = true;
        visible#31 = lit#30;
        lit#33 = false;
        canResize#34 = lit#33;
        lit#36 = false;
        canMinimize#37 = lit#36;
        lit#39 = false;
        canMaximize#40 = lit#39;
        fn_call#43 = getGUIStyle#42();
        style#44 = fn_call#43;
        lit#46 = true;
        clientrelative#47 = lit#46;
        lit#49 = 160;
        lit#50 = 288;
        clientextent#51 = {lit#50, lit#49};
        lit#53 = true;
        isexternal#54 = lit#53;
        lit#56 = "center";
        horizSizing#57 = lit#56;
        lit#59 = "center";
        vertSizing#60 = lit#59;
        text#62 = temp.title;
        itype#64 = temp.itemtype;
        lit#65 = "ScriptedRCNamePromptScroll";
        gbf_new_obj#66 = lit#65;
        lit#67 = "GuiScrollCtrl";
        new_node#68 = new lit#67(gbf_new_obj#66);
        gbf_new_obj#69 = new_node#68;
        // RegionId(3)
        // RegionId(4)
        with (gbf_new_obj#66) 
        {
            lit#70 = 2;
            lit#71 = 2;
            position#72 = {lit#71, lit#70};
            lit#73 = 120;
            lit#74 = 284;
            extent#75 = {lit#74, lit#73};
            profile#77 = GuiBlueScrollProfile#76;
            lit#79 = "alwaysOff";
            vScrollBar#80 = lit#79;
            lit#82 = "dynamic";
            hScrollBar#83 = lit#82;
            lit#84 = "ScriptedRCNamePromptScrollText";
            gbf_new_obj#85 = lit#84;
            lit#86 = "GuiMLTextCtrl";
            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 = 120;
                lit#93 = 250;
                extent#94 = {lit#93, lit#92};
                profile#96 = GuiBlueTextProfile#95;
                lit#97 = null;
                // RegionId(5)
                // RegionId(6)
                if (temp.desc == lit#97) 
                {
                    lit#98 = "No help available for this action.";
                }
                // RegionId(7)
                else
                {
                }
                fn_call#100 = phi_fn_call({settext#99, ...phi<idx=0, regions=()>});
            }
            fn_call#102 = addcontrol#101(phi<idx=0, regions=()>);
        }
        fn_call#103 = addcontrol#101(phi<idx=0, regions=()>);
        lit#104 = "ScriptedRCNamePrompt_TextEntry";
        gbf_new_obj#105 = lit#104;
        lit#106 = "GuiTextEditCtrl";
        new_node#107 = new lit#106(gbf_new_obj#105);
        gbf_new_obj#108 = new_node#107;
        // RegionId(10)
        // RegionId(11)
        with (gbf_new_obj#105) 
        {
            lit#109 = 130;
            lit#110 = 6;
            position#111 = {lit#110, lit#109};
            lit#112 = 24;
            lit#113 = 220;
            extent#114 = {lit#113, lit#112};
            lit#115 = "";
            text#116 = lit#115;
            profile#118 = GuiBlueTextEditProfile#117;
            lit#119 = "onNamePromptEntry";
            lit#120 = "onAction";
            fn_call#123 = thiso.catchEvent(this#4, lit#120, lit#119);
            this.title = temp.title;
            this.itemtype = temp.itemtype;
            builtin_fn_call#125 = this#4.link();
            this.itemname = builtin_fn_call#125;
        }
        fn_call#126 = addcontrol#101(phi<idx=0, regions=()>);
        lit#127 = "ScriptedRCNamePrompt_Button";
        gbf_new_obj#128 = lit#127;
        lit#129 = "GuiButtonCtrl";
        new_node#130 = new lit#129(gbf_new_obj#128);
        gbf_new_obj#131 = new_node#130;
        // RegionId(12)
        // RegionId(13)
        with (gbf_new_obj#128) 
        {
            lit#132 = 130;
            lit#133 = 234;
            position#134 = {lit#133, lit#132};
            lit#135 = 24;
            lit#136 = 48;
            extent#137 = {lit#136, lit#135};
            lit#138 = "OK";
            text#139 = lit#138;
            profile#141 = GuiBlueButtonProfile#140;
            lit#142 = "onNamePromptEntry";
            lit#143 = "onAction";
            fn_call#144 = thiso.catchEvent(this#4, lit#143, lit#142);
            this.title = temp.title;
            this.itemtype = temp.itemtype;
            builtin_fn_call#146 = ScriptedRCNamePrompt_TextEntry#145.link();
            this.itemname = builtin_fn_call#146;
        }
        fn_call#147 = addcontrol#101(phi<idx=0, regions=()>);
    }
    fn_call#148 = addcontrol#101(phi<idx=0, regions=()>);
    fn_call#150 = ScriptedRCNamePrompt.showtop();
    lit#151 = true;
    fn_call#153 = ScriptedRCNamePrompt_TextEntry.makeFirstResponder(lit#151);
    lit#154 = 0;
    return lit#154;
}