array A_nextFree811 integer A_firstFree120 integer A_maxIndex667 array A_typeId205 integer A_firstFree120 = 0 integer A_maxIndex667 = 0 function initGlobals116() { } function main142() { initGlobals116(); init_test720(); } function config709() { } function init_test720() { if (dispatch_A_test_A_foo835(new_B606()) == 8) { testSuccess761(); } else { }; } IS_NATIVE function testSuccess761() { } function A_foo618(integer this360) returns integer { return 7; } function A_init145(integer this621) { } function construct_A475(integer this184) { A_init145(this_184); } function B_foo543(integer this137) returns integer { return 8; } function B_init412(integer this495) { } function new_B606() returns integer { local integer this659 this_659 = alloc_B744(); construct_B159(this_659); return this_659; } function construct_B159(integer this198) { construct_A475(this_198); B_init412(this_198); } function error162(string msg203) { $debugPrint969((msg_203 + (" " + #getStackTrace()))); } function alloc_B744() returns integer { local integer this142 if (A_firstFree_120 == 0) { if (A_maxIndex_667 < 32768) { A_maxIndex_667 = (A_maxIndex_667 + 1); this_142 = A_maxIndex_667; A_typeId_205[this_142] = 2; } else { error162("Out of memory: Could not create B."); this_142 = 0; }; } else { A_firstFree_120 = (A_firstFree_120 - 1); this_142 = A_nextFree_811[A_firstFree_120]; A_typeId_205[this_142] = 2; }; return this_142; } function dispatch_A_test_A_foo835(integer this119) returns integer { if (A_typeId_205[this_119] == 0) { if (this_119 == 0) { error162("Nullpointer exception when calling A.foo"); } else { error162("Called A.foo on invalid object."); }; } else { }; if (A_typeId_205[this_119] <= 1) { this_119 = A_foo618(this_119); } else { this_119 = B_foo543(this_119); }; return this_119; }