array ABC_nextFree246 integer ABC_firstFree137 integer ABC_maxIndex189 array ABC_typeId177 integer ABC_firstFree137 = 0 integer ABC_maxIndex189 = 0 integer B_firstFree716 = 0 integer B_maxIndex153 = 0 function initGlobals152() { ABC_firstFree_137 = 0; ABC_maxIndex_189 = 0; } function main521() { initGlobals152(); init_A530(); } function config125() { } function init_A530() { local integer clVar799 clVar_799 = alloc_ABC_foo_A431(); if (foo116(clVar_799) == 42) { testSuccess135(); } else { }; } function foo116(integer a535) returns integer { return dispatch_ABC_A_ABC_foo615(a_535); } IS_NATIVE function testSuccess135() { } function foo_foo_A443(integer this915) returns integer { return 42; } function alloc_ABC_foo_A431() returns integer { local integer this116 if (ABC_firstFree_137 == 0) { if (ABC_maxIndex_189 < 32768) { ABC_maxIndex_189 = (ABC_maxIndex_189 + 1); this_116 = ABC_maxIndex_189; ABC_typeId_177[this_116] = 2; } else { error553("Out of memory: Could not create ABC_foo_A."); this_116 = 0; }; } else { ABC_firstFree_137 = (ABC_firstFree_137 - 1); this_116 = ABC_nextFree_246[ABC_firstFree_137]; ABC_typeId_177[this_116] = 2; }; return this_116; } function error553(string msg484) { $debugPrint110((msg_484 + (" " + #getStackTrace()))); } function dispatch_ABC_A_ABC_foo615(integer this399) returns integer { local integer A_ABC_foo_result138 if (ABC_typeId_177[this_399] == 0) { if (this_399 == 0) { error553("Nullpointer exception when calling ABC.foo"); } else { error553("Called ABC.foo on invalid object."); }; } else { }; A_ABC_foo_result_138 = foo_foo_A443(this_399); return A_ABC_foo_result_138; }