This is scheme48vm.c in view mode; [Download] [Up]
/* Manual edits:
JAR 2/9/94 fix multiply
JAR 2/10/94 turn make-immutable! into an identity function
JAR 2/10/94 closure opcode makes immutable closures
*/
#include <stdio.h>
#include "prescheme.h"
long goto_arg1K0;
long goto_arg1K4;
long goto_arg1K3;
long goto_arg1K2;
long goto_arg1K1;
char goto_arg0K0;
long Sminimum_recovered_spaceS;
long Sinterrupt_templateS;
long Spending_interruptsS;
long Sdynamic_stateS;
long Sinterrupt_handlersS;
long Sexception_handlerS;
long Senabled_interruptsS;
long SvalS;
long SnargsS;
long Scode_pointerS;
long StemplateS;
long SenvS;
unsigned char Sexception_space_usedPS;
long ScontS;
long Sbottom_of_stackS;
long Sstack_limitS;
long SstackS;
long Sstack_endS;
long Sstack_beginS;
long *Sopen_vm_portsS;
FILE * *Sopen_portsS;
long Snumber_of_portsS;
long Sweak_pointer_limitS;
long Sweak_pointer_hpS;
long Ssaved_limitS;
long Ssaved_hpS;
long Sgc_countS;
long Soldspace_endS;
long Soldspace_beginS;
long Snewspace_endS;
long Snewspace_beginS;
long SlimitS;
long ShpS;
long Smemory_endS;
long Smemory_beginS;
long SmemoryS;
FILE * Scurrent_output_portS;
FILE * Scurrent_input_portS;
long Tinterpret()
{
extern void really_write_number(long, FILE *);
extern long copy_weak_pointer(long);
extern long Sinterrupt_templateS;
extern unsigned char Sexception_space_usedPS;
extern long extended_vm(long, long);
extern long ps_real_time();
extern long ps_run_time();
extern long ps_ticks_per_second();
extern unsigned char lookup_external_name(long, long);
extern long ps_schedule_interrupt(long);
extern long Sinterrupt_handlersS;
extern long Sexception_handlerS;
extern long Sdynamic_stateS;
extern FILE * Scurrent_output_portS;
extern long Sgc_countS;
extern long Sminimum_recovered_spaceS;
extern long Sweak_pointer_hpS;
extern void do_gc();
extern long Snewspace_endS;
extern long Ssaved_limitS;
extern long Ssaved_hpS;
extern long Snewspace_beginS;
extern long Soldspace_beginS;
extern long Soldspace_endS;
extern FILE * *Sopen_portsS;
extern long Snumber_of_portsS;
extern long *Sopen_vm_portsS;
extern long Senabled_interruptsS;
extern long Spending_interruptsS;
extern long Sbottom_of_stackS;
extern long ScontS;
extern long Sstack_beginS;
extern long StemplateS;
extern long SenvS;
extern long Sstack_limitS;
extern long SstackS;
extern long Sstack_endS;
extern long SlimitS;
extern long ShpS;
extern long SvalS;
extern long Scode_pointerS;
extern long SnargsS;
extern long Tinterpret();
unsigned char arg3K3;
unsigned char arg3K0;
FILE * arg2K0;
char arg0K0;
long arg1K2;
long arg1K1;
long arg1K0;
char merged_arg0K0;
char merged_arg0K1;
char merged_arg0K3;
FILE * merged_arg2K1;
long merged_arg1K4;
long merged_arg1K3;
long merged_arg1K2;
long merged_arg1K1;
long merged_arg1K0;
long RSenvS = SenvS;
long RSstackS = SstackS;
long RSvalS = SvalS;
long RScode_pointerS = Scode_pointerS;
int extract_string_return_tag;
unsigned char *extract_string_return_value;
int stob_equalP_return_tag;
unsigned char stob_equalP_return_value;
int write_number_return_tag;
int close_port_return_tag;
int close_port_noisily_return_tag;
int copy_object_return_tag;
long copy_object_return_value;
int copy_next_return_tag;
long copy_next_return_value;
int collect_saving_temp_return_tag;
long collect_saving_temp_return_value;
int pop_args_list_return_tag;
long pop_args_list_return_value;
int push_continuationB_return_tag;
int push_exception_continuationB_return_tag;
int copy_stob_return_tag;
long copy_stob_return_value;
int save_env_in_heap_return_tag;
long save_env_in_heap_return_value;
int copy_continuation_from_heap_return_tag;
long copy_continuation_from_heap_return_value;
int preserve_continuation_return_tag;
long preserve_continuation_return_value;
int copy_stack_into_heap_return_tag;
unsigned char b_0X;
unsigned char b_1X;
unsigned char okayP_2X;
unsigned char v_3X;
long space_4X;
long v_5X;
unsigned char b_6X;
long env_7X;
unsigned char b_8X;
long location_9X;
unsigned char b_10X;
long location_11X;
unsigned char b_12X;
unsigned char b_13X;
unsigned char okayP_14X;
unsigned char v_15X;
long space_16X;
long v_17X;
long cont_18X;
long list_19X;
long proc_20X;
long v_21X;
long cont_22X;
long pc_23X;
long tem_24X;
long cont_25X;
long tem_26X;
unsigned char b_27X;
long tem_28X;
unsigned char b_29X;
unsigned char b_30X;
unsigned char b_31X;
unsigned char b_32X;
unsigned char b_33X;
long val_34X;
long v_35X;
long v_36X;
long v_37X;
long v_38X;
long v_39X;
long z_40X;
long x_41X;
long arg2_42X;
long arg2_43X;
long arg2_44X;
long x_45X;
long arg2_46X;
long arg2_47X;
long arg2_48X;
long arg2_49X;
long x_50X;
long arg2_51X;
long arg2_52X;
long arg2_53X;
long arg2_54X;
long arg2_55X;
long x_56X;
long result_57X;
long x_58X;
long value_59X;
long count_60X;
long x_61X;
long x_62X;
unsigned char okayP_63X;
unsigned char v_64X;
long space_65X;
long arg2_66X;
unsigned char b_67X;
long init_68X;
long len_69X;
unsigned char v_70X;
long temp_71X;
unsigned char v_72X;
long space_73X;
long arg2_74X;
long v_75X;
long x_76X;
unsigned char b_77X;
long x_78X;
long v_79X;
unsigned char b_80X;
unsigned char b_81X;
long x_82X;
long v_83X;
long len_84X;
long index_85X;
long len_86X;
long index_87X;
long len_88X;
long index_89X;
long index_90X;
long len_91X;
long v_92X;
unsigned char b_93X;
long value_94X;
long stob_95X;
long arg2_96X;
long index_97X;
long len_98X;
long v_99X;
long descriptor_100X;
long x_101X;
long obj_102X;
long v_103X;
long x_104X;
unsigned char okayP_105X;
unsigned char v_106X;
long v_107X;
long v_108X;
long v_109X;
FILE * v_110X;
unsigned char v_111X;
long p_112X;
unsigned char Kchar_113X;
long c_114X;
long x_115X;
long v_116X;
FILE * v_117X;
unsigned char v_118X;
long p_119X;
FILE * port_120X;
long v_121X;
long arg2_122X;
long count_123X;
FILE * port_124X;
long v_125X;
long v_126X;
unsigned char v_127X;
long p_128X;
unsigned char v_129X;
long a_130X;
long v_131X;
long v_132X;
long bytes_133X;
long old_134X;
long arg2_135X;
long v_136X;
long start_hp_137X;
long type_138X;
long obj_139X;
long v_140X;
long obj_141X;
long tem_142X;
unsigned char v_143X;
long name_144X;
long value_145X;
long x_146X;
long obj_147X;
long v_148X;
long n_149X;
long n_150X;
long arg2_151X;
long return_value_152X;
long key_153X;
long x_154X;
long v_155X;
long v_156X;
long n_157X;
long x_158X;
long obj_159X;
unsigned char okayP_160X;
unsigned char v_161X;
unsigned char b_162X;
long space_163X;
unsigned char v_164X;
unsigned char okayP_165X;
long v_166X;
long arg2_167X;
long obj_168X;
unsigned char x_169X;
long arg2_170X;
long arg2_171X;
long x_172X;
long key_173X;
long n_174X;
long index_175X;
long proc_176X;
long v_177X;
long v_178X;
long v_179X;
long p_180X;
long n_181X;
long temp_182X;
long v_183X;
long v_184X;
long obj_185X;
long x_186X;
long start_hp_187X;
long x_188X;
long key_189X;
long n_190X;
long n_191X;
long arg2_192X;
long arg3_193X;
long obj_194X;
long x_195X;
unsigned char *spec_196X;
FILE * port_197X;
long count_198X;
long b_199X;
long e_200X;
long v_201X;
long v_202X;
FILE * port_203X;
long arg2_204X;
long p_205X;
unsigned char v_206X;
long p_207X;
unsigned char v_208X;
long v_209X;
long x_210X;
long x_211X;
long p_212X;
unsigned char v_213X;
FILE * v_214X;
long v_215X;
long x_216X;
long c_217X;
unsigned char Kchar_218X;
long x_219X;
unsigned char v_220X;
long x_221X;
unsigned char v_222X;
long obj_223X;
long x_224X;
long arg2_225X;
long x_226X;
long v_227X;
long arg2_228X;
long stob_229X;
long value_230X;
unsigned char b_231X;
long v_232X;
long len_233X;
long index_234X;
long arg2_235X;
long stob_236X;
long value_237X;
unsigned char b_238X;
long arg2_239X;
long index_240X;
unsigned char b_241X;
long v_242X;
long v_243X;
long arg2_244X;
long index_245X;
unsigned char b_246X;
long v_247X;
long x_248X;
long arg2_249X;
long index_250X;
unsigned char b_251X;
long v_252X;
long arg2_253X;
long x_254X;
unsigned char b_255X;
unsigned char b_256X;
long v_257X;
long x_258X;
unsigned char b_259X;
long x_260X;
long v_261X;
long x_262X;
unsigned char b_263X;
long len_264X;
long init_265X;
unsigned char b_266X;
long arg2_267X;
long space_268X;
unsigned char v_269X;
long temp_270X;
unsigned char v_271X;
long len_272X;
long init_273X;
unsigned char b_274X;
long space_275X;
unsigned char v_276X;
long temp_277X;
unsigned char v_278X;
long x_279X;
long arg2_280X;
long x_281X;
long arg2_282X;
long x_283X;
long x_284X;
long arg2_285X;
long x_286X;
long x_287X;
long x_288X;
long a_289X;
long b_290X;
long x_291X;
long a_292X;
long b_293X;
long x_294X;
long arg2_295X;
long x_296X;
long a_297X;
long b_298X;
long x_299X;
long z_300X;
long x_301X;
long a_302X;
long b_303X;
long arg2_304X;
long x_305X;
long x_306X;
long x_307X;
long x_308X;
long x_309X;
long arg2_310X;
long x_311X;
unsigned char b_312X;
unsigned char b_313X;
unsigned char b_314X;
unsigned char b_315X;
long consumer_316X;
long start_arg_317X;
long start_loc_318X;
unsigned char b_319X;
unsigned char b_320X;
unsigned char b_321X;
unsigned char x_322X;
long space_323X;
unsigned char v_324X;
unsigned char okayP_325X;
unsigned char b_326X;
long p_327X;
long v_328X;
long env_329X;
unsigned char b_330X;
long env_331X;
unsigned char b_332X;
long env_333X;
unsigned char b_334X;
unsigned char b_335X;
long env_336X;
unsigned char b_337X;
long v_338X;
unsigned char count_339X;
unsigned char x_340X;
long space_341X;
unsigned char v_342X;
unsigned char okayP_343X;
long vector_344X;
long addr_345X;
unsigned char v_346X;
long d_347X;
long h_348X;
long addr_349X;
long h_350X;
long d_351X;
long val_352X;
long i_353X;
long h_354X;
long bucket_355X;
long index_356X;
long v_357X;
long b_358X;
unsigned char v_359X;
long new_360X;
long new_361X;
long i_362X;
long h_363X;
long bucket_364X;
long index_365X;
long v_366X;
long b_367X;
long new_368X;
long stob_369X;
long from_370X;
long from_371X;
long to_372X;
long v_373X;
long v_374X;
long arg2_375X;
long obj_376X;
long table_377X;
long v_378X;
long n_379X;
long v_380X;
long arg2_381X;
long n_382X;
long new_383X;
long obj_384X;
long l_385X;
long i_386X;
long i_387X;
long h_388X;
long v_389X;
char v_390X;
long addr_391X;
unsigned char v_392X;
long d_393X;
long obj_394X;
long v_395X;
long s_396X;
long n_397X;
long resume_proc_398X;
long new_399X;
long i_400X;
long header_401X;
long port_402X;
long count_403X;
long count_404X;
long size_405X;
long b_406X;
long e_407X;
char v_408X;
long val_409X;
long c_410X;
long val_411X;
long key_412X;
long arg2_413X;
long v_414X;
long mode_415X;
long i_416X;
long x_417X;
long i_418X;
long x_419X;
long i_420X;
long i_421X;
long index_422X;
long new_count_423X;
long old_count_424X;
FILE * *new_ports_425X;
long *new_vm_ports_426X;
FILE * port_427X;
long new_428X;
long index_429X;
long filename_430X;
unsigned char *spec_431X;
unsigned char *spec_432X;
long filename_433X;
char v_434X;
long val_435X;
long i_436X;
unsigned char okayP_437X;
long init_438X;
long new_439X;
long val_440X;
long i_441X;
unsigned char okayP_442X;
long init_443X;
long new_444X;
long val_445X;
long i_446X;
unsigned char okayP_447X;
long init_448X;
long new_449X;
long len_450X;
long new_451X;
long len_452X;
unsigned char b_453X;
unsigned char b_454X;
long new_455X;
long i_456X;
long n_457X;
long b_458X;
long c_459X;
long a_460X;
long b_461X;
long c_462X;
long a_463X;
long n_464X;
long b_465X;
long c_466X;
long a_467X;
long q_468X;
long a_469X;
long b_470X;
long b_471X;
long c_472X;
long a_473X;
long b_474X;
long lo_a_475X;
long lo_b_476X;
long hi_a_477X;
long hi_b_478X;
long lo_c_479X;
long mid_c_480X;
long c_481X;
long a_482X;
long offset_483X;
long list_484X;
long a_485X;
long new_486X;
long l_487X;
long last_488X;
long new_489X;
long a_490X;
long i_491X;
long l_492X;
long space_493X;
unsigned char v_494X;
unsigned char okayP_495X;
long overflow_496X;
long args_497X;
long fast_498X;
long len_499X;
long slow_500X;
unsigned char move_slowP_501X;
long nargs_502X;
long args_503X;
long v_504X;
long args_505X;
long loc_506X;
long arg_507X;
long v_508X;
long key_509X;
long v_510X;
long space_511X;
unsigned char v_512X;
unsigned char okayP_513X;
long key_514X;
long p_515X;
long v_516X;
long env_517X;
unsigned char v_518X;
unsigned char okayP_519X;
unsigned char b_520X;
long a_521X;
long new_522X;
long env_523X;
long i_524X;
unsigned char b_525X;
long env_526X;
long i_527X;
unsigned char b_528X;
long args_529X;
long new_530X;
long len_531X;
unsigned char b_532X;
unsigned char b_533X;
long v_534X;
char v_535X;
char v_536X;
char v_537X;
char v_538X;
char v_539X;
char v_540X;
char v_541X;
char v_542X;
long r_543X;
char v_544X;
char v_545X;
char v_546X;
char v_547X;
long v_548X;
long key_549X;
long v_550X;
long cont_551X;
long tem_552X;
long pc_553X;
long args_554X;
long v_555X;
long v_556X;
long cont_557X;
long v_558X;
long v_559X;
long op_560X;
long v_561X;
long next_562X;
long cont_563X;
long tem_564X;
long pc_565X;
long args_566X;
long v_567X;
long v_568X;
long args_569X;
long a1_570X;
long v_571X;
long obj_572X;
unsigned char okayP_573X;
unsigned char v_574X;
long space_575X;
unsigned char x_576X;
long v_577X;
unsigned char x_578X;
long tem_579X;
long obj_580X;
long v_581X;
unsigned char okayP_582X;
unsigned char v_583X;
long space_584X;
unsigned char x_585X;
long v_586X;
long obj_587X;
long i_588X;
long m_589X;
long obj_590X;
long tem_591X;
long v_592X;
long v_593X;
long key_594X;
long n_595X;
long i_596X;
long i_597X;
long vec_598X;
long p_599X;
long i_600X;
long new_601X;
long len_602X;
long p_603X;
long v_604X;
long cont_605X;
long previous_606X;
long v_607X;
long cont_608X;
long p_609X;
long new_610X;
long v_611X;
long end_612X;
long cells_613X;
long top_614X;
long new_cont_615X;
long v_616X;
long from_617X;
long from_618X;
long to_619X;
long new_620X;
long env_621X;
long p_622X;
long env_623X;
long new_624X;
long cont_625X;
long env_626X;
long new_627X;
long h_628X;
long len_629X;
long from_630X;
long to_631X;
long new_632X;
long bytes_633X;
long from_634X;
unsigned char x_635X;
unsigned char x_636X;
long p_637X;
long i_638X;
long key_639X;
long pc_640X;
long template_641X;
long cont_642X;
long space_643X;
unsigned char v_644X;
unsigned char okayP_645X;
long args_646X;
long count_647X;
long a_648X;
long new_649X;
long v_650X;
long value_651X;
long pc_652X;
long e_653X;
long b_654X;
long a_655X;
unsigned char v_656X;
long i_657X;
unsigned char x_658X;
long port_659X;
long header_660X;
long new_661X;
long value_662X;
long cont_663X;
long last_env_664X;
long env_665X;
long byte_count_666X;
long v_667X;
long a_668X;
unsigned char v_669X;
long env_670X;
long byte_count_671X;
long addr_672X;
long v_673X;
long addr_674X;
long v_675X;
long addr_676X;
long v_677X;
long env_678X;
long start_679X;
long end_680X;
long v_681X;
long v_682X;
long value_683X;
long a_684X;
unsigned char v_685X;
long v_686X;
long v_687X;
long value_688X;
long a_689X;
unsigned char v_690X;
long v_691X;
long v_692X;
long value_693X;
long a_694X;
unsigned char v_695X;
long v_696X;
long v_697X;
long value_698X;
long a_699X;
unsigned char v_700X;
long v_701X;
long v_702X;
long value_703X;
long a_704X;
unsigned char v_705X;
long tem_706X;
long v_707X;
long value_708X;
long a_709X;
unsigned char v_710X;
long next_711X;
long thing_712X;
long value_713X;
long a_714X;
unsigned char v_715X;
long v_716X;
long h_717X;
long new_718X;
long x1_719X;
long o_720X;
long header_721X;
long string_722X;
FILE * port_723X;
long count_724X;
FILE * port_725X;
long mode_726X;
long index_727X;
long v_728X;
long z1_729X;
long z2_730X;
long i_731X;
long z_732X;
unsigned char *v_733X;
long i_734X;
long v_735X;
unsigned char *c_736X;
long string_737X;
unsigned char c_738X;
long stob1_739X;
long stob2_740X;
long x_741X;
FILE * port_742X;
long vm_port_743X;
long port_744X;
long c_745X;
long thing_746X;
long c_747X;
long addr_748X;
long c_749X;
long value_750X;
long c_751X;
long start_752X;
long count_753X;
long code_pointer_754X;
long size_755X;
long c_756X;
long stob_757X;
long c_758X;
long env_759X;
long cont_760X;
long key_761X;
long c_762X;
long cont_763X;
long c_764X;
long key_765X;
char reason_766X;
long key_767X;
char c_768X;
char c_769X;
char bytes_consumed_770X;
char c_771X;
char nargs_772X;
char c_773X;
char byte_args_774X;
char c_775X;
char args_776X;
long a1_777X;
long a2_778X;
long a3_779X;
long a4_780X;
char c_781X;
char args_782X;
long a1_783X;
long a2_784X;
long a3_785X;
char c_786X;
char args_787X;
long a1_788X;
long a2_789X;
char c_790X;
char args_791X;
long a1_792X;
char c_793X;
long nargs_794X;
char c_795X;
char args_796X;
START: {
b_162X = *((unsigned char*)RScode_pointerS);
RScode_pointerS = (1 + RScode_pointerS);
switch (b_162X) {
case 0 : {
b_0X = *((unsigned char*)RScode_pointerS);
RScode_pointerS = (1 + RScode_pointerS);
if ((SnargsS == ((long)b_0X))) {
goto START;}
else {
merged_arg0K0 = 1;
goto application_exception;}}
break;
case 1 : {
b_1X = *((unsigned char*)RScode_pointerS);
RScode_pointerS = (1 + RScode_pointerS);
if ((SnargsS < ((long)b_1X))) {
merged_arg0K0 = 1;
goto application_exception;}
else {
goto START;}}
break;
case 2 : {
RSvalS = (SnargsS << 2);
goto START;}
break;
case 3 : {
count_339X = *((unsigned char*)RScode_pointerS);
x_340X = Sstack_limitS < (-8 + (RSstackS - (((long)count_339X) << 2)));
if (x_340X) {
goto L27529;}
else {
space_341X = 1 + ((Sstack_endS - RSstackS) >> 2);
v_342X = (ShpS + (space_341X << 2)) < SlimitS;
if (v_342X) {
arg1K0 = 0;
goto L27566;}
else {
merged_arg1K0 = 0;
collect_saving_temp_return_tag = 0;
goto collect_saving_temp;
collect_saving_temp_return_0:
okayP_343X = (ShpS + (space_341X << 2)) < SlimitS;
if (okayP_343X) {
arg1K0 = 0;
goto L27566;}
else {
TTerror("Scheme48 heap overflow", 0, 0, 0, 0);
arg1K0 = 0;
goto L27566;}}}}
break;
case 4 : {
space_4X = 2 + ((long)(*((unsigned char*)RScode_pointerS)));
v_3X = (ShpS + (space_4X << 2)) < SlimitS;
if (v_3X) {
goto L27603;}
else {
merged_arg1K0 = 0;
collect_saving_temp_return_tag = 1;
goto collect_saving_temp;
collect_saving_temp_return_1:
okayP_2X = (ShpS + (space_4X << 2)) < SlimitS;
if (okayP_2X) {
goto L27603;}
else {
TTerror("Scheme48 heap overflow", 0, 0, 0, 0);
goto L27603;}}}
break;
case 5 : {
RSenvS = (*((long*)(-3 + RSenvS)));
goto START;}
break;
case 6 : {
b_337X = *((unsigned char*)RScode_pointerS);
RScode_pointerS = (1 + RScode_pointerS);
if ((64 == SnargsS)) {
RSstackS = (4 + RSstackS);
merged_arg1K0 = (*((long*)RSstackS));
merged_arg1K1 = ((-1 + SnargsS) - ((long)b_337X));
pop_args_list_return_tag = 0;
goto pop_args_list;
pop_args_list_return_0:
v_5X = pop_args_list_return_value;
arg1K0 = v_5X;
goto L27675;}
else {
merged_arg1K0 = 25;
merged_arg1K1 = (SnargsS - ((long)b_337X));
pop_args_list_return_tag = 1;
goto pop_args_list;
pop_args_list_return_1:
v_338X = pop_args_list_return_value;
arg1K0 = v_338X;
goto L27675;}}
break;
case 7 : {
b_6X = *((unsigned char*)RScode_pointerS);
RScode_pointerS = (1 + RScode_pointerS);
RSvalS = (*((long*)((-3 + StemplateS) + (((long)b_6X) << 2))));
goto START;}
break;
case 8 : {
b_335X = *((unsigned char*)RScode_pointerS);
RScode_pointerS = (1 + RScode_pointerS);
env_336X = RSenvS;
arg1K0 = env_336X;
arg1K1 = ((long)b_335X);
goto L27429;}
break;
case 9 : {
env_333X = RSenvS;
b_334X = *((unsigned char*)RScode_pointerS);
RScode_pointerS = (1 + RScode_pointerS);
RSvalS = (*((long*)((-3 + env_333X) + (((long)b_334X) << 2))));
if ((529 == RSvalS)) {
merged_arg0K0 = 1;
goto raise_exception;}
else {
goto START;}}
break;
case 10 : {
env_331X = *((long*)(-3 + RSenvS));
b_332X = *((unsigned char*)RScode_pointerS);
RScode_pointerS = (1 + RScode_pointerS);
RSvalS = (*((long*)((-3 + env_331X) + (((long)b_332X) << 2))));
if ((529 == RSvalS)) {
merged_arg0K0 = 1;
goto raise_exception;}
else {
goto START;}}
break;
case 11 : {
env_329X = *((long*)(-3 + (*((long*)(-3 + RSenvS)))));
b_330X = *((unsigned char*)RScode_pointerS);
RScode_pointerS = (1 + RScode_pointerS);
RSvalS = (*((long*)((-3 + env_329X) + (((long)b_330X) << 2))));
if ((529 == RSvalS)) {
merged_arg0K0 = 1;
goto raise_exception;}
else {
goto START;}}
break;
case 12 : {
b_8X = *((unsigned char*)RScode_pointerS);
RScode_pointerS = (1 + RScode_pointerS);
env_7X = RSenvS;
arg1K0 = env_7X;
arg1K1 = ((long)b_8X);
goto L27747;}
break;
case 13 : {
b_10X = *((unsigned char*)RScode_pointerS);
RScode_pointerS = (1 + RScode_pointerS);
location_9X = *((long*)((-3 + StemplateS) + (((long)b_10X) << 2)));
RSvalS = (*((long*)(-3 + location_9X)));
if ((17 == (255 & RSvalS))) {
merged_arg0K0 = 1;
merged_arg1K1 = location_9X;
goto raise_exception1;}
else {
goto START;}}
break;
case 14 : {
b_12X = *((unsigned char*)RScode_pointerS);
RScode_pointerS = (1 + RScode_pointerS);
location_11X = *((long*)((-3 + StemplateS) + (((long)b_12X) << 2)));
if ((273 == (*((long*)(-3 + location_11X))))) {
merged_arg0K0 = 1;
merged_arg1K1 = location_11X;
merged_arg1K2 = RSvalS;
goto raise_exception2;}
else {
*((long*)(-3 + location_11X)) = RSvalS;
RSvalS = 13;
goto START;}}
break;
case 15 : {
p_327X = RSenvS;
if ((p_327X < Sstack_beginS)) {
arg1K0 = 0;
goto L27845;}
else {
if ((Sstack_endS < p_327X)) {
arg1K0 = 0;
goto L27845;}
else {
v_328X = Sstack_endS - Sstack_beginS;
arg1K0 = v_328X;
goto L27845;}}}
break;
case 16 : {
*((long*)RSstackS) = RSvalS;
RSstackS = (-4 + RSstackS);
goto START;}
break;
case 17 : {
RSstackS = (4 + RSstackS);
RSvalS = (*((long*)RSstackS));
goto START;}
break;
case 18 : {
b_13X = *((unsigned char*)RScode_pointerS);
RScode_pointerS = (1 + RScode_pointerS);
RSvalS = (*((long*)(4 + (RSstackS + (((long)b_13X) << 2)))));
goto START;}
break;
case 19 : {
b_326X = *((unsigned char*)RScode_pointerS);
RScode_pointerS = (1 + RScode_pointerS);
*((long*)(4 + (RSstackS + (((long)b_326X) << 2)))) = RSvalS;
goto START;}
break;
case 20 : {
b_319X = *((unsigned char*)RScode_pointerS);
RScode_pointerS = (1 + RScode_pointerS);
b_320X = *((unsigned char*)RScode_pointerS);
RScode_pointerS = (1 + RScode_pointerS);
b_321X = *((unsigned char*)RScode_pointerS);
RScode_pointerS = (1 + RScode_pointerS);
x_322X = Sstack_limitS < (-276 + RSstackS);
if (x_322X) {
arg1K0 = 0;
goto L28023;}
else {
space_323X = 1 + ((Sstack_endS - RSstackS) >> 2);
v_324X = (ShpS + (space_323X << 2)) < SlimitS;
if (v_324X) {
arg1K0 = 0;
goto L28044;}
else {
merged_arg1K0 = 0;
collect_saving_temp_return_tag = 2;
goto collect_saving_temp;
collect_saving_temp_return_2:
okayP_325X = (ShpS + (space_323X << 2)) < SlimitS;
if (okayP_325X) {
arg1K0 = 0;
goto L28044;}
else {
TTerror("Scheme48 heap overflow", 0, 0, 0, 0);
arg1K0 = 0;
goto L28044;}}}}
break;
case 21 : {
space_16X = 1 + ((Sstack_endS - RSstackS) >> 2);
v_15X = (ShpS + (space_16X << 2)) < SlimitS;
if (v_15X) {
arg1K0 = 0;
goto L29687;}
else {
merged_arg1K0 = 0;
collect_saving_temp_return_tag = 3;
goto collect_saving_temp;
collect_saving_temp_return_3:
okayP_14X = (ShpS + (space_16X << 2)) < SlimitS;
if (okayP_14X) {
arg1K0 = 0;
goto L29687;}
else {
TTerror("Scheme48 heap overflow", 0, 0, 0, 0);
arg1K0 = 0;
goto L29687;}}}
break;
case 22 : {
cont_18X = *((long*)(-3 + Sbottom_of_stackS));
if ((1 == cont_18X)) {
if ((0 == (3 & RSvalS))) {
RSvalS = (RSvalS >> 2);
SvalS = RSvalS;
SstackS = RSstackS;
Scode_pointerS = RScode_pointerS;
SenvS = RSenvS;
TTreturn_value = 0;
return(0L);}
else {
RSstackS = (-11 + Sbottom_of_stackS);
*((long*)(-3 + Sbottom_of_stackS)) = 1;
merged_arg0K0 = 0;
merged_arg1K1 = RSvalS;
goto raise_exception1;}}
else {
if ((1 == cont_18X)) {
RSstackS = (-11 + Sbottom_of_stackS);
*((long*)(-3 + Sbottom_of_stackS)) = 1;
arg1K0 = Sbottom_of_stackS;
goto L28153;}
else {
merged_arg1K0 = cont_18X;
copy_continuation_from_heap_return_tag = 0;
goto copy_continuation_from_heap;
copy_continuation_from_heap_return_0:
v_17X = copy_continuation_from_heap_return_value;
arg1K0 = v_17X;
goto L28153;}}}
break;
case 23 : {
SnargsS = ((long)(*((unsigned char*)RScode_pointerS)));
merged_arg0K0 = 0;
goto perform_application;}
break;
case 24 : {
SnargsS = ((long)(*((unsigned char*)RScode_pointerS)));
start_arg_317X = RSstackS + (SnargsS << 2);
start_loc_318X = -11 + ScontS;
if ((start_arg_317X < start_loc_318X)) {
arg1K0 = start_loc_318X;
arg1K1 = start_arg_317X;
goto L15470;}
else {
goto L15453;}}
break;
case 25 : {
RSstackS = (4 + RSstackS);
proc_20X = *((long*)RSstackS);
list_19X = RSvalS;
arg1K0 = list_19X;
arg1K1 = 0;
arg1K2 = list_19X;
arg3K3 = 0;
goto L24287;}
break;
case 26 : {
RSstackS = (4 + RSstackS);
cont_22X = *((long*)RSstackS);
if ((1 == cont_22X)) {
RSstackS = (-11 + Sbottom_of_stackS);
*((long*)(-3 + Sbottom_of_stackS)) = 1;
arg1K0 = Sbottom_of_stackS;
goto L29721;}
else {
merged_arg1K0 = cont_22X;
copy_continuation_from_heap_return_tag = 1;
goto copy_continuation_from_heap;
copy_continuation_from_heap_return_1:
v_21X = copy_continuation_from_heap_return_value;
arg1K0 = v_21X;
goto L29721;}}
break;
case 27 : {
RSstackS = (4 + RSstackS);
consumer_316X = *((long*)RSstackS);
*((long*)RSstackS) = RSvalS;
RSstackS = (-4 + RSstackS);
RSvalS = consumer_316X;
SnargsS = 1;
merged_arg0K0 = 0;
goto perform_application;}
break;
case 28 : {
cont_25X = ScontS;
tem_24X = *((long*)(5 + cont_25X));
pc_23X = *((long*)(1 + cont_25X));
StemplateS = tem_24X;
RScode_pointerS = ((-3 + (*((long*)(-3 + tem_24X)))) + (pc_23X >> 2));
RSenvS = (*((long*)(9 + cont_25X)));
ScontS = (*((long*)(-3 + cont_25X)));
RSstackS = (9 + cont_25X);
goto START;}
break;
case 29 : {
merged_arg1K0 = SnargsS;
goto return_values;}
break;
case 30 : {
merged_arg1K0 = ((long)(*((unsigned char*)RScode_pointerS)));
goto return_values;}
break;
case 31 : {
goto START;}
break;
case 32 : {
b_27X = *((unsigned char*)RScode_pointerS);
RScode_pointerS = (1 + RScode_pointerS);
tem_26X = *((long*)((-3 + StemplateS) + (((long)b_27X) << 2)));
StemplateS = tem_26X;
RScode_pointerS = (-3 + (*((long*)(-3 + tem_26X))));
goto START;}
break;
case 33 : {
b_30X = *((unsigned char*)RScode_pointerS);
RScode_pointerS = (1 + RScode_pointerS);
SnargsS = ((long)b_30X);
b_29X = *((unsigned char*)RScode_pointerS);
RScode_pointerS = (1 + RScode_pointerS);
tem_28X = *((long*)((-3 + StemplateS) + (((long)b_29X) << 2)));
StemplateS = tem_28X;
RScode_pointerS = (-3 + (*((long*)(-3 + tem_28X))));
if ((0 == (Spending_interruptsS & Senabled_interruptsS))) {
goto START;}
else {
goto handle_interrupt;}}
break;
case 34 : {
b_32X = *((unsigned char*)RScode_pointerS);
RScode_pointerS = (1 + RScode_pointerS);
b_31X = *((unsigned char*)RScode_pointerS);
RScode_pointerS = (1 + RScode_pointerS);
if ((1 == RSvalS)) {
RScode_pointerS = (RScode_pointerS + ((((long)b_32X) << 8) + ((long)b_31X)));
goto START;}
else {
goto START;}}
break;
case 35 : {
b_314X = *((unsigned char*)RScode_pointerS);
RScode_pointerS = (1 + RScode_pointerS);
b_315X = *((unsigned char*)RScode_pointerS);
RScode_pointerS = (1 + RScode_pointerS);
RScode_pointerS = (RScode_pointerS + ((((long)b_314X) << 8) + ((long)b_315X)));
goto START;}
break;
case 36 : {
if ((0 == (3 & RSvalS))) {
val_34X = RSvalS >> 2;
b_33X = *((unsigned char*)RScode_pointerS);
RScode_pointerS = (1 + RScode_pointerS);
if ((val_34X < 0)) {
arg1K0 = (((long)b_33X) << 1);
goto L28358;}
else {
if ((val_34X < ((long)b_33X))) {
RScode_pointerS = (RScode_pointerS + (val_34X << 1));
b_312X = *((unsigned char*)RScode_pointerS);
RScode_pointerS = (1 + RScode_pointerS);
b_313X = *((unsigned char*)RScode_pointerS);
RScode_pointerS = (1 + RScode_pointerS);
arg1K0 = ((((long)b_312X) << 8) + ((long)b_313X));
goto L28358;}
else {
arg1K0 = (((long)b_33X) << 1);
goto L28358;}}}
else {
merged_arg0K0 = 0;
merged_arg1K1 = RSvalS;
goto raise_exception1;}}
break;
case 37 : {
RSstackS = (4 + RSstackS);
arg2_310X = *((long*)RSstackS);
x_311X = RSvalS;
if ((arg2_310X == x_311X)) {
arg0K0 = 5;
goto L29842;}
else {
arg0K0 = 1;
goto L29842;}}
break;
case 38 : {
x_309X = RSvalS;
if ((0 == (3 & x_309X))) {
arg0K0 = 5;
goto L29856;}
else {
if ((3 == (3 & x_309X))) {
v_35X = 31 & ((*((long*)(-7 + x_309X))) >> 2);
if ((9 == v_35X)) {
arg0K0 = 5;
goto L29856;}
else {
arg0K0 = 1;
goto L29856;}}
else {
arg0K0 = 1;
goto L29856;}}}
break;
case 39 : {
x_308X = RSvalS;
if ((0 == (3 & x_308X))) {
RSvalS = 5;
goto START;}
else {
if ((3 == (3 & x_308X))) {
v_36X = 31 & ((*((long*)(-7 + x_308X))) >> 2);
if ((9 == v_36X)) {
merged_arg0K0 = 0;
merged_arg1K1 = x_308X;
goto raise_exception1;}
else {
goto L29876;}}
else {
goto L29876;}}}
break;
case 40 : {
x_307X = RSvalS;
if ((0 == (3 & x_307X))) {
RSvalS = 5;
goto START;}
else {
if ((3 == (3 & x_307X))) {
v_37X = 31 & ((*((long*)(-7 + x_307X))) >> 2);
if ((9 == v_37X)) {
merged_arg0K0 = 0;
merged_arg1K1 = x_307X;
goto raise_exception1;}
else {
goto L29905;}}
else {
goto L29905;}}}
break;
case 41 : {
x_306X = RSvalS;
if ((0 == (3 & x_306X))) {
RSvalS = 5;
goto START;}
else {
if ((3 == (3 & x_306X))) {
v_38X = 31 & ((*((long*)(-7 + x_306X))) >> 2);
if ((9 == v_38X)) {
merged_arg0K0 = 0;
merged_arg1K1 = x_306X;
goto raise_exception1;}
else {
goto L29934;}}
else {
goto L29934;}}}
break;
case 42 : {
x_305X = RSvalS;
if ((0 == (3 & x_305X))) {
RSvalS = 5;
goto START;}
else {
if ((3 == (3 & x_305X))) {
v_39X = 31 & ((*((long*)(-7 + x_305X))) >> 2);
if ((9 == v_39X)) {
merged_arg0K0 = 0;
merged_arg1K1 = x_305X;
goto raise_exception1;}
else {
goto L29963;}}
else {
goto L29963;}}}
break;
case 43 : {
if ((0 == (3 & RSvalS))) {
RSvalS = 5;
goto START;}
else {
merged_arg0K0 = 0;
merged_arg1K1 = RSvalS;
goto raise_exception1;}}
break;
case 44 : {
if ((0 == (3 & RSvalS))) {
merged_arg0K0 = 0;
merged_arg1K1 = RSvalS;
goto raise_exception1;}
else {
merged_arg0K0 = 0;
merged_arg1K1 = RSvalS;
goto raise_exception1;}}
break;
case 45 : {
if ((0 == (3 & RSvalS))) {
merged_arg0K0 = 0;
merged_arg1K1 = RSvalS;
goto raise_exception1;}
else {
merged_arg0K0 = 0;
merged_arg1K1 = RSvalS;
goto raise_exception1;}}
break;
case 46 : {
RSstackS = (4 + RSstackS);
arg2_304X = *((long*)RSstackS);
if ((0 == (3 & (arg2_304X | RSvalS)))) {
x_41X = RSvalS;
z_40X = (arg2_304X >> 2) + (x_41X >> 2);
if ((536870911 < z_40X)) {
goto L23195;}
else {
if ((z_40X < -536870912)) {
goto L23195;}
else {
RSvalS = (z_40X << 2);
goto START;}}}
else {
merged_arg0K0 = 0;
merged_arg1K1 = arg2_304X;
merged_arg1K2 = RSvalS;
goto raise_exception2;}}
break;
case 47 : {
RSstackS = (4 + RSstackS);
arg2_42X = *((long*)RSstackS);
if ((0 == (3 & (arg2_42X | RSvalS)))) {
x_301X = RSvalS;
a_302X = arg2_42X >> 2;
b_303X = x_301X >> 2;
if ((a_302X < 0)) {
arg1K0 = (0 - a_302X);
goto L22993;}
else {
arg1K0 = a_302X;
goto L22993;}}
else {
merged_arg0K0 = 0;
merged_arg1K1 = arg2_42X;
merged_arg1K2 = RSvalS;
goto raise_exception2;}}
break;
case 48 : {
RSstackS = (4 + RSstackS);
arg2_43X = *((long*)RSstackS);
if ((0 == (3 & (arg2_43X | RSvalS)))) {
x_299X = RSvalS;
z_300X = (arg2_43X >> 2) - (x_299X >> 2);
if ((536870911 < z_300X)) {
goto L22878;}
else {
if ((z_300X < -536870912)) {
goto L22878;}
else {
RSvalS = (z_300X << 2);
goto START;}}}
else {
merged_arg0K0 = 0;
merged_arg1K1 = arg2_43X;
merged_arg1K2 = RSvalS;
goto raise_exception2;}}
break;
case 49 : {
RSstackS = (4 + RSstackS);
arg2_44X = *((long*)RSstackS);
if ((0 == (3 & (arg2_44X | RSvalS)))) {
x_296X = RSvalS;
if ((0 == x_296X)) {
merged_arg0K0 = 0;
merged_arg1K1 = arg2_44X;
merged_arg1K2 = x_296X;
goto raise_exception2;}
else {
a_297X = arg2_44X >> 2;
b_298X = x_296X >> 2;
if ((a_297X < 0)) {
arg1K0 = (0 - a_297X);
goto L22674;}
else {
arg1K0 = a_297X;
goto L22674;}}}
else {
merged_arg0K0 = 0;
merged_arg1K1 = arg2_44X;
merged_arg1K2 = RSvalS;
goto raise_exception2;}}
break;
case 50 : {
RSstackS = (4 + RSstackS);
arg2_295X = *((long*)RSstackS);
if ((0 == (3 & (arg2_295X | RSvalS)))) {
x_45X = RSvalS;
if ((arg2_295X == x_45X)) {
arg0K0 = 5;
goto L30048;}
else {
arg0K0 = 1;
goto L30048;}}
else {
merged_arg0K0 = 0;
merged_arg1K1 = arg2_295X;
merged_arg1K2 = RSvalS;
goto raise_exception2;}}
break;
case 51 : {
RSstackS = (4 + RSstackS);
arg2_46X = *((long*)RSstackS);
if ((0 == (3 & (arg2_46X | RSvalS)))) {
x_294X = RSvalS;
if ((arg2_46X < x_294X)) {
arg0K0 = 5;
goto L30072;}
else {
arg0K0 = 1;
goto L30072;}}
else {
merged_arg0K0 = 0;
merged_arg1K1 = arg2_46X;
merged_arg1K2 = RSvalS;
goto raise_exception2;}}
break;
case 52 : {
RSstackS = (4 + RSstackS);
arg2_47X = *((long*)RSstackS);
if ((0 == (3 & (arg2_47X | RSvalS)))) {
x_291X = RSvalS;
if ((0 == x_291X)) {
merged_arg0K0 = 0;
merged_arg1K1 = arg2_47X;
merged_arg1K2 = x_291X;
goto raise_exception2;}
else {
a_292X = arg2_47X >> 2;
b_293X = x_291X >> 2;
if ((a_292X < 0)) {
arg1K0 = (0 - a_292X);
goto L22345;}
else {
arg1K0 = a_292X;
goto L22345;}}}
else {
merged_arg0K0 = 0;
merged_arg1K1 = arg2_47X;
merged_arg1K2 = RSvalS;
goto raise_exception2;}}
break;
case 53 : {
RSstackS = (4 + RSstackS);
arg2_48X = *((long*)RSstackS);
if ((0 == (3 & (arg2_48X | RSvalS)))) {
x_288X = RSvalS;
if ((0 == x_288X)) {
merged_arg0K0 = 0;
merged_arg1K1 = arg2_48X;
merged_arg1K2 = x_288X;
goto raise_exception2;}
else {
a_289X = arg2_48X >> 2;
b_290X = x_288X >> 2;
if ((a_289X < 0)) {
arg1K0 = (0 - a_289X);
goto L22216;}
else {
arg1K0 = a_289X;
goto L22216;}}}
else {
merged_arg0K0 = 0;
merged_arg1K1 = arg2_48X;
merged_arg1K2 = RSvalS;
goto raise_exception2;}}
break;
case 54 : {
if ((0 == (3 & RSvalS))) {
RSvalS = RSvalS;
goto START;}
else {
merged_arg0K0 = 0;
merged_arg1K1 = RSvalS;
goto raise_exception1;}}
break;
case 55 : {
if ((0 == (3 & RSvalS))) {
RSvalS = RSvalS;
goto START;}
else {
merged_arg0K0 = 0;
merged_arg1K1 = RSvalS;
goto raise_exception1;}}
break;
case 56 : {
if ((0 == (3 & RSvalS))) {
RSvalS = 4;
goto START;}
else {
merged_arg0K0 = 0;
merged_arg1K1 = RSvalS;
goto raise_exception1;}}
break;
case 57 : {
if ((0 == (3 & RSvalS))) {
RSvalS = RSvalS;
goto START;}
else {
merged_arg0K0 = 0;
merged_arg1K1 = RSvalS;
goto raise_exception1;}}
break;
case 58 : {
if ((0 == (3 & RSvalS))) {
RSvalS = 0;
goto START;}
else {
merged_arg0K0 = 0;
merged_arg1K1 = RSvalS;
goto raise_exception1;}}
break;
case 59 : {
if ((0 == (3 & RSvalS))) {
merged_arg0K0 = 0;
merged_arg1K1 = RSvalS;
goto raise_exception1;}
else {
merged_arg0K0 = 0;
merged_arg1K1 = RSvalS;
goto raise_exception1;}}
break;
case 60 : {
if ((0 == (3 & RSvalS))) {
merged_arg0K0 = 0;
merged_arg1K1 = RSvalS;
goto raise_exception1;}
else {
merged_arg0K0 = 0;
merged_arg1K1 = RSvalS;
goto raise_exception1;}}
break;
case 61 : {
if ((0 == (3 & RSvalS))) {
merged_arg0K0 = 0;
merged_arg1K1 = RSvalS;
goto raise_exception1;}
else {
merged_arg0K0 = 0;
merged_arg1K1 = RSvalS;
goto raise_exception1;}}
break;
case 62 : {
if ((0 == (3 & RSvalS))) {
merged_arg0K0 = 0;
merged_arg1K1 = RSvalS;
goto raise_exception1;}
else {
merged_arg0K0 = 0;
merged_arg1K1 = RSvalS;
goto raise_exception1;}}
break;
case 63 : {
if ((0 == (3 & RSvalS))) {
merged_arg0K0 = 0;
merged_arg1K1 = RSvalS;
goto raise_exception1;}
else {
merged_arg0K0 = 0;
merged_arg1K1 = RSvalS;
goto raise_exception1;}}
break;
case 64 : {
if ((0 == (3 & RSvalS))) {
merged_arg0K0 = 0;
merged_arg1K1 = RSvalS;
goto raise_exception1;}
else {
merged_arg0K0 = 0;
merged_arg1K1 = RSvalS;
goto raise_exception1;}}
break;
case 65 : {
if ((0 == (3 & RSvalS))) {
merged_arg0K0 = 0;
merged_arg1K1 = RSvalS;
goto raise_exception1;}
else {
merged_arg0K0 = 0;
merged_arg1K1 = RSvalS;
goto raise_exception1;}}
break;
case 66 : {
RSstackS = (4 + RSstackS);
arg2_49X = *((long*)RSstackS);
if ((0 == (3 & (arg2_49X | RSvalS)))) {
merged_arg0K0 = 0;
merged_arg1K1 = arg2_49X;
merged_arg1K2 = RSvalS;
goto raise_exception2;}
else {
merged_arg0K0 = 0;
merged_arg1K1 = arg2_49X;
merged_arg1K2 = RSvalS;
goto raise_exception2;}}
break;
case 67 : {
if ((0 == (3 & RSvalS))) {
merged_arg0K0 = 0;
merged_arg1K1 = RSvalS;
goto raise_exception1;}
else {
merged_arg0K0 = 0;
merged_arg1K1 = RSvalS;
goto raise_exception1;}}
break;
case 68 : {
if ((0 == (3 & RSvalS))) {
x_50X = RSvalS;
if ((x_50X < 0)) {
merged_arg0K0 = 0;
merged_arg1K1 = x_50X;
goto raise_exception1;}
else {
RSvalS = 0;
goto START;}}
else {
merged_arg0K0 = 0;
merged_arg1K1 = RSvalS;
goto raise_exception1;}}
break;
case 69 : {
if ((0 == (3 & RSvalS))) {
x_287X = RSvalS;
if ((x_287X < 0)) {
arg1K0 = (0 - x_287X);
goto L30274;}
else {
arg1K0 = x_287X;
goto L30274;}}
else {
merged_arg0K0 = 0;
merged_arg1K1 = RSvalS;
goto raise_exception1;}}
break;
case 70 : {
RSstackS = (4 + RSstackS);
arg2_51X = *((long*)RSstackS);
if ((0 == (3 & (arg2_51X | RSvalS)))) {
merged_arg0K0 = 0;
merged_arg1K1 = arg2_51X;
merged_arg1K2 = RSvalS;
goto raise_exception2;}
else {
merged_arg0K0 = 0;
merged_arg1K1 = arg2_51X;
merged_arg1K2 = RSvalS;
goto raise_exception2;}}
break;
case 71 : {
RSstackS = (4 + RSstackS);
arg2_52X = *((long*)RSstackS);
if ((0 == (3 & (arg2_52X | RSvalS)))) {
merged_arg0K0 = 0;
merged_arg1K1 = arg2_52X;
merged_arg1K2 = RSvalS;
goto raise_exception2;}
else {
merged_arg0K0 = 0;
merged_arg1K1 = arg2_52X;
merged_arg1K2 = RSvalS;
goto raise_exception2;}}
break;
case 72 : {
if ((0 == (3 & RSvalS))) {
RSvalS = ((~ (RSvalS >> 2)) << 2);
goto START;}
else {
merged_arg0K0 = 0;
merged_arg1K1 = RSvalS;
goto raise_exception1;}}
break;
case 73 : {
RSstackS = (4 + RSstackS);
arg2_53X = *((long*)RSstackS);
if ((0 == (3 & (arg2_53X | RSvalS)))) {
RSvalS = (((arg2_53X >> 2) & (RSvalS >> 2)) << 2);
goto START;}
else {
merged_arg0K0 = 0;
merged_arg1K1 = arg2_53X;
merged_arg1K2 = RSvalS;
goto raise_exception2;}}
break;
case 74 : {
RSstackS = (4 + RSstackS);
arg2_54X = *((long*)RSstackS);
if ((0 == (3 & (arg2_54X | RSvalS)))) {
RSvalS = (((arg2_54X >> 2) | (RSvalS >> 2)) << 2);
goto START;}
else {
merged_arg0K0 = 0;
merged_arg1K1 = arg2_54X;
merged_arg1K2 = RSvalS;
goto raise_exception2;}}
break;
case 75 : {
RSstackS = (4 + RSstackS);
arg2_55X = *((long*)RSstackS);
if ((0 == (3 & (arg2_55X | RSvalS)))) {
RSvalS = (((arg2_55X >> 2) ^ (RSvalS >> 2)) << 2);
goto START;}
else {
merged_arg0K0 = 0;
merged_arg1K1 = arg2_55X;
merged_arg1K2 = RSvalS;
goto raise_exception2;}}
break;
case 76 : {
RSstackS = (4 + RSstackS);
arg2_285X = *((long*)RSstackS);
if ((0 == (3 & (arg2_285X | RSvalS)))) {
x_61X = RSvalS;
count_60X = x_61X >> 2;
value_59X = arg2_285X >> 2;
if ((count_60X < 0)) {
PS_SHIFT_RIGHT(value_59X, (0 - count_60X), x_286X)
RSvalS = (x_286X << 2);
goto START;}
else {
PS_SHIFT_LEFT(value_59X, count_60X, x_58X)
result_57X = (x_58X << 2) >> 2;
PS_SHIFT_RIGHT(result_57X, count_60X, x_56X)
if ((value_59X == x_56X)) {
if ((value_59X < 0)) {
if ((result_57X < 0)) {
goto L21679;}
else {
goto L21676;}}
else {
if ((result_57X < 0)) {
goto L21676;}
else {
goto L21679;}}}
else {
goto L21676;}}}
else {
merged_arg0K0 = 0;
merged_arg1K1 = arg2_285X;
merged_arg1K2 = RSvalS;
goto raise_exception2;}}
break;
case 77 : {
x_284X = RSvalS;
if ((9 == (255 & x_284X))) {
arg0K0 = 5;
goto L30388;}
else {
arg0K0 = 1;
goto L30388;}}
break;
case 78 : {
RSstackS = (4 + RSstackS);
arg2_282X = *((long*)RSstackS);
if ((9 == (255 & arg2_282X))) {
if ((9 == (255 & RSvalS))) {
x_283X = RSvalS;
if ((arg2_282X == x_283X)) {
arg0K0 = 5;
goto L30415;}
else {
arg0K0 = 1;
goto L30415;}}
else {
goto L30403;}}
else {
goto L30403;}}
break;
case 79 : {
RSstackS = (4 + RSstackS);
arg2_280X = *((long*)RSstackS);
if ((9 == (255 & arg2_280X))) {
if ((9 == (255 & RSvalS))) {
x_281X = RSvalS;
if ((arg2_280X < x_281X)) {
arg0K0 = 5;
goto L30444;}
else {
arg0K0 = 1;
goto L30444;}}
else {
goto L30432;}}
else {
goto L30432;}}
break;
case 80 : {
if ((9 == (255 & RSvalS))) {
RSvalS = (((long)(((RSvalS >> 8)))) << 2);
goto START;}
else {
merged_arg0K0 = 0;
merged_arg1K1 = RSvalS;
goto raise_exception1;}}
break;
case 81 : {
if ((0 == (3 & RSvalS))) {
x_62X = RSvalS >> 2;
if ((255 < x_62X)) {
goto L30475;}
else {
if ((x_62X < 0)) {
goto L30475;}
else {
RSvalS = (9 + (((long)((x_62X))) << 8));
goto START;}}}
else {
merged_arg0K0 = 0;
merged_arg1K1 = RSvalS;
goto raise_exception1;}}
break;
case 82 : {
x_279X = RSvalS;
if ((21 == x_279X)) {
arg0K0 = 5;
goto L30497;}
else {
arg0K0 = 1;
goto L30497;}}
break;
case 83 : {
space_65X = 4 + (((long)(*((unsigned char*)RScode_pointerS))) << 2);
v_64X = (ShpS + (space_65X << 2)) < SlimitS;
if (v_64X) {
goto L16173;}
else {
merged_arg1K0 = 0;
collect_saving_temp_return_tag = 4;
goto collect_saving_temp;
collect_saving_temp_return_4:
okayP_63X = (ShpS + (space_65X << 2)) < SlimitS;
if (okayP_63X) {
goto L16173;}
else {
TTerror("Scheme48 heap overflow", 0, 0, 0, 0);
goto L16173;}}}
break;
case 84 : {
RSstackS = (4 + RSstackS);
arg2_66X = *((long*)RSstackS);
if ((0 == (3 & arg2_66X))) {
len_272X = arg2_66X >> 2;
init_273X = RSvalS;
b_274X = *((unsigned char*)RScode_pointerS);
RScode_pointerS = (1 + RScode_pointerS);
if ((len_272X < 0)) {
merged_arg0K0 = 1;
merged_arg1K1 = (((long)b_274X) << 2);
merged_arg1K2 = (len_272X << 2);
merged_arg1K3 = init_273X;
goto raise_exception3;}
else {
space_275X = 1 + len_272X;
v_276X = (ShpS + (space_275X << 2)) < SlimitS;
if (v_276X) {
arg3K0 = 1;
arg1K1 = init_273X;
goto L24027;}
else {
merged_arg1K0 = init_273X;
collect_saving_temp_return_tag = 5;
goto collect_saving_temp;
collect_saving_temp_return_5:
temp_277X = collect_saving_temp_return_value;
v_278X = (ShpS + (space_275X << 2)) < SlimitS;
arg3K0 = v_278X;
arg1K1 = temp_277X;
goto L24027;}}}
else {
merged_arg0K0 = 0;
merged_arg1K1 = arg2_66X;
merged_arg1K2 = RSvalS;
goto raise_exception2;}}
break;
case 85 : {
RSstackS = (4 + RSstackS);
arg2_267X = *((long*)RSstackS);
if ((0 == (3 & arg2_267X))) {
len_69X = arg2_267X >> 2;
init_68X = RSvalS;
b_67X = *((unsigned char*)RScode_pointerS);
RScode_pointerS = (1 + RScode_pointerS);
if ((0 == (3 & init_68X))) {
if ((len_69X < 0)) {
goto L23766;}
else {
space_268X = 1 + ((3 + len_69X) >> 2);
v_269X = (ShpS + (space_268X << 2)) < SlimitS;
if (v_269X) {
arg3K0 = 1;
arg1K1 = init_68X;
goto L23773;}
else {
merged_arg1K0 = init_68X;
collect_saving_temp_return_tag = 6;
goto collect_saving_temp;
collect_saving_temp_return_6:
temp_270X = collect_saving_temp_return_value;
v_271X = (ShpS + (space_268X << 2)) < SlimitS;
arg3K0 = v_271X;
arg1K1 = temp_270X;
goto L23773;}}}
else {
goto L23766;}}
else {
merged_arg0K0 = 0;
merged_arg1K1 = arg2_267X;
merged_arg1K2 = RSvalS;
goto raise_exception2;}}
break;
case 86 : {
RSstackS = (4 + RSstackS);
arg2_74X = *((long*)RSstackS);
if ((0 == (3 & arg2_74X))) {
len_264X = arg2_74X >> 2;
init_265X = RSvalS;
b_266X = *((unsigned char*)RScode_pointerS);
RScode_pointerS = (1 + RScode_pointerS);
if ((9 == (255 & init_265X))) {
if ((len_264X < 0)) {
goto L23512;}
else {
space_73X = 1 + ((3 + len_264X) >> 2);
v_72X = (ShpS + (space_73X << 2)) < SlimitS;
if (v_72X) {
arg3K0 = 1;
arg1K1 = init_265X;
goto L23519;}
else {
merged_arg1K0 = init_265X;
collect_saving_temp_return_tag = 7;
goto collect_saving_temp;
collect_saving_temp_return_7:
temp_71X = collect_saving_temp_return_value;
v_70X = (ShpS + (space_73X << 2)) < SlimitS;
arg3K0 = v_70X;
arg1K1 = temp_71X;
goto L23519;}}}
else {
goto L23512;}}
else {
merged_arg0K0 = 0;
merged_arg1K1 = arg2_74X;
merged_arg1K2 = RSvalS;
goto raise_exception2;}}
break;
case 87 : {
x_262X = RSvalS;
b_263X = *((unsigned char*)RScode_pointerS);
RScode_pointerS = (1 + RScode_pointerS);
if ((3 == (3 & x_262X))) {
v_75X = 31 & ((*((long*)(-7 + x_262X))) >> 2);
if ((v_75X == ((long)b_263X))) {
arg0K0 = 5;
goto L30561;}
else {
arg0K0 = 1;
goto L30561;}}
else {
arg0K0 = 1;
goto L30561;}}
break;
case 88 : {
x_78X = RSvalS;
b_77X = *((unsigned char*)RScode_pointerS);
RScode_pointerS = (1 + RScode_pointerS);
if ((3 == (3 & x_78X))) {
v_261X = 31 & ((*((long*)(-7 + x_78X))) >> 2);
if ((v_261X == ((long)b_77X))) {
x_76X = (3 + ((*((long*)(-7 + x_78X))) >> 8)) >> 2;
RSvalS = (x_76X << 2);
goto START;}
else {
goto L21396;}}
else {
goto L21396;}}
break;
case 89 : {
x_258X = RSvalS;
b_259X = *((unsigned char*)RScode_pointerS);
RScode_pointerS = (1 + RScode_pointerS);
if ((3 == (3 & x_258X))) {
v_79X = 31 & ((*((long*)(-7 + x_258X))) >> 2);
if ((v_79X == ((long)b_259X))) {
x_260X = (*((long*)(-7 + x_258X))) >> 8;
RSvalS = (x_260X << 2);
goto START;}
else {
goto L21310;}}
else {
goto L21310;}}
break;
case 90 : {
x_82X = RSvalS;
b_81X = *((unsigned char*)RScode_pointerS);
RScode_pointerS = (1 + RScode_pointerS);
b_80X = *((unsigned char*)RScode_pointerS);
RScode_pointerS = (1 + RScode_pointerS);
if ((3 == (3 & x_82X))) {
v_257X = 31 & ((*((long*)(-7 + x_82X))) >> 2);
if ((v_257X == ((long)b_81X))) {
RSvalS = (*((long*)((-3 + x_82X) + (((long)b_80X) << 2))));
goto START;}
else {
goto L23406;}}
else {
goto L23406;}}
break;
case 91 : {
RSstackS = (4 + RSstackS);
arg2_253X = *((long*)RSstackS);
x_254X = RSvalS;
b_255X = *((unsigned char*)RScode_pointerS);
RScode_pointerS = (1 + RScode_pointerS);
b_256X = *((unsigned char*)RScode_pointerS);
RScode_pointerS = (1 + RScode_pointerS);
if ((3 == (3 & arg2_253X))) {
v_83X = 31 & ((*((long*)(-7 + arg2_253X))) >> 2);
if ((v_83X == ((long)b_255X))) {
if ((3 == (3 & arg2_253X))) {
if ((0 == (128 & (*((long*)(-7 + arg2_253X)))))) {
*((long*)((-3 + arg2_253X) + (((long)b_256X) << 2))) = x_254X;
RSvalS = 13;
goto START;}
else {
goto L24993;}}
else {
goto L24993;}}
else {
goto L24993;}}
else {
goto L24993;}}
break;
case 92 : {
RSstackS = (4 + RSstackS);
arg2_249X = *((long*)RSstackS);
index_250X = RSvalS;
b_251X = *((unsigned char*)RScode_pointerS);
RScode_pointerS = (1 + RScode_pointerS);
if ((0 == (3 & index_250X))) {
index_85X = index_250X >> 2;
if ((3 == (3 & arg2_249X))) {
v_252X = 31 & ((*((long*)(-7 + arg2_249X))) >> 2);
if ((v_252X == ((long)b_251X))) {
len_84X = (3 + ((*((long*)(-7 + arg2_249X))) >> 8)) >> 2;
if ((index_85X < 0)) {
goto L21218;}
else {
if ((index_85X < len_84X)) {
RSvalS = (*((long*)((-3 + arg2_249X) + (index_85X << 2))));
goto START;}
else {
goto L21218;}}}
else {
goto L21218;}}
else {
goto L21218;}}
else {
merged_arg0K0 = 1;
merged_arg1K1 = arg2_249X;
merged_arg1K2 = (((long)b_251X) << 2);
merged_arg1K3 = index_250X;
goto raise_exception3;}}
break;
case 93 : {
RSstackS = (4 + RSstackS);
arg2_244X = *((long*)RSstackS);
index_245X = RSvalS;
b_246X = *((unsigned char*)RScode_pointerS);
RScode_pointerS = (1 + RScode_pointerS);
if ((0 == (3 & index_245X))) {
index_87X = index_245X >> 2;
if ((3 == (3 & arg2_244X))) {
v_247X = 31 & ((*((long*)(-7 + arg2_244X))) >> 2);
if ((v_247X == ((long)b_246X))) {
len_86X = (*((long*)(-7 + arg2_244X))) >> 8;
if ((index_87X < 0)) {
goto L21093;}
else {
if ((index_87X < len_86X)) {
x_248X = (long)(*((unsigned char*)((-3 + arg2_244X) + index_87X)));
RSvalS = (x_248X << 2);
goto START;}
else {
goto L21093;}}}
else {
goto L21093;}}
else {
goto L21093;}}
else {
merged_arg0K0 = 1;
merged_arg1K1 = arg2_244X;
merged_arg1K2 = (((long)b_246X) << 2);
merged_arg1K3 = index_245X;
goto raise_exception3;}}
break;
case 94 : {
RSstackS = (4 + RSstackS);
arg2_239X = *((long*)RSstackS);
index_240X = RSvalS;
b_241X = *((unsigned char*)RScode_pointerS);
RScode_pointerS = (1 + RScode_pointerS);
if ((0 == (3 & index_240X))) {
index_89X = index_240X >> 2;
if ((3 == (3 & arg2_239X))) {
v_242X = 31 & ((*((long*)(-7 + arg2_239X))) >> 2);
if ((v_242X == ((long)b_241X))) {
len_88X = (*((long*)(-7 + arg2_239X))) >> 8;
if ((index_89X < 0)) {
goto L20966;}
else {
if ((index_89X < len_88X)) {
v_243X = (long)(*((unsigned char*)((-3 + arg2_239X) + index_89X)));
RSvalS = (9 + (((long)((v_243X))) << 8));
goto START;}
else {
goto L20966;}}}
else {
goto L20966;}}
else {
goto L20966;}}
else {
merged_arg0K0 = 1;
merged_arg1K1 = arg2_239X;
merged_arg1K2 = (((long)b_241X) << 2);
merged_arg1K3 = index_240X;
goto raise_exception3;}}
break;
case 95 : {
RSstackS = (4 + RSstackS);
arg2_235X = *((long*)RSstackS);
RSstackS = (4 + RSstackS);
stob_236X = *((long*)RSstackS);
value_237X = RSvalS;
b_238X = *((unsigned char*)RScode_pointerS);
RScode_pointerS = (1 + RScode_pointerS);
if ((3 == (3 & stob_236X))) {
v_92X = 31 & ((*((long*)(-7 + stob_236X))) >> 2);
if ((v_92X == ((long)b_238X))) {
if ((0 == (3 & arg2_235X))) {
len_91X = (3 + ((*((long*)(-7 + stob_236X))) >> 8)) >> 2;
index_90X = arg2_235X >> 2;
if ((index_90X < 0)) {
goto L24791;}
else {
if ((index_90X < len_91X)) {
if ((3 == (3 & stob_236X))) {
if ((0 == (128 & (*((long*)(-7 + stob_236X)))))) {
*((long*)((-3 + stob_236X) + (-4 & arg2_235X))) = value_237X;
RSvalS = 13;
goto START;}
else {
goto L24791;}}
else {
goto L24791;}}
else {
goto L24791;}}}
else {
goto L24791;}}
else {
goto L24791;}}
else {
goto L24791;}}
break;
case 96 : {
RSstackS = (4 + RSstackS);
arg2_96X = *((long*)RSstackS);
RSstackS = (4 + RSstackS);
stob_95X = *((long*)RSstackS);
value_94X = RSvalS;
b_93X = *((unsigned char*)RScode_pointerS);
RScode_pointerS = (1 + RScode_pointerS);
if ((3 == (3 & stob_95X))) {
v_232X = 31 & ((*((long*)(-7 + stob_95X))) >> 2);
if ((v_232X == ((long)b_93X))) {
if ((0 == (3 & arg2_96X))) {
len_233X = (*((long*)(-7 + stob_95X))) >> 8;
index_234X = arg2_96X >> 2;
if ((index_234X < 0)) {
goto L24583;}
else {
if ((index_234X < len_233X)) {
if ((0 == (3 & value_94X))) {
if ((3 == (3 & stob_95X))) {
if ((0 == (128 & (*((long*)(-7 + stob_95X)))))) {
*((unsigned char*)((-3 + stob_95X) + (arg2_96X >> 2))) = ((unsigned char)(value_94X >> 2));
RSvalS = 13;
goto START;}
else {
goto L24583;}}
else {
goto L24583;}}
else {
goto L24583;}}
else {
goto L24583;}}}
else {
goto L24583;}}
else {
goto L24583;}}
else {
goto L24583;}}
break;
case 97 : {
RSstackS = (4 + RSstackS);
arg2_228X = *((long*)RSstackS);
RSstackS = (4 + RSstackS);
stob_229X = *((long*)RSstackS);
value_230X = RSvalS;
b_231X = *((unsigned char*)RScode_pointerS);
RScode_pointerS = (1 + RScode_pointerS);
if ((3 == (3 & stob_229X))) {
v_99X = 31 & ((*((long*)(-7 + stob_229X))) >> 2);
if ((v_99X == ((long)b_231X))) {
if ((0 == (3 & arg2_228X))) {
len_98X = (*((long*)(-7 + stob_229X))) >> 8;
index_97X = arg2_228X >> 2;
if ((index_97X < 0)) {
goto L24375;}
else {
if ((index_97X < len_98X)) {
if ((9 == (255 & value_230X))) {
if ((3 == (3 & stob_229X))) {
if ((0 == (128 & (*((long*)(-7 + stob_229X)))))) {
*((unsigned char*)((-3 + stob_229X) + (arg2_228X >> 2))) = ((unsigned char)((long)(((value_230X >> 8)))));
RSvalS = 13;
goto START;}
else {
goto L24375;}}
else {
goto L24375;}}
else {
goto L24375;}}
else {
goto L24375;}}}
else {
goto L24375;}}
else {
goto L24375;}}
else {
goto L24375;}}
break;
case 98 : {
obj_102X = RSvalS;
if ((3 == (3 & obj_102X))) {
v_227X = 31 & ((*((long*)(-7 + obj_102X))) >> 2);
if ((4 == v_227X)) {
x_101X = RSvalS;
descriptor_100X = *((long*)(-3 + x_101X));
if ((17 == (255 & descriptor_100X))) {
if ((529 == (*((long*)(-3 + x_101X))))) {
arg0K0 = 5;
goto L17745;}
else {
arg0K0 = 1;
goto L17745;}}
else {
arg0K0 = 5;
goto L17745;}}
else {
goto L17736;}}
else {
goto L17736;}}
break;
case 99 : {
RSstackS = (4 + RSstackS);
arg2_225X = *((long*)RSstackS);
if ((3 == (3 & arg2_225X))) {
v_103X = 31 & ((*((long*)(-7 + arg2_225X))) >> 2);
if ((4 == v_103X)) {
x_226X = RSvalS;
if ((1 == x_226X)) {
goto L20752;}
else {
if ((5 == x_226X)) {
goto L20752;}
else {
goto L20780;}}}
else {
goto L20780;}}
else {
goto L20780;}}
break;
case 100 : {
x_104X = RSvalS;
if ((3 == (3 & x_104X))) {
if ((0 == (128 & (*((long*)(-7 + x_104X)))))) {
arg0K0 = 1;
goto L30645;}
else {
arg0K0 = 5;
goto L30645;}}
else {
arg0K0 = 5;
goto L30645;}}
break;
case 101 : {
x_224X = RSvalS;
if ((3 == (3 & x_224X))) {
if ((0 == (128 & (*((long*)(-7 + x_224X)))))) {
*((long*)(-7 + x_224X)) = (128 | (*((long*)(-7 + x_224X))));
/* goto L30660; */}
/* else {
goto L30660;} */}
/* else {
goto L30660;} */
goto START;}
/* break; */
case 102 : {
v_106X = (20 + ShpS) < SlimitS;
if (v_106X) {
arg1K0 = 0;
goto L20464;}
else {
merged_arg1K0 = 0;
collect_saving_temp_return_tag = 8;
goto collect_saving_temp;
collect_saving_temp_return_8:
okayP_105X = (20 + ShpS) < SlimitS;
if (okayP_105X) {
arg1K0 = 0;
goto L20464;}
else {
TTerror("Scheme48 heap overflow", 0, 0, 0, 0);
arg1K0 = 0;
goto L20464;}}}
break;
case 103 : {
obj_223X = RSvalS;
if ((3 == (3 & obj_223X))) {
v_107X = 31 & ((*((long*)(-7 + obj_223X))) >> 2);
if ((5 == v_107X)) {
merged_arg1K0 = RSvalS;
close_port_return_tag = 0;
goto close_port;
close_port_return_0:
RSvalS = 13;
goto START;}
else {
goto L30681;}}
else {
goto L30681;}}
break;
case 104 : {
x_221X = RSvalS;
if ((3 == (3 & x_221X))) {
v_108X = 31 & ((*((long*)(-7 + x_221X))) >> 2);
if ((5 == v_108X)) {
v_222X = 4 == (*((long*)(-3 + x_221X)));
if (v_222X) {
arg0K0 = 5;
goto L30705;}
else {
arg0K0 = 1;
goto L30705;}}
else {
arg0K0 = 1;
goto L30705;}}
else {
arg0K0 = 1;
goto L30705;}}
break;
case 105 : {
x_219X = RSvalS;
if ((3 == (3 & x_219X))) {
v_109X = 31 & ((*((long*)(-7 + x_219X))) >> 2);
if ((5 == v_109X)) {
v_220X = 8 == (*((long*)(-3 + x_219X)));
if (v_220X) {
arg0K0 = 5;
goto L30727;}
else {
arg0K0 = 1;
goto L30727;}}
else {
arg0K0 = 1;
goto L30727;}}
else {
arg0K0 = 1;
goto L30727;}}
break;
case 106 : {
p_112X = RSvalS;
if ((3 == (3 & p_112X))) {
v_215X = 31 & ((*((long*)(-7 + p_112X))) >> 2);
if ((5 == v_215X)) {
v_111X = 4 == (*((long*)(-3 + p_112X)));
if (v_111X) {
if (((*((long*)(1 + p_112X))) < 0)) {
goto L17326;}
else {
x_216X = RSvalS;
c_217X = *((long*)(5 + x_216X));
if ((1 == c_217X)) {
v_110X = *(Sopen_portsS + ((*((long*)(1 + x_216X))) >> 2));
{ int TTchar;
PS_GETC(v_110X, TTchar);
if (EOF == TTchar) {
arg1K0 = 21;
goto L17323;}
else {
unsigned char Kchar_218X = TTchar;
arg1K0 = (9 + (((long)(Kchar_218X)) << 8));
goto L17323;}}}
else {
*((long*)(5 + x_216X)) = 1;
arg1K0 = c_217X;
goto L17323;}}}
else {
goto L17326;}}
else {
goto L17326;}}
else {
goto L17326;}}
break;
case 107 : {
p_212X = RSvalS;
if ((3 == (3 & p_212X))) {
v_116X = 31 & ((*((long*)(-7 + p_212X))) >> 2);
if ((5 == v_116X)) {
v_213X = 4 == (*((long*)(-3 + p_212X)));
if (v_213X) {
if (((*((long*)(1 + p_212X))) < 0)) {
goto L17212;}
else {
x_115X = RSvalS;
c_114X = *((long*)(5 + x_115X));
if ((1 == c_114X)) {
v_214X = *(Sopen_portsS + ((*((long*)(1 + x_115X))) >> 2));
{ int TTchar;
PS_GETC(v_214X, TTchar);
if (EOF == TTchar) {
arg1K0 = 21;
goto L17204;}
else {
unsigned char Kchar_113X = TTchar;
arg1K0 = (9 + (((long)(Kchar_113X)) << 8));
goto L17204;}}}
else {
arg1K0 = c_114X;
goto L17209;}}}
else {
goto L17212;}}
else {
goto L17212;}}
else {
goto L17212;}}
break;
case 108 : {
p_119X = RSvalS;
if ((3 == (3 & p_119X))) {
v_209X = 31 & ((*((long*)(-7 + p_119X))) >> 2);
if ((5 == v_209X)) {
v_118X = 4 == (*((long*)(-3 + p_119X)));
if (v_118X) {
if (((*((long*)(1 + p_119X))) < 0)) {
goto L17067;}
else {
x_210X = RSvalS;
x_211X = *((long*)(5 + x_210X));
if ((1 == x_211X)) {
v_117X = *(Sopen_portsS + ((*((long*)(1 + x_210X))) >> 2));
if ((char_ready_p(v_117X))) {
char_ready_p(v_117X);
arg0K0 = 5;
goto L17064;}
else {
char_ready_p(v_117X);
arg0K0 = 1;
goto L17064;}}
else {
arg0K0 = 5;
goto L17064;}}}
else {
goto L17067;}}
else {
goto L17067;}}
else {
goto L17067;}}
break;
case 109 : {
RSstackS = (4 + RSstackS);
arg2_122X = *((long*)RSstackS);
if ((9 == (255 & arg2_122X))) {
p_207X = RSvalS;
if ((3 == (3 & p_207X))) {
v_121X = 31 & ((*((long*)(-7 + p_207X))) >> 2);
if ((5 == v_121X)) {
v_208X = 8 == (*((long*)(-3 + p_207X)));
if (v_208X) {
if (((*((long*)(1 + p_207X))) < 0)) {
goto L20379;}
else {
port_120X = *(Sopen_portsS + ((*((long*)(1 + RSvalS))) >> 2));
putc(((arg2_122X >> 8)), port_120X);
RSvalS = 13;
goto START;}}
else {
goto L20379;}}
else {
goto L20379;}}
else {
goto L20379;}}
else {
goto L20379;}}
break;
case 110 : {
RSstackS = (4 + RSstackS);
arg2_204X = *((long*)RSstackS);
if ((3 == (3 & arg2_204X))) {
v_126X = 31 & ((*((long*)(-7 + arg2_204X))) >> 2);
if ((15 == v_126X)) {
p_205X = RSvalS;
if ((3 == (3 & p_205X))) {
v_125X = 31 & ((*((long*)(-7 + p_205X))) >> 2);
if ((5 == v_125X)) {
v_206X = 8 == (*((long*)(-3 + p_205X)));
if (v_206X) {
if (((*((long*)(1 + p_205X))) < 0)) {
goto L20247;}
else {
port_124X = *(Sopen_portsS + ((*((long*)(1 + RSvalS))) >> 2));
count_123X = (*((long*)(-7 + arg2_204X))) >> 8;
fwrite((void *)(-3 + arg2_204X), sizeof(char), count_123X, port_124X);
RSvalS = 13;
goto START;}}
else {
goto L20247;}}
else {
goto L20247;}}
else {
goto L20247;}}
else {
goto L20247;}}
else {
goto L20247;}}
break;
case 111 : {
p_128X = RSvalS;
if ((3 == (3 & p_128X))) {
v_202X = 31 & ((*((long*)(-7 + p_128X))) >> 2);
if ((5 == v_202X)) {
v_127X = 8 == (*((long*)(-3 + p_128X)));
if (v_127X) {
if (((*((long*)(1 + p_128X))) < 0)) {
goto L16979;}
else {
port_203X = *(Sopen_portsS + ((*((long*)(1 + RSvalS))) >> 2));
fflush(port_203X);
RSvalS = 13;
goto START;}}
else {
goto L16979;}}
else {
goto L16979;}}
else {
goto L16979;}}
break;
case 112 : {
RSvalS = 529;
goto START;}
break;
case 113 : {
RSvalS = 13;
goto START;}
break;
case 114 : {
merged_arg0K0 = 0;
merged_arg1K1 = RSvalS;
goto raise_exception1;}
break;
case 115 : {
RSvalS = 1;
goto START;}
break;
case 116 : {
RSstackS = (4 + RSstackS);
arg2_192X = *((long*)RSstackS);
RSstackS = (4 + RSstackS);
arg3_193X = *((long*)RSstackS);
if ((3 == (3 & arg3_193X))) {
v_132X = 31 & ((*((long*)(-7 + arg3_193X))) >> 2);
if ((15 == v_132X)) {
obj_194X = RSvalS;
if ((3 == (3 & obj_194X))) {
v_131X = 31 & ((*((long*)(-7 + obj_194X))) >> 2);
if ((15 == v_131X)) {
x_195X = RSvalS;
merged_arg1K0 = arg3_193X;
extract_string_return_tag = 0;
goto extract_string;
extract_string_return_0:
spec_196X = extract_string_return_value;
port_197X = ps_open(spec_196X, "w");
if ((NULL == port_197X)) {
merged_arg0K0 = 0;
merged_arg1K1 = arg3_193X;
merged_arg1K2 = arg2_192X;
goto raise_exception2;}
else {
count_198X = (*((long*)(-7 + x_195X))) >> 8;
fwrite((void *)(-3 + x_195X), sizeof(char), count_198X, port_197X);
b_199X = Snewspace_beginS;
Snewspace_beginS = Soldspace_beginS;
Soldspace_beginS = b_199X;
e_200X = Snewspace_endS;
Snewspace_endS = Soldspace_endS;
Soldspace_endS = e_200X;
Ssaved_limitS = SlimitS;
Ssaved_hpS = ShpS;
SlimitS = Snewspace_endS;
ShpS = Snewspace_beginS;
Sweak_pointer_hpS = -1;
if ((3 == (3 & arg2_192X))) {
a_130X = -3 + arg2_192X;
if ((a_130X < Soldspace_beginS)) {
arg1K0 = arg2_192X;
goto L28512;}
else {
v_129X = a_130X < Soldspace_endS;
if (v_129X) {
merged_arg1K0 = arg2_192X;
copy_object_return_tag = 0;
goto copy_object;
copy_object_return_0:
v_201X = copy_object_return_value;
arg1K0 = v_201X;
goto L28512;}
else {
arg1K0 = arg2_192X;
goto L28512;}}}
else {
arg1K0 = arg2_192X;
goto L28512;}}}
else {
goto L28528;}}
else {
goto L28528;}}
else {
goto L28528;}}
else {
goto L28528;}}
break;
case 117 : {
RSvalS = 13;
merged_arg1K0 = 0;
collect_saving_temp_return_tag = 9;
goto collect_saving_temp;
collect_saving_temp_return_9:
RSvalS = 13;
goto START;}
break;
case 118 : {
RSstackS = (4 + RSstackS);
arg2_135X = *((long*)RSstackS);
if ((0 == (3 & arg2_135X))) {
x_188X = RSvalS;
key_189X = arg2_135X >> 2;
if ((0 == key_189X)) {
n_191X = (SlimitS - ShpS) >> 2;
RSvalS = (n_191X << 2);
goto START;}
else {
if ((1 == key_189X)) {
bytes_133X = Snewspace_endS - Snewspace_beginS;
RSvalS = (-4 & (3 + bytes_133X));
goto START;}
else {
if ((2 == key_189X)) {
n_190X = Sstack_endS - Sstack_beginS;
RSvalS = (n_190X << 2);
goto START;}
else {
if ((3 == key_189X)) {
if ((0 == (3 & x_188X))) {
old_134X = Sminimum_recovered_spaceS;
Sminimum_recovered_spaceS = (x_188X >> 2);
RSvalS = (old_134X << 2);
goto START;}
else {
merged_arg0K0 = 0;
merged_arg1K1 = (key_189X << 2);
merged_arg1K2 = x_188X;
goto raise_exception2;}}
else {
if ((4 == key_189X)) {
RSvalS = (Sgc_countS << 2);
goto START;}
else {
merged_arg0K0 = 0;
merged_arg1K1 = (key_189X << 2);
merged_arg1K2 = x_188X;
goto raise_exception2;}}}}}}
else {
merged_arg0K0 = 0;
merged_arg1K1 = arg2_135X;
merged_arg1K2 = RSvalS;
goto raise_exception2;}}
break;
case 119 : {
obj_185X = RSvalS;
if ((3 == (3 & obj_185X))) {
v_136X = 31 & ((*((long*)(-7 + obj_185X))) >> 2);
if ((2 == v_136X)) {
x_186X = RSvalS;
start_hp_187X = ShpS;
arg1K0 = Snewspace_beginS;
goto L16862;}
else {
goto L16833;}}
else {
goto L16833;}}
break;
case 120 : {
if ((0 == (3 & RSvalS))) {
type_138X = RSvalS >> 2;
start_hp_137X = ShpS;
*((long*)ShpS) = 0;
ShpS = (4 + ShpS);
arg1K0 = Snewspace_beginS;
goto L9053;}
else {
merged_arg0K0 = 0;
merged_arg1K1 = RSvalS;
goto raise_exception1;}}
break;
case 121 : {
RSvalS = Sdynamic_stateS;
goto START;}
break;
case 122 : {
Sdynamic_stateS = RSvalS;
RSvalS = 13;
goto START;}
break;
case 123 : {
obj_139X = RSvalS;
if ((3 == (3 & obj_139X))) {
v_184X = 31 & ((*((long*)(-7 + obj_139X))) >> 2);
if ((3 == v_184X)) {
Sexception_handlerS = RSvalS;
goto START;}
else {
goto L30852;}}
else {
goto L30852;}}
break;
case 124 : {
obj_141X = RSvalS;
if ((3 == (3 & obj_141X))) {
v_183X = 31 & ((*((long*)(-7 + obj_141X))) >> 2);
if ((2 == v_183X)) {
v_140X = (3 + ((*((long*)(-7 + RSvalS))) >> 8)) >> 2;
if ((v_140X < 3)) {
goto L28783;}
else {
Sinterrupt_handlersS = RSvalS;
goto START;}}
else {
goto L28783;}}
else {
goto L28783;}}
break;
case 125 : {
temp_182X = Senabled_interruptsS;
Senabled_interruptsS = (RSvalS >> 2);
RSvalS = (temp_182X << 2);
goto START;}
break;
case 126 : {
RSstackS = (4 + RSstackS);
Senabled_interruptsS = ((*((long*)RSstackS)) >> 2);
RSstackS = (4 + RSstackS);
SnargsS = ((*((long*)RSstackS)) >> 2);
RSstackS = (4 + RSstackS);
RSenvS = (*((long*)RSstackS));
RSstackS = (4 + RSstackS);
tem_142X = *((long*)RSstackS);
StemplateS = tem_142X;
RScode_pointerS = (-3 + (*((long*)(-3 + tem_142X))));
goto START;}
break;
case 127 : {
if ((0 == (3 & RSvalS))) {
p_180X = RSvalS;
Spending_interruptsS = (-2 & Spending_interruptsS);
SvalS = RSvalS;
SstackS = RSstackS;
Scode_pointerS = RScode_pointerS;
SenvS = RSenvS;
n_181X = ps_schedule_interrupt((p_180X >> 2));
RSvalS = SvalS;
RSstackS = SstackS;
RScode_pointerS = Scode_pointerS;
RSenvS = SenvS;
RSvalS = (n_181X << 2);
goto START;}
else {
merged_arg0K0 = 0;
merged_arg1K1 = RSvalS;
goto raise_exception1;}}
break;
case 128 : {
obj_147X = RSvalS;
if ((3 == (3 & obj_147X))) {
v_177X = 31 & ((*((long*)(-7 + obj_147X))) >> 2);
if ((12 == v_177X)) {
x_146X = RSvalS;
value_145X = *((long*)(1 + x_146X));
name_144X = *((long*)(-3 + x_146X));
if ((3 == (3 & name_144X))) {
v_178X = 31 & ((*((long*)(-7 + name_144X))) >> 2);
if ((15 == v_178X)) {
if ((3 == (3 & value_145X))) {
v_179X = 31 & ((*((long*)(-7 + value_145X))) >> 2);
if ((16 == v_179X)) {
SvalS = RSvalS;
SstackS = RSstackS;
Scode_pointerS = RScode_pointerS;
SenvS = RSenvS;
v_143X = lookup_external_name((-3 + name_144X), (-3 + value_145X));
RSvalS = SvalS;
RSstackS = SstackS;
RScode_pointerS = Scode_pointerS;
RSenvS = SenvS;
if (v_143X) {
RSvalS = 13;
goto START;}
else {
goto L16518;}}
else {
goto L16518;}}
else {
goto L16518;}}
else {
goto L16518;}}
else {
goto L16518;}}
else {
goto L16521;}}
else {
goto L16521;}}
break;
case 129 : {
index_175X = -1 + SnargsS;
proc_176X = *((long*)(4 + (RSstackS + (index_175X << 2))));
if ((3 == (3 & proc_176X))) {
v_148X = 31 & ((*((long*)(-7 + proc_176X))) >> 2);
if ((12 == v_148X)) {
SnargsS = (-1 + SnargsS);
RSvalS = proc_176X;
SvalS = RSvalS;
SstackS = RSstackS;
Scode_pointerS = RScode_pointerS;
SenvS = RSenvS;
TTreturn_value = 1;
return(0L);}
else {
goto L30907;}}
else {
goto L30907;}}
break;
case 130 : {
RSstackS = (4 + RSstackS);
arg2_151X = *((long*)RSstackS);
if ((0 == (3 & arg2_151X))) {
x_172X = RSvalS;
key_173X = arg2_151X >> 2;
if ((0 == key_173X)) {
SvalS = RSvalS;
SstackS = RSstackS;
Scode_pointerS = RScode_pointerS;
SenvS = RSenvS;
n_149X = ps_ticks_per_second();
RSvalS = SvalS;
RSstackS = SstackS;
RScode_pointerS = Scode_pointerS;
RSenvS = SenvS;
RSvalS = (n_149X << 2);
goto START;}
else {
if ((1 == key_173X)) {
SvalS = RSvalS;
SstackS = RSstackS;
Scode_pointerS = RScode_pointerS;
SenvS = RSenvS;
n_174X = ps_run_time();
RSvalS = SvalS;
RSstackS = SstackS;
RScode_pointerS = Scode_pointerS;
RSenvS = SenvS;
RSvalS = (n_174X << 2);
goto START;}
else {
if ((2 == key_173X)) {
SvalS = RSvalS;
SstackS = RSstackS;
Scode_pointerS = RScode_pointerS;
SenvS = RSenvS;
n_150X = ps_real_time();
RSvalS = SvalS;
RSstackS = SstackS;
RScode_pointerS = Scode_pointerS;
RSenvS = SenvS;
RSvalS = (n_150X << 2);
goto START;}
else {
merged_arg0K0 = 0;
merged_arg1K1 = (key_173X << 2);
merged_arg1K2 = x_172X;
goto raise_exception2;}}}}
else {
merged_arg0K0 = 0;
merged_arg1K1 = arg2_151X;
merged_arg1K2 = RSvalS;
goto raise_exception2;}}
break;
case 131 : {
RSstackS = (4 + RSstackS);
arg2_171X = *((long*)RSstackS);
if ((0 == (3 & arg2_171X))) {
x_154X = RSvalS;
key_153X = arg2_171X >> 2;
SvalS = RSvalS;
SstackS = RSstackS;
Scode_pointerS = RScode_pointerS;
SenvS = RSenvS;
return_value_152X = extended_vm(key_153X, x_154X);
RSvalS = SvalS;
RSstackS = SstackS;
RScode_pointerS = Scode_pointerS;
RSenvS = SenvS;
if ((17 == (255 & return_value_152X))) {
merged_arg0K0 = 0;
merged_arg1K1 = (key_153X << 2);
merged_arg1K2 = x_154X;
goto raise_exception2;}
else {
RSvalS = return_value_152X;
goto START;}}
else {
merged_arg0K0 = 0;
merged_arg1K1 = arg2_171X;
merged_arg1K2 = RSvalS;
goto raise_exception2;}}
break;
case 132 : {
RSstackS = (4 + RSstackS);
arg2_170X = *((long*)RSstackS);
if ((0 == (3 & arg2_170X))) {
RSvalS = RSvalS;
SvalS = RSvalS;
SstackS = RSstackS;
Scode_pointerS = RScode_pointerS;
SenvS = RSenvS;
TTreturn_value = 0;
return(0L);}
else {
merged_arg0K0 = 0;
merged_arg1K1 = arg2_170X;
merged_arg1K2 = RSvalS;
goto raise_exception2;}}
break;
case 133 : {
RSstackS = (4 + RSstackS);
arg2_167X = *((long*)RSstackS);
if ((3 == (3 & arg2_167X))) {
v_156X = 31 & ((*((long*)(-7 + arg2_167X))) >> 2);
if ((15 == v_156X)) {
obj_168X = RSvalS;
if ((3 == (3 & obj_168X))) {
v_155X = 31 & ((*((long*)(-7 + obj_168X))) >> 2);
if ((15 == v_155X)) {
merged_arg1K0 = arg2_167X;
merged_arg1K1 = RSvalS;
stob_equalP_return_tag = 0;
goto stob_equalP;
stob_equalP_return_0:
x_169X = stob_equalP_return_value;
if (x_169X) {
arg0K0 = 5;
goto L19651;}
else {
arg0K0 = 1;
goto L19651;}}
else {
goto L19642;}}
else {
goto L19642;}}
else {
goto L19642;}}
else {
goto L19642;}}
break;
case 134 : {
obj_159X = RSvalS;
if ((3 == (3 & obj_159X))) {
v_166X = 31 & ((*((long*)(-7 + obj_159X))) >> 2);
if ((15 == v_166X)) {
x_158X = RSvalS;
n_157X = (*((long*)(-7 + x_158X))) >> 8;
arg1K0 = 0;
arg1K1 = 0;
goto L16368;}
else {
goto L16346;}}
else {
goto L16346;}}
break;
case 135 : {
space_163X = 1 + ((3 + RSvalS) >> 2);
v_164X = (ShpS + (space_163X << 2)) < SlimitS;
if (v_164X) {
goto L19375;}
else {
merged_arg1K0 = 0;
collect_saving_temp_return_tag = 10;
goto collect_saving_temp;
collect_saving_temp_return_10:
okayP_165X = (ShpS + (space_163X << 2)) < SlimitS;
if (okayP_165X) {
goto L19375;}
else {
TTerror("Scheme48 heap overflow", 0, 0, 0, 0);
goto L19375;}}}
break;
case 136 : {
v_161X = (20 + ShpS) < SlimitS;
if (v_161X) {
goto L19255;}
else {
merged_arg1K0 = 0;
collect_saving_temp_return_tag = 11;
goto collect_saving_temp;
collect_saving_temp_return_11:
okayP_160X = (20 + ShpS) < SlimitS;
if (okayP_160X) {
goto L19255;}
else {
TTerror("Scheme48 heap overflow", 0, 0, 0, 0);
goto L19255;}}}
break;
}}
L30821: {
vector_344X = arg1K0;
if ((1 == vector_344X)) {
merged_arg0K0 = 0;
merged_arg1K1 = (type_138X << 2);
goto raise_exception1;}
else {
RSvalS = vector_344X;
goto START;}}
L8999: {
ShpS = start_hp_137X;
arg1K0 = 1;
goto L30821;}
L9053: {
addr_345X = arg1K0;
if ((addr_345X < start_hp_137X)) {
d_347X = *((long*)addr_345X);
if ((2 == (3 & d_347X))) {
if ((type_138X == (31 & (d_347X >> 2)))) {
v_346X = (16 + ShpS) < SlimitS;
if (v_346X) {
*((long*)ShpS) = (7 + addr_345X);
ShpS = (4 + ShpS);
arg1K0 = (4 + (addr_345X + (-4 & (3 + (d_347X >> 8)))));
goto L9053;}
else {
goto L8999;}}
else {
arg1K0 = (4 + (addr_345X + (-4 & (3 + (d_347X >> 8)))));
goto L9053;}}
else {
fputs("heap is in an inconsistent state.", Scurrent_output_portS);
goto L8999;}}
else {
*((long*)start_hp_137X) = (-1014 + ((ShpS - start_hp_137X) << 8));
arg1K0 = (7 + start_hp_137X);
goto L30821;}}
L8142: {
h_348X = arg1K0;
arg1K0 = (4 + (addr_349X + (-4 & (3 + (h_348X >> 8)))));
goto L8120;}
L8120: {
addr_349X = arg1K0;
if ((addr_349X < ShpS)) {
d_351X = *((long*)addr_349X);
if ((2 == (3 & d_351X))) {
arg1K0 = d_351X;
goto L8142;}
else {
h_350X = *((long*)(-7 + d_351X));
*((long*)addr_349X) = h_350X;
arg1K0 = h_350X;
goto L8142;}}
else {
RSvalS = (size_405X << 2);
goto START;}}
L19277: {
val_352X = arg1K0;
RSvalS = val_352X;
goto START;}
L12298: {
i_353X = arg1K0;
h_354X = arg1K1;
if ((i_353X < n_379X)) {
v_357X = (long)(*((unsigned char*)((-3 + arg2_375X) + i_353X)));
arg1K0 = (1 + i_353X);
arg1K1 = (h_354X + ((long)((v_357X))));
goto L12298;}
else {
index_356X = h_354X & (-1 + v_378X);
bucket_355X = *((long*)((-3 + table_377X) + (index_356X << 2)));
arg1K0 = bucket_355X;
goto L12184;}}
L12184: {
b_358X = arg1K0;
if ((25 == b_358X)) {
*((long*)ShpS) = 1030;
ShpS = (4 + ShpS);
new_360X = 3 + ShpS;
ShpS = (4 + ShpS);
*((long*)(-4 + ShpS)) = 0;
*((long*)(-3 + new_360X)) = arg2_375X;
*((long*)ShpS) = 2050;
ShpS = (4 + ShpS);
new_361X = 3 + ShpS;
ShpS = (8 + ShpS);
*((long*)(-4 + ShpS)) = 0;
*((long*)(-3 + new_361X)) = new_360X;
*((long*)(1 + new_361X)) = bucket_355X;
*((long*)((-3 + table_377X) + (index_356X << 2))) = new_361X;
arg1K0 = new_360X;
goto L19277;}
else {
merged_arg1K0 = arg2_375X;
merged_arg1K1 = (*((long*)(-3 + (*((long*)(-3 + b_358X))))));
stob_equalP_return_tag = 1;
goto stob_equalP;
stob_equalP_return_1:
v_359X = stob_equalP_return_value;
if (v_359X) {
arg1K0 = (*((long*)(-3 + b_358X)));
goto L19277;}
else {
arg1K0 = (*((long*)(1 + b_358X)));
goto L12184;}}}
L13252: {
i_362X = arg1K0;
h_363X = arg1K1;
if ((i_362X < n_397X)) {
v_366X = (long)(*((unsigned char*)((-3 + s_396X) + i_362X)));
arg1K0 = (1 + i_362X);
arg1K1 = (h_363X + ((long)((v_366X))));
goto L13252;}
else {
index_365X = h_363X & (-1 + v_395X);
bucket_364X = *((long*)((-3 + x_186X) + (index_365X << 2)));
arg1K0 = bucket_364X;
goto L13150;}}
L13150: {
b_367X = arg1K0;
if ((25 == b_367X)) {
*((long*)ShpS) = 2050;
ShpS = (4 + ShpS);
new_368X = 3 + ShpS;
ShpS = (8 + ShpS);
*((long*)(-4 + ShpS)) = 0;
*((long*)(-3 + new_368X)) = obj_394X;
*((long*)(1 + new_368X)) = bucket_364X;
*((long*)((-3 + x_186X) + (index_365X << 2))) = new_368X;
arg1K0 = (4 + (addr_391X + (-4 & (3 + (d_393X >> 8)))));
goto L16862;}
else {
if ((obj_394X == (*((long*)(-3 + b_367X))))) {
arg1K0 = (4 + (addr_391X + (-4 & (3 + (d_393X >> 8)))));
goto L16862;}
else {
arg1K0 = (*((long*)(1 + b_367X)));
goto L13150;}}}
L9932: {
stob_369X = arg1K0;
from_370X = 4 + RSstackS;
arg1K0 = from_370X;
arg1K1 = (1 + stob_369X);
goto L9971;}
L9971: {
from_371X = arg1K0;
to_372X = arg1K1;
if ((from_371X < (from_370X + (((long)b_532X) << 2)))) {
*((long*)to_372X) = (*((long*)from_371X));
arg1K0 = (4 + from_371X);
arg1K1 = (4 + to_372X);
goto L9971;}
else {
RSstackS = (RSstackS - ((0 - ((long)b_532X)) << 2));
*((long*)(-3 + stob_369X)) = RSenvS;
RSenvS = stob_369X;
goto START;}}
L19255: {
RSstackS = (4 + RSstackS);
arg2_375X = *((long*)RSstackS);
if ((3 == (3 & arg2_375X))) {
v_374X = 31 & ((*((long*)(-7 + arg2_375X))) >> 2);
if ((15 == v_374X)) {
obj_376X = RSvalS;
if ((3 == (3 & obj_376X))) {
v_373X = 31 & ((*((long*)(-7 + obj_376X))) >> 2);
if ((2 == v_373X)) {
table_377X = RSvalS;
v_378X = (3 + ((*((long*)(-7 + table_377X))) >> 8)) >> 2;
n_379X = (*((long*)(-7 + arg2_375X))) >> 8;
arg1K0 = 0;
arg1K1 = 0;
goto L12298;}
else {
goto L19280;}}
else {
goto L19280;}}
else {
goto L19280;}}
else {
goto L19280;}}
L19280: {
merged_arg0K0 = 0;
merged_arg1K1 = arg2_375X;
merged_arg1K2 = RSvalS;
goto raise_exception2;}
L19375: {
RSstackS = (4 + RSstackS);
arg2_381X = *((long*)RSstackS);
if ((0 == (3 & RSvalS))) {
n_382X = RSvalS >> 2;
if ((3 == (3 & arg2_381X))) {
v_380X = 31 & ((*((long*)(-7 + arg2_381X))) >> 2);
if ((0 == v_380X)) {
goto L19499;}
else {
goto L19403;}}
else {
goto L19403;}}
else {
merged_arg0K0 = 0;
merged_arg1K1 = arg2_381X;
merged_arg1K2 = RSvalS;
goto raise_exception2;}}
L19403: {
if ((25 == arg2_381X)) {
goto L19499;}
else {
merged_arg0K0 = 0;
merged_arg1K1 = arg2_381X;
merged_arg1K2 = (n_382X << 2);
goto raise_exception2;}}
L19499: {
*((long*)ShpS) = (62 + (n_382X << 8));
ShpS = (4 + ShpS);
new_383X = 3 + ShpS;
ShpS = (ShpS + (-4 & (3 + n_382X)));
if ((0 < n_382X)) {
*((long*)(-4 + ShpS)) = 0;
arg1K0 = new_383X;
goto L19420;}
else {
arg1K0 = new_383X;
goto L19420;}}
L19420: {
obj_384X = arg1K0;
arg1K0 = arg2_381X;
arg1K1 = (-1 + n_382X);
goto L19422;}
L19422: {
l_385X = arg1K0;
i_386X = arg1K1;
if ((i_386X < 0)) {
RSvalS = obj_384X;
goto START;}
else {
*((unsigned char*)((-3 + obj_384X) + i_386X)) = ((unsigned char)((long)((((*((long*)(-3 + l_385X))) >> 8)))));
arg1K0 = (*((long*)(1 + l_385X)));
arg1K1 = (-1 + i_386X);
goto L19422;}}
L16346: {
merged_arg0K0 = 0;
merged_arg1K1 = RSvalS;
goto raise_exception1;}
L16368: {
i_387X = arg1K0;
h_388X = arg1K1;
if ((i_387X < n_157X)) {
v_389X = (long)(*((unsigned char*)((-3 + x_158X) + i_387X)));
arg1K0 = (1 + i_387X);
arg1K1 = (h_388X + ((long)((v_389X))));
goto L16368;}
else {
RSvalS = (h_388X << 2);
goto START;}}
L19642: {
merged_arg0K0 = 0;
merged_arg1K1 = arg2_167X;
merged_arg1K2 = RSvalS;
goto raise_exception2;}
L19651: {
v_390X = arg0K0;
RSvalS = ((long)v_390X);
goto START;}
L16521: {
merged_arg0K0 = 0;
merged_arg1K1 = RSvalS;
goto raise_exception1;}
L16518: {
merged_arg0K0 = 0;
merged_arg1K1 = x_146X;
goto raise_exception1;}
L28783: {
merged_arg0K0 = 0;
merged_arg1K1 = RSvalS;
goto raise_exception1;}
L16833: {
merged_arg0K0 = 0;
merged_arg1K1 = RSvalS;
goto raise_exception1;}
L16863: {
ShpS = start_hp_187X;
merged_arg0K0 = 0;
goto raise_exception;}
L16862: {
addr_391X = arg1K0;
if ((addr_391X < start_hp_187X)) {
d_393X = *((long*)addr_391X);
if ((2 == (3 & d_393X))) {
if ((1 == (31 & (d_393X >> 2)))) {
v_392X = (12 + ShpS) < SlimitS;
if (v_392X) {
obj_394X = 7 + addr_391X;
v_395X = (3 + ((*((long*)(-7 + x_186X))) >> 8)) >> 2;
s_396X = *((long*)(-3 + obj_394X));
n_397X = (*((long*)(-7 + s_396X))) >> 8;
arg1K0 = 0;
arg1K1 = 0;
goto L13252;}
else {
goto L16863;}}
else {
arg1K0 = (4 + (addr_391X + (-4 & (3 + (d_393X >> 8)))));
goto L16862;}}
else {
fputs("heap is in an inconsistent state.", Scurrent_output_portS);
goto L16863;}}
else {
RSvalS = 13;
goto START;}}
L28528: {
merged_arg0K0 = 0;
merged_arg1K1 = arg3_193X;
merged_arg1K2 = arg2_192X;
merged_arg1K3 = RSvalS;
goto raise_exception3;}
L28512: {
resume_proc_398X = arg1K0;
SvalS = RSvalS;
SstackS = RSstackS;
Scode_pointerS = RScode_pointerS;
SenvS = RSenvS;
do_gc();
RSvalS = SvalS;
RSstackS = SstackS;
RScode_pointerS = Scode_pointerS;
RSenvS = SenvS;
arg1K0 = 2;
goto L28554;}
L28565: {
new_399X = arg1K0;
*(Sopen_vm_portsS + i_400X) = new_399X;
goto L28558;}
L28558: {
arg1K0 = (1 + i_400X);
goto L28554;}
L28554: {
i_400X = arg1K0;
if ((i_400X == Snumber_of_portsS)) {
fputs("This is a Scheme48 heap image file.", port_197X);
putc(10, port_197X);
putc(12, port_197X);
putc(10, port_197X);
merged_arg1K0 = 14;
merged_arg2K1 = port_197X;
write_number_return_tag = 0;
goto write_number;
write_number_return_0:
merged_arg1K0 = 4;
merged_arg2K1 = port_197X;
write_number_return_tag = 1;
goto write_number;
write_number_return_1:
merged_arg1K0 = (Snewspace_beginS >> 2);
merged_arg2K1 = port_197X;
write_number_return_tag = 2;
goto write_number;
write_number_return_2:
merged_arg1K0 = (ShpS >> 2);
merged_arg2K1 = port_197X;
write_number_return_tag = 3;
goto write_number;
write_number_return_3:
merged_arg1K0 = resume_proc_398X;
merged_arg2K1 = port_197X;
write_number_return_tag = 4;
goto write_number;
write_number_return_4:
putc(12, port_197X);
*((long*)ShpS) = 1;
count_403X = (4 + ShpS) - ShpS;
fwrite((void *)ShpS, sizeof(char), count_403X, port_197X);
count_404X = ShpS - Snewspace_beginS;
fwrite((void *)Snewspace_beginS, sizeof(char), count_404X, port_197X);
size_405X = ShpS - Snewspace_beginS;
fclose(port_197X);
b_406X = Snewspace_beginS;
Snewspace_beginS = Soldspace_beginS;
Soldspace_beginS = b_406X;
e_407X = Snewspace_endS;
Snewspace_endS = Soldspace_endS;
Soldspace_endS = e_407X;
SlimitS = Ssaved_limitS;
ShpS = Ssaved_hpS;
arg1K0 = Snewspace_beginS;
goto L8120;}
else {
port_402X = *(Sopen_vm_portsS + i_400X);
if ((1 == port_402X)) {
goto L28558;}
else {
header_401X = *((long*)(-7 + port_402X));
if ((3 == (3 & header_401X))) {
arg1K0 = header_401X;
goto L28565;}
else {
merged_arg1K0 = port_402X;
close_port_noisily_return_tag = 0;
goto close_port_noisily;
close_port_noisily_return_0:
arg1K0 = 1;
goto L28565;}}}}
L16979: {
merged_arg0K0 = 0;
merged_arg1K1 = RSvalS;
goto raise_exception1;}
L20247: {
merged_arg0K0 = 0;
merged_arg1K1 = arg2_204X;
merged_arg1K2 = RSvalS;
goto raise_exception2;}
L20379: {
merged_arg0K0 = 0;
merged_arg1K1 = arg2_122X;
merged_arg1K2 = RSvalS;
goto raise_exception2;}
L17067: {
merged_arg0K0 = 0;
merged_arg1K1 = RSvalS;
goto raise_exception1;}
L17064: {
v_408X = arg0K0;
RSvalS = ((long)v_408X);
goto START;}
L17212: {
merged_arg0K0 = 0;
merged_arg1K1 = RSvalS;
goto raise_exception1;}
L17209: {
val_409X = arg1K0;
RSvalS = val_409X;
goto START;}
L17204: {
c_410X = arg1K0;
*((long*)(5 + x_115X)) = c_410X;
arg1K0 = c_410X;
goto L17209;}
L17326: {
merged_arg0K0 = 0;
merged_arg1K1 = RSvalS;
goto raise_exception1;}
L17323: {
val_411X = arg1K0;
RSvalS = val_411X;
goto START;}
L20464: {
key_412X = arg1K0;
RSstackS = (4 + RSstackS);
arg2_413X = *((long*)RSstackS);
if ((3 == (3 & arg2_413X))) {
v_414X = 31 & ((*((long*)(-7 + arg2_413X))) >> 2);
if ((15 == v_414X)) {
if ((0 == (3 & RSvalS))) {
mode_415X = RSvalS >> 2;
arg1K0 = 0;
goto L20653;}
else {
goto L20502;}}
else {
goto L20502;}}
else {
goto L20502;}}
L20502: {
merged_arg0K0 = 0;
merged_arg1K1 = arg2_413X;
merged_arg1K2 = RSvalS;
goto raise_exception2;}
L20653: {
i_416X = arg1K0;
if ((i_416X < Snumber_of_portsS)) {
x_417X = *(Sopen_vm_portsS + i_416X);
if ((1 == x_417X)) {
arg1K0 = i_416X;
arg1K1 = arg2_413X;
goto L20538;}
else {
arg1K0 = (1 + i_416X);
goto L20653;}}
else {
arg1K0 = -1;
arg1K1 = arg2_413X;
goto L20538;}}
L20640: {
i_418X = arg1K0;
if ((i_418X < Snumber_of_portsS)) {
x_419X = *(Sopen_vm_portsS + i_418X);
if ((1 == x_419X)) {
arg1K0 = i_418X;
goto L20582;}
else {
arg1K0 = (1 + i_418X);
goto L20640;}}
else {
arg1K0 = -1;
goto L20582;}}
L20610: {
i_420X = arg1K0;
if ((i_420X < Snumber_of_portsS)) {
*(new_ports_425X + i_420X) = (*(Sopen_portsS + i_420X));
*(new_vm_ports_426X + i_420X) = (*(Sopen_vm_portsS + i_420X));
arg1K0 = (1 + i_420X);
goto L20610;}
else {
free(Sopen_portsS);
free(Sopen_vm_portsS);
Sopen_portsS = new_ports_425X;
Sopen_vm_portsS = new_vm_ports_426X;
Snumber_of_portsS = new_count_423X;
arg1K0 = old_count_424X;
arg1K1 = filename_433X;
goto L20538;}}
L20604: {
i_421X = arg1K0;
if ((i_421X < new_count_423X)) {
*(new_vm_ports_426X + i_421X) = 1;
arg1K0 = (1 + i_421X);
goto L20604;}
else {
arg1K0 = 0;
goto L20610;}}
L20593: {
merged_arg0K0 = 0;
merged_arg1K1 = filename_433X;
merged_arg1K2 = (key_412X << 2);
goto raise_exception2;}
L20582: {
index_422X = arg1K0;
if ((index_422X < 0)) {
new_count_423X = 8 + Snumber_of_portsS;
old_count_424X = Snumber_of_portsS;
new_ports_425X = (FILE **)malloc(sizeof(FILE *) * new_count_423X);
new_vm_ports_426X = (long*)malloc(sizeof(long) * new_count_423X);
if ((NULL == new_ports_425X)) {
goto L20593;}
else {
if ((NULL == new_vm_ports_426X)) {
goto L20593;}
else {
arg1K0 = 0;
goto L20604;}}}
else {
arg1K0 = index_422X;
arg1K1 = filename_433X;
goto L20538;}}
L20541: {
port_427X = arg2K0;
if ((NULL == port_427X)) {
RSvalS = 1;
goto START;}
else {
*((long*)ShpS) = 4118;
ShpS = (4 + ShpS);
new_428X = 3 + ShpS;
ShpS = (16 + ShpS);
*((long*)(-4 + ShpS)) = 0;
*((long*)(-3 + new_428X)) = (mode_415X << 2);
*((long*)(1 + new_428X)) = (index_429X << 2);
*((long*)(5 + new_428X)) = 1;
*((long*)(9 + new_428X)) = filename_430X;
*(Sopen_portsS + index_429X) = port_427X;
*(Sopen_vm_portsS + index_429X) = new_428X;
RSvalS = new_428X;
goto START;}}
L20538: {
index_429X = arg1K0;
filename_430X = arg1K1;
if ((index_429X < 0)) {
merged_arg1K0 = filename_430X;
collect_saving_temp_return_tag = 12;
goto collect_saving_temp;
collect_saving_temp_return_12:
filename_433X = collect_saving_temp_return_value;
arg1K0 = 0;
goto L20640;}
else {
if ((2 == mode_415X)) {
merged_arg1K0 = filename_430X;
extract_string_return_tag = 1;
goto extract_string;
extract_string_return_1:
spec_431X = extract_string_return_value;
arg2K0 = (ps_open(spec_431X, "w"));
goto L20541;}
else {
merged_arg1K0 = filename_430X;
extract_string_return_tag = 2;
goto extract_string;
extract_string_return_2:
spec_432X = extract_string_return_value;
arg2K0 = (ps_open(spec_432X, "r"));
goto L20541;}}}
L20752: {
if ((1 == RSvalS)) {
*((long*)(-3 + arg2_225X)) = 273;
goto L20777;}
else {
if ((17 == (255 & (*((long*)(-3 + arg2_225X)))))) {
*((long*)(-3 + arg2_225X)) = 529;
goto L20777;}
else {
goto L20777;}}}
L20780: {
merged_arg0K0 = 0;
merged_arg1K1 = arg2_225X;
merged_arg1K2 = RSvalS;
goto raise_exception2;}
L20777: {
RSvalS = 13;
goto START;}
L17736: {
merged_arg0K0 = 0;
merged_arg1K1 = RSvalS;
goto raise_exception1;}
L17745: {
v_434X = arg0K0;
RSvalS = ((long)v_434X);
goto START;}
L24375: {
merged_arg0K0 = 1;
merged_arg1K1 = stob_229X;
merged_arg1K2 = (((long)b_231X) << 2);
merged_arg1K3 = arg2_228X;
merged_arg1K4 = value_230X;
goto raise_exception4;}
L24583: {
merged_arg0K0 = 1;
merged_arg1K1 = stob_95X;
merged_arg1K2 = (((long)b_93X) << 2);
merged_arg1K3 = arg2_96X;
merged_arg1K4 = value_94X;
goto raise_exception4;}
L24791: {
merged_arg0K0 = 1;
merged_arg1K1 = stob_236X;
merged_arg1K2 = (((long)b_238X) << 2);
merged_arg1K3 = arg2_235X;
merged_arg1K4 = value_237X;
goto raise_exception4;}
L20966: {
merged_arg0K0 = 1;
merged_arg1K1 = arg2_239X;
merged_arg1K2 = (((long)b_241X) << 2);
merged_arg1K3 = index_240X;
goto raise_exception3;}
L21093: {
merged_arg0K0 = 1;
merged_arg1K1 = arg2_244X;
merged_arg1K2 = (((long)b_246X) << 2);
merged_arg1K3 = index_245X;
goto raise_exception3;}
L21218: {
merged_arg0K0 = 1;
merged_arg1K1 = arg2_249X;
merged_arg1K2 = (((long)b_251X) << 2);
merged_arg1K3 = index_250X;
goto raise_exception3;}
L24993: {
merged_arg0K0 = 2;
merged_arg1K1 = arg2_253X;
merged_arg1K2 = (((long)b_255X) << 2);
merged_arg1K3 = (((long)b_256X) << 2);
merged_arg1K4 = x_254X;
goto raise_exception4;}
L23406: {
merged_arg0K0 = 2;
merged_arg1K1 = x_82X;
merged_arg1K2 = (((long)b_81X) << 2);
merged_arg1K3 = (((long)b_80X) << 2);
goto raise_exception3;}
L21310: {
merged_arg0K0 = 1;
merged_arg1K1 = x_258X;
merged_arg1K2 = (((long)b_259X) << 2);
goto raise_exception2;}
L21396: {
merged_arg0K0 = 1;
merged_arg1K1 = x_78X;
merged_arg1K2 = (((long)b_77X) << 2);
goto raise_exception2;}
L23512: {
merged_arg0K0 = 1;
merged_arg1K1 = (((long)b_266X) << 2);
merged_arg1K2 = (len_264X << 2);
merged_arg1K3 = init_265X;
goto raise_exception3;}
L23533: {
val_435X = arg1K0;
arg1K0 = (-1 + len_264X);
goto L23535;}
L23535: {
i_436X = arg1K0;
if ((i_436X < 0)) {
RSvalS = val_435X;
goto START;}
else {
*((unsigned char*)((-3 + val_435X) + i_436X)) = ((unsigned char)((long)(((init_438X >> 8)))));
arg1K0 = (-1 + i_436X);
goto L23535;}}
L23519: {
okayP_437X = arg3K0;
init_438X = arg1K1;
if (okayP_437X) {
*((long*)ShpS) = (2 + (((len_264X << 6) + ((long)b_266X)) << 2));
ShpS = (4 + ShpS);
new_439X = 3 + ShpS;
ShpS = (ShpS + (-4 & (3 + len_264X)));
if ((0 < len_264X)) {
*((long*)(-4 + ShpS)) = 0;
arg1K0 = new_439X;
goto L23533;}
else {
arg1K0 = new_439X;
goto L23533;}}
else {
merged_arg0K0 = 1;
merged_arg1K1 = (((long)b_266X) << 2);
merged_arg1K2 = (len_264X << 2);
merged_arg1K3 = init_265X;
goto raise_exception3;}}
L23766: {
merged_arg0K0 = 1;
merged_arg1K1 = (((long)b_67X) << 2);
merged_arg1K2 = (len_69X << 2);
merged_arg1K3 = init_68X;
goto raise_exception3;}
L23787: {
val_440X = arg1K0;
arg1K0 = (-1 + len_69X);
goto L23789;}
L23789: {
i_441X = arg1K0;
if ((i_441X < 0)) {
RSvalS = val_440X;
goto START;}
else {
*((unsigned char*)((-3 + val_440X) + i_441X)) = ((unsigned char)(init_443X >> 2));
arg1K0 = (-1 + i_441X);
goto L23789;}}
L23773: {
okayP_442X = arg3K0;
init_443X = arg1K1;
if (okayP_442X) {
*((long*)ShpS) = (2 + (((len_69X << 6) + ((long)b_67X)) << 2));
ShpS = (4 + ShpS);
new_444X = 3 + ShpS;
ShpS = (ShpS + (-4 & (3 + len_69X)));
if ((0 < len_69X)) {
*((long*)(-4 + ShpS)) = 0;
arg1K0 = new_444X;
goto L23787;}
else {
arg1K0 = new_444X;
goto L23787;}}
else {
merged_arg0K0 = 1;
merged_arg1K1 = (((long)b_67X) << 2);
merged_arg1K2 = (len_69X << 2);
merged_arg1K3 = init_68X;
goto raise_exception3;}}
L24041: {
val_445X = arg1K0;
arg1K0 = (-1 + len_272X);
goto L24043;}
L24043: {
i_446X = arg1K0;
if ((i_446X < 0)) {
RSvalS = val_445X;
goto START;}
else {
*((long*)((-3 + val_445X) + (i_446X << 2))) = init_448X;
arg1K0 = (-1 + i_446X);
goto L24043;}}
L24027: {
okayP_447X = arg3K0;
init_448X = arg1K1;
if (okayP_447X) {
len_450X = len_272X << 2;
*((long*)ShpS) = (2 + (((len_450X << 6) + ((long)b_274X)) << 2));
ShpS = (4 + ShpS);
new_449X = 3 + ShpS;
ShpS = (ShpS + (-4 & (3 + len_450X)));
if ((0 < len_450X)) {
*((long*)(-4 + ShpS)) = 0;
arg1K0 = new_449X;
goto L24041;}
else {
arg1K0 = new_449X;
goto L24041;}}
else {
merged_arg0K0 = 1;
merged_arg1K1 = (((long)b_274X) << 2);
merged_arg1K2 = (len_272X << 2);
merged_arg1K3 = init_273X;
goto raise_exception3;}}
L16173: {
b_454X = *((unsigned char*)RScode_pointerS);
RScode_pointerS = (1 + RScode_pointerS);
b_453X = *((unsigned char*)RScode_pointerS);
RScode_pointerS = (1 + RScode_pointerS);
len_452X = ((long)b_454X) << 2;
*((long*)ShpS) = (2 + (((len_452X << 6) + ((long)b_453X)) << 2));
ShpS = (4 + ShpS);
new_451X = 3 + ShpS;
ShpS = (ShpS + (-4 & (3 + len_452X)));
if ((0 < len_452X)) {
*((long*)(-4 + ShpS)) = 0;
arg1K0 = new_451X;
goto L16181;}
else {
arg1K0 = new_451X;
goto L16181;}}
L16181: {
new_455X = arg1K0;
if ((((long)b_454X) < 1)) {
goto L16212;}
else {
*((long*)(-7 + (new_455X + (((long)b_454X) << 2)))) = RSvalS;
arg1K0 = (-2 + ((long)b_454X));
goto L16190;}}
L16212: {
RSvalS = new_455X;
goto START;}
L16190: {
i_456X = arg1K0;
if ((i_456X < 0)) {
goto L16212;}
else {
RSstackS = (4 + RSstackS);
*((long*)((-3 + new_455X) + (i_456X << 2))) = (*((long*)RSstackS));
arg1K0 = (-1 + i_456X);
goto L16190;}}
L21679: {
RSvalS = (result_57X << 2);
goto START;}
L21676: {
merged_arg0K0 = 0;
merged_arg1K1 = arg2_285X;
merged_arg1K2 = x_61X;
goto raise_exception2;}
L22222: {
n_457X = arg1K0;
RSvalS = (n_457X << 2);
goto START;}
L22218: {
b_458X = arg1K0;
c_459X = a_460X % b_458X;
if ((a_289X < 0)) {
arg1K0 = (0 - c_459X);
goto L22222;}
else {
arg1K0 = c_459X;
goto L22222;}}
L22216: {
a_460X = arg1K0;
if ((b_290X < 0)) {
arg1K0 = (0 - b_290X);
goto L22218;}
else {
arg1K0 = b_290X;
goto L22218;}}
L22353: {
if ((536870911 < c_462X)) {
merged_arg0K0 = 0;
merged_arg1K1 = arg2_47X;
merged_arg1K2 = x_291X;
goto raise_exception2;}
else {
RSvalS = (c_462X << 2);
goto START;}}
L22350: {
RSvalS = ((0 - c_462X) << 2);
goto START;}
L22347: {
b_461X = arg1K0;
c_462X = a_463X / b_461X;
if ((a_292X < 0)) {
if ((b_293X < 0)) {
goto L22353;}
else {
goto L22350;}}
else {
if ((b_293X < 0)) {
goto L22350;}
else {
goto L22353;}}}
L22345: {
a_463X = arg1K0;
if ((b_293X < 0)) {
arg1K0 = (0 - b_293X);
goto L22347;}
else {
arg1K0 = b_293X;
goto L22347;}}
L22717: {
if ((536870911 < c_472X)) {
merged_arg0K0 = 0;
merged_arg1K1 = arg2_44X;
merged_arg1K2 = x_296X;
goto raise_exception2;}
else {
arg1K0 = (c_472X << 2);
goto L22680;}}
L22693: {
n_464X = arg1K0;
if ((0 == (n_464X << 2))) {
RSvalS = q_468X;
goto START;}
else {
merged_arg0K0 = 0;
merged_arg1K1 = arg2_44X;
merged_arg1K2 = x_296X;
goto raise_exception2;}}
L22689: {
b_465X = arg1K0;
c_466X = a_467X % b_465X;
if ((a_469X < 0)) {
arg1K0 = (0 - c_466X);
goto L22693;}
else {
arg1K0 = c_466X;
goto L22693;}}
L22687: {
a_467X = arg1K0;
if ((b_470X < 0)) {
arg1K0 = (0 - b_470X);
goto L22689;}
else {
arg1K0 = b_470X;
goto L22689;}}
L22680: {
q_468X = arg1K0;
if ((0 == x_296X)) {
merged_arg0K0 = 0;
merged_arg1K1 = arg2_44X;
merged_arg1K2 = x_296X;
goto raise_exception2;}
else {
a_469X = arg2_44X >> 2;
b_470X = x_296X >> 2;
if ((a_469X < 0)) {
arg1K0 = (0 - a_469X);
goto L22687;}
else {
arg1K0 = a_469X;
goto L22687;}}}
L22676: {
b_471X = arg1K0;
c_472X = a_473X / b_471X;
if ((a_297X < 0)) {
if ((b_298X < 0)) {
goto L22717;}
else {
arg1K0 = ((0 - c_472X) << 2);
goto L22680;}}
else {
if ((b_298X < 0)) {
arg1K0 = ((0 - c_472X) << 2);
goto L22680;}
else {
goto L22717;}}}
L22674: {
a_473X = arg1K0;
if ((b_298X < 0)) {
arg1K0 = (0 - b_298X);
goto L22676;}
else {
arg1K0 = b_298X;
goto L22676;}}
L22878: {
merged_arg0K0 = 0;
merged_arg1K1 = arg2_43X;
merged_arg1K2 = x_299X;
goto raise_exception2;}
L23025: {
if ((536870911 < c_481X)) {
merged_arg0K0 = 0;
merged_arg1K1 = arg2_42X;
merged_arg1K2 = x_301X;
goto raise_exception2;}
else {
RSvalS = (c_481X << 2);
goto START;}}
L23018: {
if ((536870912 < c_481X)) {
merged_arg0K0 = 0;
merged_arg1K1 = arg2_42X;
merged_arg1K2 = x_301X;
goto raise_exception2;}
else {
RSvalS = ((0 - c_481X) << 2);
goto START;}}
L23015: {
if ((536870911 < lo_c_479X)) {
goto L23010;}
else {
long Sign = ((a_302X < 0) == (b_303X < 0)); /* hack */
if (((Sign ? 8191 : 8192) < mid_c_480X)) { /* */
goto L23010;}
else {
if ((a_302X < 0)) {
if ((b_303X < 0)) {
goto L23025;}
else {
goto L23018;}}
else {
if ((b_303X < 0)) {
goto L23018;}
else {
goto L23025;}}}}}
L23010: {
merged_arg0K0 = 0;
merged_arg1K1 = arg2_42X;
merged_arg1K2 = x_301X;
goto raise_exception2;}
L22995: {
b_474X = arg1K0;
/* Patched manually! */
lo_a_475X = 65535 & a_482X; /* */
lo_b_476X = 65535 & b_474X; /* */
hi_a_477X = 65535 & (a_482X >> 16); /* */
hi_b_478X = 65535 & (b_474X >> 16); /* */
lo_c_479X = lo_a_475X * lo_b_476X;
mid_c_480X = (lo_a_475X * hi_b_478X) + (lo_b_476X * hi_a_477X);
c_481X = lo_c_479X + (mid_c_480X << 16); /* */
if ((0 < hi_a_477X)) {
if ((0 < hi_b_478X)) {
goto L23010;}
else {
goto L23015;}}
else {
goto L23015;}}
L22993: {
a_482X = arg1K0;
if ((b_303X < 0)) {
arg1K0 = (0 - b_303X);
goto L22995;}
else {
arg1K0 = b_303X;
goto L22995;}}
L23195: {
merged_arg0K0 = 0;
merged_arg1K1 = arg2_304X;
merged_arg1K2 = x_41X;
goto raise_exception2;}
L28358: {
offset_483X = arg1K0;
RScode_pointerS = (RScode_pointerS + offset_483X);
goto START;}
L24255: {
RSvalS = proc_20X;
merged_arg0K0 = 0;
goto perform_application;}
L14486: {
RSstackS = (4 + RSstackS);
list_484X = *((long*)RSstackS);
a_485X = *((long*)(-3 + list_484X));
*((long*)ShpS) = 2050;
ShpS = (4 + ShpS);
new_486X = 3 + ShpS;
ShpS = (8 + ShpS);
*((long*)(-4 + ShpS)) = 0;
*((long*)(-3 + new_486X)) = a_485X;
*((long*)(1 + new_486X)) = 25;
arg1K0 = (*((long*)(1 + list_484X)));
arg1K1 = new_486X;
goto L14496;}
L14496: {
l_487X = arg1K0;
last_488X = arg1K1;
if ((25 == l_487X)) {
*((long*)RSstackS) = new_486X;
RSstackS = (-4 + RSstackS);
SnargsS = 64;
goto L24255;}
else {
a_490X = *((long*)(-3 + l_487X));
*((long*)ShpS) = 2050;
ShpS = (4 + ShpS);
new_489X = 3 + ShpS;
ShpS = (8 + ShpS);
*((long*)(-4 + ShpS)) = 0;
*((long*)(-3 + new_489X)) = a_490X;
*((long*)(1 + new_489X)) = 25;
*((long*)(1 + last_488X)) = new_489X;
arg1K0 = (*((long*)(1 + l_487X)));
arg1K1 = new_489X;
goto L14496;}}
L14667: {
i_491X = arg1K0;
l_492X = arg1K1;
if ((0 < i_491X)) {
*((long*)RSstackS) = (*((long*)(-3 + l_492X)));
RSstackS = (-4 + RSstackS);
arg1K0 = (-1 + i_491X);
arg1K1 = (*((long*)(1 + l_492X)));
goto L14667;}
else {
if ((0 == overflow_496X)) {
SnargsS = nargs_502X;
goto L24255;}
else {
*((long*)RSstackS) = l_492X;
RSstackS = (-4 + RSstackS);
space_493X = 3 * overflow_496X;
v_494X = (ShpS + (space_493X << 2)) < SlimitS;
if (v_494X) {
goto L14486;}
else {
merged_arg1K0 = 0;
collect_saving_temp_return_tag = 13;
goto collect_saving_temp;
collect_saving_temp_return_13:
okayP_495X = (ShpS + (space_493X << 2)) < SlimitS;
if (okayP_495X) {
goto L14486;}
else {
TTerror("Scheme48 heap overflow", 0, 0, 0, 0);
goto L14486;}}}}}
L14631: {
overflow_496X = arg1K0;
arg1K0 = (len_499X - overflow_496X);
arg1K1 = args_503X;
goto L14667;}
L24289: {
merged_arg1K0 = 25;
merged_arg1K1 = ((long)(*((unsigned char*)RScode_pointerS)));
pop_args_list_return_tag = 2;
goto pop_args_list;
pop_args_list_return_2:
args_497X = pop_args_list_return_value;
merged_arg0K0 = 0;
merged_arg1K1 = proc_20X;
merged_arg1K2 = args_497X;
merged_arg1K3 = RSvalS;
goto raise_exception3;}
L24287: {
fast_498X = arg1K0;
len_499X = arg1K1;
slow_500X = arg1K2;
move_slowP_501X = arg3K3;
if ((25 == fast_498X)) {
args_503X = RSvalS;
nargs_502X = len_499X + ((long)(*((unsigned char*)RScode_pointerS)));
if ((63 < nargs_502X)) {
arg1K0 = (-63 + nargs_502X);
goto L14631;}
else {
arg1K0 = 0;
goto L14631;}}
else {
if ((3 == (3 & fast_498X))) {
v_504X = 31 & ((*((long*)(-7 + fast_498X))) >> 2);
if ((0 == v_504X)) {
if (move_slowP_501X) {
if ((fast_498X == slow_500X)) {
merged_arg1K0 = 25;
merged_arg1K1 = ((long)(*((unsigned char*)RScode_pointerS)));
pop_args_list_return_tag = 3;
goto pop_args_list;
pop_args_list_return_3:
args_505X = pop_args_list_return_value;
merged_arg0K0 = 0;
merged_arg1K1 = proc_20X;
merged_arg1K2 = args_505X;
merged_arg1K3 = RSvalS;
goto raise_exception3;}
else {
arg1K0 = (*((long*)(1 + fast_498X)));
arg1K1 = (1 + len_499X);
arg1K2 = (*((long*)(1 + slow_500X)));
arg3K3 = 0;
goto L24287;}}
else {
arg1K0 = (*((long*)(1 + fast_498X)));
arg1K1 = (1 + len_499X);
arg1K2 = slow_500X;
arg3K3 = 1;
goto L24287;}}
else {
goto L24289;}}
else {
goto L24289;}}}
L15453: {
merged_arg0K0 = 0;
goto perform_application;}
L15470: {
loc_506X = arg1K0;
arg_507X = arg1K1;
if ((RSstackS < arg_507X)) {
*((long*)loc_506X) = (*((long*)arg_507X));
arg1K0 = (-4 + loc_506X);
arg1K1 = (-4 + arg_507X);
goto L15470;}
else {
RSstackS = loc_506X;
goto L15453;}}
L28153: {
v_508X = arg1K0;
ScontS = v_508X;
goto START;}
L28023: {
key_509X = arg1K0;
merged_arg1K0 = (RScode_pointerS + ((((long)b_319X) << 8) + ((long)b_320X)));
merged_arg1K1 = ((long)b_321X);
merged_arg1K2 = key_509X;
push_continuationB_return_tag = 0;
goto push_continuationB;
push_continuationB_return_0:
goto START;}
L28044: {
v_510X = arg1K0;
merged_arg1K0 = v_510X;
copy_stack_into_heap_return_tag = 0;
goto copy_stack_into_heap;
copy_stack_into_heap_return_0:
arg1K0 = 0;
goto L28023;}
L27845: {
space_511X = arg1K0;
v_512X = (ShpS + (space_511X << 2)) < SlimitS;
if (v_512X) {
arg1K0 = 0;
goto L27847;}
else {
merged_arg1K0 = 0;
collect_saving_temp_return_tag = 14;
goto collect_saving_temp;
collect_saving_temp_return_14:
okayP_513X = (ShpS + (space_511X << 2)) < SlimitS;
if (okayP_513X) {
arg1K0 = 0;
goto L27847;}
else {
TTerror("Scheme48 heap overflow", 0, 0, 0, 0);
arg1K0 = 0;
goto L27847;}}}
L27847: {
key_514X = arg1K0;
p_515X = RSenvS;
if ((p_515X < Sstack_beginS)) {
arg1K0 = RSenvS;
goto L27849;}
else {
if ((Sstack_endS < p_515X)) {
arg1K0 = RSenvS;
goto L27849;}
else {
merged_arg1K0 = RSenvS;
merged_arg1K1 = ScontS;
merged_arg1K2 = key_514X;
merged_arg0K3 = 0;
save_env_in_heap_return_tag = 0;
goto save_env_in_heap;
save_env_in_heap_return_0:
v_516X = save_env_in_heap_return_value;
RSenvS = v_516X;
arg1K0 = RSenvS;
goto L27849;}}}
L27849: {
env_517X = arg1K0;
v_518X = (12 + ShpS) < SlimitS;
if (v_518X) {
goto L27851;}
else {
merged_arg1K0 = 0;
collect_saving_temp_return_tag = 15;
goto collect_saving_temp;
collect_saving_temp_return_15:
okayP_519X = (12 + ShpS) < SlimitS;
if (okayP_519X) {
goto L27851;}
else {
TTerror("Scheme48 heap overflow", 0, 0, 0, 0);
goto L27851;}}}
L27851: {
b_520X = *((unsigned char*)RScode_pointerS);
RScode_pointerS = (1 + RScode_pointerS);
a_521X = *((long*)((-3 + StemplateS) + (((long)b_520X) << 2)));
*((long*)ShpS) = 2062 + 128; /* *** JAR HACK *** */
ShpS = (4 + ShpS);
new_522X = 3 + ShpS;
ShpS = (8 + ShpS);
*((long*)(-4 + ShpS)) = 0;
*((long*)(-3 + new_522X)) = a_521X;
*((long*)(1 + new_522X)) = env_517X;
RSvalS = new_522X;
goto START;}
L27747: {
env_523X = arg1K0;
i_524X = arg1K1;
if ((0 == i_524X)) {
b_525X = *((unsigned char*)RScode_pointerS);
RScode_pointerS = (1 + RScode_pointerS);
*((long*)((-3 + env_523X) + (((long)b_525X) << 2))) = RSvalS;
RSvalS = 13;
goto START;}
else {
arg1K0 = (*((long*)(-3 + env_523X)));
arg1K1 = (-1 + i_524X);
goto L27747;}}
L27429: {
env_526X = arg1K0;
i_527X = arg1K1;
if ((0 == i_527X)) {
b_528X = *((unsigned char*)RScode_pointerS);
RScode_pointerS = (1 + RScode_pointerS);
RSvalS = (*((long*)((-3 + env_526X) + (((long)b_528X) << 2))));
if ((529 == RSvalS)) {
merged_arg0K0 = 2;
goto raise_exception;}
else {
goto START;}}
else {
arg1K0 = (*((long*)(-3 + env_526X)));
arg1K1 = (-1 + i_527X);
goto L27429;}}
L27675: {
args_529X = arg1K0;
RSvalS = args_529X;
SnargsS = (1 + ((long)b_337X));
goto START;}
L27603: {
b_532X = *((unsigned char*)RScode_pointerS);
RScode_pointerS = (1 + RScode_pointerS);
len_531X = 4 + (((long)b_532X) << 2);
*((long*)ShpS) = (10 + (len_531X << 8));
ShpS = (4 + ShpS);
new_530X = 3 + ShpS;
ShpS = (ShpS + (-4 & (3 + len_531X)));
if ((0 < len_531X)) {
*((long*)(-4 + ShpS)) = 0;
arg1K0 = new_530X;
goto L9932;}
else {
arg1K0 = new_530X;
goto L9932;}}
L27529: {
b_533X = *((unsigned char*)RScode_pointerS);
RScode_pointerS = (1 + RScode_pointerS);
*((long*)RSstackS) = RSenvS;
RSstackS = (-4 + RSstackS);
*((long*)RSstackS) = (1034 + (((long)b_533X) << 10));
RSstackS = (-4 + RSstackS);
RSenvS = (11 + RSstackS);
goto START;}
L27566: {
v_534X = arg1K0;
merged_arg1K0 = v_534X;
copy_stack_into_heap_return_tag = 1;
goto copy_stack_into_heap;
copy_stack_into_heap_return_1:
goto L27529;}
L30907: {
merged_arg0K0 = 0;
merged_arg1K1 = proc_176X;
goto raise_exception1;}
L30852: {
merged_arg0K0 = 0;
merged_arg1K1 = RSvalS;
goto raise_exception1;}
L30727: {
v_535X = arg0K0;
RSvalS = ((long)v_535X);
goto START;}
L30705: {
v_536X = arg0K0;
RSvalS = ((long)v_536X);
goto START;}
L30681: {
merged_arg0K0 = 0;
merged_arg1K1 = RSvalS;
goto raise_exception1;}
L30660: {
RSvalS = 13;
goto START;}
L30645: {
v_537X = arg0K0;
RSvalS = ((long)v_537X);
goto START;}
L30561: {
v_538X = arg0K0;
RSvalS = ((long)v_538X);
goto START;}
L30497: {
v_539X = arg0K0;
RSvalS = ((long)v_539X);
goto START;}
L30475: {
merged_arg0K0 = 0;
merged_arg1K1 = (x_62X << 2);
goto raise_exception1;}
L30444: {
v_540X = arg0K0;
RSvalS = ((long)v_540X);
goto START;}
L30432: {
merged_arg0K0 = 0;
merged_arg1K1 = arg2_280X;
merged_arg1K2 = RSvalS;
goto raise_exception2;}
L30415: {
v_541X = arg0K0;
RSvalS = ((long)v_541X);
goto START;}
L30403: {
merged_arg0K0 = 0;
merged_arg1K1 = arg2_282X;
merged_arg1K2 = RSvalS;
goto raise_exception2;}
L30388: {
v_542X = arg0K0;
RSvalS = ((long)v_542X);
goto START;}
L30274: {
r_543X = arg1K0;
if ((536870911 < r_543X)) {
merged_arg0K0 = 0;
merged_arg1K1 = x_287X;
goto raise_exception1;}
else {
RSvalS = (r_543X << 2);
goto START;}}
L30072: {
v_544X = arg0K0;
RSvalS = ((long)v_544X);
goto START;}
L30048: {
v_545X = arg0K0;
RSvalS = ((long)v_545X);
goto START;}
L29963: {
RSvalS = 1;
goto START;}
L29934: {
RSvalS = 1;
goto START;}
L29905: {
RSvalS = 1;
goto START;}
L29876: {
RSvalS = 1;
goto START;}
L29856: {
v_546X = arg0K0;
RSvalS = ((long)v_546X);
goto START;}
L29842: {
v_547X = arg0K0;
RSvalS = ((long)v_547X);
goto START;}
L29721: {
v_548X = arg1K0;
ScontS = v_548X;
SnargsS = 0;
merged_arg0K0 = 0;
goto perform_application;}
L29687: {
key_549X = arg1K0;
merged_arg1K0 = key_549X;
merged_arg0K1 = 2;
preserve_continuation_return_tag = 0;
goto preserve_continuation;
preserve_continuation_return_0:
v_550X = preserve_continuation_return_value;
RSvalS = v_550X;
goto START;}
raise_exception: {
args_796X = merged_arg0K0;{
push_exception_continuationB_return_tag = 0;
goto push_exception_continuationB;
push_exception_continuationB_return_0:
*((long*)RSstackS) = (((long)(*((unsigned char*)(-1 + (RScode_pointerS - ((long)args_796X)))))) << 2);
RSstackS = (-4 + RSstackS);
merged_arg0K0 = 0;
goto raise;}}
return_values: {
nargs_794X = merged_arg1K0;{
if ((1 == nargs_794X)) {
RSstackS = (4 + RSstackS);
RSvalS = (*((long*)RSstackS));
cont_551X = ScontS;
tem_552X = *((long*)(5 + cont_551X));
pc_553X = *((long*)(1 + cont_551X));
StemplateS = tem_552X;
RScode_pointerS = ((-3 + (*((long*)(-3 + tem_552X)))) + (pc_553X >> 2));
RSenvS = (*((long*)(9 + cont_551X)));
ScontS = (*((long*)(-3 + cont_551X)));
RSstackS = (9 + cont_551X);
goto START;}
else {
if ((ScontS == Sbottom_of_stackS)) {
arg1K0 = (*((long*)(-3 + Sbottom_of_stackS)));
goto L27143;}
else {
arg1K0 = ScontS;
goto L27143;}}}
L27181: {
args_554X = arg1K0;
merged_arg0K0 = 0;
merged_arg1K1 = args_554X;
goto raise_exception1;}
L27151: {
if ((64 == nargs_794X)) {
RSstackS = (4 + RSstackS);
merged_arg1K0 = (*((long*)RSstackS));
merged_arg1K1 = 63;
pop_args_list_return_tag = 4;
goto pop_args_list;
pop_args_list_return_4:
v_556X = pop_args_list_return_value;
arg1K0 = v_556X;
goto L27181;}
else {
merged_arg1K0 = 25;
merged_arg1K1 = nargs_794X;
pop_args_list_return_tag = 5;
goto pop_args_list;
pop_args_list_return_5:
v_555X = pop_args_list_return_value;
arg1K0 = v_555X;
goto L27181;}}
L27143: {
cont_557X = arg1K0;
if ((3 == (3 & cont_557X))) {
v_559X = 31 & ((*((long*)(-7 + cont_557X))) >> 2);
if ((8 == v_559X)) {
op_560X = (long)(*((unsigned char*)((-3 + (*((long*)(-3 + (*((long*)(5 + cont_557X))))))) + ((*((long*)(1 + cont_557X))) >> 2))));
if ((31 == op_560X)) {
cont_563X = ScontS;
tem_564X = *((long*)(5 + cont_563X));
pc_565X = *((long*)(1 + cont_563X));
StemplateS = tem_564X;
RScode_pointerS = ((-3 + (*((long*)(-3 + tem_564X)))) + (pc_565X >> 2));
RSenvS = (*((long*)(9 + cont_563X)));
ScontS = (*((long*)(-3 + cont_563X)));
RSstackS = (9 + cont_563X);
goto START;}
else {
if ((27 == op_560X)) {
next_562X = *((long*)(-3 + ScontS));
if ((ScontS == Sbottom_of_stackS)) {
*((long*)(-3 + ScontS)) = (*((long*)(-3 + next_562X)));
goto L27040;}
else {
ScontS = next_562X;
goto L27040;}}
else {
if ((64 == nargs_794X)) {
RSstackS = (4 + RSstackS);
merged_arg1K0 = (*((long*)RSstackS));
merged_arg1K1 = 63;
pop_args_list_return_tag = 6;
goto pop_args_list;
pop_args_list_return_6:
v_558X = pop_args_list_return_value;
arg1K0 = v_558X;
goto L27093;}
else {
merged_arg1K0 = 25;
merged_arg1K1 = nargs_794X;
pop_args_list_return_tag = 7;
goto pop_args_list;
pop_args_list_return_7:
v_561X = pop_args_list_return_value;
arg1K0 = v_561X;
goto L27093;}}}}
else {
goto L27151;}}
else {
goto L27151;}}
L27040: {
SnargsS = nargs_794X;
RSvalS = (*((long*)(13 + cont_557X)));
merged_arg0K0 = 0;
goto perform_application;}
L27093: {
args_566X = arg1K0;
merged_arg0K0 = 0;
merged_arg1K1 = args_566X;
goto raise_exception1;}}
raise_exception1: {
args_791X = merged_arg0K0;
a1_792X = merged_arg1K1;{
push_exception_continuationB_return_tag = 1;
goto push_exception_continuationB;
push_exception_continuationB_return_1:
*((long*)RSstackS) = (((long)(*((unsigned char*)(-1 + (RScode_pointerS - ((long)args_791X)))))) << 2);
RSstackS = (-4 + RSstackS);
*((long*)RSstackS) = a1_792X;
RSstackS = (-4 + RSstackS);
merged_arg0K0 = 1;
goto raise;}}
raise_exception2: {
args_787X = merged_arg0K0;
a1_788X = merged_arg1K1;
a2_789X = merged_arg1K2;{
push_exception_continuationB_return_tag = 2;
goto push_exception_continuationB;
push_exception_continuationB_return_2:
*((long*)RSstackS) = (((long)(*((unsigned char*)(-1 + (RScode_pointerS - ((long)args_787X)))))) << 2);
RSstackS = (-4 + RSstackS);
*((long*)RSstackS) = a1_788X;
RSstackS = (-4 + RSstackS);
*((long*)RSstackS) = a2_789X;
RSstackS = (-4 + RSstackS);
merged_arg0K0 = 2;
goto raise;}}
raise_exception3: {
args_782X = merged_arg0K0;
a1_783X = merged_arg1K1;
a2_784X = merged_arg1K2;
a3_785X = merged_arg1K3;{
push_exception_continuationB_return_tag = 3;
goto push_exception_continuationB;
push_exception_continuationB_return_3:
*((long*)RSstackS) = (((long)(*((unsigned char*)(-1 + (RScode_pointerS - ((long)args_782X)))))) << 2);
RSstackS = (-4 + RSstackS);
*((long*)RSstackS) = a1_783X;
RSstackS = (-4 + RSstackS);
*((long*)RSstackS) = a2_784X;
RSstackS = (-4 + RSstackS);
*((long*)RSstackS) = a3_785X;
RSstackS = (-4 + RSstackS);
merged_arg0K0 = 3;
goto raise;}}
raise_exception4: {
args_776X = merged_arg0K0;
a1_777X = merged_arg1K1;
a2_778X = merged_arg1K2;
a3_779X = merged_arg1K3;
a4_780X = merged_arg1K4;{
push_exception_continuationB_return_tag = 4;
goto push_exception_continuationB;
push_exception_continuationB_return_4:
*((long*)RSstackS) = (((long)(*((unsigned char*)(-1 + (RScode_pointerS - ((long)args_776X)))))) << 2);
RSstackS = (-4 + RSstackS);
*((long*)RSstackS) = a1_777X;
RSstackS = (-4 + RSstackS);
*((long*)RSstackS) = a2_778X;
RSstackS = (-4 + RSstackS);
*((long*)RSstackS) = a3_779X;
RSstackS = (-4 + RSstackS);
*((long*)RSstackS) = a4_780X;
RSstackS = (-4 + RSstackS);
merged_arg0K0 = 4;
goto raise;}}
application_exception: {
byte_args_774X = merged_arg0K0;{
if ((64 == SnargsS)) {
RSstackS = (4 + RSstackS);
merged_arg1K0 = (*((long*)RSstackS));
merged_arg1K1 = 63;
pop_args_list_return_tag = 8;
goto pop_args_list;
pop_args_list_return_8:
v_568X = pop_args_list_return_value;
arg1K0 = v_568X;
goto L23353;}
else {
merged_arg1K0 = 25;
merged_arg1K1 = SnargsS;
pop_args_list_return_tag = 9;
goto pop_args_list;
pop_args_list_return_9:
v_567X = pop_args_list_return_value;
arg1K0 = v_567X;
goto L23353;}}
L23353: {
args_569X = arg1K0;
a1_570X = RSvalS;
*((long*)RSstackS) = (((long)(*((unsigned char*)(-1 + (RScode_pointerS - ((long)byte_args_774X)))))) << 2);
RSstackS = (-4 + RSstackS);
*((long*)RSstackS) = a1_570X;
RSstackS = (-4 + RSstackS);
*((long*)RSstackS) = args_569X;
RSstackS = (-4 + RSstackS);
merged_arg0K0 = 2;
goto raise;}}
raise: {
nargs_772X = merged_arg0K0;{
SnargsS = (1 + ((long)nargs_772X));
RSvalS = Sexception_handlerS;
obj_572X = RSvalS;
if ((3 == (3 & obj_572X))) {
v_571X = 31 & ((*((long*)(-7 + obj_572X))) >> 2);
if ((3 == v_571X)) {
goto L15513;}
else {
goto L15583;}}
else {
goto L15583;}}
L15513: {
x_576X = Sstack_limitS < (-296 + RSstackS);
if (x_576X) {
goto L15515;}
else {
space_575X = 1 + ((Sstack_endS - RSstackS) >> 2);
v_574X = (ShpS + (space_575X << 2)) < SlimitS;
if (v_574X) {
arg1K0 = 0;
goto L15553;}
else {
merged_arg1K0 = 0;
collect_saving_temp_return_tag = 16;
goto collect_saving_temp;
collect_saving_temp_return_16:
okayP_573X = (ShpS + (space_575X << 2)) < SlimitS;
if (okayP_573X) {
arg1K0 = 0;
goto L15553;}
else {
TTerror("Scheme48 heap overflow", 0, 0, 0, 0);
arg1K0 = 0;
goto L15553;}}}}
L15528: {
Sstack_limitS = (296 + Sstack_beginS);
Sexception_space_usedPS = 0;
goto L15517;}
L15517: {
merged_arg0K0 = 0;
goto perform_application;}
L15553: {
v_577X = arg1K0;
merged_arg1K0 = v_577X;
copy_stack_into_heap_return_tag = 2;
goto copy_stack_into_heap;
copy_stack_into_heap_return_2:
goto L15515;}
L15515: {
if (Sexception_space_usedPS) {
x_578X = Sstack_limitS < (-296 + RSstackS);
if (x_578X) {
goto L15528;}
else {
TTerror("no space on stack to reserve exception space", 0, 0, 0, 0);
goto L15528;}}
else {
goto L15517;}}
L15583: {
TTerror("exception handler is not a closure", 0, 0, 0, 0);
goto L15513;}}
perform_application: {
bytes_consumed_770X = merged_arg0K0;{
obj_580X = RSvalS;
if ((3 == (3 & obj_580X))) {
v_581X = 31 & ((*((long*)(-7 + obj_580X))) >> 2);
if ((3 == v_581X)) {
RSenvS = (*((long*)(1 + RSvalS)));
tem_579X = *((long*)(-3 + RSvalS));
StemplateS = tem_579X;
RScode_pointerS = (-3 + (*((long*)(-3 + tem_579X))));
if ((0 == (Spending_interruptsS & Senabled_interruptsS))) {
goto START;}
else {
goto handle_interrupt;}}
else {
goto L15328;}}
else {
goto L15328;}}
L15328: {
merged_arg0K0 = bytes_consumed_770X;
goto application_exception;}}
handle_interrupt: {
{ x_585X = Sstack_limitS < (-276 + RSstackS);
if (x_585X) {
arg1K0 = 0;
goto L15623;}
else {
space_584X = 1 + ((Sstack_endS - RSstackS) >> 2);
v_583X = (ShpS + (space_584X << 2)) < SlimitS;
if (v_583X) {
arg1K0 = 0;
goto L15854;}
else {
merged_arg1K0 = 0;
collect_saving_temp_return_tag = 17;
goto collect_saving_temp;
collect_saving_temp_return_17:
okayP_582X = (ShpS + (space_584X << 2)) < SlimitS;
if (okayP_582X) {
arg1K0 = 0;
goto L15854;}
else {
TTerror("Scheme48 heap overflow", 0, 0, 0, 0);
arg1K0 = 0;
goto L15854;}}}}
L15663: {
RSvalS = (*((long*)((-3 + Sinterrupt_handlersS) + (i_588X << 2))));
Senabled_interruptsS = 0;
obj_587X = RSvalS;
if ((3 == (3 & obj_587X))) {
v_586X = 31 & ((*((long*)(-7 + obj_587X))) >> 2);
if ((3 == v_586X)) {
goto L15681;}
else {
goto L15691;}}
else {
goto L15691;}}
L15681: {
merged_arg0K0 = 0;
goto perform_application;}
L15691: {
TTerror("interrupt handler is not a closure", 1, i_588X, 0, 0);
goto L15681;}
L15737: {
TTerror("interrupt handler is not a vector", 0, 0, 0, 0);
goto L15663;}
L15838: {
i_588X = arg1K0;
m_589X = arg1K1;
if ((0 == (n_595X & m_589X))) {
arg1K0 = (1 + i_588X);
arg1K1 = (m_589X << 1);
goto L15838;}
else {
Spending_interruptsS = (n_595X & (~ m_589X));
*((long*)RSstackS) = StemplateS;
RSstackS = (-4 + RSstackS);
*((long*)RSstackS) = RSenvS;
RSstackS = (-4 + RSstackS);
*((long*)RSstackS) = (SnargsS << 2);
RSstackS = (-4 + RSstackS);
*((long*)RSstackS) = (Senabled_interruptsS << 2);
RSstackS = (-4 + RSstackS);
tem_591X = Sinterrupt_templateS;
StemplateS = tem_591X;
RScode_pointerS = (-3 + (*((long*)(-3 + tem_591X))));
merged_arg1K0 = RScode_pointerS;
merged_arg1K1 = (4 + SnargsS);
merged_arg1K2 = key_594X;
push_continuationB_return_tag = 1;
goto push_continuationB;
push_continuationB_return_1:
*((long*)RSstackS) = (Senabled_interruptsS << 2);
RSstackS = (-4 + RSstackS);
SnargsS = 1;
obj_590X = Sinterrupt_handlersS;
if ((3 == (3 & obj_590X))) {
v_592X = 31 & ((*((long*)(-7 + obj_590X))) >> 2);
if ((2 == v_592X)) {
goto L15663;}
else {
goto L15737;}}
else {
goto L15737;}}}
L15854: {
v_593X = arg1K0;
merged_arg1K0 = v_593X;
copy_stack_into_heap_return_tag = 3;
goto copy_stack_into_heap;
copy_stack_into_heap_return_3:
arg1K0 = 0;
goto L15623;}
L15623: {
key_594X = arg1K0;
n_595X = Spending_interruptsS & Senabled_interruptsS;
arg1K0 = 0;
arg1K1 = 1;
goto L15838;}}
copy_stack_into_heap: {
key_767X = merged_arg1K0;{
arg1K0 = (4 + RSstackS);
arg1K1 = 0;
goto L14252;}
L14122: {
i_596X = arg1K0;
if ((-1 < i_596X)) {
RSstackS = (4 + RSstackS);
*((long*)((-3 + vec_598X) + (i_596X << 2))) = (*((long*)RSstackS));
arg1K0 = (-1 + i_596X);
goto L14122;}
else {
merged_arg1K0 = key_767X;
merged_arg0K1 = 1;
preserve_continuation_return_tag = 1;
goto preserve_continuation;
preserve_continuation_return_1:
arg1K0 = 0;
goto L14146;}}
L14146: {
i_597X = arg1K0;
if ((i_597X < i_600X)) {
*((long*)RSstackS) = (*((long*)((-3 + vec_598X) + (i_597X << 2))));
RSstackS = (-4 + RSstackS);
arg1K0 = (1 + i_597X);
goto L14146;}
else {
goto copy_stack_into_heap_return;}}
L14120: {
vec_598X = arg1K0;
arg1K0 = (-1 + i_600X);
goto L14122;}
L14252: {
p_599X = arg1K0;
i_600X = arg1K1;
if ((2 == (3 & (*((long*)p_599X))))) {
len_602X = i_600X << 2;
*((long*)ShpS) = (10 + (len_602X << 8));
ShpS = (4 + ShpS);
new_601X = 3 + ShpS;
ShpS = (ShpS + (-4 & (3 + len_602X)));
if ((0 < len_602X)) {
*((long*)(-4 + ShpS)) = 0;
arg1K0 = new_601X;
goto L14120;}
else {
arg1K0 = new_601X;
goto L14120;}}
else {
arg1K0 = (4 + p_599X);
arg1K1 = (1 + i_600X);
goto L14252;}}
copy_stack_into_heap_return:
switch (copy_stack_into_heap_return_tag) {
case 0: goto copy_stack_into_heap_return_0;
case 1: goto copy_stack_into_heap_return_1;
case 2: goto copy_stack_into_heap_return_2;
case 3: goto copy_stack_into_heap_return_3;
}}
preserve_continuation: {
key_765X = merged_arg1K0;
reason_766X = merged_arg0K1;{
p_603X = RSenvS;
if ((p_603X < Sstack_beginS)) {
goto L13897;}
else {
if ((Sstack_endS < p_603X)) {
goto L13897;}
else {
merged_arg1K0 = RSenvS;
merged_arg1K1 = ScontS;
merged_arg1K2 = key_765X;
merged_arg0K3 = reason_766X;
save_env_in_heap_return_tag = 1;
goto save_env_in_heap;
save_env_in_heap_return_1:
v_604X = save_env_in_heap_return_value;
RSenvS = v_604X;
goto L13897;}}}
L13902: {
cont_605X = arg1K0;
previous_606X = arg1K1;
if ((cont_605X == Sbottom_of_stackS)) {
*((long*)(-3 + previous_606X)) = end_612X;
cont_608X = *((long*)(-3 + Sbottom_of_stackS));
if ((1 == cont_608X)) {
arg1K0 = Sbottom_of_stackS;
goto L13955;}
else {
merged_arg1K0 = cont_608X;
copy_continuation_from_heap_return_tag = 2;
goto copy_continuation_from_heap;
copy_continuation_from_heap_return_2:
v_607X = copy_continuation_from_heap_return_value;
arg1K0 = v_607X;
goto L13955;}}
else {
p_609X = *((long*)(9 + cont_605X));
if ((p_609X < Sstack_beginS)) {
goto L13924;}
else {
if ((Sstack_endS < p_609X)) {
goto L13924;}
else {
merged_arg1K0 = (*((long*)(9 + cont_605X)));
merged_arg1K1 = cont_605X;
merged_arg1K2 = key_765X;
merged_arg0K3 = reason_766X;
save_env_in_heap_return_tag = 2;
goto save_env_in_heap;
save_env_in_heap_return_2:
goto L13924;}}}}
L13924: {
merged_arg1K0 = cont_605X;
merged_arg1K1 = key_765X;
copy_stob_return_tag = 0;
goto copy_stob;
copy_stob_return_0:
new_610X = copy_stob_return_value;
*((long*)(-3 + previous_606X)) = new_610X;
arg1K0 = (*((long*)(-3 + new_610X)));
arg1K1 = new_610X;
goto L13902;}
L13955: {
v_611X = arg1K0;
ScontS = v_611X;
preserve_continuation_return_value = cont_608X;
goto preserve_continuation_return;}
L13897: {
end_612X = *((long*)(-3 + Sbottom_of_stackS));
arg1K0 = ScontS;
arg1K1 = Sbottom_of_stackS;
goto L13902;}
preserve_continuation_return:
switch (preserve_continuation_return_tag) {
case 0: goto preserve_continuation_return_0;
case 1: goto preserve_continuation_return_1;
}}
copy_continuation_from_heap: {
cont_763X = merged_arg1K0;{
cells_613X = (3 + ((*((long*)(-7 + cont_763X))) >> 8)) >> 2;
top_614X = (-11 + Sbottom_of_stackS) - (cells_613X << 2);
new_cont_615X = 7 + top_614X;
RSstackS = (-4 + top_614X);
v_616X = (3 + ((*((long*)(-7 + cont_763X))) >> 8)) >> 2;
from_617X = -7 + cont_763X;
arg1K0 = from_617X;
arg1K1 = top_614X;
goto L12021;}
L12021: {
from_618X = arg1K0;
to_619X = arg1K1;
if ((from_618X < (4 + (from_617X + (v_616X << 2))))) {
*((long*)to_619X) = (*((long*)from_618X));
arg1K0 = (4 + from_618X);
arg1K1 = (4 + to_619X);
goto L12021;}
else {
*((long*)(-3 + Sbottom_of_stackS)) = (*((long*)(-3 + new_cont_615X)));
*((long*)(-3 + new_cont_615X)) = Sbottom_of_stackS;
copy_continuation_from_heap_return_value = new_cont_615X;
goto copy_continuation_from_heap_return;}}
copy_continuation_from_heap_return:
switch (copy_continuation_from_heap_return_tag) {
case 0: goto copy_continuation_from_heap_return_0;
case 1: goto copy_continuation_from_heap_return_1;
case 2: goto copy_continuation_from_heap_return_2;
}}
save_env_in_heap: {
env_759X = merged_arg1K0;
cont_760X = merged_arg1K1;
key_761X = merged_arg1K2;{
merged_arg1K0 = env_759X;
merged_arg1K1 = key_761X;
copy_stob_return_tag = 1;
goto copy_stob;
copy_stob_return_1:
new_620X = copy_stob_return_value;
*((long*)(-7 + env_759X)) = new_620X;
arg1K0 = new_620X;
goto L12715;}
L12715: {
env_621X = arg1K0;
p_622X = *((long*)(-3 + env_621X));
if ((p_622X < Sstack_beginS)) {
goto L12739;}
else {
if ((Sstack_endS < p_622X)) {
goto L12739;}
else {
env_623X = *((long*)(-3 + env_621X));
merged_arg1K0 = env_623X;
merged_arg1K1 = key_761X;
copy_stob_return_tag = 2;
goto copy_stob;
copy_stob_return_2:
new_624X = copy_stob_return_value;
*((long*)(-7 + env_623X)) = new_624X;
*((long*)(-3 + env_621X)) = new_624X;
arg1K0 = new_624X;
goto L12715;}}}
L12741: {
cont_625X = arg1K0;
env_626X = *((long*)(9 + cont_625X));
if ((3 == (3 & env_626X))) {
if ((3 == (3 & (*((long*)(-7 + env_626X)))))) {
*((long*)(9 + cont_625X)) = (*((long*)(-7 + env_626X)));
arg1K0 = (*((long*)(-3 + cont_625X)));
goto L12741;}
else {
save_env_in_heap_return_value = new_620X;
goto save_env_in_heap_return;}}
else {
save_env_in_heap_return_value = new_620X;
goto save_env_in_heap_return;}}
L12739: {
arg1K0 = cont_760X;
goto L12741;}
save_env_in_heap_return:
switch (save_env_in_heap_return_tag) {
case 0: goto save_env_in_heap_return_0;
case 1: goto save_env_in_heap_return_1;
case 2: goto save_env_in_heap_return_2;
}}
copy_stob: {
stob_757X = merged_arg1K0;{
len_629X = (*((long*)(-7 + stob_757X))) >> 8;
h_628X = *((long*)(-7 + stob_757X));
*((long*)ShpS) = (2 + (((len_629X << 6) + (31 & (h_628X >> 2))) << 2));
ShpS = (4 + ShpS);
new_627X = 3 + ShpS;
ShpS = (ShpS + (-4 & (3 + len_629X)));
if ((0 < len_629X)) {
*((long*)(-4 + ShpS)) = 0;
arg1K0 = new_627X;
goto L9397;}
else {
arg1K0 = new_627X;
goto L9397;}}
L9418: {
from_630X = arg1K0;
to_631X = arg1K1;
if ((from_630X < (from_634X + (-4 & (3 + bytes_633X))))) {
*((long*)to_631X) = (*((long*)from_630X));
arg1K0 = (4 + from_630X);
arg1K1 = (4 + to_631X);
goto L9418;}
else {
copy_stob_return_value = new_632X;
goto copy_stob_return;}}
L9397: {
new_632X = arg1K0;
bytes_633X = (*((long*)(-7 + stob_757X))) >> 8;
from_634X = -3 + stob_757X;
arg1K0 = from_634X;
arg1K1 = (-3 + new_632X);
goto L9418;}
copy_stob_return:
switch (copy_stob_return_tag) {
case 0: goto copy_stob_return_0;
case 1: goto copy_stob_return_1;
case 2: goto copy_stob_return_2;
}}
push_exception_continuationB: {
{ x_635X = Sstack_limitS < (-296 + RSstackS);
if (x_635X) {
arg1K0 = 0;
goto L13671;}
else {
Sstack_limitS = Sstack_beginS;
Sexception_space_usedPS = 1;
x_636X = Sstack_limitS < (-296 + RSstackS);
if (x_636X) {
arg1K0 = 0;
goto L13671;}
else {
TTerror("insufficient space on stack for exception frame", 0, 0, 0, 0);
arg1K0 = 0;
goto L13671;}}}
L13683: {
p_637X = arg1K0;
i_638X = arg1K1;
if ((2 == (3 & (*((long*)p_637X))))) {
merged_arg1K0 = RScode_pointerS;
merged_arg1K1 = i_638X;
merged_arg1K2 = key_639X;
push_continuationB_return_tag = 2;
goto push_continuationB;
push_continuationB_return_2:
goto push_exception_continuationB_return;}
else {
arg1K0 = (4 + p_637X);
arg1K1 = (1 + i_638X);
goto L13683;}}
L13671: {
key_639X = arg1K0;
arg1K0 = (4 + RSstackS);
arg1K1 = 0;
goto L13683;}
push_exception_continuationB_return:
switch (push_exception_continuationB_return_tag) {
case 0: goto push_exception_continuationB_return_0;
case 1: goto push_exception_continuationB_return_1;
case 2: goto push_exception_continuationB_return_2;
case 3: goto push_exception_continuationB_return_3;
case 4: goto push_exception_continuationB_return_4;
}}
push_continuationB: {
code_pointer_754X = merged_arg1K0;
size_755X = merged_arg1K1;{
pc_640X = 12 + ((code_pointer_754X - (*((long*)(-3 + StemplateS)))) << 2);
template_641X = StemplateS;
RSstackS = (-20 + RSstackS);
/*** JAR HACK -- IMMUTABLE CONTINUATIONS ***/
*((long*)(4 + RSstackS)) = ((4130 + 128) + (size_755X << 10));
cont_642X = 11 + RSstackS;
*((long*)(1 + cont_642X)) = pc_640X;
*((long*)(5 + cont_642X)) = template_641X;
*((long*)(9 + cont_642X)) = RSenvS;
*((long*)(-3 + cont_642X)) = ScontS;
ScontS = cont_642X;
goto push_continuationB_return;}
push_continuationB_return:
switch (push_continuationB_return_tag) {
case 0: goto push_continuationB_return_0;
case 1: goto push_continuationB_return_1;
case 2: goto push_continuationB_return_2;
}}
pop_args_list: {
start_752X = merged_arg1K0;
count_753X = merged_arg1K1;{
space_643X = 3 * SnargsS;
v_644X = (ShpS + (space_643X << 2)) < SlimitS;
if (v_644X) {
goto L14390;}
else {
merged_arg1K0 = 0;
collect_saving_temp_return_tag = 18;
goto collect_saving_temp;
collect_saving_temp_return_18:
okayP_645X = (ShpS + (space_643X << 2)) < SlimitS;
if (okayP_645X) {
goto L14390;}
else {
TTerror("Scheme48 heap overflow", 0, 0, 0, 0);
goto L14390;}}}
L14392: {
args_646X = arg1K0;
count_647X = arg1K1;
if ((0 < count_647X)) {
RSstackS = (4 + RSstackS);
a_648X = *((long*)RSstackS);
*((long*)ShpS) = 2050;
ShpS = (4 + ShpS);
new_649X = 3 + ShpS;
ShpS = (8 + ShpS);
*((long*)(-4 + ShpS)) = 0;
*((long*)(-3 + new_649X)) = a_648X;
*((long*)(1 + new_649X)) = args_646X;
arg1K0 = new_649X;
arg1K1 = (-1 + count_647X);
goto L14392;}
else {
pop_args_list_return_value = args_646X;
goto pop_args_list_return;}}
L14390: {
arg1K0 = start_752X;
arg1K1 = count_753X;
goto L14392;}
pop_args_list_return:
switch (pop_args_list_return_tag) {
case 0: goto pop_args_list_return_0;
case 1: goto pop_args_list_return_1;
case 2: goto pop_args_list_return_2;
case 3: goto pop_args_list_return_3;
case 4: goto pop_args_list_return_4;
case 5: goto pop_args_list_return_5;
case 6: goto pop_args_list_return_6;
case 7: goto pop_args_list_return_7;
case 8: goto pop_args_list_return_8;
case 9: goto pop_args_list_return_9;
}}
collect_saving_temp: {
value_750X = merged_arg1K0;{
b_654X = Snewspace_beginS;
Snewspace_beginS = Soldspace_beginS;
Soldspace_beginS = b_654X;
e_653X = Snewspace_endS;
Snewspace_endS = Soldspace_endS;
Soldspace_endS = e_653X;
Ssaved_limitS = SlimitS;
Ssaved_hpS = ShpS;
SlimitS = Snewspace_endS;
ShpS = Snewspace_beginS;
Sweak_pointer_hpS = -1;
pc_652X = 12 + ((RScode_pointerS - (*((long*)(-3 + StemplateS)))) << 2);
value_651X = StemplateS;
if ((3 == (3 & value_651X))) {
a_655X = -3 + value_651X;
if ((a_655X < Soldspace_beginS)) {
arg1K0 = value_651X;
goto L13430;}
else {
v_656X = a_655X < Soldspace_endS;
if (v_656X) {
merged_arg1K0 = value_651X;
copy_object_return_tag = 1;
goto copy_object;
copy_object_return_1:
v_650X = copy_object_return_value;
arg1K0 = v_650X;
goto L13430;}
else {
arg1K0 = value_651X;
goto L13430;}}}
else {
arg1K0 = value_651X;
goto L13430;}}
L13803: {
i_657X = arg1K0;
if ((i_657X == Snumber_of_portsS)) {
x_658X = (ShpS + (Sminimum_recovered_spaceS << 2)) < SlimitS;
if (x_658X) {
collect_saving_temp_return_value = value_662X;
goto collect_saving_temp_return;}
else {
Spending_interruptsS = (4 | Spending_interruptsS);
collect_saving_temp_return_value = value_662X;
goto collect_saving_temp_return;}}
else {
port_659X = *(Sopen_vm_portsS + i_657X);
if ((1 == port_659X)) {
goto L13807;}
else {
header_660X = *((long*)(-7 + port_659X));
if ((3 == (3 & header_660X))) {
arg1K0 = header_660X;
goto L13814;}
else {
merged_arg1K0 = port_659X;
close_port_noisily_return_tag = 1;
goto close_port_noisily;
close_port_noisily_return_1:
arg1K0 = 1;
goto L13814;}}}}
L13807: {
arg1K0 = (1 + i_657X);
goto L13803;}
L13814: {
new_661X = arg1K0;
*(Sopen_vm_portsS + i_657X) = new_661X;
goto L13807;}
L13752: {
value_662X = arg1K0;
SvalS = RSvalS;
SstackS = RSstackS;
Scode_pointerS = RScode_pointerS;
SenvS = RSenvS;
do_gc();
RSvalS = SvalS;
RSstackS = SstackS;
RScode_pointerS = Scode_pointerS;
RSenvS = SenvS;
Sgc_countS = (1 + Sgc_countS);
arg1K0 = 2;
goto L13803;}
L13471: {
cont_663X = arg1K0;
last_env_664X = arg1K1;
env_665X = *((long*)(9 + cont_663X));
byte_count_666X = (*((long*)(-7 + cont_663X))) >> 8;
arg1K0 = (-3 + cont_663X);
goto L13522;}
L13478: {
if ((cont_663X == Sbottom_of_stackS)) {
if ((3 == (3 & value_750X))) {
a_668X = -3 + value_750X;
if ((a_668X < Soldspace_beginS)) {
arg1K0 = value_750X;
goto L13752;}
else {
v_669X = a_668X < Soldspace_endS;
if (v_669X) {
merged_arg1K0 = value_750X;
copy_object_return_tag = 2;
goto copy_object;
copy_object_return_2:
v_667X = copy_object_return_value;
arg1K0 = v_667X;
goto L13752;}
else {
arg1K0 = value_750X;
goto L13752;}}}
else {
arg1K0 = value_750X;
goto L13752;}}
else {
arg1K0 = (*((long*)(-3 + cont_663X)));
arg1K1 = env_665X;
goto L13471;}}
L13488: {
env_670X = arg1K0;
if ((env_670X < Sstack_beginS)) {
goto L13478;}
else {
if ((Sstack_endS < env_670X)) {
goto L13478;}
else {
byte_count_671X = (*((long*)(-7 + env_670X))) >> 8;
arg1K0 = (-3 + env_670X);
goto L13508;}}}
L13508: {
addr_672X = arg1K0;
if ((addr_672X < ((-3 + env_670X) + (-4 & (3 + byte_count_671X))))) {
merged_arg1K0 = addr_672X;
copy_next_return_tag = 0;
goto copy_next;
copy_next_return_0:
v_673X = copy_next_return_value;
arg1K0 = v_673X;
goto L13508;}
else {
arg1K0 = (*((long*)(-3 + env_670X)));
goto L13488;}}
L13522: {
addr_674X = arg1K0;
if ((addr_674X < ((-3 + cont_663X) + (-4 & (3 + byte_count_666X))))) {
merged_arg1K0 = addr_674X;
copy_next_return_tag = 1;
goto copy_next;
copy_next_return_1:
v_675X = copy_next_return_value;
arg1K0 = v_675X;
goto L13522;}
else {
if ((env_665X == last_env_664X)) {
goto L13478;}
else {
arg1K0 = env_665X;
goto L13488;}}}
L13536: {
addr_676X = arg1K0;
if ((addr_676X < end_680X)) {
merged_arg1K0 = addr_676X;
copy_next_return_tag = 2;
goto copy_next;
copy_next_return_2:
v_677X = copy_next_return_value;
arg1K0 = v_677X;
goto L13536;}
else {
arg1K0 = ScontS;
arg1K1 = 0;
goto L13471;}}
L13456: {
env_678X = arg1K0;
RSenvS = env_678X;
start_679X = 4 + RSstackS;
end_680X = -7 + ScontS;
arg1K0 = start_679X;
goto L13536;}
L13450: {
v_681X = arg1K0;
Sinterrupt_templateS = v_681X;
value_683X = RSenvS;
if ((3 == (3 & value_683X))) {
a_684X = -3 + value_683X;
if ((a_684X < Soldspace_beginS)) {
arg1K0 = value_683X;
goto L13456;}
else {
v_685X = a_684X < Soldspace_endS;
if (v_685X) {
merged_arg1K0 = value_683X;
copy_object_return_tag = 3;
goto copy_object;
copy_object_return_3:
v_682X = copy_object_return_value;
arg1K0 = v_682X;
goto L13456;}
else {
arg1K0 = value_683X;
goto L13456;}}}
else {
arg1K0 = value_683X;
goto L13456;}}
L13446: {
v_686X = arg1K0;
Sinterrupt_handlersS = v_686X;
value_688X = Sinterrupt_templateS;
if ((3 == (3 & value_688X))) {
a_689X = -3 + value_688X;
if ((a_689X < Soldspace_beginS)) {
arg1K0 = value_688X;
goto L13450;}
else {
v_690X = a_689X < Soldspace_endS;
if (v_690X) {
merged_arg1K0 = value_688X;
copy_object_return_tag = 4;
goto copy_object;
copy_object_return_4:
v_687X = copy_object_return_value;
arg1K0 = v_687X;
goto L13450;}
else {
arg1K0 = value_688X;
goto L13450;}}}
else {
arg1K0 = value_688X;
goto L13450;}}
L13442: {
v_691X = arg1K0;
Sexception_handlerS = v_691X;
value_693X = Sinterrupt_handlersS;
if ((3 == (3 & value_693X))) {
a_694X = -3 + value_693X;
if ((a_694X < Soldspace_beginS)) {
arg1K0 = value_693X;
goto L13446;}
else {
v_695X = a_694X < Soldspace_endS;
if (v_695X) {
merged_arg1K0 = value_693X;
copy_object_return_tag = 5;
goto copy_object;
copy_object_return_5:
v_692X = copy_object_return_value;
arg1K0 = v_692X;
goto L13446;}
else {
arg1K0 = value_693X;
goto L13446;}}}
else {
arg1K0 = value_693X;
goto L13446;}}
L13438: {
v_696X = arg1K0;
Sdynamic_stateS = v_696X;
value_698X = Sexception_handlerS;
if ((3 == (3 & value_698X))) {
a_699X = -3 + value_698X;
if ((a_699X < Soldspace_beginS)) {
arg1K0 = value_698X;
goto L13442;}
else {
v_700X = a_699X < Soldspace_endS;
if (v_700X) {
merged_arg1K0 = value_698X;
copy_object_return_tag = 6;
goto copy_object;
copy_object_return_6:
v_697X = copy_object_return_value;
arg1K0 = v_697X;
goto L13442;}
else {
arg1K0 = value_698X;
goto L13442;}}}
else {
arg1K0 = value_698X;
goto L13442;}}
L13434: {
v_701X = arg1K0;
RSvalS = v_701X;
value_703X = Sdynamic_stateS;
if ((3 == (3 & value_703X))) {
a_704X = -3 + value_703X;
if ((a_704X < Soldspace_beginS)) {
arg1K0 = value_703X;
goto L13438;}
else {
v_705X = a_704X < Soldspace_endS;
if (v_705X) {
merged_arg1K0 = value_703X;
copy_object_return_tag = 7;
goto copy_object;
copy_object_return_7:
v_702X = copy_object_return_value;
arg1K0 = v_702X;
goto L13438;}
else {
arg1K0 = value_703X;
goto L13438;}}}
else {
arg1K0 = value_703X;
goto L13438;}}
L13430: {
tem_706X = arg1K0;
StemplateS = tem_706X;
RScode_pointerS = ((-3 + (*((long*)(-3 + tem_706X)))) + (pc_652X >> 2));
value_708X = RSvalS;
if ((3 == (3 & value_708X))) {
a_709X = -3 + value_708X;
if ((a_709X < Soldspace_beginS)) {
arg1K0 = value_708X;
goto L13434;}
else {
v_710X = a_709X < Soldspace_endS;
if (v_710X) {
merged_arg1K0 = value_708X;
copy_object_return_tag = 8;
goto copy_object;
copy_object_return_8:
v_707X = copy_object_return_value;
arg1K0 = v_707X;
goto L13434;}
else {
arg1K0 = value_708X;
goto L13434;}}}
else {
arg1K0 = value_708X;
goto L13434;}}
collect_saving_temp_return:
switch (collect_saving_temp_return_tag) {
case 0: goto collect_saving_temp_return_0;
case 1: goto collect_saving_temp_return_1;
case 2: goto collect_saving_temp_return_2;
case 3: goto collect_saving_temp_return_3;
case 4: goto collect_saving_temp_return_4;
case 5: goto collect_saving_temp_return_5;
case 6: goto collect_saving_temp_return_6;
case 7: goto collect_saving_temp_return_7;
case 8: goto collect_saving_temp_return_8;
case 9: goto collect_saving_temp_return_9;
case 10: goto collect_saving_temp_return_10;
case 11: goto collect_saving_temp_return_11;
case 12: goto collect_saving_temp_return_12;
case 13: goto collect_saving_temp_return_13;
case 14: goto collect_saving_temp_return_14;
case 15: goto collect_saving_temp_return_15;
case 16: goto collect_saving_temp_return_16;
case 17: goto collect_saving_temp_return_17;
case 18: goto collect_saving_temp_return_18;
}}
copy_next: {
addr_748X = merged_arg1K0;{
next_711X = 4 + addr_748X;
thing_712X = *((long*)addr_748X);
if ((2 == (3 & thing_712X))) {
if (((31 & (thing_712X >> 2)) < 15)) {
goto L11308;}
else {
copy_next_return_value = (next_711X + (-4 & (3 + (thing_712X >> 8))));
goto copy_next_return;}}
else {
goto L11308;}}
L11308: {
if ((3 == (3 & thing_712X))) {
a_714X = -3 + thing_712X;
if ((a_714X < Soldspace_beginS)) {
copy_next_return_value = next_711X;
goto copy_next_return;}
else {
v_715X = a_714X < Soldspace_endS;
if (v_715X) {
merged_arg1K0 = thing_712X;
copy_object_return_tag = 9;
goto copy_object;
copy_object_return_9:
value_713X = copy_object_return_value;
*((long*)addr_748X) = value_713X;
copy_next_return_value = next_711X;
goto copy_next_return;}
else {
copy_next_return_value = next_711X;
goto copy_next_return;}}}
else {
copy_next_return_value = next_711X;
goto copy_next_return;}}
copy_next_return:
switch (copy_next_return_tag) {
case 0: goto copy_next_return_0;
case 1: goto copy_next_return_1;
case 2: goto copy_next_return_2;
}}
copy_object: {
thing_746X = merged_arg1K0;{
h_717X = *((long*)(-7 + thing_746X));
if ((3 == (3 & h_717X))) {
copy_object_return_value = h_717X;
goto copy_object_return;}
else {
if ((1070 == h_717X)) {
SvalS = RSvalS;
SstackS = RSstackS;
Scode_pointerS = RScode_pointerS;
SenvS = RSenvS;
v_716X = copy_weak_pointer(thing_746X);
RSvalS = SvalS;
RSstackS = SstackS;
RScode_pointerS = Scode_pointerS;
RSenvS = SenvS;
copy_object_return_value = v_716X;
goto copy_object_return;}
else {
*((long*)ShpS) = h_717X;
ShpS = (4 + ShpS);
new_718X = 3 + ShpS;
*((long*)(-7 + thing_746X)) = new_718X;
x1_719X = ShpS;
arg1K0 = (-3 + thing_746X);
goto L9826;}}}
L9826: {
o_720X = arg1K0;
if ((ShpS < (x1_719X + (-4 & (3 + (h_717X >> 8)))))) {
*((long*)ShpS) = (*((long*)o_720X));
ShpS = (4 + ShpS);
arg1K0 = (4 + o_720X);
goto L9826;}
else {
copy_object_return_value = new_718X;
goto copy_object_return;}}
copy_object_return:
switch (copy_object_return_tag) {
case 0: goto copy_object_return_0;
case 1: goto copy_object_return_1;
case 2: goto copy_object_return_2;
case 3: goto copy_object_return_3;
case 4: goto copy_object_return_4;
case 5: goto copy_object_return_5;
case 6: goto copy_object_return_6;
case 7: goto copy_object_return_7;
case 8: goto copy_object_return_8;
case 9: goto copy_object_return_9;
}}
close_port_noisily: {
port_744X = merged_arg1K0;{
header_721X = *((long*)(-7 + (*((long*)(9 + port_744X)))));
if ((3 == (3 & header_721X))) {
goto L12329;}
else {
goto L12329;}}
L12329: {
merged_arg1K0 = port_744X;
close_port_return_tag = 1;
goto close_port;
close_port_return_1:
fputs("Port closed: ", Scurrent_output_portS);
string_722X = *((long*)(9 + port_744X));
port_723X = Scurrent_output_portS;
count_724X = (*((long*)(-7 + string_722X))) >> 8;
fwrite((void *)(-3 + string_722X), sizeof(char), count_724X, port_723X);
putc(10, Scurrent_output_portS);
goto close_port_noisily_return;}
close_port_noisily_return:
switch (close_port_noisily_return_tag) {
case 0: goto close_port_noisily_return_0;
case 1: goto close_port_noisily_return_1;
}}
close_port: {
vm_port_743X = merged_arg1K0;{
if (((*((long*)(1 + vm_port_743X))) < 0)) {
goto close_port_return;}
else {
index_727X = (*((long*)(1 + vm_port_743X))) >> 2;
if ((0 == index_727X)) {
goto close_port_return;}
else {
if ((1 == index_727X)) {
goto close_port_return;}
else {
mode_726X = (*((long*)(-3 + vm_port_743X))) >> 2;
port_725X = *(Sopen_portsS + ((*((long*)(1 + vm_port_743X))) >> 2));
if ((1 == mode_726X)) {
fclose(port_725X);
goto L10973;}
else {
if ((2 == mode_726X)) {
fclose(port_725X);
goto L10973;}
else {
TTerror("this shouldn't happen when closing a port", 0, 0, 0, 0);
goto L10973;}}}}}}
L10973: {
*((long*)(-3 + vm_port_743X)) = 0;
*((long*)(1 + vm_port_743X)) = -4;
*(Sopen_vm_portsS + index_727X) = 1;
goto close_port_return;}
close_port_return:
switch (close_port_return_tag) {
case 0: goto close_port_return_0;
case 1: goto close_port_return_1;
}}
write_number: {
x_741X = merged_arg1K0;
port_742X = merged_arg2K1;{
if ((x_741X < 0)) {
putc(45, port_742X);
arg1K0 = (0 - x_741X);
goto L29080;}
else {
arg1K0 = x_741X;
goto L29080;}}
L29080: {
v_728X = arg1K0;
SvalS = RSvalS;
SstackS = RSstackS;
Scode_pointerS = RScode_pointerS;
SenvS = RSenvS;
really_write_number(v_728X, port_742X);
RSvalS = SvalS;
RSstackS = SstackS;
RScode_pointerS = Scode_pointerS;
RSenvS = SenvS;
putc(10, port_742X);
goto write_number_return;}
write_number_return:
switch (write_number_return_tag) {
case 0: goto write_number_return_0;
case 1: goto write_number_return_1;
case 2: goto write_number_return_2;
case 3: goto write_number_return_3;
case 4: goto write_number_return_4;
}}
stob_equalP: {
stob1_739X = merged_arg1K0;
stob2_740X = merged_arg1K1;{
z2_730X = *((long*)(-7 + stob2_740X));
z1_729X = *((long*)(-7 + stob1_739X));
if (((128 | z1_729X) == (128 | z2_730X))) {
arg1K0 = 0;
goto L8031;}
else {
stob_equalP_return_value = 0;
goto stob_equalP_return;}}
L8031: {
i_731X = arg1K0;
if ((i_731X < ((3 + (z1_729X >> 8)) >> 2))) {
if (((*((long*)((-3 + stob1_739X) + (i_731X << 2)))) == (*((long*)((-3 + stob2_740X) + (i_731X << 2)))))) {
arg1K0 = (1 + i_731X);
goto L8031;}
else {
stob_equalP_return_value = 0;
goto stob_equalP_return;}}
else {
stob_equalP_return_value = 1;
goto stob_equalP_return;}}
stob_equalP_return:
switch (stob_equalP_return_tag) {
case 0: goto stob_equalP_return_0;
case 1: goto stob_equalP_return_1;
}}
extract_string: {
string_737X = merged_arg1K0;{
z_732X = (*((long*)(-7 + string_737X))) >> 8;
v_733X = (unsigned char *)calloc( 1, 1 + z_732X);
arg1K0 = 0;
goto L10649;}
L10649: {
i_734X = arg1K0;
if ((i_734X < z_732X)) {
v_735X = (long)(*((unsigned char*)((-3 + string_737X) + i_734X)));
*(v_733X + i_734X) = (v_735X);
arg1K0 = (1 + i_734X);
goto L10649;}
else {
extract_string_return_value = v_733X;
goto extract_string_return;}}
extract_string_return:
switch (extract_string_return_tag) {
case 0: goto extract_string_return_0;
case 1: goto extract_string_return_1;
case 2: goto extract_string_return_2;
}}
}
long copy_weak_pointer(long weak_797X)
{
extern long ShpS;
extern long Sweak_pointer_limitS;
extern long Sweak_pointer_hpS;
unsigned char tempWW2427_798X;
long old_799X;
long new_800X;
{tempWW2427_798X = -1 == Sweak_pointer_hpS;
if (tempWW2427_798X) {
goto L8493;}
else {
if ((Sweak_pointer_hpS < Sweak_pointer_limitS)) {
goto L8498;}
else {
goto L8493;}}}
L8493: {
old_799X = Sweak_pointer_hpS;
Sweak_pointer_hpS = ShpS;
ShpS = (1024 + ShpS);
Sweak_pointer_limitS = ShpS;
*((long*)Sweak_pointer_hpS) = 261186;
*((long*)(8 + Sweak_pointer_hpS)) = old_799X;
goto L8498;}
L8498: {
new_800X = 7 + Sweak_pointer_hpS;
*((long*)(4 + Sweak_pointer_hpS)) = (*((long*)(-3 + weak_797X)));
Sweak_pointer_hpS = (8 + Sweak_pointer_hpS);
*((long*)(-7 + weak_797X)) = new_800X;
return(new_800X);}}
void really_write_number(long x_801X, FILE * port_802X)
{
extern void really_write_number(long, FILE *);
long v_803X;
long v_804X;
{if ((x_801X < 10)) {
goto L29044;}
else {
v_803X = x_801X / 10;
really_write_number(v_803X, port_802X);
goto L29044;}}
L29044: {
v_804X = x_801X % 10;
putc(((48 + v_804X)), port_802X);
return;}}
long resume(unsigned char *filename_805X, unsigned char **startup_vector_806X, long startup_vector_length_807X, long initial_memory_size_808X, long initial_stack_size_809X)
{
extern long Soldspace_beginS;
extern long Soldspace_endS;
extern long SlimitS;
extern long Snumber_of_portsS;
extern FILE * Scurrent_input_portS;
extern FILE * *Sopen_portsS;
extern long Sstack_endS;
extern long ScontS;
extern long Sbottom_of_stackS;
extern long SenvS;
extern long Sinterrupt_templateS;
extern long StemplateS;
extern long Sdynamic_stateS;
extern long Sexception_handlerS;
extern long Sinterrupt_handlersS;
extern long Senabled_interruptsS;
extern long Spending_interruptsS;
extern long Scode_pointerS;
extern long Tinterpret();
extern long call_external_value(long, long, long);
extern long SnargsS;
extern long SvalS;
extern long SstackS;
extern long Sstack_beginS;
extern long Sstack_limitS;
extern unsigned char Sexception_space_usedPS;
extern long *Sopen_vm_portsS;
extern long Snewspace_endS;
extern long Snewspace_beginS;
extern FILE * Scurrent_output_portS;
extern long ShpS;
extern long Smemory_beginS;
extern long Smemory_endS;
extern long SmemoryS;
unsigned char arg4K0;
unsigned char arg4K1;
long arg1K1;
long arg1K0;
unsigned char arg3K0;
FILE * merged_arg2K0;
char merged_arg0K1;
char merged_arg0K0;
unsigned char *merged_arg5K0;
int enter_string_return_tag;
long enter_string_return_value;
int make_template_containing_ops_return_tag;
long make_template_containing_ops_return_value;
int read_number_return_tag;
long read_number_return_value;
long size_810X;
unsigned char x_811X;
long v_812X;
long start_813X;
long semisize_814X;
unsigned char reverseP_815X;
long start_816X;
long v_817X;
long ptr_818X;
long value_819X;
unsigned char x_820X;
unsigned char x_821X;
long d_822X;
long v_823X;
long ptr_824X;
long descriptor_825X;
long result_826X;
FILE * *v_827X;
long *v_828X;
unsigned char tempWW2435_829X;
long old_level_830X;
long old_bytes_per_cell_831X;
long cells_832X;
long old_begin_833X;
long cells_834X;
long old_hp_835X;
long startup_proc_836X;
unsigned char Kchar_837X;
unsigned char Kchar_838X;
long start_839X;
long addr_840X;
unsigned char x_841X;
unsigned char x_842X;
long new_limit_843X;
long new_hp_844X;
long delta_845X;
long i_846X;
long d_847X;
long new_848X;
long d_849X;
long new_850X;
long cells_851X;
long start_852X;
long template_853X;
long cont_854X;
long v_855X;
long len_856X;
long new_857X;
long *v_858X;
long length_859X;
long tem_860X;
long x_861X;
long x_862X;
long new_863X;
long count_864X;
long v_865X;
long v_866X;
long v_867X;
char option_868X;
long vector_869X;
long i_870X;
unsigned char x_871X;
long val_872X;
long i_873X;
long s_874X;
FILE * port_875X;
long len_876X;
unsigned char Kchar_877X;
unsigned char ch_878X;
long r_879X;
unsigned char ch_880X;
long r_881X;
unsigned char Kchar_882X;
unsigned char ch_883X;
unsigned char ch_884X;
long new_885X;
long new_886X;
long new_887X;
long z_888X;
long i_889X;
unsigned char c_890X;
long s_891X;
long c_892X;
unsigned char *string_893X;
long c_894X;
char op1_895X;
char op2_896X;
long c_897X;
FILE * port_898X;
{size_810X = -4 & initial_memory_size_808X;
if ((size_810X == (Smemory_endS - Smemory_beginS))) {
goto L14924;}
else {
x_811X = 0 == Smemory_endS;
if (x_811X) {
goto L4604;}
else {
free(SmemoryS);
goto L4604;}}}
L14924: {
v_812X = (Smemory_endS - Smemory_beginS) >> 2;
start_813X = Smemory_beginS;
semisize_814X = (-2 & (v_812X - (initial_stack_size_809X >> 2))) << 1;
Snewspace_beginS = start_813X;
Snewspace_endS = (Snewspace_beginS + semisize_814X);
Soldspace_beginS = Snewspace_endS;
Soldspace_endS = (Soldspace_beginS + semisize_814X);
ShpS = Snewspace_beginS;
SlimitS = Snewspace_endS;
arg1K0 = 0;
arg1K1 = 0;
goto L14935;}
L4616: {
Smemory_beginS = SmemoryS;
Smemory_endS = (SmemoryS + size_810X);
goto L14924;}
L4604: {
SmemoryS = ((long)malloc(size_810X));
if ((-1 == SmemoryS)) {
TTerror("out of memory, unable to continue", 0, 0, 0, 0);
goto L4616;}
else {
goto L4616;}}
L9175: {
reverseP_815X = arg3K0;
fread((void *)Snewspace_beginS, sizeof(char), (old_hp_835X - old_begin_833X), port_875X);
if (reverseP_815X) {
start_816X = Snewspace_beginS;
fputs("Correcting byte order of resumed image.", Scurrent_output_portS);
putc(10, Scurrent_output_portS);
arg1K0 = start_816X;
goto L7649;}
else {
goto L9185;}}
L7675: {
v_817X = arg1K0;
arg1K0 = v_817X;
goto L7649;}
L7649: {
ptr_818X = arg1K0;
x_821X = *((unsigned char*)ptr_818X);
*((unsigned char*)ptr_818X) = ((unsigned char)((long)(*((unsigned char*)(3 + ptr_818X)))));
*((unsigned char*)(3 + ptr_818X)) = ((unsigned char)((long)x_821X));
x_820X = *((unsigned char*)(1 + ptr_818X));
*((unsigned char*)(1 + ptr_818X)) = ((unsigned char)((long)(*((unsigned char*)(2 + ptr_818X)))));
*((unsigned char*)(2 + ptr_818X)) = ((unsigned char)((long)x_820X));
value_819X = *((long*)ptr_818X);
if ((ptr_818X < new_hp_844X)) {
if ((2 == (3 & value_819X))) {
if (((31 & (value_819X >> 2)) < 15)) {
arg1K0 = (4 + ptr_818X);
goto L7675;}
else {
arg1K0 = ((4 + ptr_818X) + (-4 & (3 + (value_819X >> 8))));
goto L7675;}}
else {
arg1K0 = (4 + ptr_818X);
goto L7675;}}
else {
goto L9185;}}
L7770: {
d_822X = arg1K0;
*((long*)ptr_824X) = d_822X;
if ((2 == (3 & d_822X))) {
if (((31 & (d_822X >> 2)) < 15)) {
arg1K0 = (4 + ptr_824X);
goto L7788;}
else {
arg1K0 = ((4 + ptr_824X) + (-4 & (3 + (d_822X >> 8))));
goto L7788;}}
else {
arg1K0 = (4 + ptr_824X);
goto L7788;}}
L7788: {
v_823X = arg1K0;
arg1K0 = v_823X;
goto L7760;}
L7760: {
ptr_824X = arg1K0;
if ((ptr_824X < new_hp_844X)) {
descriptor_825X = *((long*)ptr_824X);
if ((3 == (3 & descriptor_825X))) {
arg1K0 = (3 + ((-3 + descriptor_825X) + delta_845X));
goto L7770;}
else {
arg1K0 = descriptor_825X;
goto L7770;}}
else {
goto L9195;}}
L9357: {
result_826X = arg1K0;
fclose(port_875X);
v_827X = (FILE **)malloc(sizeof(FILE *) * Snumber_of_portsS);
Sopen_portsS = v_827X;
v_828X = (long*)malloc(sizeof(long) * Snumber_of_portsS);
Sopen_vm_portsS = v_828X;
tempWW2435_829X = NULL == Sopen_portsS;
if (tempWW2435_829X) {
goto L10160;}
else {
if ((NULL == Sopen_vm_portsS)) {
goto L10160;}
else {
goto L10165;}}}
L9118: {
merged_arg2K0 = port_875X;
read_number_return_tag = 0;
goto read_number;
read_number_return_0:
old_level_830X = read_number_return_value;
merged_arg2K0 = port_875X;
read_number_return_tag = 1;
goto read_number;
read_number_return_1:
old_bytes_per_cell_831X = read_number_return_value;
merged_arg2K0 = port_875X;
read_number_return_tag = 2;
goto read_number;
read_number_return_2:
cells_832X = read_number_return_value;
old_begin_833X = cells_832X << 2;
merged_arg2K0 = port_875X;
read_number_return_tag = 3;
goto read_number;
read_number_return_3:
cells_834X = read_number_return_value;
old_hp_835X = cells_834X << 2;
merged_arg2K0 = port_875X;
read_number_return_tag = 4;
goto read_number;
read_number_return_4:
startup_proc_836X = read_number_return_value;
goto L9308;}
L9333: {
{ int TTchar;
PS_GETC(port_875X, TTchar);
if (EOF == TTchar) {
TTerror("end of file while looking for page break", 0, 0, 0, 0);
goto L9118;}
else {
unsigned char Kchar_837X = TTchar;
if ((12 == ((long)Kchar_837X))) {
goto L9118;}
else {
goto L9333;}}}}
L9139: {
if ((14 == old_level_830X)) {
goto L9149;}
else {
TTerror("format of image is incompatible with this version of system", 2, old_level_830X, 14, 0);
goto L9149;}}
L9308: {
{ int TTchar;
PS_GETC(port_875X, TTchar);
if (EOF == TTchar) {
TTerror("end of file while looking for page break", 0, 0, 0, 0);
goto L9139;}
else {
unsigned char Kchar_838X = TTchar;
if ((12 == ((long)Kchar_838X))) {
goto L9139;}
else {
goto L9308;}}}}
L9195: {
ShpS = new_hp_844X;
if ((3 == (3 & startup_proc_836X))) {
arg1K0 = (3 + ((-3 + startup_proc_836X) + delta_845X));
goto L9357;}
else {
arg1K0 = startup_proc_836X;
goto L9357;}}
L9185: {
if ((0 == delta_845X)) {
goto L9195;}
else {
start_839X = Snewspace_beginS;
arg1K0 = start_839X;
goto L7760;}}
L9172: {
fread((void *)ShpS, sizeof(char), 4, port_875X);
if ((1 == (*((long*)ShpS)))) {
arg3K0 = 0;
goto L9175;}
else {
addr_840X = ShpS;
x_841X = *((unsigned char*)addr_840X);
*((unsigned char*)addr_840X) = ((unsigned char)((long)(*((unsigned char*)(3 + addr_840X)))));
*((unsigned char*)(3 + addr_840X)) = ((unsigned char)((long)x_841X));
x_842X = *((unsigned char*)(1 + addr_840X));
*((unsigned char*)(1 + addr_840X)) = ((unsigned char)((long)(*((unsigned char*)(2 + addr_840X)))));
*((unsigned char*)(2 + addr_840X)) = ((unsigned char)((long)x_842X));
if ((1 == (*((long*)ShpS)))) {
arg3K0 = 1;
goto L9175;}
else {
TTerror("unable to correct byte order", 1, (*((long*)ShpS)), 0, 0);
arg3K0 = 0;
goto L9175;}}}
L9159: {
delta_845X = Snewspace_beginS - old_begin_833X;
new_hp_844X = old_hp_835X + delta_845X;
new_limit_843X = Snewspace_endS;
if ((((22 + s_874X) + new_hp_844X) < new_limit_843X)) {
goto L9172;}
else {
TTerror("heap not big enough to restore this image", 2, new_hp_844X, new_limit_843X, 0);
goto L9172;}}
L9149: {
if ((4 == old_bytes_per_cell_831X)) {
goto L9159;}
else {
TTerror("incompatible bytes-per-cell", 2, old_bytes_per_cell_831X, 4, 0);
goto L9159;}}
L9116: {
goto L9333;}
L10160: {
TTerror("out of memory, unable to continue", 0, 0, 0, 0);
goto L10165;}
L10272: {
i_846X = arg1K0;
if ((i_846X < length_859X)) {
*(v_858X + i_846X) = 1;
arg1K0 = (1 + i_846X);
goto L10272;}
else {
*(Sopen_portsS + 0) = Scurrent_input_portS;
*(Sopen_portsS + 1) = Scurrent_output_portS;
merged_arg5K0 = "so";
enter_string_return_tag = 0;
goto enter_string;
enter_string_return_0:
d_847X = enter_string_return_value;
*((long*)ShpS) = 4118;
ShpS = (4 + ShpS);
new_848X = 3 + ShpS;
ShpS = (16 + ShpS);
*((long*)(-4 + ShpS)) = 0;
*((long*)(-3 + new_848X)) = 8;
*((long*)(1 + new_848X)) = 4;
*((long*)(5 + new_848X)) = 1;
*((long*)(9 + new_848X)) = d_847X;
merged_arg5K0 = "si";
enter_string_return_tag = 1;
goto enter_string;
enter_string_return_1:
d_849X = enter_string_return_value;
*((long*)ShpS) = 4118;
ShpS = (4 + ShpS);
new_850X = 3 + ShpS;
ShpS = (16 + ShpS);
*((long*)(-4 + ShpS)) = 0;
*((long*)(-3 + new_850X)) = 4;
*((long*)(1 + new_850X)) = 0;
*((long*)(5 + new_850X)) = 1;
*((long*)(9 + new_850X)) = d_849X;
*(Sopen_vm_portsS + 0) = new_850X;
*(Sopen_vm_portsS + 1) = new_848X;
cells_851X = (Smemory_endS - Smemory_beginS) >> 2;
start_852X = Smemory_beginS + ((cells_851X << 2) - initial_stack_size_809X);
Sstack_beginS = start_852X;
Sstack_endS = (start_852X + (-4 & initial_stack_size_809X));
Sstack_limitS = Sstack_beginS;
SstackS = (-4 + Sstack_endS);
ScontS = 1;
SenvS = 17;
merged_arg0K0 = 22;
merged_arg0K1 = 28;
make_template_containing_ops_return_tag = 0;
goto make_template_containing_ops;
make_template_containing_ops_return_0:
template_853X = make_template_containing_ops_return_value;
SstackS = (-20 + SstackS);
*((long*)(4 + SstackS)) = 4130;
cont_854X = 11 + SstackS;
*((long*)(1 + cont_854X)) = 0;
*((long*)(5 + cont_854X)) = template_853X;
*((long*)(9 + cont_854X)) = SenvS;
*((long*)(-3 + cont_854X)) = ScontS;
ScontS = cont_854X;
Sbottom_of_stackS = ScontS;
merged_arg0K0 = 31;
merged_arg0K1 = 126;
make_template_containing_ops_return_tag = 1;
goto make_template_containing_ops;
make_template_containing_ops_return_1:
v_855X = make_template_containing_ops_return_value;
Sinterrupt_templateS = v_855X;
len_856X = startup_vector_length_807X << 2;
*((long*)ShpS) = (10 + (len_856X << 8));
ShpS = (4 + ShpS);
new_857X = 3 + ShpS;
ShpS = (ShpS + (-4 & (3 + len_856X)));
if ((0 < len_856X)) {
*((long*)(-4 + ShpS)) = 0;
arg1K0 = new_857X;
goto L14764;}
else {
arg1K0 = new_857X;
goto L14764;}}}
L10165: {
v_858X = Sopen_vm_portsS;
length_859X = Snumber_of_portsS;
arg1K0 = 0;
goto L10272;}
L12446: {
SenvS = 13;
tem_860X = Sinterrupt_templateS;
StemplateS = tem_860X;
Scode_pointerS = (-3 + (*((long*)(-3 + tem_860X))));
SnargsS = 13;
SvalS = 13;
Sdynamic_stateS = 25;
Sexception_handlerS = 25;
Sinterrupt_handlersS = 25;
Senabled_interruptsS = 0;
Spending_interruptsS = 0;
*((long*)SstackS) = vector_869X;
SstackS = (-4 + SstackS);
x_861X = *(Sopen_vm_portsS + 0);
*((long*)SstackS) = x_861X;
SstackS = (-4 + SstackS);
x_862X = *(Sopen_vm_portsS + 1);
*((long*)SstackS) = x_862X;
SstackS = (-4 + SstackS);
*((long*)ShpS) = 578;
ShpS = (4 + ShpS);
new_863X = 3 + ShpS;
ShpS = (4 + ShpS);
*((long*)(-4 + ShpS)) = 0;
*((unsigned char*)(-3 + new_863X)) = 23;
*((unsigned char*)(-2 + new_863X)) = 3;
Scode_pointerS = (-3 + new_863X);
SvalS = result_826X;
goto L14698;}
L12491: {
Sstack_limitS = (296 + Sstack_beginS);
Sexception_space_usedPS = 0;
goto L12446;}
L14698: {
option_868X = TTrun_machine((long)Tinterpret);
if ((0 == ((long)option_868X))) {
return(SvalS);}
else {
if ((1 == ((long)option_868X))) {
v_867X = *((long*)(-3 + (*((long*)(1 + SvalS)))));
v_866X = 4 + SstackS;
v_865X = call_external_value(v_867X, SnargsS, v_866X);
SvalS = v_865X;
count_864X = 1 + SnargsS;
SstackS = (SstackS - ((0 - count_864X) << 2));
goto L14698;}
else {
TTerror("unkown VM return option", 1, ((long)option_868X), 0, 0);
return(-1);}}}
L14764: {
vector_869X = arg1K0;
arg1K0 = 0;
goto L14766;}
L14766: {
i_870X = arg1K0;
if ((i_870X < startup_vector_length_807X)) {
merged_arg5K0 = (*(startup_vector_806X + i_870X));
enter_string_return_tag = 2;
goto enter_string;
enter_string_return_2:
val_872X = enter_string_return_value;
*((long*)((-3 + vector_869X) + (i_870X << 2))) = val_872X;
arg1K0 = (1 + i_870X);
goto L14766;}
else {
SstackS = (-11 + Sbottom_of_stackS);
*((long*)(-3 + Sbottom_of_stackS)) = 1;
if (Sexception_space_usedPS) {
x_871X = Sstack_limitS < (-296 + SstackS);
if (x_871X) {
goto L12491;}
else {
TTerror("no space on stack to reserve exception space", 0, 0, 0, 0);
goto L12491;}}
else {
goto L12446;}}}
L14935: {
i_873X = arg1K0;
s_874X = arg1K1;
if ((i_873X < startup_vector_length_807X)) {
len_876X = strlen((*(startup_vector_806X + i_873X)));
arg1K0 = (1 + i_873X);
arg1K1 = (1 + (s_874X + ((3 + len_876X) >> 2)));
goto L14935;}
else {
port_875X = ps_open(filename_805X, "r");
if ((NULL == port_875X)) {
TTerror("Can't open heap image file", 0, 0, 0, 0);
goto L9116;}
else {
goto L9116;}}}
read_number: {
port_898X = merged_arg2K0;{
goto L4859;}
L4859: {
{ int TTchar;
PS_GETC(port_898X, TTchar);
if (EOF == TTchar) {
arg4K0 = -1;
goto L4888;}
else {
unsigned char Kchar_877X = TTchar;
ch_878X = Kchar_877X;
if ((((long)ch_878X) < 48)) {
goto L4859;}
else {
if ((57 < ((long)ch_878X))) {
goto L4859;}
else {
arg4K0 = Kchar_877X;
goto L4888;}}}}}
L4890: {
r_879X = arg1K0;
ch_880X = arg4K1;
r_881X = (-48 + ((long)(ch_880X))) + (10 * r_879X);
{ int TTchar;
PS_GETC(port_898X, TTchar);
if (EOF == TTchar) {
read_number_return_value = r_881X;
goto read_number_return;}
else {
unsigned char Kchar_882X = TTchar;
ch_883X = Kchar_882X;
if ((((long)ch_883X) < 48)) {
read_number_return_value = r_881X;
goto read_number_return;}
else {
if ((57 < ((long)ch_883X))) {
read_number_return_value = r_881X;
goto read_number_return;}
else {
arg1K0 = r_881X;
arg4K1 = Kchar_882X;
goto L4890;}}}}}
L4888: {
ch_884X = arg4K0;
arg1K0 = 0;
arg4K1 = ch_884X;
goto L4890;}
read_number_return:
switch (read_number_return_tag) {
case 0: goto read_number_return_0;
case 1: goto read_number_return_1;
case 2: goto read_number_return_2;
case 3: goto read_number_return_3;
case 4: goto read_number_return_4;
}}
make_template_containing_ops: {
op1_895X = merged_arg0K0;
op2_896X = merged_arg0K1;{
*((long*)ShpS) = 578;
ShpS = (4 + ShpS);
new_885X = 3 + ShpS;
ShpS = (4 + ShpS);
*((long*)(-4 + ShpS)) = 0;
*((long*)ShpS) = 2090;
ShpS = (4 + ShpS);
new_886X = 3 + ShpS;
ShpS = (8 + ShpS);
*((long*)(-4 + ShpS)) = 0;
*((long*)(-3 + new_886X)) = new_885X;
*((unsigned char*)(-3 + new_885X)) = ((unsigned char)((long)op1_895X));
*((unsigned char*)(-2 + new_885X)) = ((unsigned char)((long)op2_896X));
make_template_containing_ops_return_value = new_886X;
goto make_template_containing_ops_return;}
make_template_containing_ops_return:
switch (make_template_containing_ops_return_tag) {
case 0: goto make_template_containing_ops_return_0;
case 1: goto make_template_containing_ops_return_1;
}}
enter_string: {
string_893X = merged_arg5K0;{
z_888X = strlen(string_893X);
*((long*)ShpS) = (62 + (z_888X << 8));
ShpS = (4 + ShpS);
new_887X = 3 + ShpS;
ShpS = (ShpS + (-4 & (3 + z_888X)));
if ((0 < z_888X)) {
*((long*)(-4 + ShpS)) = 0;
arg1K0 = new_887X;
goto L8837;}
else {
arg1K0 = new_887X;
goto L8837;}}
L8839: {
i_889X = arg1K0;
if ((i_889X < z_888X)) {
c_890X = *(string_893X + i_889X);
*((unsigned char*)((-3 + s_891X) + i_889X)) = ((unsigned char)((long)(c_890X)));
arg1K0 = (1 + i_889X);
goto L8839;}
else {
enter_string_return_value = s_891X;
goto enter_string_return;}}
L8837: {
s_891X = arg1K0;
arg1K0 = 0;
goto L8839;}
enter_string_return:
switch (enter_string_return_tag) {
case 0: goto enter_string_return_0;
case 1: goto enter_string_return_1;
case 2: goto enter_string_return_2;
}}
}
void do_gc()
{
extern long Sweak_pointer_hpS;
extern long Sweak_pointer_limitS;
extern long SlimitS;
extern long Soldspace_beginS;
extern long Soldspace_endS;
extern long ShpS;
extern long copy_weak_pointer(long);
extern long Snewspace_beginS;
long arg1K1;
long arg1K0;
long RShpS = ShpS;
long value_899X;
long scan_900X;
long value_901X;
long a_902X;
unsigned char v_903X;
long h_904X;
long start_905X;
long end_906X;
long next_907X;
long value_908X;
long o_909X;
long x1_910X;
long new_911X;
long h_912X;
long a_913X;
unsigned char v_914X;
long v_915X;
long end_916X;
long x1_917X;
unsigned char x_918X;
long addr_919X;
long next_920X;
long thing_921X;
long start_922X;
long end_923X;
{arg1K0 = Snewspace_beginS;
goto L13347;}
L8255: {
arg1K0 = (8 + scan_900X);
goto L8210;}
L8250: {
value_899X = arg1K0;
*((long*)(4 + scan_900X)) = value_899X;
goto L8255;}
L8210: {
scan_900X = arg1K0;
if ((scan_900X < end_906X)) {
*((long*)scan_900X) = 1070;
value_901X = *((long*)(4 + scan_900X));
if ((3 == (3 & value_901X))) {
a_902X = -3 + value_901X;
if ((a_902X < Soldspace_beginS)) {
goto L8255;}
else {
v_903X = a_902X < Soldspace_endS;
if (v_903X) {
if ((3 == (3 & value_901X))) {
h_904X = *((long*)(-7 + value_901X));
if ((3 == (3 & h_904X))) {
arg1K0 = h_904X;
goto L8250;}
else {
arg1K0 = 1;
goto L8250;}}
else {
goto L8255;}}
else {
goto L8255;}}}
else {
goto L8255;}}
else {
if ((-1 == next_907X)) {
if ((end_916X < Sweak_pointer_limitS)) {
*((long*)end_916X) = (66 + ((-4 & (-4 + (Sweak_pointer_limitS - end_916X))) << 8));
ShpS = RShpS;
return;}
else {
ShpS = RShpS;
return;}}
else {
arg1K0 = (-1024 + next_907X);
arg1K1 = next_907X;
goto L10894;}}}
L10894: {
start_905X = arg1K0;
end_906X = arg1K1;
next_907X = *((long*)(8 + start_905X));
arg1K0 = start_905X;
goto L8210;}
L31406: {
value_908X = arg1K0;
*((long*)addr_919X) = value_908X;
arg1K0 = next_920X;
goto L13411;}
L31446: {
o_909X = arg1K0;
if ((RShpS < (x1_910X + (-4 & (3 + (h_912X >> 8)))))) {
*((long*)RShpS) = (*((long*)o_909X));
RShpS = (4 + RShpS);
arg1K0 = (4 + o_909X);
goto L31446;}
else {
arg1K0 = new_911X;
goto L31406;}}
L31396: {
if ((3 == (3 & thing_921X))) {
a_913X = -3 + thing_921X;
if ((a_913X < Soldspace_beginS)) {
arg1K0 = next_920X;
goto L13411;}
else {
v_914X = a_913X < Soldspace_endS;
if (v_914X) {
h_912X = *((long*)(-7 + thing_921X));
if ((3 == (3 & h_912X))) {
arg1K0 = h_912X;
goto L31406;}
else {
if ((1070 == h_912X)) {
ShpS = RShpS;
v_915X = copy_weak_pointer(thing_921X);
RShpS = ShpS;
arg1K0 = v_915X;
goto L31406;}
else {
*((long*)RShpS) = h_912X;
RShpS = (4 + RShpS);
new_911X = 3 + RShpS;
*((long*)(-7 + thing_921X)) = new_911X;
x1_910X = RShpS;
arg1K0 = (-3 + thing_921X);
goto L31446;}}}
else {
arg1K0 = next_920X;
goto L13411;}}}
else {
arg1K0 = next_920X;
goto L13411;}}
L13373: {
x_918X = -1 == Sweak_pointer_hpS;
if (x_918X) {
ShpS = RShpS;
return;}
else {
x1_917X = Sweak_pointer_limitS;
end_916X = Sweak_pointer_hpS;
arg1K0 = (-1024 + x1_917X);
arg1K1 = end_916X;
goto L10894;}}
L13411: {
addr_919X = arg1K0;
if ((addr_919X < end_923X)) {
next_920X = 4 + addr_919X;
thing_921X = *((long*)addr_919X);
if ((2 == (3 & thing_921X))) {
if (((31 & (thing_921X >> 2)) < 15)) {
goto L31396;}
else {
arg1K0 = (next_920X + (-4 & (3 + (thing_921X >> 8))));
goto L13411;}}
else {
goto L31396;}}
else {
if ((RShpS < SlimitS)) {
if ((end_923X < RShpS)) {
arg1K0 = end_923X;
goto L13347;}
else {
goto L13373;}}
else {
TTerror("GC error: ran out of space in new heap", 0, 0, 0, 0);
goto L13373;}}}
L13347: {
start_922X = arg1K0;
end_923X = RShpS;
arg1K0 = start_922X;
goto L13411;}}
scheme48_init()
{
Sminimum_recovered_spaceS = 0;
Sexception_space_usedPS = 1;
Snumber_of_portsS = 100;
Sweak_pointer_limitS = 0;
Sweak_pointer_hpS = -1;
Ssaved_limitS = 0;
Ssaved_hpS = 0;
Sgc_countS = 0;
SlimitS = 0;
ShpS = 0;
Smemory_endS = 0;
Smemory_beginS = 0;
Scurrent_output_portS = stdout;
Scurrent_input_portS = stdin;
}
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.