Welcome to the GBF Test Portal

This was built to track decompiler and CFG progress.

Decompiler Output

function onApplyBan(obj#0)
{
    lit#4 = "Local ban";
    // RegionId(0)
    // RegionId(1)
    if (ScriptedRCBanWindowTabSelect.selected.text == lit#4) 
    {
        lit#7 = "releasetime=%d";
        builtin_fn_call#8 = format(lit#7, ScriptedRCBanType.selected.time);
        lit#11 = "banned=%d";
        builtin_fn_call#12 = format(lit#11, ScriptedRCIsBanned.checked);
        fn_call#14 = ScriptedRCBanType.getSelectedText();
        lit#15 = 0;
        fn_call#16 = ScriptedRCBanType.getSelectedText();
        lit#17 = "(";
        builtin_fn_call#18 = fn_call#16.pos(lit#17);
        lit#19 = 1;
        builtin_fn_call#20 = fn_call#14.substring(lit#15, builtin_fn_call#18 - lit#19);
        lit#21 = "bantype=%s";
        builtin_fn_call#22 = format(lit#21, builtin_fn_call#20);
        lit#24 = "reason=%s";
        builtin_fn_call#25 = format(lit#24, ScriptedRCBanReason.text);
        lit#26 = "local";
        lit#27 = "world=%s";
        builtin_fn_call#28 = format(lit#27, lit#26);
        lit#31 = "setban";
        lit#32 = "lister";
        fn_call#34 = sendtext#33(lit#32, lit#31, {obj.parent.acc, builtin_fn_call#28, builtin_fn_call#25, builtin_fn_call#22, builtin_fn_call#12, builtin_fn_call#8});
        fn_call#38 = this.accountbaninfo.destroy();
    }
    // RegionId(2)
    else
    {
        lit#39 = "Computer ban";
        // RegionId(2)
        // RegionId(3)
        if (ScriptedRCBanWindowTabSelect.selected.text == lit#39) 
        {
            lit#41 = "releasetime=%d";
            builtin_fn_call#42 = format(lit#41, ScriptedRCBanPCType.selected.time);
            lit#44 = "banned=%d";
            builtin_fn_call#45 = format(lit#44, ScriptedRCIsPCBanned.checked);
            fn_call#46 = ScriptedRCBanPCType.getSelectedText();
            lit#47 = 0;
            fn_call#48 = ScriptedRCBanPCType.getSelectedText();
            lit#49 = "(";
            builtin_fn_call#50 = fn_call#48.pos(lit#49);
            lit#51 = 1;
            builtin_fn_call#52 = fn_call#46.substring(lit#47, builtin_fn_call#50 - lit#51);
            lit#53 = "bantype=%s";
            builtin_fn_call#54 = format(lit#53, builtin_fn_call#52);
            lit#56 = "reason=%s";
            builtin_fn_call#57 = format(lit#56, ScriptedRCBanPCReason.text);
            lit#58 = "local";
            lit#59 = "world=%s";
            builtin_fn_call#60 = format(lit#59, lit#58);
            lit#61 = "pc:";
            lit#63 = "setban";
            lit#64 = "lister";
            fn_call#65 = sendtext#33(lit#64, lit#63, {lit#61 @ obj.parent.pcid, builtin_fn_call#60, builtin_fn_call#57, builtin_fn_call#54, builtin_fn_call#45, builtin_fn_call#42});
            fn_call#67 = this.pcbaninfo.destroy();
        }
        // RegionId(4)
        else
        {
            lit#68 = "Global ban";
            // RegionId(4)
            // RegionId(5)
            if (ScriptedRCBanWindowTabSelect.selected.text == lit#68) 
            {
                lit#70 = "releasetime=%d";
                builtin_fn_call#71 = format(lit#70, ScriptedRCBanGlobalType.selected.time);
                lit#73 = "banned=%d";
                builtin_fn_call#74 = format(lit#73, ScriptedRCIsGlobalBanned.checked);
                fn_call#75 = ScriptedRCBanGlobalType.getSelectedText();
                lit#76 = 0;
                fn_call#77 = ScriptedRCBanGlobalType.getSelectedText();
                lit#78 = "(";
                builtin_fn_call#79 = fn_call#77.pos(lit#78);
                lit#80 = 1;
                builtin_fn_call#81 = fn_call#75.substring(lit#76, builtin_fn_call#79 - lit#80);
                lit#82 = "bantype=%s";
                builtin_fn_call#83 = format(lit#82, builtin_fn_call#81);
                lit#85 = "reason=%s";
                builtin_fn_call#86 = format(lit#85, ScriptedRCBanGlobalReason.text);
                lit#87 = "all";
                lit#88 = "world=%s";
                builtin_fn_call#89 = format(lit#88, lit#87);
                lit#90 = "setban";
                lit#91 = "lister";
                fn_call#92 = sendtext#33(lit#91, lit#90, {obj.parent.acc, builtin_fn_call#89, builtin_fn_call#86, builtin_fn_call#83, builtin_fn_call#74, builtin_fn_call#71});
                fn_call#93 = this.accountbaninfo.destroy();
            }
            // RegionId(6)
            else
            {
                lit#94 = "Global PC ban";
                // RegionId(6)
                // RegionId(7)
                if (ScriptedRCBanWindowTabSelect.selected.text == lit#94) 
                {
                    lit#96 = "releasetime=%d";
                    builtin_fn_call#97 = format(lit#96, ScriptedRCBanGlobalPCType.selected.time);
                    lit#99 = "banned=%d";
                    builtin_fn_call#100 = format(lit#99, ScriptedRCIsGlobalPCBanned.checked);
                    fn_call#101 = ScriptedRCBanGlobalPCType.getSelectedText();
                    lit#102 = 0;
                    fn_call#103 = ScriptedRCBanGlobalPCType.getSelectedText();
                    lit#104 = "(";
                    builtin_fn_call#105 = fn_call#103.pos(lit#104);
                    lit#106 = 1;
                    builtin_fn_call#107 = fn_call#101.substring(lit#102, builtin_fn_call#105 - lit#106);
                    lit#108 = "bantype=%s";
                    builtin_fn_call#109 = format(lit#108, builtin_fn_call#107);
                    lit#111 = "reason=%s";
                    builtin_fn_call#112 = format(lit#111, ScriptedRCBanGlobalPCReason.text);
                    lit#113 = "all";
                    lit#114 = "world=%s";
                    builtin_fn_call#115 = format(lit#114, lit#113);
                    lit#116 = "pc:";
                    lit#117 = "setban";
                    lit#118 = "lister";
                    fn_call#119 = sendtext#33(lit#118, lit#117, {lit#116 @ obj.parent.pcid, builtin_fn_call#115, builtin_fn_call#112, builtin_fn_call#109, builtin_fn_call#100, builtin_fn_call#97});
                    fn_call#120 = this.pcbaninfo.destroy();
                }
            }
        }
    }
    fn_call#121 = this.accountbaninfo.destroy();
    fn_call#122 = this.pcbaninfo.destroy();
    fn_call#124 = ScriptedRCBanWindow.destroy();
    lit#125 = 0;
    return lit#125;
}