integer test_x204 array A_nextFree105 integer A_firstFree838 integer A_maxIndex501 array A_typeId562 integer test_x204 = 2 integer A_firstFree838 = 0 integer A_maxIndex501 = 0 function initGlobals471() { } function main213() { initGlobals471(); init_test235(); } function config139() { } function init_test235() { test_x_204 = 2; dispatch_A_test_A_foo472(new_B386()); if (test_x_204 == 5) { testSuccess988(); } else { }; } IS_NATIVE function testSuccess988() { } function A_foo485(integer this555) { test_x_204 = 4; } function A_init129(integer this700) { } function construct_A747(integer this762) { A_init129(this_762); } function B_foo143(integer this133) { test_x_204 = 5; } function B_init622(integer this862) { } function new_B386() returns integer { local integer this111 this_111 = alloc_B630(); construct_B196(this_111); return this_111; } function construct_B196(integer this590) { construct_A747(this_590); B_init622(this_590); } function C_foo443(integer this190) { test_x_204 = 6; } function error781(string msg789) { $debugPrint206((msg_789 + (" " + #getStackTrace()))); } function alloc_B630() returns integer { local integer this316 if (A_firstFree_838 == 0) { if (A_maxIndex_501 < 32768) { A_maxIndex_501 = (A_maxIndex_501 + 1); this_316 = A_maxIndex_501; A_typeId_562[this_316] = 2; } else { error781("Out of memory: Could not create B."); this_316 = 0; }; } else { A_firstFree_838 = (A_firstFree_838 - 1); this_316 = A_nextFree_105[A_firstFree_838]; A_typeId_562[this_316] = 2; }; return this_316; } function dispatch_A_test_A_foo472(integer this152) { if (A_typeId_562[this_152] == 0) { if (this_152 == 0) { error781("Nullpointer exception when calling A.foo"); } else { error781("Called A.foo on invalid object."); }; } else { }; if (A_typeId_562[this_152] <= 2) { if (A_typeId_562[this_152] <= 1) { A_foo485(this_152); } else { B_foo143(this_152); }; } else { C_foo443(this_152); }; }