Welcome to the GBF Test Portal

This was built to track decompiler and CFG progress.

Decompiler Output

function public.rewardLootChest(temp.itm)
{
    lit#5 = null;
    // RegionId(1)
    if (temp.itm == lit#5) 
    {
        lit#6 = 0;
        return lit#6;
    }
    // RegionId(2)
    else
    {
        lit#7 = 1;
        temp.itm_name = temp.itm[lit#7];
        lit#9 = 5;
        temp.itm_desc = temp.itm[lit#9];
        lit#10 = 2;
        lit#11 = "hat";
        // RegionId(2)
        // RegionId(3)
        if (temp.itm[lit#10] == lit#11) 
        {
            lit#12 = 7;
            temp.itm_img = temp.itm[lit#12];
            lit#13 = 0.5;
            fn_call#15 = freezeplayer#14(lit#13);
            lit#16 = "classic_showitemhat";
            fn_call#18 = setani#17(lit#16, temp.itm_img);
        }
        // RegionId(4)
        else
        {
            lit#19 = "Easter Egg";
            // RegionId(4)
            // RegionId(5)
            if (temp.itm_name == lit#19) 
            {
                lit#21 = 2;
                lit#22 = 4;
                lit#23 = -1;
                builtin_fn_call#24 = temp.itm[lit#21].substring(lit#22, lit#23);
                temp.egg = builtin_fn_call#24;
                lit#25 = "classic_easter_egg";
                lit#26 = ".png";
                temp.itm_img = (lit#25 @ temp.egg) @ lit#26;
            }
            // RegionId(6)
            else
            {
                lit#27 = "diveloot_";
                lit#28 = 3;
                lit#29 = ".png";
                temp.itm_img = (lit#27 @ temp.itm[lit#28]) @ lit#29;
            }
            lit#30 = 0.5;
            fn_call#31 = freezeplayer#14(lit#30);
            lit#32 = "classic_showitem";
            fn_call#33 = setani#17(lit#32, temp.itm_img);
        }
        lit#35 = 2;
        lit#36 = "weapon";
        lit#37 = "furniture";
        lit#38 = "hat";
        temp.founditem = temp.itm[lit#35] in {lit#38, lit#37, lit#36};
        lit#39 = "gralat";
        builtin_fn_call#40 = temp.itm_name.pos(lit#39);
        lit#41 = 0;
        // RegionId(9)
        if (builtin_fn_call#40 >= lit#41) 
        {
            lit#42 = 0;
            return lit#42;
        }
        // RegionId(10)
        else
        {
            lit#43 = 0;
            lit#44 = 1;
            builtin_fn_call#45 = temp.itm_name.substring(lit#43, lit#44);
            fn_call#47 = lowercase#46(builtin_fn_call#45);
            lit#48 = "u";
            lit#49 = "o";
            lit#50 = "i";
            lit#51 = "e";
            lit#52 = "a";
            // RegionId(10)
            // RegionId(11)
            if (fn_call#47 in {lit#52, lit#51, lit#50, lit#49, lit#48}) 
            {
                lit#53 = "an ";
            }
            // RegionId(12)
            else
            {
                lit#54 = "a ";
            }
            phi<idx=1, regions=()> = phi<idx=0, regions=()>;
            lit#56 = "Fish Bones";
            lit#57 = "Dead Coral";
            lit#58 = "Kelp";
            temp.plurals = {lit#58, lit#57, lit#56};
            // RegionId(13)
            // RegionId(14)
            if (temp.itm_name in temp.plurals) 
            {
                lit#59 = "";
            }
            // RegionId(15)
            else
            {
            }
            phi<idx=1, regions=()> = phi<idx=0, regions=()>;
            // RegionId(17)
            if (clientr.lootTotal >= serverr.lootCapacity) 
            {
                lit#64 = 0.05;
                fn_call#65 = freezeplayer#14(lit#64);
                lit#66 = "You found ";
                lit#67 = ",#bbut have no room for it...";
                fn_call#69 = say2#68(((lit#66 @ temp.aoran) @ temp.itm_name) @ lit#67);
                lit#70 = 0;
                return lit#70;
            }
            // RegionId(18)
            else
            {
                // RegionId(18)
                // RegionId(19)
                if (!temp.founditem) 
                {
                    lit#71 = 2;
                    // RegionId(19)
                    // RegionId(20)
                    if (temp.itm[lit#71] in client.foundLootItems) 
                    {
                        lit#74 = "Easter Egg";
                        // RegionId(21)
                        if (temp.itm_name != lit#74) 
                        {
                            lit#75 = 0;
                            return lit#75;
                        }
                    }
                }
                // RegionId(22)
                // RegionId(23)
                if (temp.founditem) 
                {
                    lit#76 = true;
                    // RegionId(24)
                    if (temp.itm_desc == lit#76) 
                    {
                        lit#77 = 0;
                        return lit#77;
                    }
                }
                lit#78 = 0.05;
                fn_call#79 = freezeplayer#14(lit#78);
                lit#81 = "";
                // RegionId(25)
                // RegionId(26)
                if (lit#81) 
                {
                    lit#82 = "";
                }
                // RegionId(27)
                else
                {
                    lit#83 = "#b#b";
                }
                phi<idx=1, regions=()> = phi<idx=0, regions=()>;
                phi<idx=3, regions=()> = phi<idx=2, regions=()>;
                lit#84 = 1;
                lit#85 = "\nYou found ";
                lit#86 = "*";
                lit#87 = "*.";
                lit#88 = "-GUI/Chat";
                fn_call#90 = lit.say3(((((lit#85 @ temp.aoran) @ lit#86) @ temp.itm_name) @ lit#87) @ temp.newdesc, lit#84);
                builtin_fn_call#91 = client.foundLootItems.size();
                lit#92 = 0;
                // RegionId(28)
                // RegionId(29)
                if (builtin_fn_call#91 <= lit#92) 
                {
                    lit#93 = 1;
                    lit#94 = "#bYou found your first *loot item*!#b#bThese items can not be used,#bbut instead can be sold for#bprofit.#bSome items can even be turned#binto furniture or hats!";
                    lit#95 = "-GUI/Chat";
                    fn_call#96 = lit.say3(lit#94, lit#93);
                }
                lit#97 = 2;
                fn_call#99 = cacheFoundLoot#98(temp.itm[lit#97]);
                lit#100 = 0;
                return lit#100;
            }
        }
    }
}