Welcome to the GBF Test Portal

This was built to track decompiler and CFG progress.

Decompiler Output

function public.onIceFreezePlayer(temp.time, temp.oldKeyPressed)
{
    lit#7 = 0;
    // RegionId(0)
    // RegionId(1)
    if (temp.time <= lit#7) 
    {
        lit#9 = 0;
        // RegionId(1)
        // RegionId(2)
        if (player.hearts <= lit#9) 
        {
            lit#12 = "dead";
        }
    }
    // RegionId(4)
    if (phi<idx=0, regions=()>) 
    {
        lit#14 = false;
        player.frozen = lit#14;
        lit#17 = false;
        player.isinvincible2 = lit#17;
        player.isinvincible = player.isinvincible2;
        lit#18 = 100;
        fn_call#20 = hideimg#19(lit#18);
        lit#21 = 20001;
        fn_call#23 = findimg#22(lit#21);
        // RegionId(4)
        // RegionId(5)
        with (fn_call#23) 
        {
            // RegionId(5)
            // RegionId(6)
            with (emitter#24) 
            {
                lit#25 = 0;
                temp.i = lit#25;
                lit#26 = 10;
                while (temp.i < lit#26) 
                {
                    fn_call#28 = emit#27();
                    temp.i++;
                }
            }
        }
        lit#29 = 20001;
        lit#30 = "HideAni";
        lit#31 = 1;
        lit#32 = "-System";
        fn_call#34 = lit.scheduleEvent(lit#31, lit#30, lit#29);
        lit#35 = 0;
        return lit#35;
    }
    // RegionId(12)
    else
    {
        lit#36 = true;
        player.frozen = lit#36;
        lit#37 = true;
        player.isinvincible2 = lit#37;
        player.isinvincible = player.isinvincible2;
        lit#38 = -1;
        temp.keyPressed = lit#38;
        lit#39 = 0;
        temp.i = lit#39;
        lit#40 = 4;
        while (temp.i < lit#40) 
        {
            fn_call#41 = keydown#3(temp.i);
            // RegionId(14)
            // RegionId(15)
            if (fn_call#41) 
            {
                temp.keyPressed = temp.i;
            }
            temp.i++;
        }
        lit#42 = -1;
        // RegionId(17)
        // RegionId(18)
        if (!(lit#42 in {temp.keyPressed, temp.oldKeyPressed})) 
        {
            // RegionId(18)
            // RegionId(19)
            if (temp.keyPressed != temp.oldKeyPressed) 
            {
                lit#44 = -0.35;
                lit#45 = 0.35;
                builtin_fn_call#46 = random(lit#44, lit#45);
                lit#47 = -0.35;
                lit#48 = 0.35;
                builtin_fn_call#49 = random(lit#47, lit#48);
                temp.offset = {builtin_fn_call#49, builtin_fn_call#46};
                lit#50 = 0.1;
                temp.time = temp.time - lit#50;
                lit#51 = 20001;
                fn_call#52 = findimg#22(lit#51);
                // RegionId(19)
                // RegionId(20)
                with (fn_call#52) 
                {
                    // RegionId(20)
                    // RegionId(21)
                    with (emitter#24) 
                    {
                        lit#53 = 0;
                        temp.i = lit#53;
                        lit#54 = 3;
                        while (temp.i < lit#54) 
                        {
                            fn_call#55 = emit#27();
                            temp.i++;
                        }
                    }
                }
            }
        }
        lit#57 = null;
        // RegionId(26)
        // RegionId(27)
        if (player.maxfreeze != lit#57) 
        {
            lit#59 = 2;
            lit#60 = 2;
            lit#61 = 0.5;
            builtin_fn_call#62 = int(((temp.time / player.maxfreeze) * lit#60) + lit#61);
            temp.frame = lit#59 - builtin_fn_call#62;
        }
        lit#64 = "%s[%d]";
        fn_call#66 = format2#65(lit#64, {player.ani.name, player.anistep});
        player.ani = fn_call#66;
        fn_call#68 = freezeplayer#67(temp.time);
        lit#69 = 100;
        fn_call#70 = findimg#22(lit#69);
        // RegionId(28)
        // RegionId(29)
        with (fn_call#70) 
        {
            lit#72 = "dcfort_largeicepart";
            lit#73 = ".png";
            image#74 = (lit#72 @ temp.frame) @ lit#73;
            lit#76 = true;
            attachtoowner#77 = lit#76;
            lit#79 = 0;
            lit#80 = -1;
            lit#81 = 1;
            lit#82 = -0.5;
            lit#83 = 0;
            attachoffset#84 = {lit#82 + temp.offset[lit#83], lit#80 + temp.offset[lit#81], lit#79};
            lit#86 = 2;
            layer#87 = lit#86;
            lit#89 = 1;
            mode#90 = lit#89;
            lit#92 = 0.75;
            alpha#93 = lit#92;
            lit#95 = 0;
            partx#96 = lit#95;
            lit#98 = 0;
            party#99 = lit#98;
            lit#101 = 64;
            partw#102 = lit#101;
            lit#103 = 64;
            party#104 = lit#103;
        }
        lit#105 = 0.1;
        lit#106 = "IceFreezePlayer";
        lit#107 = 0.1;
        fn_call#108 = scheduleEvent#33(lit#107, lit#106, temp.time - lit#105, temp.keyPressed);
        lit#109 = 0;
        return lit#109;
    }
}