array ABC_nextFree129 integer ABC_firstFree113 integer ABC_maxIndex424 array ABC_typeId169 integer ABC_firstFree113 = 0 integer ABC_maxIndex424 = 0 integer B_firstFree114 = 0 integer B_maxIndex122 = 0 function initGlobals212() { ABC_firstFree_113 = 0; ABC_maxIndex_424 = 0; } function main161() { initGlobals212(); init_A190(); } function config454() { } function init_A190() { local integer clVar151 clVar_151 = alloc_ABC_foo_A432(); if (foo803(clVar_151) == 42) { testSuccess897(); } else { }; } function foo803(integer a889) returns integer { return dispatch_ABC_A_ABC_foo865(a_889); } IS_NATIVE function testSuccess897() { } function foo_foo_A172(integer this503) returns integer { return 42; } function alloc_ABC_foo_A432() returns integer { local integer this790 if (ABC_firstFree_113 == 0) { if (ABC_maxIndex_424 < 32768) { ABC_maxIndex_424 = (ABC_maxIndex_424 + 1); this_790 = ABC_maxIndex_424; ABC_typeId_169[this_790] = 2; } else { error779("Out of memory: Could not create ABC_foo_A."); this_790 = 0; }; } else { ABC_firstFree_113 = (ABC_firstFree_113 - 1); this_790 = ABC_nextFree_129[ABC_firstFree_113]; ABC_typeId_169[this_790] = 2; }; return this_790; } function error779(string msg131) { $debugPrint699((msg_131 + (" " + #getStackTrace()))); } function dispatch_ABC_A_ABC_foo865(integer this136) returns integer { local integer A_ABC_foo_result186 if (ABC_typeId_169[this_136] == 0) { if (this_136 == 0) { error779("Nullpointer exception when calling ABC.foo"); } else { error779("Called ABC.foo on invalid object."); }; } else { }; A_ABC_foo_result_186 = foo_foo_A172(this_136); return A_ABC_foo_result_186; }