home *** CD-ROM | disk | FTP | other *** search
/ The World of Computer Software / World_Of_Computer_Software-02-385-Vol-1of3.iso / s / s48.zip / SCHEME48.C < prev    next >
C/C++ Source or Header  |  1992-06-17  |  239KB  |  8,532 lines

  1. /*Copyright (c) 1992 by Richard Kelsey and Jonathan Rees.  See file COPYING.*/
  2.  
  3. /* 
  4.  
  5.    Peephole optimizations:
  6.     (query-replace "255L & (*((char *) " "(*((unsigned char *) " nil)
  7.     (query-replace " >> 2L) << 2L" " & ~3)" nil)
  8.     (query-replace " >> 2L) >> 5L" ") >> 7L" nil)
  9.     (query-replace " >> 2L) >> 6L" ") >> 8L" nil)
  10.     (query-replace " >> 2L) * 4L" " & ~3)" nil)
  11.     (query-replace " >> 8L) << 2L" " >> 6L) & ~3L" nil)
  12.     (query-replace " << 5L) + 2L) << 2L) + 2L" " << 7L) + 10L))" nil)
  13.     (query-replace " << 6L) + 2L) << 2L) + 1L" " << 8L) + 9L))" nil)
  14.     (query-replace " + 1L) * 4L) << 7L) + 10L" ")) << 9L) + 522L" nil)
  15.  
  16.    Some manual changes for mobot system.
  17.    Arithmetic shift opcode patched.
  18.  
  19.  */
  20.  
  21. #ifdef ROBOT
  22. #include <vubugg.h>        /* define _jtime */
  23. extern unsigned long alarm_time;
  24. #define ALARM_CHECK \
  25.     if (_jtime >= alarm_time) { \
  26.         Spending_interruptsS |= 1; \
  27.     alarm_time = 0xffffffff; \
  28.       }
  29. #define ps_runtime() _jtime
  30. #else
  31. #define ALARM_CHECK
  32. #endif
  33.  
  34. #ifdef ROBOT
  35. #define small_multiply(x,y) \
  36.     ({ long temp_ = (y); \
  37.        asm volatile ("mulu %2,%0" : "=d" (temp_) : \
  38.              "0" (temp_), "g" ((short)(x))); \
  39.        temp_; })
  40. #else
  41. #define small_multiply(x,y) ((x) * (y))
  42. #endif
  43.  
  44.  
  45.  
  46. #include <stdio.h>
  47. long Sexit_statusS, Smaximum_string_lengthS, Sthe_stringS;
  48. long Scurrent_input_portS, Scurrent_output_portS, SmemoryS;
  49. long Smemory_beginS, Smemory_endS, ShpS, SlimitS;
  50. long Sheap_keyS, Sokayed_spaceS, Sopen_portsS;
  51. long Sopen_vm_portsS, Snewspace_beginS, Snewspace_endS;
  52. long Soldspace_beginS, Soldspace_endS, Sstack_beginS;
  53. long Sstack_endS, Sstack_sizeS, SrootS;
  54. long Sinitial_heap_sizeS, SmarginS, SscanS, SstackS;
  55. long Sbottom_of_stackS, Sstack_limitS, ScontsS;
  56. long Sconts_slotsS, Sconts_overflowS;
  57. long Sconts_overflow_slotsS, Sconts_preservedS;
  58. long Sconts_preserved_slotsS, Sconts_from_heapS;
  59. long Sconts_from_heap_slotsS, SenvsS, Senvs_slotsS;
  60. long Senvs_closedS, Senvs_closed_slotsS, Senvs_overflowS;
  61. long Senvs_overflow_slotsS, Senvs_preservedS;
  62. long Senvs_preserved_slotsS, Sstack_keyS;
  63. long Sokayed_stack_spaceS, Sexception_space_usedPS;
  64. long Senvs_madeS, StemplateS, SenvS, ScontS;
  65. long Scode_pointerS, SnargsS, SvalS;
  66. long Senabled_interruptsS, Sexception_handlerS;
  67. long Sinterrupt_handlersS, Sdynamic_stateS;
  68. long Spending_interruptsS;
  69. long write_string(str_0X, port_1X)
  70. long str_0X, port_1X;
  71.  
  72. {
  73.   long arg0;
  74.  
  75.  START: {
  76.   arg0 = 0L;
  77.   goto L8282;
  78.  L8282: {
  79.   long i_2X = arg0;
  80.   long ch_3X;
  81.   ch_3X = (*((unsigned char *) (str_0X + i_2X)));
  82.   if (ch_3X == 0L) {
  83.     return(8888888L);}
  84.   else {
  85.     long v_4X;
  86.     putc(ch_3X, (FILE *)port_1X);
  87.     arg0 = (i_2X + 1L);
  88.     goto L8282;}}}
  89. }
  90.  
  91. long copy_stob(stob_5X, key_6X)
  92. long stob_5X, key_6X;
  93.  
  94. {
  95.   extern long ShpS;
  96.   long arg0, arg1;
  97.  
  98.  START: {
  99.   long len_7X, type_8X, new_9X;
  100.   len_7X = ((*((long *) ((stob_5X - 3L) + -4L))) >> 7L);
  101.   type_8X = ((*((long *) ((stob_5X - 3L) + -4L))) >> 2L) & 31L;
  102.   *((long *) ShpS) = ((((len_7X << 5L) + type_8X) << 2L) + 2L);
  103.   ShpS = (ShpS + 4L);
  104.   new_9X = ShpS + 3L;
  105.   ShpS = (ShpS + (((len_7X + 3L) & ~3)));
  106.   if (len_7X > 0L) {
  107.     *((long *) (ShpS + -4L)) = 0L;
  108.     arg0 = new_9X;
  109.     goto L21430;}
  110.   else {
  111.     arg0 = new_9X;
  112.     goto L21430;}
  113.  L21430: {
  114.   long new_10X = arg0;
  115.   long from_11X, end_12X;
  116.   from_11X = stob_5X - 3L;
  117.   end_12X = from_11X + ((((((*((long *) ((stob_5X - 3L) + -4L))) >> 7L)) + 3L) & ~3));
  118.   arg0 = from_11X;
  119.   arg1 = (new_10X - 3L);
  120.   goto L21465;
  121.  L21465: {
  122.   long from_13X = arg0;
  123.   long to_14X = arg1;
  124.   if (from_13X >= end_12X) {
  125.     return(new_10X);}
  126.   else {
  127.     *((long *) to_14X) = (*((long *) from_13X));
  128.     arg0 = (from_13X + 4L);
  129.     arg1 = (to_14X + 4L);
  130.     goto L21465;}}}}
  131. }
  132.  
  133. long close_port(vm_port_15X)
  134. long vm_port_15X;
  135.  
  136. {
  137.   extern long Sopen_vm_portsS, Sopen_portsS;
  138.   extern long Qps_error_0();
  139.   long arg0;
  140.  
  141.  START: {
  142.   if ((*((long *) ((vm_port_15X - 3L) + 4L))) >= 0L) {
  143.     long index_16X;
  144.     index_16X = (*((long *) ((vm_port_15X - 3L) + 4L))) >> 2L;
  145.     if (index_16X == 0L) {
  146.       return(9999999L);}
  147.     else {
  148.       if (index_16X == 1L) {
  149.         return(9999999L);}
  150.       else {
  151.         long mode_17X, index_18X;
  152.         mode_17X = (*((long *) (vm_port_15X - 3L))) >> 2L;
  153.         index_18X = (*((long *) ((vm_port_15X - 3L) + 4L))) >> 2L;
  154.         if (index_18X >= 0L) {
  155.           arg0 = (*((long *) (Sopen_portsS + (index_18X * 4L))));
  156.           goto L22380;}
  157.         else {
  158.           arg0 = 0L;
  159.           goto L22380;}
  160.        L22380: {
  161.         long port_19X = arg0;
  162.         if (mode_17X == 1L) {
  163.           long v_20X;
  164.           fclose((FILE *)port_19X);
  165.           arg0 = v_20X;
  166.           goto L22368;}
  167.         else {
  168.           if (mode_17X == 2L) {
  169.             long v_21X;
  170.             fclose((FILE *)port_19X);
  171.             arg0 = v_21X;
  172.             goto L22368;}
  173.           else {
  174.             long v_22X;
  175.             v_22X = Qps_error_0(((long)"this shouldn't happen when closing a port"));
  176.             arg0 = v_22X;
  177.             goto L22368;}}
  178.        L22368: {
  179.         *((long *) (vm_port_15X - 3L)) = 0L;
  180.         *((long *) ((vm_port_15X - 3L) + 4L)) = -4L;
  181.         *((long *) (Sopen_portsS + (index_16X * 4L))) = 0L;
  182.         *((long *) (Sopen_vm_portsS + (index_16X * 4L))) = 1L;
  183.         return(999999L);}}}}}
  184.   else {
  185.     return(9999999L);}}
  186. }
  187.  
  188. long close_port_noisily(port_23X)
  189. long port_23X;
  190.  
  191. {
  192.   extern long Scurrent_output_portS;
  193.   extern long Qps_error_0(), write_string(), close_port();
  194.   long arg0;
  195.  
  196.  START: {
  197.   long v_24X, v_25X, string_26X, port_27X, count_28X, sent_29X;
  198.   v_24X = close_port(port_23X);
  199.   v_25X = write_string(((long)"Port closed: "), Scurrent_output_portS);
  200.   string_26X = *((long *) ((port_23X - 3L) + 12L));
  201.   port_27X = Scurrent_output_portS;
  202.   count_28X = ((*((long *) ((string_26X - 3L) + -4L))) >> 7L);
  203.   sent_29X = fwrite((string_26X - 3L), sizeof(char),count_28X, (FILE *)port_27X);
  204.   if (sent_29X == count_28X) {
  205.     arg0 = 0L;
  206.     goto L24814;}
  207.   else {
  208.     long v_30X;
  209.     v_30X = Qps_error_0(((long)"block write did not send enough bytes"));
  210.     arg0 = 0L;
  211.     goto L24814;}
  212.  L24814: {
  213.   long port_31X, v_32X;
  214.   port_31X = Scurrent_output_portS;
  215.   putc(10L, (FILE *)port_31X);
  216.   if (port_31X == Scurrent_output_portS) {
  217.     long v_33X;
  218.     fflush((FILE *)port_31X);
  219.     return(v_33X);}
  220.   else {
  221.     return(9999999L);}}}
  222. }
  223.  
  224. long scan(end_34X)
  225. long end_34X;
  226.  
  227. {
  228.   extern long ShpS, Soldspace_endS, Soldspace_beginS, SscanS;
  229.   long arg0;
  230.   long RShpS = ShpS;
  231.   long RSscanS = SscanS;
  232.  
  233.  START: {
  234.   goto L20048;
  235.  L20048: {
  236.   if (RSscanS < end_34X) {
  237.     long thing_35X;
  238.     thing_35X = *((long *) RSscanS);
  239.     if ((thing_35X & 3L) == 2L) {
  240.       if (((thing_35X >> 2L) & 31L) >= 10L) {
  241.         RSscanS = ((RSscanS + 4L) + (((((thing_35X >> 7L)) + 3L) & ~3)));
  242.         arg0 = 54321L;
  243.         goto L20066;}
  244.       else {
  245.         arg0 = 0L;
  246.         goto L16690;}}
  247.     else {
  248.       arg0 = 0L;
  249.       goto L16690;}
  250.    L16690: {
  251.     if ((thing_35X & 3L) == 3L) {
  252.       long a_36X;
  253.       a_36X = thing_35X - 3L;
  254.       if (a_36X >= Soldspace_beginS) {
  255.         if (a_36X < Soldspace_endS) {
  256.           long h_37X;
  257.           h_37X = *((long *) ((thing_35X - 3L) + -4L));
  258.           if ((h_37X & 3L) == 3L) {
  259.             *((long *) RSscanS) = h_37X;
  260.             RSscanS = (RSscanS + 4L);
  261.             arg0 = 54321L;
  262.             goto L20066;}
  263.           else {
  264.             long new_38X, new_hp_39X;
  265.             *((long *) RShpS) = h_37X;
  266.             RShpS = (RShpS + 4L);
  267.             new_38X = RShpS + 3L;
  268.             *((long *) ((thing_35X - 3L) + -4L)) = new_38X;
  269.             *((long *) RSscanS) = new_38X;
  270.             RSscanS = (RSscanS + 4L);
  271.             new_hp_39X = RShpS + (((((h_37X >> 7L)) + 3L) & ~3));
  272.             arg0 = (thing_35X - 3L);
  273.             goto L16744;
  274.            L16744: {
  275.             long o_40X = arg0;
  276.             if (RShpS >= new_hp_39X) {
  277.               arg0 = 255L;
  278.               goto L20066;}
  279.             else {
  280.               *((long *) RShpS) = (*((long *) o_40X));
  281.               RShpS = (RShpS + 4L);
  282.               arg0 = (o_40X + 4L);
  283.               goto L16744;}}}}
  284.         else {
  285.           arg0 = 0L;
  286.           goto L16849;}}
  287.       else {
  288.         arg0 = 0L;
  289.         goto L16849;}}
  290.     else {
  291.       arg0 = 0L;
  292.       goto L16849;}
  293.    L16849: {
  294.     RSscanS = (RSscanS + 4L);
  295.     arg0 = 54321L;
  296.     goto L20066;}}
  297.    L20066: {
  298.     goto L20048;}}
  299.   else {
  300.     ShpS = RShpS;
  301.     SscanS = RSscanS;
  302.     return(8888888L);}}}
  303. }
  304.  
  305. long trace_env(env_41X)
  306. long env_41X;
  307.  
  308. {
  309.   extern long SscanS, Sstack_endS, Sstack_beginS;
  310.   extern long trace_env(), scan();
  311.  
  312.  START: {
  313.   if (env_41X >= Sstack_beginS) {
  314.     if (env_41X <= Sstack_endS) {
  315.       long end_42X, v_43X, v_44X;
  316.       end_42X = (env_41X - 3L) + ((((((*((long *) ((env_41X - 3L) + -4L))) >> 7L)) + 3L) & ~3));
  317.       SscanS = (env_41X - 3L);
  318.       v_43X = scan(end_42X);
  319.       v_44X = trace_env((*((long *) (env_41X - 3L))));
  320.       return(v_44X);}
  321.     else {
  322.       return(8888888L);}}
  323.   else {
  324.     return(8888888L);}}
  325. }
  326.  
  327. long save_env_in_heap(env_45X, cont_46X, key_47X, reason_48X)
  328. long env_45X, cont_46X, key_47X, reason_48X;
  329.  
  330. {
  331.   extern long Sstack_endS, Sstack_beginS;
  332.   extern long copy_stob();
  333.   long arg0;
  334.  
  335.  START: {
  336.   long new_49X;
  337.   new_49X = copy_stob(env_45X, key_47X);
  338.   *((long *) ((env_45X - 3L) + -4L)) = new_49X;
  339.   arg0 = new_49X;
  340.   goto L27415;
  341.  L27415: {
  342.   long env_50X = arg0;
  343.   long p_51X, y_52X;
  344.   p_51X = *((long *) (env_50X - 3L));
  345.   y_52X = Sstack_beginS;
  346.   if (p_51X >= y_52X) {
  347.     if (p_51X <= Sstack_endS) {
  348.       long env_53X, new_54X;
  349.       env_53X = *((long *) (env_50X - 3L));
  350.       new_54X = copy_stob(env_53X, key_47X);
  351.       *((long *) ((env_53X - 3L) + -4L)) = new_54X;
  352.       *((long *) (env_50X - 3L)) = new_54X;
  353.       arg0 = new_54X;
  354.       goto L27415;}
  355.     else {
  356.       arg0 = 8888888L;
  357.       goto L27462;}}
  358.   else {
  359.     arg0 = 8888888L;
  360.     goto L27462;}
  361.  L27462: {
  362.   arg0 = cont_46X;
  363.   goto L27347;
  364.  L27347: {
  365.   long cont_55X = arg0;
  366.   long env_56X;
  367.   env_56X = *((long *) ((cont_55X - 3L) + 12L));
  368.   if ((env_56X & 3L) == 3L) {
  369.     if (((*((long *) ((env_56X - 3L) + -4L))) & 3L) == 3L) {
  370.       *((long *) ((cont_55X - 3L) + 12L)) = (*((long *) ((env_56X - 3L) + -4L)));
  371.       arg0 = (*((long *) (cont_55X - 3L)));
  372.       goto L27347;}
  373.     else {
  374.       arg0 = 8888888L;
  375.       goto L27410;}}
  376.   else {
  377.     arg0 = 8888888L;
  378.     goto L27410;}
  379.  L27410: {
  380.   arg0 = env_45X;
  381.   goto L27281;
  382.  L27281: {
  383.   long env_57X = arg0;
  384.   long h_58X;
  385.   h_58X = *((long *) ((env_57X - 3L) + -4L));
  386.   if ((h_58X & 3L) == 3L) {
  387.     *((long *) ((env_57X - 3L) + -4L)) = (*((long *) ((h_58X - 3L) + -4L)));
  388.     if (((*((long *) (h_58X - 3L))) & 3L) == 3L) {
  389.       arg0 = (*((long *) (h_58X - 3L)));
  390.       goto L27281;}
  391.     else {
  392.       return(new_49X);}}
  393.   else {
  394.     return(new_49X);}}}}}}}
  395. }
  396.  
  397. long clear_registers()
  398.  
  399. {
  400.   extern long Spending_interruptsS, Senabled_interruptsS;
  401.   extern long Sinterrupt_handlersS, Sexception_handlerS;
  402.   extern long Sdynamic_stateS, SvalS, SnargsS, ScontS;
  403.   extern long Sstack_limitS, Sstack_beginS, SstackS;
  404.   extern long Sbottom_of_stackS, SenvS, Scode_pointerS;
  405.   extern long StemplateS, SrootS;
  406.  
  407.  START: {
  408.   long tem_59X;
  409.   tem_59X = *((long *) ((SrootS - 3L) + 44L));
  410.   StemplateS = tem_59X;
  411.   Scode_pointerS = ((*((long *) (tem_59X - 3L))) - 3L);
  412.   SenvS = 13L;
  413.   SstackS = (((Sbottom_of_stackS - 3L) - 4L) - 4L);
  414.   Sstack_limitS = (Sstack_beginS + 296L);
  415.   *((long *) (Sbottom_of_stackS - 3L)) = 1L;
  416.   ScontS = Sbottom_of_stackS;
  417.   SnargsS = 13L;
  418.   SvalS = 13L;
  419.   Sdynamic_stateS = 25L;
  420.   Sexception_handlerS = 25L;
  421.   Sinterrupt_handlersS = 25L;
  422.   Senabled_interruptsS = 0L;
  423.   Spending_interruptsS = 0L;
  424.   return(13L);}
  425. }
  426.  
  427. long I70()
  428.  
  429. {
  430.   extern long Smaximum_string_lengthS;
  431.   extern long Qps_error_1();
  432.   long arg0;
  433.  
  434.  START: {
  435.   long size_60X, size_61X, x_62X;
  436.   size_60X = 1L + Smaximum_string_lengthS;
  437.   size_61X = 4L + size_60X;
  438.   x_62X = ((long) malloc (size_61X* sizeof(char)));
  439.   if (x_62X == 0L) {
  440.     long v_63X;
  441.     v_63X = Qps_error_1(((long)"out of memory, cannot allocate this many bytes"), size_61X);
  442.     arg0 = x_62X;
  443.     goto L9337;}
  444.   else {
  445.     arg0 = x_62X;
  446.     goto L9337;}
  447.  L9337: {
  448.   long vec_64X = arg0;
  449.   *((long *) vec_64X) = size_60X;
  450.   return((vec_64X + 4L));}}
  451. }
  452.  
  453. long I73()
  454.  
  455. {
  456.  
  457.  START: {
  458.   return(((long)stdin));}
  459. }
  460.  
  461. long I74()
  462.  
  463. {
  464.  
  465.  START: {
  466.   return(((long)stdout));}
  467. }
  468.  
  469. long collect()
  470.  
  471. {
  472.   extern long Sopen_vm_portsS, Sbottom_of_stackS, SscanS;
  473.   extern long SstackS, SrootS, ShpS, SlimitS, SmarginS;
  474.   extern long Soldspace_endS, Snewspace_endS, Soldspace_beginS;
  475.   extern long Snewspace_beginS;
  476.   extern long close_port_noisily(), Qps_error_0(), trace_env();
  477.   extern long scan();
  478.   long arg0, arg1;
  479.  
  480.  START: {
  481.   long b_65X, e_66X, new_67X, cont_68X, v_69X;
  482.   b_65X = Snewspace_beginS;
  483.   Snewspace_beginS = Soldspace_beginS;
  484.   Soldspace_beginS = b_65X;
  485.   e_66X = Snewspace_endS;
  486.   Snewspace_endS = Soldspace_endS;
  487.   Soldspace_endS = e_66X;
  488.   SlimitS = (Snewspace_endS - SmarginS);
  489.   ShpS = Snewspace_beginS;
  490.   *((long *) ShpS) = 522L;
  491.   ShpS = (ShpS + 4L);
  492.   new_67X = ShpS + 3L;
  493.   ShpS = (ShpS + 4L);
  494.   *((long *) (ShpS + -4L)) = 0L;
  495.   *((long *) (new_67X - 3L)) = SrootS;
  496.   cont_68X = *((long *) ((SrootS - 3L) + 12L));
  497.   SscanS = (SstackS + 4L);
  498.   v_69X = scan((cont_68X - 7L));
  499.   arg0 = cont_68X;
  500.   arg1 = 0L;
  501.   goto L32106;
  502.  L32106: {
  503.   long cont_70X = arg0;
  504.   long last_env_71X = arg1;
  505.   long env_72X, end_73X, v_74X;
  506.   env_72X = *((long *) ((cont_70X - 3L) + 12L));
  507.   end_73X = (cont_70X - 3L) + ((((((*((long *) ((cont_70X - 3L) + -4L))) >> 7L)) + 3L) & ~3));
  508.   SscanS = (cont_70X - 3L);
  509.   v_74X = scan(end_73X);
  510.   if (env_72X == last_env_71X) {
  511.     arg0 = 9999999L;
  512.     goto L32158;}
  513.   else {
  514.     long v_75X;
  515.     v_75X = trace_env(env_72X);
  516.     arg0 = v_75X;
  517.     goto L32158;}
  518.  L32158: {
  519.   if (cont_70X == Sbottom_of_stackS) {
  520.     SscanS = Snewspace_beginS;
  521.     goto L32760;
  522.    L32760: {
  523.     long v_76X;
  524.     v_76X = scan(ShpS);
  525.     if (ShpS >= SlimitS) {
  526.       long v_77X;
  527.       v_77X = Qps_error_0(((long)"out of memory"));
  528.       return(v_77X);}
  529.     else {
  530.       if (SscanS < ShpS) {
  531.         goto L32760;}
  532.       else {
  533.         SrootS = (*((long *) (Snewspace_beginS + 4L)));
  534.         arg0 = 2L;
  535.         goto L32705;
  536.        L32705: {
  537.         long i_78X = arg0;
  538.         if (i_78X == 100L) {
  539.           return(0L);}
  540.         else {
  541.           long port_79X;
  542.           port_79X = *((long *) (Sopen_vm_portsS + (i_78X * 4L)));
  543.           if ((port_79X & 255L) == 1L) {
  544.             arg0 = 9999999L;
  545.             goto L32716;}
  546.           else {
  547.             if (((*((long *) ((port_79X - 3L) + -4L))) & 3L) == 3L) {
  548.               arg0 = (*((long *) ((port_79X - 3L) + -4L)));
  549.               goto L32727;}
  550.             else {
  551.               long id_80X;
  552.               id_80X = *((long *) ((port_79X - 3L) + 12L));
  553.               if (((*((long *) ((id_80X - 3L) + -4L))) & 3L) == 3L) {
  554.                 *((long *) ((port_79X - 3L) + 12L)) = (*((long *) ((id_80X - 3L) + -4L)));
  555.                 arg0 = 999999L;
  556.                 goto L32457;}
  557.               else {
  558.                 arg0 = 9999999L;
  559.                 goto L32457;}
  560.              L32457: {
  561.               long v_81X;
  562.               v_81X = close_port_noisily(port_79X);
  563.               arg0 = 1L;
  564.               goto L32727;}}
  565.            L32727: {
  566.             long value_82X = arg0;
  567.             *((long *) (Sopen_vm_portsS + (i_78X * 4L))) = value_82X;
  568.             arg0 = 999999L;
  569.             goto L32716;}}
  570.          L32716: {
  571.           arg0 = (i_78X + 1L);
  572.           goto L32705;}}}}}}}
  573.   else {
  574.     arg0 = (*((long *) (cont_70X - 3L)));
  575.     arg1 = env_72X;
  576.     goto L32106;}}}}
  577. }
  578.  
  579. long preserve_continuation(cont_83X, key_84X, reason_85X)
  580. long cont_83X, key_84X, reason_85X;
  581.  
  582. {
  583.   extern long Sbottom_of_stackS, Sstack_endS, Sstack_beginS;
  584.   extern long SenvS;
  585.   extern long copy_stob(), save_env_in_heap();
  586.   long arg0, arg1;
  587.  
  588.  START: {
  589.   long p_86X;
  590.   p_86X = SenvS;
  591.   if (p_86X >= Sstack_beginS) {
  592.     if (p_86X <= Sstack_endS) {
  593.       long v_87X;
  594.       v_87X = save_env_in_heap(SenvS, cont_83X, key_84X, reason_85X);
  595.       SenvS = v_87X;
  596.       arg0 = 54321L;
  597.       goto L30379;}
  598.     else {
  599.       arg0 = 9999999L;
  600.       goto L30379;}}
  601.   else {
  602.     arg0 = 9999999L;
  603.     goto L30379;}
  604.  L30379: {
  605.   long end_88X;
  606.   end_88X = *((long *) (Sbottom_of_stackS - 3L));
  607.   arg0 = cont_83X;
  608.   arg1 = Sbottom_of_stackS;
  609.   goto L30189;
  610.  L30189: {
  611.   long cont_89X = arg0;
  612.   long previous_90X = arg1;
  613.   if (cont_89X == Sbottom_of_stackS) {
  614.     *((long *) (previous_90X - 3L)) = end_88X;
  615.     return((*((long *) (Sbottom_of_stackS - 3L))));}
  616.   else {
  617.     long p_91X;
  618.     p_91X = *((long *) ((cont_89X - 3L) + 12L));
  619.     if (p_91X >= Sstack_beginS) {
  620.       if (p_91X <= Sstack_endS) {
  621.         long v_92X;
  622.         v_92X = save_env_in_heap((*((long *) ((cont_89X - 3L) + 12L))), cont_89X, key_84X, reason_85X);
  623.         arg0 = v_92X;
  624.         goto L30334;}
  625.       else {
  626.         arg0 = 9999999L;
  627.         goto L30334;}}
  628.     else {
  629.       arg0 = 9999999L;
  630.       goto L30334;}
  631.    L30334: {
  632.     long new_93X;
  633.     new_93X = copy_stob(cont_89X, key_84X);
  634.     *((long *) (previous_90X - 3L)) = new_93X;
  635.     arg0 = (*((long *) (new_93X - 3L)));
  636.     arg1 = new_93X;
  637.     goto L30189;}}}}}
  638. }
  639.  
  640. long perform_application()
  641.  
  642. {
  643.   extern long Sthe_stringS, Smaximum_string_lengthS;
  644.   extern long Sexception_space_usedPS, Sexception_handlerS;
  645.   extern long Sdynamic_stateS, SscanS, Snewspace_beginS;
  646.   extern long Scurrent_output_portS, Sexit_statusS;
  647.   extern long Sopen_vm_portsS, Sopen_portsS, Sbottom_of_stackS;
  648.   extern long ScontS, Sstack_endS, Sstack_beginS;
  649.   extern long Snewspace_endS, SlimitS, ShpS;
  650.   extern long Sinterrupt_handlersS, SrootS, Sstack_limitS;
  651.   extern long SstackS, SnargsS, Scode_pointerS, StemplateS;
  652.   extern long SenvS, SvalS, Senabled_interruptsS;
  653.   extern long Spending_interruptsS;
  654.   extern long extended_vm(), scan(), close_port_noisily();
  655.   extern long write_string(), clear_registers(), close_port();
  656.   extern long preserve_continuation(), save_env_in_heap(), collect();
  657.   extern long perform_application(), Qps_error_1(), Qps_error_0();
  658.   long arg0, arg1, arg2, arg3, arg4;
  659.   long RSvalS = SvalS;
  660.   long RSstackS = SstackS;
  661.   long RScode_pointerS = Scode_pointerS;
  662.   long RSenvS = SenvS;
  663.  
  664.  START: {
  665.   long y_94X;
  666.  
  667.   /* ROBOT HACK */
  668.   ALARM_CHECK
  669.  
  670.   y_94X = Spending_interruptsS & Senabled_interruptsS;
  671.   if (0L == y_94X) {
  672.     long obj_95X;
  673.     obj_95X = RSvalS;
  674.     if ((obj_95X & 3L) == 3L) {
  675.       if ((((*((long *) ((obj_95X - 3L) + -4L))) >> 2L) & 31L) == 3L) {
  676.         long tem_96X;
  677.         RSenvS = (*((long *) ((RSvalS - 3L) + 4L)));
  678.         tem_96X = *((long *) (RSvalS - 3L));
  679.         StemplateS = tem_96X;
  680.         RScode_pointerS = ((*((long *) (tem_96X - 3L))) - 3L);
  681.         goto L34459;}
  682.       else {
  683.         arg0 = 0L;
  684.         goto L37385;}}
  685.     else {
  686.       arg0 = 0L;
  687.       goto L37385;}
  688.    L37385: {
  689.     if (SnargsS == 64L) {
  690.       long v_97X;
  691.       RSstackS = (RSstackS - -4L);
  692.       v_97X = *((long *) RSstackS);
  693.       arg0 = 2L;
  694.       arg1 = v_97X;
  695.       arg2 = 63L;
  696.       goto L33770;
  697.      L37334: {
  698.       long v_98X = arg0;
  699.       arg0 = v_98X;
  700.       goto L37303;}}
  701.     else {
  702.       long v_99X;
  703.       v_99X = SnargsS;
  704.       arg0 = 3L;
  705.       arg1 = 25L;
  706.       arg2 = v_99X;
  707.       goto L33770;
  708.      L37320: {
  709.       long v_100X = arg0;
  710.       arg0 = v_100X;
  711.       goto L37303;}}
  712.    L37303: {
  713.     long args_101X = arg0;
  714.     arg0 = 0L;
  715.     arg1 = 0L;
  716.     arg2 = RSvalS;
  717.     arg3 = args_101X;
  718.     goto L38697;}}}
  719.   else {
  720.     if ((RSstackS - 276L) > Sstack_limitS) {
  721.       arg0 = 0L;
  722.       goto L38011;}
  723.     else {
  724.       arg0 = 0L;
  725.       arg1 = 69L;
  726.       goto L32883;
  727.      L38299: {
  728.       arg0 = 0L;
  729.       goto L38011;}}
  730.    L38011: {
  731.     long key_102X = arg0;
  732.     long n_103X;
  733.     n_103X = Spending_interruptsS & Senabled_interruptsS;
  734.     arg0 = 0L;
  735.     arg1 = 1L;
  736.     goto L38263;
  737.    L38263: {
  738.     long i_104X = arg0;
  739.     long m_105X = arg1;
  740.     if (0L == (n_103X & m_105X)) {
  741.       arg0 = (i_104X + 1L);
  742.       arg1 = (m_105X * 2L);
  743.       goto L38263;}
  744.     else {
  745.       long tem_106X, v_107X, v_108X;
  746.       Spending_interruptsS = (n_103X & (~m_105X));
  747.       *((long *) RSstackS) = RSvalS;
  748.       RSstackS = (RSstackS - 4L);
  749.       *((long *) RSstackS) = (SnargsS << 2L);
  750.       RSstackS = (RSstackS - 4L);
  751.       *((long *) RSstackS) = (Senabled_interruptsS << 2L);
  752.       RSstackS = (RSstackS - 4L);
  753.       tem_106X = *((long *) ((SrootS - 3L) + 44L));
  754.       StemplateS = tem_106X;
  755.       RScode_pointerS = ((*((long *) (tem_106X - 3L))) - 3L);
  756.       v_107X = SnargsS + 3L;
  757.       v_108X = RScode_pointerS;
  758.       arg0 = 0L;
  759.       arg1 = v_108X;
  760.       arg2 = v_107X;
  761.       arg3 = key_102X;
  762.       goto L25305;
  763.      L37961: {
  764.       long obj_109X;
  765.       *((long *) RSstackS) = (Senabled_interruptsS << 2L);
  766.       RSstackS = (RSstackS - 4L);
  767.       SnargsS = 1L;
  768.       obj_109X = Sinterrupt_handlersS;
  769.       if ((obj_109X & 3L) == 3L) {
  770.         if ((((*((long *) ((obj_109X - 3L) + -4L))) >> 2L) & 31L) == 2L) {
  771.           arg0 = 9999999L;
  772.           goto L37936;}
  773.         else {
  774.           arg0 = 0L;
  775.           goto L38088;}}
  776.       else {
  777.         arg0 = 0L;
  778.         goto L38088;}
  779.      L38088: {
  780.       long v_110X;
  781.       SvalS = RSvalS;
  782.       SstackS = RSstackS;
  783.       Scode_pointerS = RScode_pointerS;
  784.       SenvS = RSenvS;
  785.       v_110X = Qps_error_0(((long)"interrupt handler is not a vector"));
  786.       RSvalS = SvalS;
  787.       RSstackS = SstackS;
  788.       RScode_pointerS = Scode_pointerS;
  789.       RSenvS = SenvS;
  790.       arg0 = v_110X;
  791.       goto L37936;}
  792.      L37936: {
  793.       long obj_111X;
  794.       RSvalS = (*((long *) ((Sinterrupt_handlersS - 3L) + (i_104X << 2L))));
  795.       Senabled_interruptsS = 0L;
  796.       obj_111X = RSvalS;
  797.       if ((obj_111X & 3L) == 3L) {
  798.         if ((((*((long *) ((obj_111X - 3L) + -4L))) >> 2L) & 31L) == 3L) {
  799.           arg0 = 9999999L;
  800.           goto L37900;}
  801.         else {
  802.           arg0 = 0L;
  803.           goto L38026;}}
  804.       else {
  805.         arg0 = 0L;
  806.         goto L38026;}
  807.      L38026: {
  808.       long v_112X;
  809.       SvalS = RSvalS;
  810.       SstackS = RSstackS;
  811.       Scode_pointerS = RScode_pointerS;
  812.       SenvS = RSenvS;
  813.       v_112X = Qps_error_1(((long)"interrupt handler is not a closure"), i_104X);
  814.       RSvalS = SvalS;
  815.       RSstackS = SstackS;
  816.       RScode_pointerS = Scode_pointerS;
  817.       RSenvS = SenvS;
  818.       arg0 = v_112X;
  819.       goto L37900;}
  820.      L37900: {
  821.       goto START;}}}}}}}
  822.  L34459: {
  823.   long b_113X;
  824.   b_113X = (*((unsigned char *) RScode_pointerS));
  825.   RScode_pointerS = (RScode_pointerS + 1L);
  826.   switch (b_113X) {
  827.     case 0 : {
  828.       long b_114X;
  829.       b_114X = (*((unsigned char *) RScode_pointerS));
  830.       RScode_pointerS = (RScode_pointerS + 1L);
  831.       if (SnargsS == b_114X) {
  832.         goto L34459;}
  833.       else {
  834.         if (SnargsS == 64L) {
  835.           long v_115X;
  836.           RSstackS = (RSstackS - -4L);
  837.           v_115X = *((long *) RSstackS);
  838.           arg0 = 6L;
  839.           arg1 = v_115X;
  840.           arg2 = 63L;
  841.           goto L33770;
  842.          L37033: {
  843.           long v_116X = arg0;
  844.           arg0 = v_116X;
  845.           goto L37002;}}
  846.         else {
  847.           long v_117X;
  848.           v_117X = SnargsS;
  849.           arg0 = 7L;
  850.           arg1 = 25L;
  851.           arg2 = v_117X;
  852.           goto L33770;
  853.          L37019: {
  854.           long v_118X = arg0;
  855.           arg0 = v_118X;
  856.           goto L37002;}}
  857.        L37002: {
  858.         long args_119X = arg0;
  859.         arg0 = 2L;
  860.         arg1 = 1L;
  861.         arg2 = RSvalS;
  862.         arg3 = args_119X;
  863.         goto L38697;}}}
  864.       break;
  865.     case 1 : {
  866.       long b_120X;
  867.       b_120X = (*((unsigned char *) RScode_pointerS));
  868.       RScode_pointerS = (RScode_pointerS + 1L);
  869.       if (SnargsS >= b_120X) {
  870.         goto L34459;}
  871.       else {
  872.         if (SnargsS == 64L) {
  873.           long v_121X;
  874.           RSstackS = (RSstackS - -4L);
  875.           v_121X = *((long *) RSstackS);
  876.           arg0 = 4L;
  877.           arg1 = v_121X;
  878.           arg2 = 63L;
  879.           goto L33770;
  880.          L37161: {
  881.           long v_122X = arg0;
  882.           arg0 = v_122X;
  883.           goto L37130;}}
  884.         else {
  885.           long v_123X;
  886.           v_123X = SnargsS;
  887.           arg0 = 5L;
  888.           arg1 = 25L;
  889.           arg2 = v_123X;
  890.           goto L33770;
  891.          L37147: {
  892.           long v_124X = arg0;
  893.           arg0 = v_124X;
  894.           goto L37130;}}
  895.        L37130: {
  896.         long args_125X = arg0;
  897.         arg0 = 1L;
  898.         arg1 = 1L;
  899.         arg2 = RSvalS;
  900.         arg3 = args_125X;
  901.         goto L38697;}}}
  902.       break;
  903.     case 2 : {
  904.       RSvalS = (SnargsS << 2L);
  905.       goto L34459;}
  906.       break;
  907.     case 3 : {
  908.       if ((RSstackS - 8L) > Sstack_limitS) {
  909.         arg0 = 0L;
  910.         goto L34885;}
  911.       else {
  912.         arg0 = 3L;
  913.         arg1 = 2L;
  914.         goto L32883;
  915.        L34997: {
  916.         arg0 = 0L;
  917.         goto L34885;}}
  918.      L34885: {
  919.       long count_126X, env_127X;
  920.       count_126X = (*((unsigned char *) RScode_pointerS));
  921.       *((long *) RSstackS) = 0L;
  922.       RSstackS = (RSstackS - 4L);
  923.       *((long *) RSstackS) = ((((((count_126X)) << 9L) + 522L)));
  924.       RSstackS = (RSstackS - 4L);
  925.       env_127X = ((RSstackS + 4L) + 4L) + 3L;
  926.       RScode_pointerS = (RScode_pointerS + 1L);
  927.       *((long *) (env_127X - 3L)) = RSenvS;
  928.       RSenvS = env_127X;
  929.       goto L34459;}}
  930.       break;
  931.     case 4 : {
  932.       long count_128X, space_129X;
  933.       count_128X = SnargsS;
  934.       space_129X = count_128X + 2L;
  935.       if ((ShpS + (space_129X << 2L)) < SlimitS) {
  936.         arg0 = 9999999L;
  937.         goto L35123;}
  938.       else {
  939.         SlimitS = Snewspace_endS;
  940.         arg0 = 19L;
  941.         goto L29273;
  942.        L35157: {
  943.         long v_130X;
  944.         SvalS = RSvalS;
  945.         SstackS = RSstackS;
  946.         Scode_pointerS = RScode_pointerS;
  947.         SenvS = RSenvS;
  948.         v_130X = collect();
  949.         RSvalS = SvalS;
  950.         RSstackS = SstackS;
  951.         RScode_pointerS = Scode_pointerS;
  952.         RSenvS = SenvS;
  953.         arg0 = 19L;
  954.         goto L24906;
  955.        L35165: {
  956.         long v_131X = arg0;
  957.         arg0 = v_131X;
  958.         goto L35123;}}}
  959.      L35123: {
  960.       if ((ShpS + (space_129X << 2L)) < SlimitS) {
  961.         arg0 = 0L;
  962.         goto L35060;}
  963.       else {
  964.         long v_132X;
  965.         SvalS = RSvalS;
  966.         SstackS = RSstackS;
  967.         Scode_pointerS = RScode_pointerS;
  968.         SenvS = RSenvS;
  969.         v_132X = Qps_error_0(((long)"Scheme48 heap overflow"));
  970.         RSvalS = SvalS;
  971.         RSstackS = SstackS;
  972.         RScode_pointerS = Scode_pointerS;
  973.         RSenvS = SenvS;
  974.         arg0 = v_132X;
  975.         goto L35060;}}
  976.      L35060: {
  977.       long count_133X, len_134X, new_135X;
  978.       count_133X = (*((unsigned char *) RScode_pointerS));
  979.       len_134X = (count_133X + 1L) * 4L;
  980.       *((long *) ShpS) = ((((len_134X << 7L) + 10L)));
  981.       ShpS = (ShpS + 4L);
  982.       new_135X = ShpS + 3L;
  983.       ShpS = (ShpS + (((len_134X + 3L) & ~3)));
  984.       if (len_134X > 0L) {
  985.         *((long *) (ShpS + -4L)) = 0L;
  986.         arg0 = new_135X;
  987.         goto L18054;}
  988.       else {
  989.         arg0 = new_135X;
  990.         goto L18054;}
  991.      L18054: {
  992.       long stob_136X = arg0;
  993.       long from_137X;
  994.       from_137X = RSstackS + 4L;
  995.       arg0 = from_137X;
  996.       arg1 = (4L + (stob_136X - 3L));
  997.       goto L18092;
  998.      L18092: {
  999.       long from_138X = arg0;
  1000.       long to_139X = arg1;
  1001.       if (from_138X >= (from_137X + (count_133X << 2L))) {
  1002.         RSstackS = (RSstackS - ((0L - count_133X) << 2L));
  1003.         RScode_pointerS = (RScode_pointerS + 1L);
  1004.         *((long *) (stob_136X - 3L)) = RSenvS;
  1005.         RSenvS = stob_136X;
  1006.         goto L34459;}
  1007.       else {
  1008.         *((long *) to_139X) = (*((long *) from_138X));
  1009.         arg0 = (from_138X + 4L);
  1010.         arg1 = (to_139X + 4L);
  1011.         goto L18092;}}}}}
  1012.       break;
  1013.     case 5 : {
  1014.       RSenvS = (*((long *) (RSenvS - 3L)));
  1015.       goto L34459;}
  1016.       break;
  1017.     case 6 : {
  1018.       long b_140X;
  1019.       b_140X = (*((unsigned char *) RScode_pointerS));
  1020.       RScode_pointerS = (RScode_pointerS + 1L);
  1021.       if (SnargsS == 64L) {
  1022.         long v_141X, v_142X;
  1023.         v_141X = (SnargsS - 1L) - b_140X;
  1024.         RSstackS = (RSstackS - -4L);
  1025.         v_142X = *((long *) RSstackS);
  1026.         arg0 = 9L;
  1027.         arg1 = v_142X;
  1028.         arg2 = v_141X;
  1029.         goto L33770;
  1030.        L34710: {
  1031.         long v_143X = arg0;
  1032.         arg0 = v_143X;
  1033.         goto L34725;}}
  1034.       else {
  1035.         long v_144X;
  1036.         v_144X = SnargsS - b_140X;
  1037.         arg0 = 8L;
  1038.         arg1 = 25L;
  1039.         arg2 = v_144X;
  1040.         goto L33770;
  1041.        L34723: {
  1042.         long v_145X = arg0;
  1043.         arg0 = v_145X;
  1044.         goto L34725;}}
  1045.      L34725: {
  1046.       long args_146X = arg0;
  1047.       RSvalS = args_146X;
  1048.       SnargsS = (b_140X + 1L);
  1049.       goto L34459;}}
  1050.       break;
  1051.     case 7 : {
  1052.       long b_147X;
  1053.       b_147X = (*((unsigned char *) RScode_pointerS));
  1054.       RScode_pointerS = (RScode_pointerS + 1L);
  1055.       RSvalS = (*((long *) ((StemplateS - 3L) + (b_147X << 2L))));
  1056.       goto L34459;}
  1057.       break;
  1058.     case 8 : {
  1059.       long b_148X, env_149X;
  1060.       b_148X = (*((unsigned char *) RScode_pointerS));
  1061.       RScode_pointerS = (RScode_pointerS + 1L);
  1062.       env_149X = RSenvS;
  1063.       arg0 = env_149X;
  1064.       arg1 = b_148X;
  1065.       goto L58767;
  1066.      L58767: {
  1067.       long env_150X = arg0;
  1068.       long i_151X = arg1;
  1069.       if (i_151X == 0L) {
  1070.         long b_152X;
  1071.         b_152X = (*((unsigned char *) RScode_pointerS));
  1072.         RScode_pointerS = (RScode_pointerS + 1L);
  1073.         RSvalS = (*((long *) ((env_150X - 3L) + (b_152X << 2L))));
  1074.         if (RSvalS == 529L) {
  1075.           arg0 = 3L;
  1076.           arg1 = 2L;
  1077.           goto L30695;}
  1078.         else {
  1079.           goto L34459;}}
  1080.       else {
  1081.         arg0 = (*((long *) (env_150X - 3L)));
  1082.         arg1 = (i_151X - 1L);
  1083.         goto L58767;}}}
  1084.       break;
  1085.     case 9 : {
  1086.       long env_153X, b_154X;
  1087.       env_153X = RSenvS;
  1088.       b_154X = (*((unsigned char *) RScode_pointerS));
  1089.       RScode_pointerS = (RScode_pointerS + 1L);
  1090.       RSvalS = (*((long *) ((env_153X - 3L) + (b_154X << 2L))));
  1091.       if (RSvalS == 529L) {
  1092.         arg0 = 2L;
  1093.         arg1 = 1L;
  1094.         goto L30695;}
  1095.       else {
  1096.         goto L34459;}}
  1097.       break;
  1098.     case 10 : {
  1099.       long env_155X, b_156X;
  1100.       env_155X = *((long *) (RSenvS - 3L));
  1101.       b_156X = (*((unsigned char *) RScode_pointerS));
  1102.       RScode_pointerS = (RScode_pointerS + 1L);
  1103.       RSvalS = (*((long *) ((env_155X - 3L) + (b_156X << 2L))));
  1104.       if (RSvalS == 529L) {
  1105.         arg0 = 1L;
  1106.         arg1 = 1L;
  1107.         goto L30695;}
  1108.       else {
  1109.         goto L34459;}}
  1110.       break;
  1111.     case 11 : {
  1112.       long env_157X, b_158X;
  1113.       env_157X = *((long *) ((*((long *) (RSenvS - 3L))) - 3L));
  1114.       b_158X = (*((unsigned char *) RScode_pointerS));
  1115.       RScode_pointerS = (RScode_pointerS + 1L);
  1116.       RSvalS = (*((long *) ((env_157X - 3L) + (b_158X << 2L))));
  1117.       if (RSvalS == 529L) {
  1118.         arg0 = 0L;
  1119.         arg1 = 1L;
  1120.         goto L30695;}
  1121.       else {
  1122.         goto L34459;}}
  1123.       break;
  1124.     case 12 : {
  1125.       long b_159X, env_160X;
  1126.       b_159X = (*((unsigned char *) RScode_pointerS));
  1127.       RScode_pointerS = (RScode_pointerS + 1L);
  1128.       env_160X = RSenvS;
  1129.       arg0 = env_160X;
  1130.       arg1 = b_159X;
  1131.       goto L35396;
  1132.      L35396: {
  1133.       long env_161X = arg0;
  1134.       long i_162X = arg1;
  1135.       if (i_162X == 0L) {
  1136.         long b_163X;
  1137.         b_163X = (*((unsigned char *) RScode_pointerS));
  1138.         RScode_pointerS = (RScode_pointerS + 1L);
  1139.         *((long *) ((env_161X - 3L) + (b_163X << 2L))) = RSvalS;
  1140.         RSvalS = 13L;
  1141.         goto L34459;}
  1142.       else {
  1143.         arg0 = (*((long *) (env_161X - 3L)));
  1144.         arg1 = (i_162X - 1L);
  1145.         goto L35396;}}}
  1146.       break;
  1147.     case 13 : {
  1148.       long b_164X, location_165X;
  1149.       b_164X = (*((unsigned char *) RScode_pointerS));
  1150.       RScode_pointerS = (RScode_pointerS + 1L);
  1151.       location_165X = *((long *) ((StemplateS - 3L) + (b_164X << 2L)));
  1152.       RSvalS = (*((long *) (location_165X - 3L)));
  1153.       if ((RSvalS & 255L) == 17L) {
  1154.         arg0 = 72L;
  1155.         arg1 = 1L;
  1156.         arg2 = location_165X;
  1157.         goto L38616;}
  1158.       else {
  1159.         goto L34459;}}
  1160.       break;
  1161.     case 14 : {
  1162.       long b_166X, location_167X;
  1163.       b_166X = (*((unsigned char *) RScode_pointerS));
  1164.       RScode_pointerS = (RScode_pointerS + 1L);
  1165.       location_167X = *((long *) ((StemplateS - 3L) + (b_166X << 2L)));
  1166.       if ((*((long *) (location_167X - 3L))) == 273L) {
  1167.         arg0 = 82L;
  1168.         arg1 = 1L;
  1169.         arg2 = location_167X;
  1170.         arg3 = RSvalS;
  1171.         goto L38648;}
  1172.       else {
  1173.         *((long *) (location_167X - 3L)) = RSvalS;
  1174.         RSvalS = 13L;
  1175.         goto L34459;}}
  1176.       break;
  1177.     case 15 : {
  1178.       long p_168X;
  1179.       p_168X = RSenvS;
  1180.       if (p_168X >= Sstack_beginS) {
  1181.         if (p_168X <= Sstack_endS) {
  1182.           long env_169X;
  1183.           env_169X = RSenvS;
  1184.           arg0 = env_169X;
  1185.           arg1 = 0L;
  1186.           goto L33701;
  1187.          L33701: {
  1188.           long env_170X = arg0;
  1189.           long size_171X = arg1;
  1190.           long size_172X, env_173X;
  1191.           size_172X = size_171X + ((((((*((long *) ((env_170X - 3L) + -4L))) >> 7L)) + 3L) >> 2L) + 1L);
  1192.           env_173X = *((long *) (env_170X - 3L));
  1193.           if (env_173X >= Sstack_beginS) {
  1194.             if (env_173X <= Sstack_endS) {
  1195.               arg0 = env_173X;
  1196.               arg1 = size_172X;
  1197.               goto L33701;}
  1198.             else {
  1199.               arg0 = size_172X;
  1200.               goto L33632;}}
  1201.           else {
  1202.             arg0 = size_172X;
  1203.             goto L33632;}}
  1204.          L33632: {
  1205.           long space_174X = arg0;
  1206.           if ((ShpS + (space_174X << 2L)) < SlimitS) {
  1207.             arg0 = 9999999L;
  1208.             goto L33648;}
  1209.           else {
  1210.             SlimitS = Snewspace_endS;
  1211.             arg0 = 22L;
  1212.             goto L29273;
  1213.            L33682: {
  1214.             long v_175X;
  1215.             SvalS = RSvalS;
  1216.             SstackS = RSstackS;
  1217.             Scode_pointerS = RScode_pointerS;
  1218.             SenvS = RSenvS;
  1219.             v_175X = collect();
  1220.             RSvalS = SvalS;
  1221.             RSstackS = SstackS;
  1222.             RScode_pointerS = Scode_pointerS;
  1223.             RSenvS = SenvS;
  1224.             arg0 = 22L;
  1225.             goto L24906;
  1226.            L33690: {
  1227.             long v_176X = arg0;
  1228.             arg0 = v_176X;
  1229.             goto L33648;}}}
  1230.          L33648: {
  1231.           if ((ShpS + (space_174X << 2L)) < SlimitS) {
  1232.             arg0 = 0L;
  1233.             goto L33634;}
  1234.           else {
  1235.             long v_177X;
  1236.             SvalS = RSvalS;
  1237.             SstackS = RSstackS;
  1238.             Scode_pointerS = RScode_pointerS;
  1239.             SenvS = RSenvS;
  1240.             v_177X = Qps_error_0(((long)"Scheme48 heap overflow"));
  1241.             RSvalS = SvalS;
  1242.             RSstackS = SstackS;
  1243.             RScode_pointerS = Scode_pointerS;
  1244.             RSenvS = SenvS;
  1245.             arg0 = v_177X;
  1246.             goto L33634;}}
  1247.          L33634: {
  1248.           long key_178X = arg0;
  1249.           long v_179X;
  1250.           SvalS = RSvalS;
  1251.           SstackS = RSstackS;
  1252.           Scode_pointerS = RScode_pointerS;
  1253.           SenvS = RSenvS;
  1254.           v_179X = save_env_in_heap(RSenvS, ScontS, key_178X, 0L);
  1255.           RSvalS = SvalS;
  1256.           RSstackS = SstackS;
  1257.           RScode_pointerS = Scode_pointerS;
  1258.           RSenvS = SenvS;
  1259.           RSenvS = v_179X;
  1260.           arg0 = 54321L;
  1261.           goto L35739;}}}
  1262.         else {
  1263.           arg0 = 8888888L;
  1264.           goto L35739;}}
  1265.       else {
  1266.         arg0 = 8888888L;
  1267.         goto L35739;}
  1268.      L35739: {
  1269.       if ((ShpS + 12L) < SlimitS) {
  1270.         arg0 = 9999999L;
  1271.         goto L35823;}
  1272.       else {
  1273.         SlimitS = Snewspace_endS;
  1274.         arg0 = 18L;
  1275.         goto L29273;
  1276.        L35857: {
  1277.         long v_180X;
  1278.         SvalS = RSvalS;
  1279.         SstackS = RSstackS;
  1280.         Scode_pointerS = RScode_pointerS;
  1281.         SenvS = RSenvS;
  1282.         v_180X = collect();
  1283.         RSvalS = SvalS;
  1284.         RSstackS = SstackS;
  1285.         RScode_pointerS = Scode_pointerS;
  1286.         RSenvS = SenvS;
  1287.         arg0 = 18L;
  1288.         goto L24906;
  1289.        L35865: {
  1290.         long v_181X = arg0;
  1291.         arg0 = v_181X;
  1292.         goto L35823;}}}
  1293.      L35823: {
  1294.       if ((ShpS + 12L) < SlimitS) {
  1295.         arg0 = 0L;
  1296.         goto L35735;}
  1297.       else {
  1298.         long v_182X;
  1299.         SvalS = RSvalS;
  1300.         SstackS = RSstackS;
  1301.         Scode_pointerS = RScode_pointerS;
  1302.         SenvS = RSenvS;
  1303.         v_182X = Qps_error_0(((long)"Scheme48 heap overflow"));
  1304.         RSvalS = SvalS;
  1305.         RSstackS = SstackS;
  1306.         RScode_pointerS = Scode_pointerS;
  1307.         RSenvS = SenvS;
  1308.         arg0 = v_182X;
  1309.         goto L35735;}}
  1310.      L35735: {
  1311.       long b_183X, a_184X, b_185X, new_186X;
  1312.       b_183X = (*((unsigned char *) RScode_pointerS));
  1313.       RScode_pointerS = (RScode_pointerS + 1L);
  1314.       a_184X = *((long *) ((StemplateS - 3L) + (b_183X << 2L)));
  1315.       b_185X = RSenvS;
  1316.       *((long *) ShpS) = 1038L;
  1317.       ShpS = (ShpS + 4L);
  1318.       new_186X = ShpS + 3L;
  1319.       ShpS = (ShpS + 8L);
  1320.       *((long *) (ShpS + -4L)) = 0L;
  1321.       *((long *) (new_186X - 3L)) = a_184X;
  1322.       *((long *) ((new_186X - 3L) + 4L)) = b_185X;
  1323.       RSvalS = new_186X;
  1324.       goto L34459;}}}
  1325.       break;
  1326.     case 16 : {
  1327.       *((long *) RSstackS) = RSvalS;
  1328.       RSstackS = (RSstackS - 4L);
  1329.       goto L34459;}
  1330.       break;
  1331.     case 17 : {
  1332.       RSstackS = (RSstackS - -4L);
  1333.       RSvalS = (*((long *) RSstackS));
  1334.       goto L34459;}
  1335.       break;
  1336.     case 18 : {
  1337.       long b_187X;
  1338.       b_187X = (*((unsigned char *) RScode_pointerS));
  1339.       RScode_pointerS = (RScode_pointerS + 1L);
  1340.       RSvalS = (*((long *) (RSstackS + ((1L + b_187X) << 2L))));
  1341.       goto L34459;}
  1342.       break;
  1343.     case 19 : {
  1344.       long b_188X;
  1345.       b_188X = (*((unsigned char *) RScode_pointerS));
  1346.       RScode_pointerS = (RScode_pointerS + 1L);
  1347.       *((long *) (RSstackS + ((1L + b_188X) << 2L))) = RSvalS;
  1348.       goto L34459;}
  1349.       break;
  1350.     case 20 : {
  1351.       if ((RSstackS - 276L) > Sstack_limitS) {
  1352.         arg0 = 0L;
  1353.         goto L35932;}
  1354.       else {
  1355.         arg0 = 2L;
  1356.         arg1 = 69L;
  1357.         goto L32883;
  1358.        L36018: {
  1359.         arg0 = 0L;
  1360.         goto L35932;}}
  1361.      L35932: {
  1362.       long key_189X = arg0;
  1363.       long b_190X, b_191X, b_192X;
  1364.       b_190X = (*((unsigned char *) RScode_pointerS));
  1365.       RScode_pointerS = (RScode_pointerS + 1L);
  1366.       b_191X = (*((unsigned char *) RScode_pointerS));
  1367.       RScode_pointerS = (RScode_pointerS + 1L);
  1368.       b_192X = (*((unsigned char *) RScode_pointerS));
  1369.       RScode_pointerS = (RScode_pointerS + 1L);
  1370.       arg0 = 1L;
  1371.       arg1 = (RScode_pointerS + ((b_190X << 8L) + b_191X));
  1372.       arg2 = b_192X;
  1373.       arg3 = key_189X;
  1374.       goto L25305;}}
  1375.       break;
  1376.     case 21 : {
  1377.       SnargsS = ((*((unsigned char *) RScode_pointerS)));
  1378.       goto START;}
  1379.       break;
  1380.     case 22 : {
  1381.       long cont_193X, nargs_194X, start_arg_195X, start_loc_196X;
  1382.       SnargsS = ((*((unsigned char *) RScode_pointerS)));
  1383.       cont_193X = ScontS;
  1384.       nargs_194X = SnargsS;
  1385.       start_arg_195X = RSstackS + (nargs_194X << 2L);
  1386.       start_loc_196X = (cont_193X - 7L) - 4L;
  1387.       if (start_loc_196X <= start_arg_195X) {
  1388.         arg0 = 9999999L;
  1389.         goto L37544;}
  1390.       else {
  1391.         arg0 = start_loc_196X;
  1392.         arg1 = start_arg_195X;
  1393.         goto L37588;
  1394.        L37588: {
  1395.         long loc_197X = arg0;
  1396.         long arg_198X = arg1;
  1397.         if (arg_198X <= RSstackS) {
  1398.           RSstackS = loc_197X;
  1399.           arg0 = 54321L;
  1400.           goto L37544;}
  1401.         else {
  1402.           *((long *) loc_197X) = (*((long *) arg_198X));
  1403.           arg0 = (loc_197X - 4L);
  1404.           arg1 = (arg_198X - 4L);
  1405.           goto L37588;}}}
  1406.      L37544: {
  1407.       goto START;}}
  1408.       break;
  1409.     case 23 : {
  1410.       long b_199X, b_200X;
  1411.       b_199X = (*((unsigned char *) RScode_pointerS));
  1412.       RScode_pointerS = (RScode_pointerS + 1L);
  1413.       b_200X = (*((unsigned char *) RScode_pointerS));
  1414.       RScode_pointerS = (RScode_pointerS + 1L);
  1415.       if ((RSvalS & 255L) == 1L) {
  1416.         RScode_pointerS = (RScode_pointerS + ((b_199X << 8L) + b_200X));
  1417.         goto L34459;}
  1418.       else {
  1419.         goto L34459;}}
  1420.       break;
  1421.     case 24 : {
  1422.       long b_201X, b_202X;
  1423.       b_201X = (*((unsigned char *) RScode_pointerS));
  1424.       RScode_pointerS = (RScode_pointerS + 1L);
  1425.       b_202X = (*((unsigned char *) RScode_pointerS));
  1426.       RScode_pointerS = (RScode_pointerS + 1L);
  1427.       RScode_pointerS = (RScode_pointerS + ((b_201X << 8L) + b_202X));
  1428.       goto L34459;}
  1429.       break;
  1430.     case 25 : {
  1431.       if ((RSvalS & 3L) == 0L) {
  1432.         long val_203X, b_204X;
  1433.         val_203X = RSvalS >> 2L;
  1434.         b_204X = (*((unsigned char *) RScode_pointerS));
  1435.         RScode_pointerS = (RScode_pointerS + 1L);
  1436.         if (val_203X >= 0L) {
  1437.           if (val_203X < b_204X) {
  1438.             long b_205X, b_206X;
  1439.             RScode_pointerS = (RScode_pointerS + (val_203X * 2L));
  1440.             b_205X = (*((unsigned char *) RScode_pointerS));
  1441.             RScode_pointerS = (RScode_pointerS + 1L);
  1442.             b_206X = (*((unsigned char *) RScode_pointerS));
  1443.             RScode_pointerS = (RScode_pointerS + 1L);
  1444.             arg0 = ((b_205X << 8L) + b_206X);
  1445.             goto L39580;}
  1446.           else {
  1447.             arg0 = 0L;
  1448.             goto L39574;}}
  1449.         else {
  1450.           arg0 = 0L;
  1451.           goto L39574;}
  1452.        L39574: {
  1453.         arg0 = (b_204X * 2L);
  1454.         goto L39580;}
  1455.        L39580: {
  1456.         long offset_207X = arg0;
  1457.         RScode_pointerS = (RScode_pointerS + offset_207X);
  1458.         goto L34459;}}
  1459.       else {
  1460.         arg0 = 71L;
  1461.         arg1 = 0L;
  1462.         arg2 = RSvalS;
  1463.         goto L38616;}}
  1464.       break;
  1465.     case 26 : {
  1466.       long cont_208X, tem_209X, pc_210X;
  1467.       cont_208X = ScontS;
  1468.       tem_209X = *((long *) ((ScontS - 3L) + 8L));
  1469.       pc_210X = *((long *) ((ScontS - 3L) + 4L));
  1470.       StemplateS = tem_209X;
  1471.       RScode_pointerS = (((*((long *) (tem_209X - 3L))) - 3L) + (pc_210X >> 2L));
  1472.       RSenvS = (*((long *) ((ScontS - 3L) + 12L)));
  1473.       ScontS = (*((long *) (ScontS - 3L)));
  1474.       RSstackS = ((cont_208X - 7L) + 16L);
  1475.       goto L34459;}
  1476.       break;
  1477.     case 27 : {
  1478.       long space_211X;
  1479.       space_211X = (Sstack_endS - RSstackS) >> 2L;
  1480.       if ((ShpS + (space_211X << 2L)) < SlimitS) {
  1481.         arg0 = 9999999L;
  1482.         goto L36447;}
  1483.       else {
  1484.         SlimitS = Snewspace_endS;
  1485.         arg0 = 17L;
  1486.         goto L29273;
  1487.        L36481: {
  1488.         long v_212X;
  1489.         SvalS = RSvalS;
  1490.         SstackS = RSstackS;
  1491.         Scode_pointerS = RScode_pointerS;
  1492.         SenvS = RSenvS;
  1493.         v_212X = collect();
  1494.         RSvalS = SvalS;
  1495.         RSstackS = SstackS;
  1496.         RScode_pointerS = Scode_pointerS;
  1497.         RSenvS = SenvS;
  1498.         arg0 = 17L;
  1499.         goto L24906;
  1500.        L36489: {
  1501.         long v_213X = arg0;
  1502.         arg0 = v_213X;
  1503.         goto L36447;}}}
  1504.      L36447: {
  1505.       if ((ShpS + (space_211X << 2L)) < SlimitS) {
  1506.         arg0 = 0L;
  1507.         goto L36416;}
  1508.       else {
  1509.         long v_214X;
  1510.         SvalS = RSvalS;
  1511.         SstackS = RSstackS;
  1512.         Scode_pointerS = RScode_pointerS;
  1513.         SenvS = RSenvS;
  1514.         v_214X = Qps_error_0(((long)"Scheme48 heap overflow"));
  1515.         RSvalS = SvalS;
  1516.         RSstackS = SstackS;
  1517.         RScode_pointerS = Scode_pointerS;
  1518.         RSenvS = SenvS;
  1519.         arg0 = v_214X;
  1520.         goto L36416;}}
  1521.      L36416: {
  1522.       long key_215X = arg0;
  1523.       long cont_216X;
  1524.       SvalS = RSvalS;
  1525.       SstackS = RSstackS;
  1526.       Scode_pointerS = RScode_pointerS;
  1527.       SenvS = RSenvS;
  1528.       cont_216X = preserve_continuation(ScontS, key_215X, 2L);
  1529.       RSvalS = SvalS;
  1530.       RSstackS = SstackS;
  1531.       RScode_pointerS = Scode_pointerS;
  1532.       RSenvS = SenvS;
  1533.       arg0 = 2L;
  1534.       arg1 = cont_216X;
  1535.       goto L23036;
  1536.      L36440: {
  1537.       long v_217X = arg0;
  1538.       ScontS = v_217X;
  1539.       RSvalS = cont_216X;
  1540.       goto L34459;}}}
  1541.       break;
  1542.     case 28 : {
  1543.       RSstackS = (RSstackS - -4L);
  1544.       arg0 = 0L;
  1545.       arg1 = (*((long *) RSstackS));
  1546.       goto L23036;}
  1547.       break;
  1548.     case 29 : {
  1549.       long list_218X;
  1550.       list_218X = RSvalS;
  1551.       arg0 = list_218X;
  1552.       arg1 = 0L;
  1553.       arg2 = list_218X;
  1554.       arg3 = 0L;
  1555.       goto L58052;
  1556.      L58052: {
  1557.       long fast_219X = arg0;
  1558.       long len_220X = arg1;
  1559.       long slow_221X = arg2;
  1560.       long move_slowP_222X = arg3;
  1561.       if (25L == fast_219X) {
  1562.         long nargs_223X;
  1563.         nargs_223X = len_220X + ((*((unsigned char *) RScode_pointerS)));
  1564.         if (nargs_223X <= 63L) {
  1565.           arg0 = 0L;
  1566.           goto L57796;}
  1567.         else {
  1568.           arg0 = (nargs_223X - 63L);
  1569.           goto L57796;}
  1570.        L57796: {
  1571.         long overflow_224X = arg0;
  1572.         long proc_225X, list_226X;
  1573.         RSstackS = (RSstackS - -4L);
  1574.         proc_225X = *((long *) RSstackS);
  1575.         list_226X = RSvalS;
  1576.         arg0 = (len_220X - overflow_224X);
  1577.         arg1 = list_226X;
  1578.         goto L57918;
  1579.        L57918: {
  1580.         long i_227X = arg0;
  1581.         long l_228X = arg1;
  1582.         if (i_227X <= 0L) {
  1583.           RSvalS = proc_225X;
  1584.           if (overflow_224X == 0L) {
  1585.             SnargsS = nargs_223X;
  1586.             goto START;}
  1587.           else {
  1588.             long space_229X;
  1589.             *((long *) RSstackS) = l_228X;
  1590.             RSstackS = (RSstackS - 4L);
  1591.             space_229X = 3L * overflow_224X;
  1592.             if ((ShpS + (space_229X << 2L)) < SlimitS) {
  1593.               arg0 = 9999999L;
  1594.               goto L34269;}
  1595.             else {
  1596.               SlimitS = Snewspace_endS;
  1597.               arg0 = 20L;
  1598.               goto L29273;
  1599.              L34303: {
  1600.               long v_230X;
  1601.               SvalS = RSvalS;
  1602.               SstackS = RSstackS;
  1603.               Scode_pointerS = RScode_pointerS;
  1604.               SenvS = RSenvS;
  1605.               v_230X = collect();
  1606.               RSvalS = SvalS;
  1607.               RSstackS = SstackS;
  1608.               RScode_pointerS = Scode_pointerS;
  1609.               RSenvS = SenvS;
  1610.               arg0 = 20L;
  1611.               goto L24906;
  1612.              L34311: {
  1613.               long v_231X = arg0;
  1614.               arg0 = v_231X;
  1615.               goto L34269;}}}
  1616.            L34269: {
  1617.             if ((ShpS + (space_229X << 2L)) < SlimitS) {
  1618.               arg0 = 0L;
  1619.               goto L34099;}
  1620.             else {
  1621.               long v_232X;
  1622.               SvalS = RSvalS;
  1623.               SstackS = RSstackS;
  1624.               Scode_pointerS = RScode_pointerS;
  1625.               SenvS = RSenvS;
  1626.               v_232X = Qps_error_0(((long)"Scheme48 heap overflow"));
  1627.               RSvalS = SvalS;
  1628.               RSstackS = SstackS;
  1629.               RScode_pointerS = Scode_pointerS;
  1630.               RSenvS = SenvS;
  1631.               arg0 = v_232X;
  1632.               goto L34099;}}
  1633.            L34099: {
  1634.             long list_233X, a_234X, new_235X, v_236X;
  1635.             RSstackS = (RSstackS - -4L);
  1636.             list_233X = *((long *) RSstackS);
  1637.             a_234X = *((long *) (list_233X - 3L));
  1638.             *((long *) ShpS) = 1026L;
  1639.             ShpS = (ShpS + 4L);
  1640.             new_235X = ShpS + 3L;
  1641.             ShpS = (ShpS + 8L);
  1642.             *((long *) (ShpS + -4L)) = 0L;
  1643.             *((long *) (new_235X - 3L)) = a_234X;
  1644.             *((long *) ((new_235X - 3L) + 4L)) = 25L;
  1645.             v_236X = *((long *) ((list_233X - 3L) + 4L));
  1646.             arg0 = v_236X;
  1647.             arg1 = new_235X;
  1648.             goto L34014;
  1649.            L34014: {
  1650.             long l_237X = arg0;
  1651.             long last_238X = arg1;
  1652.             if (25L == l_237X) {
  1653.               *((long *) RSstackS) = new_235X;
  1654.               RSstackS = (RSstackS - 4L);
  1655.               SnargsS = 64L;
  1656.               goto START;}
  1657.             else {
  1658.               long a_239X, new_240X;
  1659.               a_239X = *((long *) (l_237X - 3L));
  1660.               *((long *) ShpS) = 1026L;
  1661.               ShpS = (ShpS + 4L);
  1662.               new_240X = ShpS + 3L;
  1663.               ShpS = (ShpS + 8L);
  1664.               *((long *) (ShpS + -4L)) = 0L;
  1665.               *((long *) (new_240X - 3L)) = a_239X;
  1666.               *((long *) ((new_240X - 3L) + 4L)) = 25L;
  1667.               *((long *) ((last_238X - 3L) + 4L)) = new_240X;
  1668.               arg0 = (*((long *) ((l_237X - 3L) + 4L)));
  1669.               arg1 = new_240X;
  1670.               goto L34014;}}}}}
  1671.         else {
  1672.           *((long *) RSstackS) = (*((long *) (l_228X - 3L)));
  1673.           RSstackS = (RSstackS - 4L);
  1674.           arg0 = (i_227X - 1L);
  1675.           arg1 = (*((long *) ((l_228X - 3L) + 4L)));
  1676.           goto L57918;}}}}
  1677.       else {
  1678.         if ((fast_219X & 3L) == 3L) {
  1679.           if ((((*((long *) ((fast_219X - 3L) + -4L))) >> 2L) & 31L) == 0L) {
  1680.             if (move_slowP_222X != 0) {
  1681.               if (fast_219X == slow_221X) {
  1682.                 long proc_241X, v_242X;
  1683.                 RSstackS = (RSstackS - -4L);
  1684.                 proc_241X = *((long *) RSstackS);
  1685.                 v_242X = (*((unsigned char *) RScode_pointerS));
  1686.                 arg0 = 1L;
  1687.                 arg1 = 25L;
  1688.                 arg2 = v_242X;
  1689.                 goto L33770;
  1690.                L57839: {
  1691.                 long args_243X = arg0;
  1692.                 arg0 = 9L;
  1693.                 arg1 = 0L;
  1694.                 arg2 = proc_241X;
  1695.                 arg3 = args_243X;
  1696.                 arg4 = RSvalS;
  1697.                 goto L38789;}}
  1698.               else {
  1699.                 arg0 = (*((long *) ((fast_219X - 3L) + 4L)));
  1700.                 arg1 = (len_220X + 1L);
  1701.                 arg2 = (*((long *) ((slow_221X - 3L) + 4L)));
  1702.                 arg3 = 0L;
  1703.                 goto L58052;}}
  1704.             else {
  1705.               arg0 = (*((long *) ((fast_219X - 3L) + 4L)));
  1706.               arg1 = (len_220X + 1L);
  1707.               arg2 = slow_221X;
  1708.               arg3 = 255L;
  1709.               goto L58052;}}
  1710.           else {
  1711.             arg0 = 0L;
  1712.             goto L58057;}}
  1713.         else {
  1714.           arg0 = 0L;
  1715.           goto L58057;}
  1716.        L58057: {
  1717.         long proc_244X, v_245X;
  1718.         RSstackS = (RSstackS - -4L);
  1719.         proc_244X = *((long *) RSstackS);
  1720.         v_245X = (*((unsigned char *) RScode_pointerS));
  1721.         arg0 = 0L;
  1722.         arg1 = 25L;
  1723.         arg2 = v_245X;
  1724.         goto L33770;
  1725.        L58142: {
  1726.         long args_246X = arg0;
  1727.         arg0 = 8L;
  1728.         arg1 = 0L;
  1729.         arg2 = proc_244X;
  1730.         arg3 = args_246X;
  1731.         arg4 = RSvalS;
  1732.         goto L38789;}}}}}
  1733.       break;
  1734.     case 30 : {
  1735.       arg0 = 5L;
  1736.       arg1 = 0L;
  1737.       goto L30695;}
  1738.       break;
  1739.     case 31 : {
  1740.       long cont_247X;
  1741.       cont_247X = *((long *) (Sbottom_of_stackS - 3L));
  1742.       if (cont_247X == 1L) {
  1743.         long v_248X;
  1744.         SvalS = RSvalS;
  1745.         SstackS = RSstackS;
  1746.         Scode_pointerS = RScode_pointerS;
  1747.         SenvS = RSenvS;
  1748.         v_248X = Qps_error_0(((long)"startup procedure returned"));
  1749.         RSvalS = SvalS;
  1750.         RSstackS = SstackS;
  1751.         RScode_pointerS = Scode_pointerS;
  1752.         RSenvS = SenvS;
  1753.         arg0 = 1L;
  1754.         arg1 = cont_247X;
  1755.         goto L23036;}
  1756.       else {
  1757.         arg0 = 1L;
  1758.         arg1 = cont_247X;
  1759.         goto L23036;}}
  1760.       break;
  1761.     case 32 : {
  1762.       long arg2_249X, x_250X;
  1763.       RSstackS = (RSstackS - -4L);
  1764.       arg2_249X = *((long *) RSstackS);
  1765.       x_250X = RSvalS;
  1766.       if (arg2_249X == x_250X) {
  1767.         arg0 = 5L;
  1768.         goto L46601;}
  1769.       else {
  1770.         arg0 = 1L;
  1771.         goto L46601;}
  1772.      L46601: {
  1773.       long val_251X = arg0;
  1774.       RSvalS = val_251X;
  1775.       goto L34459;}}
  1776.       break;
  1777.     case 33 : {
  1778.       long x_252X;
  1779.       x_252X = RSvalS;
  1780.       if ((x_252X & 3L) == 0L) {
  1781.         arg0 = 5L;
  1782.         goto L40149;}
  1783.       else {
  1784.         if ((x_252X & 3L) == 3L) {
  1785.           if ((((*((long *) ((x_252X - 3L) + -4L))) >> 2L) & 31L) == 9L) {
  1786.             arg0 = 5L;
  1787.             goto L40149;}
  1788.           else {
  1789.             arg0 = 1L;
  1790.             goto L40149;}}
  1791.         else {
  1792.           arg0 = 1L;
  1793.           goto L40149;}}
  1794.      L40149: {
  1795.       long val_253X = arg0;
  1796.       RSvalS = val_253X;
  1797.       goto L34459;}}
  1798.       break;
  1799.     case 34 : {
  1800.       long x_254X;
  1801.       x_254X = RSvalS;
  1802.       if ((x_254X & 3L) == 0L) {
  1803.         arg0 = 5L;
  1804.         goto L59088;}
  1805.       else {
  1806.         if ((x_254X & 3L) == 3L) {
  1807.           if ((((*((long *) ((x_254X - 3L) + -4L))) >> 2L) & 31L) == 9L) {
  1808.             arg0 = 35L;
  1809.             arg1 = 0L;
  1810.             arg2 = x_254X;
  1811.             goto L38616;
  1812.            L59116: {
  1813.             long v_255X = arg0;
  1814.             if (v_255X != 0) {
  1815.               arg0 = 5L;
  1816.               goto L59088;}
  1817.             else {
  1818.               arg0 = 1L;
  1819.               goto L59088;}}}
  1820.           else {
  1821.             arg0 = 1L;
  1822.             goto L59088;}}
  1823.         else {
  1824.           arg0 = 1L;
  1825.           goto L59088;}}
  1826.      L59088: {
  1827.       long val_256X = arg0;
  1828.       RSvalS = val_256X;
  1829.       goto L34459;}}
  1830.       break;
  1831.     case 35 : {
  1832.       long x_257X;
  1833.       x_257X = RSvalS;
  1834.       if ((x_257X & 3L) == 0L) {
  1835.         arg0 = 5L;
  1836.         goto L59146;}
  1837.       else {
  1838.         if ((x_257X & 3L) == 3L) {
  1839.           if ((((*((long *) ((x_257X - 3L) + -4L))) >> 2L) & 31L) == 9L) {
  1840.             arg0 = 34L;
  1841.             arg1 = 0L;
  1842.             arg2 = x_257X;
  1843.             goto L38616;
  1844.            L59174: {
  1845.             long v_258X = arg0;
  1846.             if (v_258X != 0) {
  1847.               arg0 = 5L;
  1848.               goto L59146;}
  1849.             else {
  1850.               arg0 = 1L;
  1851.               goto L59146;}}}
  1852.           else {
  1853.             arg0 = 1L;
  1854.             goto L59146;}}
  1855.         else {
  1856.           arg0 = 1L;
  1857.           goto L59146;}}
  1858.      L59146: {
  1859.       long val_259X = arg0;
  1860.       RSvalS = val_259X;
  1861.       goto L34459;}}
  1862.       break;
  1863.     case 36 : {
  1864.       long x_260X;
  1865.       x_260X = RSvalS;
  1866.       if ((x_260X & 3L) == 0L) {
  1867.         arg0 = 5L;
  1868.         goto L59204;}
  1869.       else {
  1870.         if ((x_260X & 3L) == 3L) {
  1871.           if ((((*((long *) ((x_260X - 3L) + -4L))) >> 2L) & 31L) == 9L) {
  1872.             arg0 = 33L;
  1873.             arg1 = 0L;
  1874.             arg2 = x_260X;
  1875.             goto L38616;
  1876.            L59232: {
  1877.             long v_261X = arg0;
  1878.             if (v_261X != 0) {
  1879.               arg0 = 5L;
  1880.               goto L59204;}
  1881.             else {
  1882.               arg0 = 1L;
  1883.               goto L59204;}}}
  1884.           else {
  1885.             arg0 = 1L;
  1886.             goto L59204;}}
  1887.         else {
  1888.           arg0 = 1L;
  1889.           goto L59204;}}
  1890.      L59204: {
  1891.       long val_262X = arg0;
  1892.       RSvalS = val_262X;
  1893.       goto L34459;}}
  1894.       break;
  1895.     case 37 : {
  1896.       long x_263X;
  1897.       x_263X = RSvalS;
  1898.       if ((x_263X & 3L) == 0L) {
  1899.         arg0 = 5L;
  1900.         goto L59262;}
  1901.       else {
  1902.         if ((x_263X & 3L) == 3L) {
  1903.           if ((((*((long *) ((x_263X - 3L) + -4L))) >> 2L) & 31L) == 9L) {
  1904.             arg0 = 32L;
  1905.             arg1 = 0L;
  1906.             arg2 = x_263X;
  1907.             goto L38616;
  1908.            L59290: {
  1909.             long v_264X = arg0;
  1910.             if (v_264X != 0) {
  1911.               arg0 = 5L;
  1912.               goto L59262;}
  1913.             else {
  1914.               arg0 = 1L;
  1915.               goto L59262;}}}
  1916.           else {
  1917.             arg0 = 1L;
  1918.             goto L59262;}}
  1919.         else {
  1920.           arg0 = 1L;
  1921.           goto L59262;}}
  1922.      L59262: {
  1923.       long val_265X = arg0;
  1924.       RSvalS = val_265X;
  1925.       goto L34459;}}
  1926.       break;
  1927.     case 38 : {
  1928.       if ((RSvalS & 3L) == 0L) {
  1929.         RSvalS = 5L;
  1930.         goto L34459;}
  1931.       else {
  1932.         arg0 = 68L;
  1933.         arg1 = 0L;
  1934.         arg2 = RSvalS;
  1935.         goto L38616;}}
  1936.       break;
  1937.     case 39 : {
  1938.       if ((RSvalS & 3L) == 0L) {
  1939.         arg0 = 30L;
  1940.         arg1 = 0L;
  1941.         arg2 = RSvalS;
  1942.         goto L38616;}
  1943.       else {
  1944.         arg0 = 31L;
  1945.         arg1 = 0L;
  1946.         arg2 = RSvalS;
  1947.         goto L38616;}}
  1948.       break;
  1949.     case 40 : {
  1950.       if ((RSvalS & 3L) == 0L) {
  1951.         arg0 = 28L;
  1952.         arg1 = 0L;
  1953.         arg2 = RSvalS;
  1954.         goto L38616;}
  1955.       else {
  1956.         arg0 = 29L;
  1957.         arg1 = 0L;
  1958.         arg2 = RSvalS;
  1959.         goto L38616;}}
  1960.       break;
  1961.     case 41 : {
  1962.       long arg2_266X;
  1963.       RSstackS = (RSstackS - -4L);
  1964.       arg2_266X = *((long *) RSstackS);
  1965.       if ((arg2_266X & 3L) == 0L) {
  1966.         if ((RSvalS & 3L) == 0L) {
  1967.           long x_267X, z_268X;
  1968.           x_267X = RSvalS;
  1969.           z_268X = (arg2_266X >> 2L) + (x_267X >> 2L);
  1970.           if (z_268X > 536870911L) {
  1971.             arg0 = 18L;
  1972.             arg1 = 0L;
  1973.             arg2 = arg2_266X;
  1974.             arg3 = x_267X;
  1975.             goto L38648;}
  1976.           else {
  1977.             if (z_268X < -536870912L) {
  1978.               arg0 = 18L;
  1979.               arg1 = 0L;
  1980.               arg2 = arg2_266X;
  1981.               arg3 = x_267X;
  1982.               goto L38648;}
  1983.             else {
  1984.               RSvalS = (z_268X << 2L);
  1985.               goto L34459;}}}
  1986.         else {
  1987.           arg0 = 0L;
  1988.           goto L70903;}}
  1989.       else {
  1990.         arg0 = 0L;
  1991.         goto L70903;}
  1992.      L70903: {
  1993.       arg0 = 19L;
  1994.       arg1 = 0L;
  1995.       arg2 = arg2_266X;
  1996.       arg3 = RSvalS;
  1997.       goto L38648;}}
  1998.       break;
  1999.     case 42 : {
  2000.       long arg2_269X;
  2001.       RSstackS = (RSstackS - -4L);
  2002.       arg2_269X = *((long *) RSstackS);
  2003.       if ((arg2_269X & 3L) == 0L) {
  2004.         if ((RSvalS & 3L) == 0L) {
  2005.           long x_270X, z_271X;
  2006.           x_270X = RSvalS;
  2007.           z_271X = (arg2_269X >> 2L) - (x_270X >> 2L);
  2008.           if (z_271X > 536870911L) {
  2009.             arg0 = 16L;
  2010.             arg1 = 0L;
  2011.             arg2 = arg2_269X;
  2012.             arg3 = x_270X;
  2013.             goto L38648;}
  2014.           else {
  2015.             if (z_271X < -536870912L) {
  2016.               arg0 = 16L;
  2017.               arg1 = 0L;
  2018.               arg2 = arg2_269X;
  2019.               arg3 = x_270X;
  2020.               goto L38648;}
  2021.             else {
  2022.               RSvalS = (z_271X << 2L);
  2023.               goto L34459;}}}
  2024.         else {
  2025.           arg0 = 0L;
  2026.           goto L71235;}}
  2027.       else {
  2028.         arg0 = 0L;
  2029.         goto L71235;}
  2030.      L71235: {
  2031.       arg0 = 17L;
  2032.       arg1 = 0L;
  2033.       arg2 = arg2_269X;
  2034.       arg3 = RSvalS;
  2035.       goto L38648;}}
  2036.       break;
  2037.     case 43 : {
  2038.       long arg2_272X;
  2039.       RSstackS = (RSstackS - -4L);
  2040.       arg2_272X = *((long *) RSstackS);
  2041.       if ((arg2_272X & 3L) == 0L) {
  2042.         if ((RSvalS & 3L) == 0L) {
  2043.           long x_273X, a_274X, b_275X;
  2044.           x_273X = RSvalS;
  2045.           a_274X = arg2_272X >> 2L;
  2046.           b_275X = x_273X >> 2L;
  2047.           if (a_274X >= 0L) {
  2048.             arg0 = a_274X;
  2049.             goto L71618;}
  2050.           else {
  2051.             arg0 = (0L - a_274X);
  2052.             goto L71618;}
  2053.          L71618: {
  2054.           long a_276X = arg0;
  2055.           if (b_275X >= 0L) {
  2056.             arg0 = b_275X;
  2057.             goto L71620;}
  2058.           else {
  2059.             arg0 = (0L - b_275X);
  2060.             goto L71620;}
  2061.          L71620: {
  2062.           long b_277X = arg0;
  2063.           long lo_a_278X, lo_b_279X, hi_a_280X, hi_b_281X, lo_c_282X;
  2064.           long mid_c_283X, c_284X;
  2065.           lo_a_278X = 32767L & a_276X;
  2066.           lo_b_279X = 32767L & b_277X;
  2067.           hi_a_280X = 32767L & (a_276X >> 15L);
  2068.           hi_b_281X = 32767L & (b_277X >> 15L);
  2069.       /* ROBOT HACK */
  2070.           lo_c_282X = small_multiply(lo_a_278X, lo_b_279X);
  2071.           mid_c_283X = small_multiply(lo_a_278X, hi_b_281X)
  2072.              + small_multiply(lo_b_279X, hi_a_280X);
  2073.       /* END ROBOT HACK */
  2074.           c_284X = lo_c_282X + (mid_c_283X << 15L);
  2075.           if (hi_a_280X > 0L) {
  2076.             if (hi_b_281X > 0L) {
  2077.               arg0 = 14L;
  2078.               arg1 = 0L;
  2079.               arg2 = arg2_272X;
  2080.               arg3 = x_273X;
  2081.               goto L38648;}
  2082.             else {
  2083.               arg0 = 0L;
  2084.               goto L71652;}}
  2085.           else {
  2086.             arg0 = 0L;
  2087.             goto L71652;}
  2088.          L71652: {
  2089.           if (lo_c_282X > 536870911L) {
  2090.             arg0 = 14L;
  2091.             arg1 = 0L;
  2092.             arg2 = arg2_272X;
  2093.             arg3 = x_273X;
  2094.             goto L38648;}
  2095.           else {
  2096.             if (mid_c_283X > 65535L) {
  2097.               arg0 = 14L;
  2098.               arg1 = 0L;
  2099.               arg2 = arg2_272X;
  2100.               arg3 = x_273X;
  2101.               goto L38648;}
  2102.             else {
  2103.               if (a_274X >= 0L) {
  2104.                 if (b_275X >= 0L) {
  2105.                   arg0 = 255L;
  2106.                   goto L71670;}
  2107.                 else {
  2108.                   arg0 = 0L;
  2109.                   goto L71656;}}
  2110.               else {
  2111.                 if (b_275X < 0L) {
  2112.                   arg0 = 255L;
  2113.                   goto L71670;}
  2114.                 else {
  2115.                   arg0 = 0L;
  2116.                   goto L71656;}}
  2117.              L71656: {
  2118.               if ((0L - c_284X) < -536870912L) {
  2119.                 arg0 = 13L;
  2120.                 arg1 = 0L;
  2121.                 arg2 = arg2_272X;
  2122.                 arg3 = x_273X;
  2123.                 goto L38648;}
  2124.               else {
  2125.                 RSvalS = ((0L - c_284X) << 2L);
  2126.                 goto L34459;}}
  2127.              L71670: {
  2128.               if (c_284X > 536870911L) {
  2129.                 arg0 = 12L;
  2130.                 arg1 = 0L;
  2131.                 arg2 = arg2_272X;
  2132.                 arg3 = x_273X;
  2133.                 goto L38648;}
  2134.               else {
  2135.                 RSvalS = (c_284X << 2L);
  2136.                 goto L34459;}}}}}}}}
  2137.         else {
  2138.           arg0 = 0L;
  2139.           goto L71567;}}
  2140.       else {
  2141.         arg0 = 0L;
  2142.         goto L71567;}
  2143.      L71567: {
  2144.       arg0 = 15L;
  2145.       arg1 = 0L;
  2146.       arg2 = arg2_272X;
  2147.       arg3 = RSvalS;
  2148.       goto L38648;}}
  2149.       break;
  2150.     case 44 : {            /* divide */
  2151.       long arg2_285X;
  2152.       RSstackS = (RSstackS - -4L);
  2153.       arg2_285X = *((long *) RSstackS);
  2154.       if ((arg2_285X & 3L) == 0L) {
  2155.         if ((RSvalS & 3L) == 0L) {
  2156.           long x_286X;
  2157.           x_286X = RSvalS;
  2158.           if (x_286X == 0L) {
  2159.             arg0 = 5L;
  2160.             arg1 = 0L;
  2161.             arg2 = arg2_285X;
  2162.             arg3 = x_286X;
  2163.             goto L38648;}
  2164.           else {
  2165.             long a_287X, b_288X;
  2166.             a_287X = arg2_285X >> 2L;
  2167.             b_288X = x_286X >> 2L;
  2168.             if (a_287X >= 0L) {
  2169.               arg0 = a_287X;
  2170.               goto L72074;}
  2171.             else {
  2172.               arg0 = (0L - a_287X);
  2173.               goto L72074;}
  2174.            L72074: {
  2175.             long a_289X = arg0;
  2176.             if (b_288X >= 0L) {
  2177.               arg0 = b_288X;
  2178.               goto L72076;}
  2179.             else {
  2180.               arg0 = (0L - b_288X);
  2181.               goto L72076;}
  2182.            L72076: {
  2183.             long b_290X = arg0;
  2184.             long c_291X;
  2185.             c_291X = a_289X / b_290X;
  2186.             if (a_287X >= 0L) {
  2187.               if (b_288X >= 0L) {
  2188.                 arg0 = 255L;
  2189.                 goto L72128;}
  2190.               else {
  2191.                 arg0 = 0L;
  2192.                 goto L72080;}}
  2193.             else {
  2194.               if (b_288X < 0L) {
  2195.                 arg0 = 255L;
  2196.                 goto L72128;}
  2197.               else {
  2198.                 arg0 = 0L;
  2199.                 goto L72080;}}
  2200.            L72080: {
  2201.             if (x_286X == 0L) {
  2202.               arg0 = 9L;
  2203.               arg1 = 0L;
  2204.               arg2 = arg2_285X;
  2205.               arg3 = x_286X;
  2206.               goto L38648;}
  2207.             else {
  2208.               long a_292X, b_293X;
  2209.               a_292X = arg2_285X >> 2L;
  2210.               b_293X = x_286X >> 2L;
  2211.               if (a_292X >= 0L) {
  2212.                 arg0 = a_292X;
  2213.                 goto L72091;}
  2214.               else {
  2215.                 arg0 = (0L - a_292X);
  2216.                 goto L72091;}
  2217.              L72091: {
  2218.               long a_294X = arg0;
  2219.               if (b_293X >= 0L) {
  2220.                 arg0 = b_293X;
  2221.                 goto L72093;}
  2222.               else {
  2223.                 arg0 = (0L - b_293X);
  2224.                 goto L72093;}
  2225.              L72093: {
  2226.               long b_295X = arg0;
  2227.               long c_296X;
  2228.               c_296X = a_294X % b_295X;
  2229.               if (a_292X >= 0L) {
  2230.                 arg0 = c_296X;
  2231.                 goto L72097;}
  2232.               else {
  2233.                 arg0 = (0L - c_296X);
  2234.                 goto L72097;}
  2235.              L72097: {
  2236.               long n_297X = arg0;
  2237.               if ((n_297X << 2L) == 0L) {
  2238.                 RSvalS = ((0L - c_291X) << 2L);
  2239.                 goto L34459;}
  2240.               else {
  2241.                 arg0 = 10L;
  2242.                 arg1 = 0L;
  2243.                 arg2 = arg2_285X;
  2244.                 arg3 = x_286X;
  2245.                 goto L38648;}}}}}}
  2246.            L72128: {
  2247.             if (c_291X > 536870911L) {
  2248.               arg0 = 6L;
  2249.               arg1 = 0L;
  2250.               arg2 = arg2_285X;
  2251.               arg3 = x_286X;
  2252.               goto L38648;}
  2253.             else {
  2254.               if (x_286X == 0L) {
  2255.                 arg0 = 7L;
  2256.                 arg1 = 0L;
  2257.                 arg2 = arg2_285X;
  2258.                 arg3 = x_286X;
  2259.                 goto L38648;}
  2260.               else {
  2261.                 long a_298X, b_299X;
  2262.                 a_298X = arg2_285X >> 2L;
  2263.                 b_299X = x_286X >> 2L;
  2264.                 if (a_298X >= 0L) {
  2265.                   arg0 = a_298X;
  2266.                   goto L72138;}
  2267.                 else {
  2268.                   arg0 = (0L - a_298X);
  2269.                   goto L72138;}
  2270.                L72138: {
  2271.                 long a_300X = arg0;
  2272.                 if (b_299X >= 0L) {
  2273.                   arg0 = b_299X;
  2274.                   goto L72140;}
  2275.                 else {
  2276.                   arg0 = (0L - b_299X);
  2277.                   goto L72140;}
  2278.                L72140: {
  2279.                 long b_301X = arg0;
  2280.                 long c_302X;
  2281.                 c_302X = a_300X % b_301X;
  2282.                 if (a_298X >= 0L) {
  2283.                   arg0 = c_302X;
  2284.                   goto L72144;}
  2285.                 else {
  2286.                   arg0 = (0L - c_302X);
  2287.                   goto L72144;}
  2288.                L72144: {
  2289.                 long n_303X = arg0;
  2290.                 if ((n_303X << 2L) == 0L) {
  2291.                   RSvalS = (c_291X << 2L);
  2292.                   goto L34459;}
  2293.                 else {
  2294.                   arg0 = 8L;
  2295.                   arg1 = 0L;
  2296.                   arg2 = arg2_285X;
  2297.                   arg3 = x_286X;
  2298.                   goto L38648;}}}}}}}}}}}
  2299.         else {
  2300.           arg0 = 0L;
  2301.           goto L72022;}}
  2302.       else {
  2303.         arg0 = 0L;
  2304.         goto L72022;}
  2305.      L72022: {
  2306.       arg0 = 11L;
  2307.       arg1 = 0L;
  2308.       arg2 = arg2_285X;
  2309.       arg3 = RSvalS;
  2310.       goto L38648;}}
  2311.       break;
  2312.     case 45 : {
  2313.       long arg2_304X;
  2314.       RSstackS = (RSstackS - -4L);
  2315.       arg2_304X = *((long *) RSstackS);
  2316.       if ((arg2_304X & 3L) == 0L) {
  2317.         if ((RSvalS & 3L) == 0L) {
  2318.           long x_305X;
  2319.           x_305X = RSvalS;
  2320.           if (arg2_304X == x_305X) {
  2321.             arg0 = 5L;
  2322.             goto L46874;}
  2323.           else {
  2324.             arg0 = 1L;
  2325.             goto L46874;}
  2326.          L46874: {
  2327.           long val_306X = arg0;
  2328.           RSvalS = val_306X;
  2329.           goto L34459;}}
  2330.         else {
  2331.           arg0 = 0L;
  2332.           goto L46847;}}
  2333.       else {
  2334.         arg0 = 0L;
  2335.         goto L46847;}
  2336.      L46847: {
  2337.       arg0 = 81L;
  2338.       arg1 = 0L;
  2339.       arg2 = arg2_304X;
  2340.       arg3 = RSvalS;
  2341.       goto L38648;}}
  2342.       break;
  2343.     case 46 : {
  2344.       long arg2_307X;
  2345.       RSstackS = (RSstackS - -4L);
  2346.       arg2_307X = *((long *) RSstackS);
  2347.       if ((arg2_307X & 3L) == 0L) {
  2348.         if ((RSvalS & 3L) == 0L) {
  2349.           long x_308X;
  2350.           x_308X = RSvalS;
  2351.           if (arg2_307X < x_308X) {
  2352.             arg0 = 5L;
  2353.             goto L47168;}
  2354.           else {
  2355.             arg0 = 1L;
  2356.             goto L47168;}
  2357.          L47168: {
  2358.           long val_309X = arg0;
  2359.           RSvalS = val_309X;
  2360.           goto L34459;}}
  2361.         else {
  2362.           arg0 = 0L;
  2363.           goto L47141;}}
  2364.       else {
  2365.         arg0 = 0L;
  2366.         goto L47141;}
  2367.      L47141: {
  2368.       arg0 = 80L;
  2369.       arg1 = 0L;
  2370.       arg2 = arg2_307X;
  2371.       arg3 = RSvalS;
  2372.       goto L38648;}}
  2373.       break;
  2374.     case 47 : {
  2375.       long arg2_310X;
  2376.       RSstackS = (RSstackS - -4L);
  2377.       arg2_310X = *((long *) RSstackS);
  2378.       if ((arg2_310X & 3L) == 0L) {
  2379.         if ((RSvalS & 3L) == 0L) {
  2380.           long x_311X;
  2381.           x_311X = RSvalS;
  2382.           if (x_311X == 0L) {
  2383.             arg0 = 2L;
  2384.             arg1 = 0L;
  2385.             arg2 = arg2_310X;
  2386.             arg3 = x_311X;
  2387.             goto L38648;}
  2388.           else {
  2389.             long a_312X, b_313X;
  2390.             a_312X = arg2_310X >> 2L;
  2391.             b_313X = x_311X >> 2L;
  2392.             if (a_312X >= 0L) {
  2393.               arg0 = a_312X;
  2394.               goto L72615;}
  2395.             else {
  2396.               arg0 = (0L - a_312X);
  2397.               goto L72615;}
  2398.            L72615: {
  2399.             long a_314X = arg0;
  2400.             if (b_313X >= 0L) {
  2401.               arg0 = b_313X;
  2402.               goto L72617;}
  2403.             else {
  2404.               arg0 = (0L - b_313X);
  2405.               goto L72617;}
  2406.            L72617: {
  2407.             long b_315X = arg0;
  2408.             long c_316X;
  2409.             c_316X = a_314X / b_315X;
  2410.             if (a_312X >= 0L) {
  2411.               if (b_313X >= 0L) {
  2412.                 arg0 = 255L;
  2413.                 goto L72629;}
  2414.               else {
  2415.                 arg0 = 0L;
  2416.                 goto L72621;}}
  2417.             else {
  2418.               if (b_313X < 0L) {
  2419.                 arg0 = 255L;
  2420.                 goto L72629;}
  2421.               else {
  2422.                 arg0 = 0L;
  2423.                 goto L72621;}}
  2424.            L72621: {
  2425.             RSvalS = ((0L - c_316X) << 2L);
  2426.             goto L34459;}
  2427.            L72629: {
  2428.             if (c_316X > 536870911L) {
  2429.               arg0 = 3L;
  2430.               arg1 = 0L;
  2431.               arg2 = arg2_310X;
  2432.               arg3 = x_311X;
  2433.               goto L38648;}
  2434.             else {
  2435.               RSvalS = (c_316X << 2L);
  2436.               goto L34459;}}}}}}
  2437.         else {
  2438.           arg0 = 0L;
  2439.           goto L72563;}}
  2440.       else {
  2441.         arg0 = 0L;
  2442.         goto L72563;}
  2443.      L72563: {
  2444.       arg0 = 4L;
  2445.       arg1 = 0L;
  2446.       arg2 = arg2_310X;
  2447.       arg3 = RSvalS;
  2448.       goto L38648;}}
  2449.       break;
  2450.     case 48 : {            /* remainder */
  2451.       long arg2_317X;
  2452.       RSstackS = (RSstackS - -4L);
  2453.       arg2_317X = *((long *) RSstackS);
  2454.       if ((arg2_317X & 3L) == 0L) {
  2455.         if ((RSvalS & 3L) == 0L) {
  2456.           long x_318X;
  2457.           x_318X = RSvalS;
  2458.           if (x_318X == 0L) {
  2459.             arg0 = 0L;
  2460.             arg1 = 0L;
  2461.             arg2 = arg2_317X;
  2462.             arg3 = x_318X;
  2463.             goto L38648;}
  2464.           else {
  2465.             long a_319X, b_320X;
  2466.             a_319X = arg2_317X >> 2L;
  2467.             b_320X = x_318X >> 2L;
  2468.             if (a_319X >= 0L) {
  2469.               arg0 = a_319X;
  2470.               goto L73012;}
  2471.             else {
  2472.               arg0 = (0L - a_319X);
  2473.               goto L73012;}
  2474.            L73012: {
  2475.             long a_321X = arg0;
  2476.             if (b_320X >= 0L) {
  2477.               arg0 = b_320X;
  2478.               goto L73014;}
  2479.             else {
  2480.               arg0 = (0L - b_320X);
  2481.               goto L73014;}
  2482.            L73014: {
  2483.             long b_322X = arg0;
  2484.             long c_323X;
  2485.             c_323X = a_321X % b_322X;
  2486.             if (a_319X >= 0L) {
  2487.               arg0 = c_323X;
  2488.               goto L73018;}
  2489.             else {
  2490.               arg0 = (0L - c_323X);
  2491.               goto L73018;}
  2492.            L73018: {
  2493.             long n_324X = arg0;
  2494.             RSvalS = (n_324X << 2L);
  2495.             goto L34459;}}}}}
  2496.         else {
  2497.           arg0 = 0L;
  2498.           goto L72960;}}
  2499.       else {
  2500.         arg0 = 0L;
  2501.         goto L72960;}
  2502.      L72960: {
  2503.       arg0 = 1L;
  2504.       arg1 = 0L;
  2505.       arg2 = arg2_317X;
  2506.       arg3 = RSvalS;
  2507.       goto L38648;}}
  2508.       break;
  2509.     case 49 : {
  2510.       if ((RSvalS & 3L) == 0L) {
  2511.         RSvalS = RSvalS;
  2512.         goto L34459;}
  2513.       else {
  2514.         arg0 = 65L;
  2515.         arg1 = 0L;
  2516.         arg2 = RSvalS;
  2517.         goto L38616;}}
  2518.       break;
  2519.     case 50 : {
  2520.       if ((RSvalS & 3L) == 0L) {
  2521.         RSvalS = RSvalS;
  2522.         goto L34459;}
  2523.       else {
  2524.         arg0 = 64L;
  2525.         arg1 = 0L;
  2526.         arg2 = RSvalS;
  2527.         goto L38616;}}
  2528.       break;
  2529.     case 51 : {
  2530.       if ((RSvalS & 3L) == 0L) {
  2531.         RSvalS = 4L;
  2532.         goto L34459;}
  2533.       else {
  2534.         arg0 = 63L;
  2535.         arg1 = 0L;
  2536.         arg2 = RSvalS;
  2537.         goto L38616;}}
  2538.       break;
  2539.     case 52 : {
  2540.       if ((RSvalS & 3L) == 0L) {
  2541.         RSvalS = RSvalS;
  2542.         goto L34459;}
  2543.       else {
  2544.         arg0 = 67L;
  2545.         arg1 = 0L;
  2546.         arg2 = RSvalS;
  2547.         goto L38616;}}
  2548.       break;
  2549.     case 53 : {
  2550.       if ((RSvalS & 3L) == 0L) {
  2551.         RSvalS = 0L;
  2552.         goto L34459;}
  2553.       else {
  2554.         arg0 = 66L;
  2555.         arg1 = 0L;
  2556.         arg2 = RSvalS;
  2557.         goto L38616;}}
  2558.       break;
  2559.     case 54 : {
  2560.       if ((RSvalS & 3L) == 0L) {
  2561.         arg0 = 26L;
  2562.         arg1 = 0L;
  2563.         arg2 = RSvalS;
  2564.         goto L38616;}
  2565.       else {
  2566.         arg0 = 27L;
  2567.         arg1 = 0L;
  2568.         arg2 = RSvalS;
  2569.         goto L38616;}}
  2570.       break;
  2571.     case 55 : {
  2572.       if ((RSvalS & 3L) == 0L) {
  2573.         arg0 = 24L;
  2574.         arg1 = 0L;
  2575.         arg2 = RSvalS;
  2576.         goto L38616;}
  2577.       else {
  2578.         arg0 = 25L;
  2579.         arg1 = 0L;
  2580.         arg2 = RSvalS;
  2581.         goto L38616;}}
  2582.       break;
  2583.     case 56 : {
  2584.       if ((RSvalS & 3L) == 0L) {
  2585.         arg0 = 22L;
  2586.         arg1 = 0L;
  2587.         arg2 = RSvalS;
  2588.         goto L38616;}
  2589.       else {
  2590.         arg0 = 23L;
  2591.         arg1 = 0L;
  2592.         arg2 = RSvalS;
  2593.         goto L38616;}}
  2594.       break;
  2595.     case 57 : {
  2596.       if ((RSvalS & 3L) == 0L) {
  2597.         arg0 = 20L;
  2598.         arg1 = 0L;
  2599.         arg2 = RSvalS;
  2600.         goto L38616;}
  2601.       else {
  2602.         arg0 = 21L;
  2603.         arg1 = 0L;
  2604.         arg2 = RSvalS;
  2605.         goto L38616;}}
  2606.       break;
  2607.     case 58 : {
  2608.       if ((RSvalS & 3L) == 0L) {
  2609.         arg0 = 18L;
  2610.         arg1 = 0L;
  2611.         arg2 = RSvalS;
  2612.         goto L38616;}
  2613.       else {
  2614.         arg0 = 19L;
  2615.         arg1 = 0L;
  2616.         arg2 = RSvalS;
  2617.         goto L38616;}}
  2618.       break;
  2619.     case 59 : {
  2620.       if ((RSvalS & 3L) == 0L) {
  2621.         arg0 = 16L;
  2622.         arg1 = 0L;
  2623.         arg2 = RSvalS;
  2624.         goto L38616;}
  2625.       else {
  2626.         arg0 = 17L;
  2627.         arg1 = 0L;
  2628.         arg2 = RSvalS;
  2629.         goto L38616;}}
  2630.       break;
  2631.     case 60 : {
  2632.       if ((RSvalS & 3L) == 0L) {
  2633.         arg0 = 14L;
  2634.         arg1 = 0L;
  2635.         arg2 = RSvalS;
  2636.         goto L38616;}
  2637.       else {
  2638.         arg0 = 15L;
  2639.         arg1 = 0L;
  2640.         arg2 = RSvalS;
  2641.         goto L38616;}}
  2642.       break;
  2643.     case 61 : {
  2644.       if ((RSvalS & 3L) == 0L) {
  2645.         arg0 = 12L;
  2646.         arg1 = 0L;
  2647.         arg2 = RSvalS;
  2648.         goto L38616;}
  2649.       else {
  2650.         arg0 = 13L;
  2651.         arg1 = 0L;
  2652.         arg2 = RSvalS;
  2653.         goto L38616;}}
  2654.       break;
  2655.     case 62 : {
  2656.       if ((RSvalS & 3L) == 0L) {
  2657.         arg0 = 10L;
  2658.         arg1 = 0L;
  2659.         arg2 = RSvalS;
  2660.         goto L38616;}
  2661.       else {
  2662.         arg0 = 11L;
  2663.         arg1 = 0L;
  2664.         arg2 = RSvalS;
  2665.         goto L38616;}}
  2666.       break;
  2667.     case 63 : {
  2668.       if ((RSvalS & 3L) == 0L) {
  2669.         long x_325X;
  2670.         x_325X = RSvalS;
  2671.         if (x_325X >= 0L) {
  2672.           RSvalS = 0L;
  2673.           goto L34459;}
  2674.         else {
  2675.           arg0 = 62L;
  2676.           arg1 = 0L;
  2677.           arg2 = x_325X;
  2678.           goto L38616;}}
  2679.       else {
  2680.         arg0 = 61L;
  2681.         arg1 = 0L;
  2682.         arg2 = RSvalS;
  2683.         goto L38616;}}
  2684.       break;
  2685.     case 64 : {
  2686.       if ((RSvalS & 3L) == 0L) {
  2687.         long x_326X;
  2688.         x_326X = RSvalS;
  2689.         if (x_326X >= 0L) {
  2690.           arg0 = x_326X;
  2691.           goto L41776;}
  2692.         else {
  2693.           arg0 = (0L - x_326X);
  2694.           goto L41776;}
  2695.        L41776: {
  2696.         long r_327X = arg0;
  2697.         if (r_327X > 536870911L) {
  2698.           arg0 = 60L;
  2699.           arg1 = 0L;
  2700.           arg2 = x_326X;
  2701.           goto L38616;}
  2702.         else {
  2703.           RSvalS = (r_327X << 2L);
  2704.           goto L34459;}}}
  2705.       else {
  2706.         arg0 = 59L;
  2707.         arg1 = 0L;
  2708.         arg2 = RSvalS;
  2709.         goto L38616;}}
  2710.       break;
  2711.     case 65 : {
  2712.       if ((RSvalS & 3L) == 0L) {
  2713.         arg0 = 8L;
  2714.         arg1 = 0L;
  2715.         arg2 = RSvalS;
  2716.         goto L38616;}
  2717.       else {
  2718.         arg0 = 9L;
  2719.         arg1 = 0L;
  2720.         arg2 = RSvalS;
  2721.         goto L38616;}}
  2722.       break;
  2723.     case 66 : {
  2724.       if ((RSvalS & 3L) == 0L) {
  2725.         arg0 = 6L;
  2726.         arg1 = 0L;
  2727.         arg2 = RSvalS;
  2728.         goto L38616;}
  2729.       else {
  2730.         arg0 = 7L;
  2731.         arg1 = 0L;
  2732.         arg2 = RSvalS;
  2733.         goto L38616;}}
  2734.       break;
  2735.     case 67 : {
  2736.       if ((RSvalS & 3L) == 0L) {
  2737.         RSvalS = ((~(RSvalS >> 2L)) << 2L);
  2738.         goto L34459;}
  2739.       else {
  2740.         arg0 = 55L;
  2741.         arg1 = 0L;
  2742.         arg2 = RSvalS;
  2743.         goto L38616;}}
  2744.       break;
  2745.     case 68 : {
  2746.       long arg2_328X;
  2747.       RSstackS = (RSstackS - -4L);
  2748.       arg2_328X = *((long *) RSstackS);
  2749.       if ((arg2_328X & 3L) == 0L) {
  2750.         if ((RSvalS & 3L) == 0L) {
  2751.           RSvalS = (((arg2_328X >> 2L) & (RSvalS >> 2L)) << 2L);
  2752.           goto L34459;}
  2753.         else {
  2754.           arg0 = 0L;
  2755.           goto L48039;}}
  2756.       else {
  2757.         arg0 = 0L;
  2758.         goto L48039;}
  2759.      L48039: {
  2760.       arg0 = 77L;
  2761.       arg1 = 0L;
  2762.       arg2 = arg2_328X;
  2763.       arg3 = RSvalS;
  2764.       goto L38648;}}
  2765.       break;
  2766.     case 69 : {
  2767.       long arg2_329X;
  2768.       RSstackS = (RSstackS - -4L);
  2769.       arg2_329X = *((long *) RSstackS);
  2770.       if ((arg2_329X & 3L) == 0L) {
  2771.         if ((RSvalS & 3L) == 0L) {
  2772.           RSvalS = (((arg2_329X >> 2L) | (RSvalS >> 2L)) << 2L);
  2773.           goto L34459;}
  2774.         else {
  2775.           arg0 = 0L;
  2776.           goto L48324;}}
  2777.       else {
  2778.         arg0 = 0L;
  2779.         goto L48324;}
  2780.      L48324: {
  2781.       arg0 = 76L;
  2782.       arg1 = 0L;
  2783.       arg2 = arg2_329X;
  2784.       arg3 = RSvalS;
  2785.       goto L38648;}}
  2786.       break;
  2787.     case 70 : {
  2788.       long arg2_330X;
  2789.       RSstackS = (RSstackS - -4L);
  2790.       arg2_330X = *((long *) RSstackS);
  2791.       if ((arg2_330X & 3L) == 0L) {
  2792.         if ((RSvalS & 3L) == 0L) {
  2793.           RSvalS = (((arg2_330X >> 2L) ^ (RSvalS >> 2L)) << 2L);
  2794.           goto L34459;}
  2795.         else {
  2796.           arg0 = 0L;
  2797.           goto L48609;}}
  2798.       else {
  2799.         arg0 = 0L;
  2800.         goto L48609;}
  2801.      L48609: {
  2802.       arg0 = 75L;
  2803.       arg1 = 0L;
  2804.       arg2 = arg2_330X;
  2805.       arg3 = RSvalS;
  2806.       goto L38648;}}
  2807.       break;
  2808.     case 71 : {
  2809.       long arg2_331X;
  2810.       RSstackS = (RSstackS - -4L);
  2811.       arg2_331X = *((long *) RSstackS);
  2812.       if ((arg2_331X & 3L) == 0L) {
  2813.         if ((RSvalS & 3L) == 0L) {
  2814.           long count_332X, value_333X;
  2815.           count_332X = RSvalS >> 2L;
  2816.           value_333X = arg2_331X >> 2L;
  2817.           if (count_332X < 0L) {
  2818.         /* PATCHED */
  2819.             arg0 = (count_332X < -32L) ? 0L :
  2820.           (value_333X >> (0L - count_332X));
  2821.             goto L59979;}
  2822.           else {
  2823.             long result_334X;
  2824.         /* PATCHED */
  2825.             result_334X = (((count_332X > 32L) ? 0L :
  2826.                 value_333X << count_332X) << 2L) >> 2L;
  2827.             if (value_333X == (result_334X >> count_332X)) {
  2828.               if (value_333X >= 0L) {
  2829.                 if (result_334X >= 0L) {
  2830.                   arg0 = result_334X;
  2831.                   goto L59979;}
  2832.                 else {
  2833.                   arg0 = 0L;
  2834.                   goto L59927;}}
  2835.               else {
  2836.                 if (result_334X < 0L) {
  2837.                   arg0 = result_334X;
  2838.                   goto L59979;}
  2839.                 else {
  2840.                   arg0 = 0L;
  2841.                   goto L59927;}}}
  2842.             else {
  2843.               arg0 = 0L;
  2844.               goto L59927;}
  2845.            L59927: {
  2846.             arg0 = 56L;
  2847.             arg1 = 0L;
  2848.             arg2 = (value_333X << 2L);
  2849.             arg3 = (count_332X << 2L);
  2850.             goto L38648;
  2851.            L60028: {
  2852.             long v_335X = arg0;
  2853.             arg0 = v_335X;
  2854.             goto L59979;}}}
  2855.          L59979: {
  2856.           long x_336X = arg0;
  2857.           RSvalS = (x_336X << 2L);
  2858.           goto L34459;}}
  2859.         else {
  2860.           arg0 = 0L;
  2861.           goto L59982;}}
  2862.       else {
  2863.         arg0 = 0L;
  2864.         goto L59982;}
  2865.      L59982: {
  2866.       arg0 = 57L;
  2867.       arg1 = 0L;
  2868.       arg2 = arg2_331X;
  2869.       arg3 = RSvalS;
  2870.       goto L38648;}}
  2871.       break;
  2872.     case 72 : {
  2873.       long x_337X;
  2874.       x_337X = RSvalS & 255L;
  2875.       if (x_337X == 9L) {
  2876.         arg0 = 5L;
  2877.         goto L42162;}
  2878.       else {
  2879.         arg0 = 1L;
  2880.         goto L42162;}
  2881.      L42162: {
  2882.       long val_338X = arg0;
  2883.       RSvalS = val_338X;
  2884.       goto L34459;}}
  2885.       break;
  2886.     case 73 : {
  2887.       long arg2_339X;
  2888.       RSstackS = (RSstackS - -4L);
  2889.       arg2_339X = *((long *) RSstackS);
  2890.       if ((arg2_339X & 255L) == 9L) {
  2891.         if ((RSvalS & 255L) == 9L) {
  2892.           long x_340X;
  2893.           x_340X = (RSvalS) >> 8L;
  2894.           if (((arg2_339X) >> 8L) == x_340X) {
  2895.             arg0 = 5L;
  2896.             goto L47462;}
  2897.           else {
  2898.             arg0 = 1L;
  2899.             goto L47462;}
  2900.          L47462: {
  2901.           long val_341X = arg0;
  2902.           RSvalS = val_341X;
  2903.           goto L34459;}}
  2904.         else {
  2905.           arg0 = 0L;
  2906.           goto L47435;}}
  2907.       else {
  2908.         arg0 = 0L;
  2909.         goto L47435;}
  2910.      L47435: {
  2911.       arg0 = 79L;
  2912.       arg1 = 0L;
  2913.       arg2 = arg2_339X;
  2914.       arg3 = RSvalS;
  2915.       goto L38648;}}
  2916.       break;
  2917.     case 74 : {
  2918.       long arg2_342X;
  2919.       RSstackS = (RSstackS - -4L);
  2920.       arg2_342X = *((long *) RSstackS);
  2921.       if ((arg2_342X & 255L) == 9L) {
  2922.         if ((RSvalS & 255L) == 9L) {
  2923.           long x_343X;
  2924.           x_343X = (RSvalS) >> 8L;
  2925.           if (((arg2_342X) >> 8L) < x_343X) {
  2926.             arg0 = 5L;
  2927.             goto L47764;}
  2928.           else {
  2929.             arg0 = 1L;
  2930.             goto L47764;}
  2931.          L47764: {
  2932.           long val_344X = arg0;
  2933.           RSvalS = val_344X;
  2934.           goto L34459;}}
  2935.         else {
  2936.           arg0 = 0L;
  2937.           goto L47737;}}
  2938.       else {
  2939.         arg0 = 0L;
  2940.         goto L47737;}
  2941.      L47737: {
  2942.       arg0 = 78L;
  2943.       arg1 = 0L;
  2944.       arg2 = arg2_342X;
  2945.       arg3 = RSvalS;
  2946.       goto L38648;}}
  2947.       break;
  2948.     case 75 : {
  2949.       if ((RSvalS & 255L) == 9L) {
  2950.         RSvalS = (((RSvalS) >> 6L) & ~3L);
  2951.         goto L34459;}
  2952.       else {
  2953.         arg0 = 58L;
  2954.         arg1 = 0L;
  2955.         arg2 = RSvalS;
  2956.         goto L38616;}}
  2957.       break;
  2958.     case 76 : {
  2959.       if ((RSvalS & 3L) == 0L) {
  2960.         long x_345X;
  2961.         x_345X = RSvalS >> 2L;
  2962.         if (x_345X > 255L) {
  2963.           arg0 = 255L;
  2964.           goto L42474;}
  2965.         else {
  2966.           if (x_345X < 0L) {
  2967.             arg0 = 255L;
  2968.             goto L42474;}
  2969.           else {
  2970.             arg0 = x_345X;
  2971.             goto L42503;}}
  2972.        L42474: {
  2973.         arg0 = 57L;
  2974.         arg1 = 0L;
  2975.         arg2 = (x_345X << 2L);
  2976.         goto L38616;
  2977.        L42482: {
  2978.         long v_346X = arg0;
  2979.         arg0 = v_346X;
  2980.         goto L42503;}}
  2981.        L42503: {
  2982.         long x_347X = arg0;
  2983.         RSvalS = ((((x_347X << 8L) + 8L)) + 1L);
  2984.         goto L34459;}}
  2985.       else {
  2986.         arg0 = 56L;
  2987.         arg1 = 0L;
  2988.         arg2 = RSvalS;
  2989.         goto L38616;}}
  2990.       break;
  2991.     case 77 : {
  2992.       long x_348X;
  2993.       x_348X = RSvalS;
  2994.       if (x_348X == 21L) {
  2995.         arg0 = 5L;
  2996.         goto L42777;}
  2997.       else {
  2998.         arg0 = 1L;
  2999.         goto L42777;}
  3000.      L42777: {
  3001.       long val_349X = arg0;
  3002.       RSvalS = val_349X;
  3003.       goto L34459;}}
  3004.       break;
  3005.     case 78 : {
  3006.       long x_350X;
  3007.       x_350X = RSvalS;
  3008.       if ((x_350X & 3L) == 3L) {
  3009.         if ((((*((long *) ((x_350X - 3L) + -4L))) >> 2L) & 31L) == 0L) {
  3010.           arg0 = 5L;
  3011.           goto L49302;}
  3012.         else {
  3013.           arg0 = 1L;
  3014.           goto L49302;}}
  3015.       else {
  3016.         arg0 = 1L;
  3017.         goto L49302;}
  3018.      L49302: {
  3019.       long val_351X = arg0;
  3020.       RSvalS = val_351X;
  3021.       goto L34459;}}
  3022.       break;
  3023.     case 79 : {
  3024.       if ((ShpS + 12L) < SlimitS) {
  3025.         arg0 = 9999999L;
  3026.         goto L49589;}
  3027.       else {
  3028.         SlimitS = Snewspace_endS;
  3029.         arg0 = 14L;
  3030.         goto L29273;
  3031.        L49623: {
  3032.         long v_352X;
  3033.         SvalS = RSvalS;
  3034.         SstackS = RSstackS;
  3035.         Scode_pointerS = RScode_pointerS;
  3036.         SenvS = RSenvS;
  3037.         v_352X = collect();
  3038.         RSvalS = SvalS;
  3039.         RSstackS = SstackS;
  3040.         RScode_pointerS = Scode_pointerS;
  3041.         RSenvS = SenvS;
  3042.         arg0 = 14L;
  3043.         goto L24906;
  3044.        L49631: {
  3045.         long v_353X = arg0;
  3046.         arg0 = v_353X;
  3047.         goto L49589;}}}
  3048.      L49589: {
  3049.       if ((ShpS + 12L) < SlimitS) {
  3050.         arg0 = 0L;
  3051.         goto L49217;}
  3052.       else {
  3053.         long v_354X;
  3054.         SvalS = RSvalS;
  3055.         SstackS = RSstackS;
  3056.         Scode_pointerS = RScode_pointerS;
  3057.         SenvS = RSenvS;
  3058.         v_354X = Qps_error_0(((long)"Scheme48 heap overflow"));
  3059.         RSvalS = SvalS;
  3060.         RSstackS = SstackS;
  3061.         RScode_pointerS = Scode_pointerS;
  3062.         RSenvS = SenvS;
  3063.         arg0 = v_354X;
  3064.         goto L49217;}}
  3065.      L49217: {
  3066.       long arg2_355X, x_356X, new_357X;
  3067.       RSstackS = (RSstackS - -4L);
  3068.       arg2_355X = *((long *) RSstackS);
  3069.       x_356X = RSvalS;
  3070.       *((long *) ShpS) = 1026L;
  3071.       ShpS = (ShpS + 4L);
  3072.       new_357X = ShpS + 3L;
  3073.       ShpS = (ShpS + 8L);
  3074.       *((long *) (ShpS + -4L)) = 0L;
  3075.       *((long *) (new_357X - 3L)) = arg2_355X;
  3076.       *((long *) ((new_357X - 3L) + 4L)) = x_356X;
  3077.       RSvalS = new_357X;
  3078.       goto L34459;}}
  3079.       break;
  3080.     case 80 : {
  3081.       long obj_358X;
  3082.       obj_358X = RSvalS;
  3083.       if ((obj_358X & 3L) == 3L) {
  3084.         if ((((*((long *) ((obj_358X - 3L) + -4L))) >> 2L) & 31L) == 0L) {
  3085.           RSvalS = (*((long *) (RSvalS - 3L)));
  3086.           goto L34459;}
  3087.         else {
  3088.           arg0 = 0L;
  3089.           goto L49087;}}
  3090.       else {
  3091.         arg0 = 0L;
  3092.         goto L49087;}
  3093.      L49087: {
  3094.       arg0 = 41L;
  3095.       arg1 = 0L;
  3096.       arg2 = RSvalS;
  3097.       goto L38616;}}
  3098.       break;
  3099.     case 81 : {
  3100.       long obj_359X;
  3101.       obj_359X = RSvalS;
  3102.       if ((obj_359X & 3L) == 3L) {
  3103.         if ((((*((long *) ((obj_359X - 3L) + -4L))) >> 2L) & 31L) == 0L) {
  3104.           RSvalS = (*((long *) ((RSvalS - 3L) + 4L)));
  3105.           goto L34459;}
  3106.         else {
  3107.           arg0 = 0L;
  3108.           goto L48951;}}
  3109.       else {
  3110.         arg0 = 0L;
  3111.         goto L48951;}
  3112.      L48951: {
  3113.       arg0 = 42L;
  3114.       arg1 = 0L;
  3115.       arg2 = RSvalS;
  3116.       goto L38616;}}
  3117.       break;
  3118.     case 82 : {
  3119.       long arg2_360X;
  3120.       RSstackS = (RSstackS - -4L);
  3121.       arg2_360X = *((long *) RSstackS);
  3122.       if ((arg2_360X & 3L) == 3L) {
  3123.         if ((((*((long *) ((arg2_360X - 3L) + -4L))) >> 2L) & 31L) == 0L) {
  3124.           *((long *) (arg2_360X - 3L)) = RSvalS;
  3125.           RSvalS = 13L;
  3126.           goto L34459;}
  3127.         else {
  3128.           arg0 = 0L;
  3129.           goto L48997;}}
  3130.       else {
  3131.         arg0 = 0L;
  3132.         goto L48997;}
  3133.      L48997: {
  3134.       arg0 = 73L;
  3135.       arg1 = 0L;
  3136.       arg2 = arg2_360X;
  3137.       arg3 = RSvalS;
  3138.       goto L38648;}}
  3139.       break;
  3140.     case 83 : {
  3141.       long arg2_361X;
  3142.       RSstackS = (RSstackS - -4L);
  3143.       arg2_361X = *((long *) RSstackS);
  3144.       if ((arg2_361X & 3L) == 3L) {
  3145.         if ((((*((long *) ((arg2_361X - 3L) + -4L))) >> 2L) & 31L) == 0L) {
  3146.           *((long *) ((arg2_361X - 3L) + 4L)) = RSvalS;
  3147.           RSvalS = 13L;
  3148.           goto L34459;}
  3149.         else {
  3150.           arg0 = 0L;
  3151.           goto L48863;}}
  3152.       else {
  3153.         arg0 = 0L;
  3154.         goto L48863;}
  3155.      L48863: {
  3156.       arg0 = 74L;
  3157.       arg1 = 0L;
  3158.       arg2 = arg2_361X;
  3159.       arg3 = RSvalS;
  3160.       goto L38648;}}
  3161.       break;
  3162.     case 84 : {
  3163.       long x_362X;
  3164.       x_362X = RSvalS;
  3165.       if ((x_362X & 3L) == 3L) {
  3166.         if ((((*((long *) ((x_362X - 3L) + -4L))) >> 2L) & 31L) == 1L) {
  3167.           arg0 = 5L;
  3168.           goto L43260;}
  3169.         else {
  3170.           arg0 = 1L;
  3171.           goto L43260;}}
  3172.       else {
  3173.         arg0 = 1L;
  3174.         goto L43260;}
  3175.      L43260: {
  3176.       long val_363X = arg0;
  3177.       RSvalS = val_363X;
  3178.       goto L34459;}}
  3179.       break;
  3180.     case 85 : {
  3181.       if ((ShpS + 8L) < SlimitS) {
  3182.         arg0 = 9999999L;
  3183.         goto L43469;}
  3184.       else {
  3185.         SlimitS = Snewspace_endS;
  3186.         arg0 = 15L;
  3187.         goto L29273;
  3188.        L43503: {
  3189.         long v_364X;
  3190.         SvalS = RSvalS;
  3191.         SstackS = RSstackS;
  3192.         Scode_pointerS = RScode_pointerS;
  3193.         SenvS = RSenvS;
  3194.         v_364X = collect();
  3195.         RSvalS = SvalS;
  3196.         RSstackS = SstackS;
  3197.         RScode_pointerS = Scode_pointerS;
  3198.         RSenvS = SenvS;
  3199.         arg0 = 15L;
  3200.         goto L24906;
  3201.        L43511: {
  3202.         long v_365X = arg0;
  3203.         arg0 = v_365X;
  3204.         goto L43469;}}}
  3205.      L43469: {
  3206.       if ((ShpS + 8L) < SlimitS) {
  3207.         arg0 = 0L;
  3208.         goto L43175;}
  3209.       else {
  3210.         long v_366X;
  3211.         SvalS = RSvalS;
  3212.         SstackS = RSstackS;
  3213.         Scode_pointerS = RScode_pointerS;
  3214.         SenvS = RSenvS;
  3215.         v_366X = Qps_error_0(((long)"Scheme48 heap overflow"));
  3216.         RSvalS = SvalS;
  3217.         RSstackS = SstackS;
  3218.         RScode_pointerS = Scode_pointerS;
  3219.         RSenvS = SenvS;
  3220.         arg0 = v_366X;
  3221.         goto L43175;}}
  3222.      L43175: {
  3223.       long x_367X, new_368X;
  3224.       x_367X = RSvalS;
  3225.       *((long *) ShpS) = 518L;
  3226.       ShpS = (ShpS + 4L);
  3227.       new_368X = ShpS + 3L;
  3228.       ShpS = (ShpS + 4L);
  3229.       *((long *) (ShpS + -4L)) = 0L;
  3230.       *((long *) (new_368X - 3L)) = x_367X;
  3231.       RSvalS = new_368X;
  3232.       goto L34459;}}
  3233.       break;
  3234.     case 86 : {
  3235.       long obj_369X;
  3236.       obj_369X = RSvalS;
  3237.       if ((obj_369X & 3L) == 3L) {
  3238.         if ((((*((long *) ((obj_369X - 3L) + -4L))) >> 2L) & 31L) == 1L) {
  3239.           RSvalS = (*((long *) (RSvalS - 3L)));
  3240.           goto L34459;}
  3241.         else {
  3242.           arg0 = 0L;
  3243.           goto L43075;}}
  3244.       else {
  3245.         arg0 = 0L;
  3246.         goto L43075;}
  3247.      L43075: {
  3248.       arg0 = 54L;
  3249.       arg1 = 0L;
  3250.       arg2 = RSvalS;
  3251.       goto L38616;}}
  3252.       break;
  3253.     case 87 : {
  3254.       long x_370X;
  3255.       x_370X = RSvalS;
  3256.       if ((x_370X & 3L) == 3L) {
  3257.         if ((((*((long *) ((x_370X - 3L) + -4L))) >> 2L) & 31L) == 4L) {
  3258.           arg0 = 5L;
  3259.           goto L51528;}
  3260.         else {
  3261.           arg0 = 1L;
  3262.           goto L51528;}}
  3263.       else {
  3264.         arg0 = 1L;
  3265.         goto L51528;}
  3266.      L51528: {
  3267.       long val_371X = arg0;
  3268.       RSvalS = val_371X;
  3269.       goto L34459;}}
  3270.       break;
  3271.     case 88 : {
  3272.       if ((ShpS + 12L) < SlimitS) {
  3273.         arg0 = 9999999L;
  3274.         goto L51815;}
  3275.       else {
  3276.         SlimitS = Snewspace_endS;
  3277.         arg0 = 12L;
  3278.         goto L29273;
  3279.        L51849: {
  3280.         long v_372X;
  3281.         SvalS = RSvalS;
  3282.         SstackS = RSstackS;
  3283.         Scode_pointerS = RScode_pointerS;
  3284.         SenvS = RSenvS;
  3285.         v_372X = collect();
  3286.         RSvalS = SvalS;
  3287.         RSstackS = SstackS;
  3288.         RScode_pointerS = Scode_pointerS;
  3289.         RSenvS = SenvS;
  3290.         arg0 = 12L;
  3291.         goto L24906;
  3292.        L51857: {
  3293.         long v_373X = arg0;
  3294.         arg0 = v_373X;
  3295.         goto L51815;}}}
  3296.      L51815: {
  3297.       if ((ShpS + 12L) < SlimitS) {
  3298.         arg0 = 0L;
  3299.         goto L51443;}
  3300.       else {
  3301.         long v_374X;
  3302.         SvalS = RSvalS;
  3303.         SstackS = RSstackS;
  3304.         Scode_pointerS = RScode_pointerS;
  3305.         SenvS = RSenvS;
  3306.         v_374X = Qps_error_0(((long)"Scheme48 heap overflow"));
  3307.         RSvalS = SvalS;
  3308.         RSstackS = SstackS;
  3309.         RScode_pointerS = Scode_pointerS;
  3310.         RSenvS = SenvS;
  3311.         arg0 = v_374X;
  3312.         goto L51443;}}
  3313.      L51443: {
  3314.       long arg2_375X, x_376X, new_377X;
  3315.       RSstackS = (RSstackS - -4L);
  3316.       arg2_375X = *((long *) RSstackS);
  3317.       x_376X = RSvalS;
  3318.       *((long *) ShpS) = 1042L;
  3319.       ShpS = (ShpS + 4L);
  3320.       new_377X = ShpS + 3L;
  3321.       ShpS = (ShpS + 8L);
  3322.       *((long *) (ShpS + -4L)) = 0L;
  3323.       *((long *) (new_377X - 3L)) = arg2_375X;
  3324.       *((long *) ((new_377X - 3L) + 4L)) = x_376X;
  3325.       RSvalS = new_377X;
  3326.       goto L34459;}}
  3327.       break;
  3328.     case 89 : {
  3329.       long obj_378X;
  3330.       obj_378X = RSvalS;
  3331.       if ((obj_378X & 3L) == 3L) {
  3332.         if ((((*((long *) ((obj_378X - 3L) + -4L))) >> 2L) & 31L) == 4L) {
  3333.           RSvalS = (*((long *) ((RSvalS - 3L) + 4L)));
  3334.           goto L34459;}
  3335.         else {
  3336.           arg0 = 0L;
  3337.           goto L51179;}}
  3338.       else {
  3339.         arg0 = 0L;
  3340.         goto L51179;}
  3341.      L51179: {
  3342.       arg0 = 38L;
  3343.       arg1 = 0L;
  3344.       arg2 = RSvalS;
  3345.       goto L38616;}}
  3346.       break;
  3347.     case 90 : {
  3348.       long obj_379X;
  3349.       obj_379X = RSvalS;
  3350.       if ((obj_379X & 3L) == 3L) {
  3351.         if ((((*((long *) ((obj_379X - 3L) + -4L))) >> 2L) & 31L) == 4L) {
  3352.           RSvalS = (*((long *) (RSvalS - 3L)));
  3353.           goto L34459;}
  3354.         else {
  3355.           arg0 = 0L;
  3356.           goto L51313;}}
  3357.       else {
  3358.         arg0 = 0L;
  3359.         goto L51313;}
  3360.      L51313: {
  3361.       arg0 = 37L;
  3362.       arg1 = 0L;
  3363.       arg2 = RSvalS;
  3364.       goto L38616;}}
  3365.       break;
  3366.     case 91 : {
  3367.       long arg2_380X;
  3368.       RSstackS = (RSstackS - -4L);
  3369.       arg2_380X = *((long *) RSstackS);
  3370.       if ((arg2_380X & 3L) == 3L) {
  3371.         if ((((*((long *) ((arg2_380X - 3L) + -4L))) >> 2L) & 31L) == 4L) {
  3372.           *((long *) (arg2_380X - 3L)) = RSvalS;
  3373.           RSvalS = 13L;
  3374.           goto L34459;}
  3375.         else {
  3376.           arg0 = 0L;
  3377.           goto L51223;}}
  3378.       else {
  3379.         arg0 = 0L;
  3380.         goto L51223;}
  3381.      L51223: {
  3382.       arg0 = 72L;
  3383.       arg1 = 0L;
  3384.       arg2 = arg2_380X;
  3385.       arg3 = RSvalS;
  3386.       goto L38648;}}
  3387.       break;
  3388.     case 92 : {
  3389.       long obj_381X;
  3390.       obj_381X = RSvalS;
  3391.       if ((obj_381X & 3L) == 3L) {
  3392.         if ((((*((long *) ((obj_381X - 3L) + -4L))) >> 2L) & 31L) == 4L) {
  3393.           long x_382X, x_383X;
  3394.           x_382X = RSvalS;
  3395.           x_383X = (*((long *) (x_382X - 3L))) & 255L;
  3396.           if (x_383X == 17L) {
  3397.             if ((*((long *) (x_382X - 3L))) == 529L) {
  3398.               arg0 = 5L;
  3399.               goto L43766;}
  3400.             else {
  3401.               arg0 = 1L;
  3402.               goto L43766;}}
  3403.           else {
  3404.             arg0 = 5L;
  3405.             goto L43766;}
  3406.          L43766: {
  3407.           long val_384X = arg0;
  3408.           RSvalS = val_384X;
  3409.           goto L34459;}}
  3410.         else {
  3411.           arg0 = 0L;
  3412.           goto L43724;}}
  3413.       else {
  3414.         arg0 = 0L;
  3415.         goto L43724;}
  3416.      L43724: {
  3417.       arg0 = 53L;
  3418.       arg1 = 0L;
  3419.       arg2 = RSvalS;
  3420.       goto L38616;}}
  3421.       break;
  3422.     case 93 : {
  3423.       long arg2_385X;
  3424.       RSstackS = (RSstackS - -4L);
  3425.       arg2_385X = *((long *) RSstackS);
  3426.       if ((arg2_385X & 3L) == 3L) {
  3427.         if ((((*((long *) ((arg2_385X - 3L) + -4L))) >> 2L) & 31L) == 4L) {
  3428.           long x_386X;
  3429.           x_386X = RSvalS;
  3430.           if (x_386X == 1L) {
  3431.             arg0 = 255L;
  3432.             goto L52328;}
  3433.           else {
  3434.             if (x_386X == 5L) {
  3435.               arg0 = 255L;
  3436.               goto L52328;}
  3437.             else {
  3438.               arg0 = 0L;
  3439.               goto L52396;}}}
  3440.         else {
  3441.           arg0 = 0L;
  3442.           goto L52396;}}
  3443.       else {
  3444.         arg0 = 0L;
  3445.         goto L52396;}
  3446.      L52396: {
  3447.       arg0 = 71L;
  3448.       arg1 = 0L;
  3449.       arg2 = arg2_385X;
  3450.       arg3 = RSvalS;
  3451.       goto L38648;}
  3452.      L52328: {
  3453.       long b_387X;
  3454.       b_387X = RSvalS;
  3455.       if (b_387X == 1L) {
  3456.         *((long *) (arg2_385X - 3L)) = 273L;
  3457.         arg0 = 999999L;
  3458.         goto L52373;}
  3459.       else {
  3460.         if (((*((long *) (arg2_385X - 3L))) & 255L) == 17L) {
  3461.           *((long *) (arg2_385X - 3L)) = 529L;
  3462.           arg0 = 999999L;
  3463.           goto L52373;}
  3464.         else {
  3465.           arg0 = 8888888L;
  3466.           goto L52373;}}
  3467.      L52373: {
  3468.       RSvalS = 13L;
  3469.       goto L34459;}}}
  3470.       break;
  3471.     case 94 : {
  3472.       long x_388X;
  3473.       x_388X = RSvalS;
  3474.       if ((x_388X & 3L) == 3L) {
  3475.         if ((((*((long *) ((x_388X - 3L) + -4L))) >> 2L) & 31L) == 3L) {
  3476.           arg0 = 5L;
  3477.           goto L50562;}
  3478.         else {
  3479.           arg0 = 1L;
  3480.           goto L50562;}}
  3481.       else {
  3482.         arg0 = 1L;
  3483.         goto L50562;}
  3484.      L50562: {
  3485.       long val_389X = arg0;
  3486.       RSvalS = val_389X;
  3487.       goto L34459;}}
  3488.       break;
  3489.     case 95 : {
  3490.       if ((ShpS + 12L) < SlimitS) {
  3491.         arg0 = 9999999L;
  3492.         goto L50849;}
  3493.       else {
  3494.         SlimitS = Snewspace_endS;
  3495.         arg0 = 13L;
  3496.         goto L29273;
  3497.        L50883: {
  3498.         long v_390X;
  3499.         SvalS = RSvalS;
  3500.         SstackS = RSstackS;
  3501.         Scode_pointerS = RScode_pointerS;
  3502.         SenvS = RSenvS;
  3503.         v_390X = collect();
  3504.         RSvalS = SvalS;
  3505.         RSstackS = SstackS;
  3506.         RScode_pointerS = Scode_pointerS;
  3507.         RSenvS = SenvS;
  3508.         arg0 = 13L;
  3509.         goto L24906;
  3510.        L50891: {
  3511.         long v_391X = arg0;
  3512.         arg0 = v_391X;
  3513.         goto L50849;}}}
  3514.      L50849: {
  3515.       if ((ShpS + 12L) < SlimitS) {
  3516.         arg0 = 0L;
  3517.         goto L50477;}
  3518.       else {
  3519.         long v_392X;
  3520.         SvalS = RSvalS;
  3521.         SstackS = RSstackS;
  3522.         Scode_pointerS = RScode_pointerS;
  3523.         SenvS = RSenvS;
  3524.         v_392X = Qps_error_0(((long)"Scheme48 heap overflow"));
  3525.         RSvalS = SvalS;
  3526.         RSstackS = SstackS;
  3527.         RScode_pointerS = Scode_pointerS;
  3528.         RSenvS = SenvS;
  3529.         arg0 = v_392X;
  3530.         goto L50477;}}
  3531.      L50477: {
  3532.       long arg2_393X, x_394X, new_395X;
  3533.       RSstackS = (RSstackS - -4L);
  3534.       arg2_393X = *((long *) RSstackS);
  3535.       x_394X = RSvalS;
  3536.       *((long *) ShpS) = 1038L;
  3537.       ShpS = (ShpS + 4L);
  3538.       new_395X = ShpS + 3L;
  3539.       ShpS = (ShpS + 8L);
  3540.       *((long *) (ShpS + -4L)) = 0L;
  3541.       *((long *) (new_395X - 3L)) = arg2_393X;
  3542.       *((long *) ((new_395X - 3L) + 4L)) = x_394X;
  3543.       RSvalS = new_395X;
  3544.       goto L34459;}}
  3545.       break;
  3546.     case 96 : {
  3547.       long obj_396X;
  3548.       obj_396X = RSvalS;
  3549.       if ((obj_396X & 3L) == 3L) {
  3550.         if ((((*((long *) ((obj_396X - 3L) + -4L))) >> 2L) & 31L) == 3L) {
  3551.           RSvalS = (*((long *) ((RSvalS - 3L) + 4L)));
  3552.           goto L34459;}
  3553.         else {
  3554.           arg0 = 0L;
  3555.           goto L50295;}}
  3556.       else {
  3557.         arg0 = 0L;
  3558.         goto L50295;}
  3559.      L50295: {
  3560.       arg0 = 40L;
  3561.       arg1 = 0L;
  3562.       arg2 = RSvalS;
  3563.       goto L38616;}}
  3564.       break;
  3565.     case 97 : {
  3566.       long obj_397X;
  3567.       obj_397X = RSvalS;
  3568.       if ((obj_397X & 3L) == 3L) {
  3569.         if ((((*((long *) ((obj_397X - 3L) + -4L))) >> 2L) & 31L) == 3L) {
  3570.           RSvalS = (*((long *) (RSvalS - 3L)));
  3571.           goto L34459;}
  3572.         else {
  3573.           arg0 = 0L;
  3574.           goto L50347;}}
  3575.       else {
  3576.         arg0 = 0L;
  3577.         goto L50347;}
  3578.      L50347: {
  3579.       arg0 = 39L;
  3580.       arg1 = 0L;
  3581.       arg2 = RSvalS;
  3582.       goto L38616;}}
  3583.       break;
  3584.     case 98 : {
  3585.       long x_398X;
  3586.       x_398X = RSvalS;
  3587.       if ((x_398X & 3L) == 3L) {
  3588.         if ((((*((long *) ((x_398X - 3L) + -4L))) >> 2L) & 31L) == 11L) {
  3589.           arg0 = 5L;
  3590.           goto L69511;}
  3591.         else {
  3592.           arg0 = 1L;
  3593.           goto L69511;}}
  3594.       else {
  3595.         arg0 = 1L;
  3596.         goto L69511;}
  3597.      L69511: {
  3598.       long val_399X = arg0;
  3599.       RSvalS = val_399X;
  3600.       goto L34459;}}
  3601.       break;
  3602.     case 99 : {
  3603.       long arg2_400X;
  3604.       RSstackS = (RSstackS - -4L);
  3605.       arg2_400X = *((long *) RSstackS);
  3606.       if ((arg2_400X & 3L) == 0L) {
  3607.         if ((RSvalS & 3L) == 0L) {
  3608.           long init_401X, len_402X;
  3609.           init_401X = RSvalS >> 2L;
  3610.           len_402X = arg2_400X >> 2L;
  3611.           if (len_402X >= 0L) {
  3612.             if ((ShpS + ((1L + ((len_402X + 3L) >> 2L)) << 2L)) < SlimitS) {
  3613.               long new_403X;
  3614.               *((long *) ShpS) = ((((len_402X << 5L) + 11L) << 2L) + 2L);
  3615.               ShpS = (ShpS + 4L);
  3616.               new_403X = ShpS + 3L;
  3617.               ShpS = (ShpS + (((len_402X + 3L) & ~3)));
  3618.               if (len_402X > 0L) {
  3619.                 *((long *) (ShpS + -4L)) = 0L;
  3620.                 arg0 = new_403X;
  3621.                 goto L69850;}
  3622.               else {
  3623.                 arg0 = new_403X;
  3624.                 goto L69850;}
  3625.              L69850: {
  3626.               long val_404X = arg0;
  3627.               arg0 = (len_402X - 1L);
  3628.               goto L69856;
  3629.              L69856: {
  3630.               long i_405X = arg0;
  3631.               if (i_405X < 0L) {
  3632.                 RSvalS = val_404X;
  3633.                 goto L34459;}
  3634.               else {
  3635.                 *((char *) ((val_404X - 3L) + i_405X)) = init_401X;
  3636.                 arg0 = (i_405X - 1L);
  3637.                 goto L69856;}}}}
  3638.             else {
  3639.               *((long *) ((SrootS - 3L) + 40L)) = init_401X;
  3640.               SlimitS = Snewspace_endS;
  3641.               arg0 = 0L;
  3642.               goto L29273;
  3643.              L69778: {
  3644.               long v_406X;
  3645.               SvalS = RSvalS;
  3646.               SstackS = RSstackS;
  3647.               Scode_pointerS = RScode_pointerS;
  3648.               SenvS = RSenvS;
  3649.               v_406X = collect();
  3650.               RSvalS = SvalS;
  3651.               RSstackS = SstackS;
  3652.               RScode_pointerS = Scode_pointerS;
  3653.               RSenvS = SenvS;
  3654.               arg0 = 0L;
  3655.               goto L24906;
  3656.              L69786: {
  3657.               long temp_407X;
  3658.               temp_407X = *((long *) ((SrootS - 3L) + 40L));
  3659.               *((long *) ((SrootS - 3L) + 40L)) = 0L;
  3660.               if ((ShpS + ((1L + ((len_402X + 3L) >> 2L)) << 2L)) < SlimitS) {
  3661.                 long new_408X;
  3662.                 *((long *) ShpS) = ((((len_402X << 5L) + 11L) << 2L) + 2L);
  3663.                 ShpS = (ShpS + 4L);
  3664.                 new_408X = ShpS + 3L;
  3665.                 ShpS = (ShpS + (((len_402X + 3L) & ~3)));
  3666.                 if (len_402X > 0L) {
  3667.                   *((long *) (ShpS + -4L)) = 0L;
  3668.                   arg0 = new_408X;
  3669.                   goto L69823;}
  3670.                 else {
  3671.                   arg0 = new_408X;
  3672.                   goto L69823;}
  3673.                L69823: {
  3674.                 long val_409X = arg0;
  3675.                 arg0 = (len_402X - 1L);
  3676.                 goto L69829;
  3677.                L69829: {
  3678.                 long i_410X = arg0;
  3679.                 if (i_410X < 0L) {
  3680.                   RSvalS = val_409X;
  3681.                   goto L34459;}
  3682.                 else {
  3683.                   *((char *) ((val_409X - 3L) + i_410X)) = temp_407X;
  3684.                   arg0 = (i_410X - 1L);
  3685.                   goto L69829;}}}}
  3686.               else {
  3687.                 arg0 = 22L;
  3688.                 arg1 = 0L;
  3689.                 arg2 = (len_402X << 2L);
  3690.                 arg3 = temp_407X;
  3691.                 goto L38648;}}}}}
  3692.           else {
  3693.             arg0 = 23L;
  3694.             arg1 = 0L;
  3695.             arg2 = (len_402X << 2L);
  3696.             arg3 = init_401X;
  3697.             goto L38648;}}
  3698.         else {
  3699.           arg0 = 0L;
  3700.           goto L69360;}}
  3701.       else {
  3702.         arg0 = 0L;
  3703.         goto L69360;}
  3704.      L69360: {
  3705.       arg0 = 24L;
  3706.       arg1 = 0L;
  3707.       arg2 = arg2_400X;
  3708.       arg3 = RSvalS;
  3709.       goto L38648;}}
  3710.       break;
  3711.     case 100 : {
  3712.       long obj_411X;
  3713.       obj_411X = RSvalS;
  3714.       if ((obj_411X & 3L) == 3L) {
  3715.         if ((((*((long *) ((obj_411X - 3L) + -4L))) >> 2L) & 31L) == 11L) {
  3716.           RSvalS = ((((*((long *) ((RSvalS - 3L) + -4L))) >> 7L)) << 2L);
  3717.           goto L34459;}
  3718.         else {
  3719.           arg0 = 0L;
  3720.           goto L69418;}}
  3721.       else {
  3722.         arg0 = 0L;
  3723.         goto L69418;}
  3724.      L69418: {
  3725.       arg0 = 0L;
  3726.       arg1 = 0L;
  3727.       arg2 = RSvalS;
  3728.       goto L38616;}}
  3729.       break;
  3730.     case 101 : {
  3731.       long arg2_412X;
  3732.       RSstackS = (RSstackS - -4L);
  3733.       arg2_412X = *((long *) RSstackS);
  3734.       if ((arg2_412X & 3L) == 3L) {
  3735.         if ((((*((long *) ((arg2_412X - 3L) + -4L))) >> 2L) & 31L) == 11L) {
  3736.           if ((RSvalS & 3L) == 0L) {
  3737.             long index_413X, len_414X;
  3738.             index_413X = RSvalS >> 2L;
  3739.             len_414X = ((*((long *) ((arg2_412X - 3L) + -4L))) >> 7L);
  3740.             if (index_413X >= 0L) {
  3741.               if (index_413X < len_414X) {
  3742.                 RSvalS = (((*((unsigned char *) ((arg2_412X - 3L) + index_413X)))) << 2L);
  3743.                 goto L34459;}
  3744.               else {
  3745.                 arg0 = 0L;
  3746.                 goto L70212;}}
  3747.             else {
  3748.               arg0 = 0L;
  3749.               goto L70212;}
  3750.            L70212: {
  3751.             arg0 = 21L;
  3752.             arg1 = 0L;
  3753.             arg2 = arg2_412X;
  3754.             arg3 = (index_413X << 2L);
  3755.             goto L38648;}}
  3756.           else {
  3757.             arg0 = 0L;
  3758.             goto L69270;}}
  3759.         else {
  3760.           arg0 = 0L;
  3761.           goto L69270;}}
  3762.       else {
  3763.         arg0 = 0L;
  3764.         goto L69270;}
  3765.      L69270: {
  3766.       arg0 = 25L;
  3767.       arg1 = 0L;
  3768.       arg2 = arg2_412X;
  3769.       arg3 = RSvalS;
  3770.       goto L38648;}}
  3771.       break;
  3772.     case 102 : {
  3773.       long arg2_415X, arg3_416X;
  3774.       RSstackS = (RSstackS - -4L);
  3775.       arg2_415X = *((long *) RSstackS);
  3776.       RSstackS = (RSstackS - -4L);
  3777.       arg3_416X = *((long *) RSstackS);
  3778.       if ((arg3_416X & 3L) == 3L) {
  3779.         if ((((*((long *) ((arg3_416X - 3L) + -4L))) >> 2L) & 31L) == 11L) {
  3780.           if ((arg2_415X & 3L) == 0L) {
  3781.             if ((RSvalS & 3L) == 0L) {
  3782.               long val_417X, index_418X, len_419X;
  3783.               val_417X = RSvalS >> 2L;
  3784.               index_418X = arg2_415X >> 2L;
  3785.               len_419X = ((*((long *) ((arg3_416X - 3L) + -4L))) >> 7L);
  3786.               if (index_418X >= 0L) {
  3787.                 if (index_418X < len_419X) {
  3788.                   *((char *) ((arg3_416X - 3L) + index_418X)) = val_417X;
  3789.                   RSvalS = 13L;
  3790.                   goto L34459;}
  3791.                 else {
  3792.                   arg0 = 0L;
  3793.                   goto L70381;}}
  3794.               else {
  3795.                 arg0 = 0L;
  3796.                 goto L70381;}
  3797.              L70381: {
  3798.               arg0 = 20L;
  3799.               arg1 = 0L;
  3800.               arg2 = arg3_416X;
  3801.               arg3 = (index_418X << 2L);
  3802.               goto L38648;}}
  3803.             else {
  3804.               arg0 = 0L;
  3805.               goto L69180;}}
  3806.           else {
  3807.             arg0 = 0L;
  3808.             goto L69180;}}
  3809.         else {
  3810.           arg0 = 0L;
  3811.           goto L69180;}}
  3812.       else {
  3813.         arg0 = 0L;
  3814.         goto L69180;}
  3815.      L69180: {
  3816.       arg0 = 0L;
  3817.       arg1 = 0L;
  3818.       arg2 = arg3_416X;
  3819.       arg3 = arg2_415X;
  3820.       arg4 = RSvalS;
  3821.       goto L38789;}}
  3822.       break;
  3823.     case 103 : {
  3824.       long x_420X;
  3825.       x_420X = RSvalS;
  3826.       if ((x_420X & 3L) == 3L) {
  3827.         if ((((*((long *) ((x_420X - 3L) + -4L))) >> 2L) & 31L) == 10L) {
  3828.           arg0 = 5L;
  3829.           goto L67748;}
  3830.         else {
  3831.           arg0 = 1L;
  3832.           goto L67748;}}
  3833.       else {
  3834.         arg0 = 1L;
  3835.         goto L67748;}
  3836.      L67748: {
  3837.       long val_421X = arg0;
  3838.       RSvalS = val_421X;
  3839.       goto L34459;}}
  3840.       break;
  3841.     case 104 : {
  3842.       long arg2_422X;
  3843.       RSstackS = (RSstackS - -4L);
  3844.       arg2_422X = *((long *) RSstackS);
  3845.       if ((arg2_422X & 3L) == 0L) {
  3846.         if ((RSvalS & 255L) == 9L) {
  3847.           long x_423X, len_424X;
  3848.           x_423X = (RSvalS) >> 8L;
  3849.           len_424X = arg2_422X >> 2L;
  3850.           if (len_424X >= 0L) {
  3851.             if ((ShpS + ((1L + ((len_424X + 3L) >> 2L)) << 2L)) < SlimitS) {
  3852.               long new_425X;
  3853.               *((long *) ShpS) = ((((len_424X << 5L) + 10L) << 2L) + 2L);
  3854.               ShpS = (ShpS + 4L);
  3855.               new_425X = ShpS + 3L;
  3856.               ShpS = (ShpS + (((len_424X + 3L) & ~3)));
  3857.               if (len_424X > 0L) {
  3858.                 *((long *) (ShpS + -4L)) = 0L;
  3859.                 arg0 = new_425X;
  3860.                 goto L68089;}
  3861.               else {
  3862.                 arg0 = new_425X;
  3863.                 goto L68089;}
  3864.              L68089: {
  3865.               long val_426X = arg0;
  3866.               arg0 = (len_424X - 1L);
  3867.               goto L68095;
  3868.              L68095: {
  3869.               long i_427X = arg0;
  3870.               if (i_427X < 0L) {
  3871.                 RSvalS = val_426X;
  3872.                 goto L34459;}
  3873.               else {
  3874.                 *((char *) ((val_426X - 3L) + i_427X)) = x_423X;
  3875.                 arg0 = (i_427X - 1L);
  3876.                 goto L68095;}}}}
  3877.             else {
  3878.               *((long *) ((SrootS - 3L) + 40L)) = x_423X;
  3879.               SlimitS = Snewspace_endS;
  3880.               arg0 = 1L;
  3881.               goto L29273;
  3882.              L68017: {
  3883.               long v_428X;
  3884.               SvalS = RSvalS;
  3885.               SstackS = RSstackS;
  3886.               Scode_pointerS = RScode_pointerS;
  3887.               SenvS = RSenvS;
  3888.               v_428X = collect();
  3889.               RSvalS = SvalS;
  3890.               RSstackS = SstackS;
  3891.               RScode_pointerS = Scode_pointerS;
  3892.               RSenvS = SenvS;
  3893.               arg0 = 1L;
  3894.               goto L24906;
  3895.              L68025: {
  3896.               long temp_429X;
  3897.               temp_429X = *((long *) ((SrootS - 3L) + 40L));
  3898.               *((long *) ((SrootS - 3L) + 40L)) = 0L;
  3899.               if ((ShpS + ((1L + ((len_424X + 3L) >> 2L)) << 2L)) < SlimitS) {
  3900.                 long new_430X;
  3901.                 *((long *) ShpS) = ((((len_424X << 5L) + 10L) << 2L) + 2L);
  3902.                 ShpS = (ShpS + 4L);
  3903.                 new_430X = ShpS + 3L;
  3904.                 ShpS = (ShpS + (((len_424X + 3L) & ~3)));
  3905.                 if (len_424X > 0L) {
  3906.                   *((long *) (ShpS + -4L)) = 0L;
  3907.                   arg0 = new_430X;
  3908.                   goto L68062;}
  3909.                 else {
  3910.                   arg0 = new_430X;
  3911.                   goto L68062;}
  3912.                L68062: {
  3913.                 long val_431X = arg0;
  3914.                 arg0 = (len_424X - 1L);
  3915.                 goto L68068;
  3916.                L68068: {
  3917.                 long i_432X = arg0;
  3918.                 if (i_432X < 0L) {
  3919.                   RSvalS = val_431X;
  3920.                   goto L34459;}
  3921.                 else {
  3922.                   *((char *) ((val_431X - 3L) + i_432X)) = temp_429X;
  3923.                   arg0 = (i_432X - 1L);
  3924.                   goto L68068;}}}}
  3925.               else {
  3926.                 arg0 = 28L;
  3927.                 arg1 = 0L;
  3928.                 arg2 = (len_424X << 2L);
  3929.                 arg3 = temp_429X;
  3930.                 goto L38648;}}}}}
  3931.           else {
  3932.             arg0 = 29L;
  3933.             arg1 = 0L;
  3934.             arg2 = (len_424X << 2L);
  3935.             arg3 = x_423X;
  3936.             goto L38648;}}
  3937.         else {
  3938.           arg0 = 0L;
  3939.           goto L67597;}}
  3940.       else {
  3941.         arg0 = 0L;
  3942.         goto L67597;}
  3943.      L67597: {
  3944.       arg0 = 30L;
  3945.       arg1 = 0L;
  3946.       arg2 = arg2_422X;
  3947.       arg3 = RSvalS;
  3948.       goto L38648;}}
  3949.       break;
  3950.     case 105 : {
  3951.       long obj_433X;
  3952.       obj_433X = RSvalS;
  3953.       if ((obj_433X & 3L) == 3L) {
  3954.         if ((((*((long *) ((obj_433X - 3L) + -4L))) >> 2L) & 31L) == 10L) {
  3955.           RSvalS = ((((*((long *) ((RSvalS - 3L) + -4L))) >> 7L)) << 2L);
  3956.           goto L34459;}
  3957.         else {
  3958.           arg0 = 0L;
  3959.           goto L67655;}}
  3960.       else {
  3961.         arg0 = 0L;
  3962.         goto L67655;}
  3963.      L67655: {
  3964.       arg0 = 1L;
  3965.       arg1 = 0L;
  3966.       arg2 = RSvalS;
  3967.       goto L38616;}}
  3968.       break;
  3969.     case 106 : {
  3970.       long arg2_434X;
  3971.       RSstackS = (RSstackS - -4L);
  3972.       arg2_434X = *((long *) RSstackS);
  3973.       if ((arg2_434X & 3L) == 3L) {
  3974.         if ((((*((long *) ((arg2_434X - 3L) + -4L))) >> 2L) & 31L) == 10L) {
  3975.           if ((RSvalS & 3L) == 0L) {
  3976.             long index_435X, len_436X;
  3977.             index_435X = RSvalS >> 2L;
  3978.             len_436X = ((*((long *) ((arg2_434X - 3L) + -4L))) >> 7L);
  3979.             if (index_435X >= 0L) {
  3980.               if (index_435X < len_436X) {
  3981.                 RSvalS = ((((((*((unsigned char *) ((arg2_434X - 3L) + index_435X)))) << 8L) + 8L)) + 1L);
  3982.                 goto L34459;}
  3983.               else {
  3984.                 arg0 = 0L;
  3985.                 goto L68451;}}
  3986.             else {
  3987.               arg0 = 0L;
  3988.               goto L68451;}
  3989.            L68451: {
  3990.             arg0 = 27L;
  3991.             arg1 = 0L;
  3992.             arg2 = arg2_434X;
  3993.             arg3 = (index_435X << 2L);
  3994.             goto L38648;}}
  3995.           else {
  3996.             arg0 = 0L;
  3997.             goto L67507;}}
  3998.         else {
  3999.           arg0 = 0L;
  4000.           goto L67507;}}
  4001.       else {
  4002.         arg0 = 0L;
  4003.         goto L67507;}
  4004.      L67507: {
  4005.       arg0 = 31L;
  4006.       arg1 = 0L;
  4007.       arg2 = arg2_434X;
  4008.       arg3 = RSvalS;
  4009.       goto L38648;}}
  4010.       break;
  4011.     case 107 : {
  4012.       long arg2_437X, arg3_438X;
  4013.       RSstackS = (RSstackS - -4L);
  4014.       arg2_437X = *((long *) RSstackS);
  4015.       RSstackS = (RSstackS - -4L);
  4016.       arg3_438X = *((long *) RSstackS);
  4017.       if ((arg3_438X & 3L) == 3L) {
  4018.         if ((((*((long *) ((arg3_438X - 3L) + -4L))) >> 2L) & 31L) == 10L) {
  4019.           if ((arg2_437X & 3L) == 0L) {
  4020.             if ((RSvalS & 255L) == 9L) {
  4021.               long x_439X, index_440X, len_441X;
  4022.               x_439X = (RSvalS) >> 8L;
  4023.               index_440X = arg2_437X >> 2L;
  4024.               len_441X = ((*((long *) ((arg3_438X - 3L) + -4L))) >> 7L);
  4025.               if (index_440X >= 0L) {
  4026.                 if (index_440X < len_441X) {
  4027.                   *((char *) ((arg3_438X - 3L) + index_440X)) = x_439X;
  4028.                   RSvalS = 13L;
  4029.                   goto L34459;}
  4030.                 else {
  4031.                   arg0 = 0L;
  4032.                   goto L68626;}}
  4033.               else {
  4034.                 arg0 = 0L;
  4035.                 goto L68626;}
  4036.              L68626: {
  4037.               arg0 = 26L;
  4038.               arg1 = 0L;
  4039.               arg2 = arg3_438X;
  4040.               arg3 = (index_440X << 2L);
  4041.               goto L38648;}}
  4042.             else {
  4043.               arg0 = 0L;
  4044.               goto L67417;}}
  4045.           else {
  4046.             arg0 = 0L;
  4047.             goto L67417;}}
  4048.         else {
  4049.           arg0 = 0L;
  4050.           goto L67417;}}
  4051.       else {
  4052.         arg0 = 0L;
  4053.         goto L67417;}
  4054.      L67417: {
  4055.       arg0 = 1L;
  4056.       arg1 = 0L;
  4057.       arg2 = arg3_438X;
  4058.       arg3 = arg2_437X;
  4059.       arg4 = RSvalS;
  4060.       goto L38789;}}
  4061.       break;
  4062.     case 108 : {
  4063.       long x_442X;
  4064.       x_442X = RSvalS;
  4065.       if ((x_442X & 3L) == 3L) {
  4066.         if ((((*((long *) ((x_442X - 3L) + -4L))) >> 2L) & 31L) == 2L) {
  4067.           arg0 = 5L;
  4068.           goto L60792;}
  4069.         else {
  4070.           arg0 = 1L;
  4071.           goto L60792;}}
  4072.       else {
  4073.         arg0 = 1L;
  4074.         goto L60792;}
  4075.      L60792: {
  4076.       long val_443X = arg0;
  4077.       RSvalS = val_443X;
  4078.       goto L34459;}}
  4079.       break;
  4080.     case 109 : {
  4081.       long arg2_444X;
  4082.       RSstackS = (RSstackS - -4L);
  4083.       arg2_444X = *((long *) RSstackS);
  4084.       if ((arg2_444X & 3L) == 0L) {
  4085.         long x_445X, len_446X;
  4086.         x_445X = RSvalS;
  4087.         len_446X = arg2_444X >> 2L;
  4088.         if (len_446X >= 0L) {
  4089.           if ((ShpS + ((len_446X + 1L) << 2L)) < SlimitS) {
  4090.             long len_447X, new_448X;
  4091.             len_447X = len_446X * 4L;
  4092.             *((long *) ShpS) = ((((len_447X << 7L) + 10L)));
  4093.             ShpS = (ShpS + 4L);
  4094.             new_448X = ShpS + 3L;
  4095.             ShpS = (ShpS + (((len_447X + 3L) & ~3)));
  4096.             if (len_447X > 0L) {
  4097.               *((long *) (ShpS + -4L)) = 0L;
  4098.               arg0 = new_448X;
  4099.               goto L61136;}
  4100.             else {
  4101.               arg0 = new_448X;
  4102.               goto L61136;}
  4103.            L61136: {
  4104.             long val_449X = arg0;
  4105.             arg0 = (len_446X - 1L);
  4106.             goto L61142;
  4107.            L61142: {
  4108.             long i_450X = arg0;
  4109.             if (i_450X < 0L) {
  4110.               RSvalS = val_449X;
  4111.               goto L34459;}
  4112.             else {
  4113.               *((long *) ((val_449X - 3L) + (i_450X << 2L))) = x_445X;
  4114.               arg0 = (i_450X - 1L);
  4115.               goto L61142;}}}}
  4116.           else {
  4117.             *((long *) ((SrootS - 3L) + 40L)) = x_445X;
  4118.             SlimitS = Snewspace_endS;
  4119.             arg0 = 5L;
  4120.             goto L29273;
  4121.            L61064: {
  4122.             long v_451X;
  4123.             SvalS = RSvalS;
  4124.             SstackS = RSstackS;
  4125.             Scode_pointerS = RScode_pointerS;
  4126.             SenvS = RSenvS;
  4127.             v_451X = collect();
  4128.             RSvalS = SvalS;
  4129.             RSstackS = SstackS;
  4130.             RScode_pointerS = Scode_pointerS;
  4131.             RSenvS = SenvS;
  4132.             arg0 = 5L;
  4133.             goto L24906;
  4134.            L61072: {
  4135.             long temp_452X;
  4136.             temp_452X = *((long *) ((SrootS - 3L) + 40L));
  4137.             *((long *) ((SrootS - 3L) + 40L)) = 0L;
  4138.             if ((ShpS + ((len_446X + 1L) << 2L)) < SlimitS) {
  4139.               long len_453X, new_454X;
  4140.               len_453X = len_446X * 4L;
  4141.               *((long *) ShpS) = ((((len_453X << 7L) + 10L)));
  4142.               ShpS = (ShpS + 4L);
  4143.               new_454X = ShpS + 3L;
  4144.               ShpS = (ShpS + (((len_453X + 3L) & ~3)));
  4145.               if (len_453X > 0L) {
  4146.                 *((long *) (ShpS + -4L)) = 0L;
  4147.                 arg0 = new_454X;
  4148.                 goto L61109;}
  4149.               else {
  4150.                 arg0 = new_454X;
  4151.                 goto L61109;}
  4152.              L61109: {
  4153.               long val_455X = arg0;
  4154.               arg0 = (len_446X - 1L);
  4155.               goto L61115;
  4156.              L61115: {
  4157.               long i_456X = arg0;
  4158.               if (i_456X < 0L) {
  4159.                 RSvalS = val_455X;
  4160.                 goto L34459;}
  4161.               else {
  4162.                 *((long *) ((val_455X - 3L) + (i_456X << 2L))) = temp_452X;
  4163.                 arg0 = (i_456X - 1L);
  4164.                 goto L61115;}}}}
  4165.             else {
  4166.               arg0 = 52L;
  4167.               arg1 = 0L;
  4168.               arg2 = (len_446X << 2L);
  4169.               arg3 = temp_452X;
  4170.               goto L38648;}}}}}
  4171.         else {
  4172.           arg0 = 53L;
  4173.           arg1 = 0L;
  4174.           arg2 = (len_446X << 2L);
  4175.           arg3 = x_445X;
  4176.           goto L38648;}}
  4177.       else {
  4178.         arg0 = 54L;
  4179.         arg1 = 0L;
  4180.         arg2 = arg2_444X;
  4181.         arg3 = RSvalS;
  4182.         goto L38648;}}
  4183.       break;
  4184.     case 110 : {
  4185.       long obj_457X;
  4186.       obj_457X = RSvalS;
  4187.       if ((obj_457X & 3L) == 3L) {
  4188.         if ((((*((long *) ((obj_457X - 3L) + -4L))) >> 2L) & 31L) == 2L) {
  4189.           RSvalS = ((((((*((long *) ((RSvalS - 3L) + -4L))) >> 7L)) + 3L) & ~3));
  4190.           goto L34459;}
  4191.         else {
  4192.           arg0 = 0L;
  4193.           goto L60699;}}
  4194.       else {
  4195.         arg0 = 0L;
  4196.         goto L60699;}
  4197.      L60699: {
  4198.       arg0 = 5L;
  4199.       arg1 = 0L;
  4200.       arg2 = RSvalS;
  4201.       goto L38616;}}
  4202.       break;
  4203.     case 111 : {
  4204.       long arg2_458X;
  4205.       RSstackS = (RSstackS - -4L);
  4206.       arg2_458X = *((long *) RSstackS);
  4207.       if ((arg2_458X & 3L) == 3L) {
  4208.         if ((((*((long *) ((arg2_458X - 3L) + -4L))) >> 2L) & 31L) == 2L) {
  4209.           if ((RSvalS & 3L) == 0L) {
  4210.             long index_459X, len_460X;
  4211.             index_459X = RSvalS >> 2L;
  4212.             len_460X = ((((*((long *) ((arg2_458X - 3L) + -4L))) >> 7L)) + 3L) >> 2L;
  4213.             if (index_459X >= 0L) {
  4214.               if (index_459X < len_460X) {
  4215.                 RSvalS = (*((long *) ((arg2_458X - 3L) + (index_459X << 2L))));
  4216.                 goto L34459;}
  4217.               else {
  4218.                 arg0 = 0L;
  4219.                 goto L61480;}}
  4220.             else {
  4221.               arg0 = 0L;
  4222.               goto L61480;}
  4223.            L61480: {
  4224.             arg0 = 51L;
  4225.             arg1 = 0L;
  4226.             arg2 = arg2_458X;
  4227.             arg3 = (index_459X << 2L);
  4228.             goto L38648;}}
  4229.           else {
  4230.             arg0 = 0L;
  4231.             goto L60551;}}
  4232.         else {
  4233.           arg0 = 0L;
  4234.           goto L60551;}}
  4235.       else {
  4236.         arg0 = 0L;
  4237.         goto L60551;}
  4238.      L60551: {
  4239.       arg0 = 55L;
  4240.       arg1 = 0L;
  4241.       arg2 = arg2_458X;
  4242.       arg3 = RSvalS;
  4243.       goto L38648;}}
  4244.       break;
  4245.     case 112 : {
  4246.       long arg2_461X, arg3_462X;
  4247.       RSstackS = (RSstackS - -4L);
  4248.       arg2_461X = *((long *) RSstackS);
  4249.       RSstackS = (RSstackS - -4L);
  4250.       arg3_462X = *((long *) RSstackS);
  4251.       if ((arg3_462X & 3L) == 3L) {
  4252.         if ((((*((long *) ((arg3_462X - 3L) + -4L))) >> 2L) & 31L) == 2L) {
  4253.           if ((arg2_461X & 3L) == 0L) {
  4254.             long x_463X, index_464X, len_465X;
  4255.             x_463X = RSvalS;
  4256.             index_464X = arg2_461X >> 2L;
  4257.             len_465X = ((((*((long *) ((arg3_462X - 3L) + -4L))) >> 7L)) + 3L) >> 2L;
  4258.             if (index_464X >= 0L) {
  4259.               if (index_464X < len_465X) {
  4260.                 *((long *) ((arg3_462X - 3L) + (index_464X << 2L))) = x_463X;
  4261.                 RSvalS = 13L;
  4262.                 goto L34459;}
  4263.               else {
  4264.                 arg0 = 0L;
  4265.                 goto L61651;}}
  4266.             else {
  4267.               arg0 = 0L;
  4268.               goto L61651;}
  4269.            L61651: {
  4270.             arg0 = 50L;
  4271.             arg1 = 0L;
  4272.             arg2 = arg3_462X;
  4273.             arg3 = (index_464X << 2L);
  4274.             goto L38648;}}
  4275.           else {
  4276.             arg0 = 0L;
  4277.             goto L60461;}}
  4278.         else {
  4279.           arg0 = 0L;
  4280.           goto L60461;}}
  4281.       else {
  4282.         arg0 = 0L;
  4283.         goto L60461;}
  4284.      L60461: {
  4285.       arg0 = 5L;
  4286.       arg1 = 0L;
  4287.       arg2 = arg3_462X;
  4288.       arg3 = arg2_461X;
  4289.       arg4 = RSvalS;
  4290.       goto L38789;}}
  4291.       break;
  4292.     case 113 : {
  4293.       long x_466X;
  4294.       x_466X = RSvalS;
  4295.       if ((x_466X & 3L) == 3L) {
  4296.         if ((((*((long *) ((x_466X - 3L) + -4L))) >> 2L) & 31L) == 7L) {
  4297.           arg0 = 5L;
  4298.           goto L62531;}
  4299.         else {
  4300.           arg0 = 1L;
  4301.           goto L62531;}}
  4302.       else {
  4303.         arg0 = 1L;
  4304.         goto L62531;}
  4305.      L62531: {
  4306.       long val_467X = arg0;
  4307.       RSvalS = val_467X;
  4308.       goto L34459;}}
  4309.       break;
  4310.     case 114 : {
  4311.       long arg2_468X;
  4312.       RSstackS = (RSstackS - -4L);
  4313.       arg2_468X = *((long *) RSstackS);
  4314.       if ((arg2_468X & 3L) == 0L) {
  4315.         long x_469X, len_470X;
  4316.         x_469X = RSvalS;
  4317.         len_470X = arg2_468X >> 2L;
  4318.         if (len_470X >= 0L) {
  4319.           if ((ShpS + ((len_470X + 1L) << 2L)) < SlimitS) {
  4320.             long len_471X, new_472X;
  4321.             len_471X = len_470X * 4L;
  4322.             *((long *) ShpS) = ((((len_471X << 5L) + 7L) << 2L) + 2L);
  4323.             ShpS = (ShpS + 4L);
  4324.             new_472X = ShpS + 3L;
  4325.             ShpS = (ShpS + (((len_471X + 3L) & ~3)));
  4326.             if (len_471X > 0L) {
  4327.               *((long *) (ShpS + -4L)) = 0L;
  4328.               arg0 = new_472X;
  4329.               goto L62875;}
  4330.             else {
  4331.               arg0 = new_472X;
  4332.               goto L62875;}
  4333.            L62875: {
  4334.             long val_473X = arg0;
  4335.             arg0 = (len_470X - 1L);
  4336.             goto L62881;
  4337.            L62881: {
  4338.             long i_474X = arg0;
  4339.             if (i_474X < 0L) {
  4340.               RSvalS = val_473X;
  4341.               goto L34459;}
  4342.             else {
  4343.               *((long *) ((val_473X - 3L) + (i_474X << 2L))) = x_469X;
  4344.               arg0 = (i_474X - 1L);
  4345.               goto L62881;}}}}
  4346.           else {
  4347.             *((long *) ((SrootS - 3L) + 40L)) = x_469X;
  4348.             SlimitS = Snewspace_endS;
  4349.             arg0 = 4L;
  4350.             goto L29273;
  4351.            L62803: {
  4352.             long v_475X;
  4353.             SvalS = RSvalS;
  4354.             SstackS = RSstackS;
  4355.             Scode_pointerS = RScode_pointerS;
  4356.             SenvS = RSenvS;
  4357.             v_475X = collect();
  4358.             RSvalS = SvalS;
  4359.             RSstackS = SstackS;
  4360.             RScode_pointerS = Scode_pointerS;
  4361.             RSenvS = SenvS;
  4362.             arg0 = 4L;
  4363.             goto L24906;
  4364.            L62811: {
  4365.             long temp_476X;
  4366.             temp_476X = *((long *) ((SrootS - 3L) + 40L));
  4367.             *((long *) ((SrootS - 3L) + 40L)) = 0L;
  4368.             if ((ShpS + ((len_470X + 1L) << 2L)) < SlimitS) {
  4369.               long len_477X, new_478X;
  4370.               len_477X = len_470X * 4L;
  4371.               *((long *) ShpS) = ((((len_477X << 5L) + 7L) << 2L) + 2L);
  4372.               ShpS = (ShpS + 4L);
  4373.               new_478X = ShpS + 3L;
  4374.               ShpS = (ShpS + (((len_477X + 3L) & ~3)));
  4375.               if (len_477X > 0L) {
  4376.                 *((long *) (ShpS + -4L)) = 0L;
  4377.                 arg0 = new_478X;
  4378.                 goto L62848;}
  4379.               else {
  4380.                 arg0 = new_478X;
  4381.                 goto L62848;}
  4382.              L62848: {
  4383.               long val_479X = arg0;
  4384.               arg0 = (len_470X - 1L);
  4385.               goto L62854;
  4386.              L62854: {
  4387.               long i_480X = arg0;
  4388.               if (i_480X < 0L) {
  4389.                 RSvalS = val_479X;
  4390.                 goto L34459;}
  4391.               else {
  4392.                 *((long *) ((val_479X - 3L) + (i_480X << 2L))) = temp_476X;
  4393.                 arg0 = (i_480X - 1L);
  4394.                 goto L62854;}}}}
  4395.             else {
  4396.               arg0 = 46L;
  4397.               arg1 = 0L;
  4398.               arg2 = (len_470X << 2L);
  4399.               arg3 = temp_476X;
  4400.               goto L38648;}}}}}
  4401.         else {
  4402.           arg0 = 47L;
  4403.           arg1 = 0L;
  4404.           arg2 = (len_470X << 2L);
  4405.           arg3 = x_469X;
  4406.           goto L38648;}}
  4407.       else {
  4408.         arg0 = 48L;
  4409.         arg1 = 0L;
  4410.         arg2 = arg2_468X;
  4411.         arg3 = RSvalS;
  4412.         goto L38648;}}
  4413.       break;
  4414.     case 115 : {
  4415.       long obj_481X;
  4416.       obj_481X = RSvalS;
  4417.       if ((obj_481X & 3L) == 3L) {
  4418.         if ((((*((long *) ((obj_481X - 3L) + -4L))) >> 2L) & 31L) == 7L) {
  4419.           RSvalS = ((((((*((long *) ((RSvalS - 3L) + -4L))) >> 7L)) + 3L) & ~3));
  4420.           goto L34459;}
  4421.         else {
  4422.           arg0 = 0L;
  4423.           goto L62438;}}
  4424.       else {
  4425.         arg0 = 0L;
  4426.         goto L62438;}
  4427.      L62438: {
  4428.       arg0 = 4L;
  4429.       arg1 = 0L;
  4430.       arg2 = RSvalS;
  4431.       goto L38616;}}
  4432.       break;
  4433.     case 116 : {
  4434.       long arg2_482X;
  4435.       RSstackS = (RSstackS - -4L);
  4436.       arg2_482X = *((long *) RSstackS);
  4437.       if ((arg2_482X & 3L) == 3L) {
  4438.         if ((((*((long *) ((arg2_482X - 3L) + -4L))) >> 2L) & 31L) == 7L) {
  4439.           if ((RSvalS & 3L) == 0L) {
  4440.             long index_483X, len_484X;
  4441.             index_483X = RSvalS >> 2L;
  4442.             len_484X = ((((*((long *) ((arg2_482X - 3L) + -4L))) >> 7L)) + 3L) >> 2L;
  4443.             if (index_483X >= 0L) {
  4444.               if (index_483X < len_484X) {
  4445.                 RSvalS = (*((long *) ((arg2_482X - 3L) + (index_483X << 2L))));
  4446.                 goto L34459;}
  4447.               else {
  4448.                 arg0 = 0L;
  4449.                 goto L63219;}}
  4450.             else {
  4451.               arg0 = 0L;
  4452.               goto L63219;}
  4453.            L63219: {
  4454.             arg0 = 45L;
  4455.             arg1 = 0L;
  4456.             arg2 = arg2_482X;
  4457.             arg3 = (index_483X << 2L);
  4458.             goto L38648;}}
  4459.           else {
  4460.             arg0 = 0L;
  4461.             goto L62290;}}
  4462.         else {
  4463.           arg0 = 0L;
  4464.           goto L62290;}}
  4465.       else {
  4466.         arg0 = 0L;
  4467.         goto L62290;}
  4468.      L62290: {
  4469.       arg0 = 49L;
  4470.       arg1 = 0L;
  4471.       arg2 = arg2_482X;
  4472.       arg3 = RSvalS;
  4473.       goto L38648;}}
  4474.       break;
  4475.     case 117 : {
  4476.       long arg2_485X, arg3_486X;
  4477.       RSstackS = (RSstackS - -4L);
  4478.       arg2_485X = *((long *) RSstackS);
  4479.       RSstackS = (RSstackS - -4L);
  4480.       arg3_486X = *((long *) RSstackS);
  4481.       if ((arg3_486X & 3L) == 3L) {
  4482.         if ((((*((long *) ((arg3_486X - 3L) + -4L))) >> 2L) & 31L) == 7L) {
  4483.           if ((arg2_485X & 3L) == 0L) {
  4484.             long x_487X, index_488X, len_489X;
  4485.             x_487X = RSvalS;
  4486.             index_488X = arg2_485X >> 2L;
  4487.             len_489X = ((((*((long *) ((arg3_486X - 3L) + -4L))) >> 7L)) + 3L) >> 2L;
  4488.             if (index_488X >= 0L) {
  4489.               if (index_488X < len_489X) {
  4490.                 *((long *) ((arg3_486X - 3L) + (index_488X << 2L))) = x_487X;
  4491.                 RSvalS = 13L;
  4492.                 goto L34459;}
  4493.               else {
  4494.                 arg0 = 0L;
  4495.                 goto L63390;}}
  4496.             else {
  4497.               arg0 = 0L;
  4498.               goto L63390;}
  4499.            L63390: {
  4500.             arg0 = 44L;
  4501.             arg1 = 0L;
  4502.             arg2 = arg3_486X;
  4503.             arg3 = (index_488X << 2L);
  4504.             goto L38648;}}
  4505.           else {
  4506.             arg0 = 0L;
  4507.             goto L62200;}}
  4508.         else {
  4509.           arg0 = 0L;
  4510.           goto L62200;}}
  4511.       else {
  4512.         arg0 = 0L;
  4513.         goto L62200;}
  4514.      L62200: {
  4515.       arg0 = 4L;
  4516.       arg1 = 0L;
  4517.       arg2 = arg3_486X;
  4518.       arg3 = arg2_485X;
  4519.       arg4 = RSvalS;
  4520.       goto L38789;}}
  4521.       break;
  4522.     case 118 : {
  4523.       long x_490X;
  4524.       x_490X = RSvalS;
  4525.       if ((x_490X & 3L) == 3L) {
  4526.         if ((((*((long *) ((x_490X - 3L) + -4L))) >> 2L) & 31L) == 9L) {
  4527.           arg0 = 5L;
  4528.           goto L64270;}
  4529.         else {
  4530.           arg0 = 1L;
  4531.           goto L64270;}}
  4532.       else {
  4533.         arg0 = 1L;
  4534.         goto L64270;}
  4535.      L64270: {
  4536.       long val_491X = arg0;
  4537.       RSvalS = val_491X;
  4538.       goto L34459;}}
  4539.       break;
  4540.     case 119 : {
  4541.       long arg2_492X;
  4542.       RSstackS = (RSstackS - -4L);
  4543.       arg2_492X = *((long *) RSstackS);
  4544.       if ((arg2_492X & 3L) == 0L) {
  4545.         long x_493X, len_494X;
  4546.         x_493X = RSvalS;
  4547.         len_494X = arg2_492X >> 2L;
  4548.         if (len_494X >= 0L) {
  4549.           if ((ShpS + ((len_494X + 1L) << 2L)) < SlimitS) {
  4550.             long len_495X, new_496X;
  4551.             len_495X = len_494X * 4L;
  4552.             *((long *) ShpS) = ((((len_495X << 5L) + 9L) << 2L) + 2L);
  4553.             ShpS = (ShpS + 4L);
  4554.             new_496X = ShpS + 3L;
  4555.             ShpS = (ShpS + (((len_495X + 3L) & ~3)));
  4556.             if (len_495X > 0L) {
  4557.               *((long *) (ShpS + -4L)) = 0L;
  4558.               arg0 = new_496X;
  4559.               goto L64614;}
  4560.             else {
  4561.               arg0 = new_496X;
  4562.               goto L64614;}
  4563.            L64614: {
  4564.             long val_497X = arg0;
  4565.             arg0 = (len_494X - 1L);
  4566.             goto L64620;
  4567.            L64620: {
  4568.             long i_498X = arg0;
  4569.             if (i_498X < 0L) {
  4570.               RSvalS = val_497X;
  4571.               goto L34459;}
  4572.             else {
  4573.               *((long *) ((val_497X - 3L) + (i_498X << 2L))) = x_493X;
  4574.               arg0 = (i_498X - 1L);
  4575.               goto L64620;}}}}
  4576.           else {
  4577.             *((long *) ((SrootS - 3L) + 40L)) = x_493X;
  4578.             SlimitS = Snewspace_endS;
  4579.             arg0 = 3L;
  4580.             goto L29273;
  4581.            L64542: {
  4582.             long v_499X;
  4583.             SvalS = RSvalS;
  4584.             SstackS = RSstackS;
  4585.             Scode_pointerS = RScode_pointerS;
  4586.             SenvS = RSenvS;
  4587.             v_499X = collect();
  4588.             RSvalS = SvalS;
  4589.             RSstackS = SstackS;
  4590.             RScode_pointerS = Scode_pointerS;
  4591.             RSenvS = SenvS;
  4592.             arg0 = 3L;
  4593.             goto L24906;
  4594.            L64550: {
  4595.             long temp_500X;
  4596.             temp_500X = *((long *) ((SrootS - 3L) + 40L));
  4597.             *((long *) ((SrootS - 3L) + 40L)) = 0L;
  4598.             if ((ShpS + ((len_494X + 1L) << 2L)) < SlimitS) {
  4599.               long len_501X, new_502X;
  4600.               len_501X = len_494X * 4L;
  4601.               *((long *) ShpS) = ((((len_501X << 5L) + 9L) << 2L) + 2L);
  4602.               ShpS = (ShpS + 4L);
  4603.               new_502X = ShpS + 3L;
  4604.               ShpS = (ShpS + (((len_501X + 3L) & ~3)));
  4605.               if (len_501X > 0L) {
  4606.                 *((long *) (ShpS + -4L)) = 0L;
  4607.                 arg0 = new_502X;
  4608.                 goto L64587;}
  4609.               else {
  4610.                 arg0 = new_502X;
  4611.                 goto L64587;}
  4612.              L64587: {
  4613.               long val_503X = arg0;
  4614.               arg0 = (len_494X - 1L);
  4615.               goto L64593;
  4616.              L64593: {
  4617.               long i_504X = arg0;
  4618.               if (i_504X < 0L) {
  4619.                 RSvalS = val_503X;
  4620.                 goto L34459;}
  4621.               else {
  4622.                 *((long *) ((val_503X - 3L) + (i_504X << 2L))) = temp_500X;
  4623.                 arg0 = (i_504X - 1L);
  4624.                 goto L64593;}}}}
  4625.             else {
  4626.               arg0 = 40L;
  4627.               arg1 = 0L;
  4628.               arg2 = (len_494X << 2L);
  4629.               arg3 = temp_500X;
  4630.               goto L38648;}}}}}
  4631.         else {
  4632.           arg0 = 41L;
  4633.           arg1 = 0L;
  4634.           arg2 = (len_494X << 2L);
  4635.           arg3 = x_493X;
  4636.           goto L38648;}}
  4637.       else {
  4638.         arg0 = 42L;
  4639.         arg1 = 0L;
  4640.         arg2 = arg2_492X;
  4641.         arg3 = RSvalS;
  4642.         goto L38648;}}
  4643.       break;
  4644.     case 120 : {
  4645.       long obj_505X;
  4646.       obj_505X = RSvalS;
  4647.       if ((obj_505X & 3L) == 3L) {
  4648.         if ((((*((long *) ((obj_505X - 3L) + -4L))) >> 2L) & 31L) == 9L) {
  4649.           RSvalS = ((((((*((long *) ((RSvalS - 3L) + -4L))) >> 7L)) + 3L) & ~3));
  4650.           goto L34459;}
  4651.         else {
  4652.           arg0 = 0L;
  4653.           goto L64177;}}
  4654.       else {
  4655.         arg0 = 0L;
  4656.         goto L64177;}
  4657.      L64177: {
  4658.       arg0 = 3L;
  4659.       arg1 = 0L;
  4660.       arg2 = RSvalS;
  4661.       goto L38616;}}
  4662.       break;
  4663.     case 121 : {
  4664.       long arg2_506X;
  4665.       RSstackS = (RSstackS - -4L);
  4666.       arg2_506X = *((long *) RSstackS);
  4667.       if ((arg2_506X & 3L) == 3L) {
  4668.         if ((((*((long *) ((arg2_506X - 3L) + -4L))) >> 2L) & 31L) == 9L) {
  4669.           if ((RSvalS & 3L) == 0L) {
  4670.             long index_507X, len_508X;
  4671.             index_507X = RSvalS >> 2L;
  4672.             len_508X = ((((*((long *) ((arg2_506X - 3L) + -4L))) >> 7L)) + 3L) >> 2L;
  4673.             if (index_507X >= 0L) {
  4674.               if (index_507X < len_508X) {
  4675.                 RSvalS = (*((long *) ((arg2_506X - 3L) + (index_507X << 2L))));
  4676.                 goto L34459;}
  4677.               else {
  4678.                 arg0 = 0L;
  4679.                 goto L64958;}}
  4680.             else {
  4681.               arg0 = 0L;
  4682.               goto L64958;}
  4683.            L64958: {
  4684.             arg0 = 39L;
  4685.             arg1 = 0L;
  4686.             arg2 = arg2_506X;
  4687.             arg3 = (index_507X << 2L);
  4688.             goto L38648;}}
  4689.           else {
  4690.             arg0 = 0L;
  4691.             goto L64029;}}
  4692.         else {
  4693.           arg0 = 0L;
  4694.           goto L64029;}}
  4695.       else {
  4696.         arg0 = 0L;
  4697.         goto L64029;}
  4698.      L64029: {
  4699.       arg0 = 43L;
  4700.       arg1 = 0L;
  4701.       arg2 = arg2_506X;
  4702.       arg3 = RSvalS;
  4703.       goto L38648;}}
  4704.       break;
  4705.     case 122 : {
  4706.       long arg2_509X, arg3_510X;
  4707.       RSstackS = (RSstackS - -4L);
  4708.       arg2_509X = *((long *) RSstackS);
  4709.       RSstackS = (RSstackS - -4L);
  4710.       arg3_510X = *((long *) RSstackS);
  4711.       if ((arg3_510X & 3L) == 3L) {
  4712.         if ((((*((long *) ((arg3_510X - 3L) + -4L))) >> 2L) & 31L) == 9L) {
  4713.           if ((arg2_509X & 3L) == 0L) {
  4714.             long x_511X, index_512X, len_513X;
  4715.             x_511X = RSvalS;
  4716.             index_512X = arg2_509X >> 2L;
  4717.             len_513X = ((((*((long *) ((arg3_510X - 3L) + -4L))) >> 7L)) + 3L) >> 2L;
  4718.             if (index_512X >= 0L) {
  4719.               if (index_512X < len_513X) {
  4720.                 *((long *) ((arg3_510X - 3L) + (index_512X << 2L))) = x_511X;
  4721.                 RSvalS = 13L;
  4722.                 goto L34459;}
  4723.               else {
  4724.                 arg0 = 0L;
  4725.                 goto L65129;}}
  4726.             else {
  4727.               arg0 = 0L;
  4728.               goto L65129;}
  4729.            L65129: {
  4730.             arg0 = 38L;
  4731.             arg1 = 0L;
  4732.             arg2 = arg3_510X;
  4733.             arg3 = (index_512X << 2L);
  4734.             goto L38648;}}
  4735.           else {
  4736.             arg0 = 0L;
  4737.             goto L63939;}}
  4738.         else {
  4739.           arg0 = 0L;
  4740.           goto L63939;}}
  4741.       else {
  4742.         arg0 = 0L;
  4743.         goto L63939;}
  4744.      L63939: {
  4745.       arg0 = 3L;
  4746.       arg1 = 0L;
  4747.       arg2 = arg3_510X;
  4748.       arg3 = arg2_509X;
  4749.       arg4 = RSvalS;
  4750.       goto L38789;}}
  4751.       break;
  4752.     case 123 : {
  4753.       long x_514X;
  4754.       x_514X = RSvalS;
  4755.       if ((x_514X & 3L) == 3L) {
  4756.         if ((((*((long *) ((x_514X - 3L) + -4L))) >> 2L) & 31L) == 8L) {
  4757.           arg0 = 5L;
  4758.           goto L66009;}
  4759.         else {
  4760.           arg0 = 1L;
  4761.           goto L66009;}}
  4762.       else {
  4763.         arg0 = 1L;
  4764.         goto L66009;}
  4765.      L66009: {
  4766.       long val_515X = arg0;
  4767.       RSvalS = val_515X;
  4768.       goto L34459;}}
  4769.       break;
  4770.     case 124 : {
  4771.       long arg2_516X;
  4772.       RSstackS = (RSstackS - -4L);
  4773.       arg2_516X = *((long *) RSstackS);
  4774.       if ((arg2_516X & 3L) == 0L) {
  4775.         long x_517X, len_518X;
  4776.         x_517X = RSvalS;
  4777.         len_518X = arg2_516X >> 2L;
  4778.         if (len_518X >= 0L) {
  4779.           if ((ShpS + ((len_518X + 1L) << 2L)) < SlimitS) {
  4780.             long len_519X, new_520X;
  4781.             len_519X = len_518X * 4L;
  4782.             *((long *) ShpS) = ((((len_519X << 5L) + 8L) << 2L) + 2L);
  4783.             ShpS = (ShpS + 4L);
  4784.             new_520X = ShpS + 3L;
  4785.             ShpS = (ShpS + (((len_519X + 3L) & ~3)));
  4786.             if (len_519X > 0L) {
  4787.               *((long *) (ShpS + -4L)) = 0L;
  4788.               arg0 = new_520X;
  4789.               goto L66353;}
  4790.             else {
  4791.               arg0 = new_520X;
  4792.               goto L66353;}
  4793.            L66353: {
  4794.             long val_521X = arg0;
  4795.             arg0 = (len_518X - 1L);
  4796.             goto L66359;
  4797.            L66359: {
  4798.             long i_522X = arg0;
  4799.             if (i_522X < 0L) {
  4800.               RSvalS = val_521X;
  4801.               goto L34459;}
  4802.             else {
  4803.               *((long *) ((val_521X - 3L) + (i_522X << 2L))) = x_517X;
  4804.               arg0 = (i_522X - 1L);
  4805.               goto L66359;}}}}
  4806.           else {
  4807.             *((long *) ((SrootS - 3L) + 40L)) = x_517X;
  4808.             SlimitS = Snewspace_endS;
  4809.             arg0 = 2L;
  4810.             goto L29273;
  4811.            L66281: {
  4812.             long v_523X;
  4813.             SvalS = RSvalS;
  4814.             SstackS = RSstackS;
  4815.             Scode_pointerS = RScode_pointerS;
  4816.             SenvS = RSenvS;
  4817.             v_523X = collect();
  4818.             RSvalS = SvalS;
  4819.             RSstackS = SstackS;
  4820.             RScode_pointerS = Scode_pointerS;
  4821.             RSenvS = SenvS;
  4822.             arg0 = 2L;
  4823.             goto L24906;
  4824.            L66289: {
  4825.             long temp_524X;
  4826.             temp_524X = *((long *) ((SrootS - 3L) + 40L));
  4827.             *((long *) ((SrootS - 3L) + 40L)) = 0L;
  4828.             if ((ShpS + ((len_518X + 1L) << 2L)) < SlimitS) {
  4829.               long len_525X, new_526X;
  4830.               len_525X = len_518X * 4L;
  4831.               *((long *) ShpS) = ((((len_525X << 5L) + 8L) << 2L) + 2L);
  4832.               ShpS = (ShpS + 4L);
  4833.               new_526X = ShpS + 3L;
  4834.               ShpS = (ShpS + (((len_525X + 3L) & ~3)));
  4835.               if (len_525X > 0L) {
  4836.                 *((long *) (ShpS + -4L)) = 0L;
  4837.                 arg0 = new_526X;
  4838.                 goto L66326;}
  4839.               else {
  4840.                 arg0 = new_526X;
  4841.                 goto L66326;}
  4842.              L66326: {
  4843.               long val_527X = arg0;
  4844.               arg0 = (len_518X - 1L);
  4845.               goto L66332;
  4846.              L66332: {
  4847.               long i_528X = arg0;
  4848.               if (i_528X < 0L) {
  4849.                 RSvalS = val_527X;
  4850.                 goto L34459;}
  4851.               else {
  4852.                 *((long *) ((val_527X - 3L) + (i_528X << 2L))) = temp_524X;
  4853.                 arg0 = (i_528X - 1L);
  4854.                 goto L66332;}}}}
  4855.             else {
  4856.               arg0 = 34L;
  4857.               arg1 = 0L;
  4858.               arg2 = (len_518X << 2L);
  4859.               arg3 = temp_524X;
  4860.               goto L38648;}}}}}
  4861.         else {
  4862.           arg0 = 35L;
  4863.           arg1 = 0L;
  4864.           arg2 = (len_518X << 2L);
  4865.           arg3 = x_517X;
  4866.           goto L38648;}}
  4867.       else {
  4868.         arg0 = 36L;
  4869.         arg1 = 0L;
  4870.         arg2 = arg2_516X;
  4871.         arg3 = RSvalS;
  4872.         goto L38648;}}
  4873.       break;
  4874.     case 125 : {
  4875.       long obj_529X;
  4876.       obj_529X = RSvalS;
  4877.       if ((obj_529X & 3L) == 3L) {
  4878.         if ((((*((long *) ((obj_529X - 3L) + -4L))) >> 2L) & 31L) == 8L) {
  4879.           RSvalS = ((((((*((long *) ((RSvalS - 3L) + -4L))) >> 7L)) + 3L) & ~3));
  4880.           goto L34459;}
  4881.         else {
  4882.           arg0 = 0L;
  4883.           goto L65916;}}
  4884.       else {
  4885.         arg0 = 0L;
  4886.         goto L65916;}
  4887.      L65916: {
  4888.       arg0 = 2L;
  4889.       arg1 = 0L;
  4890.       arg2 = RSvalS;
  4891.       goto L38616;}}
  4892.       break;
  4893.     case 126 : {
  4894.       long arg2_530X;
  4895.       RSstackS = (RSstackS - -4L);
  4896.       arg2_530X = *((long *) RSstackS);
  4897.       if ((arg2_530X & 3L) == 3L) {
  4898.         if ((((*((long *) ((arg2_530X - 3L) + -4L))) >> 2L) & 31L) == 8L) {
  4899.           if ((RSvalS & 3L) == 0L) {
  4900.             long index_531X, len_532X;
  4901.             index_531X = RSvalS >> 2L;
  4902.             len_532X = ((((*((long *) ((arg2_530X - 3L) + -4L))) >> 7L)) + 3L) >> 2L;
  4903.             if (index_531X >= 0L) {
  4904.               if (index_531X < len_532X) {
  4905.                 RSvalS = (*((long *) ((arg2_530X - 3L) + (index_531X << 2L))));
  4906.                 goto L34459;}
  4907.               else {
  4908.                 arg0 = 0L;
  4909.                 goto L66697;}}
  4910.             else {
  4911.               arg0 = 0L;
  4912.               goto L66697;}
  4913.            L66697: {
  4914.             arg0 = 33L;
  4915.             arg1 = 0L;
  4916.             arg2 = arg2_530X;
  4917.             arg3 = (index_531X << 2L);
  4918.             goto L38648;}}
  4919.           else {
  4920.             arg0 = 0L;
  4921.             goto L65768;}}
  4922.         else {
  4923.           arg0 = 0L;
  4924.           goto L65768;}}
  4925.       else {
  4926.         arg0 = 0L;
  4927.         goto L65768;}
  4928.      L65768: {
  4929.       arg0 = 37L;
  4930.       arg1 = 0L;
  4931.       arg2 = arg2_530X;
  4932.       arg3 = RSvalS;
  4933.       goto L38648;}}
  4934.       break;
  4935.     case 127 : {
  4936.       long arg2_533X, arg3_534X;
  4937.       RSstackS = (RSstackS - -4L);
  4938.       arg2_533X = *((long *) RSstackS);
  4939.       RSstackS = (RSstackS - -4L);
  4940.       arg3_534X = *((long *) RSstackS);
  4941.       if ((arg3_534X & 3L) == 3L) {
  4942.         if ((((*((long *) ((arg3_534X - 3L) + -4L))) >> 2L) & 31L) == 8L) {
  4943.           if ((arg2_533X & 3L) == 0L) {
  4944.             long x_535X, index_536X, len_537X;
  4945.             x_535X = RSvalS;
  4946.             index_536X = arg2_533X >> 2L;
  4947.             len_537X = ((((*((long *) ((arg3_534X - 3L) + -4L))) >> 7L)) + 3L) >> 2L;
  4948.             if (index_536X >= 0L) {
  4949.               if (index_536X < len_537X) {
  4950.                 *((long *) ((arg3_534X - 3L) + (index_536X << 2L))) = x_535X;
  4951.                 RSvalS = 13L;
  4952.                 goto L34459;}
  4953.               else {
  4954.                 arg0 = 0L;
  4955.                 goto L66868;}}
  4956.             else {
  4957.               arg0 = 0L;
  4958.               goto L66868;}
  4959.            L66868: {
  4960.             arg0 = 32L;
  4961.             arg1 = 0L;
  4962.             arg2 = arg3_534X;
  4963.             arg3 = (index_536X << 2L);
  4964.             goto L38648;}}
  4965.           else {
  4966.             arg0 = 0L;
  4967.             goto L65678;}}
  4968.         else {
  4969.           arg0 = 0L;
  4970.           goto L65678;}}
  4971.       else {
  4972.         arg0 = 0L;
  4973.         goto L65678;}
  4974.      L65678: {
  4975.       arg0 = 2L;
  4976.       arg1 = 0L;
  4977.       arg2 = arg3_534X;
  4978.       arg3 = arg2_533X;
  4979.       arg4 = RSvalS;
  4980.       goto L38789;}}
  4981.       break;
  4982.     case 128 : {
  4983.       if ((ShpS + 20L) < SlimitS) {
  4984.         arg0 = 9999999L;
  4985.         goto L53994;}
  4986.       else {
  4987.         SlimitS = Snewspace_endS;
  4988.         arg0 = 10L;
  4989.         goto L29273;
  4990.        L54028: {
  4991.         long v_538X;
  4992.         SvalS = RSvalS;
  4993.         SstackS = RSstackS;
  4994.         Scode_pointerS = RScode_pointerS;
  4995.         SenvS = RSenvS;
  4996.         v_538X = collect();
  4997.         RSvalS = SvalS;
  4998.         RSstackS = SstackS;
  4999.         RScode_pointerS = Scode_pointerS;
  5000.         RSenvS = SenvS;
  5001.         arg0 = 10L;
  5002.         goto L24906;
  5003.        L54036: {
  5004.         long v_539X = arg0;
  5005.         arg0 = v_539X;
  5006.         goto L53994;}}}
  5007.      L53994: {
  5008.       if ((ShpS + 20L) < SlimitS) {
  5009.         arg0 = 0L;
  5010.         goto L53526;}
  5011.       else {
  5012.         long v_540X;
  5013.         SvalS = RSvalS;
  5014.         SstackS = RSstackS;
  5015.         Scode_pointerS = RScode_pointerS;
  5016.         SenvS = RSenvS;
  5017.         v_540X = Qps_error_0(((long)"Scheme48 heap overflow"));
  5018.         RSvalS = SvalS;
  5019.         RSstackS = SstackS;
  5020.         RScode_pointerS = Scode_pointerS;
  5021.         RSenvS = SenvS;
  5022.         arg0 = v_540X;
  5023.         goto L53526;}}
  5024.      L53526: {
  5025.       long arg2_541X;
  5026.       RSstackS = (RSstackS - -4L);
  5027.       arg2_541X = *((long *) RSstackS);
  5028.       if ((arg2_541X & 3L) == 3L) {
  5029.         if ((((*((long *) ((arg2_541X - 3L) + -4L))) >> 2L) & 31L) == 10L) {
  5030.           if ((RSvalS & 3L) == 0L) {
  5031.             long arg2_542X, vec_543X, len_544X;
  5032.             arg2_542X = RSvalS >> 2L;
  5033.             vec_543X = Sopen_portsS;
  5034.             len_544X = *((long *) (vec_543X + -4L));
  5035.             arg0 = 0L;
  5036.             goto L53785;
  5037.            L53785: {
  5038.             long i_545X = arg0;
  5039.             if (i_545X >= len_544X) {
  5040.               arg0 = 0L;
  5041.               arg1 = arg2_541X;
  5042.               goto L53330;}
  5043.             else {
  5044.               if (0L == (*((long *) (vec_543X + (i_545X * 4L))))) {
  5045.                 arg0 = i_545X;
  5046.                 arg1 = arg2_541X;
  5047.                 goto L53330;}
  5048.               else {
  5049.                 arg0 = (i_545X + 1L);
  5050.                 goto L53785;}}}
  5051.            L53330: {
  5052.             long index_546X = arg0;
  5053.             long filename_547X = arg1;
  5054.             if (index_546X != 0) {
  5055.               if (arg2_542X == 2L) {
  5056.                 arg0 = 2L;
  5057.                 arg1 = filename_547X;
  5058.                 goto L21896;
  5059.                L53397: {
  5060.                 long spec_548X = arg0;
  5061.                 long v_549X;
  5062.                 v_549X = (long)ps_open((char *)spec_548X, (char *)((long)"w"));
  5063.                 arg0 = v_549X;
  5064.                 goto L53416;}}
  5065.               else {
  5066.                 arg0 = 1L;
  5067.                 arg1 = filename_547X;
  5068.                 goto L21896;
  5069.                L53409: {
  5070.                 long spec_550X = arg0;
  5071.                 long v_551X;
  5072.                 v_551X = (long)ps_open((char *)spec_550X, (char *)((long)"r"));
  5073.                 arg0 = v_551X;
  5074.                 goto L53416;}}
  5075.              L53416: {
  5076.               long port_552X = arg0;
  5077.               if (port_552X != 0) {
  5078.                 long new_553X;
  5079.                 *((long *) ShpS) = 2070L;
  5080.                 ShpS = (ShpS + 4L);
  5081.                 new_553X = ShpS + 3L;
  5082.                 ShpS = (ShpS + 16L);
  5083.                 *((long *) (ShpS + -4L)) = 0L;
  5084.                 *((long *) (new_553X - 3L)) = (arg2_542X << 2L);
  5085.                 *((long *) ((new_553X - 3L) + 4L)) = (index_546X << 2L);
  5086.                 *((long *) ((new_553X - 3L) + 8L)) = 1L;
  5087.                 *((long *) ((new_553X - 3L) + 12L)) = filename_547X;
  5088.                 *((long *) (Sopen_portsS + (index_546X * 4L))) = port_552X;
  5089.                 *((long *) (Sopen_vm_portsS + (index_546X * 4L))) = new_553X;
  5090.                 RSvalS = new_553X;
  5091.                 goto L34459;}
  5092.               else {
  5093.                 RSvalS = 1L;
  5094.                 goto L34459;}}}
  5095.             else {
  5096.               *((long *) ((SrootS - 3L) + 40L)) = filename_547X;
  5097.               SlimitS = Snewspace_endS;
  5098.               arg0 = 11L;
  5099.               goto L29273;
  5100.              L53742: {
  5101.               long v_554X;
  5102.               SvalS = RSvalS;
  5103.               SstackS = RSstackS;
  5104.               Scode_pointerS = RScode_pointerS;
  5105.               SenvS = RSenvS;
  5106.               v_554X = collect();
  5107.               RSvalS = SvalS;
  5108.               RSstackS = SstackS;
  5109.               RScode_pointerS = Scode_pointerS;
  5110.               RSenvS = SenvS;
  5111.               arg0 = 11L;
  5112.               goto L24906;
  5113.              L53750: {
  5114.               long temp_555X, vec_556X, len_557X;
  5115.               temp_555X = *((long *) ((SrootS - 3L) + 40L));
  5116.               *((long *) ((SrootS - 3L) + 40L)) = 0L;
  5117.               vec_556X = Sopen_portsS;
  5118.               len_557X = *((long *) (vec_556X + -4L));
  5119.               arg0 = 0L;
  5120.               goto L53695;
  5121.              L53695: {
  5122.               long i_558X = arg0;
  5123.               if (i_558X >= len_557X) {
  5124.                 arg0 = 0L;
  5125.                 goto L53440;}
  5126.               else {
  5127.                 if (0L == (*((long *) (vec_556X + (i_558X * 4L))))) {
  5128.                   if (i_558X != 0) {
  5129.                     arg0 = i_558X;
  5130.                     arg1 = temp_555X;
  5131.                     goto L53330;}
  5132.                   else {
  5133.                     arg0 = i_558X;
  5134.                     goto L53440;}}
  5135.                 else {
  5136.                   arg0 = (i_558X + 1L);
  5137.                   goto L53695;}}
  5138.              L53440: {
  5139.               long v_559X;
  5140.               SvalS = RSvalS;
  5141.               SstackS = RSstackS;
  5142.               Scode_pointerS = RScode_pointerS;
  5143.               SenvS = RSenvS;
  5144.               v_559X = Qps_error_0(((long)"ran out of ports"));
  5145.               RSvalS = SvalS;
  5146.               RSstackS = SstackS;
  5147.               RScode_pointerS = Scode_pointerS;
  5148.               RSenvS = SenvS;
  5149.               SvalS = RSvalS;
  5150.               SstackS = RSstackS;
  5151.               Scode_pointerS = RScode_pointerS;
  5152.               SenvS = RSenvS;
  5153.               return(v_559X);}}}}}}}
  5154.           else {
  5155.             arg0 = 0L;
  5156.             goto L53497;}}
  5157.         else {
  5158.           arg0 = 0L;
  5159.           goto L53497;}}
  5160.       else {
  5161.         arg0 = 0L;
  5162.         goto L53497;}
  5163.      L53497: {
  5164.       arg0 = 70L;
  5165.       arg1 = 0L;
  5166.       arg2 = arg2_541X;
  5167.       arg3 = RSvalS;
  5168.       goto L38648;}}}
  5169.       break;
  5170.     case 129 : {
  5171.       long obj_560X;
  5172.       obj_560X = RSvalS;
  5173.       if ((obj_560X & 3L) == 3L) {
  5174.         if ((((*((long *) ((obj_560X - 3L) + -4L))) >> 2L) & 31L) == 5L) {
  5175.           long v_561X;
  5176.           SvalS = RSvalS;
  5177.           SstackS = RSstackS;
  5178.           Scode_pointerS = RScode_pointerS;
  5179.           SenvS = RSenvS;
  5180.           v_561X = close_port(RSvalS);
  5181.           RSvalS = SvalS;
  5182.           RSstackS = SstackS;
  5183.           RScode_pointerS = Scode_pointerS;
  5184.           RSenvS = SenvS;
  5185.           RSvalS = 13L;
  5186.           goto L34459;}
  5187.         else {
  5188.           arg0 = 0L;
  5189.           goto L44502;}}
  5190.       else {
  5191.         arg0 = 0L;
  5192.         goto L44502;}
  5193.      L44502: {
  5194.       arg0 = 52L;
  5195.       arg1 = 0L;
  5196.       arg2 = RSvalS;
  5197.       goto L38616;}}
  5198.       break;
  5199.     case 130 : {
  5200.       long x_562X;
  5201.       x_562X = RSvalS;
  5202.       if ((x_562X & 3L) == 3L) {
  5203.         if ((((*((long *) ((x_562X - 3L) + -4L))) >> 2L) & 31L) == 5L) {
  5204.           if ((*((long *) (x_562X - 3L))) == 4L) {
  5205.             arg0 = 5L;
  5206.             goto L44147;}
  5207.           else {
  5208.             arg0 = 1L;
  5209.             goto L44147;}}
  5210.         else {
  5211.           arg0 = 1L;
  5212.           goto L44147;}}
  5213.       else {
  5214.         arg0 = 1L;
  5215.         goto L44147;}
  5216.      L44147: {
  5217.       long val_563X = arg0;
  5218.       RSvalS = val_563X;
  5219.       goto L34459;}}
  5220.       break;
  5221.     case 131 : {
  5222.       long x_564X;
  5223.       x_564X = RSvalS;
  5224.       if ((x_564X & 3L) == 3L) {
  5225.         if ((((*((long *) ((x_564X - 3L) + -4L))) >> 2L) & 31L) == 5L) {
  5226.           if ((*((long *) (x_564X - 3L))) == 8L) {
  5227.             arg0 = 5L;
  5228.             goto L44336;}
  5229.           else {
  5230.             arg0 = 1L;
  5231.             goto L44336;}}
  5232.         else {
  5233.           arg0 = 1L;
  5234.           goto L44336;}}
  5235.       else {
  5236.         arg0 = 1L;
  5237.         goto L44336;}
  5238.      L44336: {
  5239.       long val_565X = arg0;
  5240.       RSvalS = val_565X;
  5241.       goto L34459;}}
  5242.       break;
  5243.     case 132 : {
  5244.       long obj_566X;
  5245.       obj_566X = RSvalS;
  5246.       if ((obj_566X & 3L) == 3L) {
  5247.         if ((((*((long *) ((obj_566X - 3L) + -4L))) >> 2L) & 31L) == 5L) {
  5248.           if ((*((long *) (obj_566X - 3L))) == 4L) {
  5249.             long x_567X;
  5250.             x_567X = RSvalS;
  5251.             if ((*((long *) ((x_567X - 3L) + 4L))) >= 0L) {
  5252.               long c_568X;
  5253.               c_568X = *((long *) ((x_567X - 3L) + 8L));
  5254.               if ((c_568X & 255L) == 1L) {
  5255.                 long index_569X;
  5256.                 index_569X = (*((long *) ((x_567X - 3L) + 4L))) >> 2L;
  5257.                 if (index_569X >= 0L) {
  5258.                   arg0 = (*((long *) (Sopen_portsS + (index_569X * 4L))));
  5259.                   goto L44698;}
  5260.                 else {
  5261.                   arg0 = 0L;
  5262.                   goto L44698;}
  5263.                L44698: {
  5264.                 long x_570X = arg0;
  5265.                 long ch_571X;
  5266.                 ch_571X = getc((FILE *)x_570X);
  5267.                 if (EOF == ch_571X) {
  5268.                   long v_572X;
  5269.                   clearerr((FILE *)x_570X);
  5270.                   arg0 = 21L;
  5271.                   goto L44719;}
  5272.                 else {
  5273.                   arg0 = ((((ch_571X << 8L) + 8L)) + 1L);
  5274.                   goto L44719;}}}
  5275.               else {
  5276.                 *((long *) ((x_567X - 3L) + 8L)) = 1L;
  5277.                 arg0 = c_568X;
  5278.                 goto L44719;}
  5279.              L44719: {
  5280.               long val_573X = arg0;
  5281.               RSvalS = val_573X;
  5282.               goto L34459;}}
  5283.             else {
  5284.               arg0 = 51L;
  5285.               arg1 = 0L;
  5286.               arg2 = x_567X;
  5287.               goto L38616;}}
  5288.           else {
  5289.             arg0 = 0L;
  5290.             goto L44747;}}
  5291.         else {
  5292.           arg0 = 0L;
  5293.           goto L44747;}}
  5294.       else {
  5295.         arg0 = 0L;
  5296.         goto L44747;}
  5297.      L44747: {
  5298.       arg0 = 50L;
  5299.       arg1 = 0L;
  5300.       arg2 = RSvalS;
  5301.       goto L38616;}}
  5302.       break;
  5303.     case 133 : {
  5304.       long obj_574X;
  5305.       obj_574X = RSvalS;
  5306.       if ((obj_574X & 3L) == 3L) {
  5307.         if ((((*((long *) ((obj_574X - 3L) + -4L))) >> 2L) & 31L) == 5L) {
  5308.           if ((*((long *) (obj_574X - 3L))) == 4L) {
  5309.             long x_575X;
  5310.             x_575X = RSvalS;
  5311.             if ((*((long *) ((x_575X - 3L) + 4L))) >= 0L) {
  5312.               long c_576X;
  5313.               c_576X = *((long *) ((x_575X - 3L) + 8L));
  5314.               if ((c_576X & 255L) == 1L) {
  5315.                 long index_577X;
  5316.                 index_577X = (*((long *) ((x_575X - 3L) + 4L))) >> 2L;
  5317.                 if (index_577X >= 0L) {
  5318.                   arg0 = (*((long *) (Sopen_portsS + (index_577X * 4L))));
  5319.                   goto L45087;}
  5320.                 else {
  5321.                   arg0 = 0L;
  5322.                   goto L45087;}
  5323.                L45087: {
  5324.                 long x_578X = arg0;
  5325.                 long ch_579X;
  5326.                 ch_579X = getc((FILE *)x_578X);
  5327.                 if (EOF == ch_579X) {
  5328.                   long v_580X;
  5329.                   clearerr((FILE *)x_578X);
  5330.                   arg0 = 21L;
  5331.                   goto L45089;}
  5332.                 else {
  5333.                   arg0 = ((((ch_579X << 8L) + 8L)) + 1L);
  5334.                   goto L45089;}
  5335.                L45089: {
  5336.                 long c_581X = arg0;
  5337.                 *((long *) ((x_575X - 3L) + 8L)) = c_581X;
  5338.                 arg0 = c_581X;
  5339.                 goto L45104;}}}
  5340.               else {
  5341.                 arg0 = c_576X;
  5342.                 goto L45104;}
  5343.              L45104: {
  5344.               long val_582X = arg0;
  5345.               RSvalS = val_582X;
  5346.               goto L34459;}}
  5347.             else {
  5348.               arg0 = 49L;
  5349.               arg1 = 0L;
  5350.               arg2 = x_575X;
  5351.               goto L38616;}}
  5352.           else {
  5353.             arg0 = 0L;
  5354.             goto L45132;}}
  5355.         else {
  5356.           arg0 = 0L;
  5357.           goto L45132;}}
  5358.       else {
  5359.         arg0 = 0L;
  5360.         goto L45132;}
  5361.      L45132: {
  5362.       arg0 = 48L;
  5363.       arg1 = 0L;
  5364.       arg2 = RSvalS;
  5365.       goto L38616;}}
  5366.       break;
  5367.     case 134 : {
  5368.       long arg2_583X;
  5369.       RSstackS = (RSstackS - -4L);
  5370.       arg2_583X = *((long *) RSstackS);
  5371.       if ((arg2_583X & 255L) == 9L) {
  5372.         long obj_584X;
  5373.         obj_584X = RSvalS;
  5374.         if ((obj_584X & 3L) == 3L) {
  5375.           if ((((*((long *) ((obj_584X - 3L) + -4L))) >> 2L) & 31L) == 5L) {
  5376.             if ((*((long *) (obj_584X - 3L))) == 8L) {
  5377.               long x_585X, x_586X;
  5378.               x_585X = RSvalS;
  5379.               x_586X = (arg2_583X) >> 8L;
  5380.               if ((*((long *) ((x_585X - 3L) + 4L))) >= 0L) {
  5381.                 long index_587X;
  5382.                 index_587X = (*((long *) ((x_585X - 3L) + 4L))) >> 2L;
  5383.                 if (index_587X >= 0L) {
  5384.                   arg0 = (*((long *) (Sopen_portsS + (index_587X * 4L))));
  5385.                   goto L54127;}
  5386.                 else {
  5387.                   arg0 = 0L;
  5388.                   goto L54127;}
  5389.                L54127: {
  5390.                 long y_588X = arg0;
  5391.                 long v_589X;
  5392.                 putc(x_586X, (FILE *)y_588X);
  5393.                 RSvalS = 13L;
  5394.                 goto L34459;}}
  5395.               else {
  5396.                 arg0 = 69L;
  5397.                 arg1 = 0L;
  5398.                 arg2 = x_586X;
  5399.                 arg3 = x_585X;
  5400.                 goto L38648;}}
  5401.             else {
  5402.               arg0 = 0L;
  5403.               goto L54165;}}
  5404.           else {
  5405.             arg0 = 0L;
  5406.             goto L54165;}}
  5407.         else {
  5408.           arg0 = 0L;
  5409.           goto L54165;}}
  5410.       else {
  5411.         arg0 = 0L;
  5412.         goto L54165;}
  5413.      L54165: {
  5414.       arg0 = 68L;
  5415.       arg1 = 0L;
  5416.       arg2 = arg2_583X;
  5417.       arg3 = RSvalS;
  5418.       goto L38648;}}
  5419.       break;
  5420.     case 135 : {
  5421.       long arg2_590X;
  5422.       RSstackS = (RSstackS - -4L);
  5423.       arg2_590X = *((long *) RSstackS);
  5424.       if ((arg2_590X & 3L) == 3L) {
  5425.         if ((((*((long *) ((arg2_590X - 3L) + -4L))) >> 2L) & 31L) == 10L) {
  5426.           long obj_591X;
  5427.           obj_591X = RSvalS;
  5428.           if ((obj_591X & 3L) == 3L) {
  5429.             if ((((*((long *) ((obj_591X - 3L) + -4L))) >> 2L) & 31L) == 5L) {
  5430.               if ((*((long *) (obj_591X - 3L))) == 8L) {
  5431.                 long x_592X;
  5432.                 x_592X = RSvalS;
  5433.                 if ((*((long *) ((x_592X - 3L) + 4L))) >= 0L) {
  5434.                   long index_593X;
  5435.                   index_593X = (*((long *) ((x_592X - 3L) + 4L))) >> 2L;
  5436.                   if (index_593X >= 0L) {
  5437.                     arg0 = (*((long *) (Sopen_portsS + (index_593X * 4L))));
  5438.                     goto L54522;}
  5439.                   else {
  5440.                     arg0 = 0L;
  5441.                     goto L54522;}
  5442.                  L54522: {
  5443.                   long port_594X = arg0;
  5444.                   long count_595X, sent_596X;
  5445.                   count_595X = ((*((long *) ((arg2_590X - 3L) + -4L))) >> 7L);
  5446.                   sent_596X = fwrite((arg2_590X - 3L), sizeof(char),count_595X, (FILE *)port_594X);
  5447.                   if (sent_596X == count_595X) {
  5448.                     arg0 = 0L;
  5449.                     goto L54524;}
  5450.                   else {
  5451.                     long v_597X;
  5452.                     SvalS = RSvalS;
  5453.                     SstackS = RSstackS;
  5454.                     Scode_pointerS = RScode_pointerS;
  5455.                     SenvS = RSenvS;
  5456.                     v_597X = Qps_error_0(((long)"block write did not send enough bytes"));
  5457.                     RSvalS = SvalS;
  5458.                     RSstackS = SstackS;
  5459.                     RScode_pointerS = Scode_pointerS;
  5460.                     RSenvS = SenvS;
  5461.                     arg0 = 0L;
  5462.                     goto L54524;}
  5463.                  L54524: {
  5464.                   RSvalS = 13L;
  5465.                   goto L34459;}}}
  5466.                 else {
  5467.                   arg0 = 67L;
  5468.                   arg1 = 0L;
  5469.                   arg2 = arg2_590X;
  5470.                   arg3 = x_592X;
  5471.                   goto L38648;}}
  5472.               else {
  5473.                 arg0 = 0L;
  5474.                 goto L54560;}}
  5475.             else {
  5476.               arg0 = 0L;
  5477.               goto L54560;}}
  5478.           else {
  5479.             arg0 = 0L;
  5480.             goto L54560;}}
  5481.         else {
  5482.           arg0 = 0L;
  5483.           goto L54560;}}
  5484.       else {
  5485.         arg0 = 0L;
  5486.         goto L54560;}
  5487.      L54560: {
  5488.       arg0 = 66L;
  5489.       arg1 = 0L;
  5490.       arg2 = arg2_590X;
  5491.       arg3 = RSvalS;
  5492.       goto L38648;}}
  5493.       break;
  5494.     case 136 : {
  5495.       long obj_598X;
  5496.       obj_598X = RSvalS;
  5497.       if ((obj_598X & 3L) == 3L) {
  5498.         if ((((*((long *) ((obj_598X - 3L) + -4L))) >> 2L) & 31L) == 5L) {
  5499.           if ((*((long *) (obj_598X - 3L))) == 8L) {
  5500.             long x_599X;
  5501.             x_599X = RSvalS;
  5502.             if ((*((long *) ((x_599X - 3L) + 4L))) >= 0L) {
  5503.               long index_600X;
  5504.               index_600X = (*((long *) ((x_599X - 3L) + 4L))) >> 2L;
  5505.               if (index_600X >= 0L) {
  5506.                 arg0 = (*((long *) (Sopen_portsS + (index_600X * 4L))));
  5507.                 goto L45435;}
  5508.               else {
  5509.                 arg0 = 0L;
  5510.                 goto L45435;}
  5511.              L45435: {
  5512.               long x_601X = arg0;
  5513.               long v_602X;
  5514.               fflush((FILE *)x_601X);
  5515.               RSvalS = 13L;
  5516.               goto L34459;}}
  5517.             else {
  5518.               arg0 = 47L;
  5519.               arg1 = 0L;
  5520.               arg2 = x_599X;
  5521.               goto L38616;}}
  5522.           else {
  5523.             arg0 = 0L;
  5524.             goto L45465;}}
  5525.         else {
  5526.           arg0 = 0L;
  5527.           goto L45465;}}
  5528.       else {
  5529.         arg0 = 0L;
  5530.         goto L45465;}
  5531.      L45465: {
  5532.       arg0 = 46L;
  5533.       arg1 = 0L;
  5534.       arg2 = RSvalS;
  5535.       goto L38616;}}
  5536.       break;
  5537.     case 137 : {
  5538.       RSvalS = 529L;
  5539.       goto L34459;}
  5540.       break;
  5541.     case 138 : {
  5542.       RSvalS = 13L;
  5543.       goto L34459;}
  5544.       break;
  5545.     case 139 : {
  5546.       Sexit_statusS = RSvalS;
  5547.       SvalS = RSvalS;
  5548.       SstackS = RSstackS;
  5549.       Scode_pointerS = RScode_pointerS;
  5550.       SenvS = RSenvS;
  5551.       return(0L);}
  5552.       break;
  5553.     case 140 : {
  5554.       arg0 = 45L;
  5555.       arg1 = 0L;
  5556.       arg2 = RSvalS;
  5557.       goto L38616;}
  5558.       break;
  5559.     case 141 : {
  5560.       RSvalS = 1L;
  5561.       goto L34459;}
  5562.       break;
  5563.     case 142 : {        /* write-image */
  5564.       long arg2_603X, arg3_604X;
  5565.       RSstackS = (RSstackS - -4L);
  5566.       arg2_603X = *((long *) RSstackS);
  5567.       RSstackS = (RSstackS - -4L);
  5568.       arg3_604X = *((long *) RSstackS);
  5569.       if ((arg3_604X & 3L) == 3L) {
  5570.         if ((((*((long *) ((arg3_604X - 3L) + -4L))) >> 2L) & 31L) == 10L) {
  5571.           long x_605X;
  5572.           x_605X = RSvalS;
  5573.           arg0 = 0L;
  5574.           arg1 = arg3_604X;
  5575.           goto L21896;
  5576.          L58298: {
  5577.           long spec_606X = arg0;
  5578.           long port_607X;
  5579.           port_607X = (long)ps_open((char *)spec_606X, (char *)((long)"w"));
  5580.           if (port_607X != 0) {
  5581.             long v_608X;
  5582.             SvalS = RSvalS;
  5583.             SstackS = RSstackS;
  5584.             Scode_pointerS = RScode_pointerS;
  5585.             SenvS = RSenvS;
  5586.             v_608X = clear_registers();
  5587.             RSvalS = SvalS;
  5588.             RSstackS = SstackS;
  5589.             RScode_pointerS = Scode_pointerS;
  5590.             RSenvS = SenvS;
  5591.             RSvalS = arg2_603X;
  5592.             SlimitS = Snewspace_endS;
  5593.             arg0 = 6L;
  5594.             goto L29273;
  5595.            L58382: {
  5596.             long v_609X;
  5597.             SvalS = RSvalS;
  5598.             SstackS = RSstackS;
  5599.             Scode_pointerS = RScode_pointerS;
  5600.             SenvS = RSenvS;
  5601.             v_609X = collect();
  5602.             RSvalS = SvalS;
  5603.             RSstackS = SstackS;
  5604.             RScode_pointerS = Scode_pointerS;
  5605.             RSenvS = SenvS;
  5606.             arg0 = 6L;
  5607.             goto L24906;
  5608.            L58390: {
  5609.             long restart_proc_610X;
  5610.             restart_proc_610X = RSvalS;
  5611.             arg0 = 2L;
  5612.             goto L29190;
  5613.            L29190: {
  5614.             long i_611X = arg0;
  5615.             if (i_611X == 100L) {
  5616.               long v_612X, v_613X;
  5617.               SvalS = RSvalS;
  5618.               SstackS = RSstackS;
  5619.               Scode_pointerS = RScode_pointerS;
  5620.               SenvS = RSenvS;
  5621.               v_612X = write_string(((long)"This is a Scheme48 heap image file."), port_607X);
  5622.               RSvalS = SvalS;
  5623.               RSstackS = SstackS;
  5624.               RScode_pointerS = Scode_pointerS;
  5625.               RSenvS = SenvS;
  5626.               putc(10L, (FILE *)port_607X);
  5627.               if (port_607X == Scurrent_output_portS) {
  5628.                 long v_614X;
  5629.                 fflush((FILE *)port_607X);
  5630.                 arg0 = v_614X;
  5631.                 goto L28726;}
  5632.               else {
  5633.                 arg0 = 9999999L;
  5634.                 goto L28726;}
  5635.              L28726: {
  5636.               long v_615X, v_616X;
  5637.               putc(12L, (FILE *)port_607X);
  5638.               putc(10L, (FILE *)port_607X);
  5639.               if (port_607X == Scurrent_output_portS) {
  5640.                 long v_617X;
  5641.                 fflush((FILE *)port_607X);
  5642.                 arg0 = v_617X;
  5643.                 goto L28718;}
  5644.               else {
  5645.                 arg0 = 9999999L;
  5646.                 goto L28718;}
  5647.              L28718: {
  5648.               arg0 = 12L;
  5649.               arg1 = 1L;
  5650.               goto L29129;
  5651.              L29129: {
  5652.               long x_618X = arg0;
  5653.               long mask_619X = arg1;
  5654.               if (x_618X < 10L) {
  5655.                 arg0 = 12L;
  5656.                 arg1 = mask_619X;
  5657.                 goto L29105;}
  5658.               else {
  5659.                 arg0 = (x_618X / 10L);
  5660.                 arg1 = (mask_619X * 10L);
  5661.                 goto L29129;}}
  5662.              L29105: {
  5663.               long x_620X = arg0;
  5664.               long mask_621X = arg1;
  5665.               long v_622X;
  5666.               putc(((x_620X / mask_621X) + 48L), (FILE *)port_607X);
  5667.               if (mask_621X > 1L) {
  5668.                 arg0 = (x_620X % mask_621X);
  5669.                 arg1 = (mask_621X / 10L);
  5670.                 goto L29105;}
  5671.               else {
  5672.                 long v_623X;
  5673.                 putc(10L, (FILE *)port_607X);
  5674.                 arg0 = 8L;
  5675.                 arg1 = 1L;
  5676.                 goto L29073;
  5677.                L29073: {
  5678.                 long x_624X = arg0;
  5679.                 long mask_625X = arg1;
  5680.                 if (x_624X < 10L) {
  5681.                   arg0 = 8L;
  5682.                   arg1 = mask_625X;
  5683.                   goto L29049;}
  5684.                 else {
  5685.                   arg0 = (x_624X / 10L);
  5686.                   arg1 = (mask_625X * 10L);
  5687.                   goto L29073;}}
  5688.                L29049: {
  5689.                 long x_626X = arg0;
  5690.                 long mask_627X = arg1;
  5691.                 long v_628X;
  5692.                 putc(((x_626X / mask_627X) + 48L), (FILE *)port_607X);
  5693.                 if (mask_627X > 1L) {
  5694.                   arg0 = (x_626X % mask_627X);
  5695.                   arg1 = (mask_627X / 10L);
  5696.                   goto L29049;}
  5697.                 else {
  5698.                   long v_629X;
  5699.                   putc(10L, (FILE *)port_607X);
  5700.                   arg0 = 4L;
  5701.                   arg1 = 1L;
  5702.                   goto L29017;
  5703.                  L29017: {
  5704.                   long x_630X = arg0;
  5705.                   long mask_631X = arg1;
  5706.                   if (x_630X < 10L) {
  5707.                     arg0 = 4L;
  5708.                     arg1 = mask_631X;
  5709.                     goto L28993;}
  5710.                   else {
  5711.                     arg0 = (x_630X / 10L);
  5712.                     arg1 = (mask_631X * 10L);
  5713.                     goto L29017;}}
  5714.                  L28993: {
  5715.                   long x_632X = arg0;
  5716.                   long mask_633X = arg1;
  5717.                   long v_634X;
  5718.                   putc(((x_632X / mask_633X) + 48L), (FILE *)port_607X);
  5719.                   if (mask_633X > 1L) {
  5720.                     arg0 = (x_632X % mask_633X);
  5721.                     arg1 = (mask_633X / 10L);
  5722.                     goto L28993;}
  5723.                   else {
  5724.                     long v_635X, x_636X;
  5725.                     putc(10L, (FILE *)port_607X);
  5726.                     x_636X = Snewspace_beginS >> 2L;
  5727.                     if (x_636X < 0L) {
  5728.                       long v_637X;
  5729.                       putc(45L, (FILE *)port_607X);
  5730.                       arg0 = (0L - x_636X);
  5731.                       goto L28925;}
  5732.                     else {
  5733.                       arg0 = x_636X;
  5734.                       goto L28925;}
  5735.                    L28925: {
  5736.                     long x_638X = arg0;
  5737.                     arg0 = x_638X;
  5738.                     arg1 = 1L;
  5739.                     goto L28954;
  5740.                    L28954: {
  5741.                     long x_639X = arg0;
  5742.                     long mask_640X = arg1;
  5743.                     if (x_639X < 10L) {
  5744.                       arg0 = x_638X;
  5745.                       arg1 = mask_640X;
  5746.                       goto L28930;}
  5747.                     else {
  5748.                       arg0 = (x_639X / 10L);
  5749.                       arg1 = (mask_640X * 10L);
  5750.                       goto L28954;}}
  5751.                    L28930: {
  5752.                     long x_641X = arg0;
  5753.                     long mask_642X = arg1;
  5754.                     long v_643X;
  5755.                     putc(((x_641X / mask_642X) + 48L), (FILE *)port_607X);
  5756.                     if (mask_642X > 1L) {
  5757.                       arg0 = (x_641X % mask_642X);
  5758.                       arg1 = (mask_642X / 10L);
  5759.                       goto L28930;}
  5760.                     else {
  5761.                       long v_644X, x_645X;
  5762.                       putc(10L, (FILE *)port_607X);
  5763.                       x_645X = ShpS >> 2L;
  5764.                       if (x_645X < 0L) {
  5765.                         long v_646X;
  5766.                         putc(45L, (FILE *)port_607X);
  5767.                         arg0 = (0L - x_645X);
  5768.                         goto L28862;}
  5769.                       else {
  5770.                         arg0 = x_645X;
  5771.                         goto L28862;}
  5772.                      L28862: {
  5773.                       long x_647X = arg0;
  5774.                       arg0 = x_647X;
  5775.                       arg1 = 1L;
  5776.                       goto L28891;
  5777.                      L28891: {
  5778.                       long x_648X = arg0;
  5779.                       long mask_649X = arg1;
  5780.                       if (x_648X < 10L) {
  5781.                         arg0 = x_647X;
  5782.                         arg1 = mask_649X;
  5783.                         goto L28867;}
  5784.                       else {
  5785.                         arg0 = (x_648X / 10L);
  5786.                         arg1 = (mask_649X * 10L);
  5787.                         goto L28891;}}
  5788.                      L28867: {
  5789.                       long x_650X = arg0;
  5790.                       long mask_651X = arg1;
  5791.                       long v_652X;
  5792.                       putc(((x_650X / mask_651X) + 48L), (FILE *)port_607X);
  5793.                       if (mask_651X > 1L) {
  5794.                         arg0 = (x_650X % mask_651X);
  5795.                         arg1 = (mask_651X / 10L);
  5796.                         goto L28867;}
  5797.                       else {
  5798.                         long v_653X;
  5799.                         putc(10L, (FILE *)port_607X);
  5800.                         if (restart_proc_610X < 0L) {
  5801.                           long v_654X;
  5802.                           putc(45L, (FILE *)port_607X);
  5803.                           arg0 = (0L - restart_proc_610X);
  5804.                           goto L28806;}
  5805.                         else {
  5806.                           arg0 = restart_proc_610X;
  5807.                           goto L28806;}
  5808.                        L28806: {
  5809.                         long x_655X = arg0;
  5810.                         arg0 = x_655X;
  5811.                         arg1 = 1L;
  5812.                         goto L28835;
  5813.                        L28835: {
  5814.                         long x_656X = arg0;
  5815.                         long mask_657X = arg1;
  5816.                         if (x_656X < 10L) {
  5817.                           arg0 = x_655X;
  5818.                           arg1 = mask_657X;
  5819.                           goto L28811;}
  5820.                         else {
  5821.                           arg0 = (x_656X / 10L);
  5822.                           arg1 = (mask_657X * 10L);
  5823.                           goto L28835;}}
  5824.                        L28811: {
  5825.                         long x_658X = arg0;
  5826.                         long mask_659X = arg1;
  5827.                         long v_660X;
  5828.                         putc(((x_658X / mask_659X) + 48L), (FILE *)port_607X);
  5829.                         if (mask_659X > 1L) {
  5830.                           arg0 = (x_658X % mask_659X);
  5831.                           arg1 = (mask_659X / 10L);
  5832.                           goto L28811;}
  5833.                         else {
  5834.                           long v_661X, v_662X, count_663X, sent_664X;
  5835.                           putc(10L, (FILE *)port_607X);
  5836.                           putc(12L, (FILE *)port_607X);
  5837.                           *((long *) ShpS) = 1L;
  5838.                           count_663X = (ShpS + 4L) - Snewspace_beginS;
  5839.                           sent_664X = fwrite(Snewspace_beginS, sizeof(char),count_663X, (FILE *)port_607X);
  5840.                           if (sent_664X == count_663X) {
  5841.                             arg0 = 0L;
  5842.                             goto L58274;}
  5843.                           else {
  5844.                             long v_665X;
  5845.                             SvalS = RSvalS;
  5846.                             SstackS = RSstackS;
  5847.                             Scode_pointerS = RScode_pointerS;
  5848.                             SenvS = RSenvS;
  5849.                             v_665X = Qps_error_0(((long)"block write did not send enough bytes"));
  5850.                             RSvalS = SvalS;
  5851.                             RSstackS = SstackS;
  5852.                             RScode_pointerS = Scode_pointerS;
  5853.                             RSenvS = SenvS;
  5854.                             arg0 = 0L;
  5855.                             goto L58274;}}}}}}}}}}}}}}}}}}}
  5856.             else {
  5857.               long port_666X;
  5858.               port_666X = *((long *) (Sopen_vm_portsS + (i_611X * 4L)));
  5859.               if ((port_666X & 255L) == 1L) {
  5860.                 arg0 = 9999999L;
  5861.                 goto L29201;}
  5862.               else {
  5863.                 long v_667X;
  5864.                 SvalS = RSvalS;
  5865.                 SstackS = RSstackS;
  5866.                 Scode_pointerS = RScode_pointerS;
  5867.                 SenvS = RSenvS;
  5868.                 v_667X = close_port_noisily(port_666X);
  5869.                 RSvalS = SvalS;
  5870.                 RSstackS = SstackS;
  5871.                 RScode_pointerS = Scode_pointerS;
  5872.                 RSenvS = SenvS;
  5873.                 *((long *) (Sopen_vm_portsS + (i_611X * 4L))) = 1L;
  5874.                 arg0 = 999999L;
  5875.                 goto L29201;}
  5876.              L29201: {
  5877.               arg0 = (i_611X + 1L);
  5878.               goto L29190;}}}
  5879.            L58274: {
  5880.             long v_668X, save_669X, start_670X, v_671X;
  5881.             fclose((FILE *)port_607X);
  5882.             save_669X = *((long *) (SrootS - 3L));
  5883.             start_670X = ShpS;
  5884.             *((long *) (SrootS - 3L)) = x_605X;
  5885.             SscanS = (SrootS - 3L);
  5886.             SvalS = RSvalS;
  5887.             SstackS = RSstackS;
  5888.             Scode_pointerS = RScode_pointerS;
  5889.             SenvS = RSenvS;
  5890.             v_671X = scan((SscanS + 4L));
  5891.             RSvalS = SvalS;
  5892.             RSstackS = SstackS;
  5893.             RScode_pointerS = Scode_pointerS;
  5894.             RSenvS = SenvS;
  5895.             SscanS = start_670X;
  5896.             goto L25694;
  5897.            L25694: {
  5898.             long v_672X;
  5899.             SvalS = RSvalS;
  5900.             SstackS = RSstackS;
  5901.             Scode_pointerS = RScode_pointerS;
  5902.             SenvS = RSenvS;
  5903.             v_672X = scan(ShpS);
  5904.             RSvalS = SvalS;
  5905.             RSstackS = SstackS;
  5906.             RScode_pointerS = Scode_pointerS;
  5907.             RSenvS = SenvS;
  5908.             if (ShpS >= SlimitS) {
  5909.               long v_673X;
  5910.               SvalS = RSvalS;
  5911.               SstackS = RSstackS;
  5912.               Scode_pointerS = RScode_pointerS;
  5913.               SenvS = RSenvS;
  5914.               v_673X = Qps_error_0(((long)"out of memory"));
  5915.               RSvalS = SvalS;
  5916.               RSstackS = SstackS;
  5917.               RScode_pointerS = Scode_pointerS;
  5918.               RSenvS = SenvS;
  5919.               arg0 = v_673X;
  5920.               goto L58264;}
  5921.             else {
  5922.               if (SscanS < ShpS) {
  5923.                 goto L25694;}
  5924.               else {
  5925.                 long value_674X;
  5926.                 value_674X = *((long *) (SrootS - 3L));
  5927.                 *((long *) (SrootS - 3L)) = save_669X;
  5928.                 arg0 = value_674X;
  5929.                 goto L58264;}}}
  5930.            L58264: {
  5931.             long continue_proc_675X = arg0;
  5932.             RSvalS = continue_proc_675X;
  5933.             SnargsS = 0L;
  5934.             goto START;}}}}}
  5935.           else {
  5936.             arg0 = 7L;
  5937.             arg1 = 0L;
  5938.             arg2 = arg3_604X;
  5939.             arg3 = arg2_603X;
  5940.             arg4 = x_605X;
  5941.             goto L38789;}}}
  5942.         else {
  5943.           arg0 = 0L;
  5944.           goto L58331;}}
  5945.       else {
  5946.         arg0 = 0L;
  5947.         goto L58331;}
  5948.      L58331: {
  5949.       arg0 = 6L;
  5950.       arg1 = 0L;
  5951.       arg2 = arg3_604X;
  5952.       arg3 = arg2_603X;
  5953.       arg4 = RSvalS;
  5954.       goto L38789;}}
  5955.       break;
  5956.     case 143 : {
  5957.       RSvalS = 13L;
  5958.       SlimitS = Snewspace_endS;
  5959.       arg0 = 16L;
  5960.       goto L29273;}
  5961.       break;
  5962.     case 144 : {
  5963.       long obj_676X;
  5964.       obj_676X = RSvalS;
  5965.       if ((obj_676X & 3L) == 3L) {
  5966.         if ((((*((long *) ((obj_676X - 3L) + -4L))) >> 2L) & 31L) == 2L) {
  5967.           long x_677X, start_hp_678X;
  5968.           x_677X = RSvalS;
  5969.           start_hp_678X = ShpS;
  5970.           SscanS = Snewspace_beginS;
  5971.           goto L29555;
  5972.          L29555: {
  5973.           if (SscanS < start_hp_678X) {
  5974.             long x_679X;
  5975.             x_679X = *((long *) SscanS);
  5976.             SscanS = (SscanS + 4L);
  5977.             if ((x_679X & 3L) == 2L) {
  5978.               if (((x_679X >> 2L) & 31L) >= 10L) {
  5979.                 SscanS = (SscanS + (((((x_679X >> 7L)) + 3L) & ~3)));
  5980.                 goto L29555;}
  5981.               else {
  5982.                 arg0 = 0L;
  5983.                 goto L29597;}}
  5984.             else {
  5985.               arg0 = 0L;
  5986.               goto L29597;}
  5987.            L29597: {
  5988.             if ((x_679X & 3L) == 3L) {
  5989.               if ((((*((long *) ((x_679X - 3L) + -4L))) >> 2L) & 31L) == 1L) {
  5990.                 if ((ShpS + 12L) < SlimitS) {
  5991.                   long y_680X, s_681X, n_682X;
  5992.                   y_680X = (((((*((long *) ((x_677X - 3L) + -4L))) >> 7L)) + 3L) >> 2L) - 1L;
  5993.                   s_681X = *((long *) (x_679X - 3L));
  5994.                   n_682X = ((*((long *) ((s_681X - 3L) + -4L))) >> 7L);
  5995.                   arg0 = 0L;
  5996.                   arg1 = 0L;
  5997.                   goto L26248;
  5998.                  L26248: {
  5999.                   long i_683X = arg0;
  6000.                   long h_684X = arg1;
  6001.                   if (i_683X >= n_682X) {
  6002.                     long index_685X, bucket_686X;
  6003.                     index_685X = h_684X & y_680X;
  6004.                     bucket_686X = *((long *) ((x_677X - 3L) + (index_685X << 2L)));
  6005.                     arg0 = bucket_686X;
  6006.                     goto L26322;
  6007.                    L26322: {
  6008.                     long b_687X = arg0;
  6009.                     if (b_687X == 25L) {
  6010.                       long new_688X;
  6011.                       *((long *) ShpS) = 1026L;
  6012.                       ShpS = (ShpS + 4L);
  6013.                       new_688X = ShpS + 3L;
  6014.                       ShpS = (ShpS + 8L);
  6015.                       *((long *) (ShpS + -4L)) = 0L;
  6016.                       *((long *) (new_688X - 3L)) = x_679X;
  6017.                       *((long *) ((new_688X - 3L) + 4L)) = bucket_686X;
  6018.                       *((long *) ((x_677X - 3L) + (index_685X << 2L))) = new_688X;
  6019.                       arg0 = x_679X;
  6020.                       goto L29633;}
  6021.                     else {
  6022.                       if (x_679X == (*((long *) (b_687X - 3L)))) {
  6023.                         arg0 = (*((long *) (b_687X - 3L)));
  6024.                         goto L29633;}
  6025.                       else {
  6026.                         arg0 = (*((long *) ((b_687X - 3L) + 4L)));
  6027.                         goto L26322;}}}}
  6028.                   else {
  6029.                     arg0 = (i_683X + 1L);
  6030.                     arg1 = (h_684X + ((*((unsigned char *) ((s_681X - 3L) + i_683X)))));
  6031.                     goto L26248;}}
  6032.                  L29633: {
  6033.                   goto L29555;}}
  6034.                 else {
  6035.                   arg0 = 0L;
  6036.                   goto L29743;
  6037.                  L29743: {
  6038.                   long i_689X = arg0;
  6039.                   if (i_689X == (((((*((long *) ((x_677X - 3L) + -4L))) >> 7L)) + 3L) >> 2L)) {
  6040.                     arg0 = 4L;
  6041.                     arg1 = 0L;
  6042.                     goto L30695;}
  6043.                   else {
  6044.                     *((long *) ((x_677X - 3L) + (i_689X << 2L))) = 25L;
  6045.                     arg0 = (i_689X + 1L);
  6046.                     goto L29743;}}}}
  6047.               else {
  6048.                 arg0 = 0L;
  6049.                 goto L29803;}}
  6050.             else {
  6051.               arg0 = 0L;
  6052.               goto L29803;}
  6053.            L29803: {
  6054.             goto L29555;}}}
  6055.           else {
  6056.             RSvalS = 13L;
  6057.             goto L34459;}}}
  6058.         else {
  6059.           arg0 = 0L;
  6060.           goto L45853;}}
  6061.       else {
  6062.         arg0 = 0L;
  6063.         goto L45853;}
  6064.      L45853: {
  6065.       arg0 = 44L;
  6066.       arg1 = 0L;
  6067.       arg2 = RSvalS;
  6068.       goto L38616;}}
  6069.       break;
  6070.     case 145 : {
  6071.       RSvalS = Sdynamic_stateS;
  6072.       goto L34459;}
  6073.       break;
  6074.     case 146 : {
  6075.       Sdynamic_stateS = RSvalS;
  6076.       RSvalS = 13L;
  6077.       goto L34459;}
  6078.       break;
  6079.     case 147 : {
  6080.       long obj_690X;
  6081.       obj_690X = RSvalS;
  6082.       if ((obj_690X & 3L) == 3L) {
  6083.         if ((((*((long *) ((obj_690X - 3L) + -4L))) >> 2L) & 31L) == 3L) {
  6084.           Sexception_handlerS = RSvalS;
  6085.           goto L34459;}
  6086.         else {
  6087.           arg0 = 0L;
  6088.           goto L39834;}}
  6089.       else {
  6090.         arg0 = 0L;
  6091.         goto L39834;}
  6092.      L39834: {
  6093.       arg0 = 70L;
  6094.       arg1 = 0L;
  6095.       arg2 = RSvalS;
  6096.       goto L38616;}}
  6097.       break;
  6098.     case 148 : {
  6099.       long obj_691X;
  6100.       obj_691X = RSvalS;
  6101.       if ((obj_691X & 3L) == 3L) {
  6102.         if ((((*((long *) ((obj_691X - 3L) + -4L))) >> 2L) & 31L) == 2L) {
  6103.           if ((((((*((long *) ((RSvalS - 3L) + -4L))) >> 7L)) + 3L) >> 2L) < 2L) {
  6104.             arg0 = 255L;
  6105.             goto L39929;}
  6106.           else {
  6107.             Sinterrupt_handlersS = RSvalS;
  6108.             goto L34459;}}
  6109.         else {
  6110.           arg0 = 255L;
  6111.           goto L39929;}}
  6112.       else {
  6113.         arg0 = 255L;
  6114.         goto L39929;}
  6115.      L39929: {
  6116.       arg0 = 69L;
  6117.       arg1 = 0L;
  6118.       arg2 = RSvalS;
  6119.       goto L38616;}}
  6120.       break;
  6121.     case 149 : {
  6122.       long temp_692X;
  6123.       temp_692X = Senabled_interruptsS;
  6124.       Senabled_interruptsS = (RSvalS >> 2L);
  6125.       RSvalS = (temp_692X << 2L);
  6126.       goto L34459;}
  6127.       break;
  6128.     case 150 : {
  6129.       RSstackS = (RSstackS - -4L);
  6130.       Senabled_interruptsS = ((*((long *) RSstackS)) >> 2L);
  6131.       RSstackS = (RSstackS - -4L);
  6132.       SnargsS = ((*((long *) RSstackS)) >> 2L);
  6133.       RSstackS = (RSstackS - -4L);
  6134.       RSvalS = (*((long *) RSstackS));
  6135.       goto START;}
  6136.       break;
  6137.     case 151 : {
  6138.       long arg2_693X;
  6139.       RSstackS = (RSstackS - -4L);
  6140.       arg2_693X = *((long *) RSstackS);
  6141.       if ((arg2_693X & 3L) == 0L) {
  6142.         long x_694X, key_695X;
  6143.         x_694X = RSvalS;
  6144.         key_695X = arg2_693X >> 2L;
  6145.         if (key_695X < 0L) {
  6146.           arg0 = 255L;
  6147.           goto L54954;}
  6148.         else {
  6149.           if (key_695X >= 3L) {
  6150.             arg0 = 255L;
  6151.             goto L54954;}
  6152.           else {
  6153.             if (key_695X == 0L) {
  6154.               arg0 = (((SlimitS - ShpS) & ~3));
  6155.               goto L54999;}
  6156.             else {
  6157.               if (key_695X == 1L) {
  6158.                 long n_696X;
  6159.                 n_696X = ps_runtime();
  6160.                 arg0 = (n_696X << 2L);
  6161.                 goto L54999;}
  6162.               else {
  6163.                 arg0 = 8888888L;
  6164.                 goto L54999;}}
  6165.            L54999: {
  6166.             long val_697X = arg0;
  6167.             RSvalS = val_697X;
  6168.             goto L34459;}}}
  6169.        L54954: {
  6170.         arg0 = 36L;
  6171.         arg1 = 0L;
  6172.         arg2 = (key_695X << 2L);
  6173.         arg3 = x_694X;
  6174.         goto L38616;}}
  6175.       else {
  6176.         arg0 = 65L;
  6177.         arg1 = 0L;
  6178.         arg2 = arg2_693X;
  6179.         arg3 = RSvalS;
  6180.         goto L38648;}}
  6181.       break;
  6182.     case 152 : {
  6183.       long arg2_698X;
  6184.       RSstackS = (RSstackS - -4L);
  6185.       arg2_698X = *((long *) RSstackS);
  6186.       if ((arg2_698X & 3L) == 0L) {
  6187.         long x_699X, key_700X, return_value_701X;
  6188.         x_699X = RSvalS;
  6189.         key_700X = arg2_698X >> 2L;
  6190.         SvalS = RSvalS;
  6191.         SstackS = RSstackS;
  6192.         Scode_pointerS = RScode_pointerS;
  6193.         SenvS = RSenvS;
  6194.         return_value_701X = extended_vm(key_700X, x_699X);
  6195.         RSvalS = SvalS;
  6196.         RSstackS = SstackS;
  6197.         RScode_pointerS = Scode_pointerS;
  6198.         RSenvS = SenvS;
  6199.         if ((return_value_701X & 255L) == 17L) {
  6200.           arg0 = 64L;
  6201.           arg1 = 0L;
  6202.           arg2 = (key_700X << 2L);
  6203.           arg3 = x_699X;
  6204.           goto L38648;}
  6205.         else {
  6206.           RSvalS = return_value_701X;
  6207.           goto L34459;}}
  6208.       else {
  6209.         arg0 = 63L;
  6210.         arg1 = 0L;
  6211.         arg2 = arg2_698X;
  6212.         arg3 = RSvalS;
  6213.         goto L38648;}}
  6214.       break;
  6215.     case 153 : {
  6216.       long arg2_702X;
  6217.       RSstackS = (RSstackS - -4L);
  6218.       arg2_702X = *((long *) RSstackS);
  6219.       if ((arg2_702X & 3L) == 0L) {
  6220.         RSvalS = RSvalS;
  6221.         Sexit_statusS = (arg2_702X >> 2L);
  6222.         SvalS = RSvalS;
  6223.         SstackS = RSstackS;
  6224.         Scode_pointerS = RScode_pointerS;
  6225.         SenvS = RSenvS;
  6226.         return(0L);}
  6227.       else {
  6228.         arg0 = 62L;
  6229.         arg1 = 0L;
  6230.         arg2 = arg2_702X;
  6231.         arg3 = RSvalS;
  6232.         goto L38648;}}
  6233.       break;
  6234.     case 154 : {
  6235.       long arg2_703X;
  6236.       RSstackS = (RSstackS - -4L);
  6237.       arg2_703X = *((long *) RSstackS);
  6238.       if ((arg2_703X & 3L) == 3L) {
  6239.         if ((((*((long *) ((arg2_703X - 3L) + -4L))) >> 2L) & 31L) == 10L) {
  6240.           long obj_704X;
  6241.           obj_704X = RSvalS;
  6242.           if ((obj_704X & 3L) == 3L) {
  6243.             if ((((*((long *) ((obj_704X - 3L) + -4L))) >> 2L) & 31L) == 10L) {
  6244.               arg0 = 0L;
  6245.               arg1 = arg2_703X;
  6246.               arg2 = RSvalS;
  6247.               goto L15879;}
  6248.             else {
  6249.               arg0 = 0L;
  6250.               goto L56016;}}
  6251.           else {
  6252.             arg0 = 0L;
  6253.             goto L56016;}}
  6254.         else {
  6255.           arg0 = 0L;
  6256.           goto L56016;}}
  6257.       else {
  6258.         arg0 = 0L;
  6259.         goto L56016;}
  6260.      L56016: {
  6261.       arg0 = 61L;
  6262.       arg1 = 0L;
  6263.       arg2 = arg2_703X;
  6264.       arg3 = RSvalS;
  6265.       goto L38648;}}
  6266.       break;
  6267.     case 155 : {
  6268.       long obj_705X;
  6269.       obj_705X = RSvalS;
  6270.       if ((obj_705X & 3L) == 3L) {
  6271.         if ((((*((long *) ((obj_705X - 3L) + -4L))) >> 2L) & 31L) == 10L) {
  6272.           long x_706X, n_707X;
  6273.           x_706X = RSvalS;
  6274.           n_707X = ((*((long *) ((x_706X - 3L) + -4L))) >> 7L);
  6275.           arg0 = 0L;
  6276.           arg1 = 0L;
  6277.           goto L46238;
  6278.          L46238: {
  6279.           long i_708X = arg0;
  6280.           long h_709X = arg1;
  6281.           if (i_708X >= n_707X) {
  6282.             RSvalS = (h_709X << 2L);
  6283.             goto L34459;}
  6284.           else {
  6285.             arg0 = (i_708X + 1L);
  6286.             arg1 = (h_709X + ((*((unsigned char *) ((x_706X - 3L) + i_708X)))));
  6287.             goto L46238;}}}
  6288.         else {
  6289.           arg0 = 0L;
  6290.           goto L46190;}}
  6291.       else {
  6292.         arg0 = 0L;
  6293.         goto L46190;}
  6294.      L46190: {
  6295.       arg0 = 43L;
  6296.       arg1 = 0L;
  6297.       arg2 = RSvalS;
  6298.       goto L38616;}}
  6299.       break;
  6300.     case 156 : {
  6301.       long space_710X;
  6302.       space_710X = 1L + ((RSvalS + 3L) >> 2L);
  6303.       if ((ShpS + (space_710X << 2L)) < SlimitS) {
  6304.         arg0 = 9999999L;
  6305.         goto L56876;}
  6306.       else {
  6307.         SlimitS = Snewspace_endS;
  6308.         arg0 = 9L;
  6309.         goto L29273;
  6310.        L56910: {
  6311.         long v_711X;
  6312.         SvalS = RSvalS;
  6313.         SstackS = RSstackS;
  6314.         Scode_pointerS = RScode_pointerS;
  6315.         SenvS = RSenvS;
  6316.         v_711X = collect();
  6317.         RSvalS = SvalS;
  6318.         RSstackS = SstackS;
  6319.         RScode_pointerS = Scode_pointerS;
  6320.         RSenvS = SenvS;
  6321.         arg0 = 9L;
  6322.         goto L24906;
  6323.        L56918: {
  6324.         long v_712X = arg0;
  6325.         arg0 = v_712X;
  6326.         goto L56876;}}}
  6327.      L56876: {
  6328.       if ((ShpS + (space_710X << 2L)) < SlimitS) {
  6329.         arg0 = 0L;
  6330.         goto L56474;}
  6331.       else {
  6332.         long v_713X;
  6333.         SvalS = RSvalS;
  6334.         SstackS = RSstackS;
  6335.         Scode_pointerS = RScode_pointerS;
  6336.         SenvS = RSenvS;
  6337.         v_713X = Qps_error_0(((long)"Scheme48 heap overflow"));
  6338.         RSvalS = SvalS;
  6339.         RSstackS = SstackS;
  6340.         RScode_pointerS = Scode_pointerS;
  6341.         RSenvS = SenvS;
  6342.         arg0 = v_713X;
  6343.         goto L56474;}}
  6344.      L56474: {
  6345.       long arg2_714X;
  6346.       RSstackS = (RSstackS - -4L);
  6347.       arg2_714X = *((long *) RSstackS);
  6348.       if ((RSvalS & 3L) == 0L) {
  6349.         long arg2_715X;
  6350.         arg2_715X = RSvalS >> 2L;
  6351.         if ((arg2_714X & 3L) == 3L) {
  6352.           if ((((*((long *) ((arg2_714X - 3L) + -4L))) >> 2L) & 31L) == 0L) {
  6353.             arg0 = 255L;
  6354.             goto L56640;}
  6355.           else {
  6356.             arg0 = 0L;
  6357.             goto L56656;}}
  6358.         else {
  6359.           arg0 = 0L;
  6360.           goto L56656;}
  6361.        L56656: {
  6362.         if (arg2_714X == 25L) {
  6363.           arg0 = 255L;
  6364.           goto L56640;}
  6365.         else {
  6366.           arg0 = 60L;
  6367.           arg1 = 0L;
  6368.           arg2 = arg2_714X;
  6369.           arg3 = arg2_715X;
  6370.           goto L38648;}}
  6371.        L56640: {
  6372.         long new_716X;
  6373.         *((long *) ShpS) = ((((arg2_715X << 5L) + 10L) << 2L) + 2L);
  6374.         ShpS = (ShpS + 4L);
  6375.         new_716X = ShpS + 3L;
  6376.         ShpS = (ShpS + (((arg2_715X + 3L) & ~3)));
  6377.         if (arg2_715X > 0L) {
  6378.           *((long *) (ShpS + -4L)) = 0L;
  6379.           arg0 = new_716X;
  6380.           goto L56416;}
  6381.         else {
  6382.           arg0 = new_716X;
  6383.           goto L56416;}
  6384.        L56416: {
  6385.         long obj_717X = arg0;
  6386.         arg0 = arg2_714X;
  6387.         arg1 = (arg2_715X - 1L);
  6388.         goto L56362;
  6389.        L56362: {
  6390.         long l_718X = arg0;
  6391.         long i_719X = arg1;
  6392.         if (i_719X < 0L) {
  6393.           RSvalS = obj_717X;
  6394.           goto L34459;}
  6395.         else {
  6396.           *((char *) ((obj_717X - 3L) + i_719X)) = (((*((long *) (l_718X - 3L)))) >> 8L);
  6397.           arg0 = (*((long *) ((l_718X - 3L) + 4L)));
  6398.           arg1 = (i_719X - 1L);
  6399.           goto L56362;}}}}}
  6400.       else {
  6401.         arg0 = 59L;
  6402.         arg1 = 0L;
  6403.         arg2 = arg2_714X;
  6404.         arg3 = RSvalS;
  6405.         goto L38648;}}}
  6406.       break;
  6407.     case 157 : {
  6408.       if ((ShpS + 20L) < SlimitS) {
  6409.         arg0 = 9999999L;
  6410.         goto L57283;}
  6411.       else {
  6412.         SlimitS = Snewspace_endS;
  6413.         arg0 = 8L;
  6414.         goto L29273;
  6415.        L57317: {
  6416.         long v_720X;
  6417.         SvalS = RSvalS;
  6418.         SstackS = RSstackS;
  6419.         Scode_pointerS = RScode_pointerS;
  6420.         SenvS = RSenvS;
  6421.         v_720X = collect();
  6422.         RSvalS = SvalS;
  6423.         RSstackS = SstackS;
  6424.         RScode_pointerS = Scode_pointerS;
  6425.         RSenvS = SenvS;
  6426.         arg0 = 8L;
  6427.         goto L24906;
  6428.        L57325: {
  6429.         long v_721X = arg0;
  6430.         arg0 = v_721X;
  6431.         goto L57283;}}}
  6432.      L57283: {
  6433.       if ((ShpS + 20L) < SlimitS) {
  6434.         arg0 = 0L;
  6435.         goto L57051;}
  6436.       else {
  6437.         long v_722X;
  6438.         SvalS = RSvalS;
  6439.         SstackS = RSstackS;
  6440.         Scode_pointerS = RScode_pointerS;
  6441.         SenvS = RSenvS;
  6442.         v_722X = Qps_error_0(((long)"Scheme48 heap overflow"));
  6443.         RSvalS = SvalS;
  6444.         RSstackS = SstackS;
  6445.         RScode_pointerS = Scode_pointerS;
  6446.         RSenvS = SenvS;
  6447.         arg0 = v_722X;
  6448.         goto L57051;}}
  6449.      L57051: {
  6450.       long arg2_723X;
  6451.       RSstackS = (RSstackS - -4L);
  6452.       arg2_723X = *((long *) RSstackS);
  6453.       if ((arg2_723X & 3L) == 3L) {
  6454.         if ((((*((long *) ((arg2_723X - 3L) + -4L))) >> 2L) & 31L) == 10L) {
  6455.           long obj_724X;
  6456.           obj_724X = RSvalS;
  6457.           if ((obj_724X & 3L) == 3L) {
  6458.             if ((((*((long *) ((obj_724X - 3L) + -4L))) >> 2L) & 31L) == 2L) {
  6459.               long x_725X, y_726X, n_727X;
  6460.               x_725X = RSvalS;
  6461.               y_726X = (((((*((long *) ((x_725X - 3L) + -4L))) >> 7L)) + 3L) >> 2L) - 1L;
  6462.               n_727X = ((*((long *) ((arg2_723X - 3L) + -4L))) >> 7L);
  6463.               arg0 = 0L;
  6464.               arg1 = 0L;
  6465.               goto L26181;
  6466.              L26181: {
  6467.               long i_728X = arg0;
  6468.               long h_729X = arg1;
  6469.               if (i_728X >= n_727X) {
  6470.                 long index_730X, bucket_731X;
  6471.                 index_730X = h_729X & y_726X;
  6472.                 bucket_731X = *((long *) ((x_725X - 3L) + (index_730X << 2L)));
  6473.                 arg0 = bucket_731X;
  6474.                 goto L26066;
  6475.                L26066: {
  6476.                 long b_732X = arg0;
  6477.                 if (b_732X == 25L) {
  6478.                   long new_733X, new_734X;
  6479.                   *((long *) ShpS) = 518L;
  6480.                   ShpS = (ShpS + 4L);
  6481.                   new_733X = ShpS + 3L;
  6482.                   ShpS = (ShpS + 4L);
  6483.                   *((long *) (ShpS + -4L)) = 0L;
  6484.                   *((long *) (new_733X - 3L)) = arg2_723X;
  6485.                   *((long *) ShpS) = 1026L;
  6486.                   ShpS = (ShpS + 4L);
  6487.                   new_734X = ShpS + 3L;
  6488.                   ShpS = (ShpS + 8L);
  6489.                   *((long *) (ShpS + -4L)) = 0L;
  6490.                   *((long *) (new_734X - 3L)) = new_733X;
  6491.                   *((long *) ((new_734X - 3L) + 4L)) = bucket_731X;
  6492.                   *((long *) ((x_725X - 3L) + (index_730X << 2L))) = new_734X;
  6493.                   arg0 = new_733X;
  6494.                   goto L56991;}
  6495.                 else {
  6496.                   long v_735X;
  6497.                   v_735X = *((long *) ((*((long *) (b_732X - 3L))) - 3L));
  6498.                   arg0 = 1L;
  6499.                   arg1 = arg2_723X;
  6500.                   arg2 = v_735X;
  6501.                   goto L15879;
  6502.                  L26003: {
  6503.                   long v_736X = arg0;
  6504.                   if (v_736X != 0) {
  6505.                     arg0 = (*((long *) (b_732X - 3L)));
  6506.                     goto L56991;}
  6507.                   else {
  6508.                     arg0 = (*((long *) ((b_732X - 3L) + 4L)));
  6509.                     goto L26066;}}}}}
  6510.               else {
  6511.                 arg0 = (i_728X + 1L);
  6512.                 arg1 = (h_729X + ((*((unsigned char *) ((arg2_723X - 3L) + i_728X)))));
  6513.                 goto L26181;}}
  6514.              L56991: {
  6515.               long val_737X = arg0;
  6516.               RSvalS = val_737X;
  6517.               goto L34459;}}
  6518.             else {
  6519.               arg0 = 0L;
  6520.               goto L57016;}}
  6521.           else {
  6522.             arg0 = 0L;
  6523.             goto L57016;}}
  6524.         else {
  6525.           arg0 = 0L;
  6526.           goto L57016;}}
  6527.       else {
  6528.         arg0 = 0L;
  6529.         goto L57016;}
  6530.      L57016: {
  6531.       arg0 = 58L;
  6532.       arg1 = 0L;
  6533.       arg2 = arg2_723X;
  6534.       arg3 = RSvalS;
  6535.       goto L38648;}}}
  6536.       break;
  6537.     case 158 : {
  6538.       if ((ShpS + 24L) < SlimitS) {
  6539.         arg0 = 9999999L;
  6540.         goto L57626;}
  6541.       else {
  6542.         SlimitS = Snewspace_endS;
  6543.         arg0 = 7L;
  6544.         goto L29273;
  6545.        L57660: {
  6546.         long v_738X;
  6547.         SvalS = RSvalS;
  6548.         SstackS = RSstackS;
  6549.         Scode_pointerS = RScode_pointerS;
  6550.         SenvS = RSenvS;
  6551.         v_738X = collect();
  6552.         RSvalS = SvalS;
  6553.         RSstackS = SstackS;
  6554.         RScode_pointerS = Scode_pointerS;
  6555.         RSenvS = SenvS;
  6556.         arg0 = 7L;
  6557.         goto L24906;
  6558.        L57668: {
  6559.         long v_739X = arg0;
  6560.         arg0 = v_739X;
  6561.         goto L57626;}}}
  6562.      L57626: {
  6563.       if ((ShpS + 24L) < SlimitS) {
  6564.         arg0 = 0L;
  6565.         goto L57451;}
  6566.       else {
  6567.         long v_740X;
  6568.         SvalS = RSvalS;
  6569.         SstackS = RSstackS;
  6570.         Scode_pointerS = RScode_pointerS;
  6571.         SenvS = RSenvS;
  6572.         v_740X = Qps_error_0(((long)"Scheme48 heap overflow"));
  6573.         RSvalS = SvalS;
  6574.         RSstackS = SstackS;
  6575.         RScode_pointerS = Scode_pointerS;
  6576.         RSenvS = SenvS;
  6577.         arg0 = v_740X;
  6578.         goto L57451;}}
  6579.      L57451: {
  6580.       long arg2_741X, x_742X, y_743X, s_744X, n_745X;
  6581.       RSstackS = (RSstackS - -4L);
  6582.       arg2_741X = *((long *) RSstackS);
  6583.       x_742X = RSvalS;
  6584.       y_743X = (((((*((long *) ((arg2_741X - 3L) + -4L))) >> 7L)) + 3L) >> 2L) - 1L;
  6585.       s_744X = *((long *) (x_742X - 3L));
  6586.       n_745X = ((*((long *) ((s_744X - 3L) + -4L))) >> 7L);
  6587.       arg0 = 0L;
  6588.       arg1 = 0L;
  6589.       goto L26466;
  6590.      L26466: {
  6591.       long i_746X = arg0;
  6592.       long h_747X = arg1;
  6593.       if (i_746X >= n_745X) {
  6594.         long index_748X, bucket_749X;
  6595.         index_748X = h_747X & y_743X;
  6596.         bucket_749X = *((long *) ((arg2_741X - 3L) + (index_748X << 2L)));
  6597.         arg0 = bucket_749X;
  6598.         goto L26598;
  6599.        L26598: {
  6600.         long b_750X = arg0;
  6601.         if (b_750X == 25L) {
  6602.           long new_751X, new_752X;
  6603.           *((long *) ShpS) = 1042L;
  6604.           ShpS = (ShpS + 4L);
  6605.           new_751X = ShpS + 3L;
  6606.           ShpS = (ShpS + 8L);
  6607.           *((long *) (ShpS + -4L)) = 0L;
  6608.           *((long *) (new_751X - 3L)) = 273L;
  6609.           *((long *) ((new_751X - 3L) + 4L)) = x_742X;
  6610.           *((long *) ShpS) = 1026L;
  6611.           ShpS = (ShpS + 4L);
  6612.           new_752X = ShpS + 3L;
  6613.           ShpS = (ShpS + 8L);
  6614.           *((long *) (ShpS + -4L)) = 0L;
  6615.           *((long *) (new_752X - 3L)) = new_751X;
  6616.           *((long *) ((new_752X - 3L) + 4L)) = bucket_749X;
  6617.           *((long *) ((arg2_741X - 3L) + (index_748X << 2L))) = new_752X;
  6618.           arg0 = new_751X;
  6619.           goto L57478;}
  6620.         else {
  6621.           if (x_742X == (*((long *) (((*((long *) (b_750X - 3L))) - 3L) + 4L)))) {
  6622.             arg0 = (*((long *) (b_750X - 3L)));
  6623.             goto L57478;}
  6624.           else {
  6625.             arg0 = (*((long *) ((b_750X - 3L) + 4L)));
  6626.             goto L26598;}}}}
  6627.       else {
  6628.         arg0 = (i_746X + 1L);
  6629.         arg1 = (h_747X + ((*((unsigned char *) ((s_744X - 3L) + i_746X)))));
  6630.         goto L26466;}}
  6631.      L57478: {
  6632.       long val_753X = arg0;
  6633.       RSvalS = val_753X;
  6634.       goto L34459;}}}
  6635.       break;
  6636.   }
  6637.  L38789: {
  6638.   long c_754X = arg0;
  6639.   long args_755X = arg1;
  6640.   long a1_756X = arg2;
  6641.   long a2_757X = arg3;
  6642.   long a3_758X = arg4;
  6643.   arg0 = 6L;
  6644.   arg1 = args_755X;
  6645.   goto L30695;
  6646.  L38810: {
  6647.   *((long *) RSstackS) = a1_756X;
  6648.   RSstackS = (RSstackS - 4L);
  6649.   *((long *) RSstackS) = a2_757X;
  6650.   RSstackS = (RSstackS - 4L);
  6651.   *((long *) RSstackS) = a3_758X;
  6652.   RSstackS = (RSstackS - 4L);
  6653.   arg0 = 6L;
  6654.   arg1 = 3L;
  6655.   goto L37702;
  6656.  L38812: {
  6657.   long ret_val_759X = arg0;
  6658.   switch (c_754X) {
  6659.     case 0 : 
  6660.     case 1 : 
  6661.     case 2 : 
  6662.     case 3 : 
  6663.     case 4 : 
  6664.     case 5 : 
  6665.     case 6 : 
  6666.     case 7 : 
  6667.     case 8 : 
  6668.     case 9 : {
  6669.       SvalS = RSvalS;
  6670.       SstackS = RSstackS;
  6671.       Scode_pointerS = RScode_pointerS;
  6672.       SenvS = RSenvS;
  6673.       return(ret_val_759X);}
  6674.       break;
  6675.   }}}}
  6676.  L38648: {
  6677.   long c_760X = arg0;
  6678.   long args_761X = arg1;
  6679.   long a1_762X = arg2;
  6680.   long a2_763X = arg3;
  6681.   arg0 = 7L;
  6682.   arg1 = args_761X;
  6683.   goto L30695;
  6684.  L38665: {
  6685.   *((long *) RSstackS) = a1_762X;
  6686.   RSstackS = (RSstackS - 4L);
  6687.   *((long *) RSstackS) = a2_763X;
  6688.   RSstackS = (RSstackS - 4L);
  6689.   arg0 = 8L;
  6690.   arg1 = 2L;
  6691.   goto L37702;
  6692.  L38667: {
  6693.   long ret_val_764X = arg0;
  6694.   switch (c_760X) {
  6695.     case 0 : 
  6696.     case 1 : 
  6697.     case 2 : 
  6698.     case 3 : 
  6699.     case 4 : 
  6700.     case 5 : 
  6701.     case 6 : 
  6702.     case 7 : 
  6703.     case 8 : 
  6704.     case 9 : 
  6705.     case 10 : 
  6706.     case 11 : 
  6707.     case 12 : 
  6708.     case 13 : 
  6709.     case 14 : 
  6710.     case 15 : 
  6711.     case 16 : 
  6712.     case 17 : 
  6713.     case 18 : 
  6714.     case 19 : 
  6715.     case 20 : 
  6716.     case 21 : 
  6717.     case 22 : 
  6718.     case 23 : 
  6719.     case 24 : 
  6720.     case 25 : 
  6721.     case 26 : 
  6722.     case 27 : 
  6723.     case 28 : 
  6724.     case 29 : 
  6725.     case 30 : 
  6726.     case 31 : 
  6727.     case 32 : 
  6728.     case 33 : 
  6729.     case 34 : 
  6730.     case 35 : 
  6731.     case 36 : 
  6732.     case 37 : 
  6733.     case 38 : 
  6734.     case 39 : 
  6735.     case 40 : 
  6736.     case 41 : 
  6737.     case 42 : 
  6738.     case 43 : 
  6739.     case 44 : 
  6740.     case 45 : 
  6741.     case 46 : 
  6742.     case 47 : 
  6743.     case 48 : 
  6744.     case 49 : 
  6745.     case 50 : 
  6746.     case 51 : 
  6747.     case 52 : 
  6748.     case 53 : 
  6749.     case 54 : 
  6750.     case 55 : {
  6751.       SvalS = RSvalS;
  6752.       SstackS = RSstackS;
  6753.       Scode_pointerS = RScode_pointerS;
  6754.       SenvS = RSenvS;
  6755.       return(ret_val_764X);}
  6756.       break;
  6757.     case 56 : {
  6758.       arg0 = ret_val_764X;
  6759.       goto L60028;}
  6760.       break;
  6761.     case 57 : 
  6762.     case 58 : 
  6763.     case 59 : 
  6764.     case 60 : 
  6765.     case 61 : 
  6766.     case 62 : 
  6767.     case 63 : 
  6768.     case 64 : 
  6769.     case 65 : 
  6770.     case 66 : 
  6771.     case 67 : 
  6772.     case 68 : 
  6773.     case 69 : 
  6774.     case 70 : 
  6775.     case 71 : 
  6776.     case 72 : 
  6777.     case 73 : 
  6778.     case 74 : 
  6779.     case 75 : 
  6780.     case 76 : 
  6781.     case 77 : 
  6782.     case 78 : 
  6783.     case 79 : 
  6784.     case 80 : 
  6785.     case 81 : 
  6786.     case 82 : {
  6787.       SvalS = RSvalS;
  6788.       SstackS = RSstackS;
  6789.       Scode_pointerS = RScode_pointerS;
  6790.       SenvS = RSenvS;
  6791.       return(ret_val_764X);}
  6792.       break;
  6793.   }}}}
  6794.  L38616: {
  6795.   long c_765X = arg0;
  6796.   long args_766X = arg1;
  6797.   long a1_767X = arg2;
  6798.   arg0 = 8L;
  6799.   arg1 = args_766X;
  6800.   goto L30695;
  6801.  L38629: {
  6802.   *((long *) RSstackS) = a1_767X;
  6803.   RSstackS = (RSstackS - 4L);
  6804.   arg0 = 9L;
  6805.   arg1 = 1L;
  6806.   goto L37702;
  6807.  L38631: {
  6808.   long ret_val_768X = arg0;
  6809.   switch (c_765X) {
  6810.     case 0 : 
  6811.     case 1 : 
  6812.     case 2 : 
  6813.     case 3 : 
  6814.     case 4 : 
  6815.     case 5 : 
  6816.     case 6 : 
  6817.     case 7 : 
  6818.     case 8 : 
  6819.     case 9 : 
  6820.     case 10 : 
  6821.     case 11 : 
  6822.     case 12 : 
  6823.     case 13 : 
  6824.     case 14 : 
  6825.     case 15 : 
  6826.     case 16 : 
  6827.     case 17 : 
  6828.     case 18 : 
  6829.     case 19 : 
  6830.     case 20 : 
  6831.     case 21 : 
  6832.     case 22 : 
  6833.     case 23 : 
  6834.     case 24 : 
  6835.     case 25 : 
  6836.     case 26 : 
  6837.     case 27 : 
  6838.     case 28 : 
  6839.     case 29 : 
  6840.     case 30 : 
  6841.     case 31 : {
  6842.       SvalS = RSvalS;
  6843.       SstackS = RSstackS;
  6844.       Scode_pointerS = RScode_pointerS;
  6845.       SenvS = RSenvS;
  6846.       return(ret_val_768X);}
  6847.       break;
  6848.     case 32 : {
  6849.       arg0 = ret_val_768X;
  6850.       goto L59290;}
  6851.       break;
  6852.     case 33 : {
  6853.       arg0 = ret_val_768X;
  6854.       goto L59232;}
  6855.       break;
  6856.     case 34 : {
  6857.       arg0 = ret_val_768X;
  6858.       goto L59174;}
  6859.       break;
  6860.     case 35 : {
  6861.       arg0 = ret_val_768X;
  6862.       goto L59116;}
  6863.       break;
  6864.     case 36 : 
  6865.     case 37 : 
  6866.     case 38 : 
  6867.     case 39 : 
  6868.     case 40 : 
  6869.     case 41 : 
  6870.     case 42 : 
  6871.     case 43 : 
  6872.     case 44 : 
  6873.     case 45 : 
  6874.     case 46 : 
  6875.     case 47 : 
  6876.     case 48 : 
  6877.     case 49 : 
  6878.     case 50 : 
  6879.     case 51 : 
  6880.     case 52 : 
  6881.     case 53 : 
  6882.     case 54 : 
  6883.     case 55 : 
  6884.     case 56 : {
  6885.       SvalS = RSvalS;
  6886.       SstackS = RSstackS;
  6887.       Scode_pointerS = RScode_pointerS;
  6888.       SenvS = RSenvS;
  6889.       return(ret_val_768X);}
  6890.       break;
  6891.     case 57 : {
  6892.       arg0 = ret_val_768X;
  6893.       goto L42482;}
  6894.       break;
  6895.     case 58 : 
  6896.     case 59 : 
  6897.     case 60 : 
  6898.     case 61 : 
  6899.     case 62 : 
  6900.     case 63 : 
  6901.     case 64 : 
  6902.     case 65 : 
  6903.     case 66 : 
  6904.     case 67 : 
  6905.     case 68 : 
  6906.     case 69 : 
  6907.     case 70 : 
  6908.     case 71 : 
  6909.     case 72 : {
  6910.       SvalS = RSvalS;
  6911.       SstackS = RSstackS;
  6912.       Scode_pointerS = RScode_pointerS;
  6913.       SenvS = RSenvS;
  6914.       return(ret_val_768X);}
  6915.       break;
  6916.   }}}}
  6917.  L30695: {
  6918.   long c_769X = arg0;
  6919.   long args_770X = arg1;
  6920.   if ((RSstackS - 296L) > Sstack_limitS) {
  6921.     arg0 = 0L;
  6922.     goto L30723;}
  6923.   else {
  6924.     Sstack_limitS = Sstack_beginS;
  6925.     Sexception_space_usedPS = 255L;
  6926.     if ((RSstackS - 296L) > Sstack_limitS) {
  6927.       arg0 = 0L;
  6928.       goto L30723;}
  6929.     else {
  6930.       long v_771X;
  6931.       SvalS = RSvalS;
  6932.       SstackS = RSstackS;
  6933.       Scode_pointerS = RScode_pointerS;
  6934.       SenvS = RSenvS;
  6935.       v_771X = Qps_error_0(((long)"insufficient space on stack for exception frame"));
  6936.       RSvalS = SvalS;
  6937.       RSstackS = SstackS;
  6938.       RScode_pointerS = Scode_pointerS;
  6939.       RSenvS = SenvS;
  6940.       arg0 = 0L;
  6941.       goto L30723;}}
  6942.  L30723: {
  6943.   long key_772X = arg0;
  6944.   long v_773X;
  6945.   v_773X = RSstackS + 4L;
  6946.   arg0 = v_773X;
  6947.   arg1 = 0L;
  6948.   goto L30774;
  6949.  L30774: {
  6950.   long p_774X = arg0;
  6951.   long i_775X = arg1;
  6952.   if (((*((long *) p_774X)) & 3L) == 2L) {
  6953.     long v_776X;
  6954.     v_776X = RScode_pointerS;
  6955.     arg0 = 2L;
  6956.     arg1 = v_776X;
  6957.     arg2 = i_775X;
  6958.     arg3 = key_772X;
  6959.     goto L25305;
  6960.    L30792: {
  6961.     *((long *) RSstackS) = (((*((unsigned char *) (RScode_pointerS - (args_770X + 1L))))) << 2L);
  6962.     RSstackS = (RSstackS - 4L);
  6963.     switch (c_769X) {
  6964.       case 0 : {
  6965.         arg0 = 0L;
  6966.         arg1 = 0L;
  6967.         goto L37702;}
  6968.         break;
  6969.       case 1 : {
  6970.         arg0 = 1L;
  6971.         arg1 = 0L;
  6972.         goto L37702;}
  6973.         break;
  6974.       case 2 : {
  6975.         arg0 = 2L;
  6976.         arg1 = 0L;
  6977.         goto L37702;}
  6978.         break;
  6979.       case 3 : {
  6980.         arg0 = 3L;
  6981.         arg1 = 0L;
  6982.         goto L37702;}
  6983.         break;
  6984.       case 4 : {
  6985.         arg0 = 4L;
  6986.         arg1 = 0L;
  6987.         goto L37702;}
  6988.         break;
  6989.       case 5 : {
  6990.         arg0 = 5L;
  6991.         arg1 = 0L;
  6992.         goto L37702;}
  6993.         break;
  6994.       case 6 : {
  6995.         arg0 = 54321L;
  6996.         goto L38810;}
  6997.         break;
  6998.       case 7 : {
  6999.         arg0 = 54321L;
  7000.         goto L38665;}
  7001.         break;
  7002.       case 8 : {
  7003.         arg0 = 54321L;
  7004.         goto L38629;}
  7005.         break;
  7006.     }}}
  7007.   else {
  7008.     arg0 = (p_774X + 4L);
  7009.     arg1 = (i_775X + 1L);
  7010.     goto L30774;}}}}
  7011.  L21896: {
  7012.   long c_777X = arg0;
  7013.   long string_778X = arg1;
  7014.   long z_779X;
  7015.   z_779X = ((*((long *) ((string_778X - 3L) + -4L))) >> 7L);
  7016.   if (z_779X > Smaximum_string_lengthS) {
  7017.     long v_780X;
  7018.     v_780X = 1L + Smaximum_string_lengthS;
  7019.     arg0 = v_780X;
  7020.     goto L11470;
  7021.    L11470: {
  7022.     long s_781X = arg0;
  7023.     if (s_781X > z_779X) {
  7024.       long new_size_782X, size_783X, size_784X, x_785X;
  7025.       new_size_782X = s_781X - 1L;
  7026.       size_783X = new_size_782X + 1L;
  7027.       size_784X = 4L + size_783X;
  7028.       x_785X = ((long) malloc (size_784X* sizeof(char)));
  7029.       if (x_785X == 0L) {
  7030.         long v_786X;
  7031.         SvalS = RSvalS;
  7032.         SstackS = RSstackS;
  7033.         Scode_pointerS = RScode_pointerS;
  7034.         SenvS = RSenvS;
  7035.         v_786X = Qps_error_1(((long)"out of memory, cannot allocate this many bytes"), size_784X);
  7036.         RSvalS = SvalS;
  7037.         RSstackS = SstackS;
  7038.         RScode_pointerS = Scode_pointerS;
  7039.         RSenvS = SenvS;
  7040.         arg0 = x_785X;
  7041.         goto L11583;}
  7042.       else {
  7043.         arg0 = x_785X;
  7044.         goto L11583;}
  7045.      L11583: {
  7046.       long vec_787X = arg0;
  7047.       long new_string_788X;
  7048.       *((long *) vec_787X) = size_783X;
  7049.       new_string_788X = vec_787X + 4L;
  7050.       if (new_string_788X != 0) {
  7051.         arg0 = 9999999L;
  7052.         goto L11445;}
  7053.       else {
  7054.         long v_789X;
  7055.         SvalS = RSvalS;
  7056.         SstackS = RSstackS;
  7057.         Scode_pointerS = RScode_pointerS;
  7058.         SenvS = RSenvS;
  7059.         v_789X = Qps_error_1(((long)"Out of memory, cannot make string"), new_size_782X);
  7060.         RSvalS = SvalS;
  7061.         RSstackS = SstackS;
  7062.         RScode_pointerS = Scode_pointerS;
  7063.         RSenvS = SenvS;
  7064.         arg0 = v_789X;
  7065.         goto L11445;}
  7066.      L11445: {
  7067.       Smaximum_string_lengthS = new_size_782X;
  7068.       Sthe_stringS = new_string_788X;
  7069.       arg0 = 54321L;
  7070.       goto L11511;}}}
  7071.     else {
  7072.       arg0 = (2L * s_781X);
  7073.       goto L11470;}}}
  7074.   else {
  7075.     arg0 = 9999999L;
  7076.     goto L11511;}
  7077.  L11511: {
  7078.   long vec_790X;
  7079.   *((char *) (Sthe_stringS + z_779X)) = 0L;
  7080.   vec_790X = Sthe_stringS;
  7081.   arg0 = 0L;
  7082.   goto L21916;
  7083.  L21916: {
  7084.   long i_791X = arg0;
  7085.   if (i_791X >= z_779X) {
  7086.     switch (c_777X) {
  7087.       case 0 : {
  7088.         arg0 = vec_790X;
  7089.         goto L58298;}
  7090.         break;
  7091.       case 1 : {
  7092.         arg0 = vec_790X;
  7093.         goto L53409;}
  7094.         break;
  7095.       case 2 : {
  7096.         arg0 = vec_790X;
  7097.         goto L53397;}
  7098.         break;
  7099.     }}
  7100.   else {
  7101.     *((char *) (vec_790X + i_791X)) = ((*((unsigned char *) ((string_778X - 3L) + i_791X))));
  7102.     arg0 = (i_791X + 1L);
  7103.     goto L21916;}}}}
  7104.  L15879: {
  7105.   long c_792X = arg0;
  7106.   long stob1_793X = arg1;
  7107.   long stob2_794X = arg2;
  7108.   long z1_795X;
  7109.   z1_795X = *((long *) ((stob1_793X - 3L) + -4L));
  7110.   if (z1_795X == (*((long *) ((stob2_794X - 3L) + -4L)))) {
  7111.     arg0 = 0L;
  7112.     goto L15904;
  7113.    L15904: {
  7114.     long i_796X = arg0;
  7115.     if (i_796X >= ((((z1_795X >> 7L)) + 3L) >> 2L)) {
  7116.       arg0 = 255L;
  7117.       goto L74782;}
  7118.     else {
  7119.       if ((*((long *) ((stob1_793X - 3L) + (i_796X << 2L)))) == (*((long *) ((stob2_794X - 3L) + (i_796X << 2L))))) {
  7120.         arg0 = (i_796X + 1L);
  7121.         goto L15904;}
  7122.       else {
  7123.         arg0 = 0L;
  7124.         goto L74782;}}}}
  7125.   else {
  7126.     arg0 = 0L;
  7127.     goto L74782;}
  7128.  L74782: {
  7129.   long ret_val_797X = arg0;
  7130.   switch (c_792X) {
  7131.     case 0 : {
  7132.       if (ret_val_797X != 0) {
  7133.         arg0 = 5L;
  7134.         goto L56043;}
  7135.       else {
  7136.         arg0 = 1L;
  7137.         goto L56043;}
  7138.      L56043: {
  7139.       long val_798X = arg0;
  7140.       RSvalS = val_798X;
  7141.       goto L34459;}}
  7142.       break;
  7143.     case 1 : {
  7144.       arg0 = ret_val_797X;
  7145.       goto L26003;}
  7146.       break;
  7147.   }}}}
  7148.  L25305: {
  7149.   long c_799X = arg0;
  7150.   long code_pointer_800X = arg1;
  7151.   long size_801X = arg2;
  7152.   long cont_802X;
  7153.   RSstackS = (RSstackS - 20L);
  7154.   *((long *) (RSstackS + 4L)) = ((((((size_801X + 4L) * 4L) << 5L) + 8L) << 2L) + 2L);
  7155.   cont_802X = ((RSstackS + 4L) + 4L) + 3L;
  7156.   *((long *) ((cont_802X - 3L) + 4L)) = ((code_pointer_800X - ((*((long *) (StemplateS - 3L))) - 3L)) << 2L);
  7157.   *((long *) ((cont_802X - 3L) + 8L)) = StemplateS;
  7158.   *((long *) ((cont_802X - 3L) + 12L)) = RSenvS;
  7159.   *((long *) (cont_802X - 3L)) = ScontS;
  7160.   ScontS = cont_802X;
  7161.   switch (c_799X) {
  7162.     case 0 : {
  7163.       arg0 = 54321L;
  7164.       goto L37961;}
  7165.       break;
  7166.     case 1 : {
  7167.       goto L34459;}
  7168.       break;
  7169.     case 2 : {
  7170.       arg0 = 54321L;
  7171.       goto L30792;}
  7172.       break;
  7173.   }}
  7174.  L38697: {
  7175.   long c_803X = arg0;
  7176.   long args_804X = arg1;
  7177.   long a1_805X = arg2;
  7178.   long a2_806X = arg3;
  7179.   *((long *) RSstackS) = (((*((unsigned char *) (RScode_pointerS - (args_804X + 1L))))) << 2L);
  7180.   RSstackS = (RSstackS - 4L);
  7181.   *((long *) RSstackS) = a1_805X;
  7182.   RSstackS = (RSstackS - 4L);
  7183.   *((long *) RSstackS) = a2_806X;
  7184.   RSstackS = (RSstackS - 4L);
  7185.   arg0 = 7L;
  7186.   arg1 = 2L;
  7187.   goto L37702;
  7188.  L38724: {
  7189.   long ret_val_807X = arg0;
  7190.   switch (c_803X) {
  7191.     case 0 : 
  7192.     case 1 : 
  7193.     case 2 : {
  7194.       SvalS = RSvalS;
  7195.       SstackS = RSstackS;
  7196.       Scode_pointerS = RScode_pointerS;
  7197.       SenvS = RSenvS;
  7198.       return(ret_val_807X);}
  7199.       break;
  7200.   }}}
  7201.  L37702: {
  7202.   long c_808X = arg0;
  7203.   long nargs_809X = arg1;
  7204.   long obj_810X;
  7205.   SnargsS = (nargs_809X + 1L);
  7206.   RSvalS = Sexception_handlerS;
  7207.   obj_810X = RSvalS;
  7208.   if ((obj_810X & 3L) == 3L) {
  7209.     if ((((*((long *) ((obj_810X - 3L) + -4L))) >> 2L) & 31L) == 3L) {
  7210.       arg0 = 9999999L;
  7211.       goto L37737;}
  7212.     else {
  7213.       arg0 = 0L;
  7214.       goto L37810;}}
  7215.   else {
  7216.     arg0 = 0L;
  7217.     goto L37810;}
  7218.  L37810: {
  7219.   long v_811X;
  7220.   SvalS = RSvalS;
  7221.   SstackS = RSstackS;
  7222.   Scode_pointerS = RScode_pointerS;
  7223.   SenvS = RSenvS;
  7224.   v_811X = Qps_error_0(((long)"exception handler is not a closure"));
  7225.   RSvalS = SvalS;
  7226.   RSstackS = SstackS;
  7227.   RScode_pointerS = Scode_pointerS;
  7228.   RSenvS = SenvS;
  7229.   arg0 = v_811X;
  7230.   goto L37737;}
  7231.  L37737: {
  7232.   if (Sexception_space_usedPS != 0) {
  7233.     if ((RSstackS - 296L) > Sstack_limitS) {
  7234.       arg0 = 0L;
  7235.       goto L37784;}
  7236.     else {
  7237.       arg0 = 1L;
  7238.       arg1 = 74L;
  7239.       goto L32883;
  7240.      L37803: {
  7241.       arg0 = 0L;
  7242.       goto L37784;}}
  7243.    L37784: {
  7244.     Sstack_limitS = (Sstack_beginS + 296L);
  7245.     Sexception_space_usedPS = 0L;
  7246.     arg0 = 54321L;
  7247.     goto L37713;}}
  7248.   else {
  7249.     arg0 = 8888888L;
  7250.     goto L37713;}
  7251.  L37713: {
  7252.   long ret_val_812X;
  7253.   goto START;}}}
  7254.  L32883: {
  7255.   long c_813X = arg0;
  7256.   long cells_814X = arg1;
  7257.   if ((ShpS + (((Sstack_endS - RSstackS) & ~3))) < SlimitS) {
  7258.     arg0 = 8888888L;
  7259.     goto L32964;}
  7260.   else {
  7261.     SlimitS = Snewspace_endS;
  7262.     arg0 = 23L;
  7263.     goto L29273;
  7264.    L33083: {
  7265.     long v_815X;
  7266.     SvalS = RSvalS;
  7267.     SstackS = RSstackS;
  7268.     Scode_pointerS = RScode_pointerS;
  7269.     SenvS = RSenvS;
  7270.     v_815X = collect();
  7271.     RSvalS = SvalS;
  7272.     RSstackS = SstackS;
  7273.     RScode_pointerS = Scode_pointerS;
  7274.     RSenvS = SenvS;
  7275.     arg0 = 23L;
  7276.     goto L24906;
  7277.    L33091: {
  7278.     if ((ShpS + (((Sstack_endS - RSstackS) & ~3))) < SlimitS) {
  7279.       arg0 = 9999999L;
  7280.       goto L32964;}
  7281.     else {
  7282.       long v_816X;
  7283.       SvalS = RSvalS;
  7284.       SstackS = RSstackS;
  7285.       Scode_pointerS = RScode_pointerS;
  7286.       SenvS = RSenvS;
  7287.       v_816X = Qps_error_1(((long)"not enough room in heap for stack"), ((Sstack_endS - RSstackS) >> 2L));
  7288.       RSvalS = SvalS;
  7289.       RSstackS = SstackS;
  7290.       RScode_pointerS = Scode_pointerS;
  7291.       RSenvS = SenvS;
  7292.       arg0 = v_816X;
  7293.       goto L32964;}}}}
  7294.  L32964: {
  7295.   long v_817X;
  7296.   v_817X = RSstackS + 4L;
  7297.   arg0 = v_817X;
  7298.   arg1 = 0L;
  7299.   goto L31934;
  7300.  L31934: {
  7301.   long p_818X = arg0;
  7302.   long i_819X = arg1;
  7303.   if (((*((long *) p_818X)) & 3L) == 2L) {
  7304.     long size_820X, x_821X;
  7305.     size_820X = 4L + (4L * i_819X);
  7306.     x_821X = ((long) malloc (size_820X* sizeof(char)));
  7307.     if (x_821X == 0L) {
  7308.       long v_822X;
  7309.       SvalS = RSvalS;
  7310.       SstackS = RSstackS;
  7311.       Scode_pointerS = RScode_pointerS;
  7312.       SenvS = RSenvS;
  7313.       v_822X = Qps_error_1(((long)"out of memory, cannot allocate this many bytes"), size_820X);
  7314.       RSvalS = SvalS;
  7315.       RSstackS = SstackS;
  7316.       RScode_pointerS = Scode_pointerS;
  7317.       RSenvS = SenvS;
  7318.       arg0 = x_821X;
  7319.       goto L31884;}
  7320.     else {
  7321.       arg0 = x_821X;
  7322.       goto L31884;}
  7323.    L31884: {
  7324.     long vec_823X = arg0;
  7325.     long vec_824X, len_825X;
  7326.     *((long *) vec_823X) = i_819X;
  7327.     vec_824X = vec_823X + 4L;
  7328.     len_825X = *((long *) (vec_824X + -4L));
  7329.     arg0 = 0L;
  7330.     goto L31895;
  7331.    L31895: {
  7332.     long i_826X = arg0;
  7333.     if (i_826X >= len_825X) {
  7334.       arg0 = (-1L + i_819X);
  7335.       goto L31683;
  7336.      L31683: {
  7337.       long i_827X = arg0;
  7338.       if (i_827X <= -1L) {
  7339.         long v_828X;
  7340.         SvalS = RSvalS;
  7341.         SstackS = RSstackS;
  7342.         Scode_pointerS = RScode_pointerS;
  7343.         SenvS = RSenvS;
  7344.         v_828X = preserve_continuation(ScontS, 0L, 1L);
  7345.         RSvalS = SvalS;
  7346.         RSstackS = SstackS;
  7347.         RScode_pointerS = Scode_pointerS;
  7348.         RSenvS = SenvS;
  7349.         arg0 = 3L;
  7350.         arg1 = v_828X;
  7351.         goto L23036;
  7352.        L31669: {
  7353.         long v_829X = arg0;
  7354.         ScontS = v_829X;
  7355.         arg0 = 0L;
  7356.         goto L31616;
  7357.        L31616: {
  7358.         long i_830X = arg0;
  7359.         if (i_830X >= i_819X) {
  7360.           if ((RSstackS - (cells_814X << 2L)) > Sstack_limitS) {
  7361.             arg0 = 9999999L;
  7362.             goto L76496;}
  7363.           else {
  7364.             long v_831X;
  7365.             SvalS = RSvalS;
  7366.             SstackS = RSstackS;
  7367.             Scode_pointerS = RScode_pointerS;
  7368.             SenvS = RSenvS;
  7369.             v_831X = Qps_error_1(((long)"stack overflow"), cells_814X);
  7370.             RSvalS = SvalS;
  7371.             RSstackS = SstackS;
  7372.             RScode_pointerS = Scode_pointerS;
  7373.             RSenvS = SenvS;
  7374.             arg0 = v_831X;
  7375.             goto L76496;}}
  7376.         else {
  7377.           *((long *) RSstackS) = (*((long *) (vec_824X + (i_830X * 4L))));
  7378.           RSstackS = (RSstackS - 4L);
  7379.           arg0 = (i_830X + 1L);
  7380.           goto L31616;}}}}
  7381.       else {
  7382.         RSstackS = (RSstackS - -4L);
  7383.         *((long *) (vec_824X + (i_827X * 4L))) = (*((long *) RSstackS));
  7384.         arg0 = (i_827X - 1L);
  7385.         goto L31683;}}}
  7386.     else {
  7387.       *((long *) (vec_824X + (i_826X * 4L))) = 0L;
  7388.       arg0 = (i_826X + 1L);
  7389.       goto L31895;}}}}
  7390.   else {
  7391.     arg0 = (p_818X + 4L);
  7392.     arg1 = (i_819X + 1L);
  7393.     goto L31934;}}}
  7394.  L76496: {
  7395.   long ret_val_832X = arg0;
  7396.   switch (c_813X) {
  7397.     case 0 : {
  7398.       arg0 = ret_val_832X;
  7399.       goto L38299;}
  7400.       break;
  7401.     case 1 : {
  7402.       arg0 = ret_val_832X;
  7403.       goto L37803;}
  7404.       break;
  7405.     case 2 : {
  7406.       arg0 = ret_val_832X;
  7407.       goto L36018;}
  7408.       break;
  7409.     case 3 : {
  7410.       arg0 = ret_val_832X;
  7411.       goto L34997;}
  7412.       break;
  7413.   }}}
  7414.  L23036: {
  7415.   long c_833X = arg0;
  7416.   long cont_834X = arg1;
  7417.   long top_835X, new_cont_836X, from_837X, end_838X;
  7418.   top_835X = (Sbottom_of_stackS - 7L) - (((((((*((long *) ((cont_834X - 3L) + -4L))) >> 7L)) + 3L) & ~3)) + 4L);
  7419.   new_cont_836X = (top_835X + 4L) + 3L;
  7420.   RSstackS = (top_835X - 4L);
  7421.   from_837X = cont_834X - 7L;
  7422.   end_838X = from_837X + ((1L + (((((*((long *) ((cont_834X - 3L) + -4L))) >> 7L)) + 3L) >> 2L)) << 2L);
  7423.   arg0 = from_837X;
  7424.   arg1 = top_835X;
  7425.   goto L23199;
  7426.  L23199: {
  7427.   long from_839X = arg0;
  7428.   long to_840X = arg1;
  7429.   if (from_839X >= end_838X) {
  7430.     *((long *) (Sbottom_of_stackS - 3L)) = (*((long *) (new_cont_836X - 3L)));
  7431.     *((long *) (new_cont_836X - 3L)) = Sbottom_of_stackS;
  7432.     switch (c_833X) {
  7433.       case 0 : {
  7434.         ScontS = new_cont_836X;
  7435.         SnargsS = 0L;
  7436.         goto START;}
  7437.         break;
  7438.       case 1 : {
  7439.         ScontS = new_cont_836X;
  7440.         goto L34459;}
  7441.         break;
  7442.       case 2 : {
  7443.         arg0 = new_cont_836X;
  7444.         goto L36440;}
  7445.         break;
  7446.       case 3 : {
  7447.         arg0 = new_cont_836X;
  7448.         goto L31669;}
  7449.         break;
  7450.     }}
  7451.   else {
  7452.     *((long *) to_840X) = (*((long *) from_839X));
  7453.     arg0 = (from_839X + 4L);
  7454.     arg1 = (to_840X + 4L);
  7455.     goto L23199;}}}
  7456.  L33770: {
  7457.   long c_841X = arg0;
  7458.   long start_842X = arg1;
  7459.   long count_843X = arg2;
  7460.   long space_844X;
  7461.   space_844X = 3L * SnargsS;
  7462.   if ((ShpS + (space_844X << 2L)) < SlimitS) {
  7463.     arg0 = 9999999L;
  7464.     goto L33923;}
  7465.   else {
  7466.     SlimitS = Snewspace_endS;
  7467.     arg0 = 21L;
  7468.     goto L29273;
  7469.    L33957: {
  7470.     long v_845X;
  7471.     SvalS = RSvalS;
  7472.     SstackS = RSstackS;
  7473.     Scode_pointerS = RScode_pointerS;
  7474.     SenvS = RSenvS;
  7475.     v_845X = collect();
  7476.     RSvalS = SvalS;
  7477.     RSstackS = SstackS;
  7478.     RScode_pointerS = Scode_pointerS;
  7479.     RSenvS = SenvS;
  7480.     arg0 = 21L;
  7481.     goto L24906;
  7482.    L33965: {
  7483.     long v_846X = arg0;
  7484.     arg0 = v_846X;
  7485.     goto L33923;}}}
  7486.  L33923: {
  7487.   if ((ShpS + (space_844X << 2L)) < SlimitS) {
  7488.     arg0 = 0L;
  7489.     goto L33837;}
  7490.   else {
  7491.     long v_847X;
  7492.     SvalS = RSvalS;
  7493.     SstackS = RSstackS;
  7494.     Scode_pointerS = RScode_pointerS;
  7495.     SenvS = RSenvS;
  7496.     v_847X = Qps_error_0(((long)"Scheme48 heap overflow"));
  7497.     RSvalS = SvalS;
  7498.     RSstackS = SstackS;
  7499.     RScode_pointerS = Scode_pointerS;
  7500.     RSenvS = SenvS;
  7501.     arg0 = v_847X;
  7502.     goto L33837;}}
  7503.  L33837: {
  7504.   arg0 = start_842X;
  7505.   arg1 = count_843X;
  7506.   goto L33785;
  7507.  L33785: {
  7508.   long args_848X = arg0;
  7509.   long count_849X = arg1;
  7510.   if (count_849X <= 0L) {
  7511.     switch (c_841X) {
  7512.       case 0 : {
  7513.         arg0 = args_848X;
  7514.         goto L58142;}
  7515.         break;
  7516.       case 1 : {
  7517.         arg0 = args_848X;
  7518.         goto L57839;}
  7519.         break;
  7520.       case 2 : {
  7521.         arg0 = args_848X;
  7522.         goto L37334;}
  7523.         break;
  7524.       case 3 : {
  7525.         arg0 = args_848X;
  7526.         goto L37320;}
  7527.         break;
  7528.       case 4 : {
  7529.         arg0 = args_848X;
  7530.         goto L37161;}
  7531.         break;
  7532.       case 5 : {
  7533.         arg0 = args_848X;
  7534.         goto L37147;}
  7535.         break;
  7536.       case 6 : {
  7537.         arg0 = args_848X;
  7538.         goto L37033;}
  7539.         break;
  7540.       case 7 : {
  7541.         arg0 = args_848X;
  7542.         goto L37019;}
  7543.         break;
  7544.       case 8 : {
  7545.         arg0 = args_848X;
  7546.         goto L34723;}
  7547.         break;
  7548.       case 9 : {
  7549.         arg0 = args_848X;
  7550.         goto L34710;}
  7551.         break;
  7552.     }}
  7553.   else {
  7554.     long a_850X, new_851X;
  7555.     RSstackS = (RSstackS - -4L);
  7556.     a_850X = *((long *) RSstackS);
  7557.     *((long *) ShpS) = 1026L;
  7558.     ShpS = (ShpS + 4L);
  7559.     new_851X = ShpS + 3L;
  7560.     ShpS = (ShpS + 8L);
  7561.     *((long *) (ShpS + -4L)) = 0L;
  7562.     *((long *) (new_851X - 3L)) = a_850X;
  7563.     *((long *) ((new_851X - 3L) + 4L)) = args_848X;
  7564.     arg0 = new_851X;
  7565.     arg1 = (count_849X - 1L);
  7566.     goto L33785;}}}}
  7567.  L29273: {
  7568.   long c_852X = arg0;
  7569.   *((long *) (SrootS - 3L)) = ((RScode_pointerS - ((*((long *) (StemplateS - 3L))) - 3L)) << 2L);
  7570.   *((long *) ((SrootS - 3L) + 4L)) = StemplateS;
  7571.   *((long *) ((SrootS - 3L) + 8L)) = RSenvS;
  7572.   *((long *) ((SrootS - 3L) + 12L)) = ScontS;
  7573.   *((long *) ((SrootS - 3L) + 16L)) = RSvalS;
  7574.   *((long *) ((SrootS - 3L) + 20L)) = Sdynamic_stateS;
  7575.   *((long *) ((SrootS - 3L) + 24L)) = (SnargsS << 2L);
  7576.   *((long *) ((SrootS - 3L) + 28L)) = (Senabled_interruptsS << 2L);
  7577.   *((long *) ((SrootS - 3L) + 32L)) = Sexception_handlerS;
  7578.   *((long *) ((SrootS - 3L) + 36L)) = Sinterrupt_handlersS;
  7579.   switch (c_852X) {
  7580.     case 0 : {
  7581.       arg0 = 999999L;
  7582.       goto L69778;}
  7583.       break;
  7584.     case 1 : {
  7585.       arg0 = 999999L;
  7586.       goto L68017;}
  7587.       break;
  7588.     case 2 : {
  7589.       arg0 = 999999L;
  7590.       goto L66281;}
  7591.       break;
  7592.     case 3 : {
  7593.       arg0 = 999999L;
  7594.       goto L64542;}
  7595.       break;
  7596.     case 4 : {
  7597.       arg0 = 999999L;
  7598.       goto L62803;}
  7599.       break;
  7600.     case 5 : {
  7601.       arg0 = 999999L;
  7602.       goto L61064;}
  7603.       break;
  7604.     case 6 : {
  7605.       arg0 = 999999L;
  7606.       goto L58382;}
  7607.       break;
  7608.     case 7 : {
  7609.       arg0 = 999999L;
  7610.       goto L57660;}
  7611.       break;
  7612.     case 8 : {
  7613.       arg0 = 999999L;
  7614.       goto L57317;}
  7615.       break;
  7616.     case 9 : {
  7617.       arg0 = 999999L;
  7618.       goto L56910;}
  7619.       break;
  7620.     case 10 : {
  7621.       arg0 = 999999L;
  7622.       goto L54028;}
  7623.       break;
  7624.     case 11 : {
  7625.       arg0 = 999999L;
  7626.       goto L53742;}
  7627.       break;
  7628.     case 12 : {
  7629.       arg0 = 999999L;
  7630.       goto L51849;}
  7631.       break;
  7632.     case 13 : {
  7633.       arg0 = 999999L;
  7634.       goto L50883;}
  7635.       break;
  7636.     case 14 : {
  7637.       arg0 = 999999L;
  7638.       goto L49623;}
  7639.       break;
  7640.     case 15 : {
  7641.       arg0 = 999999L;
  7642.       goto L43503;}
  7643.       break;
  7644.     case 16 : {
  7645.       long v_853X;
  7646.       SvalS = RSvalS;
  7647.       SstackS = RSstackS;
  7648.       Scode_pointerS = RScode_pointerS;
  7649.       SenvS = RSenvS;
  7650.       v_853X = collect();
  7651.       RSvalS = SvalS;
  7652.       RSstackS = SstackS;
  7653.       RScode_pointerS = Scode_pointerS;
  7654.       RSenvS = SenvS;
  7655.       arg0 = 16L;
  7656.       goto L24906;}
  7657.       break;
  7658.     case 17 : {
  7659.       arg0 = 999999L;
  7660.       goto L36481;}
  7661.       break;
  7662.     case 18 : {
  7663.       arg0 = 999999L;
  7664.       goto L35857;}
  7665.       break;
  7666.     case 19 : {
  7667.       arg0 = 999999L;
  7668.       goto L35157;}
  7669.       break;
  7670.     case 20 : {
  7671.       arg0 = 999999L;
  7672.       goto L34303;}
  7673.       break;
  7674.     case 21 : {
  7675.       arg0 = 999999L;
  7676.       goto L33957;}
  7677.       break;
  7678.     case 22 : {
  7679.       arg0 = 999999L;
  7680.       goto L33682;}
  7681.       break;
  7682.     case 23 : {
  7683.       arg0 = 999999L;
  7684.       goto L33083;}
  7685.       break;
  7686.   }}
  7687.  L24906: {
  7688.   long c_854X = arg0;
  7689.   long tem_855X, pc_856X;
  7690.   tem_855X = *((long *) ((SrootS - 3L) + 4L));
  7691.   pc_856X = *((long *) (SrootS - 3L));
  7692.   StemplateS = tem_855X;
  7693.   RScode_pointerS = (((*((long *) (tem_855X - 3L))) - 3L) + (pc_856X >> 2L));
  7694.   RSenvS = (*((long *) ((SrootS - 3L) + 8L)));
  7695.   ScontS = (*((long *) ((SrootS - 3L) + 12L)));
  7696.   RSvalS = (*((long *) ((SrootS - 3L) + 16L)));
  7697.   Sdynamic_stateS = (*((long *) ((SrootS - 3L) + 20L)));
  7698.   SnargsS = ((*((long *) ((SrootS - 3L) + 24L))) >> 2L);
  7699.   Senabled_interruptsS = ((*((long *) ((SrootS - 3L) + 28L))) >> 2L);
  7700.   Sexception_handlerS = (*((long *) ((SrootS - 3L) + 32L)));
  7701.   Sinterrupt_handlersS = (*((long *) ((SrootS - 3L) + 36L)));
  7702.   switch (c_854X) {
  7703.     case 0 : {
  7704.       arg0 = 54321L;
  7705.       goto L69786;}
  7706.       break;
  7707.     case 1 : {
  7708.       arg0 = 54321L;
  7709.       goto L68025;}
  7710.       break;
  7711.     case 2 : {
  7712.       arg0 = 54321L;
  7713.       goto L66289;}
  7714.       break;
  7715.     case 3 : {
  7716.       arg0 = 54321L;
  7717.       goto L64550;}
  7718.       break;
  7719.     case 4 : {
  7720.       arg0 = 54321L;
  7721.       goto L62811;}
  7722.       break;
  7723.     case 5 : {
  7724.       arg0 = 54321L;
  7725.       goto L61072;}
  7726.       break;
  7727.     case 6 : {
  7728.       arg0 = 54321L;
  7729.       goto L58390;}
  7730.       break;
  7731.     case 7 : {
  7732.       arg0 = 54321L;
  7733.       goto L57668;}
  7734.       break;
  7735.     case 8 : {
  7736.       arg0 = 54321L;
  7737.       goto L57325;}
  7738.       break;
  7739.     case 9 : {
  7740.       arg0 = 54321L;
  7741.       goto L56918;}
  7742.       break;
  7743.     case 10 : {
  7744.       arg0 = 54321L;
  7745.       goto L54036;}
  7746.       break;
  7747.     case 11 : {
  7748.       arg0 = 54321L;
  7749.       goto L53750;}
  7750.       break;
  7751.     case 12 : {
  7752.       arg0 = 54321L;
  7753.       goto L51857;}
  7754.       break;
  7755.     case 13 : {
  7756.       arg0 = 54321L;
  7757.       goto L50891;}
  7758.       break;
  7759.     case 14 : {
  7760.       arg0 = 54321L;
  7761.       goto L49631;}
  7762.       break;
  7763.     case 15 : {
  7764.       arg0 = 54321L;
  7765.       goto L43511;}
  7766.       break;
  7767.     case 16 : {
  7768.       RSvalS = 13L;
  7769.       goto L34459;}
  7770.       break;
  7771.     case 17 : {
  7772.       arg0 = 54321L;
  7773.       goto L36489;}
  7774.       break;
  7775.     case 18 : {
  7776.       arg0 = 54321L;
  7777.       goto L35865;}
  7778.       break;
  7779.     case 19 : {
  7780.       arg0 = 54321L;
  7781.       goto L35165;}
  7782.       break;
  7783.     case 20 : {
  7784.       arg0 = 54321L;
  7785.       goto L34311;}
  7786.       break;
  7787.     case 21 : {
  7788.       arg0 = 54321L;
  7789.       goto L33965;}
  7790.       break;
  7791.     case 22 : {
  7792.       arg0 = 54321L;
  7793.       goto L33690;}
  7794.       break;
  7795.     case 23 : {
  7796.       arg0 = 54321L;
  7797.       goto L33091;}
  7798.       break;
  7799.   }}}
  7800. }
  7801.  
  7802. long resume(filename_857X, startup_string_858X)
  7803. long filename_857X, startup_string_858X;
  7804.  
  7805. {
  7806.   extern long Sexit_statusS, SvalS, SnargsS;
  7807.   extern long Sbottom_of_stackS, Sstack_limitS, SstackS;
  7808.   extern long Scurrent_input_portS, Sopen_vm_portsS, Sopen_portsS;
  7809.   extern long Scurrent_output_portS, SrootS, SlimitS;
  7810.   extern long SmarginS, ShpS, Sstack_endS, Sstack_beginS;
  7811.   extern long Soldspace_endS, Soldspace_beginS, Snewspace_endS;
  7812.   extern long Snewspace_beginS, Sstack_sizeS, Smemory_beginS;
  7813.   extern long SmemoryS, Smemory_endS, Sinitial_heap_sizeS;
  7814.   extern long perform_application(), clear_registers(), write_string();
  7815.   extern long Qps_error_1(), Qps_error_2(), Qps_error_0();
  7816.   long arg0, arg1;
  7817.  
  7818.  START: {
  7819.   long port_859X;
  7820.   port_859X = (long)ps_open((char *)filename_857X, (char *)((long)"r"));
  7821.   if (port_859X != 0) {
  7822.     arg0 = 9999999L;
  7823.     goto L31172;}
  7824.   else {
  7825.     long v_860X;
  7826.     v_860X = Qps_error_0(((long)"Can't open heap image file"));
  7827.     arg0 = v_860X;
  7828.     goto L31172;}
  7829.  L31172: {
  7830.   goto L31543;
  7831.  L31543: {
  7832.   long ch_861X;
  7833.   ch_861X = getc((FILE *)port_859X);
  7834.   if (EOF == ch_861X) {
  7835.     long v_862X, v_863X;
  7836.     clearerr((FILE *)port_859X);
  7837.     v_863X = Qps_error_0(((long)"end of file while looking for page break"));
  7838.     arg0 = v_863X;
  7839.     goto L31154;}
  7840.   else {
  7841.     if (ch_861X == 12L) {
  7842.       arg0 = 0L;
  7843.       goto L31154;}
  7844.     else {
  7845.       goto L31543;}}}
  7846.  L31154: {
  7847.   arg0 = 0L;
  7848.   arg1 = port_859X;
  7849.   goto L7517;
  7850.  L31150: {
  7851.   long old_level_864X = arg0;
  7852.   arg0 = 1L;
  7853.   arg1 = port_859X;
  7854.   goto L7517;
  7855.  L31144: {
  7856.   long old_bits_per_byte_865X = arg0;
  7857.   arg0 = 2L;
  7858.   arg1 = port_859X;
  7859.   goto L7517;
  7860.  L31138: {
  7861.   long old_bytes_per_cell_866X = arg0;
  7862.   arg0 = 3L;
  7863.   arg1 = port_859X;
  7864.   goto L7517;
  7865.  L31130: {
  7866.   long cells_867X = arg0;
  7867.   long x_868X;
  7868.   x_868X = cells_867X << 2L;
  7869.   arg0 = 4L;
  7870.   arg1 = port_859X;
  7871.   goto L7517;
  7872.  L31120: {
  7873.   long cells_869X = arg0;
  7874.   long x_870X;
  7875.   x_870X = cells_869X << 2L;
  7876.   arg0 = 5L;
  7877.   arg1 = port_859X;
  7878.   goto L7517;
  7879.  L31112: {
  7880.   long startup_proc_871X = arg0;
  7881.   goto L31478;
  7882.  L31478: {
  7883.   long ch_872X;
  7884.   ch_872X = getc((FILE *)port_859X);
  7885.   if (EOF == ch_872X) {
  7886.     long v_873X, v_874X;
  7887.     clearerr((FILE *)port_859X);
  7888.     v_874X = Qps_error_0(((long)"end of file while looking for page break"));
  7889.     arg0 = v_874X;
  7890.     goto L31106;}
  7891.   else {
  7892.     if (ch_872X == 12L) {
  7893.       arg0 = 0L;
  7894.       goto L31106;}
  7895.     else {
  7896.       goto L31478;}}}
  7897.  L31106: {
  7898.   if (old_level_864X == 12L) {
  7899.     arg0 = 9999999L;
  7900.     goto L31102;}
  7901.   else {
  7902.     long v_875X;
  7903.     v_875X = Qps_error_2(((long)"format of image is incompatible with this version of system"), old_level_864X, 12L);
  7904.     arg0 = v_875X;
  7905.     goto L31102;}
  7906.  L31102: {
  7907.   if (old_bits_per_byte_865X == 8L) {
  7908.     arg0 = 9999999L;
  7909.     goto L31076;}
  7910.   else {
  7911.     long v_876X;
  7912.     v_876X = Qps_error_2(((long)"incompatible bits-per-byte"), old_bits_per_byte_865X, 8L);
  7913.     arg0 = v_876X;
  7914.     goto L31076;}
  7915.  L31076: {
  7916.   if (old_bytes_per_cell_866X == 4L) {
  7917.     arg0 = 9999999L;
  7918.     goto L31050;}
  7919.   else {
  7920.     long v_877X;
  7921.     v_877X = Qps_error_2(((long)"incompatible bytes-per-cell"), old_bytes_per_cell_866X, 4L);
  7922.     arg0 = v_877X;
  7923.     goto L31050;}
  7924.  L31050: {
  7925.   long size_878X, x_879X;
  7926.   size_878X = Sinitial_heap_sizeS;
  7927.   x_879X = size_878X << 2L;
  7928.   if (x_879X == Smemory_endS) {
  7929.     arg0 = 8888888L;
  7930.     goto L17795;}
  7931.   else {
  7932.     long size_880X, x_881X;
  7933.     size_880X = 4L + x_879X;
  7934.     x_881X = ((long) malloc (size_880X* sizeof(char)));
  7935.     if (x_881X == 0L) {
  7936.       long v_882X;
  7937.       v_882X = Qps_error_1(((long)"out of memory, cannot allocate this many bytes"), size_880X);
  7938.       arg0 = x_881X;
  7939.       goto L17905;}
  7940.     else {
  7941.       arg0 = x_881X;
  7942.       goto L17905;}
  7943.    L17905: {
  7944.     long vec_883X = arg0;
  7945.     *((long *) vec_883X) = x_879X;
  7946.     SmemoryS = (vec_883X + 4L);
  7947.     Smemory_endS = x_879X;
  7948.     arg0 = 54321L;
  7949.     goto L17795;}}
  7950.  L17795: {
  7951.   long x_884X, delta_885X, new_hp_886X, new_limit_887X;
  7952.   x_884X = ((((Smemory_endS - Smemory_beginS) >> 2L) - Sstack_sizeS) >> 1L) << 2L;
  7953.   Snewspace_beginS = (SmemoryS + Smemory_beginS);
  7954.   Snewspace_endS = (Snewspace_beginS + x_884X);
  7955.   Soldspace_beginS = Snewspace_endS;
  7956.   Soldspace_endS = (Soldspace_beginS + x_884X);
  7957.   Sstack_beginS = Soldspace_endS;
  7958.   Sstack_endS = (Sstack_beginS + (Sstack_sizeS << 2L));
  7959.   ShpS = Snewspace_beginS;
  7960.   SlimitS = (Snewspace_endS - SmarginS);
  7961.   SrootS = 17L;
  7962.   delta_885X = Snewspace_beginS - x_868X;
  7963.   new_hp_886X = x_870X + delta_885X;
  7964.   new_limit_887X = Snewspace_endS - SmarginS;
  7965.   if ((((1L + ((((long)strlen((char *)startup_string_858X)) + 3L) >> 2L)) + 35L) + new_hp_886X) >= new_limit_887X) {
  7966.     long v_888X;
  7967.     v_888X = Qps_error_2(((long)"heap not big enough to restore this image"), new_hp_886X, new_limit_887X);
  7968.     arg0 = v_888X;
  7969.     goto L31590;}
  7970.   else {
  7971.     long count_889X, start_890X, got_891X;
  7972.     count_889X = (x_870X + 4L) - x_868X;
  7973.     start_890X = ShpS;
  7974.     got_891X = fread(start_890X, sizeof(char),count_889X, (FILE *)port_859X);
  7975.     if (got_891X == count_889X) {
  7976.       arg0 = 0L;
  7977.       goto L30975;}
  7978.     else {
  7979.       long v_892X;
  7980.       v_892X = Qps_error_0(((long)"block read did not get enough bytes"));
  7981.       arg0 = 0L;
  7982.       goto L30975;}
  7983.    L30975: {
  7984.     if ((*((long *) new_hp_886X)) == 1L) {
  7985.       arg0 = 9999999L;
  7986.       goto L30959;}
  7987.     else {
  7988.       long v_893X, port_894X, v_895X;
  7989.       v_893X = write_string(((long)"Correcting byte order of resumed image"), Scurrent_output_portS);
  7990.       port_894X = Scurrent_output_portS;
  7991.       putc(10L, (FILE *)port_894X);
  7992.       if (port_894X == Scurrent_output_portS) {
  7993.         long v_896X;
  7994.         fflush((FILE *)port_894X);
  7995.         arg0 = v_896X;
  7996.         goto L15543;}
  7997.       else {
  7998.         arg0 = 9999999L;
  7999.         goto L15543;}
  8000.      L15543: {
  8001.       arg0 = ShpS;
  8002.       goto L15432;
  8003.      L15432: {
  8004.       long ptr_897X = arg0;
  8005.       if (ptr_897X < new_hp_886X) {
  8006.         long x_898X, x_899X, d_900X;
  8007.         x_898X = (*((unsigned char *) ptr_897X));
  8008.         *((char *) ptr_897X) = ((*((unsigned char *) (ptr_897X + 3L))));
  8009.         *((char *) (ptr_897X + 3L)) = x_898X;
  8010.         x_899X = (*((unsigned char *) (ptr_897X + 1L)));
  8011.         *((char *) (ptr_897X + 1L)) = ((*((unsigned char *) (ptr_897X + 2L))));
  8012.         *((char *) (ptr_897X + 2L)) = x_899X;
  8013.         d_900X = *((long *) ptr_897X);
  8014.         *((long *) ptr_897X) = d_900X;
  8015.         if ((d_900X & 3L) == 2L) {
  8016.           if (((d_900X >> 2L) & 31L) >= 10L) {
  8017.             arg0 = (((((d_900X >> 7L)) + 3L) & ~3));
  8018.             goto L15469;}
  8019.           else {
  8020.             arg0 = 0L;
  8021.             goto L15469;}}
  8022.         else {
  8023.           arg0 = 0L;
  8024.           goto L15469;}
  8025.        L15469: {
  8026.         long y_901X = arg0;
  8027.         arg0 = ((ptr_897X + 4L) + y_901X);
  8028.         goto L15432;}}
  8029.       else {
  8030.         long x_902X, x_903X;
  8031.         x_902X = (*((unsigned char *) ptr_897X));
  8032.         *((char *) ptr_897X) = ((*((unsigned char *) (ptr_897X + 3L))));
  8033.         *((char *) (ptr_897X + 3L)) = x_902X;
  8034.         x_903X = (*((unsigned char *) (ptr_897X + 1L)));
  8035.         *((char *) (ptr_897X + 1L)) = ((*((unsigned char *) (ptr_897X + 2L))));
  8036.         *((char *) (ptr_897X + 2L)) = x_903X;
  8037.         if (1L == (*((long *) ptr_897X))) {
  8038.           arg0 = 9999999L;
  8039.           goto L30959;}
  8040.         else {
  8041.           long v_904X;
  8042.           v_904X = Qps_error_2(((long)"unable to correct byte order"), ptr_897X, (*((long *) ptr_897X)));
  8043.           arg0 = v_904X;
  8044.           goto L30959;}}}}}
  8045.    L30959: {
  8046.     if (delta_885X == 0L) {
  8047.       ShpS = new_hp_886X;
  8048.       arg0 = 54321L;
  8049.       goto L30935;}
  8050.     else {
  8051.       goto L15217;
  8052.      L15217: {
  8053.       if (ShpS < new_hp_886X) {
  8054.         long descriptor_905X;
  8055.         descriptor_905X = *((long *) ShpS);
  8056.         if ((descriptor_905X & 3L) == 3L) {
  8057.           arg0 = (((descriptor_905X - 3L) + delta_885X) + 3L);
  8058.           goto L15285;}
  8059.         else {
  8060.           arg0 = descriptor_905X;
  8061.           goto L15285;}
  8062.        L15285: {
  8063.         long d_906X = arg0;
  8064.         *((long *) ShpS) = d_906X;
  8065.         ShpS = (ShpS + 4L);
  8066.         if ((d_906X & 3L) == 2L) {
  8067.           if (((d_906X >> 2L) & 31L) >= 10L) {
  8068.             ShpS = (ShpS + (((((d_906X >> 7L)) + 3L) & ~3)));
  8069.             arg0 = 54321L;
  8070.             goto L15269;}
  8071.           else {
  8072.             arg0 = 8888888L;
  8073.             goto L15269;}}
  8074.         else {
  8075.           arg0 = 8888888L;
  8076.           goto L15269;}
  8077.        L15269: {
  8078.         goto L15217;}}}
  8079.       else {
  8080.         arg0 = 8888888L;
  8081.         goto L30935;}}}
  8082.    L30935: {
  8083.     long x_907X;
  8084.     x_907X = ((long) malloc (404L* sizeof(char)));
  8085.     if (x_907X == 0L) {
  8086.       long v_908X;
  8087.       v_908X = Qps_error_1(((long)"out of memory, cannot allocate this many bytes"), 404L);
  8088.       arg0 = x_907X;
  8089.       goto L27227;}
  8090.     else {
  8091.       arg0 = x_907X;
  8092.       goto L27227;}
  8093.    L27227: {
  8094.     long vec_909X = arg0;
  8095.     long vec_910X, len_911X;
  8096.     *((long *) vec_909X) = 100L;
  8097.     vec_910X = vec_909X + 4L;
  8098.     len_911X = *((long *) (vec_910X + -4L));
  8099.     arg0 = 0L;
  8100.     goto L27238;
  8101.    L27238: {
  8102.     long i_912X = arg0;
  8103.     if (i_912X >= len_911X) {
  8104.       long x_913X;
  8105.       Sopen_portsS = vec_910X;
  8106.       x_913X = ((long) malloc (404L* sizeof(char)));
  8107.       if (x_913X == 0L) {
  8108.         long v_914X;
  8109.         v_914X = Qps_error_1(((long)"out of memory, cannot allocate this many bytes"), 404L);
  8110.         arg0 = x_913X;
  8111.         goto L27178;}
  8112.       else {
  8113.         arg0 = x_913X;
  8114.         goto L27178;}
  8115.      L27178: {
  8116.       long vec_915X = arg0;
  8117.       long vec_916X, len_917X;
  8118.       *((long *) vec_915X) = 100L;
  8119.       vec_916X = vec_915X + 4L;
  8120.       len_917X = *((long *) (vec_916X + -4L));
  8121.       arg0 = 0L;
  8122.       goto L27189;
  8123.      L27189: {
  8124.       long i_918X = arg0;
  8125.       if (i_918X >= len_917X) {
  8126.         Sopen_vm_portsS = vec_916X;
  8127.         *((long *) Sopen_portsS) = Scurrent_input_portS;
  8128.         *((long *) (Sopen_portsS + 4L)) = Scurrent_output_portS;
  8129.         arg0 = 2L;
  8130.         arg1 = ((long)"si");
  8131.         goto L23808;
  8132.        L26902: {
  8133.         long d_919X = arg0;
  8134.         long new_920X;
  8135.         *((long *) ShpS) = 2070L;
  8136.         ShpS = (ShpS + 4L);
  8137.         new_920X = ShpS + 3L;
  8138.         ShpS = (ShpS + 16L);
  8139.         *((long *) (ShpS + -4L)) = 0L;
  8140.         *((long *) (new_920X - 3L)) = 4L;
  8141.         *((long *) ((new_920X - 3L) + 4L)) = 0L;
  8142.         *((long *) ((new_920X - 3L) + 8L)) = 1L;
  8143.         *((long *) ((new_920X - 3L) + 12L)) = d_919X;
  8144.         arg0 = 1L;
  8145.         arg1 = ((long)"so");
  8146.         goto L23808;
  8147.        L26926: {
  8148.         long d_921X = arg0;
  8149.         long new_922X, new_923X;
  8150.         *((long *) ShpS) = 2070L;
  8151.         ShpS = (ShpS + 4L);
  8152.         new_922X = ShpS + 3L;
  8153.         ShpS = (ShpS + 16L);
  8154.         *((long *) (ShpS + -4L)) = 0L;
  8155.         *((long *) (new_922X - 3L)) = 8L;
  8156.         *((long *) ((new_922X - 3L) + 4L)) = 4L;
  8157.         *((long *) ((new_922X - 3L) + 8L)) = 1L;
  8158.         *((long *) ((new_922X - 3L) + 12L)) = d_921X;
  8159.         *((long *) Sopen_vm_portsS) = new_920X;
  8160.         *((long *) (Sopen_vm_portsS + 4L)) = new_922X;
  8161.         *((long *) ShpS) = 7178L;
  8162.         ShpS = (ShpS + 4L);
  8163.         new_923X = ShpS + 3L;
  8164.         ShpS = (ShpS + 56L);
  8165.         *((long *) (ShpS + -4L)) = 0L;
  8166.         SrootS = new_923X;
  8167.         *((long *) ((SrootS - 3L) + 40L)) = 0L;
  8168.         arg0 = 0L;
  8169.         arg1 = 150L;
  8170.         goto L23638;
  8171.        L30020: {
  8172.         long val_924X = arg0;
  8173.         long bottom_925X;
  8174.         *((long *) ((SrootS - 3L) + 44L)) = val_924X;
  8175.         *((long *) ((SrootS - 3L) + 48L)) = 0L;
  8176.         *((long *) ((SrootS - 3L) + 52L)) = 0L;
  8177.         SstackS = (Sstack_endS - 4L);
  8178.         Sstack_limitS = (Sstack_beginS + 296L);
  8179.         SstackS = (SstackS - 20L);
  8180.         *((long *) (SstackS + 4L)) = 2082L;
  8181.         bottom_925X = ((SstackS + 4L) + 4L) + 3L;
  8182.         *((long *) ((bottom_925X - 3L) + 4L)) = 0L;
  8183.         *((long *) (bottom_925X - 3L)) = 1L;
  8184.         arg0 = 1L;
  8185.         arg1 = 31L;
  8186.         goto L23638;
  8187.        L26698: {
  8188.         long val_926X = arg0;
  8189.         *((long *) ((bottom_925X - 3L) + 8L)) = val_926X;
  8190.         *((long *) ((bottom_925X - 3L) + 12L)) = 17L;
  8191.         Sbottom_of_stackS = bottom_925X;
  8192.         if ((startup_proc_871X & 3L) == 3L) {
  8193.           arg0 = (((startup_proc_871X - 3L) + delta_885X) + 3L);
  8194.           goto L31590;}
  8195.         else {
  8196.           arg0 = startup_proc_871X;
  8197.           goto L31590;}}}
  8198.        L23638: {
  8199.         long c_927X = arg0;
  8200.         long op_928X = arg1;
  8201.         long new_929X, new_930X;
  8202.         *((long *) ShpS) = 1034L;
  8203.         ShpS = (ShpS + 4L);
  8204.         new_929X = ShpS + 3L;
  8205.         ShpS = (ShpS + 8L);
  8206.         *((long *) (ShpS + -4L)) = 0L;
  8207.         *((long *) ShpS) = 302L;
  8208.         ShpS = (ShpS + 4L);
  8209.         new_930X = ShpS + 3L;
  8210.         ShpS = (ShpS + 4L);
  8211.         *((long *) (ShpS + -4L)) = 0L;
  8212.         *((long *) (new_929X - 3L)) = new_930X;
  8213.         *((char *) (new_930X - 3L)) = op_928X;
  8214.         *((char *) ((new_930X - 3L) + 1L)) = 26L;
  8215.         switch (c_927X) {
  8216.           case 0 : {
  8217.             arg0 = new_929X;
  8218.             goto L30020;}
  8219.             break;
  8220.           case 1 : {
  8221.             arg0 = new_929X;
  8222.             goto L26698;}
  8223.             break;
  8224.         }}}}}
  8225.       else {
  8226.         *((long *) (vec_916X + (i_918X * 4L))) = 1L;
  8227.         arg0 = (i_918X + 1L);
  8228.         goto L27189;}}}}
  8229.     else {
  8230.       *((long *) (vec_910X + (i_912X * 4L))) = 0L;
  8231.       arg0 = (i_912X + 1L);
  8232.       goto L27238;}}}}}}}}}}}}}}}}}}
  8233.  L7517: {
  8234.   long c_931X = arg0;
  8235.   long port_932X = arg1;
  8236.   goto L7525;
  8237.  L7525: {
  8238.   long ch_933X;
  8239.   ch_933X = getc((FILE *)port_932X);
  8240.   if (EOF == ch_933X) {
  8241.     long v_934X;
  8242.     clearerr((FILE *)port_932X);
  8243.     arg0 = 0L;
  8244.     goto L74762;}
  8245.   else {
  8246.     if (ch_933X == 45L) {
  8247.       long ch_935X;
  8248.       ch_935X = getc((FILE *)port_932X);
  8249.       if (EOF == ch_935X) {
  8250.         long v_936X;
  8251.         clearerr((FILE *)port_932X);
  8252.         arg0 = 0L;
  8253.         goto L74762;}
  8254.       else {
  8255.         arg0 = 0L;
  8256.         arg1 = ch_935X;
  8257.         goto L7691;
  8258.        L7691: {
  8259.         long r_937X = arg0;
  8260.         long ch_938X = arg1;
  8261.         long ch_939X;
  8262.         ch_939X = ch_938X - 48L;
  8263.         if (ch_939X >= 0L) {
  8264.           if (ch_939X <= 9L) {
  8265.             long r_940X, ch_941X;
  8266.             r_940X = ch_939X + (r_937X * 10L);
  8267.             ch_941X = getc((FILE *)port_932X);
  8268.             if (EOF == ch_941X) {
  8269.               long v_942X;
  8270.               clearerr((FILE *)port_932X);
  8271.               arg0 = r_940X;
  8272.               goto L7560;}
  8273.             else {
  8274.               arg0 = r_940X;
  8275.               arg1 = ch_941X;
  8276.               goto L7691;}}
  8277.           else {
  8278.             arg0 = r_937X;
  8279.             goto L7560;}}
  8280.         else {
  8281.           arg0 = r_937X;
  8282.           goto L7560;}}
  8283.        L7560: {
  8284.         long y_943X = arg0;
  8285.         arg0 = (0L - y_943X);
  8286.         goto L74762;}}}
  8287.     else {
  8288.       if (ch_933X == 43L) {
  8289.         long ch_944X;
  8290.         ch_944X = getc((FILE *)port_932X);
  8291.         if (EOF == ch_944X) {
  8292.           long v_945X;
  8293.           clearerr((FILE *)port_932X);
  8294.           arg0 = 0L;
  8295.           goto L74762;}
  8296.         else {
  8297.           arg0 = 0L;
  8298.           arg1 = ch_944X;
  8299.           goto L7742;
  8300.          L7742: {
  8301.           long r_946X = arg0;
  8302.           long ch_947X = arg1;
  8303.           long ch_948X;
  8304.           ch_948X = ch_947X - 48L;
  8305.           if (ch_948X >= 0L) {
  8306.             if (ch_948X <= 9L) {
  8307.               long r_949X, ch_950X;
  8308.               r_949X = ch_948X + (r_946X * 10L);
  8309.               ch_950X = getc((FILE *)port_932X);
  8310.               if (EOF == ch_950X) {
  8311.                 long v_951X;
  8312.                 clearerr((FILE *)port_932X);
  8313.                 arg0 = r_949X;
  8314.                 goto L74762;}
  8315.               else {
  8316.                 arg0 = r_949X;
  8317.                 arg1 = ch_950X;
  8318.                 goto L7742;}}
  8319.             else {
  8320.               arg0 = r_946X;
  8321.               goto L74762;}}
  8322.           else {
  8323.             arg0 = r_946X;
  8324.             goto L74762;}}}}
  8325.       else {
  8326.         if (ch_933X >= 48L) {
  8327.           if (ch_933X <= 57L) {
  8328.             arg0 = 0L;
  8329.             arg1 = ch_933X;
  8330.             goto L7805;
  8331.            L7805: {
  8332.             long r_952X = arg0;
  8333.             long ch_953X = arg1;
  8334.             long ch_954X;
  8335.             ch_954X = ch_953X - 48L;
  8336.             if (ch_954X >= 0L) {
  8337.               if (ch_954X <= 9L) {
  8338.                 long r_955X, ch_956X;
  8339.                 r_955X = ch_954X + (r_952X * 10L);
  8340.                 ch_956X = getc((FILE *)port_932X);
  8341.                 if (EOF == ch_956X) {
  8342.                   long v_957X;
  8343.                   clearerr((FILE *)port_932X);
  8344.                   arg0 = r_955X;
  8345.                   goto L74762;}
  8346.                 else {
  8347.                   arg0 = r_955X;
  8348.                   arg1 = ch_956X;
  8349.                   goto L7805;}}
  8350.               else {
  8351.                 arg0 = r_952X;
  8352.                 goto L74762;}}
  8353.             else {
  8354.               arg0 = r_952X;
  8355.               goto L74762;}}}
  8356.           else {
  8357.             arg0 = 0L;
  8358.             goto L7638;}}
  8359.         else {
  8360.           arg0 = 0L;
  8361.           goto L7638;}
  8362.        L7638: {
  8363.         goto L7525;}}}}}
  8364.  L74762: {
  8365.   long ret_val_958X = arg0;
  8366.   switch (c_931X) {
  8367.     case 0 : {
  8368.       arg0 = ret_val_958X;
  8369.       goto L31150;}
  8370.       break;
  8371.     case 1 : {
  8372.       arg0 = ret_val_958X;
  8373.       goto L31144;}
  8374.       break;
  8375.     case 2 : {
  8376.       arg0 = ret_val_958X;
  8377.       goto L31138;}
  8378.       break;
  8379.     case 3 : {
  8380.       arg0 = ret_val_958X;
  8381.       goto L31130;}
  8382.       break;
  8383.     case 4 : {
  8384.       arg0 = ret_val_958X;
  8385.       goto L31120;}
  8386.       break;
  8387.     case 5 : {
  8388.       arg0 = ret_val_958X;
  8389.       goto L31112;}
  8390.       break;
  8391.   }}}}}
  8392.  L31590: {
  8393.   long val_959X = arg0;
  8394.   long v_960X, v_961X;
  8395.   fclose((FILE *)port_859X);
  8396.   v_961X = clear_registers();
  8397.   arg0 = 0L;
  8398.   arg1 = startup_string_858X;
  8399.   goto L23808;
  8400.  L38461: {
  8401.   long x_962X = arg0;
  8402.   *((long *) SstackS) = x_962X;
  8403.   SstackS = (SstackS - 4L);
  8404.   *((long *) SstackS) = (*((long *) Sopen_vm_portsS));
  8405.   SstackS = (SstackS - 4L);
  8406.   *((long *) SstackS) = (*((long *) (Sopen_vm_portsS + 4L)));
  8407.   SstackS = (SstackS - 4L);
  8408.   SnargsS = 3L;
  8409.   SvalS = val_959X;
  8410.   arg0 = ((long)perform_application);
  8411.   goto L38478;
  8412.  L38478: {
  8413.   long tag_963X = arg0;
  8414.   if (tag_963X == 0L) {
  8415.     return(Sexit_statusS);}
  8416.   else {
  8417.     long v_964X;
  8418.     v_964X = ((long(*)())tag_963X)();
  8419.     arg0 = v_964X;
  8420.     goto L38478;}}}}
  8421.  L23808: {
  8422.   long c_965X = arg0;
  8423.   long string_966X = arg1;
  8424.   long z_967X, new_968X;
  8425.   z_967X = (long)strlen((char *)string_966X);
  8426.   *((long *) ShpS) = ((((z_967X << 5L) + 10L) << 2L) + 2L);
  8427.   ShpS = (ShpS + 4L);
  8428.   new_968X = ShpS + 3L;
  8429.   ShpS = (ShpS + (((z_967X + 3L) & ~3)));
  8430.   if (z_967X > 0L) {
  8431.     *((long *) (ShpS + -4L)) = 0L;
  8432.     arg0 = new_968X;
  8433.     goto L23874;}
  8434.   else {
  8435.     arg0 = new_968X;
  8436.     goto L23874;}
  8437.  L23874: {
  8438.   long s_969X = arg0;
  8439.   arg0 = 0L;
  8440.   goto L23828;
  8441.  L23828: {
  8442.   long i_970X = arg0;
  8443.   if (i_970X >= z_967X) {
  8444.     switch (c_965X) {
  8445.       case 0 : {
  8446.         arg0 = s_969X;
  8447.         goto L38461;}
  8448.         break;
  8449.       case 1 : {
  8450.         arg0 = s_969X;
  8451.         goto L26926;}
  8452.         break;
  8453.       case 2 : {
  8454.         arg0 = s_969X;
  8455.         goto L26902;}
  8456.         break;
  8457.     }}
  8458.   else {
  8459.     *((char *) ((s_969X - 3L) + i_970X)) = ((*((unsigned char *) (string_966X + i_970X))));
  8460.     arg0 = (i_970X + 1L);
  8461.     goto L23828;}}}}}
  8462. }
  8463. scheme48_init()
  8464. {
  8465. Sexit_statusS = 0L;
  8466. Smaximum_string_lengthS = 255L;
  8467. Sthe_stringS = I70();
  8468. Scurrent_input_portS = I73();
  8469. Scurrent_output_portS = I74();
  8470. SmemoryS = 9999999L;
  8471. Smemory_beginS = 0L;
  8472. Smemory_endS = 0L;
  8473. ShpS = 0L;
  8474. SlimitS = 0L;
  8475. Sheap_keyS = 0L;
  8476. Sokayed_spaceS = 0L;
  8477. Sopen_portsS = 9999999L;
  8478. Sopen_vm_portsS = 9999999L;
  8479. Snewspace_beginS = 0L;
  8480. Snewspace_endS = 0L;
  8481. Soldspace_beginS = 0L;
  8482. Soldspace_endS = 0L;
  8483. Sstack_beginS = 0L;
  8484. Sstack_endS = 0L;
  8485.  
  8486. /* ROBOT HACK */
  8487. #ifdef ROBOT
  8488. Sstack_sizeS = 5000L;        /* reduced - jar 8/7/91 */
  8489. #else
  8490. Sstack_sizeS = 10000L;
  8491. #endif
  8492.  
  8493. SrootS = 0L;
  8494. Sinitial_heap_sizeS = 100000L;
  8495. SmarginS = 1024L;
  8496. SscanS = 0L;
  8497. SstackS = 9999999L;
  8498. Sbottom_of_stackS = 9999999L;
  8499. Sstack_limitS = 9999999L;
  8500. ScontsS = 0L;
  8501. Sconts_slotsS = 0L;
  8502. Sconts_overflowS = 0L;
  8503. Sconts_overflow_slotsS = 0L;
  8504. Sconts_preservedS = 0L;
  8505. Sconts_preserved_slotsS = 0L;
  8506. Sconts_from_heapS = 0L;
  8507. Sconts_from_heap_slotsS = 0L;
  8508. SenvsS = 0L;
  8509. Senvs_slotsS = 0L;
  8510. Senvs_closedS = 0L;
  8511. Senvs_closed_slotsS = 0L;
  8512. Senvs_overflowS = 0L;
  8513. Senvs_overflow_slotsS = 0L;
  8514. Senvs_preservedS = 0L;
  8515. Senvs_preserved_slotsS = 0L;
  8516. Sstack_keyS = 0L;
  8517. Sokayed_stack_spaceS = 0L;
  8518. Sexception_space_usedPS = 0L;
  8519. Senvs_madeS = 0L;
  8520. StemplateS = 9999999L;
  8521. SenvS = 9999999L;
  8522. ScontS = 9999999L;
  8523. Scode_pointerS = 9999999L;
  8524. SnargsS = 9999999L;
  8525. SvalS = 9999999L;
  8526. Senabled_interruptsS = 9999999L;
  8527. Sexception_handlerS = 9999999L;
  8528. Sinterrupt_handlersS = 9999999L;
  8529. Sdynamic_stateS = 9999999L;
  8530. Spending_interruptsS = 9999999L;
  8531. }
  8532.