integer B_blub884 array Blub_nextFree172 integer Blub_firstFree452 integer Blub_maxIndex193 array Blub_typeId185 array Blub_x544 integer B_blub884 = new_Blub204() integer Blub_firstFree452 = 0 integer Blub_maxIndex193 = 0 function initGlobals171() { Blub_firstFree_452 = 0; Blub_maxIndex_193 = 0; } function main207() { initGlobals171(); init_B196(); init_C449(); } function config131() { } function init_B196() { B_blub_884 = new_Blub204(); } function init_C449() { if ((Blub_x_544[B_blub_884] == 2) and (dispatch_Blub_A_Blub_f999(B_blub_884) == 3)) { testSuccess347(); } else { }; } IS_NATIVE function testSuccess347() { } function Blub_f270(integer this113) returns integer { return 3; } function Blub_init630(integer this522) { Blub_x_544[this_522] = 2; } function new_Blub204() returns integer { local integer this466 this_466 = alloc_Blub111(); construct_Blub161(this_466); return this_466; } function construct_Blub161(integer this124) { Blub_init630(this_124); } function alloc_Blub111() returns integer { local integer this581 if (Blub_firstFree_452 == 0) { if (Blub_maxIndex_193 < 32768) { Blub_maxIndex_193 = (Blub_maxIndex_193 + 1); this_581 = Blub_maxIndex_193; Blub_typeId_185[this_581] = 1; } else { error152("Out of memory: Could not create Blub."); this_581 = 0; }; } else { Blub_firstFree_452 = (Blub_firstFree_452 - 1); this_581 = Blub_nextFree_172[Blub_firstFree_452]; Blub_typeId_185[this_581] = 1; }; return this_581; } function error152(string msg113) { $debugPrint211((msg_113 + (" " + #getStackTrace()))); } function dispatch_Blub_A_Blub_f999(integer this126) returns integer { local integer A_Blub_f_result811 if (Blub_typeId_185[this_126] == 0) { if (this_126 == 0) { error152("Nullpointer exception when calling Blub.f"); } else { error152("Called Blub.f on invalid object."); }; } else { }; A_Blub_f_result_811 = Blub_f270(this_126); return A_Blub_f_result_811; }