ftp.nice.ch/pub/next/developer/languages/scheme/s48.I.bs.tar.gz#/s48/scheme48vm.c

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.