integer test_i678 array A_nextFree535 integer A_firstFree192 integer A_maxIndex160 array A_typeId498 integer A_firstFree192 = 0 integer A_maxIndex160 = 0 function initGlobals311() { A_firstFree_192 = 0; A_maxIndex_160 = 0; } function main415() { initGlobals311(); init_test814(); } function config175() { } function init_test814() { local integer b129 b_129 = new_B886(); dispatch_A_test_A_foo528(b_129); if (test_i_678 == 8) { testSuccess616(); } else { }; } IS_NATIVE function testSuccess616() { } function A_foo202(integer this152) { test_i_678 = 7; } function A_init160(integer this491) { } function construct_A116(integer this141) { A_init160(this_141); } function B_foo865(integer this118) { test_i_678 = 8; } function B_init119(integer this459) { } function new_B886() returns integer { local integer this783 this_783 = alloc_B362(); construct_B519(this_783); return this_783; } function construct_B519(integer this107) { construct_A116(this_107); B_init119(this_107); } function error741(string msg171) { $debugPrint132((msg_171 + (" " + #getStackTrace()))); } function alloc_B362() returns integer { local integer this120 if (A_firstFree_192 == 0) { if (A_maxIndex_160 < 32768) { A_maxIndex_160 = (A_maxIndex_160 + 1); this_120 = A_maxIndex_160; A_typeId_498[this_120] = 2; } else { error741("Out of memory: Could not create B."); this_120 = 0; }; } else { A_firstFree_192 = (A_firstFree_192 - 1); this_120 = A_nextFree_535[A_firstFree_192]; A_typeId_498[this_120] = 2; }; return this_120; } function dispatch_A_test_A_foo528(integer this140) { if (A_typeId_498[this_140] == 0) { if (this_140 == 0) { error741("Nullpointer exception when calling A.foo"); } else { error741("Called A.foo on invalid object."); }; } else { }; if (A_typeId_498[this_140] <= 1) { A_foo202(this_140); } else { B_foo865(this_140); }; }