array C_nextFree180 integer C_firstFree286 integer C_maxIndex888 array C_typeId116 integer C_firstFree286 = 0 integer C_maxIndex888 = 0 function initGlobals107() { } function main698() { initGlobals107(); init_test522(); } function config860() { } function init_test522() { if (dispatch_D_test_D_bla928(new_E199()) == 4) { testSuccess180(); } else { }; } IS_NATIVE function testSuccess180() { } function C_foo165(integer this133) returns integer { return 3; } function C_init143(integer this123) { } function construct_C201(integer this178) { C_init143(this_178); } function D_bla389(integer this127) returns integer { return dispatch_C_test_C_foo327(this_127); } function D_init127(integer this157) { } function construct_D137(integer this855) { construct_C201(this_855); D_init127(this_855); } function E_foo126(integer this762) returns integer { return 4; } function E_init540(integer this405) { } function new_E199() returns integer { local integer this142 this_142 = alloc_E554(); construct_E601(this_142); return this_142; } function construct_E601(integer this162) { construct_D137(this_162); E_init540(this_162); } function error709(string msg595) { $debugPrint887((msg_595 + (" " + #getStackTrace()))); } function alloc_E554() returns integer { local integer this684 if (C_firstFree_286 == 0) { if (C_maxIndex_888 < 32768) { C_maxIndex_888 = (C_maxIndex_888 + 1); this_684 = C_maxIndex_888; C_typeId_116[this_684] = 3; } else { error709("Out of memory: Could not create E."); this_684 = 0; }; } else { C_firstFree_286 = (C_firstFree_286 - 1); this_684 = C_nextFree_180[C_firstFree_286]; C_typeId_116[this_684] = 3; }; return this_684; } function dispatch_C_test_C_foo327(integer this117) returns integer { if (C_typeId_116[this_117] == 0) { if (this_117 == 0) { error709("Nullpointer exception when calling C.foo"); } else { error709("Called C.foo on invalid object."); }; } else { }; if (C_typeId_116[this_117] <= 2) { this_117 = C_foo165(this_117); } else { this_117 = E_foo126(this_117); }; return this_117; } function dispatch_D_test_D_bla928(integer this725) returns integer { if (C_typeId_116[this_725] == 0) { if (this_725 == 0) { error709("Nullpointer exception when calling D.bla"); } else { error709("Called D.bla on invalid object."); }; } else { }; return D_bla389(this_725); }