array<integer> SimpleFunc_nextFree150
integer SimpleFunc_firstFree862
integer SimpleFunc_maxIndex186
array<integer> SimpleFunc_typeId988
array<integer> y184
integer wurst_stack_depth304
array<string> wurst_stack132


integer SimpleFunc_firstFree862 = 0
integer SimpleFunc_maxIndex186 = 0
integer wurst_stack_depth304 = 0


function initGlobals179() { 
}


function main129() { 
    initGlobals179();
    init_test112("when calling init_test in closure_begin_end1, line 1");
}


function config960() { 
}


function init_test112(string __wurst_stackPos193) { 
    local integer this569
    wurst_stack_132[wurst_stack_depth_304] = __wurst_stackPos_193;
    wurst_stack_depth_304 = (wurst_stack_depth_304 + 1);
    wurst_stack_132[wurst_stack_depth_304] = "when calling alloc_SimpleFunc_test in closure_begin_end1, line 7";
    wurst_stack_depth_304 = (wurst_stack_depth_304 + 1);
    if (SimpleFunc_firstFree_862 == 0) {
        if (SimpleFunc_maxIndex_186 < 32768) {
            SimpleFunc_maxIndex_186 = (SimpleFunc_maxIndex_186 + 1);
            this_569 = SimpleFunc_maxIndex_186;
            SimpleFunc_typeId_988[this_569] = 2;
        } else {
            error206("Out of memory: Could not create SimpleFunc_test.", "when calling error in closure_begin_end1, line 7");
            this_569 = 0;
        };
    } else {
        SimpleFunc_firstFree_862 = (SimpleFunc_firstFree_862 - 1);
        this_569 = SimpleFunc_nextFree_150[SimpleFunc_firstFree_862];
        SimpleFunc_typeId_988[this_569] = 2;
    };
    wurst_stack_depth_304 = (wurst_stack_depth_304 - 1);
    y_184[this_569] = 4;
    wurst_stack_132[wurst_stack_depth_304] = "when calling apply in closure_begin_end1, line 12";
    wurst_stack_depth_304 = (wurst_stack_depth_304 + 1);
    if (SimpleFunc_typeId_988[this_569] == 0) {
        if (this_569 == 0) {
            error206("Nullpointer exception when calling SimpleFunc.apply", "when calling error in closure_begin_end1, line 4");
        } else {
            error206("Called SimpleFunc.apply on invalid object.", "when calling error in closure_begin_end1, line 4");
        };
    } else {
    };
    this_569 = (y_184[this_569] + 3);
    wurst_stack_depth_304 = (wurst_stack_depth_304 - 1);
    if (this_569 == 7) {
        testSuccess212();
    } else {
    };
    wurst_stack_depth_304 = (wurst_stack_depth_304 - 1);
}


IS_NATIVE function testSuccess212() { 
}


function error206(string msg740, string __wurst_stackPos189) { 
    local integer stacktraceIndex234
    local integer stacktraceLimit162
    wurst_stack_132[wurst_stack_depth_304] = __wurst_stackPos_189;
    wurst_stack_depth_304 = (wurst_stack_depth_304 + 1);
    __wurst_stackPos_189 = "";
    stacktraceIndex_234 = wurst_stack_depth_304;
    stacktraceLimit_162 = 0;
    loop {
        stacktraceIndex_234 = (stacktraceIndex_234 - 1);
        stacktraceLimit_162 = (stacktraceLimit_162 + 1);
        exitwhen ((stacktraceLimit_162 > 20) or (stacktraceIndex_234 < 0));
        __wurst_stackPos_189 = (__wurst_stackPos_189 + ("
   " + wurst_stack_132[stacktraceIndex_234]));
    };
    $debugPrint191((msg_740 + ("
" + __wurst_stackPos_189)));
    wurst_stack_depth_304 = (wurst_stack_depth_304 - 1);
}