Welcome to the GBF Test Portal

This was built to track decompiler and CFG progress.

Decompiler Output

Backtrace

{
  "frames": []
}

Context

{
  "current_block_id": {
    "index": 27,
    "block_type": "Normal",
    "address": 13758
  },
  "current_ast_node_stack": [],
  "current_instruction": {
    "opcode": "Ret",
    "operand": null,
    "address": 13770
  }
}
function onNamePromptEntry(obj#0)
{
    lit#4 = "Class";
    // RegionId(0)
    // RegionId(21)
    if (!(obj.title == lit#4)) 
    {
        lit#5 = "Weapon";
        // RegionId(22)
        if (!(phi<idx=0, regions=()> == lit#5)) 
        {
            lit#6 = "Disconnect";
            // RegionId(22)
            // RegionId(23)
            if (!(phi<idx=0, regions=()> == lit#6)) 
            {
                lit#7 = "Admin message";
                // RegionId(23)
                // RegionId(24)
                if (!(phi<idx=0, regions=()> == lit#7)) 
                {
                    lit#8 = "Command or object name";
                    // RegionId(24)
                    // RegionId(25)
                    if (!(phi<idx=0, regions=()> == lit#8)) 
                    {
                        lit#9 = "Move File";
                        // RegionId(25)
                        // RegionId(26)
                        if (!(phi<idx=0, regions=()> == lit#9)) 
                        {
                            lit#10 = "Unrecognised name prompt: \'%s\'";
                            builtin_fn_call#11 = format(lit#10, obj.title);
                            fn_call#13 = echo#12(builtin_fn_call#11);
                        }
                        // RegionId(11)
                        else
                        {
                            builtin_fn_call#16 = obj.itemname.text.trim();
                            temp.targetfolder = builtin_fn_call#16;
                            builtin_fn_call#17 = temp.targetfolder.length();
                            lit#18 = 0;
                            // RegionId(11)
                            // RegionId(12)
                            if (builtin_fn_call#17 <= lit#18) 
                            {
                            }
                            // RegionId(13)
                            else
                            {
                                lit#19 = "/";
                                builtin_fn_call#20 = temp.targetfolder.ends(lit#19);
                                // RegionId(13)
                                // RegionId(14)
                                if (!builtin_fn_call#20) 
                                {
                                    lit#21 = "/";
                                    temp.targetfolder = temp.targetfolder @ lit#21;
                                }
                                lit#22 = "check files move: ";
                                lit#23 = " - ";
                                fn_call#25 = echo#12(((lit#22 @ temp.targetfolder) @ lit#23) @ obj.itemtype);
                                lit#27 = 6.012;
                                // RegionId(15)
                                // RegionId(16)
                                if (graalversion#26 >= lit#27) 
                                {
                                    fn_call#29 = Adventure_requestFilesMove#28(temp.targetfolder, obj.itemtype);
                                }
                                // RegionId(17)
                                else
                                {
                                    fn_call#31 = requestFilesMove#30(temp.targetfolder, obj.itemtype);
                                }
                                lit#34 = "folder";
                                fn_call#36 = requesttext#35(lit#34, this.showfolder);
                            }
                        }
                    }
                    // RegionId(10)
                    else
                    {
                        lit#37 = "scripthelp";
                        fn_call#38 = requesttext#35(lit#37, obj.itemname.text);
                    }
                }
                // RegionId(9)
                else
                {
                    fn_call#40 = findPlayer#39(obj.itemtype);
                    lit#42 = "adminmessage";
                    fn_call#44 = sendtext#43(lit#42, fn_call.id, obj.itemname.text);
                }
            }
            // RegionId(8)
            else
            {
                fn_call#46 = escapestring#45(obj.itemname.text);
                fn_call#47 = findPlayer#39(obj.itemtype);
                lit#48 = "disconnect";
                fn_call#49 = sendtext#43(lit#48, fn_call.id, fn_call#46);
            }
            fn_call#74 = obj.parent.destroy();
            lit#75 = 0;
            return lit#75;
        }
    }
    lit#50 = "Class";
    // RegionId(1)
    // RegionId(2)
    if (obj.title == lit#50) 
    {
        lit#52 = "Classes";
        temp.root = lit#52;
    }
    // RegionId(3)
    else
    {
        lit#53 = "Weapon";
        // RegionId(3)
        // RegionId(4)
        if (obj.title == lit#53) 
        {
            lit#54 = "Weapons";
            temp.root = lit#54;
        }
    }
    lit#55 = "/";
    lit#56 = "/";
    fn_call#59 = ScriptEditorTree.getnodebypath((temp.root @ lit#56) @ obj.itemname.text, lit#55);
    lit#60 = null;
    // RegionId(5)
    // RegionId(6)
    if (fn_call#59 == lit#60) 
    {
        lit#61 = "// Scripted by ";
        fn_call#65 = lowercase#64(obj.title);
        fn_call#66 = sendtext#43(fn_call#65, obj.itemname.text, lit#61 @ player.nick);
        fn_call#67 = lowercase#64(obj.title);
        fn_call#69 = this.clearScriptTree(fn_call#67);
    }
    fn_call#70 = lowercase#64(obj.title);
    fn_call#71 = requesttext#35(fn_call#70, obj.itemname.text);
    goto RegionId(27);
}