array<integer> C_nextFree212
integer C_firstFree269
integer C_maxIndex640
array<integer> C_typeId147


integer C_firstFree269 = 0
integer C_maxIndex640 = 0


function initGlobals135() { 
    C_firstFree_269 = 0;
    C_maxIndex_640 = 0;
}


function main187() { 
    initGlobals135();
    init_test386();
}


function config529() { 
}


function init_test386() { 
    dispatch_C_test_C_test997(new_C213(1));
}


IS_NATIVE function testSuccess763() { 
}


function C_foo548(integer this902, any t453) { 
    dispatch_C_test_C_foo_8180(this_902, new_C213(t_453));
}


function new_C213(any x504) returns integer { 
    local integer this205
    this_205 = alloc_C723();
    construct_C185(this_205, x_504);
    return this_205;
}


function C_foo_1206(integer this171, integer t164) { 
    testSuccess763();
}


function C_test190(integer this174) { 
    local integer c196
    c_196 = new_C213(1);
    dispatch_C_test_C_foo106(c_196, 1);
}


function C_init231(integer this838) { 
}


function construct_C185(integer this201, any x162) { 
    C_init231(this_201);
}


function alloc_C723() returns integer { 
    local integer this196
    if (C_firstFree_269 == 0) {
        if (C_maxIndex_640 < 32768) {
            C_maxIndex_640 = (C_maxIndex_640 + 1);
            this_196 = C_maxIndex_640;
            C_typeId_147[this_196] = 1;
        } else {
            error541("Out of memory: Could not create C.");
            this_196 = 0;
        };
    } else {
        C_firstFree_269 = (C_firstFree_269 - 1);
        this_196 = C_nextFree_212[C_firstFree_269];
        C_typeId_147[this_196] = 1;
    };
    return this_196;
}


function error541(string msg166) { 
    $debugPrint837((msg_166 + ("
" + #getStackTrace())));
}


function dispatch_C_test_C_foo106(integer this620, any t199) { 
    if (C_typeId_147[this_620] == 0) {
        if (this_620 == 0) {
            error541("Nullpointer exception when calling C.foo");
        } else {
            error541("Called C.foo on invalid object.");
        };
    } else {
    };
    C_foo548(this_620, t_199);
}


function dispatch_C_test_C_foo_8180(integer this161, integer t122) { 
    if (C_typeId_147[this_161] == 0) {
        if (this_161 == 0) {
            error541("Nullpointer exception when calling C.foo");
        } else {
            error541("Called C.foo on invalid object.");
        };
    } else {
    };
    C_foo_1206(this_161, t_122);
}


function dispatch_C_test_C_test997(integer this148) { 
    if (C_typeId_147[this_148] == 0) {
        if (this_148 == 0) {
            error541("Nullpointer exception when calling C.test");
        } else {
            error541("Called C.test on invalid object.");
        };
    } else {
    };
    C_test190(this_148);
}