integer test_x914 array A_nextFree967 integer A_firstFree177 integer A_maxIndex616 array A_typeId126 integer test_x914 = 2 integer A_firstFree177 = 0 integer A_maxIndex616 = 0 function initGlobals621() { } function main570() { initGlobals621(); init_test774(); } function config105() { } function init_test774() { test_x_914 = 2; dispatch_A_test_A_foo153(new_B356()); if (test_x_914 == 5) { testSuccess171(); } else { }; } IS_NATIVE function testSuccess171() { } function A_foo386(integer this513) { test_x_914 = 4; } function A_init195(integer this100) { } function construct_A103(integer this168) { A_init195(this_168); } function B_foo937(integer this169) { test_x_914 = 5; } function B_init203(integer this146) { } function new_B356() returns integer { local integer this128 this_128 = alloc_B182(); construct_B213(this_128); return this_128; } function construct_B213(integer this183) { construct_A103(this_183); B_init203(this_183); } function C_foo134(integer this716) { test_x_914 = 6; } function error221(string msg192) { $debugPrint187((msg_192 + (" " + #getStackTrace()))); } function alloc_B182() returns integer { local integer this211 if (A_firstFree_177 == 0) { if (A_maxIndex_616 < 32768) { A_maxIndex_616 = (A_maxIndex_616 + 1); this_211 = A_maxIndex_616; A_typeId_126[this_211] = 2; } else { error221("Out of memory: Could not create B."); this_211 = 0; }; } else { A_firstFree_177 = (A_firstFree_177 - 1); this_211 = A_nextFree_967[A_firstFree_177]; A_typeId_126[this_211] = 2; }; return this_211; } function dispatch_A_test_A_foo153(integer this894) { if (A_typeId_126[this_894] == 0) { if (this_894 == 0) { error221("Nullpointer exception when calling A.foo"); } else { error221("Called A.foo on invalid object."); }; } else { }; if (A_typeId_126[this_894] <= 2) { if (A_typeId_126[this_894] <= 1) { A_foo386(this_894); } else { B_foo937(this_894); }; } else { C_foo134(this_894); }; }