#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "prescheme.h"
#include "scheme48vm-prelude.h"

static char add_more_channels(long);
static char encode_scalar_value(long, long, char *, long, char*, char*, long*);
static char decode_scalar_value(long, char *, long, char*, char*, long*, long*);
static char integerLE(long, long);
static char integerGE(long, long);
static char shared_binding_undefinedP(long);
static void enqueue_channelB(long, long, long);
static void decode_utf_8B(char *, long, long);
static void copy_vm_string_to_stringUlatin_1B(long, long, long, char*);
static long close_channelB(long);
static long make_blank_return_code(long, long, long, long, long);
static long enter_stringAgc_n(char*, long);
static long add_log_entryAgc(long, long, long, long, long, char);
static long enter_bignum(char *);
static char integerE(long, long);
static long make_channel(long, long, long, long, long, long, long, long);
static long write_vm_string(long, FILE *);
static long Haction4940(long);
static long current_code_vector(void);
static void channel_close_error(long, long, long);
static long integer_bit_count(long);
static long integer_add(long, long);
static long integer_subtract(long, long);
static long integer_multiply(long, long);
static long integer_bitwise_not(long);
static long integer_bitwise_and(long, long);
static long integer_bitwise_ior(long, long);
static long integer_bitwise_xor(long, long);
static long Hinteger_op8311(long, long);
static long Hinteger_op8242(long, long);
static char for_each_imported_binding(char(*)(long));
static long really_preserve_continuation(long);
static void push_exception_setupB(long, long);
static long Hlookup2943(long, long, long);
static long Hlookup2924(long, long, long);
static void HtopD11565(void);
static void HtopD11576(void);
void s48_set_native_protocolB(long);
void s48_set_extension_valueB(long);
long s48_channel_count(void);
long *s48_channels(void);
char s48_os_signal_pending(void);
long s48_imported_bindings(void);
long s48_exported_bindings(void);
long s48_symbol_table(void);
char * s48_set_gc_roots_baseB(void);
char s48_release_gc_roots_baseB(char *);
void s48_reset_external_rootsB(void);
void s48_note_event(void);
void s48_reset_interruptsB(void);
void s48_disable_interruptsB(void);
void s48_add_os_signal(long);
void s48_push_gc_rootsB(char *, long);
char * s48_register_gc_rootB(char *);
void s48_stack_setB(long, long);
long s48_stack_ref(long);
void s48_push(long);
long s48_resetup_external_exception(long, long);
char s48_pop_gc_rootsB(void);
void s48_unregister_gc_rootB(char *);
char * s48_shorten_bignum(char *, long);
long s48_allocate_string(long);
long s48_allocate_bignum(long);
void s48_enable_interruptsB(void);
long s48_set_channel_os_index(long, long);
long s48_enter_string_utf_8(char *);
long s48_enter_string_utf_8_n(char *, long);
long s48_integer_or_floanum_L(long, long);
long s48_integer_or_floanum_G(long, long);
long s48_integer_or_floanum_LE(long, long);
long s48_integer_or_floanum_GE(long, long);
long s48_make_blank_return_code(long, long, long, long);
long s48_enter_string_latin_1_n(char*, long);
long s48_integer_or_floanum_E(long, long);
void s48_close_channel(long);
long s48_enter_string_latin_1(char*);
void s48_string_set(long, long, long);
long s48_string_ref(long, long);
long s48_string_length(long);
void s48_copy_latin_1_to_string_n(char*, long, long);
void s48_copy_latin_1_to_string(char*, long);
void s48_copy_string_to_latin_1(long, char*);
void s48_copy_string_to_latin_1_n(long, long, long, char*);
long s48_string_utf_8_length(long);
long s48_string_utf_8_length_n(long, long, long);
void s48_copy_string_to_utf_8(long, char *);
void s48_copy_string_to_utf_8_n(long, long, long, char *);
void check_stack(void);
long s48_really_add_channel(long, long, long);
long s48_integer_bit_count(long);
long s48_enter_integer(long);
long s48_integer_or_floanum_add(long, long);
long s48_integer_or_floanum_sub(long, long);
long s48_integer_or_floanum_mul(long, long);
long s48_integer_bitwise_not(long);
long s48_integer_bitwise_and(long, long);
long s48_integer_bitwise_ior(long, long);
long s48_integer_bitwise_xor(long, long);
void s48_setup_external_exception(long, long);
long s48_integer_quotient(long, long);
long s48_integer_remainder(long, long);
void s48_copy_stack_into_heap(void);
long s48_get_imported_binding(char*);
void s48_define_exported_binding(char*, long);
void s48_initialize_vm(char *, long);
void s48_post_gc_cleanup(void);
void s48_gc_root(void);
long s48_restart(long, long);
long s48_call_startup_procedure(char**, long);
static long Spending_interruptsS;
static long Snumber_of_channelsS;
static long *Svm_channelsS;
static long Spending_channels_headS;
static long Spending_channels_tailS;
static long *Sutf_8_state_tableS;
static long *Sutf_8_masksS;
static long Stemp0S;
static long Stemp1S;
static char * Sstack_beginS;
static char * Sstack_endS;
static char * Sreal_stack_limitS;
static char * Sbottom_of_stackS;
static long Sheap_continuationS;
static char Sstack_warningPS;
static long Soldspace_beginS;
static long Soldspace_endS;
static long Sexception_handlersS;
static long Sinterrupt_handlersS;
static char * Slast_code_pointer_resumedS;
static long Scurrent_threadS;
static long Ssession_dataS;
static long Sfinalizer_alistS;
static long Sfinalize_theseS;
static long Senabled_interruptsS;
static long Sinterrupted_templateS;
static long Sinterrupted_byte_opcode_return_codeS;
static long Sinterrupted_native_call_return_codeS;
static long Snative_poll_return_codeS;
static long Sexception_return_codeS;
static long Snative_exception_return_codeS;
static long Scall_with_values_return_codeS;
static long Ssaved_pcS;
static long *Sos_signal_ringS;
static long Sos_signal_ring_startS;
static long Sos_signal_ring_readyS;
static long Sos_signal_ring_endS;
static char Sexternal_exceptionPS;
static long Sexternal_exception_nargsS;
static long Simported_bindingsS;
static long Sexported_bindingsS;
static long Sthe_symbol_tableS;
static char * Sexternal_root_stackS;
static char * Sexternal_root_stack_baseS;
static char * Spermanent_external_rootsS;
static long Sempty_logS;
static void (*Spost_gc_cleanupS)(void);
static void (*Sgc_root_procS)(void);
char * SstackS;
char * s48_Sstack_limitS;
char * ScontS;
char * Scode_pointerS;
long SvalS;
long Slast_code_calledS;
char s48_Spending_interruptPS;
long Snative_exception_contS;
long s48_Snative_protocolS;
long s48_Sextension_valueS;
long s48_Scallback_return_stack_blockS;
char s48_Spending_eventsPS;

static char add_more_channels(long index_7X)
{
  long arg0K0;
  long i_13X;
  long i_12X;
  long *new_vm_channels_11X;
  long new_count_10X;
  long y_9X;
  long x_8X;
 {  x_8X = 1 + index_7X;
  y_9X = 8 + (Snumber_of_channelsS);
  if ((x_8X < y_9X)) {
    arg0K0 = y_9X;
    goto L3555;}
  else {
    arg0K0 = x_8X;
    goto L3555;}}
 L3555: {
  new_count_10X = arg0K0;
  new_vm_channels_11X = (long*)malloc(sizeof(long) * new_count_10X);
  if ((NULL == new_vm_channels_11X)) {
    return 0;}
  else {
    arg0K0 = 0;
    goto L3567;}}
 L3567: {
  i_12X = arg0K0;
  if ((i_12X == (Snumber_of_channelsS))) {
    arg0K0 = (Snumber_of_channelsS);
    goto L3640;}
  else {
    *(new_vm_channels_11X + i_12X) = (*((Svm_channelsS) + i_12X));
    arg0K0 = (1 + i_12X);
    goto L3567;}}
 L3640: {
  i_13X = arg0K0;
  if ((i_13X == new_count_10X)) {
    free((Svm_channelsS));
    Svm_channelsS = new_vm_channels_11X;
    Snumber_of_channelsS = new_count_10X;
    return 1;}
  else {
    *(new_vm_channels_11X + i_13X) = 1;
    arg0K0 = (1 + i_13X);
    goto L3640;}}
}
static char encode_scalar_value(long encoding_14X, long value_15X, char * buffer_16X, long count_17X, char *TT0, char *TT1, long *TT2)
{
  long word_21X;
  long word_20X;
  long word_19X;
  long word_18X;
 {  if ((0 == encoding_14X)) {
    if ((count_17X < 1)) {
      *TT0 = 1;
      *TT1 = 1;
      *TT2 = 1;
      return 1;}
    else {
      if ((value_15X < 128)) {
        *((unsigned char *) buffer_16X) = (unsigned char) (value_15X);
        *TT0 = 1;
        *TT1 = 0;
        *TT2 = 1;
        return 1;}
      else {
        *TT0 = 0;
        *TT1 = 0;
        *TT2 = 0;
        return 1;}}}
  else {
    if ((1 == encoding_14X)) {
      if ((count_17X < 1)) {
        *TT0 = 1;
        *TT1 = 1;
        *TT2 = 1;
        return 1;}
      else {
        if ((value_15X < 256)) {
          *((unsigned char *) buffer_16X) = (unsigned char) (value_15X);
          *TT0 = 1;
          *TT1 = 0;
          *TT2 = 1;
          return 1;}
        else {
          *TT0 = 0;
          *TT1 = 0;
          *TT2 = 0;
          return 1;}}}
    else {
      if ((2 == encoding_14X)) {
        if ((127 < value_15X)) {
          if ((2047 < value_15X)) {
            if ((65535 < value_15X)) {
              if ((count_17X < 4)) {
                *TT0 = 1;
                *TT1 = 1;
                *TT2 = 4;
                return 1;}
              else {
                *((unsigned char *) buffer_16X) = (unsigned char) ((240 + ((long)(((unsigned long)(1835008 & value_15X))>>18))));
                *((unsigned char *) (buffer_16X + 1)) = (unsigned char) ((128 + ((long)(((unsigned long)(258048 & value_15X))>>12))));
                *((unsigned char *) (buffer_16X + 2)) = (unsigned char) ((128 + ((long)(((unsigned long)(4032 & value_15X))>>6))));
                *((unsigned char *) (buffer_16X + 3)) = (unsigned char) ((128 + (63 & value_15X)));
                *TT0 = 1;
                *TT1 = 0;
                *TT2 = 4;
                return 1;}}
            else {
              if ((count_17X < 3)) {
                *TT0 = 1;
                *TT1 = 1;
                *TT2 = 3;
                return 1;}
              else {
                *((unsigned char *) buffer_16X) = (unsigned char) ((224 + ((long)(((unsigned long)(61440 & value_15X))>>12))));
                *((unsigned char *) (buffer_16X + 1)) = (unsigned char) ((128 + ((long)(((unsigned long)(4032 & value_15X))>>6))));
                *((unsigned char *) (buffer_16X + 2)) = (unsigned char) ((128 + (63 & value_15X)));
                *TT0 = 1;
                *TT1 = 0;
                *TT2 = 3;
                return 1;}}}
          else {
            if ((count_17X < 2)) {
              *TT0 = 1;
              *TT1 = 1;
              *TT2 = 2;
              return 1;}
            else {
              *((unsigned char *) buffer_16X) = (unsigned char) ((192 + ((long)(((unsigned long)(1984 & value_15X))>>6))));
              *((unsigned char *) (buffer_16X + 1)) = (unsigned char) ((128 + (63 & value_15X)));
              *TT0 = 1;
              *TT1 = 0;
              *TT2 = 2;
              return 1;}}}
        else {
          if ((count_17X < 1)) {
            *TT0 = 1;
            *TT1 = 1;
            *TT2 = 1;
            return 1;}
          else {
            *((unsigned char *) buffer_16X) = (unsigned char) (value_15X);
            *TT0 = 1;
            *TT1 = 0;
            *TT2 = 1;
            return 1;}}}
      else {
        if ((3 == encoding_14X)) {
          if ((65535 < value_15X)) {
            if ((count_17X < 4)) {
              *TT0 = 1;
              *TT1 = 1;
              *TT2 = 4;
              return 1;}
            else {
              word_18X = 55232 + ((long)(((unsigned long)value_15X)>>10));
              *((unsigned char *) buffer_16X) = (unsigned char) ((255 & word_18X));
              *((unsigned char *) (buffer_16X + 1)) = (unsigned char) (((long)(((unsigned long)word_18X)>>8)));
              word_19X = 56320 + (1023 & value_15X);
              *((unsigned char *) (buffer_16X + 2)) = (unsigned char) ((255 & word_19X));
              *((unsigned char *) (buffer_16X + 3)) = (unsigned char) (((long)(((unsigned long)word_19X)>>8)));
              *TT0 = 1;
              *TT1 = 0;
              *TT2 = 4;
              return 1;}}
          else {
            if ((count_17X < 2)) {
              *TT0 = 1;
              *TT1 = 1;
              *TT2 = 2;
              return 1;}
            else {
              *((unsigned char *) buffer_16X) = (unsigned char) ((255 & value_15X));
              *((unsigned char *) (buffer_16X + 1)) = (unsigned char) (((long)(((unsigned long)value_15X)>>8)));
              *TT0 = 1;
              *TT1 = 0;
              *TT2 = 2;
              return 1;}}}
        else {
          if ((4 == encoding_14X)) {
            if ((65535 < value_15X)) {
              if ((count_17X < 4)) {
                *TT0 = 1;
                *TT1 = 1;
                *TT2 = 4;
                return 1;}
              else {
                word_20X = 55232 + ((long)(((unsigned long)value_15X)>>10));
                *((unsigned char *) buffer_16X) = (unsigned char) (((long)(((unsigned long)word_20X)>>8)));
                *((unsigned char *) (buffer_16X + 1)) = (unsigned char) ((255 & word_20X));
                word_21X = 56320 + (1023 & value_15X);
                *((unsigned char *) (buffer_16X + 2)) = (unsigned char) (((long)(((unsigned long)word_21X)>>8)));
                *((unsigned char *) (buffer_16X + 3)) = (unsigned char) ((255 & word_21X));
                *TT0 = 1;
                *TT1 = 0;
                *TT2 = 4;
                return 1;}}
            else {
              if ((count_17X < 2)) {
                *TT0 = 1;
                *TT1 = 1;
                *TT2 = 2;
                return 1;}
              else {
                *((unsigned char *) buffer_16X) = (unsigned char) (((long)(((unsigned long)value_15X)>>8)));
                *((unsigned char *) (buffer_16X + 1)) = (unsigned char) ((255 & value_15X));
                *TT0 = 1;
                *TT1 = 0;
                *TT2 = 2;
                return 1;}}}
          else {
            if ((5 == encoding_14X)) {
              if ((count_17X < 4)) {
                *TT0 = 1;
                *TT1 = 1;
                *TT2 = 4;
                return 1;}
              else {
                *((unsigned char *) buffer_16X) = (unsigned char) ((255 & value_15X));
                *((unsigned char *) (buffer_16X + 1)) = (unsigned char) (((long)(((unsigned long)(65280 & value_15X))>>8)));
                *((unsigned char *) (buffer_16X + 2)) = (unsigned char) (((long)(((unsigned long)(16711680 & value_15X))>>16)));
                *((unsigned char *) (buffer_16X + 3)) = (unsigned char) (((long)(((unsigned long)value_15X)>>24)));
                *TT0 = 1;
                *TT1 = 0;
                *TT2 = 4;
                return 1;}}
            else {
              if ((6 == encoding_14X)) {
                if ((count_17X < 4)) {
                  *TT0 = 1;
                  *TT1 = 1;
                  *TT2 = 4;
                  return 1;}
                else {
                  *((unsigned char *) buffer_16X) = (unsigned char) (((long)(((unsigned long)value_15X)>>24)));
                  *((unsigned char *) (buffer_16X + 1)) = (unsigned char) (((long)(((unsigned long)(16711680 & value_15X))>>16)));
                  *((unsigned char *) (buffer_16X + 2)) = (unsigned char) (((long)(((unsigned long)(65280 & value_15X))>>8)));
                  *((unsigned char *) (buffer_16X + 3)) = (unsigned char) ((255 & value_15X));
                  *TT0 = 1;
                  *TT1 = 0;
                  *TT2 = 4;
                  return 1;}}
              else {
                *TT0 = 0;
                *TT1 = 0;
                *TT2 = 0;
                return 0;}}}}}}}}
}
static char decode_scalar_value(long encoding_22X, char * buffer_23X, long count_24X, char *TT0, char *TT1, long *TT2, long *TT3)
{
  long arg0K3;
  long arg0K2;
  long arg0K1;
  long arg0K0;
  long v_38X;
  long scalar_value_37X;
  long state_36X;
  long c_35X;
  long scalar_value_34X;
  long mask_33X;
  long state_32X;
  long q_31X;
  long code_point_30X;
  long code_point_29X;
  long word1_28X;
  long word0_27X;
  long word1_26X;
  long word0_25X;
 {  if ((0 == encoding_22X)) {
    *TT0 = 1;
    *TT1 = 0;
    *TT2 = (*((unsigned char *) buffer_23X));
    *TT3 = 1;
    return 1;}
  else {
    if ((1 == encoding_22X)) {
      *TT0 = 1;
      *TT1 = 0;
      *TT2 = (*((unsigned char *) buffer_23X));
      *TT3 = 1;
      return 1;}
    else {
      if ((2 == encoding_22X)) {
        arg0K0 = 0;
        arg0K1 = 0;
        arg0K2 = 0;
        arg0K3 = 0;
        goto L7186;}
      else {
        if ((3 == encoding_22X)) {
          if ((count_24X < 2)) {
            *TT0 = 1;
            *TT1 = 1;
            *TT2 = 0;
            *TT3 = 2;
            return 1;}
          else {
            word0_25X = (*((unsigned char *) buffer_23X)) + ((((*((unsigned char *) (buffer_23X + 1))))<<8));
            if ((word0_25X < 55296)) {
              *TT0 = 1;
              *TT1 = 0;
              *TT2 = word0_25X;
              *TT3 = 2;
              return 1;}
            else {
              if ((57343 < word0_25X)) {
                *TT0 = 1;
                *TT1 = 0;
                *TT2 = word0_25X;
                *TT3 = 2;
                return 1;}
              else {
                if ((count_24X < 4)) {
                  *TT0 = 1;
                  *TT1 = 1;
                  *TT2 = 0;
                  *TT3 = 4;
                  return 1;}
                else {
                  if ((56319 < word0_25X)) {
                    *TT0 = 0;
                    *TT1 = 0;
                    *TT2 = 0;
                    *TT3 = 0;
                    return 1;}
                  else {
                    word1_26X = (*((unsigned char *) (buffer_23X + 2))) + ((((*((unsigned char *) (buffer_23X + 3))))<<8));
                    if ((word1_26X < 56320)) {
                      *TT0 = 0;
                      *TT1 = 0;
                      *TT2 = 0;
                      *TT3 = 0;
                      return 1;}
                    else {
                      if ((57343 < word1_26X)) {
                        *TT0 = 0;
                        *TT1 = 0;
                        *TT2 = 0;
                        *TT3 = 0;
                        return 1;}
                      else {
                        *TT0 = 1;
                        *TT1 = 0;
                        *TT2 = ((-56557568 + (((word0_25X)<<10))) + (1023 & word1_26X));
                        *TT3 = 4;
                        return 1;}}}}}}}}
        else {
          if ((4 == encoding_22X)) {
            if ((count_24X < 2)) {
              *TT0 = 1;
              *TT1 = 1;
              *TT2 = 0;
              *TT3 = 2;
              return 1;}
            else {
              word0_27X = ((((*((unsigned char *) buffer_23X)))<<8)) + (*((unsigned char *) (buffer_23X + 1)));
              if ((word0_27X < 55296)) {
                *TT0 = 1;
                *TT1 = 0;
                *TT2 = word0_27X;
                *TT3 = 2;
                return 1;}
              else {
                if ((57343 < word0_27X)) {
                  *TT0 = 1;
                  *TT1 = 0;
                  *TT2 = word0_27X;
                  *TT3 = 2;
                  return 1;}
                else {
                  if ((count_24X < 4)) {
                    *TT0 = 1;
                    *TT1 = 1;
                    *TT2 = 0;
                    *TT3 = 4;
                    return 1;}
                  else {
                    if ((56319 < word0_27X)) {
                      *TT0 = 0;
                      *TT1 = 0;
                      *TT2 = 0;
                      *TT3 = 0;
                      return 1;}
                    else {
                      word1_28X = ((((*((unsigned char *) (buffer_23X + 2))))<<8)) + (*((unsigned char *) (buffer_23X + 3)));
                      if ((word1_28X < 56320)) {
                        *TT0 = 0;
                        *TT1 = 0;
                        *TT2 = 0;
                        *TT3 = 0;
                        return 1;}
                      else {
                        if ((57343 < word1_28X)) {
                          *TT0 = 0;
                          *TT1 = 0;
                          *TT2 = 0;
                          *TT3 = 0;
                          return 1;}
                        else {
                          *TT0 = 1;
                          *TT1 = 0;
                          *TT2 = ((-56557568 + (((word0_27X)<<10))) + (1023 & word1_28X));
                          *TT3 = 4;
                          return 1;}}}}}}}}
          else {
            if ((5 == encoding_22X)) {
              if ((count_24X < 4)) {
                *TT0 = 1;
                *TT1 = 1;
                *TT2 = 0;
                *TT3 = 4;
                return 1;}
              else {
                code_point_29X = (((*((unsigned char *) buffer_23X)) + ((((*((unsigned char *) (buffer_23X + 1))))<<8))) + ((((*((unsigned char *) (buffer_23X + 2))))<<16))) + ((((*((unsigned char *) (buffer_23X + 3))))<<24));
                if ((code_point_29X < 0)) {
                  *TT0 = 0;
                  *TT1 = 0;
                  *TT2 = 0;
                  *TT3 = 0;
                  return 1;}
                else {
                  if ((55295 < code_point_29X)) {
                    if ((code_point_29X < 57344)) {
                      *TT0 = 0;
                      *TT1 = 0;
                      *TT2 = 0;
                      *TT3 = 0;
                      return 1;}
                    else {
                      if ((1114111 < code_point_29X)) {
                        *TT0 = 0;
                        *TT1 = 0;
                        *TT2 = 0;
                        *TT3 = 0;
                        return 1;}
                      else {
                        *TT0 = 1;
                        *TT1 = 0;
                        *TT2 = code_point_29X;
                        *TT3 = 4;
                        return 1;}}}
                  else {
                    *TT0 = 1;
                    *TT1 = 0;
                    *TT2 = code_point_29X;
                    *TT3 = 4;
                    return 1;}}}}
            else {
              if ((6 == encoding_22X)) {
                if ((count_24X < 4)) {
                  *TT0 = 1;
                  *TT1 = 1;
                  *TT2 = 0;
                  *TT3 = 4;
                  return 1;}
                else {
                  code_point_30X = ((((((*((unsigned char *) buffer_23X)))<<24)) + ((((*((unsigned char *) (buffer_23X + 1))))<<16))) + ((((*((unsigned char *) (buffer_23X + 2))))<<8))) + (*((unsigned char *) (buffer_23X + 3)));
                  if ((code_point_30X < 0)) {
                    *TT0 = 0;
                    *TT1 = 0;
                    *TT2 = 0;
                    *TT3 = 0;
                    return 1;}
                  else {
                    if ((55295 < code_point_30X)) {
                      if ((code_point_30X < 57344)) {
                        *TT0 = 0;
                        *TT1 = 0;
                        *TT2 = 0;
                        *TT3 = 0;
                        return 1;}
                      else {
                        if ((1114111 < code_point_30X)) {
                          *TT0 = 0;
                          *TT1 = 0;
                          *TT2 = 0;
                          *TT3 = 0;
                          return 1;}
                        else {
                          *TT0 = 1;
                          *TT1 = 0;
                          *TT2 = code_point_30X;
                          *TT3 = 4;
                          return 1;}}}
                    else {
                      *TT0 = 1;
                      *TT1 = 0;
                      *TT2 = code_point_30X;
                      *TT3 = 4;
                      return 1;}}}}
              else {
                *TT0 = 0;
                *TT1 = 0;
                *TT2 = 0;
                *TT3 = 0;
                return 0;}}}}}}}}
 L7186: {
  q_31X = arg0K0;
  state_32X = arg0K1;
  mask_33X = arg0K2;
  scalar_value_34X = arg0K3;
  if ((q_31X < count_24X)) {
    c_35X = *((unsigned char *) (buffer_23X + q_31X));
    state_36X = *(Sutf_8_state_tableS + ((((state_32X)<<5)) + (((c_35X)>>3))));
    if ((state_36X == 0)) {
      scalar_value_37X = scalar_value_34X + (127 & c_35X);
      if ((scalar_value_37X < 0)) {
        *TT0 = 0;
        *TT1 = 0;
        *TT2 = 0;
        *TT3 = 0;
        return 1;}
      else {
        if ((55295 < scalar_value_37X)) {
          if ((scalar_value_37X < 57344)) {
            *TT0 = 0;
            *TT1 = 0;
            *TT2 = 0;
            *TT3 = 0;
            return 1;}
          else {
            if ((1114111 < scalar_value_37X)) {
              *TT0 = 0;
              *TT1 = 0;
              *TT2 = 0;
              *TT3 = 0;
              return 1;}
            else {
              goto L7201;}}}
        else {
          goto L7201;}}}
    else {
      if ((state_36X == 1)) {
        goto L7212;}
      else {
        if ((state_36X == 2)) {
          goto L7212;}
        else {
          if ((state_36X == 3)) {
            goto L7212;}
          else {
            if ((state_36X == -2)) {
              *TT0 = 0;
              *TT1 = 0;
              *TT2 = 0;
              *TT3 = 0;
              return 1;}
            else {
              if ((state_36X == -1)) {
                *TT0 = 0;
                *TT1 = 0;
                *TT2 = 0;
                *TT3 = 0;
                return 1;}
              else {
                *TT0 = 0;
                *TT1 = 0;
                *TT2 = 0;
                *TT3 = 0;
                return 1;}}}}}}}
  else {
    *TT0 = 1;
    *TT1 = 1;
    *TT2 = 0;
    *TT3 = (1 + q_31X);
    return 1;}}
 L7201: {
  *TT0 = 1;
  *TT1 = 0;
  *TT2 = scalar_value_37X;
  *TT3 = (1 + q_31X);
  return 1;}
 L7212: {
  if ((0 == mask_33X)) {
    arg0K0 = (*(Sutf_8_masksS + state_36X));
    goto L7218;}
  else {
    arg0K0 = mask_33X;
    goto L7218;}}
 L7218: {
  v_38X = arg0K0;
  arg0K0 = (1 + q_31X);
  arg0K1 = state_36X;
  arg0K2 = 63;
  arg0K3 = ((((scalar_value_34X + (c_35X & v_38X)))<<6));
  goto L7186;}
}
static char integerLE(long x_39X, long y_40X)
{
  long v_43X;
  long v_42X;
  long v_41X;
 {  if ((0 == (3 & y_40X))) {
    if ((0 == (3 & x_39X))) {
      if ((y_40X < x_39X)) {
        return 0;}
      else {
        return 1;}}
    else {
      v_41X = s48_bignum_test((((char *) (-3 + x_39X))));
      if ((1 == v_41X)) {
        return 0;}
      else {
        return 1;}}}
  else {
    if ((0 == (3 & x_39X))) {
      v_42X = s48_bignum_test((((char *) (-3 + y_40X))));
      if ((1 == v_42X)) {
        return 1;}
      else {
        return 0;}}
    else {
      v_43X = s48_bignum_compare((((char *) (-3 + y_40X))), (((char *) (-3 + x_39X))));
      if ((-1 == v_43X)) {
        return 0;}
      else {
        return 1;}}}}
}
static char integerGE(long x_44X, long y_45X)
{
  long v_48X;
  long v_47X;
  long v_46X;
 {  if ((0 == (3 & x_44X))) {
    if ((0 == (3 & y_45X))) {
      if ((x_44X < y_45X)) {
        return 0;}
      else {
        return 1;}}
    else {
      v_46X = s48_bignum_test((((char *) (-3 + y_45X))));
      if ((1 == v_46X)) {
        return 0;}
      else {
        return 1;}}}
  else {
    if ((0 == (3 & y_45X))) {
      v_47X = s48_bignum_test((((char *) (-3 + x_44X))));
      if ((1 == v_47X)) {
        return 1;}
      else {
        return 0;}}
    else {
      v_48X = s48_bignum_compare((((char *) (-3 + x_44X))), (((char *) (-3 + y_45X))));
      if ((-1 == v_48X)) {
        return 0;}
      else {
        return 1;}}}}
}
static char shared_binding_undefinedP(long binding_49X)
{

 {  return (17 == (255 & (*((long *) ((((char *) (-3 + binding_49X))) + 8)))));}
}
static void enqueue_channelB(long index_50X, long status_51X, long errorP_52X)
{
  char * addr_58X;
  long x_57X;
  char * addr_56X;
  char * addr_55X;
  long val_54X;
  long channel_53X;
 {  channel_53X = *((Svm_channelsS) + index_50X);
  val_54X = ((status_51X)<<2);
  addr_55X = (((char *) (-3 + channel_53X))) + 20;S48_WRITE_BARRIER(channel_53X, addr_55X, val_54X);
  *((long *) addr_55X) = (long) (val_54X);
  addr_56X = (((char *) (-3 + channel_53X))) + 24;S48_WRITE_BARRIER(channel_53X, addr_56X, errorP_52X);
  *((long *) addr_56X) = (long) (errorP_52X);
  if ((1 == (*((long *) ((((char *) (-3 + channel_53X))) + 16))))) {
    if ((channel_53X == (Spending_channels_headS))) {
      return;}
    else {
      if ((channel_53X == (Spending_channels_tailS))) {
        return;}
      else {
        if ((1 == (Spending_channels_headS))) {
          Spending_channels_headS = channel_53X;
          Spending_channels_tailS = channel_53X;
          return;}
        else {
          x_57X = Spending_channels_tailS;
          addr_58X = (((char *) (-3 + x_57X))) + 16;S48_WRITE_BARRIER(x_57X, addr_58X, channel_53X);
          *((long *) addr_58X) = (long) (channel_53X);
          Spending_channels_tailS = channel_53X;
          return;}}}}
  else {
    return;}}
}
static void decode_utf_8B(char * p_59X, long s_60X, long size_61X)
{
  long arg0K2;
  long arg0K1;
  long arg0K0;
  long shifted_77X;
  long j_76X;
  long bits_75X;
  long shifted_74X;
  long j_73X;
  long bits_72X;
  long shifted_71X;
  long j_70X;
  long bits_69X;
  long count_68X;
  long value_67X;
  char incompleteP_66X;
  char v_65X;
  char encoding_okP_64X;
  long target_index_63X;
  long index_62X;
 {  arg0K0 = 0;
  arg0K1 = 0;
  goto L13907;}
 L13907: {
  index_62X = arg0K0;
  target_index_63X = arg0K1;
  if ((index_62X < size_61X)) {
    encoding_okP_64X = decode_scalar_value(2, (p_59X + index_62X), (size_61X - index_62X), &v_65X, &incompleteP_66X, &value_67X, &count_68X);
    if (encoding_okP_64X) {
      if (incompleteP_66X) {
        arg0K0 = 0;
        arg0K1 = 0;
        arg0K2 = 63;
        goto L13980;}
      else {
        arg0K0 = 0;
        arg0K1 = 0;
        arg0K2 = value_67X;
        goto L13997;}}
    else {
      arg0K0 = 0;
      arg0K1 = 0;
      arg0K2 = 63;
      goto L13963;}}
  else {
    return;}}
 L13980: {
  bits_69X = arg0K0;
  j_70X = arg0K1;
  shifted_71X = arg0K2;
  if ((j_70X < 4)) {
    *((unsigned char *) ((((char *) (-3 + s_60X))) + ((((target_index_63X)<<2)) + j_70X))) = (unsigned char) ((255 & shifted_71X));
    arg0K0 = (8 + bits_69X);
    arg0K1 = (1 + j_70X);
    arg0K2 = ((long)(((unsigned long)shifted_71X)>>8));
    goto L13980;}
  else {
    return;}}
 L13997: {
  bits_72X = arg0K0;
  j_73X = arg0K1;
  shifted_74X = arg0K2;
  if ((j_73X < 4)) {
    *((unsigned char *) ((((char *) (-3 + s_60X))) + ((((target_index_63X)<<2)) + j_73X))) = (unsigned char) ((255 & shifted_74X));
    arg0K0 = (8 + bits_72X);
    arg0K1 = (1 + j_73X);
    arg0K2 = ((long)(((unsigned long)shifted_74X)>>8));
    goto L13997;}
  else {
    arg0K0 = (index_62X + count_68X);
    arg0K1 = (1 + target_index_63X);
    goto L13907;}}
 L13963: {
  bits_75X = arg0K0;
  j_76X = arg0K1;
  shifted_77X = arg0K2;
  if ((j_76X < 4)) {
    *((unsigned char *) ((((char *) (-3 + s_60X))) + ((((target_index_63X)<<2)) + j_76X))) = (unsigned char) ((255 & shifted_77X));
    arg0K0 = (8 + bits_75X);
    arg0K1 = (1 + j_76X);
    arg0K2 = ((long)(((unsigned long)shifted_77X)>>8));
    goto L13963;}
  else {
    arg0K0 = (1 + index_62X);
    arg0K1 = (1 + target_index_63X);
    goto L13907;}}
}
static void copy_vm_string_to_stringUlatin_1B(long vm_string_78X, long start_79X, long count_80X, char *string_81X)
{
  char arg1K0;
  long arg0K2;
  long arg0K1;
  long arg0K0;
  char v_87X;
  long x_86X;
  long scalar_value_85X;
  long j_84X;
  long bits_83X;
  long i_82X;
 {  arg0K0 = 0;
  goto L14140;}
 L14140: {
  i_82X = arg0K0;
  if ((i_82X < count_80X)) {
    arg0K0 = 0;
    arg0K1 = 0;
    arg0K2 = 0;
    goto L14182;}
  else {
    return;}}
 L14182: {
  bits_83X = arg0K0;
  j_84X = arg0K1;
  scalar_value_85X = arg0K2;
  if ((j_84X < 4)) {
    PS_SHIFT_LEFT((*((unsigned char *) ((((char *) (-3 + vm_string_78X))) + ((((i_82X)<<2)) + j_84X)))), bits_83X, x_86X)
    arg0K0 = (8 + bits_83X);
    arg0K1 = (1 + j_84X);
    arg0K2 = (x_86X + scalar_value_85X);
    goto L14182;}
  else {
    if ((255 < scalar_value_85X)) {
      arg1K0 = 63;
      goto L14158;}
    else {
      arg1K0 = (((char) scalar_value_85X));
      goto L14158;}}}
 L14158: {
  v_87X = arg1K0;
  *(string_81X + (i_82X + start_79X)) = v_87X;
  arg0K0 = (1 + i_82X);
  goto L14140;}
}
static long close_channelB(long channel_88X)
{
  long arg0K0;
  char * addr_96X;
  long status_95X;
  long v_94X;
  long v_93X;
  long v_92X;
  long v_91X;
  long x_90X;
  long os_index_89X;
 {  os_index_89X = (((*((long *) ((((char *) (-3 + channel_88X))) + 8))))>>2);
  x_90X = *((long *) ((((char *) (-3 + channel_88X))) + 20));
  if ((5 == x_90X)) {
    v_91X = ps_abort_fd_op(os_index_89X);enqueue_channelB(os_index_89X, v_91X, 1);
    goto L14764;}
  else {
    goto L14764;}}
 L14764: {
  v_92X = *((long *) (((char *) (-3 + channel_88X))));
  if ((4 == v_92X)) {
    goto L14779;}
  else {
    if ((12 == (*((long *) (((char *) (-3 + channel_88X))))))) {
      goto L14779;}
    else {
      v_93X = ps_close_fd(os_index_89X);
      arg0K0 = v_93X;
      goto L14786;}}}
 L14779: {
  v_94X = ps_close_fd(os_index_89X);
  arg0K0 = v_94X;
  goto L14786;}
 L14786: {
  status_95X = arg0K0;
  *((Svm_channelsS) + os_index_89X) = 1;
  addr_96X = ((char *) (-3 + channel_88X));S48_WRITE_BARRIER(channel_88X, addr_96X, 0);
  *((long *) addr_96X) = (long) (0);
  return status_95X;}
}
static long make_blank_return_code(long protocol_97X, long template_98X, long frame_size_99X, long opcode_count_100X, long key_101X)
{
  long code_104X;
  char * addr_103X;
  long length_102X;
 {  length_102X = 15 + opcode_count_100X;
  addr_103X = s48_allocate_small((4 + length_102X));
  *((long *) addr_103X) = (long) ((70 + (((length_102X)<<8))));
  code_104X = 3 + (((long) (addr_103X + 4)));
  *((unsigned char *) (((char *) (-3 + code_104X)))) = (unsigned char) (0);
  *((unsigned char *) ((((char *) (-3 + code_104X))) + 1)) = (unsigned char) (protocol_97X);
  *((unsigned char *) ((((char *) (-3 + code_104X))) + 2)) = (unsigned char) (0);
  *((unsigned char *) ((((char *) (-3 + code_104X))) + 3)) = (unsigned char) (31);
  *((unsigned char *) ((((char *) (-3 + code_104X))) + 4)) = (unsigned char) (0);
  *((unsigned char *) ((((char *) (-3 + code_104X))) + 5)) = (unsigned char) (8);
  *((unsigned char *) ((((char *) (-3 + code_104X))) + 6)) = (unsigned char) ((255 & (((template_98X)>>8))));
  *((unsigned char *) ((((char *) (-3 + code_104X))) + 7)) = (unsigned char) ((255 & template_98X));
  *((unsigned char *) ((((char *) (-3 + code_104X))) + 8)) = (unsigned char) (0);
  *((unsigned char *) ((((char *) (-3 + code_104X))) + 9)) = (unsigned char) (13);
  *((unsigned char *) ((((char *) (-3 + code_104X))) + 10)) = (unsigned char) (0);
  *((unsigned char *) ((((char *) (-3 + code_104X))) + 11)) = (unsigned char) ((255 & (((frame_size_99X)>>8))));
  *((unsigned char *) ((((char *) (-3 + code_104X))) + 12)) = (unsigned char) ((255 & frame_size_99X));
  *((unsigned char *) ((((char *) (-3 + code_104X))) + 13)) = (unsigned char) (0);
  *((unsigned char *) ((((char *) (-3 + code_104X))) + 14)) = (unsigned char) (protocol_97X);
  return code_104X;}
}
static long enter_stringAgc_n(char *string_105X, long len_106X)
{
  long arg0K2;
  long arg0K1;
  long arg0K0;
  long shifted_115X;
  long j_114X;
  long bits_113X;
  long c_112X;
  long i_111X;
  long s_110X;
  long string_109X;
  char * addr_108X;
  long len_107X;
 {  len_107X = ((len_106X)<<2);
  addr_108X = s48_allocate_untracedAgc((4 + len_107X));
  if ((addr_108X == NULL)) {
    arg0K0 = 1;
    goto L16771;}
  else {
    *((long *) addr_108X) = (long) ((66 + (((len_107X)<<8))));
    arg0K0 = (3 + (((long) (addr_108X + 4))));
    goto L16771;}}
 L16771: {
  string_109X = arg0K0;
  if ((1 == string_109X)) {
    ps_error("Out of space, unable to allocate", 0);
    arg0K0 = string_109X;
    goto L16762;}
  else {
    arg0K0 = string_109X;
    goto L16762;}}
 L16762: {
  s_110X = arg0K0;
  arg0K0 = 0;
  goto L16794;}
 L16794: {
  i_111X = arg0K0;
  if ((i_111X < len_106X)) {
    c_112X = ((unsigned char) (*(string_105X + i_111X)));
    arg0K0 = 0;
    arg0K1 = 0;
    arg0K2 = c_112X;
    goto L16805;}
  else {
    return s_110X;}}
 L16805: {
  bits_113X = arg0K0;
  j_114X = arg0K1;
  shifted_115X = arg0K2;
  if ((j_114X < 4)) {
    *((unsigned char *) ((((char *) (-3 + s_110X))) + ((((i_111X)<<2)) + j_114X))) = (unsigned char) ((255 & shifted_115X));
    arg0K0 = (8 + bits_113X);
    arg0K1 = (1 + j_114X);
    arg0K2 = ((long)(((unsigned long)shifted_115X)>>8));
    goto L16805;}
  else {
    arg0K0 = (1 + i_111X);
    goto L16794;}}
}
static long add_log_entryAgc(long proposal_index_116X, long i_117X, long stob_118X, long index_119X, long value_120X, char verifyP_121X)
{
  long arg0K2;
  long arg0K1;
  long arg0K0;
  char * addr_146X;
  long value_145X;
  long v_144X;
  long value_143X;
  char * addr_142X;
  long i_141X;
  long stob_140X;
  long proposal_139X;
  long new_138X;
  char * addr_137X;
  char * addr_136X;
  long value_135X;
  long vector_134X;
  char * addr_133X;
  char * addr_132X;
  char * addr_131X;
  long log_130X;
  long value_129X;
  long stob_128X;
  long proposal_127X;
  char * addr_126X;
  long len_125X;
  long new_size_124X;
  long log_size_123X;
  long proposal_122X;
 {  proposal_122X = *((long *) ((((char *) (-3 + (Scurrent_threadS)))) + 12));
  log_size_123X = (((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + (*((long *) ((((char *) (-3 + proposal_122X))) + (((proposal_index_116X)<<2)))))))) + -4))))>>8))))>>2);
  if ((i_117X == (-1 + log_size_123X))) {
    Stemp0S = stob_118X;
    Stemp1S = value_120X;
    if ((1 == log_size_123X)) {
      arg0K0 = 17;
      goto L12803;}
    else {
      arg0K0 = (-1 + (((log_size_123X)<<1)));
      goto L12803;}}
  else {
    arg0K0 = proposal_122X;
    arg0K1 = stob_118X;
    arg0K2 = value_120X;
    goto L17029;}}
 L12803: {
  new_size_124X = arg0K0;
  len_125X = ((new_size_124X)<<2);
  addr_126X = s48_allocate_tracedAgc((4 + len_125X));
  if ((addr_126X == NULL)) {
    arg0K0 = 1;
    goto L12849;}
  else {
    *((long *) addr_126X) = (long) ((10 + (((len_125X)<<8))));
    arg0K0 = (3 + (((long) (addr_126X + 4))));
    goto L12849;}}
 L17029: {
  proposal_127X = arg0K0;
  stob_128X = arg0K1;
  value_129X = arg0K2;
  log_130X = *((long *) ((((char *) (-3 + proposal_127X))) + (((proposal_index_116X)<<2))));
  addr_131X = (((char *) (-3 + log_130X))) + (((i_117X)<<2));S48_WRITE_BARRIER(log_130X, addr_131X, stob_128X);
  *((long *) addr_131X) = (long) (stob_128X);
  addr_132X = (((char *) (-3 + log_130X))) + (4 + (((i_117X)<<2)));S48_WRITE_BARRIER(log_130X, addr_132X, index_119X);
  *((long *) addr_132X) = (long) (index_119X);
  addr_133X = (((char *) (-3 + log_130X))) + (8 + (((i_117X)<<2)));S48_WRITE_BARRIER(log_130X, addr_133X, value_129X);
  *((long *) addr_133X) = (long) (value_129X);
  if (verifyP_121X) {
    arg0K0 = value_129X;
    goto L17050;}
  else {
    arg0K0 = 29;
    goto L17050;}}
 L12849: {
  vector_134X = arg0K0;
  if ((1 == vector_134X)) {
    ps_error("Out of space, unable to allocate", 0);
    arg0K0 = vector_134X;
    goto L12807;}
  else {
    arg0K0 = vector_134X;
    goto L12807;}}
 L17050: {
  value_135X = arg0K0;
  addr_136X = (((char *) (-3 + log_130X))) + (12 + (((i_117X)<<2)));S48_WRITE_BARRIER(log_130X, addr_136X, value_135X);
  *((long *) addr_136X) = (long) (value_135X);
  addr_137X = (((char *) (-3 + log_130X))) + (16 + (((i_117X)<<2)));S48_WRITE_BARRIER(log_130X, addr_137X, 1);
  *((long *) addr_137X) = (long) (1);
  return value_129X;}
 L12807: {
  new_138X = arg0K0;
  proposal_139X = *((long *) ((((char *) (-3 + (Scurrent_threadS)))) + 12));
  if ((1 < log_size_123X)) {
    stob_140X = *((long *) ((((char *) (-3 + proposal_139X))) + 4));
    memmove((void *)(((char *) (-3 + new_138X))), (void *)(((char *) (-3 + stob_140X))),(-4 + (((log_size_123X)<<2))));
    goto L12827;}
  else {
    goto L12827;}}
 L12827: {
  arg0K0 = (4 + log_size_123X);
  goto L12831;}
 L12831: {
  i_141X = arg0K0;
  if ((i_141X == new_size_124X)) {
    addr_142X = (((char *) (-3 + proposal_139X))) + (((proposal_index_116X)<<2));S48_WRITE_BARRIER(proposal_139X, addr_142X, new_138X);
    *((long *) addr_142X) = (long) (new_138X);
    value_143X = Stemp0S;
    Stemp0S = 1;
    v_144X = *((long *) ((((char *) (-3 + (Scurrent_threadS)))) + 12));
    value_145X = Stemp1S;
    Stemp1S = 1;
    arg0K0 = v_144X;
    arg0K1 = value_143X;
    arg0K2 = value_145X;
    goto L17029;}
  else {
    addr_146X = (((char *) (-3 + new_138X))) + (((i_141X)<<2));S48_WRITE_BARRIER(new_138X, addr_146X, 0);
    *((long *) addr_146X) = (long) (0);
    arg0K0 = (1 + i_141X);
    goto L12831;}}
}
static long enter_bignum(char * external_bignum_147X)
{
  long desc_148X;
 {  desc_148X = 3 + (((long) external_bignum_147X));
  if ((3 == (3 & desc_148X))) {
    if ((19 == (31 & ((((*((long *) ((((char *) (-3 + desc_148X))) + -4))))>>2))))) {
      goto L17780;}
    else {
      goto L17794;}}
  else {
    goto L17794;}}
 L17780: {
  if ((3 == (3 & desc_148X))) {
    if ((0 == (128 & (*((long *) ((((char *) (-3 + desc_148X))) + -4)))))) {
      *((long *) ((((char *) (-3 + desc_148X))) + -4)) = (long) ((128 | (*((long *) ((((char *) (-3 + desc_148X))) + -4)))));
      return desc_148X;}
    else {
      return desc_148X;}}
  else {
    return desc_148X;}}
 L17794: {
  ps_error("not a bignum", 1, desc_148X);
  goto L17780;}
}
static char integerE(long x_149X, long y_150X)
{

 {  if ((0 == (3 & (x_149X | y_150X)))) {
    return (x_149X == y_150X);}
  else {
    if ((3 == (3 & x_149X))) {
      if ((19 == (31 & ((((*((long *) ((((char *) (-3 + x_149X))) + -4))))>>2))))) {
        if ((3 == (3 & y_150X))) {
          if ((19 == (31 & ((((*((long *) ((((char *) (-3 + y_150X))) + -4))))>>2))))) {
            return s48_bignum_equal_p((((char *) (-3 + x_149X))), (((char *) (-3 + y_150X))));}
          else {
            return 0;}}
        else {
          return 0;}}
      else {
        return 0;}}
    else {
      return 0;}}}
}
static long make_channel(long a_151X, long b_152X, long c_153X, long d_154X, long e_155X, long f_156X, long g_157X, long key_158X)
{
  long x_160X;
  char * addr_159X;
 {  addr_159X = s48_allocate_small(32);
  *((long *) addr_159X) = (long) (7194);
  x_160X = 3 + (((long) (addr_159X + 4)));
  *((long *) (((char *) (-3 + x_160X)))) = (long) (a_151X);
  *((long *) ((((char *) (-3 + x_160X))) + 4)) = (long) (b_152X);
  *((long *) ((((char *) (-3 + x_160X))) + 8)) = (long) (c_153X);
  *((long *) ((((char *) (-3 + x_160X))) + 12)) = (long) (d_154X);
  *((long *) ((((char *) (-3 + x_160X))) + 16)) = (long) (e_155X);
  *((long *) ((((char *) (-3 + x_160X))) + 20)) = (long) (f_156X);
  *((long *) ((((char *) (-3 + x_160X))) + 24)) = (long) (g_157X);
  return x_160X;}
}
static long write_vm_string(long vm_string_161X, FILE * out_162X)
{
  long arg0K2;
  long arg0K1;
  long arg0K0;
  long x_169X;
  long scalar_value_168X;
  long j_167X;
  long bits_166X;
  long i_165X;
  long size_164X;
  long v_163X;
 {  v_163X = ((long)(((unsigned long)(*((long *) ((((char *) (-3 + vm_string_161X))) + -4))))>>8)) / 4;
  arg0K0 = v_163X;
  arg0K1 = 0;
  goto L19969;}
 L19969: {
  size_164X = arg0K0;
  i_165X = arg0K1;
  if ((i_165X < size_164X)) {
    arg0K0 = 0;
    arg0K1 = 0;
    arg0K2 = 0;
    goto L20002;}
  else {
    return 0;}}
 L20002: {
  bits_166X = arg0K0;
  j_167X = arg0K1;
  scalar_value_168X = arg0K2;
  if ((j_167X < 4)) {
    PS_SHIFT_LEFT((*((unsigned char *) ((((char *) (-3 + vm_string_161X))) + ((((i_165X)<<2)) + j_167X)))), bits_166X, x_169X)
    arg0K0 = (8 + bits_166X);
    arg0K1 = (1 + j_167X);
    arg0K2 = (x_169X + scalar_value_168X);
    goto L20002;}
  else {
    { long ignoreXX;
    PS_WRITE_CHAR((((char) scalar_value_168X)), out_162X, ignoreXX) }
    arg0K0 = size_164X;
    arg0K1 = (1 + i_165X);
    goto L19969;}}
}
static long Haction4940(long s_170X)
{
  long arg0K2;
  long arg0K1;
  long arg0K0;
  long x_177X;
  long scalar_value_176X;
  long j_175X;
  long bits_174X;
  long h_173X;
  long i_172X;
  long n_171X;
 {  n_171X = ((long)(((unsigned long)(*((long *) ((((char *) (-3 + s_170X))) + -4))))>>8)) / 4;
  arg0K0 = 0;
  arg0K1 = 0;
  goto L20100;}
 L20100: {
  i_172X = arg0K0;
  h_173X = arg0K1;
  if ((i_172X < n_171X)) {
    arg0K0 = 0;
    arg0K1 = 0;
    arg0K2 = 0;
    goto L20129;}
  else {
    return h_173X;}}
 L20129: {
  bits_174X = arg0K0;
  j_175X = arg0K1;
  scalar_value_176X = arg0K2;
  if ((j_175X < 4)) {
    PS_SHIFT_LEFT((*((unsigned char *) ((((char *) (-3 + s_170X))) + ((((i_172X)<<2)) + j_175X)))), bits_174X, x_177X)
    arg0K0 = (8 + bits_174X);
    arg0K1 = (1 + j_175X);
    arg0K2 = (x_177X + scalar_value_176X);
    goto L20129;}
  else {
    arg0K0 = (1 + i_172X);
    arg0K1 = (h_173X + scalar_value_176X);
    goto L20100;}}
}
static long current_code_vector(void)
{
  long arg0K0;
  long x_190X;
  long v_189X;
  long x_188X;
  long header_187X;
  char * start_186X;
  char * code_pointer_185X;
  long code_184X;
  char * pointer_183X;
  char * code_pointer_182X;
  long header_181X;
  char * start_180X;
  long code_179X;
  char * code_pointer_178X;
 {  code_pointer_178X = Scode_pointerS;
  code_179X = Slast_code_calledS;
  start_180X = ((char *) (-3 + code_179X));
  if ((code_pointer_178X < start_180X)) {
    goto L20678;}
  else {
    header_181X = *((long *) ((((char *) (-3 + code_179X))) + -4));
    if ((3 == (3 & header_181X))) {
      arg0K0 = header_181X;
      goto L20699;}
    else {
      arg0K0 = code_179X;
      goto L20699;}}}
 L20678: {
  code_pointer_182X = Slast_code_pointer_resumedS;
  pointer_183X = code_pointer_182X + -5;
  code_184X = 3 + (((long) (code_pointer_182X + (0 - (((((*((unsigned char *) pointer_183X)))<<8)) + (*((unsigned char *) (pointer_183X + 1))))))));
  code_pointer_185X = Scode_pointerS;
  start_186X = ((char *) (-3 + code_184X));
  if ((code_pointer_185X < start_186X)) {
    goto L20686;}
  else {
    header_187X = *((long *) ((((char *) (-3 + code_184X))) + -4));
    if ((3 == (3 & header_187X))) {
      arg0K0 = header_187X;
      goto L20720;}
    else {
      arg0K0 = code_184X;
      goto L20720;}}}
 L20699: {
  x_188X = arg0K0;
  if ((code_pointer_178X < (start_180X + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + x_188X))) + -4))))>>8))))) {
    return (Slast_code_calledS);}
  else {
    goto L20678;}}
 L20686: {
  ps_error("VM error: unable to locate current code vector", 3, (((long) (Scode_pointerS))), (Slast_code_calledS), (((long) (Slast_code_pointer_resumedS))));
  return v_189X;}
 L20720: {
  x_190X = arg0K0;
  if ((code_pointer_185X < (start_186X + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + x_190X))) + -4))))>>8))))) {
    return code_184X;}
  else {
    goto L20686;}}
}
static void channel_close_error(long status_191X, long index_192X, long id_193X)
{

 {  ps_write_string("Error: ", (stderr));
  ps_write_string((ps_error_string(status_191X)), (stderr));
  { long ignoreXX;
  PS_WRITE_CHAR(10, (stderr), ignoreXX) }
  ps_write_string(" while closing port ", (stderr));
  if ((3 == (3 & id_193X))) {
    if ((16 == (31 & ((((*((long *) ((((char *) (-3 + id_193X))) + -4))))>>2))))) {
      ps_write_string((((char *)(((char *) (-3 + id_193X))))), (stderr));
      goto L21114;}
    else {
      goto L21108;}}
  else {
    goto L21108;}}
 L21114: {
  { long ignoreXX;
  PS_WRITE_CHAR(10, (stderr), ignoreXX) }
  return;}
 L21108: {
  ps_write_integer((((index_192X)>>2)), (stderr));
  goto L21114;}
}
static long integer_bit_count(long x_194X)
{
  long arg0K1;
  long arg0K0;
  char * arg2K0;
  long n_201X;
  char * v_200X;
  char * v_199X;
  long value_198X;
  long v_197X;
  long extra_196X;
  long length_195X;
 {  if ((0 == (3 & x_194X))) {
    arg0K0 = 1;
    arg0K1 = 3;
    goto L23166;}
  else {
    arg0K0 = (-1 + ((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + x_194X))) + -4))))>>8))))>>2)));
    arg0K1 = 0;
    goto L23166;}}
 L23166: {
  length_195X = arg0K0;
  extra_196X = arg0K1;
  if ((length_195X < 1)) {
    arg0K0 = 1;
    goto L23168;}
  else {
    arg0K0 = length_195X;
    goto L23168;}}
 L23168: {
  v_197X = arg0K0;
  Stemp0S = x_194X;s48_make_availableAgc((((((1 + ((((11 + (((v_197X)<<2))))>>2))) + extra_196X))<<2)));
  value_198X = Stemp0S;
  Stemp0S = 1;
  if ((0 == (3 & value_198X))) {
    v_199X = (char *) s48_long_to_bignum((((value_198X)>>2)));
    arg2K0 = v_199X;
    goto L23158;}
  else {
    arg2K0 = (((char *) (-3 + value_198X)));
    goto L23158;}}
 L23158: {
  v_200X = arg2K0;
  n_201X = s48_bignum_bit_count(v_200X);
  return (((n_201X)<<2));}
}
static long integer_add(long x_202X, long y_203X)
{
  char * arg2K0;
  long arg0K1;
  long arg0K0;
  long n_217X;
  char v_216X;
  char * external_bignum_215X;
  char * y_214X;
  char * v_213X;
  long value_212X;
  char * x_211X;
  char * v_210X;
  long value_209X;
  long v_208X;
  long extra1_207X;
  long length1_206X;
  long extra0_205X;
  long length0_204X;
 {  if ((0 == (3 & x_202X))) {
    arg0K0 = 1;
    arg0K1 = 3;
    goto L20637;}
  else {
    arg0K0 = (-1 + ((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + x_202X))) + -4))))>>8))))>>2)));
    arg0K1 = 0;
    goto L20637;}}
 L20637: {
  length0_204X = arg0K0;
  extra0_205X = arg0K1;
  if ((0 == (3 & y_203X))) {
    arg0K0 = 1;
    arg0K1 = 3;
    goto L20645;}
  else {
    arg0K0 = (-1 + ((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + y_203X))) + -4))))>>8))))>>2)));
    arg0K1 = 0;
    goto L20645;}}
 L20645: {
  length1_206X = arg0K0;
  extra1_207X = arg0K1;
  if ((length0_204X < length1_206X)) {
    arg0K0 = length1_206X;
    goto L20667;}
  else {
    arg0K0 = length0_204X;
    goto L20667;}}
 L20667: {
  v_208X = arg0K0;
  Stemp0S = x_202X;
  Stemp1S = y_203X;s48_make_availableAgc(((((((1 + ((((11 + (((v_208X)<<2))))>>2))) + extra0_205X) + extra1_207X))<<2)));
  value_209X = Stemp0S;
  Stemp0S = 1;
  if ((0 == (3 & value_209X))) {
    v_210X = (char *) s48_long_to_bignum((((value_209X)>>2)));
    arg2K0 = v_210X;
    goto L23283;}
  else {
    arg2K0 = (((char *) (-3 + value_209X)));
    goto L23283;}}
 L23283: {
  x_211X = arg2K0;
  value_212X = Stemp1S;
  Stemp1S = 1;
  if ((0 == (3 & value_212X))) {
    v_213X = (char *) s48_long_to_bignum((((value_212X)>>2)));
    arg2K0 = v_213X;
    goto L23287;}
  else {
    arg2K0 = (((char *) (-3 + value_212X)));
    goto L23287;}}
 L23287: {
  y_214X = arg2K0;
  external_bignum_215X = (char *)s48_bignum_add(x_211X, y_214X);
  v_216X = s48_bignum_fits_in_word_p(external_bignum_215X, 30, 1);
  if (v_216X) {
    n_217X = s48_bignum_to_long(external_bignum_215X);
    return (((n_217X)<<2));}
  else {
    return enter_bignum(external_bignum_215X);}}
}
static long integer_subtract(long x_218X, long y_219X)
{
  char * arg2K0;
  long arg0K1;
  long arg0K0;
  long n_233X;
  char v_232X;
  char * external_bignum_231X;
  char * y_230X;
  char * v_229X;
  long value_228X;
  char * x_227X;
  char * v_226X;
  long value_225X;
  long v_224X;
  long extra1_223X;
  long length1_222X;
  long extra0_221X;
  long length0_220X;
 {  if ((0 == (3 & x_218X))) {
    arg0K0 = 1;
    arg0K1 = 3;
    goto L20594;}
  else {
    arg0K0 = (-1 + ((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + x_218X))) + -4))))>>8))))>>2)));
    arg0K1 = 0;
    goto L20594;}}
 L20594: {
  length0_220X = arg0K0;
  extra0_221X = arg0K1;
  if ((0 == (3 & y_219X))) {
    arg0K0 = 1;
    arg0K1 = 3;
    goto L20602;}
  else {
    arg0K0 = (-1 + ((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + y_219X))) + -4))))>>8))))>>2)));
    arg0K1 = 0;
    goto L20602;}}
 L20602: {
  length1_222X = arg0K0;
  extra1_223X = arg0K1;
  if ((length0_220X < length1_222X)) {
    arg0K0 = length1_222X;
    goto L20624;}
  else {
    arg0K0 = length0_220X;
    goto L20624;}}
 L20624: {
  v_224X = arg0K0;
  Stemp0S = x_218X;
  Stemp1S = y_219X;s48_make_availableAgc(((((((1 + ((((11 + (((v_224X)<<2))))>>2))) + extra0_221X) + extra1_223X))<<2)));
  value_225X = Stemp0S;
  Stemp0S = 1;
  if ((0 == (3 & value_225X))) {
    v_226X = (char *) s48_long_to_bignum((((value_225X)>>2)));
    arg2K0 = v_226X;
    goto L23357;}
  else {
    arg2K0 = (((char *) (-3 + value_225X)));
    goto L23357;}}
 L23357: {
  x_227X = arg2K0;
  value_228X = Stemp1S;
  Stemp1S = 1;
  if ((0 == (3 & value_228X))) {
    v_229X = (char *) s48_long_to_bignum((((value_228X)>>2)));
    arg2K0 = v_229X;
    goto L23361;}
  else {
    arg2K0 = (((char *) (-3 + value_228X)));
    goto L23361;}}
 L23361: {
  y_230X = arg2K0;
  external_bignum_231X = (char *)s48_bignum_subtract(x_227X, y_230X);
  v_232X = s48_bignum_fits_in_word_p(external_bignum_231X, 30, 1);
  if (v_232X) {
    n_233X = s48_bignum_to_long(external_bignum_231X);
    return (((n_233X)<<2));}
  else {
    return enter_bignum(external_bignum_231X);}}
}
static long integer_multiply(long x_234X, long y_235X)
{
  char * arg2K0;
  long arg0K1;
  long arg0K0;
  long n_248X;
  char v_247X;
  char * external_bignum_246X;
  char * y_245X;
  char * v_244X;
  long value_243X;
  char * x_242X;
  char * v_241X;
  long value_240X;
  long extra1_239X;
  long length1_238X;
  long extra0_237X;
  long length0_236X;
 {  if ((0 == (3 & x_234X))) {
    arg0K0 = 1;
    arg0K1 = 3;
    goto L20557;}
  else {
    arg0K0 = (-1 + ((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + x_234X))) + -4))))>>8))))>>2)));
    arg0K1 = 0;
    goto L20557;}}
 L20557: {
  length0_236X = arg0K0;
  extra0_237X = arg0K1;
  if ((0 == (3 & y_235X))) {
    arg0K0 = 1;
    arg0K1 = 3;
    goto L20565;}
  else {
    arg0K0 = (-1 + ((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + y_235X))) + -4))))>>8))))>>2)));
    arg0K1 = 0;
    goto L20565;}}
 L20565: {
  length1_238X = arg0K0;
  extra1_239X = arg0K1;
  Stemp0S = x_234X;
  Stemp1S = y_235X;s48_make_availableAgc(((((((1 + ((((7 + ((((length0_236X + length1_238X))<<2))))>>2))) + extra0_237X) + extra1_239X))<<2)));
  value_240X = Stemp0S;
  Stemp0S = 1;
  if ((0 == (3 & value_240X))) {
    v_241X = (char *) s48_long_to_bignum((((value_240X)>>2)));
    arg2K0 = v_241X;
    goto L23431;}
  else {
    arg2K0 = (((char *) (-3 + value_240X)));
    goto L23431;}}
 L23431: {
  x_242X = arg2K0;
  value_243X = Stemp1S;
  Stemp1S = 1;
  if ((0 == (3 & value_243X))) {
    v_244X = (char *) s48_long_to_bignum((((value_243X)>>2)));
    arg2K0 = v_244X;
    goto L23435;}
  else {
    arg2K0 = (((char *) (-3 + value_243X)));
    goto L23435;}}
 L23435: {
  y_245X = arg2K0;
  external_bignum_246X = (char *)s48_bignum_multiply(x_242X, y_245X);
  v_247X = s48_bignum_fits_in_word_p(external_bignum_246X, 30, 1);
  if (v_247X) {
    n_248X = s48_bignum_to_long(external_bignum_246X);
    return (((n_248X)<<2));}
  else {
    return enter_bignum(external_bignum_246X);}}
}
static long integer_bitwise_not(long x_249X)
{
  long arg0K1;
  long arg0K0;
  char * arg2K0;
  long n_258X;
  char v_257X;
  char * external_bignum_256X;
  char * v_255X;
  char * v_254X;
  long value_253X;
  long v_252X;
  long extra_251X;
  long length_250X;
 {  if ((0 == (3 & x_249X))) {
    arg0K0 = 1;
    arg0K1 = 3;
    goto L23804;}
  else {
    arg0K0 = (-1 + ((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + x_249X))) + -4))))>>8))))>>2)));
    arg0K1 = 0;
    goto L23804;}}
 L23804: {
  length_250X = arg0K0;
  extra_251X = arg0K1;
  if ((length_250X < 1)) {
    arg0K0 = 1;
    goto L23806;}
  else {
    arg0K0 = length_250X;
    goto L23806;}}
 L23806: {
  v_252X = arg0K0;
  Stemp0S = x_249X;s48_make_availableAgc((((((1 + ((((11 + (((v_252X)<<2))))>>2))) + extra_251X))<<2)));
  value_253X = Stemp0S;
  Stemp0S = 1;
  if ((0 == (3 & value_253X))) {
    v_254X = (char *) s48_long_to_bignum((((value_253X)>>2)));
    arg2K0 = v_254X;
    goto L23796;}
  else {
    arg2K0 = (((char *) (-3 + value_253X)));
    goto L23796;}}
 L23796: {
  v_255X = arg2K0;
  external_bignum_256X = (char *) s48_bignum_bitwise_not(v_255X);
  v_257X = s48_bignum_fits_in_word_p(external_bignum_256X, 30, 1);
  if (v_257X) {
    n_258X = s48_bignum_to_long(external_bignum_256X);
    return (((n_258X)<<2));}
  else {
    return enter_bignum(external_bignum_256X);}}
}
static long integer_bitwise_and(long x_259X, long y_260X)
{
  char * arg2K0;
  long arg0K1;
  long arg0K0;
  long n_274X;
  char v_273X;
  char * external_bignum_272X;
  char * y_271X;
  char * v_270X;
  long value_269X;
  char * x_268X;
  char * v_267X;
  long value_266X;
  long v_265X;
  long extra1_264X;
  long length1_263X;
  long extra0_262X;
  long length0_261X;
 {  if ((0 == (3 & x_259X))) {
    arg0K0 = 1;
    arg0K1 = 3;
    goto L20376;}
  else {
    arg0K0 = (-1 + ((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + x_259X))) + -4))))>>8))))>>2)));
    arg0K1 = 0;
    goto L20376;}}
 L20376: {
  length0_261X = arg0K0;
  extra0_262X = arg0K1;
  if ((0 == (3 & y_260X))) {
    arg0K0 = 1;
    arg0K1 = 3;
    goto L20384;}
  else {
    arg0K0 = (-1 + ((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + y_260X))) + -4))))>>8))))>>2)));
    arg0K1 = 0;
    goto L20384;}}
 L20384: {
  length1_263X = arg0K0;
  extra1_264X = arg0K1;
  if ((length0_261X < length1_263X)) {
    arg0K0 = length1_263X;
    goto L20406;}
  else {
    arg0K0 = length0_261X;
    goto L20406;}}
 L20406: {
  v_265X = arg0K0;
  Stemp0S = x_259X;
  Stemp1S = y_260X;s48_make_availableAgc(((((((1 + ((((11 + (((v_265X)<<2))))>>2))) + extra0_262X) + extra1_264X))<<2)));
  value_266X = Stemp0S;
  Stemp0S = 1;
  if ((0 == (3 & value_266X))) {
    v_267X = (char *) s48_long_to_bignum((((value_266X)>>2)));
    arg2K0 = v_267X;
    goto L23863;}
  else {
    arg2K0 = (((char *) (-3 + value_266X)));
    goto L23863;}}
 L23863: {
  x_268X = arg2K0;
  value_269X = Stemp1S;
  Stemp1S = 1;
  if ((0 == (3 & value_269X))) {
    v_270X = (char *) s48_long_to_bignum((((value_269X)>>2)));
    arg2K0 = v_270X;
    goto L23867;}
  else {
    arg2K0 = (((char *) (-3 + value_269X)));
    goto L23867;}}
 L23867: {
  y_271X = arg2K0;
  external_bignum_272X = (char *) s48_bignum_bitwise_and(x_268X, y_271X);
  v_273X = s48_bignum_fits_in_word_p(external_bignum_272X, 30, 1);
  if (v_273X) {
    n_274X = s48_bignum_to_long(external_bignum_272X);
    return (((n_274X)<<2));}
  else {
    return enter_bignum(external_bignum_272X);}}
}
static long integer_bitwise_ior(long x_275X, long y_276X)
{
  char * arg2K0;
  long arg0K1;
  long arg0K0;
  long n_290X;
  char v_289X;
  char * external_bignum_288X;
  char * y_287X;
  char * v_286X;
  long value_285X;
  char * x_284X;
  char * v_283X;
  long value_282X;
  long v_281X;
  long extra1_280X;
  long length1_279X;
  long extra0_278X;
  long length0_277X;
 {  if ((0 == (3 & x_275X))) {
    arg0K0 = 1;
    arg0K1 = 3;
    goto L20333;}
  else {
    arg0K0 = (-1 + ((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + x_275X))) + -4))))>>8))))>>2)));
    arg0K1 = 0;
    goto L20333;}}
 L20333: {
  length0_277X = arg0K0;
  extra0_278X = arg0K1;
  if ((0 == (3 & y_276X))) {
    arg0K0 = 1;
    arg0K1 = 3;
    goto L20341;}
  else {
    arg0K0 = (-1 + ((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + y_276X))) + -4))))>>8))))>>2)));
    arg0K1 = 0;
    goto L20341;}}
 L20341: {
  length1_279X = arg0K0;
  extra1_280X = arg0K1;
  if ((length0_277X < length1_279X)) {
    arg0K0 = length1_279X;
    goto L20363;}
  else {
    arg0K0 = length0_277X;
    goto L20363;}}
 L20363: {
  v_281X = arg0K0;
  Stemp0S = x_275X;
  Stemp1S = y_276X;s48_make_availableAgc(((((((1 + ((((11 + (((v_281X)<<2))))>>2))) + extra0_278X) + extra1_280X))<<2)));
  value_282X = Stemp0S;
  Stemp0S = 1;
  if ((0 == (3 & value_282X))) {
    v_283X = (char *) s48_long_to_bignum((((value_282X)>>2)));
    arg2K0 = v_283X;
    goto L23937;}
  else {
    arg2K0 = (((char *) (-3 + value_282X)));
    goto L23937;}}
 L23937: {
  x_284X = arg2K0;
  value_285X = Stemp1S;
  Stemp1S = 1;
  if ((0 == (3 & value_285X))) {
    v_286X = (char *) s48_long_to_bignum((((value_285X)>>2)));
    arg2K0 = v_286X;
    goto L23941;}
  else {
    arg2K0 = (((char *) (-3 + value_285X)));
    goto L23941;}}
 L23941: {
  y_287X = arg2K0;
  external_bignum_288X = (char *) s48_bignum_bitwise_ior(x_284X, y_287X);
  v_289X = s48_bignum_fits_in_word_p(external_bignum_288X, 30, 1);
  if (v_289X) {
    n_290X = s48_bignum_to_long(external_bignum_288X);
    return (((n_290X)<<2));}
  else {
    return enter_bignum(external_bignum_288X);}}
}
static long integer_bitwise_xor(long x_291X, long y_292X)
{
  char * arg2K0;
  long arg0K1;
  long arg0K0;
  long n_306X;
  char v_305X;
  char * external_bignum_304X;
  char * y_303X;
  char * v_302X;
  long value_301X;
  char * x_300X;
  char * v_299X;
  long value_298X;
  long v_297X;
  long extra1_296X;
  long length1_295X;
  long extra0_294X;
  long length0_293X;
 {  if ((0 == (3 & x_291X))) {
    arg0K0 = 1;
    arg0K1 = 3;
    goto L20290;}
  else {
    arg0K0 = (-1 + ((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + x_291X))) + -4))))>>8))))>>2)));
    arg0K1 = 0;
    goto L20290;}}
 L20290: {
  length0_293X = arg0K0;
  extra0_294X = arg0K1;
  if ((0 == (3 & y_292X))) {
    arg0K0 = 1;
    arg0K1 = 3;
    goto L20298;}
  else {
    arg0K0 = (-1 + ((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + y_292X))) + -4))))>>8))))>>2)));
    arg0K1 = 0;
    goto L20298;}}
 L20298: {
  length1_295X = arg0K0;
  extra1_296X = arg0K1;
  if ((length0_293X < length1_295X)) {
    arg0K0 = length1_295X;
    goto L20320;}
  else {
    arg0K0 = length0_293X;
    goto L20320;}}
 L20320: {
  v_297X = arg0K0;
  Stemp0S = x_291X;
  Stemp1S = y_292X;s48_make_availableAgc(((((((1 + ((((11 + (((v_297X)<<2))))>>2))) + extra0_294X) + extra1_296X))<<2)));
  value_298X = Stemp0S;
  Stemp0S = 1;
  if ((0 == (3 & value_298X))) {
    v_299X = (char *) s48_long_to_bignum((((value_298X)>>2)));
    arg2K0 = v_299X;
    goto L24011;}
  else {
    arg2K0 = (((char *) (-3 + value_298X)));
    goto L24011;}}
 L24011: {
  x_300X = arg2K0;
  value_301X = Stemp1S;
  Stemp1S = 1;
  if ((0 == (3 & value_301X))) {
    v_302X = (char *) s48_long_to_bignum((((value_301X)>>2)));
    arg2K0 = v_302X;
    goto L24015;}
  else {
    arg2K0 = (((char *) (-3 + value_301X)));
    goto L24015;}}
 L24015: {
  y_303X = arg2K0;
  external_bignum_304X = (char *) s48_bignum_bitwise_xor(x_300X, y_303X);
  v_305X = s48_bignum_fits_in_word_p(external_bignum_304X, 30, 1);
  if (v_305X) {
    n_306X = s48_bignum_to_long(external_bignum_304X);
    return (((n_306X)<<2));}
  else {
    return enter_bignum(external_bignum_304X);}}
}
static long Hinteger_op8311(long x_307X, long y_308X)
{
  long arg0K1;
  long arg0K0;
  char * arg2K0;
  long n_320X;
  char v_319X;
  char * external_bignum_318X;
  char * y_317X;
  char * v_316X;
  long value_315X;
  char * x_314X;
  char * v_313X;
  long value_312X;
  long extra1_311X;
  long extra0_310X;
  long length0_309X;
 {  if ((0 == (3 & x_307X))) {
    arg0K0 = 1;
    arg0K1 = 3;
    goto L24101;}
  else {
    arg0K0 = (-1 + ((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + x_307X))) + -4))))>>8))))>>2)));
    arg0K1 = 0;
    goto L24101;}}
 L24101: {
  length0_309X = arg0K0;
  extra0_310X = arg0K1;
  if ((0 == (3 & y_308X))) {
    arg0K0 = 3;
    goto L24103;}
  else {
    arg0K0 = 0;
    goto L24103;}}
 L24103: {
  extra1_311X = arg0K0;
  Stemp0S = x_307X;
  Stemp1S = y_308X;s48_make_availableAgc(((((((6 + (-2 & ((((7 + (((length0_309X)<<2))))>>1)))) + extra0_310X) + extra1_311X))<<2)));
  value_312X = Stemp0S;
  Stemp0S = 1;
  if ((0 == (3 & value_312X))) {
    v_313X = (char *) s48_long_to_bignum((((value_312X)>>2)));
    arg2K0 = v_313X;
    goto L24085;}
  else {
    arg2K0 = (((char *) (-3 + value_312X)));
    goto L24085;}}
 L24085: {
  x_314X = arg2K0;
  value_315X = Stemp1S;
  Stemp1S = 1;
  if ((0 == (3 & value_315X))) {
    v_316X = (char *) s48_long_to_bignum((((value_315X)>>2)));
    arg2K0 = v_316X;
    goto L24089;}
  else {
    arg2K0 = (((char *) (-3 + value_315X)));
    goto L24089;}}
 L24089: {
  y_317X = arg2K0;
  external_bignum_318X = (char *)s48_bignum_quotient(x_314X, y_317X);
  v_319X = s48_bignum_fits_in_word_p(external_bignum_318X, 30, 1);
  if (v_319X) {
    n_320X = s48_bignum_to_long(external_bignum_318X);
    return (((n_320X)<<2));}
  else {
    return enter_bignum(external_bignum_318X);}}
}
static long Hinteger_op8242(long x_321X, long y_322X)
{
  long arg0K1;
  long arg0K0;
  char * arg2K0;
  long n_334X;
  char v_333X;
  char * external_bignum_332X;
  char * y_331X;
  char * v_330X;
  long value_329X;
  char * x_328X;
  char * v_327X;
  long value_326X;
  long extra1_325X;
  long extra0_324X;
  long length0_323X;
 {  if ((0 == (3 & x_321X))) {
    arg0K0 = 1;
    arg0K1 = 3;
    goto L24192;}
  else {
    arg0K0 = (-1 + ((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + x_321X))) + -4))))>>8))))>>2)));
    arg0K1 = 0;
    goto L24192;}}
 L24192: {
  length0_323X = arg0K0;
  extra0_324X = arg0K1;
  if ((0 == (3 & y_322X))) {
    arg0K0 = 3;
    goto L24194;}
  else {
    arg0K0 = 0;
    goto L24194;}}
 L24194: {
  extra1_325X = arg0K0;
  Stemp0S = x_321X;
  Stemp1S = y_322X;s48_make_availableAgc(((((((6 + (-2 & ((((7 + (((length0_323X)<<2))))>>1)))) + extra0_324X) + extra1_325X))<<2)));
  value_326X = Stemp0S;
  Stemp0S = 1;
  if ((0 == (3 & value_326X))) {
    v_327X = (char *) s48_long_to_bignum((((value_326X)>>2)));
    arg2K0 = v_327X;
    goto L24176;}
  else {
    arg2K0 = (((char *) (-3 + value_326X)));
    goto L24176;}}
 L24176: {
  x_328X = arg2K0;
  value_329X = Stemp1S;
  Stemp1S = 1;
  if ((0 == (3 & value_329X))) {
    v_330X = (char *) s48_long_to_bignum((((value_329X)>>2)));
    arg2K0 = v_330X;
    goto L24180;}
  else {
    arg2K0 = (((char *) (-3 + value_329X)));
    goto L24180;}}
 L24180: {
  y_331X = arg2K0;
  external_bignum_332X = (char *)s48_bignum_remainder(x_328X, y_331X);
  v_333X = s48_bignum_fits_in_word_p(external_bignum_332X, 30, 1);
  if (v_333X) {
    n_334X = s48_bignum_to_long(external_bignum_332X);
    return (((n_334X)<<2));}
  else {
    return enter_bignum(external_bignum_332X);}}
}
static char for_each_imported_binding(char (*proc_335X)(long))
{
  long arg0K0;
  long link_342X;
  char x_341X;
  long entry_340X;
  long link_339X;
  char temp_338X;
  long i_337X;
  long table_336X;
 {  table_336X = Simported_bindingsS;
  arg0K0 = 0;
  goto L21273;}
 L21273: {
  i_337X = arg0K0;
  temp_338X = 1024 == i_337X;
  if (temp_338X) {
    return temp_338X;}
  else {
    link_339X = *((long *) ((((char *) (-3 + table_336X))) + (((i_337X)<<2))));
    if ((0 == (3 & link_339X))) {
      arg0K0 = (3 + (-4 & link_339X));
      goto L21245;}
    else {
      arg0K0 = link_339X;
      goto L21245;}}}
 L21245: {
  entry_340X = arg0K0;
  if ((1 == entry_340X)) {
    arg0K0 = (1 + i_337X);
    goto L21273;}
  else {
    x_341X = (*proc_335X)(entry_340X);
    if (x_341X) {
      link_342X = *((long *) ((((char *) (-3 + entry_340X))) + 12));
      if ((0 == (3 & link_342X))) {
        arg0K0 = (3 + (-4 & link_342X));
        goto L21245;}
      else {
        arg0K0 = link_342X;
        goto L21245;}}
    else {
      return 1;}}}
}
static long really_preserve_continuation(long key_343X)
{
  char * arg2K0;
  long arg0K1;
  long arg0K0;
  char * next_356X;
  long pc_355X;
  char * pointer_354X;
  char * pointer_353X;
  long new_352X;
  char * addr_351X;
  long len_350X;
  long size_349X;
  long size_348X;
  char * pointer_347X;
  long previous_346X;
  char * cont_345X;
  long temp_344X;
 {  if (((ScontS) == (Sbottom_of_stackS))) {
    goto L25552;}
  else {
    temp_344X = Sheap_continuationS;
    arg2K0 = (ScontS);
    arg0K1 = 1;
    goto L25522;}}
 L25552: {
  return (Sheap_continuationS);}
 L25522: {
  cont_345X = arg2K0;
  previous_346X = arg0K1;
  if ((cont_345X == (Sbottom_of_stackS))) {
    *((long *) ((((char *) (-3 + previous_346X))) + 8)) = (long) (temp_344X);
    ScontS = (Sbottom_of_stackS);
    goto L25552;}
  else {
    pointer_347X = (((char *) (*((long *) cont_345X)))) + -2;
    size_348X = ((((*((unsigned char *) pointer_347X)))<<8)) + (*((unsigned char *) (pointer_347X + 1)));
    if ((65535 == size_348X)) {
      arg0K0 = ((((*((long *) (cont_345X + 4))))>>2));
      goto L22067;}
    else {
      arg0K0 = size_348X;
      goto L22067;}}}
 L22067: {
  size_349X = arg0K0;
  len_350X = 12 + (((size_349X)<<2));
  addr_351X = s48_allocate_small((4 + len_350X));
  *((long *) addr_351X) = (long) ((42 + (((len_350X)<<8))));
  new_352X = 3 + (((long) (addr_351X + 4)));
  pointer_353X = ((char *) (*((long *) cont_345X)));
  pointer_354X = pointer_353X + -5;
  pc_355X = ((((*((unsigned char *) pointer_354X)))<<8)) + (*((unsigned char *) (pointer_354X + 1)));
  memmove((void *)((((char *) (-3 + new_352X))) + 12), (void *)(cont_345X + 4),(((size_349X)<<2)));
  *((long *) (((char *) (-3 + new_352X)))) = (long) ((((pc_355X)<<2)));
  *((long *) ((((char *) (-3 + new_352X))) + 4)) = (long) ((3 + (((long) (pointer_353X + (0 - pc_355X))))));
  next_356X = cont_345X + (4 + (((size_349X)<<2)));
  if ((3 == (3 & previous_346X))) {
    if ((10 == (31 & ((((*((long *) ((((char *) (-3 + previous_346X))) + -4))))>>2))))) {
      *((long *) ((((char *) (-3 + previous_346X))) + 8)) = (long) (new_352X);
      arg2K0 = next_356X;
      arg0K1 = new_352X;
      goto L25522;}
    else {
      goto L25540;}}
  else {
    goto L25540;}}
 L25540: {
  Sheap_continuationS = new_352X;
  arg2K0 = next_356X;
  arg0K1 = new_352X;
  goto L25522;}
}
static void push_exception_setupB(long exception_357X, long instruction_size_358X)
{
  long n_370X;
  long data_369X;
  long n_368X;
  long code_367X;
  long pc_366X;
  char * code_pointer_365X;
  long x_364X;
  long data_363X;
  long n_362X;
  long pc_361X;
  char * code_pointer_360X;
  long code_359X;
 {  if ((0 == (Snative_exception_contS))) {
    code_359X = current_code_vector();
    code_pointer_360X = (((char *) (-3 + (Sexception_return_codeS)))) + 13;
    pc_361X = ((((Scode_pointerS) - (((char *) (-3 + code_359X)))))<<2);
    SstackS = ((SstackS) + -20);
    n_362X = ((((ScontS) - (SstackS)))>>2);
    data_363X = 3 + (((long) (SstackS)));
    *((long *) (((char *) (-3 + data_363X)))) = (long) ((((n_362X)<<2)));
    *((long *) ((((char *) (-3 + data_363X))) + 4)) = (long) (pc_361X);
    *((long *) ((((char *) (-3 + data_363X))) + 8)) = (long) (code_359X);
    *((long *) ((((char *) (-3 + data_363X))) + 12)) = (long) ((((exception_357X)<<2)));
    *((long *) ((((char *) (-3 + data_363X))) + 16)) = (long) ((((instruction_size_358X)<<2)));
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) ((((long) code_pointer_360X)));
    ScontS = (SstackS);
    goto L25881;}
  else {
    x_364X = Snative_exception_contS;
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (x_364X);
    ScontS = (SstackS);
    ps_write_string("handling exception for nc ", (stderr));
    ps_write_integer((Snative_exception_contS), (stderr));
    code_pointer_365X = (((char *) (-3 + (Snative_exception_return_codeS)))) + 13;
    pc_366X = (((*((unsigned char *) (Scode_pointerS))))<<2);
    code_367X = Snative_exception_contS;
    SstackS = ((SstackS) + -20);
    n_368X = ((((ScontS) - (SstackS)))>>2);
    data_369X = 3 + (((long) (SstackS)));
    *((long *) (((char *) (-3 + data_369X)))) = (long) ((((n_368X)<<2)));
    *((long *) ((((char *) (-3 + data_369X))) + 4)) = (long) (pc_366X);
    *((long *) ((((char *) (-3 + data_369X))) + 8)) = (long) (code_367X);
    *((long *) ((((char *) (-3 + data_369X))) + 12)) = (long) ((((exception_357X)<<2)));
    *((long *) ((((char *) (-3 + data_369X))) + 16)) = (long) (0);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) ((((long) code_pointer_365X)));
    ScontS = (SstackS);
    Snative_exception_contS = 0;
    goto L25881;}}
 L25881: {
  n_370X = *((unsigned char *) (Scode_pointerS));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((n_370X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((exception_357X)<<2)));
  return;}
}
static long Hlookup2943(long table_371X, long string_372X, long key_373X)
{
  long arg0K0;
  char * addr_386X;
  long value_385X;
  long link_384X;
  long x_383X;
  char * addr_382X;
  long next_381X;
  long len_380X;
  long s2_379X;
  long foo_378X;
  long bucket_377X;
  long link_376X;
  long index_375X;
  long v_374X;
 {  v_374X = Haction4940(string_372X);
  index_375X = 1023 & v_374X;
  link_376X = *((long *) ((((char *) (-3 + table_371X))) + (((index_375X)<<2))));
  if ((0 == (3 & link_376X))) {
    arg0K0 = (3 + (-4 & link_376X));
    goto L26673;}
  else {
    arg0K0 = link_376X;
    goto L26673;}}
 L26673: {
  bucket_377X = arg0K0;
  arg0K0 = bucket_377X;
  goto L26679;}
 L26679: {
  foo_378X = arg0K0;
  if ((1 == foo_378X)) {
    if ((3 == (3 & bucket_377X))) {
      arg0K0 = (-4 & bucket_377X);
      goto L26684;}
    else {
      arg0K0 = bucket_377X;
      goto L26684;}}
  else {
    s2_379X = *((long *) (((char *) (-3 + foo_378X))));
    len_380X = (long)(((unsigned long)(*((long *) ((((char *) (-3 + string_372X))) + -4))))>>8);
    if ((len_380X == ((long)(((unsigned long)(*((long *) ((((char *) (-3 + s2_379X))) + -4))))>>8)))) {
      if (((!memcmp((void *)(((char *) (-3 + s2_379X))), (void *)(((char *) (-3 + string_372X))),len_380X)))) {
        return foo_378X;}
      else {
        goto L26699;}}
    else {
      goto L26699;}}}
 L26684: {
  next_381X = arg0K0;
  addr_382X = s48_allocate_small(20);
  *((long *) addr_382X) = (long) (4154);
  x_383X = 3 + (((long) (addr_382X + 4)));
  *((long *) (((char *) (-3 + x_383X)))) = (long) (string_372X);
  *((long *) ((((char *) (-3 + x_383X))) + 4)) = (long) (1);
  *((long *) ((((char *) (-3 + x_383X))) + 8)) = (long) (13);
  *((long *) ((((char *) (-3 + x_383X))) + 12)) = (long) (next_381X);
  if ((3 == (3 & x_383X))) {
    arg0K0 = (-4 & x_383X);
    goto L26690;}
  else {
    arg0K0 = x_383X;
    goto L26690;}}
 L26699: {
  link_384X = *((long *) ((((char *) (-3 + foo_378X))) + 12));
  if ((0 == (3 & link_384X))) {
    arg0K0 = (3 + (-4 & link_384X));
    goto L26679;}
  else {
    arg0K0 = link_384X;
    goto L26679;}}
 L26690: {
  value_385X = arg0K0;
  addr_386X = (((char *) (-3 + table_371X))) + (((index_375X)<<2));S48_WRITE_BARRIER(table_371X, addr_386X, value_385X);
  *((long *) addr_386X) = (long) (value_385X);
  return x_383X;}
}
static long Hlookup2924(long table_387X, long string_388X, long key_389X)
{
  long arg0K0;
  char * addr_402X;
  long value_401X;
  long link_400X;
  long x_399X;
  char * addr_398X;
  long next_397X;
  long len_396X;
  long s2_395X;
  long foo_394X;
  long bucket_393X;
  long link_392X;
  long index_391X;
  long v_390X;
 {  v_390X = Haction4940(string_388X);
  index_391X = 1023 & v_390X;
  link_392X = *((long *) ((((char *) (-3 + table_387X))) + (((index_391X)<<2))));
  if ((0 == (3 & link_392X))) {
    arg0K0 = (3 + (-4 & link_392X));
    goto L26816;}
  else {
    arg0K0 = link_392X;
    goto L26816;}}
 L26816: {
  bucket_393X = arg0K0;
  arg0K0 = bucket_393X;
  goto L26822;}
 L26822: {
  foo_394X = arg0K0;
  if ((1 == foo_394X)) {
    if ((3 == (3 & bucket_393X))) {
      arg0K0 = (-4 & bucket_393X);
      goto L26827;}
    else {
      arg0K0 = bucket_393X;
      goto L26827;}}
  else {
    s2_395X = *((long *) (((char *) (-3 + foo_394X))));
    len_396X = (long)(((unsigned long)(*((long *) ((((char *) (-3 + string_388X))) + -4))))>>8);
    if ((len_396X == ((long)(((unsigned long)(*((long *) ((((char *) (-3 + s2_395X))) + -4))))>>8)))) {
      if (((!memcmp((void *)(((char *) (-3 + s2_395X))), (void *)(((char *) (-3 + string_388X))),len_396X)))) {
        return foo_394X;}
      else {
        goto L26842;}}
    else {
      goto L26842;}}}
 L26827: {
  next_397X = arg0K0;
  addr_398X = s48_allocate_small(20);
  *((long *) addr_398X) = (long) (4154);
  x_399X = 3 + (((long) (addr_398X + 4)));
  *((long *) (((char *) (-3 + x_399X)))) = (long) (string_388X);
  *((long *) ((((char *) (-3 + x_399X))) + 4)) = (long) (5);
  *((long *) ((((char *) (-3 + x_399X))) + 8)) = (long) (13);
  *((long *) ((((char *) (-3 + x_399X))) + 12)) = (long) (next_397X);
  if ((3 == (3 & x_399X))) {
    arg0K0 = (-4 & x_399X);
    goto L26833;}
  else {
    arg0K0 = x_399X;
    goto L26833;}}
 L26842: {
  link_400X = *((long *) ((((char *) (-3 + foo_394X))) + 12));
  if ((0 == (3 & link_400X))) {
    arg0K0 = (3 + (-4 & link_400X));
    goto L26822;}
  else {
    arg0K0 = link_400X;
    goto L26822;}}
 L26833: {
  value_401X = arg0K0;
  addr_402X = (((char *) (-3 + table_387X))) + (((index_391X)<<2));S48_WRITE_BARRIER(table_387X, addr_402X, value_401X);
  *((long *) addr_402X) = (long) (value_401X);
  return x_399X;}
}
static void HtopD11565(void)
{
  long arg0K2;
  long arg0K1;
  long arg0K0;
  long id_445X;
  long new_444X;
  char * addr_443X;
  long val_442X;
  long channel_441X;
  long i_440X;
  long id_439X;
  long status_438X;
  long v_437X;
  char v_436X;
  long channel_435X;
  long i_434X;
  char * addr_433X;
  long next_link_432X;
  long new_foo_431X;
  char v_430X;
  char * addr_429X;
  long foo_428X;
  char * addr_427X;
  long l_426X;
  long v_425X;
  long okay_link_424X;
  long foo_link_423X;
  char * addr_422X;
  char * addr_421X;
  char * addr_420X;
  char * addr_419X;
  long val_418X;
  char tracedP_417X;
  long next_416X;
  long thing_415X;
  long pair_414X;
  long alist_413X;
  long l2_412X;
  long goners_411X;
  long okay_410X;
  long alist_409X;
  long foo_link_408X;
  long v_407X;
  long pc_406X;
  long code_405X;
  long i_404X;
  long table_403X;
 {  table_403X = s48_trace_value((Sthe_symbol_tableS));
  arg0K0 = 0;
  goto L27916;}
 L27916: {
  i_404X = arg0K0;
  if ((1024 == i_404X)) {
    Sthe_symbol_tableS = table_403X;
    code_405X = Slast_code_calledS;
    pc_406X = Ssaved_pcS;
    Slast_code_calledS = code_405X;
    Scode_pointerS = ((((char *) (-3 + code_405X))) + pc_406X);
    Slast_code_pointer_resumedS = (Scode_pointerS);
    v_407X = SHARED_REF((Sfinalizer_alistS));
    arg0K0 = v_407X;
    arg0K1 = 25;
    arg0K2 = 25;
    goto L14378;}
  else {
    foo_link_408X = *((long *) ((((char *) (-3 + table_403X))) + (((i_404X)<<2))));
    arg0K0 = foo_link_408X;
    arg0K1 = 1;
    goto L18655;}}
 L14378: {
  alist_409X = arg0K0;
  okay_410X = arg0K1;
  goners_411X = arg0K2;
  if ((25 == alist_409X)) {SHARED_SETB((Sfinalizer_alistS), okay_410X);
    l2_412X = Sfinalize_theseS;
    if ((25 == goners_411X)) {
      arg0K0 = l2_412X;
      goto L14385;}
    else {
      arg0K0 = goners_411X;
      goto L14440;}}
  else {
    alist_413X = s48_trace_value(alist_409X);
    pair_414X = s48_trace_value((*((long *) (((char *) (-3 + alist_413X))))));
    thing_415X = *((long *) (((char *) (-3 + pair_414X))));
    next_416X = *((long *) ((((char *) (-3 + alist_413X))) + 4));
    tracedP_417X = s48_extantP(thing_415X);
    val_418X = s48_trace_value(thing_415X);
    addr_419X = ((char *) (-3 + pair_414X));S48_WRITE_BARRIER(pair_414X, addr_419X, val_418X);
    *((long *) addr_419X) = (long) (val_418X);
    addr_420X = ((char *) (-3 + alist_413X));S48_WRITE_BARRIER(alist_413X, addr_420X, pair_414X);
    *((long *) addr_420X) = (long) (pair_414X);
    if (tracedP_417X) {
      addr_421X = (((char *) (-3 + alist_413X))) + 4;S48_WRITE_BARRIER(alist_413X, addr_421X, okay_410X);
      *((long *) addr_421X) = (long) (okay_410X);
      arg0K0 = next_416X;
      arg0K1 = alist_413X;
      arg0K2 = goners_411X;
      goto L14378;}
    else {
      addr_422X = (((char *) (-3 + alist_413X))) + 4;S48_WRITE_BARRIER(alist_413X, addr_422X, goners_411X);
      *((long *) addr_422X) = (long) (goners_411X);
      arg0K0 = next_416X;
      arg0K1 = okay_410X;
      arg0K2 = alist_413X;
      goto L14378;}}}
 L18655: {
  foo_link_423X = arg0K0;
  okay_link_424X = arg0K1;
  if ((0 == (3 & foo_link_423X))) {
    arg0K0 = (3 + (-4 & foo_link_423X));
    goto L18657;}
  else {
    arg0K0 = foo_link_423X;
    goto L18657;}}
 L14385: {
  v_425X = arg0K0;
  Sfinalize_theseS = v_425X;
  arg0K0 = 0;
  goto L26295;}
 L14440: {
  l_426X = arg0K0;
  if ((25 == (*((long *) ((((char *) (-3 + l_426X))) + 4))))) {
    addr_427X = (((char *) (-3 + l_426X))) + 4;S48_WRITE_BARRIER(l_426X, addr_427X, l2_412X);
    *((long *) addr_427X) = (long) (l2_412X);
    arg0K0 = goners_411X;
    goto L14385;}
  else {
    arg0K0 = (*((long *) ((((char *) (-3 + l_426X))) + 4)));
    goto L14440;}}
 L18657: {
  foo_428X = arg0K0;
  if ((1 == foo_428X)) {
    addr_429X = (((char *) (-3 + table_403X))) + (((i_404X)<<2));S48_WRITE_BARRIER(table_403X, addr_429X, okay_link_424X);
    *((long *) addr_429X) = (long) (okay_link_424X);
    arg0K0 = (1 + i_404X);
    goto L27916;}
  else {
    v_430X = s48_extantP(foo_428X);
    if (v_430X) {
      new_foo_431X = s48_trace_value(foo_428X);
      next_link_432X = *((long *) ((((char *) (-3 + new_foo_431X))) + 4));
      addr_433X = (((char *) (-3 + new_foo_431X))) + 4;S48_WRITE_BARRIER(new_foo_431X, addr_433X, okay_link_424X);
      *((long *) addr_433X) = (long) (okay_link_424X);
      if ((3 == (3 & new_foo_431X))) {
        arg0K0 = next_link_432X;
        arg0K1 = (-4 & new_foo_431X);
        goto L18655;}
      else {
        arg0K0 = next_link_432X;
        arg0K1 = new_foo_431X;
        goto L18655;}}
    else {
      arg0K0 = (*((long *) ((((char *) (-3 + foo_428X))) + 4)));
      arg0K1 = okay_link_424X;
      goto L18655;}}}
 L26295: {
  i_434X = arg0K0;
  if ((i_434X == (Snumber_of_channelsS))) {
    arg0K0 = 0;
    goto L14510;}
  else {
    channel_435X = *((Svm_channelsS) + i_434X);
    if ((1 == channel_435X)) {
      goto L26329;}
    else {
      v_436X = s48_extantP(channel_435X);
      if (v_436X) {
        v_437X = s48_trace_value(channel_435X);
        arg0K0 = v_437X;
        goto L26322;}
      else {
        if ((0 == (*((long *) (((char *) (-3 + channel_435X))))))) {
          arg0K0 = 1;
          goto L26322;}
        else {
          status_438X = close_channelB(channel_435X);
          id_439X = *((long *) ((((char *) (-3 + channel_435X))) + 4));
          if ((status_438X == NO_ERRORS)) {
            goto L26353;}
          else {channel_close_error(status_438X, (*((long *) ((((char *) (-3 + channel_435X))) + 8))), id_439X);
            goto L26353;}}}}}}
 L14510: {
  i_440X = arg0K0;
  if ((i_440X == (Snumber_of_channelsS))) {
    Spending_interruptsS = (4 | (Spending_interruptsS));
    if ((0 == ((Spending_interruptsS) & (Senabled_interruptsS)))) {
      s48_Sstack_limitS = (Sreal_stack_limitS);
      if ((s48_Spending_eventsPS)) {
        s48_Sstack_limitS = (((char *) -1));
        return;}
      else {
        return;}}
    else {
      s48_Sstack_limitS = (((char *) -1));
      return;}}
  else {
    channel_441X = *((Svm_channelsS) + i_440X);
    if ((1 == channel_441X)) {
      goto L14538;}
    else {
      if ((0 == (*((long *) (((char *) (-3 + channel_441X))))))) {
        goto L14538;}
      else {
        val_442X = s48_trace_value((*((long *) ((((char *) (-3 + channel_441X))) + 4))));
        addr_443X = (((char *) (-3 + channel_441X))) + 4;S48_WRITE_BARRIER(channel_441X, addr_443X, val_442X);
        *((long *) addr_443X) = (long) (val_442X);
        goto L14538;}}}}
 L26329: {
  arg0K0 = (1 + i_434X);
  goto L26295;}
 L26322: {
  new_444X = arg0K0;
  *((Svm_channelsS) + i_434X) = new_444X;
  goto L26329;}
 L26353: {
  if ((1 == (*((long *) ((((char *) (-3 + channel_435X))) + 12))))) {
    id_445X = *((long *) ((((char *) (-3 + channel_435X))) + 4));
    ps_write_string("Channel closed: ", (stderr));
    if ((0 == (3 & id_445X))) {
      ps_write_integer((((id_445X)>>2)), (stderr));
      goto L22490;}
    else {write_vm_string(id_445X, (stderr));
      goto L22490;}}
  else {
    arg0K0 = 1;
    goto L26322;}}
 L14538: {
  arg0K0 = (1 + i_440X);
  goto L14510;}
 L22490: {
  ps_write_string(" ", (stderr));
  ps_write_integer(((((*((long *) ((((char *) (-3 + channel_435X))) + 8))))>>2)), (stderr));
  { long ignoreXX;
  PS_WRITE_CHAR(10, (stderr), ignoreXX) }
  arg0K0 = 1;
  goto L26322;}
}
static void HtopD11576(void)
{
  char * arg2K0;
  long arg0K1;
  long arg0K0;
  long merged_arg0K0;

  int Hentry_tracer959446_return_tag;
  long Hentry_tracer9594460_return_value;
  long foo_link_447X;
  char * addr_516X;
  long next_link_515X;
  long new_foo_514X;
  long foo_513X;
  long done_link_512X;
  long foo_link_511X;
  long v_510X;
  long size_509X;
  char * pointer_508X;
  long v_507X;
  long v_506X;
  long v_505X;
  long cells_504X;
  long size_503X;
  char * pointer_502X;
  char * contents_pointer_501X;
  long new_code_500X;
  long mask_size_499X;
  char * code_pointer_498X;
  long pc_497X;
  char * pointer_496X;
  char * pointer_495X;
  char * cont_494X;
  char * addr_493X;
  long val_492X;
  long unused_491X;
  char * a_490X;
  char x_489X;
  long pair_488X;
  long v_487X;
  long v_486X;
  long alist_485X;
  char * addr_484X;
  long value_483X;
  long v_482X;
  long v_481X;
  long v_480X;
  long v_479X;
  long v_478X;
  long v_477X;
  long v_476X;
  long v_475X;
  long v_474X;
  long v_473X;
  long v_472X;
  long v_471X;
  long v_470X;
  long v_469X;
  long v_468X;
  long v_467X;
  long v_466X;
  long v_465X;
  long v_464X;
  long code_463X;
  long i_462X;
  char * addr_461X;
  long value_460X;
  long table_459X;
  long i_458X;
  long x2_457X;
  char * cell_456X;
  long i_455X;
  long x2_454X;
  char * cell_453X;
  long table_452X;
  char * frame_451X;
  long length_450X;
  char * frame_449X;
  long v_448X;
 {  v_448X = s48_trace_value((Sempty_logS));
  Sempty_logS = v_448X;
  arg2K0 = (Sexternal_root_stackS);
  goto L10619;}
 L10619: {
  frame_449X = arg2K0;
  if ((frame_449X == NULL)) {
    arg2K0 = (Spermanent_external_rootsS);
    goto L10645;}
  else {
    length_450X = *((long *) frame_449X);
    arg0K0 = 0;
    goto L10627;}}
 L10645: {
  frame_451X = arg2K0;
  if ((frame_451X == NULL)) {s48_initializing_gc_root();
    table_452X = s48_trace_value((Simported_bindingsS));
    arg0K0 = 0;
    goto L25101;}
  else {
    cell_453X = ((char *) (*((long *) (frame_451X + 8))));
    x2_454X = s48_trace_value((*((long *) cell_453X)));
    *((long *) cell_453X) = (long) (x2_454X);
    arg2K0 = (((char *) (*((long *) frame_451X))));
    goto L10645;}}
 L10627: {
  i_455X = arg0K0;
  if ((i_455X == length_450X)) {
    arg2K0 = (((char *) (*((long *) (frame_449X + 4)))));
    goto L10619;}
  else {
    cell_456X = ((char *) (*((long *) (frame_449X + (8 + (((i_455X)<<2)))))));
    x2_457X = s48_trace_value((*((long *) cell_456X)));
    *((long *) cell_456X) = (long) (x2_457X);
    arg0K0 = (1 + i_455X);
    goto L10627;}}
 L25101: {
  i_458X = arg0K0;
  if ((1024 == i_458X)) {
    Simported_bindingsS = table_452X;
    table_459X = s48_trace_value((Sexported_bindingsS));
    arg0K0 = 0;
    goto L25122;}
  else {
    merged_arg0K0 = (*((long *) ((((char *) (-3 + table_452X))) + (((i_458X)<<2)))));
    Hentry_tracer959446_return_tag = 0;
    goto Hentry_tracer959446;
   Hentry_tracer959446_return_0:
    value_460X = Hentry_tracer9594460_return_value;
    addr_461X = (((char *) (-3 + table_452X))) + (((i_458X)<<2));S48_WRITE_BARRIER(table_452X, addr_461X, value_460X);
    *((long *) addr_461X) = (long) (value_460X);
    arg0K0 = (1 + i_458X);
    goto L25101;}}
 L25122: {
  i_462X = arg0K0;
  if ((1024 == i_462X)) {
    Sexported_bindingsS = table_459X;
    code_463X = current_code_vector();
    Ssaved_pcS = ((Scode_pointerS) - (((char *) (-3 + code_463X))));
    v_464X = s48_trace_value(code_463X);
    Slast_code_calledS = v_464X;
    v_465X = s48_trace_value((SvalS));
    SvalS = v_465X;
    v_466X = s48_trace_value((Scurrent_threadS));
    Scurrent_threadS = v_466X;
    v_467X = s48_trace_value((Sinterrupted_byte_opcode_return_codeS));
    Sinterrupted_byte_opcode_return_codeS = v_467X;
    v_468X = s48_trace_value((Sinterrupted_native_call_return_codeS));
    Sinterrupted_native_call_return_codeS = v_468X;
    v_469X = s48_trace_value((Snative_poll_return_codeS));
    Snative_poll_return_codeS = v_469X;
    v_470X = s48_trace_value((Sexception_return_codeS));
    Sexception_return_codeS = v_470X;
    v_471X = s48_trace_value((Snative_exception_return_codeS));
    Snative_exception_return_codeS = v_471X;
    v_472X = s48_trace_value((Scall_with_values_return_codeS));
    Scall_with_values_return_codeS = v_472X;
    v_473X = s48_trace_value((Sinterrupted_templateS));
    Sinterrupted_templateS = v_473X;
    v_474X = SHARED_REF((Ssession_dataS));
    v_475X = s48_trace_value(v_474X);SHARED_SETB((Ssession_dataS), v_475X);
    v_476X = SHARED_REF((Sexception_handlersS));
    v_477X = s48_trace_value(v_476X);SHARED_SETB((Sexception_handlersS), v_477X);
    v_478X = SHARED_REF((Sinterrupt_handlersS));
    v_479X = s48_trace_value(v_478X);SHARED_SETB((Sinterrupt_handlersS), v_479X);
    v_480X = SHARED_REF((Sfinalize_theseS));
    v_481X = s48_trace_value(v_480X);SHARED_SETB((Sfinalize_theseS), v_481X);
    v_482X = SHARED_REF((Sfinalizer_alistS));
    arg0K0 = v_482X;
    goto L10685;}
  else {
    merged_arg0K0 = (*((long *) ((((char *) (-3 + table_459X))) + (((i_462X)<<2)))));
    Hentry_tracer959446_return_tag = 1;
    goto Hentry_tracer959446;
   Hentry_tracer959446_return_1:
    value_483X = Hentry_tracer9594460_return_value;
    addr_484X = (((char *) (-3 + table_459X))) + (((i_462X)<<2));S48_WRITE_BARRIER(table_459X, addr_484X, value_483X);
    *((long *) addr_484X) = (long) (value_483X);
    arg0K0 = (1 + i_462X);
    goto L25122;}}
 L10685: {
  alist_485X = arg0K0;
  if ((25 == alist_485X)) {
    v_486X = s48_trace_value((Spending_channels_headS));
    Spending_channels_headS = v_486X;
    v_487X = s48_trace_value((Spending_channels_tailS));
    Spending_channels_tailS = v_487X;
    if ((Sstack_warningPS)) {
      arg2K0 = (Sstack_beginS);
      goto L7514;}
    else {
      goto L18888;}}
  else {
    pair_488X = *((long *) (((char *) (-3 + alist_485X))));
    x_489X = s48_extantP((*((long *) (((char *) (-3 + pair_488X))))));
    if (x_489X) {
      goto L10710;}
    else {s48_trace_stob_contentsB((*((long *) (((char *) (-3 + pair_488X))))));
      goto L10710;}}}
 L7514: {
  a_490X = arg2K0;
  if ((252645135 == (*((long *) a_490X)))) {
    arg2K0 = (a_490X + 4);
    goto L7514;}
  else {
    unused_491X = (((a_490X - (Sstack_beginS)))>>2);
    if ((unused_491X < 30)) {
      { long ignoreXX;
      PS_WRITE_CHAR(10, (stderr), ignoreXX) }
      ps_write_string("[Alert: stack overconsumption (", (stderr));
      ps_write_integer(unused_491X, (stderr));
      ps_write_string("); please inform the Scheme 48 implementors]", (stderr));
      { long ignoreXX;
      PS_WRITE_CHAR(10, (stderr), ignoreXX) }
      Sstack_warningPS = 0;
      goto L18888;}
    else {
      goto L18888;}}}
 L18888: {
s48_trace_locationsB((SstackS), ((SstackS) + (-4 & ((ScontS) - (SstackS)))));
  arg2K0 = (ScontS);
  goto L18898;}
 L10710: {
  val_492X = s48_trace_value((*((long *) ((((char *) (-3 + pair_488X))) + 4))));
  addr_493X = (((char *) (-3 + pair_488X))) + 4;S48_WRITE_BARRIER(pair_488X, addr_493X, val_492X);
  *((long *) addr_493X) = (long) (val_492X);
  arg0K0 = (*((long *) ((((char *) (-3 + alist_485X))) + 4)));
  goto L10685;}
 L18898: {
  cont_494X = arg2K0;
  pointer_495X = ((char *) (*((long *) cont_494X)));
  pointer_496X = pointer_495X + -5;
  pc_497X = ((((*((unsigned char *) pointer_496X)))<<8)) + (*((unsigned char *) (pointer_496X + 1)));
  code_pointer_498X = ((char *) (*((long *) cont_494X)));
  mask_size_499X = *((unsigned char *) (code_pointer_498X + -3));
  new_code_500X = s48_trace_value((3 + (((long) (pointer_495X + (0 - pc_497X))))));
  contents_pointer_501X = cont_494X + 4;
  *((long *) cont_494X) = (long) ((((long) ((((char *) (-3 + new_code_500X))) + pc_497X))));
  if ((0 == mask_size_499X)) {
    pointer_502X = (((char *) (*((long *) cont_494X)))) + -2;
    size_503X = ((((*((unsigned char *) pointer_502X)))<<8)) + (*((unsigned char *) (pointer_502X + 1)));
    if ((65535 == size_503X)) {
      arg0K0 = ((((*((long *) (cont_494X + 4))))>>2));
      goto L15793;}
    else {
      arg0K0 = size_503X;
      goto L15793;}}
  else {s48_trace_continuation_contentsB(contents_pointer_501X, code_pointer_498X, mask_size_499X);
    goto L18908;}}
 L15793: {
  cells_504X = arg0K0;s48_trace_locationsB(contents_pointer_501X, (contents_pointer_501X + (((cells_504X)<<2))));
  goto L18908;}
 L18908: {
  if ((cont_494X == (Sbottom_of_stackS))) {
    v_505X = s48_trace_value((Sheap_continuationS));
    Sheap_continuationS = v_505X;
    v_506X = s48_trace_value((Stemp0S));
    Stemp0S = v_506X;
    v_507X = s48_trace_value((Stemp1S));
    Stemp1S = v_507X;
    return;}
  else {
    pointer_508X = (((char *) (*((long *) cont_494X)))) + -2;
    size_509X = ((((*((unsigned char *) pointer_508X)))<<8)) + (*((unsigned char *) (pointer_508X + 1)));
    if ((65535 == size_509X)) {
      arg0K0 = ((((*((long *) (cont_494X + 4))))>>2));
      goto L18946;}
    else {
      arg0K0 = size_509X;
      goto L18946;}}}
 L18946: {
  v_510X = arg0K0;
  arg2K0 = (cont_494X + (4 + (((v_510X)<<2))));
  goto L18898;}
 Hentry_tracer959446: {
  foo_link_447X = merged_arg0K0;{
  arg0K0 = foo_link_447X;
  arg0K1 = 1;
  goto L18727;}
 L18727: {
  foo_link_511X = arg0K0;
  done_link_512X = arg0K1;
  if ((0 == (3 & foo_link_511X))) {
    arg0K0 = (3 + (-4 & foo_link_511X));
    goto L18729;}
  else {
    arg0K0 = foo_link_511X;
    goto L18729;}}
 L18729: {
  foo_513X = arg0K0;
  if ((1 == foo_513X)) {
    Hentry_tracer9594460_return_value = done_link_512X;
    goto Hentry_tracer959446_return;}
  else {
    new_foo_514X = s48_trace_value(foo_513X);
    next_link_515X = *((long *) ((((char *) (-3 + new_foo_514X))) + 12));
    addr_516X = (((char *) (-3 + new_foo_514X))) + 12;S48_WRITE_BARRIER(new_foo_514X, addr_516X, done_link_512X);
    *((long *) addr_516X) = (long) (done_link_512X);
    if ((3 == (3 & new_foo_514X))) {
      arg0K0 = next_link_515X;
      arg0K1 = (-4 & new_foo_514X);
      goto L18727;}
    else {
      arg0K0 = next_link_515X;
      arg0K1 = new_foo_514X;
      goto L18727;}}}
 Hentry_tracer959446_return:
  switch (Hentry_tracer959446_return_tag) {
  case 0: goto Hentry_tracer959446_return_0;
  default: goto Hentry_tracer959446_return_1;
  }}

}
void s48_set_native_protocolB(long protocol_517X)
{

 {  s48_Snative_protocolS = protocol_517X;
  return;}
}
void s48_set_extension_valueB(long value_518X)
{

 {  s48_Sextension_valueS = value_518X;
  return;}
}
long s48_channel_count(void)
{

 {  return (Snumber_of_channelsS);}
}
long *s48_channels(void)
{

 {  return (Svm_channelsS);}
}
char s48_os_signal_pending(void)
{
  long arg0K0;
  long v_519X;
 {  if (((Sos_signal_ring_readyS) == (Sos_signal_ring_endS))) {
    return 0;}
  else {
    if ((31 == (Sos_signal_ring_readyS))) {
      arg0K0 = 0;
      goto L3499;}
    else {
      arg0K0 = (1 + (Sos_signal_ring_readyS));
      goto L3499;}}}
 L3499: {
  v_519X = arg0K0;
  Sos_signal_ring_readyS = v_519X;
  return 1;}
}
long s48_imported_bindings(void)
{

 {  return (Simported_bindingsS);}
}
long s48_exported_bindings(void)
{

 {  return (Sexported_bindingsS);}
}
long s48_symbol_table(void)
{

 {  return (Sthe_symbol_tableS);}
}
char * s48_set_gc_roots_baseB(void)
{
  char * old_base_520X;
 {  old_base_520X = Sexternal_root_stack_baseS;
  Sexternal_root_stack_baseS = (Sexternal_root_stackS);
  return old_base_520X;}
}
char s48_release_gc_roots_baseB(char * old_base_521X)
{
  char * current_base_522X;
 {  current_base_522X = Sexternal_root_stack_baseS;
  Sexternal_root_stack_baseS = old_base_521X;
  if (((Sexternal_root_stackS) == current_base_522X)) {
    return 1;}
  else {
    Sexternal_root_stackS = current_base_522X;
    return 0;}}
}
void s48_reset_external_rootsB(void)
{

 {  Sexternal_root_stackS = NULL;
  Sexternal_root_stack_baseS = NULL;
  Spermanent_external_rootsS = NULL;
  return;}
}
void s48_note_event(void)
{

 {  s48_Spending_eventsPS = 1;
  s48_Sstack_limitS = (((char *) -1));
  return;}
}
void s48_reset_interruptsB(void)
{

 {  Sos_signal_ring_startS = 0;
  Sos_signal_ring_readyS = 0;
  Sos_signal_ring_endS = 0;
  Senabled_interruptsS = 0;
  Spending_interruptsS = 0;
  s48_Spending_interruptPS = 0;
  return;}
}
void s48_disable_interruptsB(void)
{

 {  s48_Spending_interruptPS = 0;
  Senabled_interruptsS = 0;
  return;}
}
void s48_add_os_signal(long sig_523X)
{
  long arg0K0;
  long v_524X;
 {  if ((31 == (Sos_signal_ring_endS))) {
    arg0K0 = 0;
    goto L4463;}
  else {
    arg0K0 = (1 + (Sos_signal_ring_endS));
    goto L4463;}}
 L4463: {
  v_524X = arg0K0;
  Sos_signal_ring_endS = v_524X;
  if (((Sos_signal_ring_startS) == (Sos_signal_ring_endS))) {
    ps_error("OS signal ring too small, report to Scheme 48 maintainers", 0);
    goto L4465;}
  else {
    goto L4465;}}
 L4465: {
  *(Sos_signal_ringS + (Sos_signal_ring_endS)) = sig_523X;
  return;}
}
void s48_push_gc_rootsB(char * frame_525X, long n_526X)
{

 {  *((long *) frame_525X) = (long) (n_526X);
  *((long *) (frame_525X + 4)) = (long) ((((long) (Sexternal_root_stackS))));
  Sexternal_root_stackS = frame_525X;
  return;}
}
char * s48_register_gc_rootB(char * loc_addr_527X)
{
  char * x_529X;
  char * frame_528X;
 {  frame_528X = (char *)malloc(12);
  if ((frame_528X == NULL)) {
    ps_error("out of memory registering a global root", 0);
    goto L4671;}
  else {
    goto L4671;}}
 L4671: {
  *((long *) frame_528X) = (long) ((((long) (Spermanent_external_rootsS))));
  *((long *) (frame_528X + 4)) = (long) ((((long) NULL)));
  x_529X = Spermanent_external_rootsS;
  if ((x_529X == NULL)) {
    goto L4691;}
  else {
    *((long *) ((Spermanent_external_rootsS) + 4)) = (long) ((((long) frame_528X)));
    goto L4691;}}
 L4691: {
  *((long *) (frame_528X + 8)) = (long) ((((long) loc_addr_527X)));
  Spermanent_external_rootsS = frame_528X;
  return frame_528X;}
}
void s48_stack_setB(long x_530X, long value_531X)
{

 {  *((long *) ((SstackS) + (((x_530X)<<2)))) = (long) (value_531X);
  return;}
}
long s48_stack_ref(long i_532X)
{

 {  return (*((long *) ((SstackS) + (((i_532X)<<2)))));}
}
void s48_push(long x_533X)
{

 {  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_533X);
  return;}
}
long s48_resetup_external_exception(long new_why_534X, long additional_nargs_535X)
{
  long old_why_537X;
  long old_nargs_536X;
 {  old_nargs_536X = Sexternal_exception_nargsS;
  old_why_537X = *((long *) ((SstackS) + (((old_nargs_536X)<<2))));
  *((long *) ((SstackS) + (((old_nargs_536X)<<2)))) = (long) ((((new_why_534X)<<2)));
  Sexternal_exception_nargsS = (old_nargs_536X + additional_nargs_535X);
  return old_why_537X;}
}
char s48_pop_gc_rootsB(void)
{

 {  if (((Sexternal_root_stackS) == (Sexternal_root_stack_baseS))) {
    return 0;}
  else {
    Sexternal_root_stackS = (((char *) (*((long *) ((Sexternal_root_stackS) + 4)))));
    return 1;}}
}
void s48_unregister_gc_rootB(char * frame_538X)
{
  char * previous_540X;
  char * next_539X;
 {  if ((frame_538X == (Spermanent_external_rootsS))) {
    Spermanent_external_rootsS = (((char *) (*((long *) frame_538X))));
    goto L9121;}
  else {
    next_539X = ((char *) (*((long *) frame_538X)));
    previous_540X = ((char *) (*((long *) (frame_538X + 4))));
    *((long *) previous_540X) = (long) ((((long) next_539X)));
    if ((next_539X == NULL)) {
      goto L9121;}
    else {
      *((long *) (next_539X + 4)) = (long) ((((long) previous_540X)));
      goto L9121;}}}
 L9121: {
  free(frame_538X);
  return;}
}
char * s48_shorten_bignum(char * external_bignum_541X, long number_of_digits_542X)
{
  long waste_size_547X;
  long old_data_size_546X;
  long new_data_size_545X;
  long new_size_544X;
  long bignum_543X;
 {  bignum_543X = 3 + (((long) external_bignum_541X));
  new_size_544X = 4 + (-4 & (7 + (((number_of_digits_542X)<<2))));
  new_data_size_545X = -4 + new_size_544X;
  old_data_size_546X = (long)(((unsigned long)(*((long *) ((((char *) (-3 + bignum_543X))) + -4))))>>8);
  waste_size_547X = old_data_size_546X - new_data_size_545X;
  if ((waste_size_547X < 0)) {
    ps_error("shorten bignum", 2, new_data_size_545X, old_data_size_546X);
    goto L9854;}
  else {
    goto L9854;}}
 L9854: {
  if ((waste_size_547X < 4)) {
    return external_bignum_541X;}
  else {
    *((long *) ((((char *) (-3 + bignum_543X))) + -4)) = (long) ((78 + (((new_data_size_545X)<<8))));
    *((long *) ((((char *) (((long) ((((char *) (-3 + bignum_543X))) + (-4 & (3 + new_size_544X))))))) + -4)) = (long) ((-946 + (((waste_size_547X)<<8))));
    return external_bignum_541X;}}
}
long s48_allocate_string(long len_548X)
{
  long arg0K0;
  long string_551X;
  char * addr_550X;
  long len_549X;
 {  len_549X = ((len_548X)<<2);
  addr_550X = s48_allocate_untracedAgc((4 + len_549X));
  if ((addr_550X == NULL)) {
    arg0K0 = 1;
    goto L12683;}
  else {
    *((long *) addr_550X) = (long) ((66 + (((len_549X)<<8))));
    arg0K0 = (3 + (((long) (addr_550X + 4))));
    goto L12683;}}
 L12683: {
  string_551X = arg0K0;
  if ((1 == string_551X)) {
    ps_error("Out of space, unable to allocate", 0);
    return string_551X;}
  else {
    return string_551X;}}
}
long s48_allocate_bignum(long size_552X)
{
  char * addr_553X;
 {  addr_553X = s48_allocate_small((4 + size_552X));
  *((long *) addr_553X) = (long) ((78 + (((size_552X)<<8))));
  return (3 + (((long) (addr_553X + 4))));}
}
void s48_enable_interruptsB(void)
{

 {  Senabled_interruptsS = -1;
  if ((0 == ((Spending_interruptsS) & (Senabled_interruptsS)))) {
    s48_Sstack_limitS = (Sreal_stack_limitS);
    if ((s48_Spending_eventsPS)) {
      s48_Sstack_limitS = (((char *) -1));
      return;}
    else {
      return;}}
  else {
    s48_Sstack_limitS = (((char *) -1));
    return;}}
}
long s48_set_channel_os_index(long channel_554X, long os_index_555X)
{
  char * addr_562X;
  long val_561X;
  long v_560X;
  long x_559X;
  long old_index_558X;
  char x_557X;
  char temp_556X;
 {  temp_556X = os_index_555X < (Snumber_of_channelsS);
  if (temp_556X) {
    goto L14669;}
  else {
    x_557X = add_more_channels(os_index_555X);
    if (x_557X) {
      goto L14669;}
    else {
      return 36;}}}
 L14669: {
  if ((1 == (*((Svm_channelsS) + os_index_555X)))) {
    old_index_558X = (((*((long *) ((((char *) (-3 + channel_554X))) + 8))))>>2);
    x_559X = *((long *) ((((char *) (-3 + channel_554X))) + 20));
    if ((5 == x_559X)) {
      v_560X = ps_abort_fd_op(old_index_558X);enqueue_channelB(old_index_558X, v_560X, 1);
      goto L14655;}
    else {
      goto L14655;}}
  else {
    return 44;}}
 L14655: {
  *((Svm_channelsS) + old_index_558X) = 1;
  *((Svm_channelsS) + os_index_555X) = channel_554X;
  val_561X = ((os_index_555X)<<2);
  addr_562X = (((char *) (-3 + channel_554X))) + 8;S48_WRITE_BARRIER(channel_554X, addr_562X, val_561X);
  *((long *) addr_562X) = (long) (val_561X);
  return 5;}
}
long s48_enter_string_utf_8(char * p_563X)
{
  long arg0K1;
  long arg0K0;
  long vm_577X;
  long string_576X;
  char * addr_575X;
  long len_574X;
  long decoded_573X;
  long consumed_572X;
  long count_571X;
  long v_570X;
  char incompleteP_569X;
  char v_568X;
  char encoding_okP_567X;
  long target_index_566X;
  long index_565X;
  long size_564X;
 {  size_564X = strlen((char *) (((char *)p_563X)));
  arg0K0 = 0;
  arg0K1 = 0;
  goto L16844;}
 L16844: {
  index_565X = arg0K0;
  target_index_566X = arg0K1;
  if ((index_565X < size_564X)) {
    encoding_okP_567X = decode_scalar_value(2, (p_563X + index_565X), (size_564X - index_565X), &v_568X, &incompleteP_569X, &v_570X, &count_571X);
    if (encoding_okP_567X) {
      if (incompleteP_569X) {
        arg0K0 = index_565X;
        arg0K1 = target_index_566X;
        goto L16821;}
      else {
        arg0K0 = (index_565X + count_571X);
        arg0K1 = (1 + target_index_566X);
        goto L16844;}}
    else {
      arg0K0 = (1 + index_565X);
      arg0K1 = (1 + target_index_566X);
      goto L16844;}}
  else {
    arg0K0 = index_565X;
    arg0K1 = target_index_566X;
    goto L16821;}}
 L16821: {
  consumed_572X = arg0K0;
  decoded_573X = arg0K1;
  len_574X = ((decoded_573X)<<2);
  addr_575X = s48_allocate_untracedAgc((4 + len_574X));
  if ((addr_575X == NULL)) {
    arg0K0 = 1;
    goto L16862;}
  else {
    *((long *) addr_575X) = (long) ((66 + (((len_574X)<<8))));
    arg0K0 = (3 + (((long) (addr_575X + 4))));
    goto L16862;}}
 L16862: {
  string_576X = arg0K0;
  if ((1 == string_576X)) {
    ps_error("Out of space, unable to allocate", 0);
    arg0K0 = string_576X;
    goto L16827;}
  else {
    arg0K0 = string_576X;
    goto L16827;}}
 L16827: {
  vm_577X = arg0K0;decode_utf_8B(p_563X, vm_577X, consumed_572X);
  return vm_577X;}
}
long s48_enter_string_utf_8_n(char * p_578X, long size_579X)
{
  long arg0K1;
  long arg0K0;
  long vm_592X;
  long string_591X;
  char * addr_590X;
  long len_589X;
  long decoded_588X;
  long consumed_587X;
  long count_586X;
  long v_585X;
  char incompleteP_584X;
  char v_583X;
  char encoding_okP_582X;
  long target_index_581X;
  long index_580X;
 {  arg0K0 = 0;
  arg0K1 = 0;
  goto L16904;}
 L16904: {
  index_580X = arg0K0;
  target_index_581X = arg0K1;
  if ((index_580X < size_579X)) {
    encoding_okP_582X = decode_scalar_value(2, (p_578X + index_580X), (size_579X - index_580X), &v_583X, &incompleteP_584X, &v_585X, &count_586X);
    if (encoding_okP_582X) {
      if (incompleteP_584X) {
        arg0K0 = index_580X;
        arg0K1 = target_index_581X;
        goto L16884;}
      else {
        arg0K0 = (index_580X + count_586X);
        arg0K1 = (1 + target_index_581X);
        goto L16904;}}
    else {
      arg0K0 = (1 + index_580X);
      arg0K1 = (1 + target_index_581X);
      goto L16904;}}
  else {
    arg0K0 = index_580X;
    arg0K1 = target_index_581X;
    goto L16884;}}
 L16884: {
  consumed_587X = arg0K0;
  decoded_588X = arg0K1;
  len_589X = ((decoded_588X)<<2);
  addr_590X = s48_allocate_untracedAgc((4 + len_589X));
  if ((addr_590X == NULL)) {
    arg0K0 = 1;
    goto L16922;}
  else {
    *((long *) addr_590X) = (long) ((66 + (((len_589X)<<8))));
    arg0K0 = (3 + (((long) (addr_590X + 4))));
    goto L16922;}}
 L16922: {
  string_591X = arg0K0;
  if ((1 == string_591X)) {
    ps_error("Out of space, unable to allocate", 0);
    arg0K0 = string_591X;
    goto L16890;}
  else {
    arg0K0 = string_591X;
    goto L16890;}}
 L16890: {
  vm_592X = arg0K0;decode_utf_8B(p_578X, vm_592X, consumed_587X);
  return vm_592X;}
}
long s48_integer_or_floanum_L(long x_593X, long y_594X)
{
  long v_597X;
  long v_596X;
  long v_595X;
 {  if ((3 == (3 & x_593X))) {
    if ((18 == (31 & ((((*((long *) ((((char *) (-3 + x_593X))) + -4))))>>2))))) {
      if (((*((double *) (((char *) (-3 + x_593X))))) < (*((double *) (((char *) (-3 + y_594X))))))) {
        return 5;}
      else {
        return 1;}}
    else {
      goto L18103;}}
  else {
    goto L18103;}}
 L18103: {
  if ((0 == (3 & x_593X))) {
    if ((0 == (3 & y_594X))) {
      if ((x_593X < y_594X)) {
        return 5;}
      else {
        return 1;}}
    else {
      v_595X = s48_bignum_test((((char *) (-3 + y_594X))));
      if ((1 == v_595X)) {
        return 5;}
      else {
        return 1;}}}
  else {
    if ((0 == (3 & y_594X))) {
      v_596X = s48_bignum_test((((char *) (-3 + x_593X))));
      if ((1 == v_596X)) {
        return 1;}
      else {
        return 5;}}
    else {
      v_597X = s48_bignum_compare((((char *) (-3 + x_593X))), (((char *) (-3 + y_594X))));
      if ((-1 == v_597X)) {
        return 5;}
      else {
        return 1;}}}}
}
long s48_integer_or_floanum_G(long x_598X, long y_599X)
{
  long v_602X;
  long v_601X;
  long v_600X;
 {  if ((3 == (3 & x_598X))) {
    if ((18 == (31 & ((((*((long *) ((((char *) (-3 + x_598X))) + -4))))>>2))))) {
      if (((*((double *) (((char *) (-3 + y_599X))))) < (*((double *) (((char *) (-3 + x_598X))))))) {
        return 5;}
      else {
        return 1;}}
    else {
      goto L18232;}}
  else {
    goto L18232;}}
 L18232: {
  if ((0 == (3 & y_599X))) {
    if ((0 == (3 & x_598X))) {
      if ((y_599X < x_598X)) {
        return 5;}
      else {
        return 1;}}
    else {
      v_600X = s48_bignum_test((((char *) (-3 + x_598X))));
      if ((1 == v_600X)) {
        return 5;}
      else {
        return 1;}}}
  else {
    if ((0 == (3 & x_598X))) {
      v_601X = s48_bignum_test((((char *) (-3 + y_599X))));
      if ((1 == v_601X)) {
        return 1;}
      else {
        return 5;}}
    else {
      v_602X = s48_bignum_compare((((char *) (-3 + y_599X))), (((char *) (-3 + x_598X))));
      if ((-1 == v_602X)) {
        return 5;}
      else {
        return 1;}}}}
}
long s48_integer_or_floanum_LE(long x_603X, long y_604X)
{
  char b_605X;
 {  if ((3 == (3 & x_603X))) {
    if ((18 == (31 & ((((*((long *) ((((char *) (-3 + x_603X))) + -4))))>>2))))) {
      if (((*((double *) (((char *) (-3 + y_604X))))) < (*((double *) (((char *) (-3 + x_603X))))))) {
        return 1;}
      else {
        return 5;}}
    else {
      goto L18361;}}
  else {
    goto L18361;}}
 L18361: {
  b_605X = integerLE(x_603X, y_604X);
  if (b_605X) {
    return 5;}
  else {
    return 1;}}
}
long s48_integer_or_floanum_GE(long x_606X, long y_607X)
{
  char b_608X;
 {  if ((3 == (3 & x_606X))) {
    if ((18 == (31 & ((((*((long *) ((((char *) (-3 + x_606X))) + -4))))>>2))))) {
      if (((*((double *) (((char *) (-3 + x_606X))))) < (*((double *) (((char *) (-3 + y_607X))))))) {
        return 1;}
      else {
        return 5;}}
    else {
      goto L18438;}}
  else {
    goto L18438;}}
 L18438: {
  b_608X = integerGE(x_606X, y_607X);
  if (b_608X) {
    return 5;}
  else {
    return 1;}}
}
long s48_make_blank_return_code(long protocol_609X, long template_610X, long frame_size_611X, long opcode_count_612X)
{

 {s48_make_availableAgc((4 + (-4 & (18 + opcode_count_612X))));
  return make_blank_return_code(protocol_609X, template_610X, frame_size_611X, opcode_count_612X, 0);}
}
long s48_enter_string_latin_1_n(char *s_613X, long count_614X)
{

 {  return enter_stringAgc_n(s_613X, count_614X);}
}
long s48_integer_or_floanum_E(long x_615X, long y_616X)
{
  char arg3K0;
  char v_618X;
  char b_617X;
 {  if ((3 == (3 & x_615X))) {
    if ((18 == (31 & ((((*((long *) ((((char *) (-3 + x_615X))) + -4))))>>2))))) {
      arg3K0 = ((*((double *) (((char *) (-3 + x_615X))))) == (*((double *) (((char *) (-3 + y_616X))))));
      goto L20911;}
    else {
      goto L20907;}}
  else {
    goto L20907;}}
 L20911: {
  b_617X = arg3K0;
  if (b_617X) {
    return 5;}
  else {
    return 1;}}
 L20907: {
  v_618X = integerE(x_615X, y_616X);
  arg3K0 = v_618X;
  goto L20911;}
}
void s48_close_channel(long os_index_619X)
{
  long obj_620X;
 {  if ((os_index_619X < 0)) {
    return;}
  else {
    if ((os_index_619X < (Snumber_of_channelsS))) {
      obj_620X = *((Svm_channelsS) + os_index_619X);
      if ((3 == (3 & obj_620X))) {
        if ((6 == (31 & ((((*((long *) ((((char *) (-3 + obj_620X))) + -4))))>>2))))) {close_channelB((*((Svm_channelsS) + os_index_619X)));
          return;}
        else {
          return;}}
      else {
        return;}}
    else {
      return;}}}
}
long s48_enter_string_latin_1(char *s_621X)
{

 {  return enter_stringAgc_n(s_621X, (strlen((char *) s_621X)));}
}
void s48_string_set(long s_622X, long i_623X, long c_624X)
{
  long arg0K2;
  long arg0K1;
  long arg0K0;
  long shifted_629X;
  long j_628X;
  long bits_627X;
  long max_626X;
  long v_625X;
 {  if ((3 == (3 & s_622X))) {
    if ((16 == (31 & ((((*((long *) ((((char *) (-3 + s_622X))) + -4))))>>2))))) {
      goto L24324;}
    else {s48_raise_argument_type_error(s_622X);
      goto L24324;}}
  else {s48_raise_argument_type_error(s_622X);
    goto L24324;}}
 L24324: {
  v_625X = ((long)(((unsigned long)(*((long *) ((((char *) (-3 + s_622X))) + -4))))>>8)) / 4;
  max_626X = -1 + v_625X;
  if ((i_623X < 0)) {
    goto L24346;}
  else {
    if ((max_626X < i_623X)) {
      goto L24346;}
    else {
      goto L24326;}}}
 L24346: {
s48_raise_range_error((((i_623X)<<2)), 0, (((max_626X)<<2)));
  goto L24326;}
 L24326: {
  arg0K0 = 0;
  arg0K1 = 0;
  arg0K2 = c_624X;
  goto L24366;}
 L24366: {
  bits_627X = arg0K0;
  j_628X = arg0K1;
  shifted_629X = arg0K2;
  if ((j_628X < 4)) {
    *((unsigned char *) ((((char *) (-3 + s_622X))) + ((((i_623X)<<2)) + j_628X))) = (unsigned char) ((255 & shifted_629X));
    arg0K0 = (8 + bits_627X);
    arg0K1 = (1 + j_628X);
    arg0K2 = ((long)(((unsigned long)shifted_629X)>>8));
    goto L24366;}
  else {
    return;}}
}
long s48_string_ref(long s_630X, long i_631X)
{
  long arg0K2;
  long arg0K1;
  long arg0K0;
  long x_637X;
  long scalar_value_636X;
  long j_635X;
  long bits_634X;
  long max_633X;
  long v_632X;
 {  if ((3 == (3 & s_630X))) {
    if ((16 == (31 & ((((*((long *) ((((char *) (-3 + s_630X))) + -4))))>>2))))) {
      goto L24388;}
    else {s48_raise_argument_type_error(s_630X);
      goto L24388;}}
  else {s48_raise_argument_type_error(s_630X);
    goto L24388;}}
 L24388: {
  v_632X = ((long)(((unsigned long)(*((long *) ((((char *) (-3 + s_630X))) + -4))))>>8)) / 4;
  max_633X = -1 + v_632X;
  if ((i_631X < 0)) {
    goto L24410;}
  else {
    if ((max_633X < i_631X)) {
      goto L24410;}
    else {
      goto L24390;}}}
 L24410: {
s48_raise_range_error((((i_631X)<<2)), 0, (((max_633X)<<2)));
  goto L24390;}
 L24390: {
  arg0K0 = 0;
  arg0K1 = 0;
  arg0K2 = 0;
  goto L24429;}
 L24429: {
  bits_634X = arg0K0;
  j_635X = arg0K1;
  scalar_value_636X = arg0K2;
  if ((j_635X < 4)) {
    PS_SHIFT_LEFT((*((unsigned char *) ((((char *) (-3 + s_630X))) + ((((i_631X)<<2)) + j_635X)))), bits_634X, x_637X)
    arg0K0 = (8 + bits_634X);
    arg0K1 = (1 + j_635X);
    arg0K2 = (x_637X + scalar_value_636X);
    goto L24429;}
  else {
    return scalar_value_636X;}}
}
long s48_string_length(long s_638X)
{

 {  if ((3 == (3 & s_638X))) {
    if ((16 == (31 & ((((*((long *) ((((char *) (-3 + s_638X))) + -4))))>>2))))) {
      goto L24448;}
    else {s48_raise_argument_type_error(s_638X);
      goto L24448;}}
  else {s48_raise_argument_type_error(s_638X);
    goto L24448;}}
 L24448: {
  return (((long)(((unsigned long)(*((long *) ((((char *) (-3 + s_638X))) + -4))))>>8)) / 4);}
}
void s48_copy_latin_1_to_string_n(char *string_639X, long len_640X, long vm_string_641X)
{
  long arg0K2;
  long arg0K1;
  long arg0K0;
  long shifted_647X;
  long j_646X;
  long bits_645X;
  long c_644X;
  long i_643X;
  long max_642X;
 {  if ((3 == (3 & vm_string_641X))) {
    if ((16 == (31 & ((((*((long *) ((((char *) (-3 + vm_string_641X))) + -4))))>>2))))) {
      goto L24476;}
    else {s48_raise_argument_type_error(vm_string_641X);
      goto L24476;}}
  else {s48_raise_argument_type_error(vm_string_641X);
    goto L24476;}}
 L24476: {
  max_642X = ((long)(((unsigned long)(*((long *) ((((char *) (-3 + vm_string_641X))) + -4))))>>8)) / 4;
  if ((len_640X < 0)) {
    goto L24500;}
  else {
    if ((max_642X < len_640X)) {
      goto L24500;}
    else {
      goto L24480;}}}
 L24500: {
s48_raise_range_error((((len_640X)<<2)), 0, (((max_642X)<<2)));
  goto L24480;}
 L24480: {
  arg0K0 = 0;
  goto L24518;}
 L24518: {
  i_643X = arg0K0;
  if ((i_643X < len_640X)) {
    c_644X = ((unsigned char) (*(string_639X + i_643X)));
    arg0K0 = 0;
    arg0K1 = 0;
    arg0K2 = c_644X;
    goto L24529;}
  else {
    return;}}
 L24529: {
  bits_645X = arg0K0;
  j_646X = arg0K1;
  shifted_647X = arg0K2;
  if ((j_646X < 4)) {
    *((unsigned char *) ((((char *) (-3 + vm_string_641X))) + ((((i_643X)<<2)) + j_646X))) = (unsigned char) ((255 & shifted_647X));
    arg0K0 = (8 + bits_645X);
    arg0K1 = (1 + j_646X);
    arg0K2 = ((long)(((unsigned long)shifted_647X)>>8));
    goto L24529;}
  else {
    arg0K0 = (1 + i_643X);
    goto L24518;}}
}
void s48_copy_latin_1_to_string(char *string_648X, long vm_string_649X)
{
  long arg0K2;
  long arg0K1;
  long arg0K0;
  long shifted_656X;
  long j_655X;
  long bits_654X;
  long c_653X;
  long i_652X;
  long i_651X;
  long max_650X;
 {  if ((3 == (3 & vm_string_649X))) {
    if ((16 == (31 & ((((*((long *) ((((char *) (-3 + vm_string_649X))) + -4))))>>2))))) {
      goto L24552;}
    else {s48_raise_argument_type_error(vm_string_649X);
      goto L24552;}}
  else {s48_raise_argument_type_error(vm_string_649X);
    goto L24552;}}
 L24552: {
  max_650X = ((long)(((unsigned long)(*((long *) ((((char *) (-3 + vm_string_649X))) + -4))))>>8)) / 4;
  i_651X = strlen((char *) string_648X);
  if ((i_651X < 0)) {
    goto L24578;}
  else {
    if ((max_650X < i_651X)) {
      goto L24578;}
    else {
      goto L24558;}}}
 L24578: {
s48_raise_range_error((((i_651X)<<2)), 0, (((max_650X)<<2)));
  goto L24558;}
 L24558: {
  arg0K0 = 0;
  goto L24596;}
 L24596: {
  i_652X = arg0K0;
  if ((i_652X < (strlen((char *) string_648X)))) {
    c_653X = ((unsigned char) (*(string_648X + i_652X)));
    arg0K0 = 0;
    arg0K1 = 0;
    arg0K2 = c_653X;
    goto L24607;}
  else {
    return;}}
 L24607: {
  bits_654X = arg0K0;
  j_655X = arg0K1;
  shifted_656X = arg0K2;
  if ((j_655X < 4)) {
    *((unsigned char *) ((((char *) (-3 + vm_string_649X))) + ((((i_652X)<<2)) + j_655X))) = (unsigned char) ((255 & shifted_656X));
    arg0K0 = (8 + bits_654X);
    arg0K1 = (1 + j_655X);
    arg0K2 = ((long)(((unsigned long)shifted_656X)>>8));
    goto L24607;}
  else {
    arg0K0 = (1 + i_652X);
    goto L24596;}}
}
void s48_copy_string_to_latin_1(long vm_string_657X, char *string_658X)
{
  long v_659X;
 {  if ((3 == (3 & vm_string_657X))) {
    if ((16 == (31 & ((((*((long *) ((((char *) (-3 + vm_string_657X))) + -4))))>>2))))) {
      goto L24630;}
    else {s48_raise_argument_type_error(vm_string_657X);
      goto L24630;}}
  else {s48_raise_argument_type_error(vm_string_657X);
    goto L24630;}}
 L24630: {
  v_659X = ((long)(((unsigned long)(*((long *) ((((char *) (-3 + vm_string_657X))) + -4))))>>8)) / 4;
  copy_vm_string_to_stringUlatin_1B(vm_string_657X, 0, v_659X, string_658X);
  return;}
}
void s48_copy_string_to_latin_1_n(long vm_string_660X, long start_661X, long count_662X, char *string_663X)
{
  long max_667X;
  long v_666X;
  long max_665X;
  long v_664X;
 {  if ((3 == (3 & vm_string_660X))) {
    if ((16 == (31 & ((((*((long *) ((((char *) (-3 + vm_string_660X))) + -4))))>>2))))) {
      goto L24661;}
    else {s48_raise_argument_type_error(vm_string_660X);
      goto L24661;}}
  else {s48_raise_argument_type_error(vm_string_660X);
    goto L24661;}}
 L24661: {
  v_664X = ((long)(((unsigned long)(*((long *) ((((char *) (-3 + vm_string_660X))) + -4))))>>8)) / 4;
  max_665X = -1 + v_664X;
  if ((start_661X < 0)) {
    goto L24687;}
  else {
    if ((max_665X < start_661X)) {
      goto L24687;}
    else {
      goto L24663;}}}
 L24687: {
s48_raise_range_error((((start_661X)<<2)), 0, (((max_665X)<<2)));
  goto L24663;}
 L24663: {
  v_666X = ((long)(((unsigned long)(*((long *) ((((char *) (-3 + vm_string_660X))) + -4))))>>8)) / 4;
  max_667X = v_666X - start_661X;
  if ((count_662X < 0)) {
    goto L24704;}
  else {
    if ((max_667X < count_662X)) {
      goto L24704;}
    else {
      copy_vm_string_to_stringUlatin_1B(vm_string_660X, start_661X, count_662X, string_663X);
      return;}}}
 L24704: {
s48_raise_range_error((((count_662X)<<2)), 0, (((max_667X)<<2)));
  copy_vm_string_to_stringUlatin_1B(vm_string_660X, start_661X, count_662X, string_663X);
  return;}
}
long s48_string_utf_8_length(long vm_string_668X)
{
  long arg0K2;
  long arg0K1;
  long arg0K0;
  long count_678X;
  char v_677X;
  char v_676X;
  long x_675X;
  long scalar_value_674X;
  long j_673X;
  long bits_672X;
  long char_index_671X;
  long utf_8_length_670X;
  long count_669X;
 {  if ((3 == (3 & vm_string_668X))) {
    if ((16 == (31 & ((((*((long *) ((((char *) (-3 + vm_string_668X))) + -4))))>>2))))) {
      goto L24733;}
    else {s48_raise_argument_type_error(vm_string_668X);
      goto L24733;}}
  else {s48_raise_argument_type_error(vm_string_668X);
    goto L24733;}}
 L24733: {
  count_669X = ((long)(((unsigned long)(*((long *) ((((char *) (-3 + vm_string_668X))) + -4))))>>8)) / 4;
  arg0K0 = 0;
  arg0K1 = 0;
  goto L24760;}
 L24760: {
  utf_8_length_670X = arg0K0;
  char_index_671X = arg0K1;
  if ((char_index_671X < count_669X)) {
    arg0K0 = 0;
    arg0K1 = 0;
    arg0K2 = 0;
    goto L24769;}
  else {
    return utf_8_length_670X;}}
 L24769: {
  bits_672X = arg0K0;
  j_673X = arg0K1;
  scalar_value_674X = arg0K2;
  if ((j_673X < 4)) {
    PS_SHIFT_LEFT((*((unsigned char *) ((((char *) (-3 + vm_string_668X))) + ((((char_index_671X)<<2)) + j_673X)))), bits_672X, x_675X)
    arg0K0 = (8 + bits_672X);
    arg0K1 = (1 + j_673X);
    arg0K2 = (x_675X + scalar_value_674X);
    goto L24769;}
  else {encode_scalar_value(2, scalar_value_674X, (((char *) 0)), 0, &v_676X, &v_677X, &count_678X);
    arg0K0 = (utf_8_length_670X + count_678X);
    arg0K1 = (1 + char_index_671X);
    goto L24760;}}
}
long s48_string_utf_8_length_n(long vm_string_679X, long start_index_680X, long count_681X)
{
  long arg0K2;
  long arg0K1;
  long arg0K0;
  long count_694X;
  char v_693X;
  char v_692X;
  long x_691X;
  long scalar_value_690X;
  long j_689X;
  long bits_688X;
  long char_index_687X;
  long utf_8_length_686X;
  long max_685X;
  long v_684X;
  long max_683X;
  long v_682X;
 {  if ((3 == (3 & vm_string_679X))) {
    if ((16 == (31 & ((((*((long *) ((((char *) (-3 + vm_string_679X))) + -4))))>>2))))) {
      goto L24792;}
    else {s48_raise_argument_type_error(vm_string_679X);
      goto L24792;}}
  else {s48_raise_argument_type_error(vm_string_679X);
    goto L24792;}}
 L24792: {
  v_682X = ((long)(((unsigned long)(*((long *) ((((char *) (-3 + vm_string_679X))) + -4))))>>8)) / 4;
  max_683X = -1 + v_682X;
  if ((start_index_680X < 0)) {
    goto L24818;}
  else {
    if ((max_683X < start_index_680X)) {
      goto L24818;}
    else {
      goto L24794;}}}
 L24818: {
s48_raise_range_error((((start_index_680X)<<2)), 0, (((max_683X)<<2)));
  goto L24794;}
 L24794: {
  v_684X = ((long)(((unsigned long)(*((long *) ((((char *) (-3 + vm_string_679X))) + -4))))>>8)) / 4;
  max_685X = v_684X - start_index_680X;
  if ((count_681X < 0)) {
    goto L24835;}
  else {
    if ((max_685X < count_681X)) {
      goto L24835;}
    else {
      goto L24798;}}}
 L24835: {
s48_raise_range_error((((count_681X)<<2)), 0, (((max_685X)<<2)));
  goto L24798;}
 L24798: {
  arg0K0 = 0;
  arg0K1 = 0;
  goto L24854;}
 L24854: {
  utf_8_length_686X = arg0K0;
  char_index_687X = arg0K1;
  if ((char_index_687X < count_681X)) {
    arg0K0 = 0;
    arg0K1 = 0;
    arg0K2 = 0;
    goto L24863;}
  else {
    return utf_8_length_686X;}}
 L24863: {
  bits_688X = arg0K0;
  j_689X = arg0K1;
  scalar_value_690X = arg0K2;
  if ((j_689X < 4)) {
    PS_SHIFT_LEFT((*((unsigned char *) ((((char *) (-3 + vm_string_679X))) + (((((start_index_680X + char_index_687X))<<2)) + j_689X)))), bits_688X, x_691X)
    arg0K0 = (8 + bits_688X);
    arg0K1 = (1 + j_689X);
    arg0K2 = (x_691X + scalar_value_690X);
    goto L24863;}
  else {encode_scalar_value(2, scalar_value_690X, (((char *) 0)), 0, &v_692X, &v_693X, &count_694X);
    arg0K0 = (utf_8_length_686X + count_694X);
    arg0K1 = (1 + char_index_687X);
    goto L24854;}}
}
void s48_copy_string_to_utf_8(long vm_string_695X, char * string_696X)
{
  long arg0K2;
  long arg0K1;
  long arg0K0;
  long count_706X;
  char v_705X;
  char v_704X;
  long x_703X;
  long scalar_value_702X;
  long j_701X;
  long bits_700X;
  long target_index_699X;
  long source_index_698X;
  long count_697X;
 {  if ((3 == (3 & vm_string_695X))) {
    if ((16 == (31 & ((((*((long *) ((((char *) (-3 + vm_string_695X))) + -4))))>>2))))) {
      goto L24893;}
    else {s48_raise_argument_type_error(vm_string_695X);
      goto L24893;}}
  else {s48_raise_argument_type_error(vm_string_695X);
    goto L24893;}}
 L24893: {
  count_697X = ((long)(((unsigned long)(*((long *) ((((char *) (-3 + vm_string_695X))) + -4))))>>8)) / 4;
  arg0K0 = 0;
  arg0K1 = 0;
  goto L24921;}
 L24921: {
  source_index_698X = arg0K0;
  target_index_699X = arg0K1;
  if ((source_index_698X < count_697X)) {
    arg0K0 = 0;
    arg0K1 = 0;
    arg0K2 = 0;
    goto L24930;}
  else {
    return;}}
 L24930: {
  bits_700X = arg0K0;
  j_701X = arg0K1;
  scalar_value_702X = arg0K2;
  if ((j_701X < 4)) {
    PS_SHIFT_LEFT((*((unsigned char *) ((((char *) (-3 + vm_string_695X))) + ((((source_index_698X)<<2)) + j_701X)))), bits_700X, x_703X)
    arg0K0 = (8 + bits_700X);
    arg0K1 = (1 + j_701X);
    arg0K2 = (x_703X + scalar_value_702X);
    goto L24930;}
  else {encode_scalar_value(2, scalar_value_702X, (string_696X + target_index_699X), 4, &v_704X, &v_705X, &count_706X);
    arg0K0 = (1 + source_index_698X);
    arg0K1 = (target_index_699X + count_706X);
    goto L24921;}}
}
void s48_copy_string_to_utf_8_n(long vm_string_707X, long start_708X, long count_709X, char * string_710X)
{
  long arg0K2;
  long arg0K1;
  long arg0K0;
  long count_723X;
  char v_722X;
  char v_721X;
  long x_720X;
  long scalar_value_719X;
  long j_718X;
  long bits_717X;
  long target_index_716X;
  long source_index_715X;
  long max_714X;
  long v_713X;
  long max_712X;
  long v_711X;
 {  if ((3 == (3 & vm_string_707X))) {
    if ((16 == (31 & ((((*((long *) ((((char *) (-3 + vm_string_707X))) + -4))))>>2))))) {
      goto L24954;}
    else {s48_raise_argument_type_error(vm_string_707X);
      goto L24954;}}
  else {s48_raise_argument_type_error(vm_string_707X);
    goto L24954;}}
 L24954: {
  v_711X = ((long)(((unsigned long)(*((long *) ((((char *) (-3 + vm_string_707X))) + -4))))>>8)) / 4;
  max_712X = -1 + v_711X;
  if ((start_708X < 0)) {
    goto L24980;}
  else {
    if ((max_712X < start_708X)) {
      goto L24980;}
    else {
      goto L24956;}}}
 L24980: {
s48_raise_range_error((((start_708X)<<2)), 0, (((max_712X)<<2)));
  goto L24956;}
 L24956: {
  v_713X = ((long)(((unsigned long)(*((long *) ((((char *) (-3 + vm_string_707X))) + -4))))>>8)) / 4;
  max_714X = v_713X - start_708X;
  if ((count_709X < 0)) {
    goto L24997;}
  else {
    if ((max_714X < count_709X)) {
      goto L24997;}
    else {
      goto L24960;}}}
 L24997: {
s48_raise_range_error((((count_709X)<<2)), 0, (((max_714X)<<2)));
  goto L24960;}
 L24960: {
  arg0K0 = 0;
  arg0K1 = 0;
  goto L25017;}
 L25017: {
  source_index_715X = arg0K0;
  target_index_716X = arg0K1;
  if ((source_index_715X < count_709X)) {
    arg0K0 = 0;
    arg0K1 = 0;
    arg0K2 = 0;
    goto L25026;}
  else {
    return;}}
 L25026: {
  bits_717X = arg0K0;
  j_718X = arg0K1;
  scalar_value_719X = arg0K2;
  if ((j_718X < 4)) {
    PS_SHIFT_LEFT((*((unsigned char *) ((((char *) (-3 + vm_string_707X))) + (((((start_708X + source_index_715X))<<2)) + j_718X)))), bits_717X, x_720X)
    arg0K0 = (8 + bits_717X);
    arg0K1 = (1 + j_718X);
    arg0K2 = (x_720X + scalar_value_719X);
    goto L25026;}
  else {encode_scalar_value(2, scalar_value_719X, (string_710X + target_index_716X), 4, &v_721X, &v_722X, &count_723X);
    arg0K0 = (1 + source_index_715X);
    arg0K1 = (target_index_716X + count_723X);
    goto L25017;}}
}
void check_stack(void)
{
  char * arg2K0;
  char * arg2K1;
  long arg0K0;
  long v_745X;
  long address_744X;
  long x_743X;
  char * ptr_742X;
  long mask_741X;
  long size_740X;
  char * pointer_739X;
  long address_738X;
  long x_737X;
  char * addr_736X;
  char * trace_ptr_735X;
  char * mask_ptr_734X;
  long v_733X;
  char * mask_pointer_732X;
  long size_731X;
  char * pointer_730X;
  char * contents_pointer_729X;
  long mask_size_728X;
  char * code_pointer_727X;
  char * cont_726X;
  char * v_725X;
  char * v_724X;
 {  v_724X = s48_oldspace_begin();
  Soldspace_beginS = (((long) v_724X));
  v_725X = s48_oldspace_end();
  Soldspace_endS = (((long) v_725X));
  arg2K0 = (ScontS);
  goto L25150;}
 L25150: {
  cont_726X = arg2K0;
  if ((cont_726X == (Sbottom_of_stackS))) {
    return;}
  else {
    code_pointer_727X = ((char *) (*((long *) cont_726X)));
    mask_size_728X = *((unsigned char *) (code_pointer_727X + -3));
    contents_pointer_729X = cont_726X + 4;
    if ((0 == mask_size_728X)) {
      pointer_730X = (((char *) (*((long *) cont_726X)))) + -2;
      size_731X = ((((*((unsigned char *) pointer_730X)))<<8)) + (*((unsigned char *) (pointer_730X + 1)));
      if ((65535 == size_731X)) {
        arg0K0 = ((((*((long *) (cont_726X + 4))))>>2));
        goto L18869;}
      else {
        arg0K0 = size_731X;
        goto L18869;}}
    else {
      mask_pointer_732X = code_pointer_727X + -7;
      arg2K0 = (mask_pointer_732X + (0 - mask_size_728X));
      arg2K1 = contents_pointer_729X;
      goto L7930;}}}
 L18869: {
  v_733X = arg0K0;
  arg2K0 = contents_pointer_729X;
  goto L7871;}
 L7930: {
  mask_ptr_734X = arg2K0;
  trace_ptr_735X = arg2K1;
  if ((mask_ptr_734X == mask_pointer_732X)) {
    goto L21505;}
  else {
    arg0K0 = (*((unsigned char *) mask_ptr_734X));
    arg2K1 = trace_ptr_735X;
    goto L7938;}}
 L7871: {
  addr_736X = arg2K0;
  if ((addr_736X < (cont_726X + (4 + (((v_733X)<<2)))))) {
    x_737X = *((long *) addr_736X);
    if ((2 == (3 & x_737X))) {
      goto L7889;}
    else {
      if ((3 == (3 & x_737X))) {
        address_738X = -3 + x_737X;
        if ((address_738X < (Soldspace_beginS))) {
          goto L7876;}
        else {
          if (((Soldspace_endS) < address_738X)) {
            goto L7876;}
          else {
            goto L7889;}}}
      else {
        goto L7876;}}}
  else {
    goto L21505;}}
 L21505: {
  pointer_739X = (((char *) (*((long *) cont_726X)))) + -2;
  size_740X = ((((*((unsigned char *) pointer_739X)))<<8)) + (*((unsigned char *) (pointer_739X + 1)));
  if ((65535 == size_740X)) {
    arg0K0 = ((((*((long *) (cont_726X + 4))))>>2));
    goto L21510;}
  else {
    arg0K0 = size_740X;
    goto L21510;}}
 L7938: {
  mask_741X = arg0K0;
  ptr_742X = arg2K1;
  if ((0 == mask_741X)) {
    arg2K0 = (mask_ptr_734X + 1);
    arg2K1 = (trace_ptr_735X + 32);
    goto L7930;}
  else {
    if ((1 == (1 & mask_741X))) {
      x_743X = *((long *) ptr_742X);
      if ((2 == (3 & x_743X))) {
        goto L7995;}
      else {
        if ((3 == (3 & x_743X))) {
          address_744X = -3 + x_743X;
          if ((address_744X < (Soldspace_beginS))) {
            goto L7954;}
          else {
            if (((Soldspace_endS) < address_744X)) {
              goto L7954;}
            else {
              goto L7995;}}}
        else {
          goto L7954;}}}
    else {
      goto L7954;}}}
 L7889: {
  ps_error("bad descriptor in stack", 1, x_737X);
  goto L7876;}
 L7876: {
  arg2K0 = (addr_736X + 4);
  goto L7871;}
 L21510: {
  v_745X = arg0K0;
  arg2K0 = (cont_726X + (4 + (((v_745X)<<2))));
  goto L25150;}
 L7995: {
  ps_error("bad descriptor in stack", 1, x_743X);
  goto L7954;}
 L7954: {
  arg0K0 = (((mask_741X)>>1));
  arg2K1 = (ptr_742X + 4);
  goto L7938;}
}
long s48_really_add_channel(long mode_746X, long id_747X, long os_index_748X)
{
  long arg0K1;
  long arg0K0;
  long status_753X;
  long channel_752X;
  long channel_751X;
  char x_750X;
  char temp_749X;
 {s48_make_availableAgc(32);
  temp_749X = os_index_748X < (Snumber_of_channelsS);
  if (temp_749X) {
    goto L25467;}
  else {
    x_750X = add_more_channels(os_index_748X);
    if (x_750X) {
      goto L25467;}
    else {
      arg0K0 = 1;
      arg0K1 = 9;
      goto L25441;}}}
 L25467: {
  if ((1 == (*((Svm_channelsS) + os_index_748X)))) {
    channel_751X = make_channel((-4 & mode_746X), id_747X, (((os_index_748X)<<2)), 1, 1, 1, 1, 0);
    *((Svm_channelsS) + os_index_748X) = channel_751X;
    arg0K0 = channel_751X;
    arg0K1 = 9;
    goto L25441;}
  else {
    arg0K0 = 1;
    arg0K1 = 11;
    goto L25441;}}
 L25441: {
  channel_752X = arg0K0;
  status_753X = arg0K1;
  if ((3 == (3 & channel_752X))) {
    if ((6 == (31 & ((((*((long *) ((((char *) (-3 + channel_752X))) + -4))))>>2))))) {
      return channel_752X;}
    else {
      goto L25449;}}
  else {
    goto L25449;}}
 L25449: {
  return (((status_753X)<<2));}
}
long s48_integer_bit_count(long x_754X)
{

 {  return integer_bit_count(x_754X);}
}
long s48_enter_integer(long x_755X)
{
  char * v_756X;
 {s48_make_availableAgc(16);
  if ((536870911 < x_755X)) {
    goto L26072;}
  else {
    if ((x_755X < -536870912)) {
      goto L26072;}
    else {
      return (((x_755X)<<2));}}}
 L26072: {
  v_756X = (char *) s48_long_to_bignum(x_755X);
  return enter_bignum(v_756X);}
}
long s48_integer_or_floanum_add(long x_757X, long y_758X)
{
  long Kdouble_764X;
  char * addr_763X;
  double y_762X;
  long value_761X;
  double x_760X;
  long value_759X;
 {  if ((3 == (3 & x_757X))) {
    if ((18 == (31 & ((((*((long *) ((((char *) (-3 + x_757X))) + -4))))>>2))))) {
      Stemp0S = x_757X;
      Stemp1S = y_758X;s48_make_availableAgc(12);
      value_759X = Stemp0S;
      Stemp0S = 1;
      x_760X = *((double *) (((char *) (-3 + value_759X))));
      value_761X = Stemp1S;
      Stemp1S = 1;
      y_762X = *((double *) (((char *) (-3 + value_761X))));
      addr_763X = s48_allocate_small(12);
      *((long *) addr_763X) = (long) (2122);
      Kdouble_764X = 3 + (((long) (addr_763X + 4)));
      *((double *) (((char *) (-3 + Kdouble_764X)))) = (double) ((x_760X + y_762X));
      return Kdouble_764X;}
    else {
      return integer_add(x_757X, y_758X);}}
  else {
    return integer_add(x_757X, y_758X);}}
}
long s48_integer_or_floanum_sub(long x_765X, long y_766X)
{
  long Kdouble_772X;
  char * addr_771X;
  double y_770X;
  long value_769X;
  double x_768X;
  long value_767X;
 {  if ((3 == (3 & x_765X))) {
    if ((18 == (31 & ((((*((long *) ((((char *) (-3 + x_765X))) + -4))))>>2))))) {
      Stemp0S = x_765X;
      Stemp1S = y_766X;s48_make_availableAgc(12);
      value_767X = Stemp0S;
      Stemp0S = 1;
      x_768X = *((double *) (((char *) (-3 + value_767X))));
      value_769X = Stemp1S;
      Stemp1S = 1;
      y_770X = *((double *) (((char *) (-3 + value_769X))));
      addr_771X = s48_allocate_small(12);
      *((long *) addr_771X) = (long) (2122);
      Kdouble_772X = 3 + (((long) (addr_771X + 4)));
      *((double *) (((char *) (-3 + Kdouble_772X)))) = (double) ((x_768X - y_770X));
      return Kdouble_772X;}
    else {
      return integer_subtract(x_765X, y_766X);}}
  else {
    return integer_subtract(x_765X, y_766X);}}
}
long s48_integer_or_floanum_mul(long x_773X, long y_774X)
{
  long Kdouble_780X;
  char * addr_779X;
  double y_778X;
  long value_777X;
  double x_776X;
  long value_775X;
 {  if ((3 == (3 & x_773X))) {
    if ((18 == (31 & ((((*((long *) ((((char *) (-3 + x_773X))) + -4))))>>2))))) {
      Stemp0S = x_773X;
      Stemp1S = y_774X;s48_make_availableAgc(12);
      value_775X = Stemp0S;
      Stemp0S = 1;
      x_776X = *((double *) (((char *) (-3 + value_775X))));
      value_777X = Stemp1S;
      Stemp1S = 1;
      y_778X = *((double *) (((char *) (-3 + value_777X))));
      addr_779X = s48_allocate_small(12);
      *((long *) addr_779X) = (long) (2122);
      Kdouble_780X = 3 + (((long) (addr_779X + 4)));
      *((double *) (((char *) (-3 + Kdouble_780X)))) = (double) ((x_776X * y_778X));
      return Kdouble_780X;}
    else {
      return integer_multiply(x_773X, y_774X);}}
  else {
    return integer_multiply(x_773X, y_774X);}}
}
long s48_integer_bitwise_not(long x_781X)
{

 {  return integer_bitwise_not(x_781X);}
}
long s48_integer_bitwise_and(long x_782X, long y_783X)
{

 {  return integer_bitwise_and(x_782X, y_783X);}
}
long s48_integer_bitwise_ior(long x_784X, long y_785X)
{

 {  return integer_bitwise_ior(x_784X, y_785X);}
}
long s48_integer_bitwise_xor(long x_786X, long y_787X)
{

 {  return integer_bitwise_xor(x_786X, y_787X);}
}
void s48_setup_external_exception(long why_788X, long nargs_789X)
{

 {push_exception_setupB(why_788X, 1);
  if ((10 < nargs_789X)) {
    ps_error("too many arguments from external exception", 0);
    goto L27101;}
  else {
    goto L27101;}}
 L27101: {
  Sexternal_exception_nargsS = nargs_789X;
  Sexternal_exceptionPS = 1;
  return;}
}
long s48_integer_quotient(long x_790X, long y_791X)
{

 {  return Hinteger_op8311(x_790X, y_791X);}
}
long s48_integer_remainder(long x_792X, long y_793X)
{

 {  return Hinteger_op8242(x_792X, y_793X);}
}
void s48_copy_stack_into_heap(void)
{
  char * arg2K1;
  char * arg2K0;
  char * arg_797X;
  char * loc_796X;
  char * top_795X;
  long arg_count_794X;
 {s48_make_availableAgc(((((-4 & ((Sstack_endS) - (SstackS))))<<2)));
  arg_count_794X = ((((ScontS) - (SstackS)))>>2);
  top_795X = SstackS;
  if ((1 == (((long) (ScontS))))) {
    goto L27149;}
  else {really_preserve_continuation(0);
    goto L27149;}}
 L27149: {
  SstackS = (ScontS);
  arg2K0 = ((SstackS) + -4);
  arg2K1 = (top_795X + (-4 + (((arg_count_794X)<<2))));
  goto L27178;}
 L27178: {
  loc_796X = arg2K0;
  arg_797X = arg2K1;
  if ((arg_797X < top_795X)) {
    SstackS = ((SstackS) + (0 - (((arg_count_794X)<<2))));
    return;}
  else {
    *((long *) loc_796X) = (long) ((*((long *) arg_797X)));
    arg2K0 = (loc_796X + -4);
    arg2K1 = (arg_797X + -4);
    goto L27178;}}
}
long s48_get_imported_binding(char *name_798X)
{
  long value_800X;
  long value_799X;
 {  value_799X = enter_stringAgc_n(name_798X, (strlen((char *) name_798X)));
  Stemp0S = value_799X;s48_make_availableAgc(20);
  value_800X = Stemp0S;
  Stemp0S = 1;
  return Hlookup2943((Sexported_bindingsS), value_800X, 0);}
}
void s48_define_exported_binding(char *name_801X, long value_802X)
{
  char * addr_807X;
  long x_806X;
  long value_805X;
  long value_804X;
  long name_803X;
 {  Stemp0S = value_802X;
  name_803X = enter_stringAgc_n(name_801X, (strlen((char *) name_801X)));
  Stemp1S = name_803X;s48_make_availableAgc(20);
  value_804X = Stemp1S;
  Stemp1S = 1;
  value_805X = Stemp0S;
  Stemp0S = 1;
  x_806X = Hlookup2924((Simported_bindingsS), value_804X, 0);
  addr_807X = (((char *) (-3 + x_806X))) + 8;S48_WRITE_BARRIER(x_806X, addr_807X, value_805X);
  *((long *) addr_807X) = (long) (value_805X);
  return;}
}
void s48_initialize_vm(char * stack_begin_808X, long stack_size_809X)
{
  char * arg2K0;
  long arg0K1;
  long arg0K0;

  int make_hash_tableAgc_return_tag;
  long make_hash_tableAgc0_return_value;
  char * addr_849X;
  long i_848X;
  long table_847X;
  long vector_846X;
  char * addr_845X;
  char * addr_844X;
  long x_843X;
  long v_842X;
  long vector_841X;
  char * addr_840X;
  long blank_return_code_839X;
  long blank_return_code_838X;
  long blank_return_code_837X;
  long blank_return_code_836X;
  long blank_return_code_835X;
  long blank_return_code_834X;
  long blank_return_code_833X;
  char * a_832X;
  long size_831X;
  char * start_830X;
  char * addr_829X;
  long value_828X;
  char * stack_827X;
  char * addr_826X;
  long val_825X;
  long index_824X;
  long v_823X;
  long foo_822X;
  long table_821X;
  long i_820X;
  long v_819X;
  long v_818X;
  long exported_bindings_817X;
  long imported_bindings_816X;
  long n_815X;
  long symbols_814X;
  long maybe_813X;
  long maybe_812X;
  long v_811X;
  long symbol_table_810X;
 {  symbol_table_810X = s48_initial_symbols();
  if ((symbol_table_810X == 1)) {
    make_hash_tableAgc_return_tag = 0;
    goto make_hash_tableAgc;
   make_hash_tableAgc_return_0:
    v_811X = make_hash_tableAgc0_return_value;
    Sthe_symbol_tableS = v_811X;
    maybe_812X = s48_find_all(1);
    if ((maybe_812X == 1)) {s48_collect();
      maybe_813X = s48_find_all(1);
      if ((maybe_813X == 1)) {
        ps_error("insufficient heap space to build symbol table", 0);
        arg0K0 = maybe_813X;
        goto L27277;}
      else {
        arg0K0 = maybe_813X;
        goto L27277;}}
    else {
      arg0K0 = maybe_812X;
      goto L27277;}}
  else {
    Sthe_symbol_tableS = symbol_table_810X;
    goto L27941;}}
 L27277: {
  symbols_814X = arg0K0;
  n_815X = (((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + symbols_814X))) + -4))))>>8))))>>2);
  arg0K0 = 0;
  goto L27298;}
 L27941: {
  imported_bindings_816X = s48_initial_imported_bindings();
  exported_bindings_817X = s48_initial_exported_bindings();
  if ((1 == imported_bindings_816X)) {
    make_hash_tableAgc_return_tag = 1;
    goto make_hash_tableAgc;
   make_hash_tableAgc_return_1:
    v_818X = make_hash_tableAgc0_return_value;
    Simported_bindingsS = v_818X;
    make_hash_tableAgc_return_tag = 2;
    goto make_hash_tableAgc;
   make_hash_tableAgc_return_2:
    v_819X = make_hash_tableAgc0_return_value;
    Sexported_bindingsS = v_819X;
    goto L27947;}
  else {
    Simported_bindingsS = imported_bindings_816X;
    Sexported_bindingsS = exported_bindings_817X;
    goto L27947;}}
 L27298: {
  i_820X = arg0K0;
  if ((i_820X == n_815X)) {
    goto L27941;}
  else {
    table_821X = Sthe_symbol_tableS;
    foo_822X = *((long *) ((((char *) (-3 + symbols_814X))) + (((i_820X)<<2))));
    v_823X = Haction4940((*((long *) (((char *) (-3 + foo_822X))))));
    index_824X = 1023 & v_823X;
    val_825X = *((long *) ((((char *) (-3 + table_821X))) + (((index_824X)<<2))));
    addr_826X = (((char *) (-3 + foo_822X))) + 4;S48_WRITE_BARRIER(foo_822X, addr_826X, val_825X);
    *((long *) addr_826X) = (long) (val_825X);
    if ((3 == (3 & foo_822X))) {
      arg0K0 = (-4 & foo_822X);
      goto L26623;}
    else {
      arg0K0 = foo_822X;
      goto L26623;}}}
 L27947: {
  if ((stack_size_809X < 8128)) {
    stack_827X = (char *)malloc(32512);
    if ((stack_827X == NULL)) {
      ps_error("out of memory, unable to continue", 0);
      arg2K0 = stack_827X;
      arg0K1 = 8128;
      goto L22190;}
    else {
      arg2K0 = stack_827X;
      arg0K1 = 8128;
      goto L22190;}}
  else {
    arg2K0 = stack_begin_808X;
    arg0K1 = stack_size_809X;
    goto L22190;}}
 L26623: {
  value_828X = arg0K0;
  addr_829X = (((char *) (-3 + table_821X))) + (((index_824X)<<2));S48_WRITE_BARRIER(table_821X, addr_829X, value_828X);
  *((long *) addr_829X) = (long) (value_828X);
  arg0K0 = (1 + i_820X);
  goto L27298;}
 L22190: {
  start_830X = arg2K0;
  size_831X = arg0K1;
  Sstack_beginS = start_830X;
  Sstack_endS = (start_830X + (((size_831X)<<2)));
  Sreal_stack_limitS = ((Sstack_beginS) + 512);
  s48_Sstack_limitS = (Sreal_stack_limitS);
  SstackS = (Sstack_endS);
  ScontS = (((char *) 1));
  arg2K0 = start_830X;
  goto L22220;}
 L22220: {
  a_832X = arg2K0;
  if ((a_832X == (Sstack_endS))) {s48_make_availableAgc(20);
    blank_return_code_833X = make_blank_return_code(71, 65535, 0, 1, 0);
    *((unsigned char *) ((((char *) (-3 + blank_return_code_833X))) + 15)) = (unsigned char) (0);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (1);
    ScontS = (SstackS);
    *((long *) (ScontS)) = (long) ((((long) ((((char *) (-3 + blank_return_code_833X))) + 13))));
    Sbottom_of_stackS = (ScontS);
    Sheap_continuationS = 1;s48_make_availableAgc(120);
    blank_return_code_834X = make_blank_return_code(66, 65535, 65535, 1, 0);
    *((unsigned char *) ((((char *) (-3 + blank_return_code_834X))) + 15)) = (unsigned char) (163);
    Sinterrupted_byte_opcode_return_codeS = blank_return_code_834X;
    blank_return_code_835X = make_blank_return_code(66, 65535, 65535, 1, 0);
    *((unsigned char *) ((((char *) (-3 + blank_return_code_835X))) + 15)) = (unsigned char) (164);
    Sinterrupted_native_call_return_codeS = blank_return_code_835X;
    blank_return_code_836X = make_blank_return_code(66, 65535, 65535, 1, 0);
    *((unsigned char *) ((((char *) (-3 + blank_return_code_836X))) + 15)) = (unsigned char) (165);
    Snative_poll_return_codeS = blank_return_code_836X;
    blank_return_code_837X = make_blank_return_code(1, 65535, 65535, 1, 0);
    *((unsigned char *) ((((char *) (-3 + blank_return_code_837X))) + 15)) = (unsigned char) (159);
    Sexception_return_codeS = blank_return_code_837X;
    blank_return_code_838X = make_blank_return_code(1, 65535, 65535, 1, 0);
    *((unsigned char *) ((((char *) (-3 + blank_return_code_838X))) + 15)) = (unsigned char) (160);
    Snative_exception_return_codeS = blank_return_code_838X;
    blank_return_code_839X = make_blank_return_code(70, 65535, 1, 1, 0);
    *((unsigned char *) ((((char *) (-3 + blank_return_code_839X))) + 15)) = (unsigned char) (0);
    Scall_with_values_return_codeS = blank_return_code_839X;s48_make_availableAgc(32);s48_bignum_make_cached_constants();
    addr_840X = s48_allocate_tracedAgc(8);
    if ((addr_840X == NULL)) {
      arg0K0 = 1;
      goto L27998;}
    else {
      *((long *) addr_840X) = (long) (1034);
      arg0K0 = (3 + (((long) (addr_840X + 4))));
      goto L27998;}}
  else {
    *((long *) a_832X) = (long) (252645135);
    arg2K0 = (a_832X + 4);
    goto L22220;}}
 L27998: {
  vector_841X = arg0K0;
  if ((1 == vector_841X)) {
    ps_error("Out of space, unable to allocate", 0);
    arg0K0 = vector_841X;
    goto L27985;}
  else {
    arg0K0 = vector_841X;
    goto L27985;}}
 L27985: {
  v_842X = arg0K0;
  Sempty_logS = v_842X;
  x_843X = Sempty_logS;
  addr_844X = ((char *) (-3 + x_843X));S48_WRITE_BARRIER(x_843X, addr_844X, 1);
  *((long *) addr_844X) = (long) (1);
  return;}
 make_hash_tableAgc: {
{ addr_845X = s48_allocate_tracedAgc(4100);
  if ((addr_845X == NULL)) {
    arg0K0 = 1;
    goto L12713;}
  else {
    *((long *) addr_845X) = (long) (1048586);
    arg0K0 = (3 + (((long) (addr_845X + 4))));
    goto L12713;}}
 L12713: {
  vector_846X = arg0K0;
  if ((1 == vector_846X)) {
    ps_error("Out of space, unable to allocate", 0);
    arg0K0 = vector_846X;
    goto L12701;}
  else {
    arg0K0 = vector_846X;
    goto L12701;}}
 L12701: {
  table_847X = arg0K0;
  arg0K0 = 0;
  goto L12736;}
 L12736: {
  i_848X = arg0K0;
  if ((1024 == i_848X)) {
    make_hash_tableAgc0_return_value = table_847X;
    goto make_hash_tableAgc_return;}
  else {
    addr_849X = (((char *) (-3 + table_847X))) + (((i_848X)<<2));S48_WRITE_BARRIER(table_847X, addr_849X, 1);
    *((long *) addr_849X) = (long) (1);
    arg0K0 = (1 + i_848X);
    goto L12736;}}
 make_hash_tableAgc_return:
  switch (make_hash_tableAgc_return_tag) {
  case 0: goto make_hash_tableAgc_return_0;
  case 1: goto make_hash_tableAgc_return_1;
  default: goto make_hash_tableAgc_return_2;
  }}

}
void s48_post_gc_cleanup(void)
{

 {  (Spost_gc_cleanupS)();
  return;}
}
void s48_gc_root(void)
{

 {  (Sgc_root_procS)();
  return;}
}
long s48_restart(long proc_850X, long nargs_851X)
{
  char *arg4K0;
  char * arg2K1;
  char * arg2K0;
  char arg3K3;
  char arg3K1;
  char arg3K0;
  char arg3K2;
  long arg0K4;
  long arg0K3;
  long arg0K2;
  long arg0K1;
  long arg0K0;
  char *merged_arg4K0;
  FILE * merged_arg5K2;
  char merged_arg3K1;
  char * merged_arg2K0;
  long merged_arg0K3;
  long merged_arg0K2;
  long merged_arg0K1;
  long merged_arg0K0;

  int move_args_above_contB_return_tag;
  int s48_pop_interrupt_state_return_tag;
  int get_error_string_return_tag;
  long get_error_string0_return_value;
  int copy_continuation_from_heapB_return_tag;
  char * copy_continuation_from_heapB0_return_value;
  int okay_argument_list_return_tag;
  char okay_argument_list0_return_value;
  long okay_argument_list1_return_value;
  int get_current_port_return_tag;
  long get_current_port0_return_value;
  int make_closure_return_tag;
  long make_closure0_return_value;
  int pending_interruptP_return_tag;
  char pending_interruptP0_return_value;
  int proposal_d_read_return_tag;
  long proposal_d_read0_return_value;
  int proposal_d_write_return_tag;
  int shift_space_return_tag;
  long shift_space0_return_value;
  int pop_continuationB_return_tag;
  int copy_listSAgc_return_tag;
  long copy_listSAgc0_return_value;
  int pop_args_GlistSAgc_return_tag;
  long pop_args_GlistSAgc0_return_value;
  int ensure_stack_spaceB_return_tag;
  char ensure_stack_spaceB0_return_value;
  int push_list_return_tag;
  long push_list0_return_value;
  int rest_list_setupAgc_return_tag;
  int find_template_return_tag;
  long find_template0_return_value;
  int maybe_write_template_return_tag;
  char maybe_write_template0_return_value;
  int loseD0_return_tag;
  long nargs_852X;
  long status_853X;
  long cont_854X;
  long stack_arg_count_855X;
  long list_856X;
  long marker_857X;
  long a_858X;
  long b_859X;
  long stob_860X;
  long index_861X;
  long stob_862X;
  long index_863X;
  long value_864X;
  long x_865X;
  long n_866X;
  long list_867X;
  long length_868X;
  long start_869X;
  long count_870X;
  long need_871X;
  long list_872X;
  long count_873X;
  long wants_stack_args_874X;
  long stack_arg_count_875X;
  long list_args_876X;
  long list_arg_count_877X;
  char * start_878X;
  long count_879X;
  long code_vector_880X;
  long template_881X;
  char not_firstP_882X;
  FILE * out_883X;
  char *message_884X;
  char * arg_2394X;
  char * loc_2393X;
  char * top_of_args_2392X;
  char * addr_2391X;
  long x_2390X;
  long proposal_2389X;
  long p_2388X;
  long shifted_2387X;
  long j_2386X;
  long bits_2385X;
  long c_2384X;
  long i_2383X;
  long new_2382X;
  char * addr_2381X;
  long len_2380X;
  long len_2379X;
  long x_2378X;
  char *string_2377X;
  char * new_stack_2376X;
  char * new_cont_2375X;
  long stack_size_2374X;
  char move_slowP_2373X;
  long slow_2372X;
  long len_2371X;
  long fast_2370X;
  char *v_2369X;
  long v_2368X;
  long obj_2367X;
  long env_2366X;
  long thread_2365X;
  long x_2364X;
  char * addr_2363X;
  long interrupt_bit_2362X;
  long status_2361X;
  long channel_2360X;
  long type_2359X;
  long v_2358X;
  long next_stob_2357X;
  long i_2356X;
  long log_2355X;
  char * addr_2354X;
  long next_stob_2353X;
  long i_2352X;
  long log_2351X;
  long v_2350X;
  long v_2349X;
  long n_2348X;
  long extra_2347X;
  long x_size_2346X;
  long v_2345X;
  long v_2344X;
  long size_2343X;
  char * pointer_2342X;
  char * cont_2341X;
  char * addr_2340X;
  long x_2339X;
  char * addr_2338X;
  long a_2337X;
  long last_2336X;
  long l_2335X;
  long x_2334X;
  char * addr_2333X;
  long a_2332X;
  long value_2331X;
  long x_2330X;
  char * addr_2329X;
  long a_2328X;
  long count_2327X;
  long args_2326X;
  long value_2325X;
  char interruptP_2324X;
  long x_2323X;
  long l_2322X;
  long i_2321X;
  long list_2320X;
  char v_2319X;
  long x_2318X;
  long v_2317X;
  long x_2316X;
  long v_2315X;
  long count_2314X;
  long x_2313X;
  long next_2312X;
  long i_2311X;
  long obj_2310X;
  long obj_2309X;
  long name_2308X;
  long v_2307X;
  long why_2306X;
  long size_2305X;
  char * pointer_2304X;
  char v_2303X;
  long v_2302X;
  long v_2301X;
  char v_2300X;
  long v_2299X;
  char not_firstP_2298X;
  long cont_2297X;
  long size_2296X;
  char * pointer_2295X;
  long v_2294X;
  char * pointer_2293X;
  char * code_pointer_2292X;
  long cont_2291X;
  char not_firstP_2290X;
  char * cont_2289X;
  char not_firstP_2288X;
  long template_2287X;
  FILE * out_2286X;
  long current_code_2285X;
  long v_2284X;
  long n_2283X;
  char v_2282X;
  long v_2281X;
  long v_2280X;
  long n_2279X;
  char v_2278X;
  long v_2277X;
  long y_2276X;
  long x_2275X;
  long rem_2274X;
  long quot_2273X;
  char div_by_zeroP_2272X;
  long v_2271X;
  long n_2270X;
  char v_2269X;
  long v_2268X;
  long v_2267X;
  long n_2266X;
  char v_2265X;
  long v_2264X;
  long v_2263X;
  long v_2262X;
  long stob_2261X;
  long v_2260X;
  long stob_2259X;
  char * addr_2258X;
  long x_2257X;
  char * addr_2256X;
  char * addr_2255X;
  long value_2254X;
  char * addr_2253X;
  long value_2252X;
  long copies_2251X;
  long v_2250X;
  long n_2249X;
  char v_2248X;
  long v_2247X;
  long n_2246X;
  char v_2245X;
  char * rem_2244X;
  char * quot_2243X;
  char div_by_zeroP_2242X;
  char * y_2241X;
  char *v_2240X;
  long link_2239X;
  long verify_2238X;
  long value_2237X;
  long copies_2236X;
  long stob_2235X;
  long i_2234X;
  long val_2233X;
  char * v_2232X;
  long value_2231X;
  char * x_2230X;
  long val_2229X;
  long v_2228X;
  char * v_2227X;
  char * addr_2226X;
  long val_2225X;
  char * addr_2224X;
  long value_2223X;
  long len_2222X;
  long s2_2221X;
  long foo_2220X;
  long previous_foo_2219X;
  char * addr_2218X;
  long verify_2217X;
  long value_2216X;
  long log_2215X;
  long stob_2214X;
  long i_2213X;
  long x_2212X;
  long status_2211X;
  long v_2210X;
  char * addr_2209X;
  long value_2208X;
  long val_2207X;
  long val_2206X;
  long n_2205X;
  char v_2204X;
  char * external_bignum_2203X;
  char * v_2202X;
  long value_2201X;
  long extra1_2200X;
  long val_2199X;
  long v_2198X;
  char * v_2197X;
  long val_2196X;
  long v_2195X;
  char * v_2194X;
  long x_2193X;
  long val_2192X;
  long v_2191X;
  char * v_2190X;
  char * addr_2189X;
  long value_2188X;
  long offset_2187X;
  long i_2186X;
  long count_2185X;
  char * addr_2184X;
  long value_2183X;
  long offset_2182X;
  long i_2181X;
  long count_2180X;
  long n_2179X;
  char * addr_2178X;
  long val_2177X;
  char * addr_2176X;
  long shifted_2175X;
  long j_2174X;
  long bits_2173X;
  long bucket_2172X;
  char * addr_2171X;
  char * addr_2170X;
  long value_2169X;
  char * addr_2168X;
  char * addr_2167X;
  char * addr_2166X;
  long value_2165X;
  char * addr_2164X;
  char * addr_2163X;
  long value_2162X;
  long proposal_2161X;
  long entry_2160X;
  long thing_2159X;
  long log_2158X;
  long copies_2157X;
  char * addr_2156X;
  long x_2155X;
  long val_2154X;
  long v_2153X;
  long reason_2152X;
  long channel_2151X;
  long channel_2150X;
  long link_2149X;
  long val_2148X;
  long x_2147X;
  char * addr_2146X;
  long b_2145X;
  long shifted_2144X;
  long j_2143X;
  long bits_2142X;
  long val_2141X;
  long v_2140X;
  long n_2139X;
  char v_2138X;
  char * external_bignum_2137X;
  char * x_2136X;
  char * v_2135X;
  long v_2134X;
  char * x_2133X;
  long val_2132X;
  long v_2131X;
  char * v_2130X;
  long n_2129X;
  long val_2128X;
  long val_2127X;
  long val_2126X;
  long val_2125X;
  long val_2124X;
  long val_2123X;
  long extra0_2122X;
  long length0_2121X;
  long val_2120X;
  long v_2119X;
  char * v_2118X;
  long x_2117X;
  long val_2116X;
  long v_2115X;
  char * v_2114X;
  long val_2113X;
  long val_2112X;
  long val_2111X;
  char * arg_2110X;
  char * loc_2109X;
  long x_2108X;
  long l_2107X;
  long stack_nargs_2106X;
  long x_2105X;
  long v_2104X;
  long x_2103X;
  long v_2102X;
  long v_2101X;
  long v_2100X;
  long bytes_used_2099X;
  long count_2098X;
  long index_2097X;
  long env_2096X;
  long offset_2095X;
  long i_2094X;
  long bytes_used_2093X;
  long count_2092X;
  long env_2091X;
  long offset_2090X;
  long i_2089X;
  long v_2088X;
  long n_2087X;
  long x_2086X;
  long x_2085X;
  long obj_2084X;
  char * addr_2083X;
  long val_2082X;
  long count_2081X;
  char out_of_spaceP_2080X;
  char encoding_okP_2079X;
  char codec_okP_2078X;
  long count_2077X;
  long value_2076X;
  char incompleteP_2075X;
  char okP_2074X;
  char encoding_okP_2073X;
  long l_2072X;
  long codec_2071X;
  long p_2070X;
  long i_2069X;
  char * addr_2068X;
  long val_2067X;
  char * addr_2066X;
  long val_2065X;
  char * addr_2064X;
  char * addr_2063X;
  long val_2062X;
  char * addr_2061X;
  char * addr_2060X;
  long val_2059X;
  long count_2058X;
  long value_2057X;
  char incompleteP_2056X;
  char okP_2055X;
  char encoding_okP_2054X;
  char * addr_2053X;
  long val_2052X;
  long l_2051X;
  long codec_2050X;
  long p_2049X;
  long i_2048X;
  long x_2047X;
  long x_2046X;
  long d_2045X;
  long i_2044X;
  long l_2043X;
  long link_2042X;
  long index_2041X;
  long v_2040X;
  long table_2039X;
  long val_2038X;
  char x_2037X;
  char minutesP_2036X;
  long vector_2035X;
  char * addr_2034X;
  long x_2033X;
  long verify_2032X;
  long value_2031X;
  long copies_2030X;
  long stob_2029X;
  long i_2028X;
  char * addr_2027X;
  long v_2026X;
  char * addr_2025X;
  char * addr_2024X;
  long val_2023X;
  long x_2022X;
  char * addr_2021X;
  char * addr_2020X;
  long status_2019X;
  char pendingP_2018X;
  char eofP_2017X;
  long got_2016X;
  char v_2015X;
  long count_2014X;
  long start_2013X;
  char waitP_2012X;
  long status_2011X;
  long channel_2010X;
  long v_2009X;
  long v_2008X;
  char x_2007X;
  char temp_2006X;
  long index_2005X;
  long len_2004X;
  long s2_2003X;
  long foo_2002X;
  long i_2001X;
  long i_2000X;
  char * addr_1999X;
  long i_1998X;
  long rest_list_1997X;
  long i_1996X;
  long v_1995X;
  long n_1994X;
  char v_1993X;
  char * external_bignum_1992X;
  char * x_1991X;
  long val_1990X;
  long v_1989X;
  char * v_1988X;
  char * v_1987X;
  long value_1986X;
  long needed_1985X;
  long y_1984X;
  long y_1983X;
  long x_1982X;
  long val_1981X;
  long v_1980X;
  char * v_1979X;
  long val_1978X;
  long v_1977X;
  char * v_1976X;
  long val_1975X;
  long val_1974X;
  long val_1973X;
  long count_1972X;
  long x_1971X;
  char * v_1970X;
  long value_1969X;
  long extra_1968X;
  long length_1967X;
  long x_1966X;
  long val_1965X;
  long c_1964X;
  long b_1963X;
  long val_1962X;
  long c_1961X;
  long b_1960X;
  long val_1959X;
  char b_1958X;
  long val_1957X;
  char b_1956X;
  long val_1955X;
  long v_1954X;
  long v_1953X;
  long v_1952X;
  long val_1951X;
  long v_1950X;
  long v_1949X;
  long v_1948X;
  long val_1947X;
  char b_1946X;
  char x_1945X;
  long c_1944X;
  long b_1943X;
  long val_1942X;
  long val_1941X;
  long val_1940X;
  long c_1939X;
  long mid_c_1938X;
  long v_1937X;
  long v_1936X;
  long lo_c_1935X;
  long hi_b_1934X;
  long hi_a_1933X;
  long lo_b_1932X;
  long lo_a_1931X;
  long b_1930X;
  long val_1929X;
  long args_1928X;
  char * arg_top_1927X;
  long list_arg_count_1926X;
  long list_args_1925X;
  long stack_nargs_1924X;
  long bytes_used_1923X;
  long count_1922X;
  long v_1921X;
  char * arg_1920X;
  char * loc_1919X;
  long v_1918X;
  long v_1917X;
  long v_1916X;
  long bytes_used_1915X;
  long args_1914X;
  long list_args_1913X;
  long stack_nargs_1912X;
  long v_1911X;
  long x_1910X;
  long v_1909X;
  long cont_1908X;
  long size_1907X;
  char * pointer_1906X;
  char * cont_1905X;
  long protocol_skip_1904X;
  long v_1903X;
  char v_1902X;
  char * addr_1901X;
  long value_1900X;
  long offset_1899X;
  long i_1898X;
  long count_1897X;
  char * addr_1896X;
  long value_1895X;
  long offset_1894X;
  long i_1893X;
  long count_1892X;
  long sig_1891X;
  char x_1890X;
  long channel_1889X;
  long arg_count_1888X;
  long obj_1887X;
  long type_1886X;
  long thing_1885X;
  long stuff_1884X;
  char * addr_1883X;
  long val_1882X;
  long count_1881X;
  char out_of_spaceP_1880X;
  char encoding_okP_1879X;
  long i_1878X;
  long count_1877X;
  char out_of_spaceP_1876X;
  char encoding_okP_1875X;
  char codec_okP_1874X;
  long x_1873X;
  long l_1872X;
  long i_1871X;
  long b_1870X;
  long codec_1869X;
  long port_1868X;
  long Kchar_1867X;
  long b_1866X;
  long port_1865X;
  long b_1864X;
  long port_1863X;
  char * addr_1862X;
  long val_1861X;
  long i_1860X;
  long b_1859X;
  long p_1858X;
  long port_1857X;
  long byte_1856X;
  long i_1855X;
  long p_1854X;
  long p_1853X;
  long b_1852X;
  long port_1851X;
  char * addr_1850X;
  long val_1849X;
  long i_1848X;
  long p_1847X;
  long p_1846X;
  long b_1845X;
  long port_1844X;
  long x_1843X;
  long x_1842X;
  long x_1841X;
  long x_1840X;
  long x_1839X;
  long x_1838X;
  char * addr_1837X;
  long value_1836X;
  long list_1835X;
  long head_1834X;
  char move_slowP_1833X;
  long slow_1832X;
  long list_1831X;
  long obj_1830X;
  char * addr_1829X;
  long len_1828X;
  long x_1827X;
  long val_1826X;
  long mseconds_1825X;
  long seconds_1824X;
  long option_1823X;
  long vector_1822X;
  char firstP_1821X;
  long x_1820X;
  long x_1819X;
  long v_1818X;
  long v_1817X;
  long x_1816X;
  long result_1815X;
  char * args_1814X;
  long proc_1813X;
  long name_1812X;
  long rest_list_1811X;
  long x_1810X;
  long x_1809X;
  long x_1808X;
  long x_1807X;
  long value_1806X;
  long vector_1805X;
  long type_1804X;
  char firstP_1803X;
  long vector_1802X;
  char firstP_1801X;
  long x_1800X;
  long x_1799X;
  long x_1798X;
  long status_1797X;
  long reason_1796X;
  long x_1795X;
  char * addr_1794X;
  long next_stob_1793X;
  long i_1792X;
  long x_1791X;
  long v_1790X;
  long next_stob_1789X;
  long i_1788X;
  long value_1787X;
  long x_1786X;
  char * addr_1785X;
  long count_1784X;
  long to_index_1783X;
  long from_index_1782X;
  long copies_1781X;
  long left_1780X;
  long value_1779X;
  long verify_1778X;
  long value_1777X;
  long log_1776X;
  long stob_1775X;
  long i_1774X;
  char * addr_1773X;
  long old_1772X;
  long x_1771X;
  char * addr_1770X;
  long channel_1769X;
  long res_1768X;
  long i_1767X;
  long x_1766X;
  long y_1765X;
  long n_1764X;
  char * addr_1763X;
  long prev_1762X;
  long ch_1761X;
  long x_1760X;
  long val_1759X;
  long x_1758X;
  long val_1757X;
  long val_1756X;
  long x_1755X;
  long val_1754X;
  long x_1753X;
  long x_1752X;
  long v_1751X;
  long v_1750X;
  char *filename_1749X;
  long val_1748X;
  long x_1747X;
  char * addr_1746X;
  char * addr_1745X;
  long x_1744X;
  long val_1743X;
  long x_1742X;
  long bucket_1741X;
  long x_1740X;
  long x_1739X;
  long shifted_1738X;
  long j_1737X;
  long bits_1736X;
  long x_1735X;
  long x_1734X;
  long scalar_value_1733X;
  long j_1732X;
  long bits_1731X;
  long x_1730X;
  long x_1729X;
  long vector_1728X;
  long x_1727X;
  long x_1726X;
  long x_1725X;
  long vector_1724X;
  long new_1723X;
  char * addr_1722X;
  long value_1721X;
  long value_1720X;
  long x_1719X;
  char * addr_1718X;
  long value_1717X;
  long i_1716X;
  long value_1715X;
  long i_1714X;
  long value_1713X;
  long val_1712X;
  long val_1711X;
  long x_1710X;
  long val_1709X;
  long x_1708X;
  long val_1707X;
  long val_1706X;
  char * v_1705X;
  long value_1704X;
  long needed_1703X;
  long y_1702X;
  long x_1701X;
  long result_1700X;
  long x_1699X;
  long x_1698X;
  long x_1697X;
  long count_1696X;
  long value_1695X;
  long val_1694X;
  long val_1693X;
  long val_1692X;
  long x_1691X;
  long val_1690X;
  long x_1689X;
  long n_1688X;
  long x_1687X;
  long x_1686X;
  long v_1685X;
  long x_1684X;
  long n_1683X;
  long a_1682X;
  long a_1681X;
  long val_1680X;
  long val_1679X;
  char b_1678X;
  long val_1677X;
  char b_1676X;
  long val_1675X;
  char b_1674X;
  long val_1673X;
  long Kdouble_1672X;
  char * addr_1671X;
  double value_1670X;
  long value_1669X;
  double x_1668X;
  long value_1667X;
  long a_1666X;
  long Kdouble_1665X;
  char * addr_1664X;
  double y_1663X;
  long value_1662X;
  double x_1661X;
  long value_1660X;
  long val_1659X;
  long v_1658X;
  char * v_1657X;
  long Kdouble_1656X;
  char * addr_1655X;
  double y_1654X;
  long value_1653X;
  double x_1652X;
  long value_1651X;
  long a_1650X;
  long Kdouble_1649X;
  char * addr_1648X;
  double y_1647X;
  long value_1646X;
  double x_1645X;
  long value_1644X;
  long val_1643X;
  long v_1642X;
  char * v_1641X;
  long n_1640X;
  long val_1639X;
  long val_1638X;
  long delta_1637X;
  long delta_1636X;
  long offset_1635X;
  long index_1634X;
  long v_1633X;
  char * arg_top_1632X;
  long args_1631X;
  long count_1630X;
  long size_1629X;
  char * pointer_1628X;
  char * cont_1627X;
  long offset_1626X;
  long cont_1625X;
  long args_1624X;
  long args_1623X;
  long v_1622X;
  long v_1621X;
  long protocol_1620X;
  char * code_pointer_1619X;
  long list_arg_count_1618X;
  long list_args_1617X;
  long stack_nargs_1616X;
  long args_1615X;
  long x_1614X;
  long args_1613X;
  long x_1612X;
  long x_1611X;
  long x_1610X;
  char * addr_1609X;
  long a_1608X;
  long wants_stack_args_1607X;
  long size_1606X;
  char * pointer_1605X;
  char * cont_1604X;
  long proc_1603X;
  long offset_1602X;
  long cont_1601X;
  long protocol_1600X;
  char * code_pointer_1599X;
  long obj_1598X;
  char * addr_1597X;
  long list_args_1596X;
  long follower_1595X;
  long list_1594X;
  long x_1593X;
  long args_1592X;
  long list_arg_count_1591X;
  char okayP_1590X;
  long stack_nargs_1589X;
  long list_args_1588X;
  long obj_1587X;
  long obj_1586X;
  long list_arg_count_1585X;
  long list_args_1584X;
  long stack_arg_count_1583X;
  long obj_1582X;
  char interruptP_1581X;
  long protocol_1580X;
  long code_1579X;
  long template_1578X;
  long obj_1577X;
  long stack_arg_count_1576X;
  long value_1575X;
  long index_1574X;
  long value_1573X;
  long index_1572X;
  long value_1571X;
  long move_1570X;
  long index_1569X;
  long value_1568X;
  long move_1567X;
  long n_1566X;
  long value_1565X;
  long i_1564X;
  char * addr_1563X;
  long value_1562X;
  long offset_1561X;
  long i_1560X;
  long count_1559X;
  long total_count_1558X;
  long offset_1557X;
  long i_1556X;
  long new_env_1555X;
  char * addr_1554X;
  long value_1553X;
  long offset_1552X;
  long i_1551X;
  long count_1550X;
  long total_count_1549X;
  long offset_1548X;
  long i_1547X;
  long new_env_1546X;
  long v_1545X;
  long x_1544X;
  long x_1543X;
  long args_1542X;
  long length_1541X;
  char okayP_1540X;
  long list_args_1539X;
  long stack_nargs_1538X;
  long maybe_cont_1537X;
  long v_1536X;
  long v_1535X;
  long code_1534X;
  long n_1533X;
  char * addr_1532X;
  long x_1531X;
  long x_1530X;
  long x_1529X;
  char v_1528X;
  long return_address_1527X;
  long template_1526X;
  long obj_1525X;
  long stack_arg_count_1524X;
  long tag_1523X;
  long n_1522X;
  char v_1521X;
  char * addr_1520X;
  long next_1519X;
  long channel_1518X;
  long n_1517X;
  long x_1516X;
  long n_1515X;
  long x_1514X;
  long handlers_1513X;
  long m_1512X;
  long i_1511X;
  FILE * out_1510X;
  long x_1509X;
  long x_1508X;
  long val_1507X;
  long v_1506X;
  long v_1505X;
  long v_1504X;
  long v_1503X;
  long v_1502X;
  long v_1501X;
  long v_1500X;
  long v_1499X;
  long v_1498X;
  long v_1497X;
  long v_1496X;
  long v_1495X;
  long v_1494X;
  long v_1493X;
  long count_1492X;
  long value_1491X;
  char incompleteP_1490X;
  char okP_1489X;
  char encoding_okP_1488X;
  long count_1487X;
  long start_1486X;
  long encoding_1485X;
  long arg4_1484X;
  long arg3_1483X;
  long arg2_1482X;
  long count_1481X;
  long value_1480X;
  char incompleteP_1479X;
  char okP_1478X;
  char encoding_okP_1477X;
  long count_1476X;
  long start_1475X;
  long encoding_1474X;
  long arg4_1473X;
  long arg3_1472X;
  long arg2_1471X;
  long count_1470X;
  char out_of_spaceP_1469X;
  char okP_1468X;
  char encoding_okP_1467X;
  long count_1466X;
  long start_1465X;
  long value_1464X;
  long encoding_1463X;
  long arg5_1462X;
  long arg4_1461X;
  long arg3_1460X;
  long arg2_1459X;
  long count_1458X;
  char out_of_spaceP_1457X;
  char okP_1456X;
  char encoding_okP_1455X;
  long count_1454X;
  long start_1453X;
  long value_1452X;
  long encoding_1451X;
  long arg5_1450X;
  long arg4_1449X;
  long arg3_1448X;
  long arg2_1447X;
  long x_1446X;
  long v_1445X;
  long len_1444X;
  long value_1443X;
  long index_1442X;
  long arg4_1441X;
  long arg3_1440X;
  long arg2_1439X;
  long x_1438X;
  long v_1437X;
  long v_1436X;
  long len_1435X;
  long index_1434X;
  long arg3_1433X;
  long arg2_1432X;
  long list_1431X;
  long arg2_1430X;
  long x_1429X;
  long n_1428X;
  long arg2_1427X;
  long len_1426X;
  long x_1425X;
  long obj_1424X;
  long arg2_1423X;
  long x_1422X;
  long arg2_1421X;
  long x_1420X;
  long status_1419X;
  long value_1418X;
  long key_1417X;
  long arg2_1416X;
  long x_1415X;
  long val_1414X;
  char *string_1413X;
  long key_1412X;
  long x_1411X;
  long mseconds_1410X;
  long seconds_1409X;
  long mseconds_1408X;
  long seconds_1407X;
  long x_1406X;
  long other_1405X;
  long option_1404X;
  long arg2_1403X;
  long x_1402X;
  long arg2_1401X;
  long x_1400X;
  long arg2_1399X;
  long x_1398X;
  long rest_list_1397X;
  long p_1396X;
  long nargs_1395X;
  long p_1394X;
  long x_1393X;
  long arg2_1392X;
  long x_1391X;
  long p_1390X;
  long v_1389X;
  long v_1388X;
  long template_1387X;
  long return_address_1386X;
  long v_1385X;
  long p_1384X;
  long v_1383X;
  long v_1382X;
  long code_1381X;
  long pc_1380X;
  long p_1379X;
  long old_1378X;
  long temp_1377X;
  long obj_1376X;
  long opcode_1375X;
  long exception_1374X;
  long code_1373X;
  long data_1372X;
  long opcode_1371X;
  long pc_1370X;
  long size_1369X;
  long exception_1368X;
  long code_1367X;
  long data_1366X;
  long temp_1365X;
  long obj_1364X;
  long val_1363X;
  long x_1362X;
  long x_1361X;
  long type_1360X;
  long x_1359X;
  long x_1358X;
  long bytes_1357X;
  long x_1356X;
  long other_1355X;
  long key_1354X;
  long arg2_1353X;
  long x_1352X;
  char * addr_1351X;
  long b_1350X;
  long x_1349X;
  char * addr_1348X;
  long proc_1347X;
  long arg2_1346X;
  long x_1345X;
  long obj_1344X;
  long status_1343X;
  long status_1342X;
  long status_1341X;
  long status_1340X;
  long status_1339X;
  long status_1338X;
  FILE * port_1337X;
  long undumpables_1336X;
  long obj_1335X;
  long arg4_1334X;
  long arg3_1333X;
  long arg2_1332X;
  long x_1331X;
  long log_1330X;
  long index_1329X;
  long x_1328X;
  long len_1327X;
  long byte_1326X;
  long index_1325X;
  long arg3_1324X;
  long arg2_1323X;
  long log_1322X;
  long index_1321X;
  long x_1320X;
  long len_1319X;
  long index_1318X;
  long arg2_1317X;
  long v_1316X;
  long count_1315X;
  long to_index_1314X;
  long from_index_1313X;
  long arg5_1312X;
  long arg4_1311X;
  long arg3_1310X;
  long arg2_1309X;
  long v_1308X;
  long x_1307X;
  long offset_1306X;
  long type_1305X;
  long stob_1304X;
  long log_1303X;
  long proposal_1302X;
  long proposal_1301X;
  char * addr_1300X;
  long next_1299X;
  long channel_1298X;
  long n_1297X;
  char * addr_1296X;
  long head_1295X;
  long channel_1294X;
  long obj_1293X;
  long x_1292X;
  long status_1291X;
  char readyP_1290X;
  long channel_1289X;
  long obj_1288X;
  long x_1287X;
  char x_1286X;
  long x_1285X;
  long param_1284X;
  long x_1283X;
  char * addr_1282X;
  char * addr_1281X;
  long status_1280X;
  char pendingP_1279X;
  long got_1278X;
  char v_1277X;
  long count_1276X;
  long start_1275X;
  long arg4_1274X;
  long arg3_1273X;
  long arg2_1272X;
  long x_1271X;
  long arg5_1270X;
  long arg4_1269X;
  long arg3_1268X;
  long arg2_1267X;
  long x_1266X;
  long status_1265X;
  long channel_1264X;
  long obj_1263X;
  long x_1262X;
  long close_silentlyP_1261X;
  long mode_1260X;
  long arg4_1259X;
  long arg3_1258X;
  long arg2_1257X;
  long x_1256X;
  long x_1255X;
  long x_1254X;
  long arg2_1253X;
  long descriptor_1252X;
  long x_1251X;
  long obj_1250X;
  long link_1249X;
  long index_1248X;
  long v_1247X;
  long string_1246X;
  long table_1245X;
  long obj_1244X;
  long y_1243X;
  long y_1242X;
  long count_1241X;
  long to_index_1240X;
  long from_index_1239X;
  long arg5_1238X;
  long arg4_1237X;
  long arg3_1236X;
  long arg2_1235X;
  long len_1234X;
  long Kchar_1233X;
  long index_1232X;
  long arg3_1231X;
  long arg2_1230X;
  long len_1229X;
  long index_1228X;
  long arg2_1227X;
  long x_1226X;
  long obj_1225X;
  char * addr_1224X;
  long len_1223X;
  long init_1222X;
  long len_1221X;
  long arg2_1220X;
  long len_1219X;
  long Kchar_1218X;
  long index_1217X;
  long arg3_1216X;
  long arg2_1215X;
  long len_1214X;
  long index_1213X;
  long arg2_1212X;
  long obj_1211X;
  long x_1210X;
  char * addr_1209X;
  long init_1208X;
  long len_1207X;
  long arg2_1206X;
  char * addr_1205X;
  long v_1204X;
  long index_1203X;
  long len_1202X;
  long type_1201X;
  long value_1200X;
  long arg3_1199X;
  long arg2_1198X;
  long v_1197X;
  long v_1196X;
  long index_1195X;
  long len_1194X;
  long type_1193X;
  long index_1192X;
  long arg2_1191X;
  char * addr_1190X;
  long len_1189X;
  long len_1188X;
  long type_1187X;
  long init_1186X;
  long arg2_1185X;
  long v_1184X;
  long offset_1183X;
  long type_1182X;
  long value_1181X;
  long arg2_1180X;
  long offset_1179X;
  long type_1178X;
  long stob_1177X;
  long rest_list_1176X;
  long stack_nargs_1175X;
  long p_1174X;
  long new_1173X;
  char * addr_1172X;
  long len_1171X;
  long type_1170X;
  long len_1169X;
  long p_1168X;
  long new_1167X;
  char * addr_1166X;
  long len_1165X;
  long type_1164X;
  long len_1163X;
  long type_1162X;
  long stob_1161X;
  long type_1160X;
  long x_1159X;
  long x_1158X;
  long x_1157X;
  long x_1156X;
  long x_1155X;
  long x_1154X;
  long x_1153X;
  long x_1152X;
  long arg2_1151X;
  long x_1150X;
  long arg2_1149X;
  long x_1148X;
  long v_1147X;
  long v_1146X;
  long y_1145X;
  long arg2_1144X;
  long y_1143X;
  long arg2_1142X;
  long y_1141X;
  long arg2_1140X;
  long y_1139X;
  long arg2_1138X;
  long x_1137X;
  long x_1136X;
  long x_1135X;
  long x_1134X;
  long arg2_1133X;
  long x_1132X;
  long arg2_1131X;
  long x_1130X;
  long arg2_1129X;
  long x_1128X;
  long x_1127X;
  long x_1126X;
  long x_1125X;
  long x_1124X;
  long x_1123X;
  long x_1122X;
  long x_1121X;
  long x_1120X;
  long x_1119X;
  long x_1118X;
  long n_1117X;
  long n_1116X;
  long n_1115X;
  long n_1114X;
  long n_1113X;
  long a_1112X;
  long val_1111X;
  long y_1110X;
  long arg2_1109X;
  long b_1108X;
  long a_1107X;
  long val_1106X;
  long y_1105X;
  long arg2_1104X;
  long y_1103X;
  long arg2_1102X;
  long y_1101X;
  long arg2_1100X;
  long y_1099X;
  long arg2_1098X;
  long y_1097X;
  long arg2_1096X;
  long y_1095X;
  long arg2_1094X;
  long b_1093X;
  long a_1092X;
  long y_1091X;
  long arg2_1090X;
  long x_1089X;
  long y_1088X;
  long arg2_1087X;
  long b_1086X;
  long a_1085X;
  long y_1084X;
  long arg2_1083X;
  long x_1082X;
  long y_1081X;
  long arg2_1080X;
  long x_1079X;
  long x_1078X;
  long n_1077X;
  long n_1076X;
  long x_1075X;
  long x_1074X;
  long arg2_1073X;
  long rest_list_1072X;
  long x_1071X;
  long rest_list_1070X;
  long stack_nargs_1069X;
  long arg1_1068X;
  long arg0_1067X;
  long arg0_1066X;
  long rest_list_1065X;
  long stack_nargs_1064X;
  long x_1063X;
  long index_1062X;
  long val_1061X;
  long max_1060X;
  long p_1059X;
  char * code_pointer_1058X;
  long return_pointer_offset_1057X;
  long nargs_1056X;
  long code_1055X;
  long template_1054X;
  long rest_list_1053X;
  long stack_nargs_1052X;
  long p_1051X;
  long p_1050X;
  long cont_1049X;
  long v_1048X;
  long rest_list_1047X;
  long stack_nargs_1046X;
  long p_1045X;
  long x_1044X;
  long args_1043X;
  char * code_pointer_1042X;
  long return_pointer_offset_1041X;
  long length_1040X;
  char okayP_1039X;
  long stack_nargs_1038X;
  long list_args_1037X;
  char v_1036X;
  char v_1035X;
  char * code_pointer_1034X;
  long return_pointer_offset_1033X;
  long stack_arg_count_1032X;
  char * code_pointer_1031X;
  long stack_arg_count_1030X;
  long v_1029X;
  long n_moves_1028X;
  long x_1027X;
  long n_moves_1026X;
  long x_1025X;
  long x_1024X;
  long x_1023X;
  long x_1022X;
  long x_1021X;
  long value_1020X;
  long x_1019X;
  long closure_1018X;
  char * addr_1017X;
  long len_1016X;
  long size_1015X;
  long free_count_1014X;
  char * addr_1013X;
  long x_1012X;
  long value_1011X;
  char * addr_1010X;
  long x_1009X;
  long x_1008X;
  long template_1007X;
  long new_env_1006X;
  char * addr_1005X;
  long len_1004X;
  long closures_1003X;
  long total_count_1002X;
  long template_1001X;
  long new_env_1000X;
  char * addr_999X;
  long len_998X;
  long closures_997X;
  long total_count_996X;
  char * addr_995X;
  long val_994X;
  long x_993X;
  long location_992X;
  long index_991X;
  long template_990X;
  long location_989X;
  long index_988X;
  long template_987X;
  long x_986X;
  long x_985X;
  long n_984X;
  char * code_pointer_983X;
  long v_982X;
  long code_981X;
  long n_980X;
  char * addr_979X;
  long x_978X;
  long x_977X;
  long pc_976X;
  long code_975X;
  long x_974X;
  char v_973X;
  char v_972X;
  long tag_971X;
  long n_970X;
  long v_969X;
  char v_968X;
  long x_967X;
  long x_966X;
  long x_965X;
  long x_964X;
  long x_963X;
  long x_962X;
  long x_961X;
  long x_960X;
  long spec_959X;
  long needed_stack_space_958X;
  long template_957X;
  long used_956X;
  long code_955X;
  long v_954X;
  long v_953X;
  long code_952X;
  long n_951X;
  char * addr_950X;
  long x_949X;
  long x_948X;
  long x_947X;
  long protocol_skip_946X;
  long final_stack_arg_count_945X;
  char interruptP_944X;
  long obj_943X;
  long template_942X;
  char v_941X;
  char v_940X;
  long skip_939X;
  long skip_938X;
  long x_937X;
  long x_936X;
  long x_935X;
  long x_934X;
  long x_933X;
  long x_932X;
  long x_931X;
  long x_930X;
  long spec_929X;
  long template_928X;
  long used_927X;
  long envUtemp_offset_926X;
  long code_925X;
  long retval_924X;
  long handlers_923X;
  long opcode_922X;
  long nargs_921X;
  long v_920X;
  long v_919X;
  long v_918X;
  long v_917X;
  long index_916X;
  long length_915X;
  long v_914X;
  long v_913X;
  long v_912X;
  long v_911X;
  long v_910X;
  long v_909X;
  long wants_stack_args_908X;
  long v_907X;
  long v_906X;
  long v_905X;
  long v_904X;
  long skip_903X;
  char nativeP_902X;
  long stack_space_901X;
  long protocol_900X;
  long v_899X;
  long x_898X;
  long args_897X;
  long v_896X;
  long list_arg_count_895X;
  long list_args_894X;
  long stack_arg_count_893X;
  long exception_892X;
  long total_arg_count_891X;
  long code_890X;
  long handler_tag_889X;
  long list_arg_count_888X;
  long list_args_887X;
  long stack_arg_count_886X;
  long obj_885X;
 {  if ((3 == (3 & proc_850X))) {
    if ((3 == (31 & ((((*((long *) ((((char *) (-3 + proc_850X))) + -4))))>>2))))) {
      SvalS = proc_850X;
      obj_885X = SvalS;
      if ((3 == (3 & obj_885X))) {
        if ((3 == (31 & ((((*((long *) ((((char *) (-3 + obj_885X))) + -4))))>>2))))) {
          arg0K0 = nargs_851X;
          arg0K1 = 25;
          arg0K2 = 0;
          arg0K3 = -1;
          goto L59362;}
        else {
          arg0K0 = 3;
          arg0K1 = nargs_851X;
          arg0K2 = 25;
          arg0K3 = 0;
          goto L28999;}}
      else {
        arg0K0 = 3;
        arg0K1 = nargs_851X;
        arg0K2 = 25;
        arg0K3 = 0;
        goto L28999;}}
    else {
      goto L29159;}}
  else {
    goto L29159;}}
 L59362: {
  stack_arg_count_886X = arg0K0;
  list_args_887X = arg0K1;
  list_arg_count_888X = arg0K2;
  handler_tag_889X = arg0K3;
  code_890X = *((long *) (((char *) (-3 + (*((long *) (((char *) (-3 + (SvalS))))))))));
  total_arg_count_891X = stack_arg_count_886X + list_arg_count_888X;
  arg0K0 = (*((unsigned char *) ((((char *) (-3 + code_890X))) + 1)));
  arg0K1 = 64;
  arg3K2 = 0;
  goto L59388;}
 L28999: {
  exception_892X = arg0K0;
  stack_arg_count_893X = arg0K1;
  list_args_894X = arg0K2;
  list_arg_count_895X = arg0K3;
  merged_arg0K0 = list_args_894X;
  merged_arg0K1 = list_arg_count_895X;
  copy_listSAgc_return_tag = 0;
  goto copy_listSAgc;
 copy_listSAgc_return_0:
  v_896X = copy_listSAgc0_return_value;
  merged_arg0K0 = v_896X;
  merged_arg0K1 = stack_arg_count_893X;
  pop_args_GlistSAgc_return_tag = 0;
  goto pop_args_GlistSAgc;
 pop_args_GlistSAgc_return_0:
  args_897X = pop_args_GlistSAgc0_return_value;push_exception_setupB(exception_892X, 0);
  x_898X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_898X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (args_897X);
  arg0K0 = 2;
  goto L29309;}
 L29159: {
  ps_error("s48-restart called with non-procedure", 1, proc_850X);
  return v_899X;}
 L59388: {
  protocol_900X = arg0K0;
  stack_space_901X = arg0K1;
  nativeP_902X = arg3K2;
  if ((69 == protocol_900X)) {
    if ((total_arg_count_891X < 3)) {
      skip_903X = *((unsigned char *) ((((char *) (-3 + code_890X))) + (3 + total_arg_count_891X)));
      if ((0 == skip_903X)) {
        if ((-1 == handler_tag_889X)) {
          arg0K0 = 4;
          arg0K1 = stack_arg_count_886X;
          arg0K2 = list_args_887X;
          arg0K3 = list_arg_count_888X;
          goto L28999;}
        else {
          if ((handler_tag_889X < 0)) {
            ps_error("wrong number of arguments to interrupt handler", 1, (-2 - handler_tag_889X));
            arg0K0 = v_904X;
            goto L63848;}
          else {
            ps_error("wrong number of arguments to exception handler", 1, handler_tag_889X);
            arg0K0 = v_905X;
            goto L63848;}}}
      else {
        merged_arg0K0 = list_args_887X;
        merged_arg0K1 = list_arg_count_888X;
        push_list_return_tag = 0;
        goto push_list;
       push_list_return_0:
        arg0K0 = code_890X;
        arg0K1 = 6;
        arg0K2 = skip_903X;
        arg0K3 = (*((long *) (((char *) (-3 + (SvalS))))));
        goto L28125;}}
    else {
      if ((0 == (*((unsigned char *) ((((char *) (-3 + code_890X))) + 2))))) {
        if ((-1 == handler_tag_889X)) {
          arg0K0 = 4;
          arg0K1 = stack_arg_count_886X;
          arg0K2 = list_args_887X;
          arg0K3 = list_arg_count_888X;
          goto L28999;}
        else {
          if ((handler_tag_889X < 0)) {
            ps_error("wrong number of arguments to interrupt handler", 1, (-2 - handler_tag_889X));
            arg0K0 = v_906X;
            goto L63848;}
          else {
            ps_error("wrong number of arguments to exception handler", 1, handler_tag_889X);
            arg0K0 = v_907X;
            goto L63848;}}}
      else {
        arg0K0 = 6;
        goto L59431;}}}
  else {
    if ((63 < protocol_900X)) {
      if ((65 == protocol_900X)) {
        wants_stack_args_908X = ((((*((unsigned char *) ((((char *) (-3 + code_890X))) + 2))))<<8)) + (*((unsigned char *) ((((char *) (-3 + code_890X))) + 3)));
        if ((total_arg_count_891X < wants_stack_args_908X)) {
          if ((-1 == handler_tag_889X)) {
            arg0K0 = 4;
            arg0K1 = stack_arg_count_886X;
            arg0K2 = list_args_887X;
            arg0K3 = list_arg_count_888X;
            goto L28999;}
          else {
            if ((handler_tag_889X < 0)) {
              ps_error("wrong number of arguments to interrupt handler", 1, (-2 - handler_tag_889X));
              arg0K0 = v_909X;
              goto L63848;}
            else {
              ps_error("wrong number of arguments to exception handler", 1, handler_tag_889X);
              arg0K0 = v_910X;
              goto L63848;}}}
        else {
          merged_arg0K0 = wants_stack_args_908X;
          merged_arg0K1 = stack_arg_count_886X;
          merged_arg0K2 = list_args_887X;
          merged_arg0K3 = list_arg_count_888X;
          rest_list_setupAgc_return_tag = 0;
          goto rest_list_setupAgc;
         rest_list_setupAgc_return_0:
          arg0K0 = 4;
          goto L59392;}}
      else {
        if ((68 == protocol_900X)) {
          if ((total_arg_count_891X < (*((unsigned char *) ((((char *) (-3 + code_890X))) + 2))))) {
            if ((-1 == handler_tag_889X)) {
              arg0K0 = 4;
              arg0K1 = stack_arg_count_886X;
              arg0K2 = list_args_887X;
              arg0K3 = list_arg_count_888X;
              goto L28999;}
            else {
              if ((handler_tag_889X < 0)) {
                ps_error("wrong number of arguments to interrupt handler", 1, (-2 - handler_tag_889X));
                arg0K0 = v_911X;
                goto L63848;}
              else {
                ps_error("wrong number of arguments to exception handler", 1, handler_tag_889X);
                arg0K0 = v_912X;
                goto L63848;}}}
          else {
            arg0K0 = 3;
            goto L59431;}}
        else {
          if ((127 < protocol_900X)) {
            arg0K0 = (127 & protocol_900X);
            arg0K1 = stack_space_901X;
            arg3K2 = 1;
            goto L59388;}
          else {
            if ((64 == protocol_900X)) {
              if (((((((*((unsigned char *) ((((char *) (-3 + code_890X))) + 2))))<<8)) + (*((unsigned char *) ((((char *) (-3 + code_890X))) + 3)))) == total_arg_count_891X)) {
                if ((0 == list_arg_count_888X)) {
                  arg0K0 = 4;
                  goto L59392;}
                else {
                  merged_arg0K0 = list_args_887X;
                  merged_arg0K1 = list_arg_count_888X;
                  push_list_return_tag = 1;
                  goto push_list;
                 push_list_return_1:
                  arg0K0 = 4;
                  goto L59392;}}
              else {
                if ((-1 == handler_tag_889X)) {
                  arg0K0 = 4;
                  arg0K1 = stack_arg_count_886X;
                  arg0K2 = list_args_887X;
                  arg0K3 = list_arg_count_888X;
                  goto L28999;}
                else {
                  if ((handler_tag_889X < 0)) {
                    ps_error("wrong number of arguments to interrupt handler", 1, (-2 - handler_tag_889X));
                    arg0K0 = v_913X;
                    goto L63848;}
                  else {
                    ps_error("wrong number of arguments to exception handler", 1, handler_tag_889X);
                    arg0K0 = v_914X;
                    goto L63848;}}}}
            else {
              if ((67 == protocol_900X)) {
                length_915X = (long)(((unsigned long)(*((long *) ((((char *) (-3 + code_890X))) + -4))))>>8);
                index_916X = -2 + length_915X;
                arg0K0 = (*((unsigned char *) ((((char *) (-3 + code_890X))) + (-3 + length_915X))));
                arg0K1 = (((((*((unsigned char *) ((((char *) (-3 + code_890X))) + index_916X))))<<8)) + (*((unsigned char *) ((((char *) (-3 + code_890X))) + (1 + index_916X)))));
                arg3K2 = nativeP_902X;
                goto L59388;}
              else {
                ps_error("unknown protocol", 1, protocol_900X);
                if ((-1 == handler_tag_889X)) {
                  arg0K0 = 4;
                  arg0K1 = stack_arg_count_886X;
                  arg0K2 = list_args_887X;
                  arg0K3 = list_arg_count_888X;
                  goto L28999;}
                else {
                  if ((handler_tag_889X < 0)) {
                    ps_error("wrong number of arguments to interrupt handler", 1, (-2 - handler_tag_889X));
                    arg0K0 = v_917X;
                    goto L63848;}
                  else {
                    ps_error("wrong number of arguments to exception handler", 1, handler_tag_889X);
                    arg0K0 = v_918X;
                    goto L63848;}}}}}}}}
    else {
      if ((protocol_900X == total_arg_count_891X)) {
        if ((0 == list_arg_count_888X)) {
          arg0K0 = 2;
          goto L59392;}
        else {
          merged_arg0K0 = list_args_887X;
          merged_arg0K1 = list_arg_count_888X;
          push_list_return_tag = 2;
          goto push_list;
         push_list_return_2:
          arg0K0 = 2;
          goto L59392;}}
      else {
        if ((-1 == handler_tag_889X)) {
          arg0K0 = 4;
          arg0K1 = stack_arg_count_886X;
          arg0K2 = list_args_887X;
          arg0K3 = list_arg_count_888X;
          goto L28999;}
        else {
          if ((handler_tag_889X < 0)) {
            ps_error("wrong number of arguments to interrupt handler", 1, (-2 - handler_tag_889X));
            arg0K0 = v_919X;
            goto L63848;}
          else {
            ps_error("wrong number of arguments to exception handler", 1, handler_tag_889X);
            arg0K0 = v_920X;
            goto L63848;}}}}}}
 L29309: {
  nargs_921X = arg0K0;
  opcode_922X = (((*((long *) ((SstackS) + (4 + (((nargs_921X)<<2)))))))>>2);
  handlers_923X = SHARED_REF((Sexception_handlersS));
  if ((3 == (3 & handlers_923X))) {
    if ((2 == (31 & ((((*((long *) ((((char *) (-3 + handlers_923X))) + -4))))>>2))))) {
      goto L29374;}
    else {
      goto L29457;}}
  else {
    goto L29457;}}
 L63848: {
  retval_924X = arg0K0;
  SstackS = (ScontS);
  return retval_924X;}
 L28125: {
  code_925X = arg0K0;
  envUtemp_offset_926X = arg0K1;
  used_927X = arg0K2;
  template_928X = arg0K3;
  spec_929X = *((unsigned char *) ((((char *) (-3 + code_925X))) + envUtemp_offset_926X));
  if ((3 == spec_929X)) {
    x_930X = *((long *) ((((char *) (-3 + (SvalS)))) + 4));
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (x_930X);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (template_928X);
    goto L28129;}
  else {
    if ((1 == spec_929X)) {
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (template_928X);
      goto L28129;}
    else {
      if ((2 == spec_929X)) {
        x_931X = *((long *) ((((char *) (-3 + (SvalS)))) + 4));
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (x_931X);
        goto L28129;}
      else {
        if ((4 == spec_929X)) {
          x_932X = SvalS;
          SstackS = ((SstackS) + -4);
          *((long *) (SstackS)) = (long) (x_932X);
          goto L28129;}
        else {
          if ((6 == spec_929X)) {
            x_933X = SvalS;
            SstackS = ((SstackS) + -4);
            *((long *) (SstackS)) = (long) (x_933X);
            x_934X = *((long *) ((((char *) (-3 + (SvalS)))) + 4));
            SstackS = ((SstackS) + -4);
            *((long *) (SstackS)) = (long) (x_934X);
            goto L28129;}
          else {
            if ((5 == spec_929X)) {
              x_935X = SvalS;
              SstackS = ((SstackS) + -4);
              *((long *) (SstackS)) = (long) (x_935X);
              SstackS = ((SstackS) + -4);
              *((long *) (SstackS)) = (long) (template_928X);
              goto L28129;}
            else {
              if ((7 == spec_929X)) {
                x_936X = SvalS;
                SstackS = ((SstackS) + -4);
                *((long *) (SstackS)) = (long) (x_936X);
                x_937X = *((long *) ((((char *) (-3 + (SvalS)))) + 4));
                SstackS = ((SstackS) + -4);
                *((long *) (SstackS)) = (long) (x_937X);
                SstackS = ((SstackS) + -4);
                *((long *) (SstackS)) = (long) (template_928X);
                goto L28129;}
              else {
                goto L28129;}}}}}}}}
 L59431: {
  skip_938X = arg0K0;
  if ((total_arg_count_891X < 3)) {
    arg0K0 = total_arg_count_891X;
    goto L59439;}
  else {
    if ((2 < stack_arg_count_886X)) {
      arg0K0 = stack_arg_count_886X;
      goto L59439;}
    else {
      arg0K0 = 2;
      goto L59439;}}}
 L59392: {
  skip_939X = arg0K0;
  if (nativeP_902X) {
    merged_arg0K0 = stack_space_901X;
    ensure_stack_spaceB_return_tag = 0;
    goto ensure_stack_spaceB;
   ensure_stack_spaceB_return_0:
    v_940X = ensure_stack_spaceB0_return_value;
    if (v_940X) {
      pending_interruptP_return_tag = 0;
      goto pending_interruptP;
     pending_interruptP_return_0:
      v_941X = pending_interruptP0_return_value;
      if (v_941X) {
        arg0K0 = skip_939X;
        goto L28597;}
      else {
        goto L59559;}}
    else {
      goto L59559;}}
  else {
    template_942X = *((long *) (((char *) (-3 + (SvalS)))));
    arg0K0 = (*((long *) (((char *) (-3 + template_942X)))));
    arg0K1 = skip_939X;
    arg0K2 = template_942X;
    arg0K3 = stack_space_901X;
    goto L32046;}}
 L29374: {
  SvalS = (*((long *) ((((char *) (-3 + handlers_923X))) + (((opcode_922X)<<2)))));
  obj_943X = SvalS;
  if ((3 == (3 & obj_943X))) {
    if ((3 == (31 & ((((*((long *) ((((char *) (-3 + obj_943X))) + -4))))>>2))))) {
      goto L29391;}
    else {
      goto L29471;}}
  else {
    goto L29471;}}
 L29457: {
  merged_arg4K0 = "exception-handlers is not a vector";
  loseD0_return_tag = 0;
  goto loseD0;
 loseD0_return_0:
  goto L29374;}
 L28129: {
  Slast_code_calledS = code_925X;
  Scode_pointerS = ((((char *) (-3 + code_925X))) + used_927X);
  if (((SstackS) < (s48_Sstack_limitS))) {
    interruptP_944X = (s48_Sstack_limitS) == (((char *) -1));
    s48_Sstack_limitS = (Sreal_stack_limitS);
    if (((SstackS) < (Sreal_stack_limitS))) {s48_copy_stack_into_heap();
      if (((SstackS) < (Sreal_stack_limitS))) {
        ps_error("VM's stack is too small (how can this happen?)", 0);
        if (interruptP_944X) {
          goto L28136;}
        else {
          goto L28143;}}
      else {
        if (interruptP_944X) {
          goto L28136;}
        else {
          goto L28143;}}}
    else {
      if (interruptP_944X) {
        goto L28136;}
      else {
        goto L28143;}}}
  else {
    goto L28143;}}
 L59439: {
  final_stack_arg_count_945X = arg0K0;
  if ((stack_arg_count_886X < final_stack_arg_count_945X)) {
    arg0K0 = final_stack_arg_count_945X;
    goto L59443;}
  else {
    arg0K0 = stack_arg_count_886X;
    goto L59443;}}
 L28597: {
  protocol_skip_946X = arg0K0;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((protocol_skip_946X)<<2)));
  x_947X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_947X);
  x_948X = *((long *) ((((char *) (-3 + (Scurrent_threadS)))) + 12));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_948X);
  x_949X = Scurrent_threadS;
  addr_950X = (((char *) (-3 + x_949X))) + 12;S48_WRITE_BARRIER(x_949X, addr_950X, 1);
  *((long *) addr_950X) = (long) (1);
  n_951X = Senabled_interruptsS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((n_951X)<<2)));
  code_952X = Sinterrupted_native_call_return_codeS;
  v_953X = ((((ScontS) - (SstackS)))>>2);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((4 + (((v_953X)<<2))));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((long) ((((char *) (-3 + code_952X))) + 13))));
  ScontS = (SstackS);
  goto L28331;}
 L59559: {
  v_954X = s48_call_native_procedure((SvalS), skip_939X);
  arg0K0 = v_954X;
  goto L58572;}
 L32046: {
  code_955X = arg0K0;
  used_956X = arg0K1;
  template_957X = arg0K2;
  needed_stack_space_958X = arg0K3;
  spec_959X = *((unsigned char *) ((((char *) (-3 + code_955X))) + used_956X));
  if ((3 == spec_959X)) {
    x_960X = *((long *) ((((char *) (-3 + (SvalS)))) + 4));
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (x_960X);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (template_957X);
    goto L32050;}
  else {
    if ((1 == spec_959X)) {
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (template_957X);
      goto L32050;}
    else {
      if ((2 == spec_959X)) {
        x_961X = *((long *) ((((char *) (-3 + (SvalS)))) + 4));
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (x_961X);
        goto L32050;}
      else {
        if ((4 == spec_959X)) {
          x_962X = SvalS;
          SstackS = ((SstackS) + -4);
          *((long *) (SstackS)) = (long) (x_962X);
          goto L32050;}
        else {
          if ((6 == spec_959X)) {
            x_963X = SvalS;
            SstackS = ((SstackS) + -4);
            *((long *) (SstackS)) = (long) (x_963X);
            x_964X = *((long *) ((((char *) (-3 + (SvalS)))) + 4));
            SstackS = ((SstackS) + -4);
            *((long *) (SstackS)) = (long) (x_964X);
            goto L32050;}
          else {
            if ((5 == spec_959X)) {
              x_965X = SvalS;
              SstackS = ((SstackS) + -4);
              *((long *) (SstackS)) = (long) (x_965X);
              SstackS = ((SstackS) + -4);
              *((long *) (SstackS)) = (long) (template_957X);
              goto L32050;}
            else {
              if ((7 == spec_959X)) {
                x_966X = SvalS;
                SstackS = ((SstackS) + -4);
                *((long *) (SstackS)) = (long) (x_966X);
                x_967X = *((long *) ((((char *) (-3 + (SvalS)))) + 4));
                SstackS = ((SstackS) + -4);
                *((long *) (SstackS)) = (long) (x_967X);
                SstackS = ((SstackS) + -4);
                *((long *) (SstackS)) = (long) (template_957X);
                goto L32050;}
              else {
                goto L32050;}}}}}}}}
 L29391: {
  arg0K0 = (2 + nargs_921X);
  arg0K1 = 25;
  arg0K2 = 0;
  arg0K3 = opcode_922X;
  goto L59362;}
 L29471: {
  merged_arg4K0 = "exception handler is not a closure";
  loseD0_return_tag = 1;
  goto loseD0;
 loseD0_return_1:
  goto L29391;}
 L28136: {
  pending_interruptP_return_tag = 1;
  goto pending_interruptP;
 pending_interruptP_return_1:
  v_968X = pending_interruptP0_return_value;
  if (v_968X) {
    goto L28508;}
  else {
    goto L28143;}}
 L28143: {
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L59443: {
  v_969X = arg0K0;
  merged_arg0K0 = v_969X;
  merged_arg0K1 = stack_arg_count_886X;
  merged_arg0K2 = list_args_887X;
  merged_arg0K3 = list_arg_count_888X;
  rest_list_setupAgc_return_tag = 1;
  goto rest_list_setupAgc;
 rest_list_setupAgc_return_1:
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((final_stack_arg_count_945X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((total_arg_count_891X)<<2)));
  arg0K0 = skip_938X;
  goto L59392;}
 L28331: {
  n_970X = (Spending_interruptsS) & (Senabled_interruptsS);
  arg0K0 = 0;
  arg0K1 = 1;
  goto L28384;}
 L58572: {
  tag_971X = arg0K0;
  arg0K0 = tag_971X;
  goto L58576;}
 L32050: {
  Slast_code_calledS = code_955X;
  Scode_pointerS = ((((char *) (-3 + code_955X))) + (1 + used_956X));
  merged_arg0K0 = needed_stack_space_958X;
  ensure_stack_spaceB_return_tag = 1;
  goto ensure_stack_spaceB;
 ensure_stack_spaceB_return_1:
  v_972X = ensure_stack_spaceB0_return_value;
  if (v_972X) {
    pending_interruptP_return_tag = 2;
    goto pending_interruptP;
   pending_interruptP_return_2:
    v_973X = pending_interruptP0_return_value;
    if (v_973X) {
      goto L28508;}
    else {
      goto L32064;}}
  else {
    goto L32064;}}
 L28508: {
  x_974X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_974X);
  code_975X = current_code_vector();
  pc_976X = (Scode_pointerS) - (((char *) (-3 + code_975X)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (code_975X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((pc_976X)<<2)));
  x_977X = *((long *) ((((char *) (-3 + (Scurrent_threadS)))) + 12));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_977X);
  x_978X = Scurrent_threadS;
  addr_979X = (((char *) (-3 + x_978X))) + 12;S48_WRITE_BARRIER(x_978X, addr_979X, 1);
  *((long *) addr_979X) = (long) (1);
  n_980X = Senabled_interruptsS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((n_980X)<<2)));
  code_981X = Sinterrupted_byte_opcode_return_codeS;
  v_982X = ((((ScontS) - (SstackS)))>>2);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((4 + (((v_982X)<<2))));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((long) ((((char *) (-3 + code_981X))) + 13))));
  ScontS = (SstackS);
  goto L28331;}
 L31612: {
  code_pointer_983X = arg2K0;
  switch ((*((unsigned char *) code_pointer_983X))) {
    case 0 : 
    case 31 : 
    case 42 : {push_exception_setupB(14, 1);
      n_984X = *((unsigned char *) (Scode_pointerS));
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) ((((n_984X)<<2)));
      arg0K0 = 1;
      goto L29309;}
      break;
    case 1 : {
      SvalS = (-512 + ((((*((unsigned char *) ((Scode_pointerS) + 1))))<<2)));
      Scode_pointerS = ((Scode_pointerS) + 2);
      arg2K0 = (Scode_pointerS);
      goto L31612;}
      break;
    case 2 : {
      x_985X = SvalS;
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (x_985X);
      SvalS = (-512 + ((((*((unsigned char *) ((Scode_pointerS) + 1))))<<2)));
      Scode_pointerS = ((Scode_pointerS) + 2);
      arg2K0 = (Scode_pointerS);
      goto L31612;}
      break;
    case 3 : {
      x_986X = -512 + ((((*((unsigned char *) ((Scode_pointerS) + 1))))<<2));
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (x_986X);
      Scode_pointerS = ((Scode_pointerS) + 2);
      arg2K0 = (Scode_pointerS);
      goto L31612;}
      break;
    case 4 : {
      template_987X = *((long *) ((SstackS) + ((((((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2)))))<<2))));
      index_988X = ((((*((unsigned char *) ((Scode_pointerS) + 3))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 4)));
      location_989X = *((long *) ((((char *) (-3 + template_987X))) + (((index_988X)<<2))));
      SvalS = (*((long *) ((((char *) (-3 + location_989X))) + 4)));
      if ((17 == (255 & (SvalS)))) {push_exception_setupB(1, 5);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (location_989X);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (template_987X);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) ((((index_988X)<<2)));
        arg0K0 = 3;
        goto L29309;}
      else {
        Scode_pointerS = ((Scode_pointerS) + 5);
        arg2K0 = (Scode_pointerS);
        goto L31612;}}
      break;
    case 5 : {
      template_990X = *((long *) ((SstackS) + ((((((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2)))))<<2))));
      index_991X = ((((*((unsigned char *) ((Scode_pointerS) + 3))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 4)));
      location_992X = *((long *) ((((char *) (-3 + template_990X))) + (((index_991X)<<2))));
      if ((273 == (*((long *) ((((char *) (-3 + location_992X))) + 4))))) {push_exception_setupB(1, 5);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (location_992X);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (template_990X);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) ((((index_991X)<<2)));
        x_993X = SvalS;
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (x_993X);
        arg0K0 = 4;
        goto L29309;}
      else {
        val_994X = SvalS;
        addr_995X = (((char *) (-3 + location_992X))) + 4;S48_WRITE_BARRIER(location_992X, addr_995X, val_994X);
        *((long *) addr_995X) = (long) (val_994X);
        SvalS = 13;
        Scode_pointerS = ((Scode_pointerS) + 5);
        arg2K0 = (Scode_pointerS);
        goto L31612;}}
      break;
    case 6 : {
      total_count_996X = *((unsigned char *) ((Scode_pointerS) + 1));
      closures_997X = *((unsigned char *) ((Scode_pointerS) + 2));s48_make_availableAgc((((((1 + total_count_996X) + (3 * closures_997X)))<<2)));
      len_998X = ((total_count_996X)<<2);
      addr_999X = s48_allocate_small((4 + len_998X));
      *((long *) addr_999X) = (long) ((10 + (((len_998X)<<8))));
      new_env_1000X = 3 + (((long) (addr_999X + 4)));
      if ((0 == closures_997X)) {
        arg0K0 = new_env_1000X;
        arg0K1 = 0;
        arg0K2 = 2;
        arg0K3 = total_count_996X;
        goto L11335;}
      else {
        template_1001X = *((long *) ((SstackS) + ((((*((unsigned char *) ((Scode_pointerS) + 3))))<<2))));
        arg0K0 = closures_997X;
        arg0K1 = 0;
        arg0K2 = 3;
        goto L21803;}}
      break;
    case 7 : {
      total_count_1002X = ((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2)));
      closures_1003X = ((((*((unsigned char *) ((Scode_pointerS) + 3))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 4)));s48_make_availableAgc((((((1 + total_count_1002X) + (3 * closures_1003X)))<<2)));
      len_1004X = ((total_count_1002X)<<2);
      addr_1005X = s48_allocate_small((4 + len_1004X));
      *((long *) addr_1005X) = (long) ((10 + (((len_1004X)<<8))));
      new_env_1006X = 3 + (((long) (addr_1005X + 4)));
      if ((0 == closures_1003X)) {
        arg0K0 = new_env_1006X;
        arg0K1 = 0;
        arg0K2 = 4;
        arg0K3 = total_count_1002X;
        goto L14085;}
      else {
        template_1007X = *((long *) ((SstackS) + ((((((((*((unsigned char *) ((Scode_pointerS) + 5))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 6)))))<<2))));
        arg0K0 = closures_1003X;
        arg0K1 = 0;
        arg0K2 = 6;
        goto L21864;}}
      break;
    case 8 : {
      x_1008X = SvalS;
      x_1009X = *((long *) ((SstackS) + ((((*((unsigned char *) ((Scode_pointerS) + 1))))<<2))));
      addr_1010X = (((char *) (-3 + x_1009X))) + ((((*((unsigned char *) ((Scode_pointerS) + 2))))<<2));S48_WRITE_BARRIER(x_1009X, addr_1010X, x_1008X);
      *((long *) addr_1010X) = (long) (x_1008X);
      SvalS = 13;
      Scode_pointerS = ((Scode_pointerS) + 3);
      arg2K0 = (Scode_pointerS);
      goto L31612;}
      break;
    case 9 : {
      value_1011X = SvalS;
      x_1012X = *((long *) ((SstackS) + ((((((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2)))))<<2))));
      addr_1013X = (((char *) (-3 + x_1012X))) + ((((((((*((unsigned char *) ((Scode_pointerS) + 2))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 3)))))<<2));S48_WRITE_BARRIER(x_1012X, addr_1013X, value_1011X);
      *((long *) addr_1013X) = (long) (value_1011X);
      SvalS = 13;
      Scode_pointerS = ((Scode_pointerS) + 5);
      arg2K0 = (Scode_pointerS);
      goto L31612;}
      break;
    case 10 : {
      SvalS = (*((long *) ((((char *) (-3 + (*((long *) ((SstackS) + ((((*((unsigned char *) ((Scode_pointerS) + 1))))<<2)))))))) + ((((*((unsigned char *) ((Scode_pointerS) + 2))))<<2)))));
      Scode_pointerS = ((Scode_pointerS) + 3);
      arg2K0 = (Scode_pointerS);
      goto L31612;}
      break;
    case 11 : {
      SvalS = (*((long *) ((((char *) (-3 + (*((long *) ((SstackS) + ((((((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2)))))<<2)))))))) + ((((((((*((unsigned char *) ((Scode_pointerS) + 3))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 4)))))<<2)))));
      Scode_pointerS = ((Scode_pointerS) + 5);
      arg2K0 = (Scode_pointerS);
      goto L31612;}
      break;
    case 12 : {
      free_count_1014X = ((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2)));
      size_1015X = 1 + free_count_1014X;s48_make_availableAgc((4 + (((size_1015X)<<2))));
      len_1016X = ((size_1015X)<<2);
      addr_1017X = s48_allocate_small((4 + len_1016X));
      *((long *) addr_1017X) = (long) ((14 + (((len_1016X)<<8))));
      closure_1018X = 3 + (((long) (addr_1017X + 4)));
      *((long *) (((char *) (-3 + closure_1018X)))) = (long) ((SvalS));
      arg0K0 = free_count_1014X;
      goto L34245;}
      break;
    case 13 : {
      x_1019X = SvalS;
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (x_1019X);
      Scode_pointerS = ((Scode_pointerS) + 1);
      arg2K0 = (Scode_pointerS);
      goto L31612;}
      break;
    case 14 : {
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (1);
      Scode_pointerS = ((Scode_pointerS) + 1);
      arg2K0 = (Scode_pointerS);
      goto L31612;}
      break;
    case 15 : {
      value_1020X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      SvalS = value_1020X;
      Scode_pointerS = ((Scode_pointerS) + 1);
      arg2K0 = (Scode_pointerS);
      goto L31612;}
      break;
    case 16 : {
      SstackS = ((SstackS) + (0 - ((((0 - (((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2))))))<<2))));
      Scode_pointerS = ((Scode_pointerS) + 3);
      arg2K0 = (Scode_pointerS);
      goto L31612;}
      break;
    case 17 : {
      arg0K0 = (((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2))));
      goto L60137;}
      break;
    case 18 : {
      SvalS = (*((long *) ((SstackS) + ((((*((unsigned char *) ((Scode_pointerS) + 1))))<<2)))));
      Scode_pointerS = ((Scode_pointerS) + 2);
      arg2K0 = (Scode_pointerS);
      goto L31612;}
      break;
    case 19 : {
      x_1021X = SvalS;
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (x_1021X);
      SvalS = (*((long *) ((SstackS) + ((((*((unsigned char *) ((Scode_pointerS) + 1))))<<2)))));
      Scode_pointerS = ((Scode_pointerS) + 2);
      arg2K0 = (Scode_pointerS);
      goto L31612;}
      break;
    case 20 : {
      x_1022X = *((long *) ((SstackS) + ((((*((unsigned char *) ((Scode_pointerS) + 1))))<<2))));
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (x_1022X);
      Scode_pointerS = ((Scode_pointerS) + 2);
      arg2K0 = (Scode_pointerS);
      goto L31612;}
      break;
    case 21 : {
      SvalS = (*((long *) ((SstackS) + ((((((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2)))))<<2)))));
      Scode_pointerS = ((Scode_pointerS) + 3);
      arg2K0 = (Scode_pointerS);
      goto L31612;}
      break;
    case 22 : {
      *((long *) ((SstackS) + ((((*((unsigned char *) ((Scode_pointerS) + 1))))<<2)))) = (long) ((SvalS));
      Scode_pointerS = ((Scode_pointerS) + 2);
      arg2K0 = (Scode_pointerS);
      goto L31612;}
      break;
    case 23 : {
      *((long *) ((SstackS) + ((((((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2)))))<<2)))) = (long) ((SvalS));
      Scode_pointerS = ((Scode_pointerS) + 3);
      arg2K0 = (Scode_pointerS);
      goto L31612;}
      break;
    case 24 : {
      SvalS = (*((long *) ((((char *) (-3 + (*((long *) ((SstackS) + ((((*((unsigned char *) ((Scode_pointerS) + 1))))<<2)))))))) + ((((*((unsigned char *) ((Scode_pointerS) + 2))))<<2)))));
      Scode_pointerS = ((Scode_pointerS) + 3);
      arg2K0 = (Scode_pointerS);
      goto L31612;}
      break;
    case 25 : {
      x_1023X = SvalS;
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (x_1023X);
      SvalS = (*((long *) ((((char *) (-3 + (*((long *) ((SstackS) + ((((*((unsigned char *) ((Scode_pointerS) + 1))))<<2)))))))) + ((((*((unsigned char *) ((Scode_pointerS) + 2))))<<2)))));
      Scode_pointerS = ((Scode_pointerS) + 3);
      arg2K0 = (Scode_pointerS);
      goto L31612;}
      break;
    case 26 : {
      x_1024X = *((long *) ((((char *) (-3 + (*((long *) ((SstackS) + ((((*((unsigned char *) ((Scode_pointerS) + 1))))<<2)))))))) + ((((*((unsigned char *) ((Scode_pointerS) + 2))))<<2))));
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (x_1024X);
      Scode_pointerS = ((Scode_pointerS) + 3);
      arg2K0 = (Scode_pointerS);
      goto L31612;}
      break;
    case 27 : {
      SvalS = (*((long *) ((((char *) (-3 + (*((long *) ((SstackS) + ((((((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2)))))<<2)))))))) + ((((((((*((unsigned char *) ((Scode_pointerS) + 3))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 4)))))<<2)))));
      Scode_pointerS = ((Scode_pointerS) + 5);
      arg2K0 = (Scode_pointerS);
      goto L31612;}
      break;
    case 28 : {
      x_1025X = SvalS;
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (x_1025X);
      n_moves_1026X = *((unsigned char *) ((Scode_pointerS) + 1));
      arg0K0 = 0;
      goto L33579;}
      break;
    case 29 : {
      x_1027X = SvalS;
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (x_1027X);
      n_moves_1028X = ((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2)));
      arg0K0 = 0;
      goto L33496;}
      break;
    case 30 : {s48_make_availableAgc(((((-4 & ((Sstack_endS) - (SstackS))))<<2)));
      if ((1 == (((long) (ScontS))))) {
        arg0K0 = 1;
        goto L60206;}
      else {
        v_1029X = really_preserve_continuation(0);
        arg0K0 = v_1029X;
        goto L60206;}}
      break;
    case 32 : {
      stack_arg_count_1030X = *((unsigned char *) ((Scode_pointerS) + 3));
      code_pointer_1031X = (Scode_pointerS) + (((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2))));
      ScontS = ((SstackS) + (((stack_arg_count_1030X)<<2)));
      *((long *) (ScontS)) = (long) ((((long) code_pointer_1031X)));
      arg0K0 = stack_arg_count_1030X;
      goto L59289;}
      break;
    case 33 : {
      merged_arg0K0 = (*((unsigned char *) ((Scode_pointerS) + 1)));
      move_args_above_contB_return_tag = 0;
      goto move_args_above_contB;
     move_args_above_contB_return_0:
      arg0K0 = (*((unsigned char *) ((Scode_pointerS) + 1)));
      goto L59289;}
      break;
    case 34 : {
      stack_arg_count_1032X = ((((*((unsigned char *) ((Scode_pointerS) + 3))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 4)));
      return_pointer_offset_1033X = ((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2)));
      if ((0 == return_pointer_offset_1033X)) {
        merged_arg0K0 = stack_arg_count_1032X;
        move_args_above_contB_return_tag = 1;
        goto move_args_above_contB;
       move_args_above_contB_return_1:
        goto L29112;}
      else {
        code_pointer_1034X = (Scode_pointerS) + return_pointer_offset_1033X;
        ScontS = ((SstackS) + (((stack_arg_count_1032X)<<2)));
        *((long *) (ScontS)) = (long) ((((long) code_pointer_1034X)));
        goto L29112;}}
      break;
    case 35 : {
      v_1035X = (s48_Sstack_limitS) == (((char *) -1));
      if (v_1035X) {
        pending_interruptP_return_tag = 3;
        goto pending_interruptP;
       pending_interruptP_return_3:
        v_1036X = pending_interruptP0_return_value;
        if (v_1036X) {
          goto L28508;}
        else {
          goto L60232;}}
      else {
        goto L60232;}}
      break;
    case 36 : {
      list_args_1037X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      stack_nargs_1038X = ((((*((unsigned char *) ((Scode_pointerS) + 3))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 4)));
      merged_arg0K0 = list_args_1037X;
      okay_argument_list_return_tag = 0;
      goto okay_argument_list;
     okay_argument_list_return_0:
      okayP_1039X = okay_argument_list0_return_value;
      length_1040X = okay_argument_list1_return_value;
      if (okayP_1039X) {
        return_pointer_offset_1041X = ((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2)));
        if ((0 == return_pointer_offset_1041X)) {
          merged_arg0K0 = stack_nargs_1038X;
          move_args_above_contB_return_tag = 2;
          goto move_args_above_contB;
         move_args_above_contB_return_2:
          arg0K0 = stack_nargs_1038X;
          arg0K1 = list_args_1037X;
          arg0K2 = length_1040X;
          goto L58313;}
        else {
          code_pointer_1042X = (Scode_pointerS) + return_pointer_offset_1041X;
          ScontS = ((SstackS) + (((stack_nargs_1038X)<<2)));
          *((long *) (ScontS)) = (long) ((((long) code_pointer_1042X)));
          arg0K0 = stack_nargs_1038X;
          arg0K1 = list_args_1037X;
          arg0K2 = length_1040X;
          goto L58313;}}
      else {
        merged_arg0K0 = list_args_1037X;
        merged_arg0K1 = stack_nargs_1038X;
        pop_args_GlistSAgc_return_tag = 1;
        goto pop_args_GlistSAgc;
       pop_args_GlistSAgc_return_1:
        args_1043X = pop_args_GlistSAgc0_return_value;push_exception_setupB(5, 0);
        x_1044X = SvalS;
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (x_1044X);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (args_1043X);
        arg0K0 = 2;
        goto L29309;}}
      break;
    case 37 : {
      SstackS = ((SstackS) + 4);
      p_1045X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      stack_nargs_1046X = ((p_1045X)>>2);
      SvalS = (*((long *) ((SstackS) + (((stack_nargs_1046X)<<2)))));
      merged_arg0K0 = stack_nargs_1046X;
      move_args_above_contB_return_tag = 3;
      goto move_args_above_contB;
     move_args_above_contB_return_3:
      rest_list_1047X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((25 == rest_list_1047X)) {
        v_1048X = *((long *) (SstackS));
        SstackS = ((SstackS) + 4);
        arg0K0 = v_1048X;
        arg0K1 = (-2 + stack_nargs_1046X);
        goto L20800;}
      else {
        if ((25 == (*((long *) ((((char *) (-3 + rest_list_1047X))) + 4))))) {
          arg0K0 = (*((long *) (((char *) (-3 + rest_list_1047X)))));
          arg0K1 = (-1 + stack_nargs_1046X);
          goto L20800;}
        else {
          arg0K0 = (*((long *) ((((char *) (-3 + (*((long *) ((((char *) (-3 + rest_list_1047X))) + 4)))))) + 4)));
          arg0K1 = rest_list_1047X;
          goto L20845;}}}
      break;
    case 38 : {
      cont_1049X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((3 == (3 & cont_1049X))) {
        if ((10 == (31 & ((((*((long *) ((((char *) (-3 + cont_1049X))) + -4))))>>2))))) {
          merged_arg0K0 = cont_1049X;
          merged_arg0K1 = 0;
          copy_continuation_from_heapB_return_tag = 0;
          goto copy_continuation_from_heapB;
         copy_continuation_from_heapB_return_0:
          goto L29070;}
        else {
          goto L29079;}}
      else {
        goto L29079;}}
      break;
    case 39 : {
      goto L58900;}
      break;
    case 40 : {
      arg0K0 = (((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2))));
      arg0K1 = 25;
      arg0K2 = 0;
      goto L28737;}
      break;
    case 41 : {
      p_1050X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      p_1051X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      stack_nargs_1052X = ((p_1051X)>>2);
      rest_list_1053X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg0K0 = stack_nargs_1052X;
      arg0K1 = rest_list_1053X;
      arg0K2 = ((((p_1050X)>>2)) - stack_nargs_1052X);
      goto L28737;}
      break;
    case 43 : {
      template_1054X = *((long *) ((((char *) (-3 + (*((long *) ((SstackS) + ((((((((*((unsigned char *) ((Scode_pointerS) + 3))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 4)))))<<2)))))))) + ((((((((*((unsigned char *) ((Scode_pointerS) + 5))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 6)))))<<2))));
      code_1055X = *((long *) (((char *) (-3 + template_1054X))));
      nargs_1056X = *((unsigned char *) ((Scode_pointerS) + 7));
      return_pointer_offset_1057X = ((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2)));
      if ((0 == return_pointer_offset_1057X)) {
        merged_arg0K0 = nargs_1056X;
        move_args_above_contB_return_tag = 4;
        goto move_args_above_contB;
       move_args_above_contB_return_4:
        goto L33230;}
      else {
        code_pointer_1058X = (Scode_pointerS) + return_pointer_offset_1057X;
        ScontS = ((SstackS) + (((nargs_1056X)<<2)));
        *((long *) (ScontS)) = (long) ((((long) code_pointer_1058X)));
        goto L33230;}}
      break;
    case 44 : {
      if ((1 == (SvalS))) {
        Scode_pointerS = ((Scode_pointerS) + (((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2)))));
        arg2K0 = (Scode_pointerS);
        goto L31612;}
      else {
        Scode_pointerS = ((Scode_pointerS) + 3);
        arg2K0 = (Scode_pointerS);
        goto L31612;}}
      break;
    case 45 : {
      Scode_pointerS = ((Scode_pointerS) + (((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2)))));
      arg2K0 = (Scode_pointerS);
      goto L31612;}
      break;
    case 46 : {
      Scode_pointerS = ((Scode_pointerS) + (0 - (((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2))))));
      arg2K0 = (Scode_pointerS);
      goto L31612;}
      break;
    case 47 : {
      if ((0 == (3 & (SvalS)))) {
        p_1059X = SvalS;
        max_1060X = *((unsigned char *) ((Scode_pointerS) + 1));
        val_1061X = ((p_1059X)>>2);
        if ((val_1061X < 0)) {
          goto L31921;}
        else {
          if ((val_1061X < max_1060X)) {
            index_1062X = 1 + (((val_1061X)<<1));
            arg0K0 = (((((*((unsigned char *) ((Scode_pointerS) + (1 + index_1062X)))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + (2 + index_1062X)))));
            goto L31923;}
          else {
            goto L31921;}}}
      else {push_exception_setupB(5, 0);
        x_1063X = SvalS;
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (x_1063X);
        arg0K0 = 1;
        goto L29309;}}
      break;
    case 48 : {
      stack_nargs_1064X = (((*((long *) (SstackS))))>>2);
      if ((0 == stack_nargs_1064X)) {
        rest_list_1065X = *((long *) ((SstackS) + 4));
        arg0_1066X = *((long *) ((SstackS) + 8));
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (arg0_1066X);
        SvalS = (*((long *) (((char *) (-3 + rest_list_1065X)))));
        goto L32510;}
      else {
        arg0_1067X = *((long *) ((SstackS) + (4 + (((stack_nargs_1064X)<<2)))));
        arg1_1068X = *((long *) ((SstackS) + (((stack_nargs_1064X)<<2))));
        *((long *) ((SstackS) + (4 + (((stack_nargs_1064X)<<2))))) = (long) (1);
        *((long *) (SstackS)) = (long) ((-4 + (((stack_nargs_1064X)<<2))));
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (arg0_1067X);
        SvalS = arg1_1068X;
        goto L32510;}}
      break;
    case 49 : {
      stack_nargs_1069X = (((*((long *) (SstackS))))>>2);
      if ((stack_nargs_1069X == 0)) {
        rest_list_1070X = *((long *) ((SstackS) + 4));
        if ((25 == (*((long *) ((((char *) (-3 + rest_list_1070X))) + 4))))) {
          arg0K0 = 1;
          goto L31819;}
        else {
          *((long *) ((SstackS) + 4)) = (long) ((*((long *) ((((char *) (-3 + rest_list_1070X))) + 4))));
          *((long *) ((SstackS) + 8)) = (long) ((SvalS));
          arg0K0 = -2;
          goto L31819;}}
      else {
        if ((stack_nargs_1069X == 1)) {
          if ((25 == (*((long *) ((SstackS) + 4))))) {
            arg0K0 = 1;
            goto L31819;}
          else {
            *((long *) (SstackS)) = (long) (0);
            *((long *) ((SstackS) + 8)) = (long) ((SvalS));
            arg0K0 = -2;
            goto L31819;}}
        else {
          *((long *) ((SstackS) + (4 + (((stack_nargs_1069X)<<2))))) = (long) ((SvalS));
          arg0K0 = -2;
          goto L31819;}}}
      break;
    case 50 : {
      if ((1 == (SvalS))) {
        Scode_pointerS = ((Scode_pointerS) + 1);
        arg2K0 = (Scode_pointerS);
        goto L31612;}
      else {
        x_1071X = (((*((long *) (SstackS))))>>2);
        if ((x_1071X == 0)) {
          rest_list_1072X = *((long *) ((SstackS) + 4));
          if ((25 == (*((long *) ((((char *) (-3 + rest_list_1072X))) + 4))))) {
            arg0K0 = 1;
            goto L32401;}
          else {
            *((long *) ((SstackS) + 4)) = (long) ((*((long *) ((((char *) (-3 + rest_list_1072X))) + 4))));
            *((long *) ((SstackS) + 8)) = (long) ((*((long *) (((char *) (-3 + rest_list_1072X))))));
            arg0K0 = -2;
            goto L32401;}}
        else {
          if ((x_1071X == 1)) {
            if ((25 == (*((long *) ((SstackS) + 4))))) {
              arg0K0 = 1;
              goto L32401;}
            else {
              *((long *) (SstackS)) = (long) (0);
              arg0K0 = -2;
              goto L32401;}}
          else {
            arg0K0 = -2;
            goto L32401;}}}}
      break;
    case 51 : {
      arg2_1073X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      x_1074X = SvalS;
      if ((arg2_1073X == x_1074X)) {
        arg0K0 = 5;
        goto L60277;}
      else {
        arg0K0 = 1;
        goto L60277;}}
      break;
    case 52 : {
      x_1075X = SvalS;
      if ((0 == (3 & x_1075X))) {
        arg0K0 = 5;
        goto L60289;}
      else {
        if ((3 == (3 & x_1075X))) {
          if ((19 == (31 & ((((*((long *) ((((char *) (-3 + x_1075X))) + -4))))>>2))))) {
            arg0K0 = 5;
            goto L60289;}
          else {
            goto L18518;}}
        else {
          goto L18518;}}}
      break;
    case 53 : {
      n_1076X = SvalS;
      if ((0 == (3 & n_1076X))) {
        goto L49795;}
      else {
        if ((3 == (3 & n_1076X))) {
          if ((19 == (31 & ((((*((long *) ((((char *) (-3 + n_1076X))) + -4))))>>2))))) {
            goto L49795;}
          else {
            goto L49796;}}
        else {
          goto L49796;}}}
      break;
    case 54 : {
      arg0K0 = (SvalS);
      goto L49929;}
      break;
    case 55 : {
      arg0K0 = (SvalS);
      goto L49929;}
      break;
    case 56 : {
      arg0K0 = (SvalS);
      goto L49929;}
      break;
    case 57 : {
      n_1077X = SvalS;
      if ((0 == (3 & n_1077X))) {
        goto L42403;}
      else {
        if ((3 == (3 & n_1077X))) {
          if ((19 == (31 & ((((*((long *) ((((char *) (-3 + n_1077X))) + -4))))>>2))))) {
            goto L42403;}
          else {
            goto L42404;}}
        else {
          goto L42404;}}}
      break;
    case 58 : {
      x_1078X = SvalS;push_exception_setupB(5, 1);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (x_1078X);
      arg0K0 = 1;
      goto L29309;}
      break;
    case 59 : {
      x_1079X = SvalS;push_exception_setupB(5, 1);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (x_1079X);
      arg0K0 = 1;
      goto L29309;}
      break;
    case 60 : {
      arg2_1080X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      y_1081X = SvalS;
      if ((0 == (3 & (arg2_1080X | y_1081X)))) {s48_make_availableAgc(16);
        x_1082X = (((arg2_1080X)>>2)) + (((y_1081X)>>2));
        if ((536870911 < x_1082X)) {
          goto L42529;}
        else {
          if ((x_1082X < -536870912)) {
            goto L42529;}
          else {
            arg0K0 = (((x_1082X)<<2));
            goto L42475;}}}
      else {
        if ((0 == (3 & arg2_1080X))) {
          goto L42481;}
        else {
          if ((3 == (3 & arg2_1080X))) {
            if ((19 == (31 & ((((*((long *) ((((char *) (-3 + arg2_1080X))) + -4))))>>2))))) {
              goto L42481;}
            else {
              goto L42490;}}
          else {
            goto L42490;}}}}
      break;
    case 61 : {
      arg2_1083X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      y_1084X = SvalS;
      if ((0 == (3 & (arg2_1083X | y_1084X)))) {
        a_1085X = ((arg2_1083X)>>2);
        b_1086X = ((y_1084X)>>2);
        if ((a_1085X < 0)) {
          arg0K0 = (0 - a_1085X);
          goto L11584;}
        else {
          arg0K0 = a_1085X;
          goto L11584;}}
      else {
        if ((0 == (3 & arg2_1083X))) {
          goto L51702;}
        else {
          if ((3 == (3 & arg2_1083X))) {
            if ((19 == (31 & ((((*((long *) ((((char *) (-3 + arg2_1083X))) + -4))))>>2))))) {
              goto L51702;}
            else {
              goto L51711;}}
          else {
            goto L51711;}}}}
      break;
    case 62 : {
      arg2_1087X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      y_1088X = SvalS;
      if ((0 == (3 & (arg2_1087X | y_1088X)))) {s48_make_availableAgc(16);
        x_1089X = (((arg2_1087X)>>2)) - (((y_1088X)>>2));
        if ((536870911 < x_1089X)) {
          goto L42818;}
        else {
          if ((x_1089X < -536870912)) {
            goto L42818;}
          else {
            arg0K0 = (((x_1089X)<<2));
            goto L42764;}}}
      else {
        if ((0 == (3 & arg2_1087X))) {
          goto L42770;}
        else {
          if ((3 == (3 & arg2_1087X))) {
            if ((19 == (31 & ((((*((long *) ((((char *) (-3 + arg2_1087X))) + -4))))>>2))))) {
              goto L42770;}
            else {
              goto L42779;}}
          else {
            goto L42779;}}}}
      break;
    case 63 : {
      arg2_1090X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      y_1091X = SvalS;
      if ((0 == y_1091X)) {push_exception_setupB(5, 1);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (arg2_1090X);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (y_1091X);
        arg0K0 = 2;
        goto L29309;}
      else {
        if ((0 == (3 & (arg2_1090X | y_1091X)))) {
          if ((0 == y_1091X)) {push_exception_setupB(5, 1);
            SstackS = ((SstackS) + -4);
            *((long *) (SstackS)) = (long) (arg2_1090X);
            SstackS = ((SstackS) + -4);
            *((long *) (SstackS)) = (long) (y_1091X);
            arg0K0 = 2;
            goto L29309;}
          else {
            a_1092X = ((arg2_1090X)>>2);
            b_1093X = ((y_1091X)>>2);
            if ((a_1092X < 0)) {
              arg0K0 = (0 - a_1092X);
              goto L11842;}
            else {
              arg0K0 = a_1092X;
              goto L11842;}}}
        else {
          if ((0 == (3 & arg2_1090X))) {
            goto L51955;}
          else {
            if ((3 == (3 & arg2_1090X))) {
              if ((19 == (31 & ((((*((long *) ((((char *) (-3 + arg2_1090X))) + -4))))>>2))))) {
                goto L51955;}
              else {
                goto L51992;}}
            else {
              goto L51992;}}}}}
      break;
    case 64 : {
      arg2_1094X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      y_1095X = SvalS;
      if ((0 == (3 & (arg2_1094X | y_1095X)))) {
        if ((arg2_1094X == y_1095X)) {
          arg0K0 = 5;
          goto L43049;}
        else {
          arg0K0 = 1;
          goto L43049;}}
      else {
        if ((0 == (3 & arg2_1094X))) {
          goto L43055;}
        else {
          if ((3 == (3 & arg2_1094X))) {
            if ((19 == (31 & ((((*((long *) ((((char *) (-3 + arg2_1094X))) + -4))))>>2))))) {
              goto L43055;}
            else {
              goto L43066;}}
          else {
            goto L43066;}}}}
      break;
    case 65 : {
      arg2_1096X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      y_1097X = SvalS;
      if ((0 == (3 & (arg2_1096X | y_1097X)))) {
        if ((arg2_1096X < y_1097X)) {
          arg0K0 = 5;
          goto L43309;}
        else {
          arg0K0 = 1;
          goto L43309;}}
      else {
        if ((0 == (3 & arg2_1096X))) {
          goto L43315;}
        else {
          if ((3 == (3 & arg2_1096X))) {
            if ((19 == (31 & ((((*((long *) ((((char *) (-3 + arg2_1096X))) + -4))))>>2))))) {
              goto L43315;}
            else {
              goto L43326;}}
          else {
            goto L43326;}}}}
      break;
    case 66 : {
      arg2_1098X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      y_1099X = SvalS;
      if ((0 == (3 & (arg2_1098X | y_1099X)))) {
        if ((y_1099X < arg2_1098X)) {
          arg0K0 = 5;
          goto L43632;}
        else {
          arg0K0 = 1;
          goto L43632;}}
      else {
        if ((0 == (3 & arg2_1098X))) {
          goto L43638;}
        else {
          if ((3 == (3 & arg2_1098X))) {
            if ((19 == (31 & ((((*((long *) ((((char *) (-3 + arg2_1098X))) + -4))))>>2))))) {
              goto L43638;}
            else {
              goto L43649;}}
          else {
            goto L43649;}}}}
      break;
    case 67 : {
      arg2_1100X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      y_1101X = SvalS;
      if ((0 == (3 & (arg2_1100X | y_1101X)))) {
        if ((y_1101X < arg2_1100X)) {
          arg0K0 = 1;
          goto L43955;}
        else {
          arg0K0 = 5;
          goto L43955;}}
      else {
        if ((0 == (3 & arg2_1100X))) {
          goto L43961;}
        else {
          if ((3 == (3 & arg2_1100X))) {
            if ((19 == (31 & ((((*((long *) ((((char *) (-3 + arg2_1100X))) + -4))))>>2))))) {
              goto L43961;}
            else {
              goto L43972;}}
          else {
            goto L43972;}}}}
      break;
    case 68 : {
      arg2_1102X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      y_1103X = SvalS;
      if ((0 == (3 & (arg2_1102X | y_1103X)))) {
        if ((arg2_1102X < y_1103X)) {
          arg0K0 = 1;
          goto L44249;}
        else {
          arg0K0 = 5;
          goto L44249;}}
      else {
        if ((0 == (3 & arg2_1102X))) {
          goto L44255;}
        else {
          if ((3 == (3 & arg2_1102X))) {
            if ((19 == (31 & ((((*((long *) ((((char *) (-3 + arg2_1102X))) + -4))))>>2))))) {
              goto L44255;}
            else {
              goto L44266;}}
          else {
            goto L44266;}}}}
      break;
    case 69 : {
      arg2_1104X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      y_1105X = SvalS;
      if ((0 == y_1105X)) {push_exception_setupB(5, 1);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (arg2_1104X);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (y_1105X);
        arg0K0 = 2;
        goto L29309;}
      else {
        if ((0 == (3 & (arg2_1104X | y_1105X)))) {
          if ((0 == y_1105X)) {
            val_1106X = Hinteger_op8311(arg2_1104X, y_1105X);
            SvalS = val_1106X;
            Scode_pointerS = ((Scode_pointerS) + 1);
            arg2K0 = (Scode_pointerS);
            goto L31612;}
          else {
            a_1107X = ((arg2_1104X)>>2);
            b_1108X = ((y_1105X)>>2);
            if ((a_1107X < 0)) {
              arg0K0 = (0 - a_1107X);
              goto L12456;}
            else {
              arg0K0 = a_1107X;
              goto L12456;}}}
        else {
          if ((0 == (3 & arg2_1104X))) {
            goto L44555;}
          else {
            if ((3 == (3 & arg2_1104X))) {
              if ((19 == (31 & ((((*((long *) ((((char *) (-3 + arg2_1104X))) + -4))))>>2))))) {
                goto L44555;}
              else {
                goto L44564;}}
            else {
              goto L44564;}}}}}
      break;
    case 70 : {
      arg2_1109X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      y_1110X = SvalS;
      if ((0 == y_1110X)) {push_exception_setupB(5, 1);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (arg2_1109X);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (y_1110X);
        arg0K0 = 2;
        goto L29309;}
      else {
        if ((0 == (3 & (arg2_1109X | y_1110X)))) {
          if ((0 == y_1110X)) {
            val_1111X = Hinteger_op8242(arg2_1109X, y_1110X);
            SvalS = val_1111X;
            Scode_pointerS = ((Scode_pointerS) + 1);
            arg2K0 = (Scode_pointerS);
            goto L31612;}
          else {
            a_1112X = ((arg2_1109X)>>2);
            if ((a_1112X < 0)) {
              arg0K0 = (0 - a_1112X);
              goto L44769;}
            else {
              arg0K0 = a_1112X;
              goto L44769;}}}
        else {
          if ((0 == (3 & arg2_1109X))) {
            goto L44731;}
          else {
            if ((3 == (3 & arg2_1109X))) {
              if ((19 == (31 & ((((*((long *) ((((char *) (-3 + arg2_1109X))) + -4))))>>2))))) {
                goto L44731;}
              else {
                goto L44740;}}
            else {
              goto L44740;}}}}}
      break;
    case 71 : {
      n_1113X = SvalS;
      if ((0 == (3 & n_1113X))) {
        goto L44918;}
      else {
        if ((3 == (3 & n_1113X))) {
          if ((19 == (31 & ((((*((long *) ((((char *) (-3 + n_1113X))) + -4))))>>2))))) {
            goto L44918;}
          else {
            goto L44919;}}
        else {
          goto L44919;}}}
      break;
    case 72 : {
      n_1114X = SvalS;
      if ((0 == (3 & n_1114X))) {
        goto L44973;}
      else {
        if ((3 == (3 & n_1114X))) {
          if ((19 == (31 & ((((*((long *) ((((char *) (-3 + n_1114X))) + -4))))>>2))))) {
            goto L44973;}
          else {
            goto L44974;}}
        else {
          goto L44974;}}}
      break;
    case 73 : {
      n_1115X = SvalS;
      if ((0 == (3 & n_1115X))) {
        goto L45028;}
      else {
        if ((3 == (3 & n_1115X))) {
          if ((19 == (31 & ((((*((long *) ((((char *) (-3 + n_1115X))) + -4))))>>2))))) {
            goto L45028;}
          else {
            goto L45031;}}
        else {
          goto L45031;}}}
      break;
    case 74 : {
      n_1116X = SvalS;
      if ((0 == (3 & n_1116X))) {
        goto L45088;}
      else {
        if ((3 == (3 & n_1116X))) {
          if ((19 == (31 & ((((*((long *) ((((char *) (-3 + n_1116X))) + -4))))>>2))))) {
            goto L45088;}
          else {
            goto L45089;}}
        else {
          goto L45089;}}}
      break;
    case 75 : {
      n_1117X = SvalS;
      if ((0 == (3 & n_1117X))) {
        goto L45143;}
      else {
        if ((3 == (3 & n_1117X))) {
          if ((19 == (31 & ((((*((long *) ((((char *) (-3 + n_1117X))) + -4))))>>2))))) {
            goto L45143;}
          else {
            goto L45146;}}
        else {
          goto L45146;}}}
      break;
    case 76 : {
      x_1118X = SvalS;push_exception_setupB(5, 1);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (x_1118X);
      arg0K0 = 1;
      goto L29309;}
      break;
    case 77 : {
      x_1119X = SvalS;push_exception_setupB(5, 1);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (x_1119X);
      arg0K0 = 1;
      goto L29309;}
      break;
    case 78 : {
      x_1120X = SvalS;push_exception_setupB(5, 1);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (x_1120X);
      arg0K0 = 1;
      goto L29309;}
      break;
    case 79 : {
      x_1121X = SvalS;push_exception_setupB(5, 1);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (x_1121X);
      arg0K0 = 1;
      goto L29309;}
      break;
    case 80 : {
      x_1122X = SvalS;push_exception_setupB(5, 1);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (x_1122X);
      arg0K0 = 1;
      goto L29309;}
      break;
    case 81 : {
      x_1123X = SvalS;push_exception_setupB(5, 1);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (x_1123X);
      arg0K0 = 1;
      goto L29309;}
      break;
    case 82 : {
      x_1124X = SvalS;push_exception_setupB(5, 1);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (x_1124X);
      arg0K0 = 1;
      goto L29309;}
      break;
    case 83 : {
      x_1125X = SvalS;push_exception_setupB(5, 1);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (x_1125X);
      arg0K0 = 1;
      goto L29309;}
      break;
    case 84 : {
      x_1126X = SvalS;
      if ((0 == (3 & x_1126X))) {
        goto L53282;}
      else {
        if ((3 == (3 & x_1126X))) {
          if ((19 == (31 & ((((*((long *) ((((char *) (-3 + x_1126X))) + -4))))>>2))))) {
            goto L53282;}
          else {
            goto L53285;}}
        else {
          goto L53285;}}}
      break;
    case 85 : {
      x_1127X = SvalS;
      if ((0 == (3 & x_1127X))) {
        goto L56668;}
      else {
        if ((3 == (3 & x_1127X))) {
          if ((19 == (31 & ((((*((long *) ((((char *) (-3 + x_1127X))) + -4))))>>2))))) {
            goto L56668;}
          else {
            goto L56671;}}
        else {
          goto L56671;}}}
      break;
    case 86 : {
      x_1128X = SvalS;push_exception_setupB(5, 1);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (x_1128X);
      arg0K0 = 1;
      goto L29309;}
      break;
    case 87 : {
      arg2_1129X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      x_1130X = SvalS;push_exception_setupB(5, 1);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (arg2_1129X);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (x_1130X);
      arg0K0 = 2;
      goto L29309;}
      break;
    case 88 : {
      arg2_1131X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      x_1132X = SvalS;push_exception_setupB(5, 1);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (arg2_1131X);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (x_1132X);
      arg0K0 = 2;
      goto L29309;}
      break;
    case 89 : {
      arg2_1133X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      x_1134X = SvalS;push_exception_setupB(5, 1);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (arg2_1133X);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (x_1134X);
      arg0K0 = 2;
      goto L29309;}
      break;
    case 90 : {
      x_1135X = SvalS;
      if ((0 == (3 & x_1135X))) {
        SvalS = (~ (3 | x_1135X));
        Scode_pointerS = ((Scode_pointerS) + 1);
        arg2K0 = (Scode_pointerS);
        goto L31612;}
      else {
        if ((0 == (3 & x_1135X))) {
          goto L45289;}
        else {
          if ((3 == (3 & x_1135X))) {
            if ((19 == (31 & ((((*((long *) ((((char *) (-3 + x_1135X))) + -4))))>>2))))) {
              goto L45289;}
            else {
              goto L45292;}}
          else {
            goto L45292;}}}}
      break;
    case 91 : {
      x_1136X = SvalS;
      if ((0 == (3 & x_1136X))) {
        x_1137X = ((x_1136X)>>2);
        if ((x_1137X < 0)) {
          arg0K0 = (~ x_1137X);
          goto L45380;}
        else {
          arg0K0 = x_1137X;
          goto L45380;}}
      else {
        if ((0 == (3 & x_1136X))) {
          goto L45363;}
        else {
          if ((3 == (3 & x_1136X))) {
            if ((19 == (31 & ((((*((long *) ((((char *) (-3 + x_1136X))) + -4))))>>2))))) {
              goto L45363;}
            else {
              goto L45366;}}
          else {
            goto L45366;}}}}
      break;
    case 92 : {
      arg2_1138X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      y_1139X = SvalS;
      if ((0 == (3 & (arg2_1138X | y_1139X)))) {
        SvalS = (arg2_1138X & y_1139X);
        Scode_pointerS = ((Scode_pointerS) + 1);
        arg2K0 = (Scode_pointerS);
        goto L31612;}
      else {
        if ((0 == (3 & arg2_1138X))) {
          goto L45465;}
        else {
          if ((3 == (3 & arg2_1138X))) {
            if ((19 == (31 & ((((*((long *) ((((char *) (-3 + arg2_1138X))) + -4))))>>2))))) {
              goto L45465;}
            else {
              goto L45474;}}
          else {
            goto L45474;}}}}
      break;
    case 93 : {
      arg2_1140X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      y_1141X = SvalS;
      if ((0 == (3 & (arg2_1140X | y_1141X)))) {
        SvalS = (arg2_1140X | y_1141X);
        Scode_pointerS = ((Scode_pointerS) + 1);
        arg2K0 = (Scode_pointerS);
        goto L31612;}
      else {
        if ((0 == (3 & arg2_1140X))) {
          goto L45628;}
        else {
          if ((3 == (3 & arg2_1140X))) {
            if ((19 == (31 & ((((*((long *) ((((char *) (-3 + arg2_1140X))) + -4))))>>2))))) {
              goto L45628;}
            else {
              goto L45637;}}
          else {
            goto L45637;}}}}
      break;
    case 94 : {
      arg2_1142X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      y_1143X = SvalS;
      if ((0 == (3 & (arg2_1142X | y_1143X)))) {
        SvalS = (arg2_1142X ^ y_1143X);
        Scode_pointerS = ((Scode_pointerS) + 1);
        arg2K0 = (Scode_pointerS);
        goto L31612;}
      else {
        if ((0 == (3 & arg2_1142X))) {
          goto L45791;}
        else {
          if ((3 == (3 & arg2_1142X))) {
            if ((19 == (31 & ((((*((long *) ((((char *) (-3 + arg2_1142X))) + -4))))>>2))))) {
              goto L45791;}
            else {
              goto L45800;}}
          else {
            goto L45800;}}}}
      break;
    case 95 : {
      arg2_1144X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      y_1145X = SvalS;
      if ((3 == (3 & y_1145X))) {
        if ((19 == (31 & ((((*((long *) ((((char *) (-3 + y_1145X))) + -4))))>>2))))) {
          v_1146X = s48_bignum_test((((char *) (-3 + y_1145X))));
          if ((1 == v_1146X)) {push_exception_setupB(6, 1);
            SstackS = ((SstackS) + -4);
            *((long *) (SstackS)) = (long) (arg2_1144X);
            SstackS = ((SstackS) + -4);
            *((long *) (SstackS)) = (long) (y_1145X);
            arg0K0 = 2;
            goto L29309;}
          else {
            if ((0 == (3 & arg2_1144X))) {
              if ((arg2_1144X < 0)) {
                arg0K0 = -4;
                goto L42183;}
              else {
                arg0K0 = 0;
                goto L42183;}}
            else {
              if ((3 == (3 & arg2_1144X))) {
                if ((19 == (31 & ((((*((long *) ((((char *) (-3 + arg2_1144X))) + -4))))>>2))))) {
                  v_1147X = s48_bignum_test((((char *) (-3 + arg2_1144X))));
                  if ((1 == v_1147X)) {
                    arg0K0 = 0;
                    goto L42199;}
                  else {
                    arg0K0 = -4;
                    goto L42199;}}
                else {
                  goto L42200;}}
              else {
                goto L42200;}}}}
        else {
          goto L52342;}}
      else {
        goto L52342;}}
      break;
    case 96 : {
      x_1148X = SvalS;
      if ((9 == (255 & x_1148X))) {
        arg0K0 = 5;
        goto L60548;}
      else {
        arg0K0 = 1;
        goto L60548;}}
      break;
    case 97 : {
      arg2_1149X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((9 == (255 & arg2_1149X))) {
        if ((9 == (255 & (SvalS)))) {
          x_1150X = SvalS;
          if ((arg2_1149X == x_1150X)) {
            arg0K0 = 5;
            goto L49596;}
          else {
            arg0K0 = 1;
            goto L49596;}}
        else {
          goto L49567;}}
      else {
        goto L49567;}}
      break;
    case 98 : {
      arg2_1151X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((9 == (255 & arg2_1151X))) {
        if ((9 == (255 & (SvalS)))) {
          x_1152X = SvalS;
          if ((arg2_1151X < x_1152X)) {
            arg0K0 = 5;
            goto L49504;}
          else {
            arg0K0 = 1;
            goto L49504;}}
        else {
          goto L49475;}}
      else {
        goto L49475;}}
      break;
    case 99 : {
      if ((9 == (255 & (SvalS)))) {
        SvalS = (-4 & ((((SvalS))>>6)));
        Scode_pointerS = ((Scode_pointerS) + 1);
        arg2K0 = (Scode_pointerS);
        goto L31612;}
      else {push_exception_setupB(5, 1);
        x_1153X = SvalS;
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (x_1153X);
        arg0K0 = 1;
        goto L29309;}}
      break;
    case 100 : {
      if ((0 == (3 & (SvalS)))) {
        x_1154X = (((SvalS))>>2);
        if ((x_1154X < 0)) {
          goto L53591;}
        else {
          if ((55295 < x_1154X)) {
            if ((x_1154X < 57344)) {
              goto L53591;}
            else {
              if ((1114111 < x_1154X)) {
                goto L53591;}
              else {
                goto L53597;}}}
          else {
            goto L53597;}}}
      else {push_exception_setupB(5, 1);
        x_1155X = SvalS;
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (x_1155X);
        arg0K0 = 1;
        goto L29309;}}
      break;
    case 101 : {
      if ((0 == (3 & (SvalS)))) {
        x_1156X = (((SvalS))>>2);
        if ((x_1156X < 0)) {
          arg0K0 = 1;
          goto L49402;}
        else {
          if ((55295 < x_1156X)) {
            if ((x_1156X < 57344)) {
              arg0K0 = 1;
              goto L49402;}
            else {
              if ((1114111 < x_1156X)) {
                arg0K0 = 1;
                goto L49402;}
              else {
                arg0K0 = 5;
                goto L49402;}}}
          else {
            arg0K0 = 5;
            goto L49402;}}}
      else {push_exception_setupB(5, 1);
        x_1157X = SvalS;
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (x_1157X);
        arg0K0 = 1;
        goto L29309;}}
      break;
    case 102 : {
      x_1158X = SvalS;
      if ((21 == x_1158X)) {
        arg0K0 = 5;
        goto L60581;}
      else {
        arg0K0 = 1;
        goto L60581;}}
      break;
    case 103 : {
      x_1159X = SvalS;
      type_1160X = *((unsigned char *) ((Scode_pointerS) + 1));
      if ((3 == (3 & x_1159X))) {
        if (((31 & ((((*((long *) ((((char *) (-3 + x_1159X))) + -4))))>>2))) == type_1160X)) {
          arg0K0 = 5;
          goto L60595;}
        else {
          arg0K0 = 1;
          goto L60595;}}
      else {
        arg0K0 = 1;
        goto L60595;}}
      break;
    case 104 : {
      stob_1161X = SvalS;
      type_1162X = *((unsigned char *) ((Scode_pointerS) + 1));
      if ((3 == (3 & stob_1161X))) {
        if (((31 & ((((*((long *) ((((char *) (-3 + stob_1161X))) + -4))))>>2))) == type_1162X)) {
          SvalS = (-4 & (3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + stob_1161X))) + -4))))>>8))));
          Scode_pointerS = ((Scode_pointerS) + 2);
          arg2K0 = (Scode_pointerS);
          goto L31612;}
        else {
          goto L34375;}}
      else {
        goto L34375;}}
      break;
    case 105 : {
      len_1163X = *((unsigned char *) ((Scode_pointerS) + 1));s48_make_availableAgc((4 + (((len_1163X)<<2))));
      type_1164X = *((unsigned char *) ((Scode_pointerS) + 2));
      len_1165X = ((len_1163X)<<2);
      addr_1166X = s48_allocate_small((4 + len_1165X));
      *((long *) addr_1166X) = (long) ((2 + (((((((len_1165X)<<6)) + type_1164X))<<2))));
      new_1167X = 3 + (((long) (addr_1166X + 4)));
      if ((len_1163X < 1)) {
        goto L34480;}
      else {
        *((long *) ((((char *) (-3 + new_1167X))) + (-4 + (((len_1163X)<<2))))) = (long) ((SvalS));
        arg0K0 = (-2 + len_1163X);
        goto L34464;}}
      break;
    case 106 : {
      p_1168X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      len_1169X = ((p_1168X)>>2);s48_make_availableAgc((4 + (((len_1169X)<<2))));
      type_1170X = *((unsigned char *) ((Scode_pointerS) + 1));
      len_1171X = ((len_1169X)<<2);
      addr_1172X = s48_allocate_small((4 + len_1171X));
      *((long *) addr_1172X) = (long) ((2 + (((((((len_1171X)<<6)) + type_1170X))<<2))));
      new_1173X = 3 + (((long) (addr_1172X + 4)));
      p_1174X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      stack_nargs_1175X = ((p_1174X)>>2);
      rest_list_1176X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg0K0 = (-1 + stack_nargs_1175X);
      goto L34598;}
      break;
    case 107 : {
      stob_1177X = SvalS;
      type_1178X = *((unsigned char *) ((Scode_pointerS) + 1));
      offset_1179X = *((unsigned char *) ((Scode_pointerS) + 2));
      if ((3 == (3 & stob_1177X))) {
        if (((31 & ((((*((long *) ((((char *) (-3 + stob_1177X))) + -4))))>>2))) == type_1178X)) {
          SvalS = (*((long *) ((((char *) (-3 + stob_1177X))) + (((offset_1179X)<<2)))));
          Scode_pointerS = ((Scode_pointerS) + 3);
          arg2K0 = (Scode_pointerS);
          goto L31612;}
        else {
          goto L34766;}}
      else {
        goto L34766;}}
      break;
    case 108 : {
      arg2_1180X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      value_1181X = SvalS;
      type_1182X = *((unsigned char *) ((Scode_pointerS) + 1));
      offset_1183X = *((unsigned char *) ((Scode_pointerS) + 2));
      if ((3 == (3 & arg2_1180X))) {
        if (((31 & ((((*((long *) ((((char *) (-3 + arg2_1180X))) + -4))))>>2))) == type_1182X)) {
          if ((3 == (3 & arg2_1180X))) {
            if ((0 == (128 & (*((long *) ((((char *) (-3 + arg2_1180X))) + -4)))))) {
              v_1184X = *((unsigned char *) ((Scode_pointerS) + 3));
              if ((0 == v_1184X)) {
                goto L34883;}
              else {
                if ((1 == (*((long *) ((((char *) (-3 + (Scurrent_threadS)))) + 12))))) {
                  goto L34883;}
                else {
                  merged_arg0K0 = arg2_1180X;
                  merged_arg0K1 = (((offset_1183X)<<2));
                  merged_arg0K2 = value_1181X;
                  proposal_d_write_return_tag = 0;
                  goto proposal_d_write;
                 proposal_d_write_return_0:
                  goto L34892;}}}
            else {
              goto L34893;}}
          else {
            goto L34893;}}
        else {
          goto L34893;}}
      else {
        goto L34893;}}
      break;
    case 109 : {
      arg2_1185X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      init_1186X = SvalS;
      type_1187X = *((unsigned char *) ((Scode_pointerS) + 1));
      if ((0 == (3 & arg2_1185X))) {
        len_1188X = ((arg2_1185X)>>2);
        if ((len_1188X < 0)) {
          goto L35110;}
        else {
          if ((4194304 < len_1188X)) {
            goto L35110;}
          else {
            Stemp0S = init_1186X;
            len_1189X = ((len_1188X)<<2);
            addr_1190X = s48_allocate_tracedAgc((4 + len_1189X));
            if ((addr_1190X == NULL)) {
              arg0K0 = 1;
              goto L35127;}
            else {
              *((long *) addr_1190X) = (long) ((2 + (((((((len_1189X)<<6)) + type_1187X))<<2))));
              arg0K0 = (3 + (((long) (addr_1190X + 4))));
              goto L35127;}}}}
      else {push_exception_setupB(5, 2);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) ((((type_1187X)<<2)));
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (arg2_1185X);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (init_1186X);
        arg0K0 = 3;
        goto L29309;}}
      break;
    case 110 : {
      arg2_1191X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      index_1192X = SvalS;
      type_1193X = *((unsigned char *) ((Scode_pointerS) + 1));
      if ((0 == (3 & index_1192X))) {
        if ((3 == (3 & arg2_1191X))) {
          if (((31 & ((((*((long *) ((((char *) (-3 + arg2_1191X))) + -4))))>>2))) == type_1193X)) {
            len_1194X = (((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + arg2_1191X))) + -4))))>>8))))>>2);
            index_1195X = ((index_1192X)>>2);
            if ((index_1195X < 0)) {
              goto L35400;}
            else {
              if ((index_1195X < len_1194X)) {
                v_1196X = *((unsigned char *) ((Scode_pointerS) + 2));
                if ((0 == v_1196X)) {
                  goto L35390;}
                else {
                  if ((1 == (*((long *) ((((char *) (-3 + (Scurrent_threadS)))) + 12))))) {
                    goto L35390;}
                  else {
                    merged_arg0K0 = arg2_1191X;
                    merged_arg0K1 = index_1192X;
                    proposal_d_read_return_tag = 0;
                    goto proposal_d_read;
                   proposal_d_read_return_0:
                    v_1197X = proposal_d_read0_return_value;
                    arg0K0 = v_1197X;
                    goto L35399;}}}
              else {
                goto L35400;}}}
          else {
            goto L35355;}}
        else {
          goto L35355;}}
      else {
        goto L35355;}}
      break;
    case 111 : {
      arg2_1198X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg3_1199X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      value_1200X = SvalS;
      type_1201X = *((unsigned char *) ((Scode_pointerS) + 1));
      if ((0 == (3 & arg2_1198X))) {
        if ((3 == (3 & arg3_1199X))) {
          if (((31 & ((((*((long *) ((((char *) (-3 + arg3_1199X))) + -4))))>>2))) == type_1201X)) {
            if ((3 == (3 & arg3_1199X))) {
              if ((0 == (128 & (*((long *) ((((char *) (-3 + arg3_1199X))) + -4)))))) {
                len_1202X = (((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + arg3_1199X))) + -4))))>>8))))>>2);
                index_1203X = ((arg2_1198X)>>2);
                if ((index_1203X < 0)) {
                  goto L35687;}
                else {
                  if ((index_1203X < len_1202X)) {
                    v_1204X = *((unsigned char *) ((Scode_pointerS) + 2));
                    if ((0 == v_1204X)) {
                      goto L35677;}
                    else {
                      if ((1 == (*((long *) ((((char *) (-3 + (Scurrent_threadS)))) + 12))))) {
                        goto L35677;}
                      else {
                        merged_arg0K0 = arg3_1199X;
                        merged_arg0K1 = arg2_1198X;
                        merged_arg0K2 = value_1200X;
                        proposal_d_write_return_tag = 1;
                        goto proposal_d_write;
                       proposal_d_write_return_1:
                        goto L35686;}}}
                  else {
                    goto L35687;}}}
              else {
                goto L35640;}}
            else {
              goto L35640;}}
          else {
            goto L35640;}}
        else {
          goto L35640;}}
      else {
        goto L35640;}}
      break;
    case 112 : {
      addr_1205X = s48_allocate_untracedAgc(12);
      if ((addr_1205X == NULL)) {
        arg0K0 = 1;
        goto L60638;}
      else {
        *((long *) addr_1205X) = (long) (2122);
        arg0K0 = (3 + (((long) (addr_1205X + 4))));
        goto L60638;}}
      break;
    case 113 : {
      arg2_1206X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((0 == (3 & (arg2_1206X | (SvalS))))) {
        len_1207X = ((arg2_1206X)>>2);
        init_1208X = (((SvalS))>>2);
        if ((len_1207X < 0)) {
          goto L46073;}
        else {
          if ((4194304 < ((((3 + len_1207X))>>2)))) {
            goto L46073;}
          else {
            addr_1209X = s48_allocate_untracedAgc((4 + len_1207X));
            if ((addr_1209X == NULL)) {
              arg0K0 = 1;
              goto L46088;}
            else {
              *((long *) addr_1209X) = (long) ((70 + (((len_1207X)<<8))));
              arg0K0 = (3 + (((long) (addr_1209X + 4))));
              goto L46088;}}}}
      else {push_exception_setupB(5, 1);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (arg2_1206X);
        x_1210X = SvalS;
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (x_1210X);
        arg0K0 = 2;
        goto L29309;}}
      break;
    case 114 : {
      obj_1211X = SvalS;
      if ((3 == (3 & obj_1211X))) {
        if ((17 == (31 & ((((*((long *) ((((char *) (-3 + obj_1211X))) + -4))))>>2))))) {
          SvalS = (((((long)(((unsigned long)(*((long *) ((((char *) (-3 + (SvalS)))) + -4))))>>8)))<<2));
          Scode_pointerS = ((Scode_pointerS) + 1);
          arg2K0 = (Scode_pointerS);
          goto L31612;}
        else {
          goto L57914;}}
      else {
        goto L57914;}}
      break;
    case 115 : {
      arg2_1212X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((3 == (3 & arg2_1212X))) {
        if ((17 == (31 & ((((*((long *) ((((char *) (-3 + arg2_1212X))) + -4))))>>2))))) {
          if ((0 == (3 & (SvalS)))) {
            index_1213X = (((SvalS))>>2);
            len_1214X = (long)(((unsigned long)(*((long *) ((((char *) (-3 + arg2_1212X))) + -4))))>>8);
            if ((index_1213X < 0)) {
              goto L53734;}
            else {
              if ((index_1213X < len_1214X)) {
                SvalS = ((((*((unsigned char *) ((((char *) (-3 + arg2_1212X))) + index_1213X))))<<2));
                Scode_pointerS = ((Scode_pointerS) + 1);
                arg2K0 = (Scode_pointerS);
                goto L31612;}
              else {
                goto L53734;}}}
          else {
            goto L57340;}}
        else {
          goto L57340;}}
      else {
        goto L57340;}}
      break;
    case 116 : {
      arg2_1215X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg3_1216X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((3 == (3 & arg3_1216X))) {
        if ((17 == (31 & ((((*((long *) ((((char *) (-3 + arg3_1216X))) + -4))))>>2))))) {
          if ((0 == (3 & (arg2_1215X | (SvalS))))) {
            index_1217X = ((arg2_1215X)>>2);
            Kchar_1218X = (((SvalS))>>2);
            if ((3 == (3 & arg3_1216X))) {
              if ((0 == (128 & (*((long *) ((((char *) (-3 + arg3_1216X))) + -4)))))) {
                len_1219X = (long)(((unsigned long)(*((long *) ((((char *) (-3 + arg3_1216X))) + -4))))>>8);
                if ((index_1217X < 0)) {
                  goto L50914;}
                else {
                  if ((index_1217X < len_1219X)) {
                    *((unsigned char *) ((((char *) (-3 + arg3_1216X))) + index_1217X)) = (unsigned char) (Kchar_1218X);
                    SvalS = 13;
                    Scode_pointerS = ((Scode_pointerS) + 1);
                    arg2K0 = (Scode_pointerS);
                    goto L31612;}
                  else {
                    goto L50914;}}}
              else {
                goto L50893;}}
            else {
              goto L50893;}}
          else {
            goto L55988;}}
        else {
          goto L55988;}}
      else {
        goto L55988;}}
      break;
    case 117 : {
      arg2_1220X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((0 == (3 & arg2_1220X))) {
        if ((9 == (255 & (SvalS)))) {
          len_1221X = ((arg2_1220X)>>2);
          init_1222X = (((SvalS))>>8);
          if ((len_1221X < 0)) {
            goto L46258;}
          else {
            if ((4194304 < ((((3 + (((len_1221X)<<2))))>>2)))) {
              goto L46258;}
            else {
              len_1223X = ((len_1221X)<<2);
              addr_1224X = s48_allocate_untracedAgc((4 + len_1223X));
              if ((addr_1224X == NULL)) {
                arg0K0 = 1;
                goto L46273;}
              else {
                *((long *) addr_1224X) = (long) ((66 + (((len_1223X)<<8))));
                arg0K0 = (3 + (((long) (addr_1224X + 4))));
                goto L46273;}}}}
        else {
          goto L53815;}}
      else {
        goto L53815;}}
      break;
    case 118 : {
      obj_1225X = SvalS;
      if ((3 == (3 & obj_1225X))) {
        if ((16 == (31 & ((((*((long *) ((((char *) (-3 + obj_1225X))) + -4))))>>2))))) {
          x_1226X = ((long)(((unsigned long)(*((long *) ((((char *) (-3 + (SvalS)))) + -4))))>>8)) / 4;
          SvalS = (((x_1226X)<<2));
          Scode_pointerS = ((Scode_pointerS) + 1);
          arg2K0 = (Scode_pointerS);
          goto L31612;}
        else {
          goto L57964;}}
      else {
        goto L57964;}}
      break;
    case 119 : {
      arg2_1227X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((3 == (3 & arg2_1227X))) {
        if ((16 == (31 & ((((*((long *) ((((char *) (-3 + arg2_1227X))) + -4))))>>2))))) {
          if ((0 == (3 & (SvalS)))) {
            index_1228X = (((SvalS))>>2);
            len_1229X = ((long)(((unsigned long)(*((long *) ((((char *) (-3 + arg2_1227X))) + -4))))>>8)) / 4;
            if ((index_1228X < 0)) {
              goto L53880;}
            else {
              if ((index_1228X < len_1229X)) {
                arg0K0 = 0;
                arg0K1 = 0;
                arg0K2 = 0;
                goto L53908;}
              else {
                goto L53880;}}}
          else {
            goto L57438;}}
        else {
          goto L57438;}}
      else {
        goto L57438;}}
      break;
    case 120 : {
      arg2_1230X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg3_1231X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((3 == (3 & arg3_1231X))) {
        if ((16 == (31 & ((((*((long *) ((((char *) (-3 + arg3_1231X))) + -4))))>>2))))) {
          if ((0 == (3 & arg2_1230X))) {
            if ((9 == (255 & (SvalS)))) {
              index_1232X = ((arg2_1230X)>>2);
              Kchar_1233X = (((SvalS))>>8);
              if ((3 == (3 & arg3_1231X))) {
                if ((0 == (128 & (*((long *) ((((char *) (-3 + arg3_1231X))) + -4)))))) {
                  len_1234X = ((long)(((unsigned long)(*((long *) ((((char *) (-3 + arg3_1231X))) + -4))))>>8)) / 4;
                  if ((index_1232X < 0)) {
                    goto L51069;}
                  else {
                    if ((index_1232X < len_1234X)) {
                      arg0K0 = 0;
                      arg0K1 = 0;
                      arg0K2 = Kchar_1233X;
                      goto L51133;}
                    else {
                      goto L51069;}}}
                else {
                  goto L51048;}}
              else {
                goto L51048;}}
            else {
              goto L56118;}}
          else {
            goto L56118;}}
        else {
          goto L56118;}}
      else {
        goto L56118;}}
      break;
    case 121 : {
      arg2_1235X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg3_1236X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg4_1237X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg5_1238X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((3 == (3 & arg5_1238X))) {
        if ((16 == (31 & ((((*((long *) ((((char *) (-3 + arg5_1238X))) + -4))))>>2))))) {
          if ((0 == (3 & arg4_1237X))) {
            if ((3 == (3 & arg3_1236X))) {
              if ((16 == (31 & ((((*((long *) ((((char *) (-3 + arg3_1236X))) + -4))))>>2))))) {
                if ((0 == (3 & (arg2_1235X | (SvalS))))) {
                  from_index_1239X = ((arg4_1237X)>>2);
                  to_index_1240X = ((arg2_1235X)>>2);
                  count_1241X = (((SvalS))>>2);
                  if ((from_index_1239X < 0)) {
                    goto L36022;}
                  else {
                    y_1242X = ((long)(((unsigned long)(*((long *) ((((char *) (-3 + arg5_1238X))) + -4))))>>8)) / 4;
                    if ((y_1242X < (from_index_1239X + count_1241X))) {
                      goto L36022;}
                    else {
                      if ((to_index_1240X < 0)) {
                        goto L36022;}
                      else {
                        y_1243X = ((long)(((unsigned long)(*((long *) ((((char *) (-3 + arg3_1236X))) + -4))))>>8)) / 4;
                        if ((y_1243X < (to_index_1240X + count_1241X))) {
                          goto L36022;}
                        else {
                          if ((3 == (3 & arg3_1236X))) {
                            if ((0 == (128 & (*((long *) ((((char *) (-3 + arg3_1236X))) + -4)))))) {
                              if ((count_1241X < 0)) {
                                goto L36022;}
                              else {
                                memmove((void *)((((char *) (-3 + arg3_1236X))) + (((to_index_1240X)<<2))), (void *)((((char *) (-3 + arg5_1238X))) + (((from_index_1239X)<<2))),(((count_1241X)<<2)));
                                SvalS = 13;
                                Scode_pointerS = ((Scode_pointerS) + 1);
                                arg2K0 = (Scode_pointerS);
                                goto L31612;}}
                            else {
                              goto L36022;}}
                          else {
                            goto L36022;}}}}}}
                else {
                  goto L41169;}}
              else {
                goto L41169;}}
            else {
              goto L41169;}}
          else {
            goto L41169;}}
        else {
          goto L41169;}}
      else {
        goto L41169;}}
      break;
    case 122 : {s48_make_availableAgc(12);
      obj_1244X = SvalS;
      if ((3 == (3 & obj_1244X))) {
        if ((16 == (31 & ((((*((long *) ((((char *) (-3 + obj_1244X))) + -4))))>>2))))) {
          table_1245X = Sthe_symbol_tableS;
          string_1246X = SvalS;
          v_1247X = Haction4940(string_1246X);
          index_1248X = 1023 & v_1247X;
          link_1249X = *((long *) ((((char *) (-3 + table_1245X))) + (((index_1248X)<<2))));
          if ((0 == (3 & link_1249X))) {
            arg0K0 = (3 + (-4 & link_1249X));
            goto L26959;}
          else {
            arg0K0 = link_1249X;
            goto L26959;}}
        else {
          goto L42345;}}
      else {
        goto L42345;}}
      break;
    case 123 : {
      obj_1250X = SvalS;
      if ((3 == (3 & obj_1250X))) {
        if ((4 == (31 & ((((*((long *) ((((char *) (-3 + obj_1250X))) + -4))))>>2))))) {
          x_1251X = SvalS;
          descriptor_1252X = *((long *) ((((char *) (-3 + x_1251X))) + 4));
          if ((17 == (255 & descriptor_1252X))) {
            if ((529 == (*((long *) ((((char *) (-3 + x_1251X))) + 4))))) {
              arg0K0 = 5;
              goto L55682;}
            else {
              arg0K0 = 1;
              goto L55682;}}
          else {
            arg0K0 = 5;
            goto L55682;}}
        else {
          goto L55663;}}
      else {
        goto L55663;}}
      break;
    case 124 : {
      arg2_1253X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((3 == (3 & arg2_1253X))) {
        if ((4 == (31 & ((((*((long *) ((((char *) (-3 + arg2_1253X))) + -4))))>>2))))) {
          x_1254X = SvalS;
          if ((1 == x_1254X)) {
            goto L50671;}
          else {
            if ((5 == x_1254X)) {
              goto L50671;}
            else {
              goto L50678;}}}
        else {
          goto L50678;}}
      else {
        goto L50678;}}
      break;
    case 125 : {
      x_1255X = SvalS;
      if ((3 == (3 & x_1255X))) {
        if ((0 == (128 & (*((long *) ((((char *) (-3 + x_1255X))) + -4)))))) {
          arg0K0 = 1;
          goto L60700;}
        else {
          arg0K0 = 5;
          goto L60700;}}
      else {
        arg0K0 = 5;
        goto L60700;}}
      break;
    case 126 : {
      x_1256X = SvalS;
      if ((3 == (3 & x_1256X))) {
        if ((0 == (128 & (*((long *) ((((char *) (-3 + x_1256X))) + -4)))))) {
          *((long *) ((((char *) (-3 + x_1256X))) + -4)) = (long) ((128 | (*((long *) ((((char *) (-3 + x_1256X))) + -4)))));
          goto L53972;}
        else {
          goto L53972;}}
      else {
        goto L53972;}}
      break;
    case 127 : {s48_make_availableAgc(32);
      arg2_1257X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg3_1258X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg4_1259X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((0 == (3 & arg2_1257X))) {
        mode_1260X = ((arg2_1257X)>>2);
        close_silentlyP_1261X = SvalS;
        if ((1 == mode_1260X)) {
          goto L46697;}
        else {
          if ((2 == mode_1260X)) {
            goto L46697;}
          else {
            if ((3 == mode_1260X)) {
              goto L46697;}
            else {
              if ((4 == mode_1260X)) {
                goto L46697;}
              else {push_exception_setupB(5, 1);
                SstackS = ((SstackS) + -4);
                *((long *) (SstackS)) = (long) (arg4_1259X);
                SstackS = ((SstackS) + -4);
                *((long *) (SstackS)) = (long) ((((mode_1260X)<<2)));
                arg0K0 = 2;
                goto L29309;}}}}}
      else {push_exception_setupB(5, 1);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (arg4_1259X);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (arg3_1258X);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (arg2_1257X);
        x_1262X = SvalS;
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (x_1262X);
        arg0K0 = 4;
        goto L29309;}}
      break;
    case 128 : {s48_make_availableAgc(2052);
      obj_1263X = SvalS;
      if ((3 == (3 & obj_1263X))) {
        if ((6 == (31 & ((((*((long *) ((((char *) (-3 + obj_1263X))) + -4))))>>2))))) {
          channel_1264X = SvalS;
          if ((0 == (*((long *) (((char *) (-3 + channel_1264X))))))) {push_exception_setupB(5, 1);
            SstackS = ((SstackS) + -4);
            *((long *) (SstackS)) = (long) (channel_1264X);
            arg0K0 = 1;
            goto L29309;}
          else {
            status_1265X = close_channelB(channel_1264X);
            if ((status_1265X == NO_ERRORS)) {
              SvalS = 13;
              Scode_pointerS = ((Scode_pointerS) + 1);
              arg2K0 = (Scode_pointerS);
              goto L31612;}
            else {push_exception_setupB(24, 1);
              SstackS = ((SstackS) + -4);
              *((long *) (SstackS)) = (long) (channel_1264X);
              merged_arg0K0 = status_1265X;
              merged_arg0K1 = 0;
              get_error_string_return_tag = 0;
              goto get_error_string;
             get_error_string_return_0:
              x_1266X = get_error_string0_return_value;
              SstackS = ((SstackS) + -4);
              *((long *) (SstackS)) = (long) (x_1266X);
              arg0K0 = 2;
              goto L29309;}}}
        else {
          goto L60719;}}
      else {
        goto L60719;}}
      break;
    case 129 : {s48_make_availableAgc(8);
      arg2_1267X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg3_1268X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg4_1269X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg5_1270X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((3 == (3 & arg5_1270X))) {
        if ((6 == (31 & ((((*((long *) ((((char *) (-3 + arg5_1270X))) + -4))))>>2))))) {
          if ((0 == (3 & (arg3_1268X | arg2_1267X)))) {
            x_1271X = SvalS;
            if ((1 == x_1271X)) {
              goto L54172;}
            else {
              if ((5 == x_1271X)) {
                goto L54172;}
              else {
                goto L54183;}}}
          else {
            goto L54183;}}
        else {
          goto L54183;}}
      else {
        goto L54183;}}
      break;
    case 130 : {s48_make_availableAgc(8);
      arg2_1272X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg3_1273X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg4_1274X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((3 == (3 & arg4_1274X))) {
        if ((6 == (31 & ((((*((long *) ((((char *) (-3 + arg4_1274X))) + -4))))>>2))))) {
          if ((0 == (3 & (arg2_1272X | (SvalS))))) {
            start_1275X = ((arg2_1272X)>>2);
            count_1276X = (((SvalS))>>2);
            v_1277X = 8 == (*((long *) (((char *) (-3 + arg4_1274X)))));
            if (v_1277X) {
              if ((3 == (3 & arg3_1273X))) {
                if ((17 == (31 & ((((*((long *) ((((char *) (-3 + arg3_1273X))) + -4))))>>2))))) {
                  if ((((long)(((unsigned long)(*((long *) ((((char *) (-3 + arg3_1273X))) + -4))))>>8)) < (start_1275X + count_1276X))) {
                    goto L47307;}
                  else {
                    got_1278X = ps_write_fd(((((*((long *) ((((char *) (-3 + arg4_1274X))) + 8))))>>2)), ((((char *) (-3 + arg3_1273X))) + start_1275X), count_1276X, &pendingP_1279X, &status_1280X);
                    if ((status_1280X == NO_ERRORS)) {
                      if (pendingP_1279X) {
                        addr_1281X = (((char *) (-3 + arg4_1274X))) + 20;S48_WRITE_BARRIER(arg4_1274X, addr_1281X, 5);
                        *((long *) addr_1281X) = (long) (5);
                        arg0K0 = 1;
                        goto L47306;}
                      else {
                        arg0K0 = (((got_1278X)<<2));
                        goto L47306;}}
                    else {
                      addr_1282X = s48_allocate_small(8);
                      *((long *) addr_1282X) = (long) (1046);
                      x_1283X = 3 + (((long) (addr_1282X + 4)));
                      *((long *) (((char *) (-3 + x_1283X)))) = (long) ((((status_1280X)<<2)));
                      arg0K0 = x_1283X;
                      goto L47306;}}}
                else {
                  goto L47307;}}
              else {
                goto L47307;}}
            else {
              goto L47307;}}
          else {
            goto L54386;}}
        else {
          goto L54386;}}
      else {
        goto L54386;}}
      break;
    case 131 : {
      if ((0 == (3 & (SvalS)))) {
        param_1284X = (((SvalS))>>2);
        if ((0 == param_1284X)) {
          x_1285X = ps_io_buffer_size();
          SvalS = (((x_1285X)<<2));
          Scode_pointerS = ((Scode_pointerS) + 1);
          arg2K0 = (Scode_pointerS);
          goto L31612;}
        else {
          if ((1 == param_1284X)) {
            x_1286X = ps_io_crlf_p();
            if (x_1286X) {
              arg0K0 = 5;
              goto L57164;}
            else {
              arg0K0 = 1;
              goto L57164;}}
          else {push_exception_setupB(17, 1);
            SstackS = ((SstackS) + -4);
            *((long *) (SstackS)) = (long) ((((param_1284X)<<2)));
            arg0K0 = 1;
            goto L29309;}}}
      else {push_exception_setupB(5, 1);
        x_1287X = SvalS;
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (x_1287X);
        arg0K0 = 1;
        goto L29309;}}
      break;
    case 132 : {s48_make_availableAgc(2052);
      obj_1288X = SvalS;
      if ((3 == (3 & obj_1288X))) {
        if ((6 == (31 & ((((*((long *) ((((char *) (-3 + obj_1288X))) + -4))))>>2))))) {
          channel_1289X = SvalS;
          if ((0 == (*((long *) (((char *) (-3 + channel_1289X))))))) {push_exception_setupB(5, 1);
            SstackS = ((SstackS) + -4);
            *((long *) (SstackS)) = (long) (channel_1289X);
            arg0K0 = 1;
            goto L29309;}
          else {
            readyP_1290X = ps_check_fd(((((*((long *) ((((char *) (-3 + channel_1289X))) + 8))))>>2)), (4 == (*((long *) (((char *) (-3 + channel_1289X)))))), &status_1291X);
            if ((status_1291X == NO_ERRORS)) {
              if (readyP_1290X) {
                arg0K0 = 5;
                goto L50262;}
              else {
                arg0K0 = 1;
                goto L50262;}}
            else {push_exception_setupB(24, 1);
              SstackS = ((SstackS) + -4);
              *((long *) (SstackS)) = (long) (channel_1289X);
              merged_arg0K0 = status_1291X;
              merged_arg0K1 = 0;
              get_error_string_return_tag = 1;
              goto get_error_string;
             get_error_string_return_1:
              x_1292X = get_error_string0_return_value;
              SstackS = ((SstackS) + -4);
              *((long *) (SstackS)) = (long) (x_1292X);
              arg0K0 = 2;
              goto L29309;}}}
        else {
          goto L60754;}}
      else {
        goto L60754;}}
      break;
    case 133 : {
      obj_1293X = SvalS;
      if ((3 == (3 & obj_1293X))) {
        if ((6 == (31 & ((((*((long *) ((((char *) (-3 + obj_1293X))) + -4))))>>2))))) {
          channel_1294X = SvalS;
          head_1295X = Spending_channels_headS;
          if ((1 == head_1295X)) {
            addr_1296X = (((char *) (-3 + channel_1294X))) + 20;S48_WRITE_BARRIER(channel_1294X, addr_1296X, 1);
            *((long *) addr_1296X) = (long) (1);
            n_1297X = ps_abort_fd_op(((((*((long *) ((((char *) (-3 + channel_1294X))) + 8))))>>2)));
            arg0K0 = (((n_1297X)<<2));
            goto L54534;}
          else {
            if ((channel_1294X == head_1295X)) {
              channel_1298X = Spending_channels_headS;
              next_1299X = *((long *) ((((char *) (-3 + channel_1298X))) + 16));
              Spending_channels_headS = next_1299X;
              addr_1300X = (((char *) (-3 + channel_1298X))) + 16;S48_WRITE_BARRIER(channel_1298X, addr_1300X, 1);
              *((long *) addr_1300X) = (long) (1);
              if ((1 == next_1299X)) {
                Spending_channels_tailS = 1;
                goto L14931;}
              else {
                goto L14931;}}
            else {
              arg0K0 = (*((long *) ((((char *) (-3 + head_1295X))) + 16)));
              arg0K1 = head_1295X;
              goto L14949;}}}
        else {
          goto L54517;}}
      else {
        goto L54517;}}
      break;
    case 134 : {s48_make_availableAgc(((((3 * (Snumber_of_channelsS)))<<2)));
      arg0K0 = (-1 + (Snumber_of_channelsS));
      arg0K1 = 25;
      goto L21533;}
      break;
    case 135 : {
      SvalS = (*((long *) ((((char *) (-3 + (Scurrent_threadS)))) + 12)));
      Scode_pointerS = ((Scode_pointerS) + 1);
      arg2K0 = (Scode_pointerS);
      goto L31612;}
      break;
    case 136 : {
      proposal_1301X = SvalS;
      if ((1 == proposal_1301X)) {
        goto L47528;}
      else {
        if ((3 == (3 & proposal_1301X))) {
          if ((2 == (31 & ((((*((long *) ((((char *) (-3 + proposal_1301X))) + -4))))>>2))))) {
            if ((4 == ((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + proposal_1301X))) + -4))))>>8))))>>2)))) {
              if ((1 == (*((long *) (((char *) (-3 + proposal_1301X))))))) {
                goto L47528;}
              else {
                goto L47559;}}
            else {
              goto L47559;}}
          else {
            goto L47559;}}
        else {
          goto L47559;}}}
      break;
    case 137 : {
      proposal_1302X = *((long *) ((((char *) (-3 + (Scurrent_threadS)))) + 12));
      if ((1 == proposal_1302X)) {push_exception_setupB(26, 1);
        arg0K0 = 0;
        goto L29309;}
      else {GET_PROPOSAL_LOCK();
        log_1303X = *((long *) ((((char *) (-3 + proposal_1302X))) + 4));
        arg0K0 = 0;
        goto L13257;}}
      break;
    case 138 : {
      stob_1304X = SvalS;
      type_1305X = *((unsigned char *) ((Scode_pointerS) + 1));
      offset_1306X = *((unsigned char *) ((Scode_pointerS) + 2));
      if ((3 == (3 & stob_1304X))) {
        if (((31 & ((((*((long *) ((((char *) (-3 + stob_1304X))) + -4))))>>2))) == type_1305X)) {
          x_1307X = *((long *) ((((char *) (-3 + (Scurrent_threadS)))) + 12));
          if ((1 == x_1307X)) {
            arg0K0 = (*((long *) ((((char *) (-3 + stob_1304X))) + (((offset_1306X)<<2)))));
            goto L36277;}
          else {
            merged_arg0K0 = stob_1304X;
            merged_arg0K1 = (((offset_1306X)<<2));
            proposal_d_read_return_tag = 1;
            goto proposal_d_read;
           proposal_d_read_return_1:
            v_1308X = proposal_d_read0_return_value;
            arg0K0 = v_1308X;
            goto L36277;}}
        else {
          goto L36278;}}
      else {
        goto L36278;}}
      break;
    case 139 : {
      arg2_1309X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg3_1310X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg4_1311X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg5_1312X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((3 == (3 & arg5_1312X))) {
        if ((17 == (31 & ((((*((long *) ((((char *) (-3 + arg5_1312X))) + -4))))>>2))))) {
          if ((0 == (3 & arg4_1311X))) {
            if ((3 == (3 & arg3_1310X))) {
              if ((17 == (31 & ((((*((long *) ((((char *) (-3 + arg3_1310X))) + -4))))>>2))))) {
                if ((0 == (3 & (arg2_1309X | (SvalS))))) {
                  from_index_1313X = ((arg4_1311X)>>2);
                  to_index_1314X = ((arg2_1309X)>>2);
                  count_1315X = (((SvalS))>>2);
                  v_1316X = *((unsigned char *) ((Scode_pointerS) + 1));
                  if ((from_index_1313X < 0)) {
                    goto L36371;}
                  else {
                    if ((((long)(((unsigned long)(*((long *) ((((char *) (-3 + arg5_1312X))) + -4))))>>8)) < (from_index_1313X + count_1315X))) {
                      goto L36371;}
                    else {
                      if ((to_index_1314X < 0)) {
                        goto L36371;}
                      else {
                        if ((((long)(((unsigned long)(*((long *) ((((char *) (-3 + arg3_1310X))) + -4))))>>8)) < (to_index_1314X + count_1315X))) {
                          goto L36371;}
                        else {
                          if ((3 == (3 & arg3_1310X))) {
                            if ((0 == (128 & (*((long *) ((((char *) (-3 + arg3_1310X))) + -4)))))) {
                              if ((count_1315X < 0)) {
                                goto L36371;}
                              else {
                                if ((0 == v_1316X)) {
                                  goto L36431;}
                                else {
                                  if ((1 == (*((long *) ((((char *) (-3 + (Scurrent_threadS)))) + 12))))) {
                                    goto L36431;}
                                  else {
                                    arg0K0 = 4096;
                                    arg0K1 = (*((long *) ((((char *) (-3 + (*((long *) ((((char *) (-3 + (Scurrent_threadS)))) + 12)))))) + 12)));
                                    goto L36528;}}}}
                            else {
                              goto L36371;}}
                          else {
                            goto L36371;}}}}}}
                else {
                  goto L41415;}}
              else {
                goto L41415;}}
            else {
              goto L41415;}}
          else {
            goto L41415;}}
        else {
          goto L41415;}}
      else {
        goto L41415;}}
      break;
    case 140 : {
      arg2_1317X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((3 == (3 & arg2_1317X))) {
        if ((17 == (31 & ((((*((long *) ((((char *) (-3 + arg2_1317X))) + -4))))>>2))))) {
          if ((0 == (3 & (SvalS)))) {
            index_1318X = (((SvalS))>>2);
            len_1319X = (long)(((unsigned long)(*((long *) ((((char *) (-3 + arg2_1317X))) + -4))))>>8);
            if ((index_1318X < 0)) {
              goto L36797;}
            else {
              if ((index_1318X < len_1319X)) {
                x_1320X = *((long *) ((((char *) (-3 + (Scurrent_threadS)))) + 12));
                if ((1 == x_1320X)) {
                  arg0K0 = ((((*((unsigned char *) ((((char *) (-3 + arg2_1317X))) + index_1318X))))<<2));
                  goto L36796;}
                else {
                  index_1321X = ((index_1318X)<<2);
                  log_1322X = *((long *) ((((char *) (-3 + (*((long *) ((((char *) (-3 + (Scurrent_threadS)))) + 12)))))) + 8));
                  arg0K0 = 0;
                  goto L19676;}}
              else {
                goto L36797;}}}
          else {
            goto L41611;}}
        else {
          goto L41611;}}
      else {
        goto L41611;}}
      break;
    case 141 : {
      arg2_1323X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg3_1324X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((3 == (3 & arg3_1324X))) {
        if ((17 == (31 & ((((*((long *) ((((char *) (-3 + arg3_1324X))) + -4))))>>2))))) {
          if ((0 == (3 & arg2_1323X))) {
            index_1325X = ((arg2_1323X)>>2);
            byte_1326X = SvalS;
            if ((3 == (3 & arg3_1324X))) {
              if ((0 == (128 & (*((long *) ((((char *) (-3 + arg3_1324X))) + -4)))))) {
                if ((0 == (3 & byte_1326X))) {
                  len_1327X = (long)(((unsigned long)(*((long *) ((((char *) (-3 + arg3_1324X))) + -4))))>>8);
                  if ((index_1325X < 0)) {
                    goto L36923;}
                  else {
                    if ((index_1325X < len_1327X)) {
                      x_1328X = *((long *) ((((char *) (-3 + (Scurrent_threadS)))) + 12));
                      if ((1 == x_1328X)) {
                        *((unsigned char *) ((((char *) (-3 + arg3_1324X))) + index_1325X)) = (unsigned char) ((((byte_1326X)>>2)));
                        goto L36922;}
                      else {
                        index_1329X = ((index_1325X)<<2);
                        log_1330X = *((long *) ((((char *) (-3 + (*((long *) ((((char *) (-3 + (Scurrent_threadS)))) + 12)))))) + 8));
                        arg0K0 = 0;
                        goto L19852;}}
                    else {
                      goto L36923;}}}
                else {
                  goto L36888;}}
              else {
                goto L36888;}}
            else {
              goto L36888;}}
          else {
            goto L41716;}}
        else {
          goto L41716;}}
      else {
        goto L41716;}}
      break;
    case 142 : {
      SvalS = 529;
      Scode_pointerS = ((Scode_pointerS) + 1);
      arg2K0 = (Scode_pointerS);
      goto L31612;}
      break;
    case 143 : {
      SvalS = 13;
      Scode_pointerS = ((Scode_pointerS) + 1);
      arg2K0 = (Scode_pointerS);
      goto L31612;}
      break;
    case 144 : {
      x_1331X = SvalS;push_exception_setupB(15, 1);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (x_1331X);
      arg0K0 = 1;
      goto L29309;}
      break;
    case 145 : {
      SvalS = 1;
      Scode_pointerS = ((Scode_pointerS) + 1);
      arg2K0 = (Scode_pointerS);
      goto L31612;}
      break;
    case 146 : {
      SvalS = 21;
      Scode_pointerS = ((Scode_pointerS) + 1);
      arg2K0 = (Scode_pointerS);
      goto L31612;}
      break;
    case 147 : {s48_make_availableAgc(2052);
      arg2_1332X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg3_1333X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg4_1334X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((3 == (3 & arg4_1334X))) {
        if ((17 == (31 & ((((*((long *) ((((char *) (-3 + arg4_1334X))) + -4))))>>2))))) {
          if ((3 == (3 & arg2_1332X))) {
            if ((17 == (31 & ((((*((long *) ((((char *) (-3 + arg2_1332X))) + -4))))>>2))))) {
              obj_1335X = SvalS;
              if ((3 == (3 & obj_1335X))) {
                if ((2 == (31 & ((((*((long *) ((((char *) (-3 + obj_1335X))) + -4))))>>2))))) {
                  undumpables_1336X = SvalS;
                  port_1337X = ps_open_output_file((((char *)(((char *) (-3 + arg4_1334X))))), &status_1338X);
                  if ((status_1338X == NO_ERRORS)) {
                    status_1339X = ps_write_string((((char *)(((char *) (-3 + arg2_1332X))))), port_1337X);
                    if ((status_1339X == NO_ERRORS)) {
                      status_1340X = s48_write_image(arg3_1333X, undumpables_1336X, port_1337X);
                      if ((status_1340X == NO_ERRORS)) {
                        status_1341X = ps_close(port_1337X);
                        if ((status_1341X == NO_ERRORS)) {
                          SvalS = 13;
                          Scode_pointerS = ((Scode_pointerS) + 1);
                          arg2K0 = (Scode_pointerS);
                          goto L31612;}
                        else {
                          arg0K0 = 24;
                          arg0K1 = status_1341X;
                          goto L51307;}}
                      else {
                        status_1342X = ps_close(port_1337X);
                        if ((status_1342X == NO_ERRORS)) {
                          arg0K0 = 24;
                          arg0K1 = status_1340X;
                          goto L51307;}
                        else {
                          ps_write_string("Unable to close image file", (stderr));
                          { long ignoreXX;
                          PS_WRITE_CHAR(10, (stderr), ignoreXX) }
                          arg0K0 = 24;
                          arg0K1 = status_1340X;
                          goto L51307;}}}
                    else {
                      status_1343X = ps_close(port_1337X);
                      if ((status_1343X == NO_ERRORS)) {
                        arg0K0 = 24;
                        arg0K1 = status_1339X;
                        goto L51307;}
                      else {
                        ps_write_string("Unable to close image file", (stderr));
                        { long ignoreXX;
                        PS_WRITE_CHAR(10, (stderr), ignoreXX) }
                        arg0K0 = 24;
                        arg0K1 = status_1339X;
                        goto L51307;}}}
                  else {
                    arg0K0 = 10;
                    arg0K1 = status_1338X;
                    goto L51307;}}
                else {
                  goto L56319;}}
              else {
                goto L56319;}}
            else {
              goto L56319;}}
          else {
            goto L56319;}}
        else {
          goto L56319;}}
      else {
        goto L56319;}}
      break;
    case 148 : {
      SvalS = 13;s48_collect();
      Scode_pointerS = ((Scode_pointerS) + 1);
      arg2K0 = (Scode_pointerS);
      goto L31612;}
      break;
    case 149 : {
      obj_1344X = SvalS;
      if ((3 == (3 & obj_1344X))) {
        if ((16 == (31 & ((((*((long *) ((((char *) (-3 + obj_1344X))) + -4))))>>2))))) {
          x_1345X = Haction4940((SvalS));
          SvalS = (((x_1345X)<<2));
          Scode_pointerS = ((Scode_pointerS) + 1);
          arg2K0 = (Scode_pointerS);
          goto L31612;}
        else {
          goto L57032;}}
      else {
        goto L57032;}}
      break;
    case 150 : {s48_make_availableAgc(24);
      arg2_1346X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      proc_1347X = SvalS;
      if ((3 == (3 & arg2_1346X))) {
        if ((3 == (3 & proc_1347X))) {
          if ((3 == (31 & ((((*((long *) ((((char *) (-3 + proc_1347X))) + -4))))>>2))))) {GET_PROPOSAL_LOCK();
            addr_1348X = s48_allocate_small(12);
            *((long *) addr_1348X) = (long) (2050);
            x_1349X = 3 + (((long) (addr_1348X + 4)));
            *((long *) (((char *) (-3 + x_1349X)))) = (long) (arg2_1346X);
            *((long *) ((((char *) (-3 + x_1349X))) + 4)) = (long) (proc_1347X);
            b_1350X = SHARED_REF((Sfinalizer_alistS));
            addr_1351X = s48_allocate_small(12);
            *((long *) addr_1351X) = (long) (2050);
            x_1352X = 3 + (((long) (addr_1351X + 4)));
            *((long *) (((char *) (-3 + x_1352X)))) = (long) (x_1349X);
            *((long *) ((((char *) (-3 + x_1352X))) + 4)) = (long) (b_1350X);SHARED_SETB((Sfinalizer_alistS), x_1352X);RELEASE_PROPOSAL_LOCK();
            SvalS = 13;
            Scode_pointerS = ((Scode_pointerS) + 1);
            arg2K0 = (Scode_pointerS);
            goto L31612;}
          else {
            goto L51582;}}
        else {
          goto L51582;}}
      else {
        goto L51582;}}
      break;
    case 151 : {
      arg2_1353X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((0 == (3 & arg2_1353X))) {
        key_1354X = ((arg2_1353X)>>2);
        other_1355X = SvalS;
        if ((5 == key_1354X)) {
          SvalS = (-4 & other_1355X);
          Scode_pointerS = ((Scode_pointerS) + 1);
          arg2K0 = (Scode_pointerS);
          goto L31612;}
        else {
          if ((0 == key_1354X)) {
            x_1356X = s48_available();
            SvalS = (((x_1356X)<<2));
            Scode_pointerS = ((Scode_pointerS) + 1);
            arg2K0 = (Scode_pointerS);
            goto L31612;}
          else {
            if ((1 == key_1354X)) {
              bytes_1357X = s48_heap_size();
              SvalS = (-4 & (3 + bytes_1357X));
              Scode_pointerS = ((Scode_pointerS) + 1);
              arg2K0 = (Scode_pointerS);
              goto L31612;}
            else {
              if ((2 == key_1354X)) {
                SvalS = (((((Sstack_endS) - (Sstack_beginS)))<<2));
                Scode_pointerS = ((Scode_pointerS) + 1);
                arg2K0 = (Scode_pointerS);
                goto L31612;}
              else {
                if ((3 == key_1354X)) {
                  x_1358X = s48_gc_count();
                  SvalS = (((x_1358X)<<2));
                  Scode_pointerS = ((Scode_pointerS) + 1);
                  arg2K0 = (Scode_pointerS);
                  goto L31612;}
                else {
                  if ((4 == key_1354X)) {push_exception_setupB(14, 1);
                    SstackS = ((SstackS) + -4);
                    *((long *) (SstackS)) = (long) ((((key_1354X)<<2)));
                    SstackS = ((SstackS) + -4);
                    *((long *) (SstackS)) = (long) (other_1355X);
                    arg0K0 = 2;
                    goto L29309;}
                  else {push_exception_setupB(17, 1);
                    SstackS = ((SstackS) + -4);
                    *((long *) (SstackS)) = (long) ((((key_1354X)<<2)));
                    SstackS = ((SstackS) + -4);
                    *((long *) (SstackS)) = (long) (other_1355X);
                    arg0K0 = 2;
                    goto L29309;}}}}}}}
      else {push_exception_setupB(5, 1);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (arg2_1353X);
        x_1359X = SvalS;
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (x_1359X);
        arg0K0 = 2;
        goto L29309;}}
      break;
    case 152 : {
      if ((0 == (3 & (SvalS)))) {
        type_1360X = (((SvalS))>>2);
        arg3K0 = 1;
        goto L54653;}
      else {push_exception_setupB(5, 1);
        x_1361X = SvalS;
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (x_1361X);
        arg0K0 = 1;
        goto L29309;}}
      break;
    case 153 : {
      x_1362X = SvalS;
      arg3K0 = 1;
      arg0K1 = x_1362X;
      goto L60862;}
      break;
    case 154 : {
      SvalS = (Scurrent_threadS);
      Scode_pointerS = ((Scode_pointerS) + 1);
      arg2K0 = (Scode_pointerS);
      goto L31612;}
      break;
    case 155 : {
      Scurrent_threadS = (SvalS);
      SvalS = 13;
      Scode_pointerS = ((Scode_pointerS) + 1);
      arg2K0 = (Scode_pointerS);
      goto L31612;}
      break;
    case 156 : {
      val_1363X = SHARED_REF((Ssession_dataS));
      SvalS = val_1363X;
      Scode_pointerS = ((Scode_pointerS) + 1);
      arg2K0 = (Scode_pointerS);
      goto L31612;}
      break;
    case 157 : {SHARED_SETB((Ssession_dataS), (SvalS));
      SvalS = 13;
      Scode_pointerS = ((Scode_pointerS) + 1);
      arg2K0 = (Scode_pointerS);
      goto L31612;}
      break;
    case 158 : {
      obj_1364X = SvalS;
      if ((3 == (3 & obj_1364X))) {
        if ((2 == (31 & ((((*((long *) ((((char *) (-3 + obj_1364X))) + -4))))>>2))))) {
          if ((((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + (SvalS)))) + -4))))>>8))))>>2)) < 194)) {
            goto L33348;}
          else {
            temp_1365X = SHARED_REF((Sexception_handlersS));SHARED_SETB((Sexception_handlersS), (SvalS));
            SvalS = temp_1365X;
            Scode_pointerS = ((Scode_pointerS) + 1);
            arg2K0 = (Scode_pointerS);
            goto L31612;}}
        else {
          goto L33348;}}
      else {
        goto L33348;}}
      break;
    case 159 : {
      data_1366X = 3 + (((long) (SstackS)));
      SstackS = ((SstackS) + 20);
      code_1367X = *((long *) ((((char *) (-3 + data_1366X))) + 8));
      exception_1368X = *((long *) ((((char *) (-3 + data_1366X))) + 12));
      size_1369X = *((long *) ((((char *) (-3 + data_1366X))) + 16));
      pc_1370X = (((*((long *) ((((char *) (-3 + data_1366X))) + 4))))>>2);
      opcode_1371X = *((unsigned char *) ((((char *) (-3 + code_1367X))) + pc_1370X));
      if ((opcode_1371X < 51)) {
        if ((4 == opcode_1371X)) {
          goto L31694;}
        else {
          Slast_code_calledS = code_1367X;
          Scode_pointerS = ((((char *) (-3 + code_1367X))) + pc_1370X);push_exception_setupB(28, 1);
          SstackS = ((SstackS) + -4);
          *((long *) (SstackS)) = (long) (exception_1368X);
          arg0K0 = 1;
          goto L29309;}}
      else {
        goto L31694;}}
      break;
    case 160 : {
      data_1372X = 3 + (((long) (SstackS)));
      SstackS = ((SstackS) + 20);
      code_1373X = *((long *) ((((char *) (-3 + data_1372X))) + 8));
      exception_1374X = *((long *) ((((char *) (-3 + data_1372X))) + 12));
      opcode_1375X = (((*((long *) ((((char *) (-3 + data_1372X))) + 4))))>>2);
      if ((opcode_1375X < 51)) {
        if ((4 == opcode_1375X)) {
          goto L29570;}
        else {
          Slast_code_calledS = code_1373X;
          Scode_pointerS = (((char *) (-3 + code_1373X)));push_exception_setupB(28, 1);
          SstackS = ((SstackS) + -4);
          *((long *) (SstackS)) = (long) (exception_1374X);
          arg0K0 = 1;
          goto L29309;}}
      else {
        goto L29570;}}
      break;
    case 161 : {
      obj_1376X = SvalS;
      if ((3 == (3 & obj_1376X))) {
        if ((2 == (31 & ((((*((long *) ((((char *) (-3 + obj_1376X))) + -4))))>>2))))) {
          if ((((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + (SvalS)))) + -4))))>>8))))>>2)) < 5)) {
            goto L32253;}
          else {
            temp_1377X = SHARED_REF((Sinterrupt_handlersS));SHARED_SETB((Sinterrupt_handlersS), (SvalS));
            SvalS = temp_1377X;
            Scode_pointerS = ((Scode_pointerS) + 1);
            arg2K0 = (Scode_pointerS);
            goto L31612;}}
        else {
          goto L32253;}}
      else {
        goto L32253;}}
      break;
    case 162 : {
      old_1378X = Senabled_interruptsS;
      p_1379X = SvalS;
      Senabled_interruptsS = (((p_1379X)>>2));
      if ((0 == ((Spending_interruptsS) & (Senabled_interruptsS)))) {
        s48_Sstack_limitS = (Sreal_stack_limitS);
        if ((s48_Spending_eventsPS)) {
          s48_Sstack_limitS = (((char *) -1));
          goto L60910;}
        else {
          goto L60910;}}
      else {
        s48_Sstack_limitS = (((char *) -1));
        goto L60910;}}
      break;
    case 163 : {
      SstackS = ((SstackS) + 4);
      s48_pop_interrupt_state_return_tag = 0;
      goto s48_pop_interrupt_state;
     s48_pop_interrupt_state_return_0:
      pc_1380X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      code_1381X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      Slast_code_calledS = code_1381X;
      Scode_pointerS = ((((char *) (-3 + code_1381X))) + (((pc_1380X)>>2)));
      v_1382X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      SvalS = v_1382X;
      arg2K0 = (Scode_pointerS);
      goto L31612;}
      break;
    case 164 : {
      SstackS = ((SstackS) + 4);
      s48_pop_interrupt_state_return_tag = 1;
      goto s48_pop_interrupt_state;
     s48_pop_interrupt_state_return_1:
      v_1383X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      SvalS = v_1383X;
      p_1384X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      v_1385X = s48_call_native_procedure((SvalS), (((p_1384X)>>2)));
      arg0K0 = v_1385X;
      goto L58572;}
      break;
    case 165 : {
      SstackS = ((SstackS) + 4);
      s48_pop_interrupt_state_return_tag = 2;
      goto s48_pop_interrupt_state;
     s48_pop_interrupt_state_return_2:
      return_address_1386X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      template_1387X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      v_1388X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      SvalS = v_1388X;
      v_1389X = s48_jump_to_native_address(return_address_1386X, template_1387X);
      arg0K0 = v_1389X;
      goto L58572;}
      break;
    case 166 : {
      if ((0 == (3 & (SvalS)))) {
        p_1390X = SvalS;
        Spending_interruptsS = (-2 & (Spending_interruptsS));
        if ((0 == ((Spending_interruptsS) & (Senabled_interruptsS)))) {
          s48_Sstack_limitS = (Sreal_stack_limitS);
          if ((s48_Spending_eventsPS)) {
            s48_Sstack_limitS = (((char *) -1));
            goto L58129;}
          else {
            goto L58129;}}
        else {
          s48_Sstack_limitS = (((char *) -1));
          goto L58129;}}
      else {push_exception_setupB(5, 1);
        x_1391X = SvalS;
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (x_1391X);
        arg0K0 = 1;
        goto L29309;}}
      break;
    case 167 : {
      arg2_1392X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((0 == (3 & arg2_1392X))) {
        x_1393X = SvalS;
        if ((1 == x_1393X)) {
          goto L55867;}
        else {
          if ((5 == x_1393X)) {
            goto L55867;}
          else {
            goto L55872;}}}
      else {
        goto L55872;}}
      break;
    case 168 : {
      p_1394X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      nargs_1395X = ((p_1394X)>>2);
      p_1396X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      rest_list_1397X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((14 < nargs_1395X)) {push_exception_setupB(19, 1);
        x_1398X = *((long *) ((SstackS) + (-4 + (-4 & p_1396X))));
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (x_1398X);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (nargs_1395X);
        arg0K0 = 2;
        goto L29309;}
      else {
        arg0K0 = rest_list_1397X;
        goto L37122;}}
      break;
    case 169 : {s48_make_availableAgc(20);
      arg2_1399X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((3 == (3 & arg2_1399X))) {
        if ((16 == (31 & ((((*((long *) ((((char *) (-3 + arg2_1399X))) + -4))))>>2))))) {
          x_1400X = SvalS;
          if ((1 == x_1400X)) {
            goto L54748;}
          else {
            if ((5 == x_1400X)) {
              goto L54748;}
            else {
              goto L54753;}}}
        else {
          goto L54753;}}
      else {
        goto L54753;}}
      break;
    case 170 : {
      arg2_1401X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((3 == (3 & arg2_1401X))) {
        if ((16 == (31 & ((((*((long *) ((((char *) (-3 + arg2_1401X))) + -4))))>>2))))) {
          x_1402X = SvalS;
          if ((1 == x_1402X)) {
            goto L40582;}
          else {
            if ((5 == x_1402X)) {
              goto L40582;}
            else {
              goto L40587;}}}
        else {
          goto L40587;}}
      else {
        goto L40587;}}
      break;
    case 171 : {
      arg3K0 = 1;
      goto L60970;}
      break;
    case 172 : {
      arg2_1403X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((0 == (3 & arg2_1403X))) {
        option_1404X = ((arg2_1403X)>>2);
        other_1405X = SvalS;
        if ((2 == option_1404X)) {
          x_1406X = CHEAP_TIME();
          SvalS = (((x_1406X)<<2));
          Scode_pointerS = ((Scode_pointerS) + 1);
          arg2K0 = (Scode_pointerS);
          goto L31612;}
        else {
          if ((0 == option_1404X)) {
            seconds_1407X = s48_run_time(&mseconds_1408X);
            arg0K0 = option_1404X;
            arg0K1 = seconds_1407X;
            arg0K2 = mseconds_1408X;
            goto L56966;}
          else {
            if ((1 == option_1404X)) {
              seconds_1409X = s48_real_time(&mseconds_1410X);
              arg0K0 = option_1404X;
              arg0K1 = seconds_1409X;
              arg0K2 = mseconds_1410X;
              goto L56966;}
            else {push_exception_setupB(17, 1);
              SstackS = ((SstackS) + -4);
              *((long *) (SstackS)) = (long) ((((option_1404X)<<2)));
              SstackS = ((SstackS) + -4);
              *((long *) (SstackS)) = (long) (other_1405X);
              arg0K0 = 2;
              goto L29309;}}}}
      else {push_exception_setupB(5, 1);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (arg2_1403X);
        x_1411X = SvalS;
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (x_1411X);
        arg0K0 = 2;
        goto L29309;}}
      break;
    case 173 : {
      if ((0 == (3 & (SvalS)))) {
        key_1412X = (((SvalS))>>2);
        if ((0 == key_1412X)) {
          string_1413X = s48_get_os_string_encoding();
          val_1414X = enter_stringAgc_n(string_1413X, (strlen((char *) string_1413X)));
          SvalS = val_1414X;
          Scode_pointerS = ((Scode_pointerS) + 1);
          arg2K0 = (Scode_pointerS);
          goto L31612;}
        else {push_exception_setupB(17, 1);
          SstackS = ((SstackS) + -4);
          *((long *) (SstackS)) = (long) ((((key_1412X)<<2)));
          arg0K0 = 1;
          goto L29309;}}
      else {push_exception_setupB(5, 1);
        x_1415X = SvalS;
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (x_1415X);
        arg0K0 = 1;
        goto L29309;}}
      break;
    case 174 : {
      arg2_1416X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((0 == (3 & arg2_1416X))) {
        key_1417X = ((arg2_1416X)>>2);
        value_1418X = SvalS;
        status_1419X = s48_extended_vm(key_1417X, value_1418X);
        if ((0 == status_1419X)) {
          SvalS = (s48_Sextension_valueS);
          Scode_pointerS = ((Scode_pointerS) + 1);
          arg2K0 = (Scode_pointerS);
          goto L31612;}
        else {
          if ((1 == status_1419X)) {push_exception_setupB(22, 1);
            SstackS = ((SstackS) + -4);
            *((long *) (SstackS)) = (long) ((((key_1417X)<<2)));
            SstackS = ((SstackS) + -4);
            *((long *) (SstackS)) = (long) (value_1418X);
            arg0K0 = 2;
            goto L29309;}
          else {push_exception_setupB(23, 1);
            SstackS = ((SstackS) + -4);
            *((long *) (SstackS)) = (long) ((((key_1417X)<<2)));
            SstackS = ((SstackS) + -4);
            *((long *) (SstackS)) = (long) (value_1418X);
            arg0K0 = 2;
            goto L29309;}}}
      else {push_exception_setupB(5, 1);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (arg2_1416X);
        x_1420X = SvalS;
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (x_1420X);
        arg0K0 = 2;
        goto L29309;}}
      break;
    case 175 : {
      arg2_1421X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      x_1422X = SvalS;
      Senabled_interruptsS = -1;
      if ((0 == ((Spending_interruptsS) & (Senabled_interruptsS)))) {
        s48_Sstack_limitS = (Sreal_stack_limitS);
        if ((s48_Spending_eventsPS)) {
          s48_Sstack_limitS = (((char *) -1));
          goto L61027;}
        else {
          goto L61027;}}
      else {
        s48_Sstack_limitS = (((char *) -1));
        goto L61027;}}
      break;
    case 176 : {
      arg2_1423X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((3 == (3 & arg2_1423X))) {
        if ((16 == (31 & ((((*((long *) ((((char *) (-3 + arg2_1423X))) + -4))))>>2))))) {
          obj_1424X = SvalS;
          if ((3 == (3 & obj_1424X))) {
            if ((16 == (31 & ((((*((long *) ((((char *) (-3 + obj_1424X))) + -4))))>>2))))) {
              x_1425X = SvalS;
              len_1426X = (long)(((unsigned long)(*((long *) ((((char *) (-3 + arg2_1423X))) + -4))))>>8);
              if ((len_1426X == ((long)(((unsigned long)(*((long *) ((((char *) (-3 + x_1425X))) + -4))))>>8)))) {
                if (((!memcmp((void *)(((char *) (-3 + x_1425X))), (void *)(((char *) (-3 + arg2_1423X))),len_1426X)))) {
                  arg0K0 = 5;
                  goto L49182;}
                else {
                  arg0K0 = 1;
                  goto L49182;}}
              else {
                arg0K0 = 1;
                goto L49182;}}
            else {
              goto L49147;}}
          else {
            goto L49147;}}
        else {
          goto L49147;}}
      else {
        goto L49147;}}
      break;
    case 177 : {s48_make_availableAgc((4 + (-4 & (3 + (-4 & (SvalS))))));
      arg2_1427X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((0 == (3 & (SvalS)))) {
        n_1428X = (((SvalS))>>2);
        if ((3 == (3 & arg2_1427X))) {
          if ((0 == (31 & ((((*((long *) ((((char *) (-3 + arg2_1427X))) + -4))))>>2))))) {
            goto L48383;}
          else {
            goto L48335;}}
        else {
          goto L48335;}}
      else {push_exception_setupB(5, 1);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (arg2_1427X);
        x_1429X = SvalS;
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (x_1429X);
        arg0K0 = 2;
        goto L29309;}}
      break;
    case 178 : {
      arg2_1430X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      list_1431X = SvalS;
      arg0K0 = list_1431X;
      arg0K1 = list_1431X;
      arg3K2 = 1;
      goto L50325;}
      break;
    case 179 : {
      if ((529 == (SvalS))) {push_exception_setupB(0, 1);
        arg0K0 = 0;
        goto L29309;}
      else {
        Scode_pointerS = ((Scode_pointerS) + 1);
        arg2K0 = (Scode_pointerS);
        goto L31612;}}
      break;
    case 180 : {
      arg2_1432X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg3_1433X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((0 == (3 & (SvalS)))) {
        index_1434X = (((SvalS))>>2);
        if ((3 == (3 & arg3_1433X))) {
          if ((9 == (31 & ((((*((long *) ((((char *) (-3 + arg3_1433X))) + -4))))>>2))))) {
            if ((arg2_1432X == (*((long *) (((char *) (-3 + arg3_1433X))))))) {
              len_1435X = (((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + arg3_1433X))) + -4))))>>8))))>>2);
              if ((index_1434X < 0)) {
                goto L37454;}
              else {
                if ((index_1434X < len_1435X)) {
                  v_1436X = *((unsigned char *) ((Scode_pointerS) + 1));
                  if ((0 == v_1436X)) {
                    goto L37444;}
                  else {
                    if ((1 == (*((long *) ((((char *) (-3 + (Scurrent_threadS)))) + 12))))) {
                      goto L37444;}
                    else {
                      merged_arg0K0 = arg3_1433X;
                      merged_arg0K1 = (((index_1434X)<<2));
                      proposal_d_read_return_tag = 2;
                      goto proposal_d_read;
                     proposal_d_read_return_2:
                      v_1437X = proposal_d_read0_return_value;
                      arg0K0 = v_1437X;
                      goto L37453;}}}
                else {
                  goto L37454;}}}
            else {
              goto L37474;}}
          else {
            goto L37474;}}
        else {
          goto L37474;}}
      else {push_exception_setupB(5, 1);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (arg3_1433X);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (arg2_1432X);
        x_1438X = SvalS;
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (x_1438X);
        arg0K0 = 3;
        goto L29309;}}
      break;
    case 181 : {
      arg2_1439X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg3_1440X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg4_1441X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((0 == (3 & arg2_1439X))) {
        index_1442X = ((arg2_1439X)>>2);
        value_1443X = SvalS;
        if ((3 == (3 & arg4_1441X))) {
          if ((9 == (31 & ((((*((long *) ((((char *) (-3 + arg4_1441X))) + -4))))>>2))))) {
            if ((arg3_1440X == (*((long *) (((char *) (-3 + arg4_1441X))))))) {
              if ((3 == (3 & arg4_1441X))) {
                if ((0 == (128 & (*((long *) ((((char *) (-3 + arg4_1441X))) + -4)))))) {
                  len_1444X = (((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + arg4_1441X))) + -4))))>>8))))>>2);
                  if ((index_1442X < 0)) {
                    goto L37712;}
                  else {
                    if ((index_1442X < len_1444X)) {
                      v_1445X = *((unsigned char *) ((Scode_pointerS) + 1));
                      if ((0 == v_1445X)) {
                        goto L37702;}
                      else {
                        if ((1 == (*((long *) ((((char *) (-3 + (Scurrent_threadS)))) + 12))))) {
                          goto L37702;}
                        else {
                          merged_arg0K0 = arg4_1441X;
                          merged_arg0K1 = (((index_1442X)<<2));
                          merged_arg0K2 = value_1443X;
                          proposal_d_write_return_tag = 2;
                          goto proposal_d_write;
                         proposal_d_write_return_2:
                          goto L37711;}}}
                    else {
                      goto L37712;}}}
                else {
                  goto L37734;}}
              else {
                goto L37734;}}
            else {
              goto L37734;}}
          else {
            goto L37734;}}
        else {
          goto L37734;}}
      else {push_exception_setupB(5, 1);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (arg4_1441X);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (arg3_1440X);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (arg2_1439X);
        x_1446X = SvalS;
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (x_1446X);
        arg0K0 = 4;
        goto L29309;}}
      break;
    case 182 : {
      arg2_1447X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg3_1448X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg4_1449X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg5_1450X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((0 == (3 & arg5_1450X))) {
        if ((9 == (255 & arg4_1449X))) {
          if ((3 == (3 & arg3_1448X))) {
            if ((17 == (31 & ((((*((long *) ((((char *) (-3 + arg3_1448X))) + -4))))>>2))))) {
              if ((0 == (3 & (arg2_1447X | (SvalS))))) {
                encoding_1451X = ((arg5_1450X)>>2);
                value_1452X = ((arg4_1449X)>>8);
                start_1453X = ((arg2_1447X)>>2);
                count_1454X = (((SvalS))>>2);
                if ((3 == (3 & arg3_1448X))) {
                  if ((0 == (128 & (*((long *) ((((char *) (-3 + arg3_1448X))) + -4)))))) {
                    if ((start_1453X < 0)) {
                      goto L29928;}
                    else {
                      if ((count_1454X < 0)) {
                        goto L29928;}
                      else {
                        if ((((long)(((unsigned long)(*((long *) ((((char *) (-3 + arg3_1448X))) + -4))))>>8)) < (start_1453X + count_1454X))) {
                          goto L29928;}
                        else {
                          encoding_okP_1455X = encode_scalar_value(encoding_1451X, value_1452X, ((((char *) (-3 + arg3_1448X))) + start_1453X), count_1454X, &okP_1456X, &out_of_spaceP_1457X, &count_1458X);
                          if (encoding_okP_1455X) {
                            if (okP_1456X) {
                              if (out_of_spaceP_1457X) {
                                arg0K0 = 1;
                                goto L29980;}
                              else {
                                arg0K0 = 5;
                                goto L29980;}}
                            else {
                              arg0K0 = 1;
                              goto L29980;}}
                          else {push_exception_setupB(17, 1);
                            SstackS = ((SstackS) + -4);
                            *((long *) (SstackS)) = (long) ((((encoding_1451X)<<2)));
                            arg0K0 = 1;
                            goto L29309;}}}}}
                  else {
                    goto L29928;}}
                else {
                  goto L29928;}}
              else {
                goto L30658;}}
            else {
              goto L30658;}}
          else {
            goto L30658;}}
        else {
          goto L30658;}}
      else {
        goto L30658;}}
      break;
    case 183 : {
      arg2_1459X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg3_1460X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg4_1461X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg5_1462X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((0 == (3 & arg5_1462X))) {
        if ((9 == (255 & arg4_1461X))) {
          if ((3 == (3 & arg3_1460X))) {
            if ((17 == (31 & ((((*((long *) ((((char *) (-3 + arg3_1460X))) + -4))))>>2))))) {
              if ((0 == (3 & (arg2_1459X | (SvalS))))) {
                encoding_1463X = ((arg5_1462X)>>2);
                value_1464X = ((arg4_1461X)>>8);
                start_1465X = ((arg2_1459X)>>2);
                count_1466X = (((SvalS))>>2);
                if ((3 == (3 & arg3_1460X))) {
                  if ((0 == (128 & (*((long *) ((((char *) (-3 + arg3_1460X))) + -4)))))) {
                    if ((start_1465X < 0)) {
                      goto L48538;}
                    else {
                      if ((count_1466X < 0)) {
                        goto L48538;}
                      else {
                        if ((((long)(((unsigned long)(*((long *) ((((char *) (-3 + arg3_1460X))) + -4))))>>8)) < (start_1465X + count_1466X))) {
                          goto L48538;}
                        else {
                          encoding_okP_1467X = encode_scalar_value(encoding_1463X, value_1464X, ((((char *) (-3 + arg3_1460X))) + start_1465X), count_1466X, &okP_1468X, &out_of_spaceP_1469X, &count_1470X);
                          if (encoding_okP_1467X) {
                            SvalS = 13;
                            Scode_pointerS = ((Scode_pointerS) + 1);
                            arg2K0 = (Scode_pointerS);
                            goto L31612;}
                          else {push_exception_setupB(17, 1);
                            SstackS = ((SstackS) + -4);
                            *((long *) (SstackS)) = (long) ((((encoding_1463X)<<2)));
                            arg0K0 = 1;
                            goto L29309;}}}}}
                  else {
                    goto L48538;}}
                else {
                  goto L48538;}}
              else {
                goto L55151;}}
            else {
              goto L55151;}}
          else {
            goto L55151;}}
        else {
          goto L55151;}}
      else {
        goto L55151;}}
      break;
    case 184 : {
      arg2_1471X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg3_1472X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg4_1473X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((0 == (3 & arg4_1473X))) {
        if ((3 == (3 & arg3_1472X))) {
          if ((17 == (31 & ((((*((long *) ((((char *) (-3 + arg3_1472X))) + -4))))>>2))))) {
            if ((0 == (3 & (arg2_1471X | (SvalS))))) {
              encoding_1474X = ((arg4_1473X)>>2);
              start_1475X = ((arg2_1471X)>>2);
              count_1476X = (((SvalS))>>2);
              if ((start_1475X < 0)) {
                goto L30213;}
              else {
                if ((count_1476X < 0)) {
                  goto L30213;}
                else {
                  if ((((long)(((unsigned long)(*((long *) ((((char *) (-3 + arg3_1472X))) + -4))))>>8)) < (start_1475X + count_1476X))) {
                    goto L30213;}
                  else {
                    encoding_okP_1477X = decode_scalar_value(encoding_1474X, ((((char *) (-3 + arg3_1472X))) + start_1475X), count_1476X, &okP_1478X, &incompleteP_1479X, &value_1480X, &count_1481X);
                    if (encoding_okP_1477X) {
                      if (okP_1478X) {
                        if (incompleteP_1479X) {
                          arg0K0 = 1;
                          goto L30279;}
                        else {
                          arg0K0 = (9 + (((value_1480X)<<8)));
                          goto L30279;}}
                      else {
                        arg0K0 = 1;
                        goto L30279;}}
                    else {push_exception_setupB(17, 1);
                      SstackS = ((SstackS) + -4);
                      *((long *) (SstackS)) = (long) ((((encoding_1474X)<<2)));
                      arg0K0 = 1;
                      goto L29309;}}}}}
            else {
              goto L30854;}}
          else {
            goto L30854;}}
        else {
          goto L30854;}}
      else {
        goto L30854;}}
      break;
    case 185 : {
      arg2_1482X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg3_1483X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg4_1484X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((0 == (3 & arg4_1484X))) {
        if ((3 == (3 & arg3_1483X))) {
          if ((17 == (31 & ((((*((long *) ((((char *) (-3 + arg3_1483X))) + -4))))>>2))))) {
            if ((0 == (3 & (arg2_1482X | (SvalS))))) {
              encoding_1485X = ((arg4_1484X)>>2);
              start_1486X = ((arg2_1482X)>>2);
              count_1487X = (((SvalS))>>2);
              if ((start_1486X < 0)) {
                goto L48757;}
              else {
                if ((count_1487X < 0)) {
                  goto L48757;}
                else {
                  if ((((long)(((unsigned long)(*((long *) ((((char *) (-3 + arg3_1483X))) + -4))))>>8)) < (start_1486X + count_1487X))) {
                    goto L48757;}
                  else {
                    encoding_okP_1488X = decode_scalar_value(encoding_1485X, ((((char *) (-3 + arg3_1483X))) + start_1486X), count_1487X, &okP_1489X, &incompleteP_1490X, &value_1491X, &count_1492X);
                    if (encoding_okP_1488X) {
                      SvalS = 13;
                      Scode_pointerS = ((Scode_pointerS) + 1);
                      arg2K0 = (Scode_pointerS);
                      goto L31612;}
                    else {push_exception_setupB(17, 1);
                      SstackS = ((SstackS) + -4);
                      *((long *) (SstackS)) = (long) ((((encoding_1485X)<<2)));
                      arg0K0 = 1;
                      goto L29309;}}}}}
            else {
              goto L55347;}}
          else {
            goto L55347;}}
        else {
          goto L55347;}}
      else {
        goto L55347;}}
      break;
    case 186 : {
      v_1493X = *((unsigned char *) ((Scode_pointerS) + 1));
      if ((0 == v_1493X)) {
        arg0K0 = (SvalS);
        goto L37991;}
      else {
        merged_arg0K0 = 0;
        get_current_port_return_tag = 0;
        goto get_current_port;
       get_current_port_return_0:
        v_1494X = get_current_port0_return_value;
        arg0K0 = v_1494X;
        goto L37991;}}
      break;
    case 187 : {
      v_1495X = *((unsigned char *) ((Scode_pointerS) + 1));
      if ((0 == v_1495X)) {
        arg0K0 = (SvalS);
        goto L38193;}
      else {
        merged_arg0K0 = 0;
        get_current_port_return_tag = 1;
        goto get_current_port;
       get_current_port_return_1:
        v_1496X = get_current_port0_return_value;
        arg0K0 = v_1496X;
        goto L38193;}}
      break;
    case 188 : {
      v_1497X = *((unsigned char *) ((Scode_pointerS) + 1));
      if ((0 == v_1497X)) {
        v_1498X = *((long *) (SstackS));
        SstackS = ((SstackS) + 4);
        arg0K0 = v_1498X;
        arg0K1 = (SvalS);
        goto L38388;}
      else {
        merged_arg0K0 = 4;
        get_current_port_return_tag = 2;
        goto get_current_port;
       get_current_port_return_2:
        v_1499X = get_current_port0_return_value;
        arg0K0 = (SvalS);
        arg0K1 = v_1499X;
        goto L38388;}}
      break;
    case 189 : {
      v_1500X = *((unsigned char *) ((Scode_pointerS) + 1));
      if ((0 == v_1500X)) {
        arg0K0 = (SvalS);
        goto L38657;}
      else {
        merged_arg0K0 = 0;
        get_current_port_return_tag = 3;
        goto get_current_port;
       get_current_port_return_3:
        v_1501X = get_current_port0_return_value;
        arg0K0 = v_1501X;
        goto L38657;}}
      break;
    case 190 : {
      v_1502X = *((unsigned char *) ((Scode_pointerS) + 1));
      if ((0 == v_1502X)) {
        arg0K0 = (SvalS);
        goto L39248;}
      else {
        merged_arg0K0 = 0;
        get_current_port_return_tag = 4;
        goto get_current_port;
       get_current_port_return_4:
        v_1503X = get_current_port0_return_value;
        arg0K0 = v_1503X;
        goto L39248;}}
      break;
    case 191 : {
      v_1504X = *((unsigned char *) ((Scode_pointerS) + 1));
      if ((0 == v_1504X)) {
        v_1505X = *((long *) (SstackS));
        SstackS = ((SstackS) + 4);
        arg0K0 = v_1505X;
        arg0K1 = (SvalS);
        goto L39759;}
      else {
        merged_arg0K0 = 4;
        get_current_port_return_tag = 5;
        goto get_current_port;
       get_current_port_return_5:
        v_1506X = get_current_port0_return_value;
        arg0K0 = (SvalS);
        arg0K1 = v_1506X;
        goto L39759;}}
      break;
    case 192 : {s48_make_availableAgc(2052);
      if ((0 == (3 & (SvalS)))) {
        merged_arg0K0 = ((((SvalS))>>2));
        merged_arg0K1 = 0;
        get_error_string_return_tag = 2;
        goto get_error_string;
       get_error_string_return_2:
        val_1507X = get_error_string0_return_value;
        SvalS = val_1507X;
        Scode_pointerS = ((Scode_pointerS) + 1);
        arg2K0 = (Scode_pointerS);
        goto L31612;}
      else {push_exception_setupB(5, 1);
        x_1508X = SvalS;
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (x_1508X);
        arg0K0 = 1;
        goto L29309;}}
      break;
    case 193 : {
      x_1509X = SvalS;
      out_1510X = stderr;
      arg0K0 = x_1509X;
      goto L50578;}
      break;
  }}
 L28384: {
  i_1511X = arg0K0;
  m_1512X = arg0K1;
  if ((0 == (n_970X & m_1512X))) {
    arg0K0 = (1 + i_1511X);
    arg0K1 = (((m_1512X)<<1));
    goto L28384;}
  else {
    Spending_interruptsS = ((Spending_interruptsS) & (~ m_1512X));
    handlers_1513X = SHARED_REF((Sinterrupt_handlersS));
    if ((i_1511X == 0)) {
      x_1514X = Sinterrupted_templateS;
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (x_1514X);
      Sinterrupted_templateS = 1;
      n_1515X = Senabled_interruptsS;
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) ((((n_1515X)<<2)));
      arg0K0 = 2;
      goto L28341;}
    else {
      if ((i_1511X == 2)) {
        x_1516X = Sfinalize_theseS;
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (x_1516X);
        Sfinalize_theseS = 25;
        n_1517X = Senabled_interruptsS;
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) ((((n_1517X)<<2)));
        arg0K0 = 2;
        goto L28341;}
      else {
        if ((i_1511X == 3)) {
          channel_1518X = Spending_channels_headS;
          next_1519X = *((long *) ((((char *) (-3 + channel_1518X))) + 16));
          Spending_channels_headS = next_1519X;
          addr_1520X = (((char *) (-3 + channel_1518X))) + 16;S48_WRITE_BARRIER(channel_1518X, addr_1520X, 1);
          *((long *) addr_1520X) = (long) (1);
          if ((1 == next_1519X)) {
            Spending_channels_tailS = 1;
            arg0K0 = channel_1518X;
            goto L15148;}
          else {
            arg0K0 = channel_1518X;
            goto L15148;}}
        else {
          if ((i_1511X == 4)) {
            v_1521X = (Sos_signal_ring_startS) == (Sos_signal_ring_endS);
            if (v_1521X) {
              ps_error("This cannot happen: OS signal ring empty", 0);
              goto L15332;}
            else {
              goto L15332;}}
          else {
            n_1522X = Senabled_interruptsS;
            SstackS = ((SstackS) + -4);
            *((long *) (SstackS)) = (long) ((((n_1522X)<<2)));
            arg0K0 = 1;
            goto L28341;}}}}}}
 L58576: {
  tag_1523X = arg0K0;
  if ((tag_1523X == 0)) {
    arg0K0 = (s48_Snative_protocolS);
    arg0K1 = 25;
    arg0K2 = 0;
    goto L28737;}
  else {
    if ((tag_1523X == 1)) {
      stack_arg_count_1524X = s48_Snative_protocolS;
      obj_1525X = SvalS;
      if ((3 == (3 & obj_1525X))) {
        if ((3 == (31 & ((((*((long *) ((((char *) (-3 + obj_1525X))) + -4))))>>2))))) {
          arg0K0 = stack_arg_count_1524X;
          arg0K1 = 25;
          arg0K2 = 0;
          arg0K3 = -1;
          goto L59362;}
        else {
          arg0K0 = 3;
          arg0K1 = stack_arg_count_1524X;
          arg0K2 = 25;
          arg0K3 = 0;
          goto L28999;}}
      else {
        arg0K0 = 3;
        arg0K1 = stack_arg_count_1524X;
        arg0K2 = 25;
        arg0K3 = 0;
        goto L28999;}}
    else {
      if ((tag_1523X == 2)) {
        template_1526X = *((long *) (SstackS));
        SstackS = ((SstackS) + 4);
        return_address_1527X = *((long *) (SstackS));
        SstackS = ((SstackS) + 4);
        pending_interruptP_return_tag = 4;
        goto pending_interruptP;
       pending_interruptP_return_4:
        v_1528X = pending_interruptP0_return_value;
        if (v_1528X) {
          x_1529X = SvalS;
          SstackS = ((SstackS) + -4);
          *((long *) (SstackS)) = (long) (x_1529X);
          SstackS = ((SstackS) + -4);
          *((long *) (SstackS)) = (long) (template_1526X);
          SstackS = ((SstackS) + -4);
          *((long *) (SstackS)) = (long) (return_address_1527X);
          x_1530X = *((long *) ((((char *) (-3 + (Scurrent_threadS)))) + 12));
          SstackS = ((SstackS) + -4);
          *((long *) (SstackS)) = (long) (x_1530X);
          x_1531X = Scurrent_threadS;
          addr_1532X = (((char *) (-3 + x_1531X))) + 12;S48_WRITE_BARRIER(x_1531X, addr_1532X, 1);
          *((long *) addr_1532X) = (long) (1);
          n_1533X = Senabled_interruptsS;
          SstackS = ((SstackS) + -4);
          *((long *) (SstackS)) = (long) ((((n_1533X)<<2)));
          code_1534X = Snative_poll_return_codeS;
          v_1535X = ((((ScontS) - (SstackS)))>>2);
          SstackS = ((SstackS) + -4);
          *((long *) (SstackS)) = (long) ((4 + (((v_1535X)<<2))));
          SstackS = ((SstackS) + -4);
          *((long *) (SstackS)) = (long) ((((long) ((((char *) (-3 + code_1534X))) + 13))));
          ScontS = (SstackS);
          goto L28331;}
        else {
          v_1536X = s48_jump_to_native_address(return_address_1527X, template_1526X);
          arg0K0 = v_1536X;
          goto L58576;}}
      else {
        if ((tag_1523X == 3)) {
          arg0K0 = (s48_Snative_protocolS);
          arg0K1 = 25;
          arg0K2 = 0;
          goto L28737;}
        else {
          if ((tag_1523X == 4)) {
            arg2K0 = (Scode_pointerS);
            goto L31612;}
          else {
            if ((tag_1523X == 5)) {
              maybe_cont_1537X = *((long *) (SstackS));
              SstackS = ((SstackS) + 4);
              stack_nargs_1538X = s48_Snative_protocolS;
              list_args_1539X = *((long *) (SstackS));
              SstackS = ((SstackS) + 4);
              merged_arg0K0 = list_args_1539X;
              okay_argument_list_return_tag = 1;
              goto okay_argument_list;
             okay_argument_list_return_1:
              okayP_1540X = okay_argument_list0_return_value;
              length_1541X = okay_argument_list1_return_value;
              if (okayP_1540X) {
                if ((0 == maybe_cont_1537X)) {
                  merged_arg0K0 = stack_nargs_1538X;
                  move_args_above_contB_return_tag = 5;
                  goto move_args_above_contB;
                 move_args_above_contB_return_5:
                  arg0K0 = stack_nargs_1538X;
                  arg0K1 = list_args_1539X;
                  arg0K2 = length_1541X;
                  goto L58313;}
                else {
                  ScontS = ((SstackS) + (((stack_nargs_1538X)<<2)));
                  *((long *) (ScontS)) = (long) ((((long) (((char *) maybe_cont_1537X)))));
                  arg0K0 = stack_nargs_1538X;
                  arg0K1 = list_args_1539X;
                  arg0K2 = length_1541X;
                  goto L58313;}}
              else {
                merged_arg0K0 = list_args_1539X;
                merged_arg0K1 = stack_nargs_1538X;
                pop_args_GlistSAgc_return_tag = 2;
                goto pop_args_GlistSAgc;
               pop_args_GlistSAgc_return_2:
                args_1542X = pop_args_GlistSAgc0_return_value;push_exception_setupB(5, 0);
                x_1543X = SvalS;
                SstackS = ((SstackS) + -4);
                *((long *) (SstackS)) = (long) (x_1543X);
                SstackS = ((SstackS) + -4);
                *((long *) (SstackS)) = (long) (args_1542X);
                arg0K0 = 2;
                goto L29309;}}
            else {
              if ((tag_1523X == 6)) {push_exception_setupB(15, 1);
                x_1544X = SvalS;
                SstackS = ((SstackS) + -4);
                *((long *) (SstackS)) = (long) (x_1544X);
                arg0K0 = 1;
                goto L29309;}
              else {
                ps_error("unexpected native return value", 1, tag_1523X);
                arg0K0 = v_1545X;
                goto L63848;}}}}}}}}
 L32064: {
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L11335: {
  new_env_1546X = arg0K0;
  i_1547X = arg0K1;
  offset_1548X = arg0K2;
  total_count_1549X = arg0K3;
  arg0K0 = (*((unsigned char *) ((Scode_pointerS) + (1 + offset_1548X))));
  arg0K1 = i_1547X;
  arg0K2 = (1 + offset_1548X);
  goto L11341;}
 L21803: {
  count_1550X = arg0K0;
  i_1551X = arg0K1;
  offset_1552X = arg0K2;
  if ((0 == count_1550X)) {
    arg0K0 = new_env_1000X;
    arg0K1 = i_1551X;
    arg0K2 = offset_1552X;
    arg0K3 = total_count_996X;
    goto L11335;}
  else {
    merged_arg0K0 = (*((long *) ((((char *) (-3 + template_1001X))) + ((((*((unsigned char *) ((Scode_pointerS) + (1 + offset_1552X)))))<<2)))));
    merged_arg0K1 = new_env_1000X;
    merged_arg0K2 = 0;
    make_closure_return_tag = 0;
    goto make_closure;
   make_closure_return_0:
    value_1553X = make_closure0_return_value;
    addr_1554X = (((char *) (-3 + new_env_1000X))) + (((i_1551X)<<2));S48_WRITE_BARRIER(new_env_1000X, addr_1554X, value_1553X);
    *((long *) addr_1554X) = (long) (value_1553X);
    arg0K0 = (-1 + count_1550X);
    arg0K1 = (1 + i_1551X);
    arg0K2 = (1 + offset_1552X);
    goto L21803;}}
 L14085: {
  new_env_1555X = arg0K0;
  i_1556X = arg0K1;
  offset_1557X = arg0K2;
  total_count_1558X = arg0K3;
  arg0K0 = (((((*((unsigned char *) ((Scode_pointerS) + (1 + offset_1557X)))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + (2 + offset_1557X)))));
  arg0K1 = i_1556X;
  arg0K2 = (2 + offset_1557X);
  goto L14091;}
 L21864: {
  count_1559X = arg0K0;
  i_1560X = arg0K1;
  offset_1561X = arg0K2;
  if ((0 == count_1559X)) {
    arg0K0 = new_env_1006X;
    arg0K1 = i_1560X;
    arg0K2 = offset_1561X;
    arg0K3 = total_count_1002X;
    goto L14085;}
  else {
    merged_arg0K0 = (*((long *) ((((char *) (-3 + template_1007X))) + ((((((((*((unsigned char *) ((Scode_pointerS) + (1 + offset_1561X)))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + (2 + offset_1561X))))))<<2)))));
    merged_arg0K1 = new_env_1006X;
    merged_arg0K2 = 0;
    make_closure_return_tag = 1;
    goto make_closure;
   make_closure_return_1:
    value_1562X = make_closure0_return_value;
    addr_1563X = (((char *) (-3 + new_env_1006X))) + (((i_1560X)<<2));S48_WRITE_BARRIER(new_env_1006X, addr_1563X, value_1562X);
    *((long *) addr_1563X) = (long) (value_1562X);
    arg0K0 = (-1 + count_1559X);
    arg0K1 = (1 + i_1560X);
    arg0K2 = (2 + offset_1561X);
    goto L21864;}}
 L34245: {
  i_1564X = arg0K0;
  if ((0 == i_1564X)) {
    SvalS = closure_1018X;
    Scode_pointerS = ((Scode_pointerS) + 3);
    arg2K0 = (Scode_pointerS);
    goto L31612;}
  else {
    value_1565X = *((long *) (SstackS));
    SstackS = ((SstackS) + 4);
    *((long *) ((((char *) (-3 + closure_1018X))) + (((i_1564X)<<2)))) = (long) (value_1565X);
    arg0K0 = (-1 + i_1564X);
    goto L34245;}}
 L60137: {
  n_1566X = arg0K0;
  if ((0 == n_1566X)) {
    Scode_pointerS = ((Scode_pointerS) + 3);
    arg2K0 = (Scode_pointerS);
    goto L31612;}
  else {
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (1);
    arg0K0 = (-1 + n_1566X);
    goto L60137;}}
 L33579: {
  move_1567X = arg0K0;
  if ((move_1567X == n_moves_1026X)) {
    value_1568X = *((long *) (SstackS));
    SstackS = ((SstackS) + 4);
    SvalS = value_1568X;
    Scode_pointerS = ((Scode_pointerS) + (2 + (((n_moves_1026X)<<1))));
    arg2K0 = (Scode_pointerS);
    goto L31612;}
  else {
    index_1569X = 1 + (((move_1567X)<<1));
    *((long *) ((SstackS) + ((((*((unsigned char *) ((Scode_pointerS) + (2 + index_1569X)))))<<2)))) = (long) ((*((long *) ((SstackS) + ((((*((unsigned char *) ((Scode_pointerS) + (1 + index_1569X)))))<<2))))));
    arg0K0 = (1 + move_1567X);
    goto L33579;}}
 L33496: {
  move_1570X = arg0K0;
  if ((move_1570X == n_moves_1028X)) {
    value_1571X = *((long *) (SstackS));
    SstackS = ((SstackS) + 4);
    SvalS = value_1571X;
    Scode_pointerS = ((Scode_pointerS) + (3 + (((n_moves_1028X)<<2))));
    arg2K0 = (Scode_pointerS);
    goto L31612;}
  else {
    index_1572X = 2 + (((move_1570X)<<2));
    value_1573X = *((long *) ((SstackS) + ((((((((*((unsigned char *) ((Scode_pointerS) + (1 + index_1572X)))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + (2 + index_1572X))))))<<2))));
    index_1574X = 2 + index_1572X;
    *((long *) ((SstackS) + ((((((((*((unsigned char *) ((Scode_pointerS) + (1 + index_1574X)))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + (2 + index_1574X))))))<<2)))) = (long) (value_1573X);
    arg0K0 = (1 + move_1570X);
    goto L33496;}}
 L60206: {
  value_1575X = arg0K0;
  SvalS = value_1575X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L59289: {
  stack_arg_count_1576X = arg0K0;
  obj_1577X = SvalS;
  if ((3 == (3 & obj_1577X))) {
    if ((3 == (31 & ((((*((long *) ((((char *) (-3 + obj_1577X))) + -4))))>>2))))) {
      template_1578X = *((long *) (((char *) (-3 + (SvalS)))));
      code_1579X = *((long *) (((char *) (-3 + template_1578X))));
      protocol_1580X = *((unsigned char *) ((((char *) (-3 + code_1579X))) + 1));
      if ((protocol_1580X == stack_arg_count_1576X)) {
        arg0K0 = code_1579X;
        arg0K1 = 2;
        arg0K2 = 3;
        arg0K3 = template_1578X;
        goto L28125;}
      else {
        if (((127 & protocol_1580X) == stack_arg_count_1576X)) {
          if (((SstackS) < (s48_Sstack_limitS))) {
            interruptP_1581X = (s48_Sstack_limitS) == (((char *) -1));
            s48_Sstack_limitS = (Sreal_stack_limitS);
            if (((SstackS) < (Sreal_stack_limitS))) {s48_copy_stack_into_heap();
              if (((SstackS) < (Sreal_stack_limitS))) {
                ps_error("VM's stack is too small (how can this happen?)", 0);
                if (interruptP_1581X) {
                  goto L58775;}
                else {
                  goto L58782;}}
              else {
                if (interruptP_1581X) {
                  goto L58775;}
                else {
                  goto L58782;}}}
            else {
              if (interruptP_1581X) {
                goto L58775;}
              else {
                goto L58782;}}}
          else {
            goto L58782;}}
        else {
          arg0K0 = stack_arg_count_1576X;
          arg0K1 = 25;
          arg0K2 = 0;
          arg0K3 = -1;
          goto L59362;}}}
    else {
      arg0K0 = 3;
      arg0K1 = stack_arg_count_1576X;
      arg0K2 = 25;
      arg0K3 = 0;
      goto L28999;}}
  else {
    arg0K0 = 3;
    arg0K1 = stack_arg_count_1576X;
    arg0K2 = 25;
    arg0K3 = 0;
    goto L28999;}}
 L29112: {
  obj_1582X = SvalS;
  if ((3 == (3 & obj_1582X))) {
    if ((3 == (31 & ((((*((long *) ((((char *) (-3 + obj_1582X))) + -4))))>>2))))) {
      arg0K0 = stack_arg_count_1032X;
      arg0K1 = 25;
      arg0K2 = 0;
      arg0K3 = -1;
      goto L59362;}
    else {
      arg0K0 = 3;
      arg0K1 = stack_arg_count_1032X;
      arg0K2 = 25;
      arg0K3 = 0;
      goto L28999;}}
  else {
    arg0K0 = 3;
    arg0K1 = stack_arg_count_1032X;
    arg0K2 = 25;
    arg0K3 = 0;
    goto L28999;}}
 L60232: {
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L58313: {
  stack_arg_count_1583X = arg0K0;
  list_args_1584X = arg0K1;
  list_arg_count_1585X = arg0K2;
  if ((0 == list_arg_count_1585X)) {
    obj_1586X = SvalS;
    if ((3 == (3 & obj_1586X))) {
      if ((3 == (31 & ((((*((long *) ((((char *) (-3 + obj_1586X))) + -4))))>>2))))) {
        arg0K0 = stack_arg_count_1583X;
        arg0K1 = 25;
        arg0K2 = 0;
        arg0K3 = -1;
        goto L59362;}
      else {
        arg0K0 = 3;
        arg0K1 = stack_arg_count_1583X;
        arg0K2 = 25;
        arg0K3 = 0;
        goto L28999;}}
    else {
      arg0K0 = 3;
      arg0K1 = stack_arg_count_1583X;
      arg0K2 = 25;
      arg0K3 = 0;
      goto L28999;}}
  else {
    obj_1587X = SvalS;
    if ((3 == (3 & obj_1587X))) {
      if ((3 == (31 & ((((*((long *) ((((char *) (-3 + obj_1587X))) + -4))))>>2))))) {
        arg0K0 = stack_arg_count_1583X;
        arg0K1 = list_args_1584X;
        arg0K2 = list_arg_count_1585X;
        arg0K3 = -1;
        goto L59362;}
      else {
        arg0K0 = 3;
        arg0K1 = stack_arg_count_1583X;
        arg0K2 = list_args_1584X;
        arg0K3 = list_arg_count_1585X;
        goto L28999;}}
    else {
      arg0K0 = 3;
      arg0K1 = stack_arg_count_1583X;
      arg0K2 = list_args_1584X;
      arg0K3 = list_arg_count_1585X;
      goto L28999;}}}
 L20800: {
  list_args_1588X = arg0K0;
  stack_nargs_1589X = arg0K1;
  merged_arg0K0 = list_args_1588X;
  okay_argument_list_return_tag = 2;
  goto okay_argument_list;
 okay_argument_list_return_2:
  okayP_1590X = okay_argument_list0_return_value;
  list_arg_count_1591X = okay_argument_list1_return_value;
  if (okayP_1590X) {
    arg0K0 = stack_nargs_1589X;
    arg0K1 = list_args_1588X;
    arg0K2 = list_arg_count_1591X;
    goto L58313;}
  else {
    merged_arg0K0 = list_args_1588X;
    merged_arg0K1 = stack_nargs_1589X;
    pop_args_GlistSAgc_return_tag = 3;
    goto pop_args_GlistSAgc;
   pop_args_GlistSAgc_return_3:
    args_1592X = pop_args_GlistSAgc0_return_value;push_exception_setupB(5, 0);
    x_1593X = SvalS;
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (x_1593X);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (args_1592X);
    arg0K0 = 2;
    goto L29309;}}
 L20845: {
  list_1594X = arg0K0;
  follower_1595X = arg0K1;
  if ((25 == list_1594X)) {
    list_args_1596X = *((long *) (((char *) (-3 + (*((long *) ((((char *) (-3 + follower_1595X))) + 4)))))));
    addr_1597X = (((char *) (-3 + follower_1595X))) + 4;S48_WRITE_BARRIER(follower_1595X, addr_1597X, list_args_1596X);
    *((long *) addr_1597X) = (long) (list_args_1596X);
    arg0K0 = rest_list_1047X;
    arg0K1 = (-1 + stack_nargs_1046X);
    goto L20800;}
  else {
    arg0K0 = (*((long *) ((((char *) (-3 + list_1594X))) + 4)));
    arg0K1 = (*((long *) ((((char *) (-3 + follower_1595X))) + 4)));
    goto L20845;}}
 L29070: {
  obj_1598X = SvalS;
  if ((3 == (3 & obj_1598X))) {
    if ((3 == (31 & ((((*((long *) ((((char *) (-3 + obj_1598X))) + -4))))>>2))))) {
      arg0K0 = 0;
      arg0K1 = 25;
      arg0K2 = 0;
      arg0K3 = -1;
      goto L59362;}
    else {
      arg0K0 = 3;
      arg0K1 = 0;
      arg0K2 = 25;
      arg0K3 = 0;
      goto L28999;}}
  else {
    arg0K0 = 3;
    arg0K1 = 0;
    arg0K2 = 25;
    arg0K3 = 0;
    goto L28999;}}
 L29079: {
  SstackS = (Sbottom_of_stackS);
  Sheap_continuationS = cont_1049X;
  ScontS = (Sbottom_of_stackS);
  goto L29070;}
 L58900: {
  code_pointer_1599X = ((char *) (*((long *) (ScontS))));
  protocol_1600X = *((unsigned char *) (code_pointer_1599X + 1));
  if ((1 == protocol_1600X)) {
    goto L58917;}
  else {
    if ((66 == protocol_1600X)) {
      goto L58917;}
    else {
      if ((129 == protocol_1600X)) {
        arg0K0 = 2;
        goto L58702;}
      else {
        if ((194 == protocol_1600X)) {
          arg0K0 = 2;
          goto L58702;}
        else {
          if ((71 == protocol_1600X)) {
            cont_1601X = Sheap_continuationS;
            if ((3 == (3 & cont_1601X))) {
              if ((10 == (31 & ((((*((long *) ((((char *) (-3 + cont_1601X))) + -4))))>>2))))) {
                merged_arg0K0 = cont_1601X;
                merged_arg0K1 = 0;
                copy_continuation_from_heapB_return_tag = 1;
                goto copy_continuation_from_heapB;
               copy_continuation_from_heapB_return_1:
                goto L58900;}
              else {
                arg0K0 = cont_1601X;
                goto L29655;}}
            else {
              arg0K0 = cont_1601X;
              goto L29655;}}
          else {
            if ((70 == protocol_1600X)) {
              offset_1602X = ((((*((unsigned char *) (code_pointer_1599X + 2))))<<8)) + (*((unsigned char *) (code_pointer_1599X + 3)));
              proc_1603X = *((long *) ((ScontS) + 4));
              if ((0 == offset_1602X)) {
                cont_1604X = ScontS;
                pointer_1605X = (((char *) (*((long *) cont_1604X)))) + -2;
                size_1606X = ((((*((unsigned char *) pointer_1605X)))<<8)) + (*((unsigned char *) (pointer_1605X + 1)));
                if ((65535 == size_1606X)) {
                  arg0K0 = ((((*((long *) (cont_1604X + 4))))>>2));
                  goto L59061;}
                else {
                  arg0K0 = size_1606X;
                  goto L59061;}}
              else {
                ScontS = ((ScontS) + 4);
                *((long *) (ScontS)) = (long) ((((long) (code_pointer_1599X + offset_1602X))));
                SstackS = (ScontS);
                goto L58966;}}
            else {
              if ((65 == protocol_1600X)) {
                wants_stack_args_1607X = ((((*((unsigned char *) (code_pointer_1599X + 2))))<<8)) + (*((unsigned char *) (code_pointer_1599X + 3)));
                if ((0 == wants_stack_args_1607X)) {
                  pop_continuationB_return_tag = 0;
                  goto pop_continuationB;
                 pop_continuationB_return_0:s48_make_availableAgc(12);
                  a_1608X = SvalS;
                  addr_1609X = s48_allocate_small(12);
                  *((long *) addr_1609X) = (long) (2050);
                  x_1610X = 3 + (((long) (addr_1609X + 4)));
                  *((long *) (((char *) (-3 + x_1610X)))) = (long) (a_1608X);
                  *((long *) ((((char *) (-3 + x_1610X))) + 4)) = (long) (25);
                  SstackS = ((SstackS) + -4);
                  *((long *) (SstackS)) = (long) (x_1610X);
                  Scode_pointerS = ((Scode_pointerS) + 4);
                  arg2K0 = (Scode_pointerS);
                  goto L31612;}
                else {
                  if ((1 == wants_stack_args_1607X)) {
                    pop_continuationB_return_tag = 1;
                    goto pop_continuationB;
                   pop_continuationB_return_1:
                    x_1611X = SvalS;
                    SstackS = ((SstackS) + -4);
                    *((long *) (SstackS)) = (long) (x_1611X);
                    SstackS = ((SstackS) + -4);
                    *((long *) (SstackS)) = (long) (25);
                    Scode_pointerS = ((Scode_pointerS) + 4);
                    arg2K0 = (Scode_pointerS);
                    goto L31612;}
                  else {
                    x_1612X = SvalS;
                    SstackS = ((SstackS) + -4);
                    *((long *) (SstackS)) = (long) (x_1612X);
                    merged_arg0K0 = 25;
                    merged_arg0K1 = 1;
                    pop_args_GlistSAgc_return_tag = 4;
                    goto pop_args_GlistSAgc;
                   pop_args_GlistSAgc_return_4:
                    args_1613X = pop_args_GlistSAgc0_return_value;push_exception_setupB(4, 0);
                    SstackS = ((SstackS) + -4);
                    *((long *) (SstackS)) = (long) (1);
                    SstackS = ((SstackS) + -4);
                    *((long *) (SstackS)) = (long) (args_1613X);
                    arg0K0 = 2;
                    goto L29309;}}}
              else {
                x_1614X = SvalS;
                SstackS = ((SstackS) + -4);
                *((long *) (SstackS)) = (long) (x_1614X);
                merged_arg0K0 = 25;
                merged_arg0K1 = 1;
                pop_args_GlistSAgc_return_tag = 5;
                goto pop_args_GlistSAgc;
               pop_args_GlistSAgc_return_5:
                args_1615X = pop_args_GlistSAgc0_return_value;push_exception_setupB(4, 0);
                SstackS = ((SstackS) + -4);
                *((long *) (SstackS)) = (long) (1);
                SstackS = ((SstackS) + -4);
                *((long *) (SstackS)) = (long) (args_1615X);
                arg0K0 = 2;
                goto L29309;}}}}}}}}
 L28737: {
  stack_nargs_1616X = arg0K0;
  list_args_1617X = arg0K1;
  list_arg_count_1618X = arg0K2;
  code_pointer_1619X = ((char *) (*((long *) (ScontS))));
  protocol_1620X = *((unsigned char *) (code_pointer_1619X + 1));
  if ((1 == protocol_1620X)) {
    if ((1 == (stack_nargs_1616X + list_arg_count_1618X))) {
      if ((1 == stack_nargs_1616X)) {
        v_1621X = *((long *) (SstackS));
        SstackS = ((SstackS) + 4);
        arg0K0 = v_1621X;
        goto L28826;}
      else {
        arg0K0 = (*((long *) (((char *) (-3 + list_args_1617X)))));
        goto L28826;}}
    else {
      arg0K0 = stack_nargs_1616X;
      arg0K1 = list_args_1617X;
      goto L29738;}}
  else {
    if ((66 == protocol_1620X)) {
      pop_continuationB_return_tag = 2;
      goto pop_continuationB;
     pop_continuationB_return_2:
      arg0K0 = 1;
      goto L32036;}
    else {
      if ((127 < protocol_1620X)) {
        if ((129 == protocol_1620X)) {
          if ((1 == (stack_nargs_1616X + list_arg_count_1618X))) {
            if ((1 == stack_nargs_1616X)) {
              v_1622X = *((long *) (SstackS));
              SstackS = ((SstackS) + 4);
              arg0K0 = v_1622X;
              goto L59246;}
            else {
              arg0K0 = (*((long *) (((char *) (-3 + list_args_1617X)))));
              goto L59246;}}
          else {
            merged_arg0K0 = list_args_1617X;
            merged_arg0K1 = stack_nargs_1616X;
            pop_args_GlistSAgc_return_tag = 6;
            goto pop_args_GlistSAgc;
           pop_args_GlistSAgc_return_6:
            args_1623X = pop_args_GlistSAgc0_return_value;push_exception_setupB(4, 0);
            SstackS = ((SstackS) + -4);
            *((long *) (SstackS)) = (long) (1);
            SstackS = ((SstackS) + -4);
            *((long *) (SstackS)) = (long) (args_1623X);
            arg0K0 = 2;
            goto L29309;}}
        else {
          if ((194 == protocol_1620X)) {
            arg0K0 = 2;
            goto L58702;}
          else {
            ps_error("unknown native return protocol", 1, protocol_1620X);
            merged_arg0K0 = list_args_1617X;
            merged_arg0K1 = stack_nargs_1616X;
            pop_args_GlistSAgc_return_tag = 7;
            goto pop_args_GlistSAgc;
           pop_args_GlistSAgc_return_7:
            args_1624X = pop_args_GlistSAgc0_return_value;push_exception_setupB(4, 0);
            SstackS = ((SstackS) + -4);
            *((long *) (SstackS)) = (long) (1);
            SstackS = ((SstackS) + -4);
            *((long *) (SstackS)) = (long) (args_1624X);
            arg0K0 = 2;
            goto L29309;}}}
      else {
        if ((71 == protocol_1620X)) {
          cont_1625X = Sheap_continuationS;
          if ((3 == (3 & cont_1625X))) {
            if ((10 == (31 & ((((*((long *) ((((char *) (-3 + cont_1625X))) + -4))))>>2))))) {
              merged_arg0K0 = cont_1625X;
              merged_arg0K1 = stack_nargs_1616X;
              copy_continuation_from_heapB_return_tag = 2;
              goto copy_continuation_from_heapB;
             copy_continuation_from_heapB_return_2:
              arg0K0 = stack_nargs_1616X;
              arg0K1 = list_args_1617X;
              arg0K2 = list_arg_count_1618X;
              goto L28737;}
            else {
              goto L28772;}}
          else {
            goto L28772;}}
        else {
          if ((70 == protocol_1620X)) {
            SvalS = (*((long *) ((ScontS) + 4)));
            offset_1626X = ((((*((unsigned char *) (code_pointer_1619X + 2))))<<8)) + (*((unsigned char *) (code_pointer_1619X + 3)));
            if ((0 == offset_1626X)) {
              cont_1627X = ScontS;
              pointer_1628X = (((char *) (*((long *) cont_1627X)))) + -2;
              size_1629X = ((((*((unsigned char *) pointer_1628X)))<<8)) + (*((unsigned char *) (pointer_1628X + 1)));
              if ((65535 == size_1629X)) {
                arg0K0 = ((((*((long *) (cont_1627X + 4))))>>2));
                goto L28889;}
              else {
                arg0K0 = size_1629X;
                goto L28889;}}
            else {
              ScontS = ((ScontS) + 4);
              *((long *) (ScontS)) = (long) ((((long) (code_pointer_1619X + offset_1626X))));
              merged_arg0K0 = stack_nargs_1616X;
              move_args_above_contB_return_tag = 6;
              goto move_args_above_contB;
             move_args_above_contB_return_6:
              arg0K0 = stack_nargs_1616X;
              arg0K1 = list_args_1617X;
              arg0K2 = list_arg_count_1618X;
              goto L58313;}}
          else {
            if ((63 < protocol_1620X)) {
              if ((65 == protocol_1620X)) {
                count_1630X = ((((*((unsigned char *) (code_pointer_1619X + 2))))<<8)) + (*((unsigned char *) (code_pointer_1619X + 3)));
                if (((stack_nargs_1616X + list_arg_count_1618X) < count_1630X)) {
                  merged_arg0K0 = list_args_1617X;
                  merged_arg0K1 = stack_nargs_1616X;
                  pop_args_GlistSAgc_return_tag = 8;
                  goto pop_args_GlistSAgc;
                 pop_args_GlistSAgc_return_8:
                  args_1631X = pop_args_GlistSAgc0_return_value;push_exception_setupB(4, 0);
                  SstackS = ((SstackS) + -4);
                  *((long *) (SstackS)) = (long) (1);
                  SstackS = ((SstackS) + -4);
                  *((long *) (SstackS)) = (long) (args_1631X);
                  arg0K0 = 2;
                  goto L29309;}
                else {
                  arg_top_1632X = SstackS;
                  pop_continuationB_return_tag = 3;
                  goto pop_continuationB;
                 pop_continuationB_return_3:
                  arg2K0 = ((SstackS) + -4);
                  arg2K1 = (arg_top_1632X + (-4 + (((stack_nargs_1616X)<<2))));
                  goto L33086;}}
              else {
                if ((64 == protocol_1620X)) {
                  arg0K0 = (((((*((unsigned char *) (code_pointer_1619X + 2))))<<8)) + (*((unsigned char *) (code_pointer_1619X + 3))));
                  arg0K1 = 3;
                  arg0K2 = stack_nargs_1616X;
                  arg0K3 = list_args_1617X;
                  arg0K4 = list_arg_count_1618X;
                  goto L32938;}
                else {
                  ps_error("unknown protocol", 1, protocol_1620X);
                  arg0K0 = stack_nargs_1616X;
                  arg0K1 = list_args_1617X;
                  goto L29738;}}}
            else {
              arg0K0 = protocol_1620X;
              arg0K1 = 1;
              arg0K2 = stack_nargs_1616X;
              arg0K3 = list_args_1617X;
              arg0K4 = list_arg_count_1618X;
              goto L32938;}}}}}}}
 L33230: {
  if ((nargs_1056X == (*((unsigned char *) ((((char *) (-3 + code_1055X))) + 1))))) {
    arg0K0 = code_1055X;
    arg0K1 = 2;
    arg0K2 = 3;
    arg0K3 = template_1054X;
    goto L28125;}
  else {
    v_1633X = *((unsigned char *) ((((char *) (-3 + code_1055X))) + 1));
    if ((67 == v_1633X)) {
      if ((nargs_1056X == (*((unsigned char *) ((((char *) (-3 + code_1055X))) + (-3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + code_1055X))) + -4))))>>8)))))))) {
        index_1634X = -2 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + code_1055X))) + -4))))>>8));
        arg0K0 = code_1055X;
        arg0K1 = 2;
        arg0K2 = template_1054X;
        arg0K3 = (((((*((unsigned char *) ((((char *) (-3 + code_1055X))) + index_1634X))))<<8)) + (*((unsigned char *) ((((char *) (-3 + code_1055X))) + (1 + index_1634X)))));
        goto L32046;}
      else {
        goto L33252;}}
    else {
      goto L33252;}}}
 L31921: {
  arg0K0 = (2 + (((max_1060X)<<1)));
  goto L31923;}
 L31923: {
  offset_1635X = arg0K0;
  Scode_pointerS = ((Scode_pointerS) + offset_1635X);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L32510: {
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L31819: {
  delta_1636X = arg0K0;
  Scode_pointerS = ((Scode_pointerS) + delta_1636X);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L32401: {
  delta_1637X = arg0K0;
  Scode_pointerS = ((Scode_pointerS) + delta_1637X);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L60277: {
  val_1638X = arg0K0;
  SvalS = val_1638X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L60289: {
  val_1639X = arg0K0;
  SvalS = val_1639X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L18518: {
  if ((3 == (3 & x_1075X))) {
    if ((8 == (31 & ((((*((long *) ((((char *) (-3 + x_1075X))) + -4))))>>2))))) {
      arg0K0 = 5;
      goto L60289;}
    else {
      goto L18524;}}
  else {
    goto L18524;}}
 L49795: {
  SvalS = 5;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L49796: {
  if ((3 == (3 & n_1076X))) {
    if ((11 == (31 & ((((*((long *) ((((char *) (-3 + n_1076X))) + -4))))>>2))))) {
      goto L49809;}
    else {
      goto L49804;}}
  else {
    goto L49804;}}
 L49929: {
  n_1640X = arg0K0;
  if ((0 == (3 & n_1640X))) {
    goto L49962;}
  else {
    if ((3 == (3 & n_1640X))) {
      if ((19 == (31 & ((((*((long *) ((((char *) (-3 + n_1640X))) + -4))))>>2))))) {
        goto L49962;}
      else {
        goto L49945;}}
    else {
      goto L49945;}}}
 L42403: {
  SvalS = 5;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L42404: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (n_1077X);
  arg0K0 = 1;
  goto L29309;}
 L42529: {
  v_1641X = (char *) s48_long_to_bignum(x_1082X);
  v_1642X = enter_bignum(v_1641X);
  arg0K0 = v_1642X;
  goto L42475;}
 L42475: {
  val_1643X = arg0K0;
  SvalS = val_1643X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L42481: {
  if ((0 == (3 & y_1081X))) {
    goto L42487;}
  else {
    if ((3 == (3 & y_1081X))) {
      if ((19 == (31 & ((((*((long *) ((((char *) (-3 + y_1081X))) + -4))))>>2))))) {
        goto L42487;}
      else {
        goto L42490;}}
    else {
      goto L42490;}}}
 L42490: {
  if ((3 == (3 & arg2_1080X))) {
    if ((18 == (31 & ((((*((long *) ((((char *) (-3 + arg2_1080X))) + -4))))>>2))))) {
      if ((3 == (3 & y_1081X))) {
        if ((18 == (31 & ((((*((long *) ((((char *) (-3 + y_1081X))) + -4))))>>2))))) {
          Stemp0S = arg2_1080X;
          Stemp1S = y_1081X;s48_make_availableAgc(12);
          value_1644X = Stemp0S;
          Stemp0S = 1;
          x_1645X = *((double *) (((char *) (-3 + value_1644X))));
          value_1646X = Stemp1S;
          Stemp1S = 1;
          y_1647X = *((double *) (((char *) (-3 + value_1646X))));
          addr_1648X = s48_allocate_small(12);
          *((long *) addr_1648X) = (long) (2122);
          Kdouble_1649X = 3 + (((long) (addr_1648X + 4)));
          *((double *) (((char *) (-3 + Kdouble_1649X)))) = (double) ((x_1645X + y_1647X));
          SvalS = Kdouble_1649X;
          Scode_pointerS = ((Scode_pointerS) + 1);
          arg2K0 = (Scode_pointerS);
          goto L31612;}
        else {
          goto L42504;}}
      else {
        goto L42504;}}
    else {
      goto L42504;}}
  else {
    goto L42504;}}
 L11584: {
  a_1650X = arg0K0;
  if ((b_1086X < 0)) {
    arg0K0 = (0 - b_1086X);
    goto L11588;}
  else {
    arg0K0 = b_1086X;
    goto L11588;}}
 L51702: {
  if ((0 == (3 & y_1084X))) {
    goto L51708;}
  else {
    if ((3 == (3 & y_1084X))) {
      if ((19 == (31 & ((((*((long *) ((((char *) (-3 + y_1084X))) + -4))))>>2))))) {
        goto L51708;}
      else {
        goto L51711;}}
    else {
      goto L51711;}}}
 L51711: {
  if ((3 == (3 & arg2_1083X))) {
    if ((18 == (31 & ((((*((long *) ((((char *) (-3 + arg2_1083X))) + -4))))>>2))))) {
      if ((3 == (3 & y_1084X))) {
        if ((18 == (31 & ((((*((long *) ((((char *) (-3 + y_1084X))) + -4))))>>2))))) {
          Stemp0S = arg2_1083X;
          Stemp1S = y_1084X;s48_make_availableAgc(12);
          value_1651X = Stemp0S;
          Stemp0S = 1;
          x_1652X = *((double *) (((char *) (-3 + value_1651X))));
          value_1653X = Stemp1S;
          Stemp1S = 1;
          y_1654X = *((double *) (((char *) (-3 + value_1653X))));
          addr_1655X = s48_allocate_small(12);
          *((long *) addr_1655X) = (long) (2122);
          Kdouble_1656X = 3 + (((long) (addr_1655X + 4)));
          *((double *) (((char *) (-3 + Kdouble_1656X)))) = (double) ((x_1652X * y_1654X));
          SvalS = Kdouble_1656X;
          Scode_pointerS = ((Scode_pointerS) + 1);
          arg2K0 = (Scode_pointerS);
          goto L31612;}
        else {
          goto L51725;}}
      else {
        goto L51725;}}
    else {
      goto L51725;}}
  else {
    goto L51725;}}
 L42818: {
  v_1657X = (char *) s48_long_to_bignum(x_1089X);
  v_1658X = enter_bignum(v_1657X);
  arg0K0 = v_1658X;
  goto L42764;}
 L42764: {
  val_1659X = arg0K0;
  SvalS = val_1659X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L42770: {
  if ((0 == (3 & y_1088X))) {
    goto L42776;}
  else {
    if ((3 == (3 & y_1088X))) {
      if ((19 == (31 & ((((*((long *) ((((char *) (-3 + y_1088X))) + -4))))>>2))))) {
        goto L42776;}
      else {
        goto L42779;}}
    else {
      goto L42779;}}}
 L42779: {
  if ((3 == (3 & arg2_1087X))) {
    if ((18 == (31 & ((((*((long *) ((((char *) (-3 + arg2_1087X))) + -4))))>>2))))) {
      if ((3 == (3 & y_1088X))) {
        if ((18 == (31 & ((((*((long *) ((((char *) (-3 + y_1088X))) + -4))))>>2))))) {
          Stemp0S = arg2_1087X;
          Stemp1S = y_1088X;s48_make_availableAgc(12);
          value_1660X = Stemp0S;
          Stemp0S = 1;
          x_1661X = *((double *) (((char *) (-3 + value_1660X))));
          value_1662X = Stemp1S;
          Stemp1S = 1;
          y_1663X = *((double *) (((char *) (-3 + value_1662X))));
          addr_1664X = s48_allocate_small(12);
          *((long *) addr_1664X) = (long) (2122);
          Kdouble_1665X = 3 + (((long) (addr_1664X + 4)));
          *((double *) (((char *) (-3 + Kdouble_1665X)))) = (double) ((x_1661X - y_1663X));
          SvalS = Kdouble_1665X;
          Scode_pointerS = ((Scode_pointerS) + 1);
          arg2K0 = (Scode_pointerS);
          goto L31612;}
        else {
          goto L42793;}}
      else {
        goto L42793;}}
    else {
      goto L42793;}}
  else {
    goto L42793;}}
 L11842: {
  a_1666X = arg0K0;
  if ((b_1093X < 0)) {
    arg0K0 = (0 - b_1093X);
    goto L11846;}
  else {
    arg0K0 = b_1093X;
    goto L11846;}}
 L51955: {
  if ((0 == (3 & y_1091X))) {
    goto L51961;}
  else {
    if ((3 == (3 & y_1091X))) {
      if ((19 == (31 & ((((*((long *) ((((char *) (-3 + y_1091X))) + -4))))>>2))))) {
        goto L51961;}
      else {
        goto L51992;}}
    else {
      goto L51992;}}}
 L51992: {
  if ((3 == (3 & arg2_1090X))) {
    if ((18 == (31 & ((((*((long *) ((((char *) (-3 + arg2_1090X))) + -4))))>>2))))) {
      if ((3 == (3 & y_1091X))) {
        if ((18 == (31 & ((((*((long *) ((((char *) (-3 + y_1091X))) + -4))))>>2))))) {
          Stemp0S = arg2_1090X;
          Stemp1S = y_1091X;s48_make_availableAgc(12);
          value_1667X = Stemp0S;
          Stemp0S = 1;
          x_1668X = *((double *) (((char *) (-3 + value_1667X))));
          value_1669X = Stemp1S;
          Stemp1S = 1;
          value_1670X = x_1668X / (*((double *) (((char *) (-3 + value_1669X)))));
          addr_1671X = s48_allocate_small(12);
          *((long *) addr_1671X) = (long) (2122);
          Kdouble_1672X = 3 + (((long) (addr_1671X + 4)));
          *((double *) (((char *) (-3 + Kdouble_1672X)))) = (double) (value_1670X);
          SvalS = Kdouble_1672X;
          Scode_pointerS = ((Scode_pointerS) + 1);
          arg2K0 = (Scode_pointerS);
          goto L31612;}
        else {
          goto L52006;}}
      else {
        goto L52006;}}
    else {
      goto L52006;}}
  else {
    goto L52006;}}
 L43049: {
  val_1673X = arg0K0;
  SvalS = val_1673X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L43055: {
  if ((0 == (3 & y_1095X))) {
    goto L43061;}
  else {
    if ((3 == (3 & y_1095X))) {
      if ((19 == (31 & ((((*((long *) ((((char *) (-3 + y_1095X))) + -4))))>>2))))) {
        goto L43061;}
      else {
        goto L43066;}}
    else {
      goto L43066;}}}
 L43066: {
  if ((3 == (3 & arg2_1094X))) {
    if ((18 == (31 & ((((*((long *) ((((char *) (-3 + arg2_1094X))) + -4))))>>2))))) {
      if ((3 == (3 & y_1095X))) {
        if ((18 == (31 & ((((*((long *) ((((char *) (-3 + y_1095X))) + -4))))>>2))))) {
          b_1674X = (*((double *) (((char *) (-3 + arg2_1094X))))) == (*((double *) (((char *) (-3 + y_1095X)))));
          if (b_1674X) {
            arg0K0 = 5;
            goto L43081;}
          else {
            arg0K0 = 1;
            goto L43081;}}
        else {
          goto L43082;}}
      else {
        goto L43082;}}
    else {
      goto L43082;}}
  else {
    goto L43082;}}
 L43309: {
  val_1675X = arg0K0;
  SvalS = val_1675X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L43315: {
  if ((0 == (3 & y_1097X))) {
    goto L43321;}
  else {
    if ((3 == (3 & y_1097X))) {
      if ((19 == (31 & ((((*((long *) ((((char *) (-3 + y_1097X))) + -4))))>>2))))) {
        goto L43321;}
      else {
        goto L43326;}}
    else {
      goto L43326;}}}
 L43326: {
  if ((3 == (3 & arg2_1096X))) {
    if ((18 == (31 & ((((*((long *) ((((char *) (-3 + arg2_1096X))) + -4))))>>2))))) {
      if ((3 == (3 & y_1097X))) {
        if ((18 == (31 & ((((*((long *) ((((char *) (-3 + y_1097X))) + -4))))>>2))))) {
          b_1676X = (*((double *) (((char *) (-3 + arg2_1096X))))) < (*((double *) (((char *) (-3 + y_1097X)))));
          if (b_1676X) {
            arg0K0 = 5;
            goto L43341;}
          else {
            arg0K0 = 1;
            goto L43341;}}
        else {
          goto L43342;}}
      else {
        goto L43342;}}
    else {
      goto L43342;}}
  else {
    goto L43342;}}
 L43632: {
  val_1677X = arg0K0;
  SvalS = val_1677X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L43638: {
  if ((0 == (3 & y_1099X))) {
    goto L43644;}
  else {
    if ((3 == (3 & y_1099X))) {
      if ((19 == (31 & ((((*((long *) ((((char *) (-3 + y_1099X))) + -4))))>>2))))) {
        goto L43644;}
      else {
        goto L43649;}}
    else {
      goto L43649;}}}
 L43649: {
  if ((3 == (3 & arg2_1098X))) {
    if ((18 == (31 & ((((*((long *) ((((char *) (-3 + arg2_1098X))) + -4))))>>2))))) {
      if ((3 == (3 & y_1099X))) {
        if ((18 == (31 & ((((*((long *) ((((char *) (-3 + y_1099X))) + -4))))>>2))))) {
          b_1678X = (*((double *) (((char *) (-3 + y_1099X))))) < (*((double *) (((char *) (-3 + arg2_1098X)))));
          if (b_1678X) {
            arg0K0 = 5;
            goto L43664;}
          else {
            arg0K0 = 1;
            goto L43664;}}
        else {
          goto L43665;}}
      else {
        goto L43665;}}
    else {
      goto L43665;}}
  else {
    goto L43665;}}
 L43955: {
  val_1679X = arg0K0;
  SvalS = val_1679X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L43961: {
  if ((0 == (3 & y_1101X))) {
    goto L43967;}
  else {
    if ((3 == (3 & y_1101X))) {
      if ((19 == (31 & ((((*((long *) ((((char *) (-3 + y_1101X))) + -4))))>>2))))) {
        goto L43967;}
      else {
        goto L43972;}}
    else {
      goto L43972;}}}
 L43972: {
  if ((3 == (3 & arg2_1100X))) {
    if ((18 == (31 & ((((*((long *) ((((char *) (-3 + arg2_1100X))) + -4))))>>2))))) {
      if ((3 == (3 & y_1101X))) {
        if ((18 == (31 & ((((*((long *) ((((char *) (-3 + y_1101X))) + -4))))>>2))))) {
          if (((*((double *) (((char *) (-3 + y_1101X))))) < (*((double *) (((char *) (-3 + arg2_1100X))))))) {
            arg0K0 = 1;
            goto L43987;}
          else {
            arg0K0 = 5;
            goto L43987;}}
        else {
          goto L43988;}}
      else {
        goto L43988;}}
    else {
      goto L43988;}}
  else {
    goto L43988;}}
 L44249: {
  val_1680X = arg0K0;
  SvalS = val_1680X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L44255: {
  if ((0 == (3 & y_1103X))) {
    goto L44261;}
  else {
    if ((3 == (3 & y_1103X))) {
      if ((19 == (31 & ((((*((long *) ((((char *) (-3 + y_1103X))) + -4))))>>2))))) {
        goto L44261;}
      else {
        goto L44266;}}
    else {
      goto L44266;}}}
 L44266: {
  if ((3 == (3 & arg2_1102X))) {
    if ((18 == (31 & ((((*((long *) ((((char *) (-3 + arg2_1102X))) + -4))))>>2))))) {
      if ((3 == (3 & y_1103X))) {
        if ((18 == (31 & ((((*((long *) ((((char *) (-3 + y_1103X))) + -4))))>>2))))) {
          if (((*((double *) (((char *) (-3 + arg2_1102X))))) < (*((double *) (((char *) (-3 + y_1103X))))))) {
            arg0K0 = 1;
            goto L44281;}
          else {
            arg0K0 = 5;
            goto L44281;}}
        else {
          goto L44282;}}
      else {
        goto L44282;}}
    else {
      goto L44282;}}
  else {
    goto L44282;}}
 L12456: {
  a_1681X = arg0K0;
  if ((b_1108X < 0)) {
    arg0K0 = (0 - b_1108X);
    goto L12460;}
  else {
    arg0K0 = b_1108X;
    goto L12460;}}
 L44555: {
  if ((0 == (3 & y_1105X))) {
    goto L44561;}
  else {
    if ((3 == (3 & y_1105X))) {
      if ((19 == (31 & ((((*((long *) ((((char *) (-3 + y_1105X))) + -4))))>>2))))) {
        goto L44561;}
      else {
        goto L44564;}}
    else {
      goto L44564;}}}
 L44564: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1104X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (y_1105X);
  arg0K0 = 2;
  goto L29309;}
 L44769: {
  a_1682X = arg0K0;
  n_1683X = ((y_1110X)>>2);
  if ((n_1683X < 0)) {
    arg0K0 = (0 - n_1683X);
    goto L44771;}
  else {
    arg0K0 = n_1683X;
    goto L44771;}}
 L44731: {
  if ((0 == (3 & y_1110X))) {
    goto L44737;}
  else {
    if ((3 == (3 & y_1110X))) {
      if ((19 == (31 & ((((*((long *) ((((char *) (-3 + y_1110X))) + -4))))>>2))))) {
        goto L44737;}
      else {
        goto L44740;}}
    else {
      goto L44740;}}}
 L44740: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1109X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (y_1110X);
  arg0K0 = 2;
  goto L29309;}
 L44918: {
  SvalS = n_1113X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L44919: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (n_1113X);
  arg0K0 = 1;
  goto L29309;}
 L44973: {
  SvalS = n_1114X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L44974: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (n_1114X);
  arg0K0 = 1;
  goto L29309;}
 L45028: {
  SvalS = 4;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L45031: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (n_1115X);
  arg0K0 = 1;
  goto L29309;}
 L45088: {
  SvalS = n_1116X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L45089: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (n_1116X);
  arg0K0 = 1;
  goto L29309;}
 L45143: {
  SvalS = 0;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L45146: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (n_1117X);
  arg0K0 = 1;
  goto L29309;}
 L53282: {
  x_1684X = SvalS;
  if ((0 == (3 & x_1684X))) {
    if ((0 < x_1684X)) {
      goto L53311;}
    else {
      goto L53305;}}
  else {
    v_1685X = s48_bignum_test((((char *) (-3 + x_1684X))));
    if ((-1 == v_1685X)) {
      goto L53305;}
    else {
      goto L53311;}}}
 L53285: {
push_exception_setupB(5, 1);
  x_1686X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1686X);
  arg0K0 = 1;
  goto L29309;}
 L56668: {
  x_1687X = SvalS;
  if ((0 == (3 & x_1687X))) {
    n_1688X = ((x_1687X)>>2);
    if ((n_1688X < 0)) {
      arg0K0 = (0 - n_1688X);
      goto L52292;}
    else {
      arg0K0 = n_1688X;
      goto L52292;}}
  else {
    if ((0 == (3 & x_1687X))) {
      arg0K0 = 1;
      arg0K1 = 3;
      goto L23679;}
    else {
      arg0K0 = (-1 + ((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + x_1687X))) + -4))))>>8))))>>2)));
      arg0K1 = 0;
      goto L23679;}}}
 L56671: {
push_exception_setupB(5, 1);
  x_1689X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1689X);
  arg0K0 = 1;
  goto L29309;}
 L45289: {
  val_1690X = integer_bitwise_not(x_1135X);
  SvalS = val_1690X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L45292: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1135X);
  arg0K0 = 1;
  goto L29309;}
 L45380: {
  x_1691X = arg0K0;
  arg0K0 = x_1691X;
  arg0K1 = 0;
  goto L45386;}
 L45363: {
  val_1692X = integer_bit_count(x_1136X);
  SvalS = val_1692X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L45366: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1136X);
  arg0K0 = 1;
  goto L29309;}
 L45465: {
  if ((0 == (3 & y_1139X))) {
    goto L45471;}
  else {
    if ((3 == (3 & y_1139X))) {
      if ((19 == (31 & ((((*((long *) ((((char *) (-3 + y_1139X))) + -4))))>>2))))) {
        goto L45471;}
      else {
        goto L45474;}}
    else {
      goto L45474;}}}
 L45474: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1138X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (y_1139X);
  arg0K0 = 2;
  goto L29309;}
 L45628: {
  if ((0 == (3 & y_1141X))) {
    goto L45634;}
  else {
    if ((3 == (3 & y_1141X))) {
      if ((19 == (31 & ((((*((long *) ((((char *) (-3 + y_1141X))) + -4))))>>2))))) {
        goto L45634;}
      else {
        goto L45637;}}
    else {
      goto L45637;}}}
 L45637: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1140X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (y_1141X);
  arg0K0 = 2;
  goto L29309;}
 L45791: {
  if ((0 == (3 & y_1143X))) {
    goto L45797;}
  else {
    if ((3 == (3 & y_1143X))) {
      if ((19 == (31 & ((((*((long *) ((((char *) (-3 + y_1143X))) + -4))))>>2))))) {
        goto L45797;}
      else {
        goto L45800;}}
    else {
      goto L45800;}}}
 L45800: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1142X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (y_1143X);
  arg0K0 = 2;
  goto L29309;}
 L42183: {
  val_1693X = arg0K0;
  SvalS = val_1693X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L42199: {
  val_1694X = arg0K0;
  SvalS = val_1694X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L42200: {
push_exception_setupB(6, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1144X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (y_1145X);
  arg0K0 = 2;
  goto L29309;}
 L52342: {
  if ((0 == (3 & y_1145X))) {
    if ((0 == (3 & arg2_1144X))) {
      value_1695X = ((arg2_1144X)>>2);
      count_1696X = ((y_1145X)>>2);
      if ((count_1696X < 0)) {
        PS_SHIFT_RIGHT(value_1695X, (0 - count_1696X), x_1697X)
        x_1698X = x_1697X;s48_make_availableAgc(16);
        if ((536870911 < x_1698X)) {
          goto L52462;}
        else {
          if ((x_1698X < -536870912)) {
            goto L52462;}
          else {
            arg0K0 = (((x_1698X)<<2));
            goto L52457;}}}
      else {
        PS_SHIFT_LEFT(value_1695X, count_1696X, x_1699X)
        result_1700X = x_1699X;
        PS_SHIFT_RIGHT(result_1700X, count_1696X, x_1701X)
        if ((value_1695X == x_1701X)) {
          if ((value_1695X < 0)) {
            if ((result_1700X < 0)) {s48_make_availableAgc(16);
              if ((536870911 < result_1700X)) {
                goto L52484;}
              else {
                if ((result_1700X < -536870912)) {
                  goto L52484;}
                else {
                  arg0K0 = (((result_1700X)<<2));
                  goto L52479;}}}
            else {
              arg0K0 = arg2_1144X;
              arg0K1 = y_1145X;
              goto L52355;}}
          else {
            if ((result_1700X < 0)) {
              arg0K0 = arg2_1144X;
              arg0K1 = y_1145X;
              goto L52355;}
            else {s48_make_availableAgc(16);
              if ((536870911 < result_1700X)) {
                goto L52506;}
              else {
                if ((result_1700X < -536870912)) {
                  goto L52506;}
                else {
                  arg0K0 = (((result_1700X)<<2));
                  goto L52501;}}}}}
        else {
          arg0K0 = arg2_1144X;
          arg0K1 = y_1145X;
          goto L52355;}}}
    else {
      if ((3 == (3 & arg2_1144X))) {
        if ((19 == (31 & ((((*((long *) ((((char *) (-3 + arg2_1144X))) + -4))))>>2))))) {
          y_1702X = ((y_1145X)>>2);
          merged_arg0K0 = arg2_1144X;
          merged_arg0K1 = y_1702X;
          shift_space_return_tag = 0;
          goto shift_space;
         shift_space_return_0:
          needed_1703X = shift_space0_return_value;
          Stemp0S = arg2_1144X;s48_make_availableAgc((((needed_1703X)<<2)));
          value_1704X = Stemp0S;
          Stemp0S = 1;
          if ((0 == (3 & value_1704X))) {
            v_1705X = (char *) s48_long_to_bignum((((value_1704X)>>2)));
            arg2K0 = v_1705X;
            goto L52537;}
          else {
            arg2K0 = (((char *) (-3 + value_1704X)));
            goto L52537;}}
        else {
          goto L52364;}}
      else {
        goto L52364;}}}
  else {push_exception_setupB(5, 1);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (arg2_1144X);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (y_1145X);
    arg0K0 = 2;
    goto L29309;}}
 L60548: {
  val_1706X = arg0K0;
  SvalS = val_1706X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L49596: {
  val_1707X = arg0K0;
  SvalS = val_1707X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L49567: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1149X);
  x_1708X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1708X);
  arg0K0 = 2;
  goto L29309;}
 L49504: {
  val_1709X = arg0K0;
  SvalS = val_1709X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L49475: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1151X);
  x_1710X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1710X);
  arg0K0 = 2;
  goto L29309;}
 L53591: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((x_1154X)<<2)));
  arg0K0 = 1;
  goto L29309;}
 L53597: {
  SvalS = (9 + (((x_1154X)<<8)));
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L49402: {
  val_1711X = arg0K0;
  SvalS = val_1711X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L60581: {
  val_1712X = arg0K0;
  SvalS = val_1712X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L60595: {
  value_1713X = arg0K0;
  SvalS = value_1713X;
  Scode_pointerS = ((Scode_pointerS) + 2);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L34375: {
push_exception_setupB(5, 2);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (stob_1161X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((type_1162X)<<2)));
  arg0K0 = 2;
  goto L29309;}
 L34480: {
  SvalS = new_1167X;
  Scode_pointerS = ((Scode_pointerS) + 3);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L34464: {
  i_1714X = arg0K0;
  if ((i_1714X < 0)) {
    goto L34480;}
  else {
    value_1715X = *((long *) (SstackS));
    SstackS = ((SstackS) + 4);
    *((long *) ((((char *) (-3 + new_1167X))) + (((i_1714X)<<2)))) = (long) (value_1715X);
    arg0K0 = (-1 + i_1714X);
    goto L34464;}}
 L34598: {
  i_1716X = arg0K0;
  if ((i_1716X < 0)) {
    arg0K0 = stack_nargs_1175X;
    arg0K1 = rest_list_1176X;
    goto L34740;}
  else {
    value_1717X = *((long *) (SstackS));
    SstackS = ((SstackS) + 4);
    *((long *) ((((char *) (-3 + new_1173X))) + (((i_1716X)<<2)))) = (long) (value_1717X);
    arg0K0 = (-1 + i_1716X);
    goto L34598;}}
 L34766: {
push_exception_setupB(5, 3);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (stob_1177X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((type_1178X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((offset_1179X)<<2)));
  arg0K0 = 3;
  goto L29309;}
 L34883: {
  addr_1718X = (((char *) (-3 + arg2_1180X))) + (((offset_1183X)<<2));S48_WRITE_BARRIER(arg2_1180X, addr_1718X, value_1181X);
  *((long *) addr_1718X) = (long) (value_1181X);
  goto L34892;}
 L34892: {
  SvalS = 13;
  Scode_pointerS = ((Scode_pointerS) + 4);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L34893: {
push_exception_setupB(5, 4);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1180X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((type_1182X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((offset_1183X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (value_1181X);
  arg0K0 = 4;
  goto L29309;}
 L35110: {
push_exception_setupB(5, 2);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((type_1187X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((len_1188X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (init_1186X);
  arg0K0 = 3;
  goto L29309;}
 L35127: {
  x_1719X = arg0K0;
  value_1720X = Stemp0S;
  Stemp0S = 1;
  if ((1 == x_1719X)) {push_exception_setupB(8, 2);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) ((((type_1187X)<<2)));
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) ((((len_1188X)<<2)));
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (value_1720X);
    arg0K0 = 3;
    goto L29309;}
  else {
    arg0K0 = (-1 + len_1188X);
    goto L35153;}}
 L35400: {
push_exception_setupB(7, 3);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1191X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((type_1193X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (index_1192X);
  arg0K0 = 3;
  goto L29309;}
 L35390: {
  arg0K0 = (*((long *) ((((char *) (-3 + arg2_1191X))) + (-4 & index_1192X))));
  goto L35399;}
 L35399: {
  value_1721X = arg0K0;
  SvalS = value_1721X;
  Scode_pointerS = ((Scode_pointerS) + 3);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L35355: {
push_exception_setupB(5, 3);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1191X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((type_1193X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (index_1192X);
  arg0K0 = 3;
  goto L29309;}
 L35687: {
push_exception_setupB(7, 3);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg3_1199X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((type_1201X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1198X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (value_1200X);
  arg0K0 = 4;
  goto L29309;}
 L35677: {
  addr_1722X = (((char *) (-3 + arg3_1199X))) + (-4 & arg2_1198X);S48_WRITE_BARRIER(arg3_1199X, addr_1722X, value_1200X);
  *((long *) addr_1722X) = (long) (value_1200X);
  goto L35686;}
 L35686: {
  SvalS = 13;
  Scode_pointerS = ((Scode_pointerS) + 3);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L35640: {
push_exception_setupB(5, 3);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg3_1199X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((type_1201X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1198X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (value_1200X);
  arg0K0 = 4;
  goto L29309;}
 L60638: {
  new_1723X = arg0K0;
  if ((1 == new_1723X)) {push_exception_setupB(8, 1);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (72);
    arg0K0 = 1;
    goto L29309;}
  else {
    SvalS = new_1723X;
    Scode_pointerS = ((Scode_pointerS) + 1);
    arg2K0 = (Scode_pointerS);
    goto L31612;}}
 L46073: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((len_1207X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((init_1208X)<<2)));
  arg0K0 = 2;
  goto L29309;}
 L46088: {
  vector_1724X = arg0K0;
  if ((1 == vector_1724X)) {push_exception_setupB(8, 1);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) ((((len_1207X)<<2)));
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) ((((init_1208X)<<2)));
    arg0K0 = 2;
    goto L29309;}
  else {
    arg0K0 = (-1 + len_1207X);
    goto L46110;}}
 L57914: {
push_exception_setupB(5, 1);
  x_1725X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1725X);
  arg0K0 = 1;
  goto L29309;}
 L53734: {
push_exception_setupB(7, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1212X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((index_1213X)<<2)));
  arg0K0 = 2;
  goto L29309;}
 L57340: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1212X);
  x_1726X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1726X);
  arg0K0 = 2;
  goto L29309;}
 L50914: {
push_exception_setupB(7, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg3_1216X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((index_1217X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((Kchar_1218X)<<2)));
  arg0K0 = 3;
  goto L29309;}
 L50893: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg3_1216X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((index_1217X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((Kchar_1218X)<<2)));
  arg0K0 = 3;
  goto L29309;}
 L55988: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg3_1216X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1215X);
  x_1727X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1727X);
  arg0K0 = 3;
  goto L29309;}
 L46258: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((len_1221X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((9 + (((init_1222X)<<8))));
  arg0K0 = 2;
  goto L29309;}
 L46273: {
  vector_1728X = arg0K0;
  if ((1 == vector_1728X)) {push_exception_setupB(8, 1);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) ((((len_1221X)<<2)));
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) ((9 + (((init_1222X)<<8))));
    arg0K0 = 2;
    goto L29309;}
  else {
    arg0K0 = (-1 + len_1221X);
    goto L46295;}}
 L53815: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1220X);
  x_1729X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1729X);
  arg0K0 = 2;
  goto L29309;}
 L57964: {
push_exception_setupB(5, 1);
  x_1730X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1730X);
  arg0K0 = 1;
  goto L29309;}
 L53880: {
push_exception_setupB(7, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1227X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((index_1228X)<<2)));
  arg0K0 = 2;
  goto L29309;}
 L53908: {
  bits_1731X = arg0K0;
  j_1732X = arg0K1;
  scalar_value_1733X = arg0K2;
  if ((j_1732X < 4)) {
    PS_SHIFT_LEFT((*((unsigned char *) ((((char *) (-3 + arg2_1227X))) + ((((index_1228X)<<2)) + j_1732X)))), bits_1731X, x_1734X)
    arg0K0 = (8 + bits_1731X);
    arg0K1 = (1 + j_1732X);
    arg0K2 = (x_1734X + scalar_value_1733X);
    goto L53908;}
  else {
    SvalS = (9 + (((scalar_value_1733X)<<8)));
    Scode_pointerS = ((Scode_pointerS) + 1);
    arg2K0 = (Scode_pointerS);
    goto L31612;}}
 L57438: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1227X);
  x_1735X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1735X);
  arg0K0 = 2;
  goto L29309;}
 L51069: {
push_exception_setupB(7, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg3_1231X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((index_1232X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((9 + (((Kchar_1233X)<<8))));
  arg0K0 = 3;
  goto L29309;}
 L51133: {
  bits_1736X = arg0K0;
  j_1737X = arg0K1;
  shifted_1738X = arg0K2;
  if ((j_1737X < 4)) {
    *((unsigned char *) ((((char *) (-3 + arg3_1231X))) + ((((index_1232X)<<2)) + j_1737X))) = (unsigned char) ((255 & shifted_1738X));
    arg0K0 = (8 + bits_1736X);
    arg0K1 = (1 + j_1737X);
    arg0K2 = ((long)(((unsigned long)shifted_1738X)>>8));
    goto L51133;}
  else {
    SvalS = 13;
    Scode_pointerS = ((Scode_pointerS) + 1);
    arg2K0 = (Scode_pointerS);
    goto L31612;}}
 L51048: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg3_1231X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((index_1232X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((9 + (((Kchar_1233X)<<8))));
  arg0K0 = 3;
  goto L29309;}
 L56118: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg3_1231X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1230X);
  x_1739X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1739X);
  arg0K0 = 3;
  goto L29309;}
 L36022: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg5_1238X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((from_index_1239X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg3_1236X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((to_index_1240X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((count_1241X)<<2)));
  arg0K0 = 5;
  goto L29309;}
 L41169: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg5_1238X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg4_1237X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg3_1236X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1235X);
  x_1740X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1740X);
  arg0K0 = 5;
  goto L29309;}
 L26959: {
  bucket_1741X = arg0K0;
  arg0K0 = bucket_1741X;
  goto L26965;}
 L42345: {
push_exception_setupB(5, 1);
  x_1742X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1742X);
  arg0K0 = 1;
  goto L29309;}
 L55682: {
  val_1743X = arg0K0;
  SvalS = val_1743X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L55663: {
push_exception_setupB(5, 1);
  x_1744X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1744X);
  arg0K0 = 1;
  goto L29309;}
 L50671: {
  if ((1 == (SvalS))) {
    addr_1745X = (((char *) (-3 + arg2_1253X))) + 4;S48_WRITE_BARRIER(arg2_1253X, addr_1745X, 273);
    *((long *) addr_1745X) = (long) (273);
    goto L50677;}
  else {
    if ((17 == (255 & (*((long *) ((((char *) (-3 + arg2_1253X))) + 4)))))) {
      addr_1746X = (((char *) (-3 + arg2_1253X))) + 4;S48_WRITE_BARRIER(arg2_1253X, addr_1746X, 529);
      *((long *) addr_1746X) = (long) (529);
      goto L50677;}
    else {
      goto L50677;}}}
 L50678: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1253X);
  x_1747X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1747X);
  arg0K0 = 2;
  goto L29309;}
 L60700: {
  val_1748X = arg0K0;
  SvalS = val_1748X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L53972: {
  SvalS = x_1256X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L46697: {
  if ((0 == (3 & arg4_1259X))) {
    if (((((arg4_1259X)>>2)) < 0)) {push_exception_setupB(5, 1);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (arg4_1259X);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) ((((mode_1260X)<<2)));
      arg0K0 = 2;
      goto L29309;}
    else {
      arg0K0 = (((arg4_1259X)>>2));
      goto L46483;}}
  else {
    if ((3 == (3 & arg4_1259X))) {
      if ((17 == (31 & ((((*((long *) ((((char *) (-3 + arg4_1259X))) + -4))))>>2))))) {
        filename_1749X = ((char *)(((char *) (-3 + arg4_1259X))));
        if ((1 == mode_1260X)) {
          goto L46545;}
        else {
          if ((3 == mode_1260X)) {
            goto L46545;}
          else {
            v_1750X = ps_open_fd(filename_1749X, 0, &v_1751X);
            arg0K0 = v_1750X;
            arg0K1 = v_1751X;
            goto L46554;}}}
      else {push_exception_setupB(5, 1);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (arg4_1259X);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) ((((mode_1260X)<<2)));
        arg0K0 = 2;
        goto L29309;}}
    else {push_exception_setupB(5, 1);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (arg4_1259X);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) ((((mode_1260X)<<2)));
      arg0K0 = 2;
      goto L29309;}}}
 L60719: {
push_exception_setupB(5, 1);
  x_1752X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1752X);
  arg0K0 = 1;
  goto L29309;}
 L54172: {
  if ((1 == (SvalS))) {
    arg3K0 = 0;
    goto L54182;}
  else {
    arg3K0 = 1;
    goto L54182;}}
 L54183: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg5_1270X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg4_1269X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg3_1268X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1267X);
  x_1753X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1753X);
  arg0K0 = 5;
  goto L29309;}
 L47307: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg4_1274X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg3_1273X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((start_1275X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((count_1276X)<<2)));
  arg0K0 = 4;
  goto L29309;}
 L47306: {
  val_1754X = arg0K0;
  SvalS = val_1754X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L54386: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg4_1274X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg3_1273X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1272X);
  x_1755X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1755X);
  arg0K0 = 4;
  goto L29309;}
 L57164: {
  val_1756X = arg0K0;
  SvalS = val_1756X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L50262: {
  val_1757X = arg0K0;
  SvalS = val_1757X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L60754: {
push_exception_setupB(5, 1);
  x_1758X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1758X);
  arg0K0 = 1;
  goto L29309;}
 L54534: {
  val_1759X = arg0K0;
  SvalS = val_1759X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L14931: {
  x_1760X = Spending_channels_headS;
  if ((1 == x_1760X)) {
    Spending_interruptsS = (-9 & (Spending_interruptsS));
    goto L14943;}
  else {
    goto L14943;}}
 L14949: {
  ch_1761X = arg0K0;
  prev_1762X = arg0K1;
  if ((1 == ch_1761X)) {
    addr_1763X = (((char *) (-3 + channel_1294X))) + 20;S48_WRITE_BARRIER(channel_1294X, addr_1763X, 1);
    *((long *) addr_1763X) = (long) (1);
    n_1764X = ps_abort_fd_op(((((*((long *) ((((char *) (-3 + channel_1294X))) + 8))))>>2)));
    arg0K0 = (((n_1764X)<<2));
    goto L54534;}
  else {
    if ((ch_1761X == channel_1294X)) {
      y_1765X = Spending_channels_tailS;
      if ((ch_1761X == y_1765X)) {
        Spending_channels_tailS = prev_1762X;
        goto L14973;}
      else {
        goto L14973;}}
    else {
      arg0K0 = (*((long *) ((((char *) (-3 + ch_1761X))) + 16)));
      arg0K1 = ch_1761X;
      goto L14949;}}}
 L54517: {
push_exception_setupB(5, 1);
  x_1766X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1766X);
  arg0K0 = 1;
  goto L29309;}
 L21533: {
  i_1767X = arg0K0;
  res_1768X = arg0K1;
  if ((-1 == i_1767X)) {
    SvalS = res_1768X;
    Scode_pointerS = ((Scode_pointerS) + 1);
    arg2K0 = (Scode_pointerS);
    goto L31612;}
  else {
    channel_1769X = *((Svm_channelsS) + i_1767X);
    if ((3 == (3 & channel_1769X))) {
      if ((6 == (31 & ((((*((long *) ((((char *) (-3 + channel_1769X))) + -4))))>>2))))) {
        addr_1770X = s48_allocate_small(12);
        *((long *) addr_1770X) = (long) (2050);
        x_1771X = 3 + (((long) (addr_1770X + 4)));
        *((long *) (((char *) (-3 + x_1771X)))) = (long) (channel_1769X);
        *((long *) ((((char *) (-3 + x_1771X))) + 4)) = (long) (res_1768X);
        arg0K0 = x_1771X;
        goto L21547;}
      else {
        arg0K0 = res_1768X;
        goto L21547;}}
    else {
      arg0K0 = res_1768X;
      goto L21547;}}}
 L47528: {
  old_1772X = *((long *) ((((char *) (-3 + (Scurrent_threadS)))) + 12));
  if ((1 == old_1772X)) {
    goto L47544;}
  else {
    addr_1773X = ((char *) (-3 + old_1772X));S48_WRITE_BARRIER(old_1772X, addr_1773X, 1);
    *((long *) addr_1773X) = (long) (1);
    goto L47544;}}
 L47559: {
  if ((proposal_1301X == (*((long *) ((((char *) (-3 + (Scurrent_threadS)))) + 12))))) {
    SvalS = 13;
    Scode_pointerS = ((Scode_pointerS) + 1);
    arg2K0 = (Scode_pointerS);
    goto L31612;}
  else {push_exception_setupB(5, 1);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (proposal_1301X);
    arg0K0 = 1;
    goto L29309;}}
 L13257: {
  i_1774X = arg0K0;
  stob_1775X = *((long *) ((((char *) (-3 + log_1303X))) + (((i_1774X)<<2))));
  if ((1 == stob_1775X)) {
    log_1776X = *((long *) ((((char *) (-3 + proposal_1302X))) + 8));
    arg0K0 = 0;
    goto L13495;}
  else {
    value_1777X = *((long *) ((((char *) (-3 + log_1303X))) + (8 + (((i_1774X)<<2)))));
    verify_1778X = *((long *) ((((char *) (-3 + log_1303X))) + (12 + (((i_1774X)<<2)))));
    if ((29 == verify_1778X)) {
      if ((3 == (3 & stob_1775X))) {
        if ((0 == (128 & (*((long *) ((((char *) (-3 + stob_1775X))) + -4)))))) {
          goto L13309;}
        else {
          goto L47807;}}
      else {
        goto L47807;}}
    else {
      if ((verify_1778X == (*((long *) ((((char *) (-3 + stob_1775X))) + (-4 & (*((long *) ((((char *) (-3 + log_1303X))) + (4 + (((i_1774X)<<2)))))))))))) {
        if ((verify_1778X == value_1777X)) {
          goto L13309;}
        else {
          if ((3 == (3 & stob_1775X))) {
            if ((0 == (128 & (*((long *) ((((char *) (-3 + stob_1775X))) + -4)))))) {
              goto L13309;}
            else {
              goto L47807;}}
          else {
            goto L47807;}}}
      else {
        goto L47807;}}}}
 L36277: {
  value_1779X = arg0K0;
  SvalS = value_1779X;
  Scode_pointerS = ((Scode_pointerS) + 3);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L36278: {
push_exception_setupB(5, 3);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (stob_1304X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((type_1305X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((offset_1306X)<<2)));
  arg0K0 = 3;
  goto L29309;}
 L36371: {
push_exception_setupB(5, 2);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg5_1312X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((from_index_1313X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg3_1310X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((to_index_1314X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((count_1315X)<<2)));
  arg0K0 = 5;
  goto L29309;}
 L36431: {
  memmove((void *)((((char *) (-3 + arg3_1310X))) + to_index_1314X), (void *)((((char *) (-3 + arg5_1312X))) + from_index_1313X),count_1315X);
  SvalS = 13;
  Scode_pointerS = ((Scode_pointerS) + 2);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L36528: {
  left_1780X = arg0K0;
  copies_1781X = arg0K1;
  if ((1 == copies_1781X)) {
    if ((left_1780X < count_1315X)) {
      goto L36371;}
    else {
      from_index_1782X = ((from_index_1313X)<<2);
      to_index_1783X = ((to_index_1314X)<<2);
      count_1784X = ((count_1315X)<<2);
      Stemp0S = arg5_1312X;
      Stemp1S = arg3_1310X;
      addr_1785X = s48_allocate_tracedAgc(28);
      if ((addr_1785X == NULL)) {
        arg0K0 = 1;
        goto L12972;}
      else {
        *((long *) addr_1785X) = (long) (6154);
        arg0K0 = (3 + (((long) (addr_1785X + 4))));
        goto L12972;}}}
  else {
    arg0K0 = (left_1780X - ((((*((long *) ((((char *) (-3 + copies_1781X))) + 16))))>>2)));
    arg0K1 = (*((long *) ((((char *) (-3 + copies_1781X))) + 20)));
    goto L36528;}}
 L41415: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg5_1312X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg4_1311X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg3_1310X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1309X);
  x_1786X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1786X);
  arg0K0 = 5;
  goto L29309;}
 L36797: {
push_exception_setupB(7, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1317X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((index_1318X)<<2)));
  arg0K0 = 2;
  goto L29309;}
 L36796: {
  value_1787X = arg0K0;
  SvalS = value_1787X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L19676: {
  i_1788X = arg0K0;
  next_stob_1789X = *((long *) ((((char *) (-3 + log_1322X))) + (((i_1788X)<<2))));
  if ((1 == next_stob_1789X)) {
    v_1790X = add_log_entryAgc(2, i_1788X, arg2_1317X, index_1321X, ((((*((unsigned char *) ((((char *) (-3 + arg2_1317X))) + (((index_1321X)>>2))))))<<2)), 1);
    arg0K0 = v_1790X;
    goto L36796;}
  else {
    if ((arg2_1317X == next_stob_1789X)) {
      if ((index_1321X == (*((long *) ((((char *) (-3 + log_1322X))) + (4 + (((i_1788X)<<2)))))))) {
        arg0K0 = (*((long *) ((((char *) (-3 + log_1322X))) + (8 + (((i_1788X)<<2))))));
        goto L36796;}
      else {
        goto L19698;}}
    else {
      goto L19698;}}}
 L41611: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1317X);
  x_1791X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1791X);
  arg0K0 = 2;
  goto L29309;}
 L36923: {
push_exception_setupB(7, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg3_1324X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((index_1325X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (byte_1326X);
  arg0K0 = 3;
  goto L29309;}
 L36922: {
  SvalS = 13;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L19852: {
  i_1792X = arg0K0;
  next_stob_1793X = *((long *) ((((char *) (-3 + log_1330X))) + (((i_1792X)<<2))));
  if ((1 == next_stob_1793X)) {add_log_entryAgc(2, i_1792X, arg3_1324X, index_1329X, byte_1326X, 0);
    goto L36922;}
  else {
    if ((arg3_1324X == next_stob_1793X)) {
      if ((index_1329X == (*((long *) ((((char *) (-3 + log_1330X))) + (4 + (((i_1792X)<<2)))))))) {
        addr_1794X = (((char *) (-3 + log_1330X))) + (8 + (((i_1792X)<<2)));S48_WRITE_BARRIER(log_1330X, addr_1794X, byte_1326X);
        *((long *) addr_1794X) = (long) (byte_1326X);
        goto L36922;}
      else {
        goto L19872;}}
    else {
      goto L19872;}}}
 L36888: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg3_1324X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((index_1325X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (byte_1326X);
  arg0K0 = 3;
  goto L29309;}
 L41716: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg3_1324X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1323X);
  x_1795X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1795X);
  arg0K0 = 3;
  goto L29309;}
 L51307: {
  reason_1796X = arg0K0;
  status_1797X = arg0K1;push_exception_setupB(reason_1796X, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg4_1334X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg3_1333X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1332X);
  merged_arg0K0 = status_1797X;
  merged_arg0K1 = 0;
  get_error_string_return_tag = 3;
  goto get_error_string;
 get_error_string_return_3:
  x_1798X = get_error_string0_return_value;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1798X);
  arg0K0 = 4;
  goto L29309;}
 L56319: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg4_1334X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg3_1333X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1332X);
  x_1799X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1799X);
  arg0K0 = 4;
  goto L29309;}
 L57032: {
push_exception_setupB(5, 1);
  x_1800X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1800X);
  arg0K0 = 1;
  goto L29309;}
 L51582: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1346X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (proc_1347X);
  arg0K0 = 2;
  goto L29309;}
 L54653: {
  firstP_1801X = arg3K0;
  vector_1802X = s48_find_all(type_1360X);
  if ((1 == vector_1802X)) {
    if (firstP_1801X) {s48_collect();
      arg3K0 = 0;
      goto L54653;}
    else {push_exception_setupB(8, 1);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) ((((type_1360X)<<2)));
      arg0K0 = 1;
      goto L29309;}}
  else {
    SvalS = vector_1802X;
    Scode_pointerS = ((Scode_pointerS) + 1);
    arg2K0 = (Scode_pointerS);
    goto L31612;}}
 L60862: {
  firstP_1803X = arg3K0;
  type_1804X = arg0K1;
  vector_1805X = s48_find_all_records(type_1804X);
  if ((1 == vector_1805X)) {
    if (firstP_1803X) {
      Stemp0S = type_1804X;s48_collect();
      value_1806X = Stemp0S;
      Stemp0S = 1;
      arg3K0 = 0;
      arg0K1 = value_1806X;
      goto L60862;}
    else {push_exception_setupB(8, 1);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (type_1804X);
      arg0K0 = 1;
      goto L29309;}}
  else {
    SvalS = vector_1805X;
    Scode_pointerS = ((Scode_pointerS) + 1);
    arg2K0 = (Scode_pointerS);
    goto L31612;}}
 L33348: {
push_exception_setupB(5, 1);
  x_1807X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1807X);
  arg0K0 = 1;
  goto L29309;}
 L31694: {
  Slast_code_calledS = code_1367X;
  Scode_pointerS = ((((char *) (-3 + code_1367X))) + (pc_1370X + (((size_1369X)>>2))));
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L29570: {
  ps_write_string("returning to nc ", (stderr));
  ps_write_integer((*((long *) (SstackS))), (stderr));
  arg0K0 = 0;
  arg0K1 = 25;
  arg0K2 = 0;
  goto L28737;}
 L32253: {
push_exception_setupB(5, 1);
  x_1808X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1808X);
  arg0K0 = 1;
  goto L29309;}
 L60910: {
  SvalS = (((old_1378X)<<2));
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L58129: {
  x_1809X = s48_schedule_alarm_interrupt((((p_1390X)>>2)));
  SvalS = (((x_1809X)<<2));
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L55867: {
  if ((1 == (SvalS))) {
    arg3K0 = 0;
    goto L55871;}
  else {
    arg3K0 = 1;
    goto L55871;}}
 L55872: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1392X);
  x_1810X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1810X);
  arg0K0 = 2;
  goto L29309;}
 L37122: {
  rest_list_1811X = arg0K0;
  if ((25 == rest_list_1811X)) {
    name_1812X = *((long *) ((SstackS) + (-8 + (((nargs_1395X)<<2)))));
    proc_1813X = *((long *) ((SstackS) + (-4 + (((nargs_1395X)<<2)))));
    args_1814X = SstackS;
    if ((3 == (3 & name_1812X))) {
      if ((16 == (31 & ((((*((long *) ((((char *) (-3 + name_1812X))) + -4))))>>2))))) {
        if ((3 == (3 & proc_1813X))) {
          if ((17 == (31 & ((((*((long *) ((((char *) (-3 + proc_1813X))) + -4))))>>2))))) {
            if ((4 == ((long)(((unsigned long)(*((long *) ((((char *) (-3 + proc_1813X))) + -4))))>>8)))) {
              SstackS = (ScontS);
              result_1815X = s48_external_call(proc_1813X, name_1812X, (-2 + nargs_1395X), args_1814X);
              if ((Sexternal_exceptionPS)) {
                Sexternal_exceptionPS = 0;
                arg0K0 = (Sexternal_exception_nargsS);
                goto L29309;}
              else {
                SvalS = result_1815X;
                Scode_pointerS = ((Scode_pointerS) + 1);
                arg2K0 = (Scode_pointerS);
                goto L31612;}}
            else {
              goto L37378;}}
          else {
            goto L37378;}}
        else {
          goto L37378;}}
      else {
        goto L37378;}}
    else {
      goto L37378;}}
  else {
    x_1816X = *((long *) (((char *) (-3 + rest_list_1811X))));
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (x_1816X);
    arg0K0 = (*((long *) ((((char *) (-3 + rest_list_1811X))) + 4)));
    goto L37122;}}
 L54748: {
  if ((1 == (SvalS))) {
    v_1817X = Hlookup2943((Sexported_bindingsS), arg2_1399X, 0);
    arg0K0 = v_1817X;
    goto L54789;}
  else {
    v_1818X = Hlookup2924((Simported_bindingsS), arg2_1399X, 0);
    arg0K0 = v_1818X;
    goto L54789;}}
 L54753: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1399X);
  x_1819X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1819X);
  arg0K0 = 2;
  goto L29309;}
 L40582: {
  if ((1 == (SvalS))) {
    arg0K0 = (Sexported_bindingsS);
    goto L40617;}
  else {
    arg0K0 = (Simported_bindingsS);
    goto L40617;}}
 L40587: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1401X);
  x_1820X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1820X);
  arg0K0 = 2;
  goto L29309;}
 L60970: {
  firstP_1821X = arg3K0;
  vector_1822X = s48_gather_objects(shared_binding_undefinedP, for_each_imported_binding);
  if ((1 == vector_1822X)) {
    if (firstP_1821X) {s48_collect();
      arg3K0 = 0;
      goto L60970;}
    else {push_exception_setupB(8, 1);
      arg0K0 = 0;
      goto L29309;}}
  else {
    SvalS = vector_1822X;
    Scode_pointerS = ((Scode_pointerS) + 1);
    arg2K0 = (Scode_pointerS);
    goto L31612;}}
 L56966: {
  option_1823X = arg0K0;
  seconds_1824X = arg0K1;
  mseconds_1825X = arg0K2;
  if ((536869 < seconds_1824X)) {push_exception_setupB(6, 1);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) ((((option_1823X)<<2)));
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) ((((seconds_1824X)<<2)));
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) ((((mseconds_1825X)<<2)));
    arg0K0 = 3;
    goto L29309;}
  else {
    SvalS = (((((1000 * seconds_1824X) + mseconds_1825X))<<2));
    Scode_pointerS = ((Scode_pointerS) + 1);
    arg2K0 = (Scode_pointerS);
    goto L31612;}}
 L61027: {
  s48_Scallback_return_stack_blockS = arg2_1421X;
  arg0K0 = x_1422X;
  goto L63848;}
 L49182: {
  val_1826X = arg0K0;
  SvalS = val_1826X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L49147: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1423X);
  x_1827X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1827X);
  arg0K0 = 2;
  goto L29309;}
 L48383: {
  len_1828X = ((n_1428X)<<2);
  addr_1829X = s48_allocate_small((4 + len_1828X));
  *((long *) addr_1829X) = (long) ((66 + (((len_1828X)<<8))));
  obj_1830X = 3 + (((long) (addr_1829X + 4)));
  arg0K0 = arg2_1427X;
  arg0K1 = (-1 + n_1428X);
  goto L48360;}
 L48335: {
  if ((25 == arg2_1427X)) {
    goto L48383;}
  else {push_exception_setupB(5, 1);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (arg2_1427X);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) ((((n_1428X)<<2)));
    arg0K0 = 2;
    goto L29309;}}
 L50325: {
  list_1831X = arg0K0;
  slow_1832X = arg0K1;
  move_slowP_1833X = arg3K2;
  if ((25 == list_1831X)) {
    SvalS = 1;
    Scode_pointerS = ((Scode_pointerS) + 1);
    arg2K0 = (Scode_pointerS);
    goto L31612;}
  else {
    if ((3 == (3 & list_1831X))) {
      if ((0 == (31 & ((((*((long *) ((((char *) (-3 + list_1831X))) + -4))))>>2))))) {
        head_1834X = *((long *) (((char *) (-3 + list_1831X))));
        if ((3 == (3 & head_1834X))) {
          if ((0 == (31 & ((((*((long *) ((((char *) (-3 + head_1834X))) + -4))))>>2))))) {
            if (((*((long *) (((char *) (-3 + head_1834X))))) == arg2_1430X)) {
              SvalS = head_1834X;
              Scode_pointerS = ((Scode_pointerS) + 1);
              arg2K0 = (Scode_pointerS);
              goto L31612;}
            else {
              list_1835X = *((long *) ((((char *) (-3 + list_1831X))) + 4));
              if ((list_1835X == slow_1832X)) {push_exception_setupB(5, 1);
                SstackS = ((SstackS) + -4);
                *((long *) (SstackS)) = (long) (arg2_1430X);
                SstackS = ((SstackS) + -4);
                *((long *) (SstackS)) = (long) (list_1431X);
                arg0K0 = 2;
                goto L29309;}
              else {
                if (move_slowP_1833X) {
                  arg0K0 = list_1835X;
                  arg0K1 = (*((long *) ((((char *) (-3 + slow_1832X))) + 4)));
                  arg3K2 = 0;
                  goto L50325;}
                else {
                  arg0K0 = list_1835X;
                  arg0K1 = slow_1832X;
                  arg3K2 = 1;
                  goto L50325;}}}}
          else {push_exception_setupB(5, 1);
            SstackS = ((SstackS) + -4);
            *((long *) (SstackS)) = (long) (arg2_1430X);
            SstackS = ((SstackS) + -4);
            *((long *) (SstackS)) = (long) (list_1431X);
            arg0K0 = 2;
            goto L29309;}}
        else {push_exception_setupB(5, 1);
          SstackS = ((SstackS) + -4);
          *((long *) (SstackS)) = (long) (arg2_1430X);
          SstackS = ((SstackS) + -4);
          *((long *) (SstackS)) = (long) (list_1431X);
          arg0K0 = 2;
          goto L29309;}}
      else {push_exception_setupB(5, 1);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (arg2_1430X);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (list_1431X);
        arg0K0 = 2;
        goto L29309;}}
    else {push_exception_setupB(5, 1);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (arg2_1430X);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (list_1431X);
      arg0K0 = 2;
      goto L29309;}}}
 L37454: {
push_exception_setupB(7, 2);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg3_1433X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1432X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((index_1434X)<<2)));
  arg0K0 = 3;
  goto L29309;}
 L37444: {
  arg0K0 = (*((long *) ((((char *) (-3 + arg3_1433X))) + (((index_1434X)<<2)))));
  goto L37453;}
 L37453: {
  value_1836X = arg0K0;
  SvalS = value_1836X;
  Scode_pointerS = ((Scode_pointerS) + 2);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L37474: {
push_exception_setupB(5, 2);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg3_1433X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1432X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((index_1434X)<<2)));
  arg0K0 = 3;
  goto L29309;}
 L37712: {
push_exception_setupB(7, 2);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg4_1441X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg3_1440X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((index_1442X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (value_1443X);
  arg0K0 = 4;
  goto L29309;}
 L37702: {
  addr_1837X = (((char *) (-3 + arg4_1441X))) + (((index_1442X)<<2));S48_WRITE_BARRIER(arg4_1441X, addr_1837X, value_1443X);
  *((long *) addr_1837X) = (long) (value_1443X);
  goto L37711;}
 L37711: {
  SvalS = 13;
  Scode_pointerS = ((Scode_pointerS) + 2);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L37734: {
push_exception_setupB(5, 2);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg4_1441X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg3_1440X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((index_1442X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (value_1443X);
  arg0K0 = 4;
  goto L29309;}
 L29928: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((encoding_1451X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((9 + (((value_1452X)<<8))));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg3_1448X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((start_1453X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((count_1454X)<<2)));
  arg0K0 = 5;
  goto L29309;}
 L29980: {
  x_1838X = arg0K0;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1838X);
  if (okP_1456X) {
    arg0K0 = (((count_1458X)<<2));
    goto L29990;}
  else {
    arg0K0 = 1;
    goto L29990;}}
 L30658: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg5_1450X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg4_1449X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg3_1448X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1447X);
  x_1839X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1839X);
  arg0K0 = 5;
  goto L29309;}
 L48538: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((encoding_1463X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((9 + (((value_1464X)<<8))));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg3_1460X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((start_1465X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((count_1466X)<<2)));
  arg0K0 = 5;
  goto L29309;}
 L55151: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg5_1462X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg4_1461X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg3_1460X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1459X);
  x_1840X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1840X);
  arg0K0 = 5;
  goto L29309;}
 L30213: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((encoding_1474X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg3_1472X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((start_1475X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((count_1476X)<<2)));
  arg0K0 = 4;
  goto L29309;}
 L30279: {
  x_1841X = arg0K0;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1841X);
  if (okP_1478X) {
    arg0K0 = (((count_1481X)<<2));
    goto L30289;}
  else {
    arg0K0 = 1;
    goto L30289;}}
 L30854: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg4_1473X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg3_1472X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1471X);
  x_1842X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1842X);
  arg0K0 = 4;
  goto L29309;}
 L48757: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((encoding_1485X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg3_1483X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((start_1486X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((count_1487X)<<2)));
  arg0K0 = 4;
  goto L29309;}
 L55347: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg4_1484X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg3_1483X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1482X);
  x_1843X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1843X);
  arg0K0 = 4;
  goto L29309;}
 L37991: {
  port_1844X = arg0K0;
  if ((3 == (3 & port_1844X))) {
    if ((7 == (31 & ((((*((long *) ((((char *) (-3 + port_1844X))) + -4))))>>2))))) {
      if ((0 == (4 & ((((*((long *) ((((char *) (-3 + port_1844X))) + 12))))>>2))))) {
        goto L38048;}
      else {
        b_1845X = *((long *) ((((char *) (-3 + port_1844X))) + 24));
        if ((1 == b_1845X)) {push_exception_setupB(13, 2);
          SstackS = ((SstackS) + -4);
          *((long *) (SstackS)) = (long) (port_1844X);
          arg0K0 = 1;
          goto L29309;}
        else {
          p_1846X = *((long *) ((((char *) (-3 + port_1844X))) + 28));
          p_1847X = *((long *) ((((char *) (-3 + port_1844X))) + 32));
          i_1848X = ((p_1846X)>>2);
          if ((i_1848X == (((p_1847X)>>2)))) {push_exception_setupB(13, 2);
            SstackS = ((SstackS) + -4);
            *((long *) (SstackS)) = (long) (port_1844X);
            arg0K0 = 1;
            goto L29309;}
          else {
            val_1849X = 4 + (((i_1848X)<<2));
            addr_1850X = (((char *) (-3 + port_1844X))) + 28;S48_WRITE_BARRIER(port_1844X, addr_1850X, val_1849X);
            *((long *) addr_1850X) = (long) (val_1849X);
            SvalS = ((((*((unsigned char *) ((((char *) (-3 + b_1845X))) + i_1848X))))<<2));
            Scode_pointerS = ((Scode_pointerS) + 2);
            arg2K0 = (Scode_pointerS);
            goto L31612;}}}}
    else {
      goto L38048;}}
  else {
    goto L38048;}}
 L38193: {
  port_1851X = arg0K0;
  if ((3 == (3 & port_1851X))) {
    if ((7 == (31 & ((((*((long *) ((((char *) (-3 + port_1851X))) + -4))))>>2))))) {
      if ((0 == (4 & ((((*((long *) ((((char *) (-3 + port_1851X))) + 12))))>>2))))) {
        goto L38250;}
      else {
        b_1852X = *((long *) ((((char *) (-3 + port_1851X))) + 24));
        if ((1 == b_1852X)) {push_exception_setupB(13, 2);
          SstackS = ((SstackS) + -4);
          *((long *) (SstackS)) = (long) (port_1851X);
          arg0K0 = 1;
          goto L29309;}
        else {
          p_1853X = *((long *) ((((char *) (-3 + port_1851X))) + 28));
          p_1854X = *((long *) ((((char *) (-3 + port_1851X))) + 32));
          i_1855X = ((p_1853X)>>2);
          if ((i_1855X == (((p_1854X)>>2)))) {push_exception_setupB(13, 2);
            SstackS = ((SstackS) + -4);
            *((long *) (SstackS)) = (long) (port_1851X);
            arg0K0 = 1;
            goto L29309;}
          else {
            SvalS = ((((*((unsigned char *) ((((char *) (-3 + b_1852X))) + i_1855X))))<<2));
            Scode_pointerS = ((Scode_pointerS) + 2);
            arg2K0 = (Scode_pointerS);
            goto L31612;}}}}
    else {
      goto L38250;}}
  else {
    goto L38250;}}
 L38388: {
  byte_1856X = arg0K0;
  port_1857X = arg0K1;
  if ((0 == (3 & byte_1856X))) {
    if ((3 == (3 & port_1857X))) {
      if ((7 == (31 & ((((*((long *) ((((char *) (-3 + port_1857X))) + -4))))>>2))))) {
        if ((0 == (8 & ((((*((long *) ((((char *) (-3 + port_1857X))) + 12))))>>2))))) {
          goto L38465;}
        else {
          if ((1 == (*((long *) ((((char *) (-3 + port_1857X))) + 32))))) {push_exception_setupB(13, 2);
            SstackS = ((SstackS) + -4);
            *((long *) (SstackS)) = (long) (byte_1856X);
            SstackS = ((SstackS) + -4);
            *((long *) (SstackS)) = (long) (port_1857X);
            arg0K0 = 2;
            goto L29309;}
          else {
            p_1858X = *((long *) ((((char *) (-3 + port_1857X))) + 28));
            b_1859X = *((long *) ((((char *) (-3 + port_1857X))) + 24));
            i_1860X = ((p_1858X)>>2);
            if ((i_1860X == ((long)(((unsigned long)(*((long *) ((((char *) (-3 + b_1859X))) + -4))))>>8)))) {push_exception_setupB(13, 2);
              SstackS = ((SstackS) + -4);
              *((long *) (SstackS)) = (long) (byte_1856X);
              SstackS = ((SstackS) + -4);
              *((long *) (SstackS)) = (long) (port_1857X);
              arg0K0 = 2;
              goto L29309;}
            else {
              val_1861X = 4 + (((i_1860X)<<2));
              addr_1862X = (((char *) (-3 + port_1857X))) + 28;S48_WRITE_BARRIER(port_1857X, addr_1862X, val_1861X);
              *((long *) addr_1862X) = (long) (val_1861X);
              *((unsigned char *) ((((char *) (-3 + b_1859X))) + i_1860X)) = (unsigned char) ((((byte_1856X)>>2)));
              SvalS = 13;
              Scode_pointerS = ((Scode_pointerS) + 2);
              arg2K0 = (Scode_pointerS);
              goto L31612;}}}}
      else {
        goto L38465;}}
    else {
      goto L38465;}}
  else {
    goto L38465;}}
 L38657: {
  port_1863X = arg0K0;
  if ((3 == (3 & port_1863X))) {
    if ((7 == (31 & ((((*((long *) ((((char *) (-3 + port_1863X))) + -4))))>>2))))) {
      if ((0 == (4 & ((((*((long *) ((((char *) (-3 + port_1863X))) + 12))))>>2))))) {
        goto L38830;}
      else {
        b_1864X = *((long *) ((((char *) (-3 + port_1863X))) + 24));
        if ((1 == b_1864X)) {push_exception_setupB(13, 2);
          SstackS = ((SstackS) + -4);
          *((long *) (SstackS)) = (long) (port_1863X);
          arg0K0 = 1;
          goto L29309;}
        else {
          arg0K0 = ((((*((long *) ((((char *) (-3 + port_1863X))) + 28))))>>2));
          goto L38686;}}}
    else {
      goto L38830;}}
  else {
    goto L38830;}}
 L39248: {
  port_1865X = arg0K0;
  if ((3 == (3 & port_1865X))) {
    if ((7 == (31 & ((((*((long *) ((((char *) (-3 + port_1865X))) + -4))))>>2))))) {
      if ((0 == (4 & ((((*((long *) ((((char *) (-3 + port_1865X))) + 12))))>>2))))) {
        goto L39421;}
      else {
        b_1866X = *((long *) ((((char *) (-3 + port_1865X))) + 24));
        if ((1 == b_1866X)) {push_exception_setupB(13, 2);
          SstackS = ((SstackS) + -4);
          *((long *) (SstackS)) = (long) (port_1865X);
          arg0K0 = 1;
          goto L29309;}
        else {
          arg0K0 = ((((*((long *) ((((char *) (-3 + port_1865X))) + 28))))>>2));
          goto L39277;}}}
    else {
      goto L39421;}}
  else {
    goto L39421;}}
 L39759: {
  Kchar_1867X = arg0K0;
  port_1868X = arg0K1;
  if ((9 == (255 & Kchar_1867X))) {
    if ((3 == (3 & port_1868X))) {
      if ((7 == (31 & ((((*((long *) ((((char *) (-3 + port_1868X))) + -4))))>>2))))) {
        if ((0 == (8 & ((((*((long *) ((((char *) (-3 + port_1868X))) + 12))))>>2))))) {
          goto L39978;}
        else {
          if ((1 == (*((long *) ((((char *) (-3 + port_1868X))) + 32))))) {push_exception_setupB(13, 2);
            SstackS = ((SstackS) + -4);
            *((long *) (SstackS)) = (long) (Kchar_1867X);
            SstackS = ((SstackS) + -4);
            *((long *) (SstackS)) = (long) (port_1868X);
            arg0K0 = 2;
            goto L29309;}
          else {
            codec_1869X = *((long *) ((((char *) (-3 + port_1868X))) + 4));
            if ((0 == (3 & codec_1869X))) {
              b_1870X = *((long *) ((((char *) (-3 + port_1868X))) + 24));
              i_1871X = (((*((long *) ((((char *) (-3 + port_1868X))) + 28))))>>2);
              l_1872X = (long)(((unsigned long)(*((long *) ((((char *) (-3 + b_1870X))) + -4))))>>8);
              if ((i_1871X == l_1872X)) {push_exception_setupB(13, 2);
                SstackS = ((SstackS) + -4);
                *((long *) (SstackS)) = (long) (Kchar_1867X);
                SstackS = ((SstackS) + -4);
                *((long *) (SstackS)) = (long) (port_1868X);
                arg0K0 = 2;
                goto L29309;}
              else {
                x_1873X = *((long *) ((((char *) (-3 + port_1868X))) + 8));
                if ((1 == x_1873X)) {
                  goto L39924;}
                else {
                  if ((10 == (((Kchar_1867X)>>8)))) {
                    codec_okP_1874X = encode_scalar_value((((codec_1869X)>>2)), 13, ((((char *) (-3 + b_1870X))) + i_1871X), (l_1872X - i_1871X), &encoding_okP_1875X, &out_of_spaceP_1876X, &count_1877X);
                    if (codec_okP_1874X) {
                      if (encoding_okP_1875X) {
                        if (out_of_spaceP_1876X) {push_exception_setupB(13, 2);
                          SstackS = ((SstackS) + -4);
                          *((long *) (SstackS)) = (long) (Kchar_1867X);
                          SstackS = ((SstackS) + -4);
                          *((long *) (SstackS)) = (long) (port_1868X);
                          arg0K0 = 2;
                          goto L29309;}
                        else {
                          i_1878X = i_1871X + count_1877X;
                          if ((i_1878X == l_1872X)) {push_exception_setupB(13, 2);
                            SstackS = ((SstackS) + -4);
                            *((long *) (SstackS)) = (long) (Kchar_1867X);
                            SstackS = ((SstackS) + -4);
                            *((long *) (SstackS)) = (long) (port_1868X);
                            arg0K0 = 2;
                            goto L29309;}
                          else {encode_scalar_value((((codec_1869X)>>2)), 10, ((((char *) (-3 + b_1870X))) + i_1878X), (l_1872X - i_1878X), &encoding_okP_1879X, &out_of_spaceP_1880X, &count_1881X);
                            if (encoding_okP_1879X) {
                              if (out_of_spaceP_1880X) {push_exception_setupB(13, 2);
                                SstackS = ((SstackS) + -4);
                                *((long *) (SstackS)) = (long) (Kchar_1867X);
                                SstackS = ((SstackS) + -4);
                                *((long *) (SstackS)) = (long) (port_1868X);
                                arg0K0 = 2;
                                goto L29309;}
                              else {
                                val_1882X = (((i_1878X + count_1881X))<<2);
                                addr_1883X = (((char *) (-3 + port_1868X))) + 28;S48_WRITE_BARRIER(port_1868X, addr_1883X, val_1882X);
                                *((long *) addr_1883X) = (long) (val_1882X);
                                SvalS = 13;
                                Scode_pointerS = ((Scode_pointerS) + 2);
                                arg2K0 = (Scode_pointerS);
                                goto L31612;}}
                            else {push_exception_setupB(13, 2);
                              SstackS = ((SstackS) + -4);
                              *((long *) (SstackS)) = (long) (Kchar_1867X);
                              SstackS = ((SstackS) + -4);
                              *((long *) (SstackS)) = (long) (port_1868X);
                              arg0K0 = 2;
                              goto L29309;}}}}
                      else {push_exception_setupB(13, 2);
                        SstackS = ((SstackS) + -4);
                        *((long *) (SstackS)) = (long) (Kchar_1867X);
                        SstackS = ((SstackS) + -4);
                        *((long *) (SstackS)) = (long) (port_1868X);
                        arg0K0 = 2;
                        goto L29309;}}
                    else {push_exception_setupB(5, 2);
                      SstackS = ((SstackS) + -4);
                      *((long *) (SstackS)) = (long) (Kchar_1867X);
                      SstackS = ((SstackS) + -4);
                      *((long *) (SstackS)) = (long) (port_1868X);
                      arg0K0 = 2;
                      goto L29309;}}
                  else {
                    goto L39924;}}}}
            else {push_exception_setupB(13, 2);
              SstackS = ((SstackS) + -4);
              *((long *) (SstackS)) = (long) (Kchar_1867X);
              SstackS = ((SstackS) + -4);
              *((long *) (SstackS)) = (long) (port_1868X);
              arg0K0 = 2;
              goto L29309;}}}}
      else {
        goto L39978;}}
    else {
      goto L39978;}}
  else {
    goto L39978;}}
 L50578: {
  stuff_1884X = arg0K0;
  if ((3 == (3 & stuff_1884X))) {
    if ((0 == (31 & ((((*((long *) ((((char *) (-3 + stuff_1884X))) + -4))))>>2))))) {
      thing_1885X = *((long *) (((char *) (-3 + stuff_1884X))));
      if ((0 == (3 & thing_1885X))) {
        ps_write_integer((((thing_1885X)>>2)), out_1510X);
        goto L50584;}
      else {
        if ((9 == (255 & thing_1885X))) {
          ps_write_string("#\\", out_1510X);
          { long ignoreXX;
          PS_WRITE_CHAR((((char) (((thing_1885X)>>8)))), out_1510X, ignoreXX) }
          goto L50584;}
        else {
          if ((3 == (3 & thing_1885X))) {
            if ((9 == (31 & ((((*((long *) ((((char *) (-3 + thing_1885X))) + -4))))>>2))))) {
              if ((0 < ((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + thing_1885X))) + -4))))>>8))))>>2)))) {
                type_1886X = *((long *) (((char *) (-3 + thing_1885X))));
                if ((3 == (3 & type_1886X))) {
                  if ((9 == (31 & ((((*((long *) ((((char *) (-3 + type_1886X))) + -4))))>>2))))) {
                    if ((2 < ((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + type_1886X))) + -4))))>>8))))>>2)))) {
                      obj_1887X = *((long *) ((((char *) (-3 + type_1886X))) + 8));
                      if ((3 == (3 & obj_1887X))) {
                        if ((1 == (31 & ((((*((long *) ((((char *) (-3 + obj_1887X))) + -4))))>>2))))) {
                          ps_write_string("#{", out_1510X);write_vm_string((*((long *) (((char *) (-3 + (*((long *) ((((char *) (-3 + (*((long *) (((char *) (-3 + thing_1885X)))))))) + 8)))))))), out_1510X);
                          { long ignoreXX;
                          PS_WRITE_CHAR(125, out_1510X, ignoreXX) }
                          goto L50584;}
                        else {
                          goto L22822;}}
                      else {
                        goto L22822;}}
                    else {
                      goto L22822;}}
                  else {
                    goto L22822;}}
                else {
                  goto L22822;}}
              else {
                goto L22822;}}
            else {
              goto L22822;}}
          else {
            goto L22822;}}}}
    else {
      goto L50569;}}
  else {
    goto L50569;}}
 L28341: {
  arg_count_1888X = arg0K0;
  if ((3 == (3 & handlers_1513X))) {
    if ((2 == (31 & ((((*((long *) ((((char *) (-3 + handlers_1513X))) + -4))))>>2))))) {
      goto L28355;}
    else {
      goto L28397;}}
  else {
    goto L28397;}}
 L15148: {
  channel_1889X = arg0K0;
  x_1890X = 1 == (Spending_channels_headS);
  if (x_1890X) {
    goto L15162;}
  else {
    Spending_interruptsS = (8 | (Spending_interruptsS));
    if ((0 == ((Spending_interruptsS) & (Senabled_interruptsS)))) {
      s48_Sstack_limitS = (Sreal_stack_limitS);
      if ((s48_Spending_eventsPS)) {
        s48_Sstack_limitS = (((char *) -1));
        goto L15162;}
      else {
        goto L15162;}}
    else {
      s48_Sstack_limitS = (((char *) -1));
      goto L15162;}}}
 L15332: {
  sig_1891X = *(Sos_signal_ringS + (Sos_signal_ring_startS));
  if ((31 == (Sos_signal_ring_startS))) {
    arg0K0 = 0;
    goto L15336;}
  else {
    arg0K0 = (1 + (Sos_signal_ring_startS));
    goto L15336;}}
 L11341: {
  count_1892X = arg0K0;
  i_1893X = arg0K1;
  offset_1894X = arg0K2;
  if ((0 == count_1892X)) {
    if ((i_1893X < total_count_1549X)) {
      arg0K0 = i_1893X;
      arg0K1 = offset_1894X;
      goto L9480;}
    else {
      arg0K0 = offset_1894X;
      goto L63865;}}
  else {
    value_1895X = *((long *) ((SstackS) + ((((*((unsigned char *) ((Scode_pointerS) + (1 + offset_1894X)))))<<2))));
    addr_1896X = (((char *) (-3 + new_env_1546X))) + (((i_1893X)<<2));S48_WRITE_BARRIER(new_env_1546X, addr_1896X, value_1895X);
    *((long *) addr_1896X) = (long) (value_1895X);
    arg0K0 = (-1 + count_1892X);
    arg0K1 = (1 + i_1893X);
    arg0K2 = (1 + offset_1894X);
    goto L11341;}}
 L14091: {
  count_1897X = arg0K0;
  i_1898X = arg0K1;
  offset_1899X = arg0K2;
  if ((0 == count_1897X)) {
    if ((i_1898X < total_count_1558X)) {
      arg0K0 = i_1898X;
      arg0K1 = offset_1899X;
      goto L10545;}
    else {
      arg0K0 = offset_1899X;
      goto L63856;}}
  else {
    value_1900X = *((long *) ((SstackS) + ((((((((*((unsigned char *) ((Scode_pointerS) + (1 + offset_1899X)))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + (2 + offset_1899X))))))<<2))));
    addr_1901X = (((char *) (-3 + new_env_1555X))) + (((i_1898X)<<2));S48_WRITE_BARRIER(new_env_1555X, addr_1901X, value_1900X);
    *((long *) addr_1901X) = (long) (value_1900X);
    arg0K0 = (-1 + count_1897X);
    arg0K1 = (1 + i_1898X);
    arg0K2 = (2 + offset_1899X);
    goto L14091;}}
 L58775: {
  pending_interruptP_return_tag = 5;
  goto pending_interruptP;
 pending_interruptP_return_5:
  v_1902X = pending_interruptP0_return_value;
  if (v_1902X) {
    arg0K0 = 2;
    goto L28597;}
  else {
    goto L58782;}}
 L58782: {
  v_1903X = s48_call_native_procedure((SvalS), 2);
  arg0K0 = v_1903X;
  goto L58572;}
 L58917: {
  pop_continuationB_return_tag = 4;
  goto pop_continuationB;
 pop_continuationB_return_4:
  Scode_pointerS = ((Scode_pointerS) + 2);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L58702: {
  protocol_skip_1904X = arg0K0;
  SstackS = (ScontS);
  cont_1905X = ScontS;
  pointer_1906X = (((char *) (*((long *) cont_1905X)))) + -2;
  size_1907X = ((((*((unsigned char *) pointer_1906X)))<<8)) + (*((unsigned char *) (pointer_1906X + 1)));
  if ((65535 == size_1907X)) {
    arg0K0 = ((((*((long *) (cont_1905X + 4))))>>2));
    goto L58713;}
  else {
    arg0K0 = size_1907X;
    goto L58713;}}
 L29655: {
  cont_1908X = arg0K0;
  if ((1 == cont_1908X)) {
    if ((0 == (3 & (SvalS)))) {
      s48_Scallback_return_stack_blockS = 1;
      arg0K0 = ((((SvalS))>>2));
      goto L63848;}
    else {
      goto L29670;}}
  else {
    goto L29670;}}
 L59061: {
  v_1909X = arg0K0;
  ScontS = (cont_1604X + (4 + (((v_1909X)<<2))));
  merged_arg0K0 = 0;
  move_args_above_contB_return_tag = 7;
  goto move_args_above_contB;
 move_args_above_contB_return_7:
  goto L58966;}
 L58966: {
  x_1910X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1910X);
  SvalS = proc_1603X;
  arg0K0 = 1;
  arg0K1 = 25;
  arg0K2 = 0;
  goto L58313;}
 L28826: {
  v_1911X = arg0K0;
  SvalS = v_1911X;
  pop_continuationB_return_tag = 5;
  goto pop_continuationB;
 pop_continuationB_return_5:
  arg0K0 = 1;
  goto L32036;}
 L29738: {
  stack_nargs_1912X = arg0K0;
  list_args_1913X = arg0K1;
  merged_arg0K0 = list_args_1913X;
  merged_arg0K1 = stack_nargs_1912X;
  pop_args_GlistSAgc_return_tag = 9;
  goto pop_args_GlistSAgc;
 pop_args_GlistSAgc_return_9:
  args_1914X = pop_args_GlistSAgc0_return_value;push_exception_setupB(4, 0);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (args_1914X);
  arg0K0 = 2;
  goto L29309;}
 L32036: {
  bytes_used_1915X = arg0K0;
  Scode_pointerS = ((Scode_pointerS) + (1 + bytes_used_1915X));
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L59246: {
  v_1916X = arg0K0;
  SvalS = v_1916X;
  arg0K0 = 2;
  goto L58702;}
 L28772: {
  if ((1 == (stack_nargs_1616X + list_arg_count_1618X))) {
    if ((1 == stack_nargs_1616X)) {
      v_1917X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg0K0 = v_1917X;
      goto L28850;}
    else {
      arg0K0 = (*((long *) (((char *) (-3 + list_args_1617X)))));
      goto L28850;}}
  else {
    arg0K0 = stack_nargs_1616X;
    arg0K1 = list_args_1617X;
    goto L29738;}}
 L28889: {
  v_1918X = arg0K0;
  ScontS = (cont_1627X + (4 + (((v_1918X)<<2))));
  merged_arg0K0 = stack_nargs_1616X;
  move_args_above_contB_return_tag = 8;
  goto move_args_above_contB;
 move_args_above_contB_return_8:
  arg0K0 = stack_nargs_1616X;
  arg0K1 = list_args_1617X;
  arg0K2 = list_arg_count_1618X;
  goto L58313;}
 L33086: {
  loc_1919X = arg2K0;
  arg_1920X = arg2K1;
  if ((arg_1920X < arg_top_1632X)) {
    SstackS = ((SstackS) + (0 - (((stack_nargs_1616X)<<2))));
    if ((count_1630X < stack_nargs_1616X)) {
      merged_arg0K0 = list_args_1617X;
      merged_arg0K1 = (stack_nargs_1616X - count_1630X);
      pop_args_GlistSAgc_return_tag = 10;
      goto pop_args_GlistSAgc;
     pop_args_GlistSAgc_return_10:
      v_1921X = pop_args_GlistSAgc0_return_value;
      arg0K0 = v_1921X;
      goto L33065;}
    else {
      arg0K0 = stack_nargs_1616X;
      arg0K1 = list_args_1617X;
      goto L33047;}}
  else {
    *((long *) loc_1919X) = (long) ((*((long *) arg_1920X)));
    arg2K0 = (loc_1919X + -4);
    arg2K1 = (arg_1920X + -4);
    goto L33086;}}
 L32938: {
  count_1922X = arg0K0;
  bytes_used_1923X = arg0K1;
  stack_nargs_1924X = arg0K2;
  list_args_1925X = arg0K3;
  list_arg_count_1926X = arg0K4;
  if ((count_1922X == (stack_nargs_1924X + list_arg_count_1926X))) {
    arg_top_1927X = SstackS;
    pop_continuationB_return_tag = 6;
    goto pop_continuationB;
   pop_continuationB_return_6:
    arg2K0 = ((SstackS) + -4);
    arg2K1 = (arg_top_1927X + (-4 + (((stack_nargs_1924X)<<2))));
    goto L32970;}
  else {
    merged_arg0K0 = list_args_1925X;
    merged_arg0K1 = stack_nargs_1924X;
    pop_args_GlistSAgc_return_tag = 11;
    goto pop_args_GlistSAgc;
   pop_args_GlistSAgc_return_11:
    args_1928X = pop_args_GlistSAgc0_return_value;push_exception_setupB(4, 0);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (1);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (args_1928X);
    arg0K0 = 2;
    goto L29309;}}
 L33252: {
push_exception_setupB(5, 8);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (template_1054X);
  arg0K0 = 1;
  goto L29309;}
 L18524: {
  if ((3 == (3 & x_1075X))) {
    if ((18 == (31 & ((((*((long *) ((((char *) (-3 + x_1075X))) + -4))))>>2))))) {
      arg0K0 = 5;
      goto L60289;}
    else {
      goto L18530;}}
  else {
    goto L18530;}}
 L49809: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (n_1076X);
  arg0K0 = 1;
  goto L29309;}
 L49804: {
  if ((3 == (3 & n_1076X))) {
    if ((18 == (31 & ((((*((long *) ((((char *) (-3 + n_1076X))) + -4))))>>2))))) {
      goto L49809;}
    else {
      goto L49810;}}
  else {
    goto L49810;}}
 L49962: {
  SvalS = 5;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L49945: {
  if ((3 == (3 & n_1640X))) {
    if ((8 == (31 & ((((*((long *) ((((char *) (-3 + n_1640X))) + -4))))>>2))))) {
      goto L49962;}
    else {
      goto L49953;}}
  else {
    goto L49953;}}
 L42487: {
  val_1929X = integer_add(arg2_1080X, y_1081X);
  SvalS = val_1929X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L42504: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1080X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (y_1081X);
  arg0K0 = 2;
  goto L29309;}
 L11588: {
  b_1930X = arg0K0;
  lo_a_1931X = 65535 & a_1650X;
  lo_b_1932X = 65535 & b_1930X;
  hi_a_1933X = 65535 & (((a_1650X)>>16));
  hi_b_1934X = 65535 & (((b_1930X)>>16));
  lo_c_1935X = SMALL_MULTIPLY(lo_a_1931X, lo_b_1932X);
  v_1936X = SMALL_MULTIPLY(lo_a_1931X, hi_b_1934X);
  v_1937X = SMALL_MULTIPLY(lo_b_1932X, hi_a_1933X);
  mid_c_1938X = v_1936X + v_1937X;
  c_1939X = lo_c_1935X + (((mid_c_1938X)<<16));
  if ((0 < hi_a_1933X)) {
    if ((0 < hi_b_1934X)) {
      val_1940X = integer_multiply(arg2_1083X, y_1084X);
      SvalS = val_1940X;
      Scode_pointerS = ((Scode_pointerS) + 1);
      arg2K0 = (Scode_pointerS);
      goto L31612;}
    else {
      goto L11630;}}
  else {
    goto L11630;}}
 L51708: {
  val_1941X = integer_multiply(arg2_1083X, y_1084X);
  SvalS = val_1941X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L51725: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1083X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (y_1084X);
  arg0K0 = 2;
  goto L29309;}
 L42776: {
  val_1942X = integer_subtract(arg2_1087X, y_1088X);
  SvalS = val_1942X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L42793: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1087X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (y_1088X);
  arg0K0 = 2;
  goto L29309;}
 L11846: {
  b_1943X = arg0K0;
  c_1944X = a_1666X / b_1943X;
  x_1945X = 0 == (a_1666X % b_1943X);
  if (x_1945X) {
    if ((a_1092X < 0)) {
      if ((b_1093X < 0)) {s48_make_availableAgc(16);
        if ((536870911 < c_1944X)) {
          goto L62016;}
        else {
          if ((c_1944X < -536870912)) {
            goto L62016;}
          else {
            arg0K0 = (((c_1944X)<<2));
            goto L62011;}}}
      else {
        goto L11892;}}
    else {
      if ((b_1093X < 0)) {
        goto L11892;}
      else {s48_make_availableAgc(16);
        if ((536870911 < c_1944X)) {
          goto L62038;}
        else {
          if ((c_1944X < -536870912)) {
            goto L62038;}
          else {
            arg0K0 = (((c_1944X)<<2));
            goto L62033;}}}}}
  else {push_exception_setupB(5, 1);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (arg2_1090X);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (y_1091X);
    arg0K0 = 2;
    goto L29309;}}
 L51961: {
  if ((0 == (3 & arg2_1090X))) {
    arg0K0 = 1;
    arg0K1 = 3;
    goto L20162;}
  else {
    arg0K0 = (-1 + ((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + arg2_1090X))) + -4))))>>8))))>>2)));
    arg0K1 = 0;
    goto L20162;}}
 L52006: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1090X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (y_1091X);
  arg0K0 = 2;
  goto L29309;}
 L43061: {
  b_1946X = integerE(arg2_1094X, y_1095X);
  if (b_1946X) {
    arg0K0 = 5;
    goto L43065;}
  else {
    arg0K0 = 1;
    goto L43065;}}
 L43081: {
  val_1947X = arg0K0;
  SvalS = val_1947X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L43082: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1094X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (y_1095X);
  arg0K0 = 2;
  goto L29309;}
 L43321: {
  if ((0 == (3 & arg2_1096X))) {
    if ((0 == (3 & y_1097X))) {
      if ((arg2_1096X < y_1097X)) {
        arg0K0 = 5;
        goto L43325;}
      else {
        arg0K0 = 1;
        goto L43325;}}
    else {
      v_1948X = s48_bignum_test((((char *) (-3 + y_1097X))));
      if ((1 == v_1948X)) {
        arg0K0 = 5;
        goto L43325;}
      else {
        arg0K0 = 1;
        goto L43325;}}}
  else {
    if ((0 == (3 & y_1097X))) {
      v_1949X = s48_bignum_test((((char *) (-3 + arg2_1096X))));
      if ((1 == v_1949X)) {
        arg0K0 = 1;
        goto L43325;}
      else {
        arg0K0 = 5;
        goto L43325;}}
    else {
      v_1950X = s48_bignum_compare((((char *) (-3 + arg2_1096X))), (((char *) (-3 + y_1097X))));
      if ((-1 == v_1950X)) {
        arg0K0 = 5;
        goto L43325;}
      else {
        arg0K0 = 1;
        goto L43325;}}}}
 L43341: {
  val_1951X = arg0K0;
  SvalS = val_1951X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L43342: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1096X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (y_1097X);
  arg0K0 = 2;
  goto L29309;}
 L43644: {
  if ((0 == (3 & y_1099X))) {
    if ((0 == (3 & arg2_1098X))) {
      if ((y_1099X < arg2_1098X)) {
        arg0K0 = 5;
        goto L43648;}
      else {
        arg0K0 = 1;
        goto L43648;}}
    else {
      v_1952X = s48_bignum_test((((char *) (-3 + arg2_1098X))));
      if ((1 == v_1952X)) {
        arg0K0 = 5;
        goto L43648;}
      else {
        arg0K0 = 1;
        goto L43648;}}}
  else {
    if ((0 == (3 & arg2_1098X))) {
      v_1953X = s48_bignum_test((((char *) (-3 + y_1099X))));
      if ((1 == v_1953X)) {
        arg0K0 = 1;
        goto L43648;}
      else {
        arg0K0 = 5;
        goto L43648;}}
    else {
      v_1954X = s48_bignum_compare((((char *) (-3 + y_1099X))), (((char *) (-3 + arg2_1098X))));
      if ((-1 == v_1954X)) {
        arg0K0 = 5;
        goto L43648;}
      else {
        arg0K0 = 1;
        goto L43648;}}}}
 L43664: {
  val_1955X = arg0K0;
  SvalS = val_1955X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L43665: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1098X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (y_1099X);
  arg0K0 = 2;
  goto L29309;}
 L43967: {
  b_1956X = integerLE(arg2_1100X, y_1101X);
  if (b_1956X) {
    arg0K0 = 5;
    goto L43971;}
  else {
    arg0K0 = 1;
    goto L43971;}}
 L43987: {
  val_1957X = arg0K0;
  SvalS = val_1957X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L43988: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1100X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (y_1101X);
  arg0K0 = 2;
  goto L29309;}
 L44261: {
  b_1958X = integerGE(arg2_1102X, y_1103X);
  if (b_1958X) {
    arg0K0 = 5;
    goto L44265;}
  else {
    arg0K0 = 1;
    goto L44265;}}
 L44281: {
  val_1959X = arg0K0;
  SvalS = val_1959X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L44282: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1102X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (y_1103X);
  arg0K0 = 2;
  goto L29309;}
 L12460: {
  b_1960X = arg0K0;
  c_1961X = a_1681X / b_1960X;
  if ((a_1107X < 0)) {
    if ((b_1108X < 0)) {
      goto L12506;}
    else {
      goto L12505;}}
  else {
    if ((b_1108X < 0)) {
      goto L12505;}
    else {
      goto L12506;}}}
 L44561: {
  val_1962X = Hinteger_op8311(arg2_1104X, y_1105X);
  SvalS = val_1962X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L44771: {
  b_1963X = arg0K0;
  c_1964X = a_1682X % b_1963X;
  if ((a_1112X < 0)) {
    arg0K0 = (0 - c_1964X);
    goto L44775;}
  else {
    arg0K0 = c_1964X;
    goto L44775;}}
 L44737: {
  val_1965X = Hinteger_op8242(arg2_1109X, y_1110X);
  SvalS = val_1965X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L53311: {
  SvalS = 0;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L53305: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1684X);
  arg0K0 = 1;
  goto L29309;}
 L52292: {
  x_1966X = arg0K0;s48_make_availableAgc(16);
  if ((536870911 < x_1966X)) {
    goto L52318;}
  else {
    if ((x_1966X < -536870912)) {
      goto L52318;}
    else {
      arg0K0 = (((x_1966X)<<2));
      goto L52313;}}}
 L23679: {
  length_1967X = arg0K0;
  extra_1968X = arg0K1;
  Stemp0S = x_1687X;s48_make_availableAgc(((((length_1967X + extra_1968X))<<2)));
  value_1969X = Stemp0S;
  Stemp0S = 1;
  if ((0 == (3 & value_1969X))) {
    v_1970X = (char *) s48_long_to_bignum((((value_1969X)>>2)));
    arg2K0 = v_1970X;
    goto L23671;}
  else {
    arg2K0 = (((char *) (-3 + value_1969X)));
    goto L23671;}}
 L45386: {
  x_1971X = arg0K0;
  count_1972X = arg0K1;
  if ((0 == x_1971X)) {
    SvalS = (((count_1972X)<<2));
    Scode_pointerS = ((Scode_pointerS) + 1);
    arg2K0 = (Scode_pointerS);
    goto L31612;}
  else {
    arg0K0 = (((x_1971X)>>1));
    arg0K1 = (count_1972X + (1 & x_1971X));
    goto L45386;}}
 L45471: {
  val_1973X = integer_bitwise_and(arg2_1138X, y_1139X);
  SvalS = val_1973X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L45634: {
  val_1974X = integer_bitwise_ior(arg2_1140X, y_1141X);
  SvalS = val_1974X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L45797: {
  val_1975X = integer_bitwise_xor(arg2_1142X, y_1143X);
  SvalS = val_1975X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L52462: {
  v_1976X = (char *) s48_long_to_bignum(x_1698X);
  v_1977X = enter_bignum(v_1976X);
  arg0K0 = v_1977X;
  goto L52457;}
 L52457: {
  val_1978X = arg0K0;
  SvalS = val_1978X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L52484: {
  v_1979X = (char *) s48_long_to_bignum(result_1700X);
  v_1980X = enter_bignum(v_1979X);
  arg0K0 = v_1980X;
  goto L52479;}
 L52479: {
  val_1981X = arg0K0;
  SvalS = val_1981X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L52355: {
  x_1982X = arg0K0;
  y_1983X = arg0K1;
  y_1984X = ((y_1983X)>>2);
  merged_arg0K0 = x_1982X;
  merged_arg0K1 = y_1984X;
  shift_space_return_tag = 1;
  goto shift_space;
 shift_space_return_1:
  needed_1985X = shift_space0_return_value;
  Stemp0S = x_1982X;s48_make_availableAgc((((needed_1985X)<<2)));
  value_1986X = Stemp0S;
  Stemp0S = 1;
  if ((0 == (3 & value_1986X))) {
    v_1987X = (char *) s48_long_to_bignum((((value_1986X)>>2)));
    arg2K0 = v_1987X;
    goto L52429;}
  else {
    arg2K0 = (((char *) (-3 + value_1986X)));
    goto L52429;}}
 L52506: {
  v_1988X = (char *) s48_long_to_bignum(result_1700X);
  v_1989X = enter_bignum(v_1988X);
  arg0K0 = v_1989X;
  goto L52501;}
 L52501: {
  val_1990X = arg0K0;
  SvalS = val_1990X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L52537: {
  x_1991X = arg2K0;
  external_bignum_1992X = (char *) s48_bignum_arithmetic_shift(x_1991X, y_1702X);
  v_1993X = s48_bignum_fits_in_word_p(external_bignum_1992X, 30, 1);
  if (v_1993X) {
    n_1994X = s48_bignum_to_long(external_bignum_1992X);
    arg0K0 = (((n_1994X)<<2));
    goto L52363;}
  else {
    v_1995X = enter_bignum(external_bignum_1992X);
    arg0K0 = v_1995X;
    goto L52363;}}
 L52364: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1144X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (y_1145X);
  arg0K0 = 2;
  goto L29309;}
 L34740: {
  i_1996X = arg0K0;
  rest_list_1997X = arg0K1;
  if ((25 == rest_list_1997X)) {
    SvalS = new_1173X;
    Scode_pointerS = ((Scode_pointerS) + 2);
    arg2K0 = (Scode_pointerS);
    goto L31612;}
  else {
    *((long *) ((((char *) (-3 + new_1173X))) + (((i_1996X)<<2)))) = (long) ((*((long *) (((char *) (-3 + rest_list_1997X))))));
    arg0K0 = (1 + i_1996X);
    arg0K1 = (*((long *) ((((char *) (-3 + rest_list_1997X))) + 4)));
    goto L34740;}}
 L35153: {
  i_1998X = arg0K0;
  if ((i_1998X < 0)) {
    SvalS = x_1719X;
    Scode_pointerS = ((Scode_pointerS) + 2);
    arg2K0 = (Scode_pointerS);
    goto L31612;}
  else {
    addr_1999X = (((char *) (-3 + x_1719X))) + (((i_1998X)<<2));S48_WRITE_BARRIER(x_1719X, addr_1999X, value_1720X);
    *((long *) addr_1999X) = (long) (value_1720X);
    arg0K0 = (-1 + i_1998X);
    goto L35153;}}
 L46110: {
  i_2000X = arg0K0;
  if ((i_2000X < 0)) {
    SvalS = vector_1724X;
    Scode_pointerS = ((Scode_pointerS) + 1);
    arg2K0 = (Scode_pointerS);
    goto L31612;}
  else {
    *((unsigned char *) ((((char *) (-3 + vector_1724X))) + i_2000X)) = (unsigned char) (init_1208X);
    arg0K0 = (-1 + i_2000X);
    goto L46110;}}
 L46295: {
  i_2001X = arg0K0;
  if ((i_2001X < 0)) {
    SvalS = vector_1728X;
    Scode_pointerS = ((Scode_pointerS) + 1);
    arg2K0 = (Scode_pointerS);
    goto L31612;}
  else {
    arg0K0 = 0;
    arg0K1 = 0;
    arg0K2 = init_1222X;
    goto L46382;}}
 L26965: {
  foo_2002X = arg0K0;
  if ((1 == foo_2002X)) {
    if ((3 == (3 & bucket_1741X))) {
      arg0K0 = (-4 & bucket_1741X);
      goto L26970;}
    else {
      arg0K0 = bucket_1741X;
      goto L26970;}}
  else {
    s2_2003X = *((long *) (((char *) (-3 + foo_2002X))));
    len_2004X = (long)(((unsigned long)(*((long *) ((((char *) (-3 + string_1246X))) + -4))))>>8);
    if ((len_2004X == ((long)(((unsigned long)(*((long *) ((((char *) (-3 + s2_2003X))) + -4))))>>8)))) {
      if (((!memcmp((void *)(((char *) (-3 + s2_2003X))), (void *)(((char *) (-3 + string_1246X))),len_2004X)))) {
        arg0K0 = foo_2002X;
        goto L42368;}
      else {
        goto L26985;}}
    else {
      goto L26985;}}}
 L50677: {
  SvalS = 13;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L46483: {
  index_2005X = arg0K0;
  temp_2006X = index_2005X < (Snumber_of_channelsS);
  if (temp_2006X) {
    goto L46598;}
  else {
    x_2007X = add_more_channels(index_2005X);
    if (x_2007X) {
      goto L46598;}
    else {
      arg0K0 = 1;
      arg0K1 = 9;
      goto L46487;}}}
 L46545: {
  v_2008X = ps_open_fd(filename_1749X, 1, &v_2009X);
  arg0K0 = v_2008X;
  arg0K1 = v_2009X;
  goto L46554;}
 L46554: {
  channel_2010X = arg0K0;
  status_2011X = arg0K1;
  if ((status_2011X == NO_ERRORS)) {
    arg0K0 = channel_2010X;
    goto L46483;}
  else {push_exception_setupB(24, 1);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (arg4_1259X);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) ((((mode_1260X)<<2)));
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) ((((status_2011X)<<2)));
    arg0K0 = 3;
    goto L29309;}}
 L54182: {
  waitP_2012X = arg3K0;
  start_2013X = ((arg3_1268X)>>2);
  count_2014X = ((arg2_1267X)>>2);
  v_2015X = 4 == (*((long *) (((char *) (-3 + arg5_1270X)))));
  if (v_2015X) {
    if ((3 == (3 & arg4_1269X))) {
      if ((17 == (31 & ((((*((long *) ((((char *) (-3 + arg4_1269X))) + -4))))>>2))))) {
        if ((3 == (3 & arg4_1269X))) {
          if ((0 == (128 & (*((long *) ((((char *) (-3 + arg4_1269X))) + -4)))))) {
            if ((((long)(((unsigned long)(*((long *) ((((char *) (-3 + arg4_1269X))) + -4))))>>8)) < (start_2013X + count_2014X))) {
              goto L47000;}
            else {
              got_2016X = ps_read_fd(((((*((long *) ((((char *) (-3 + arg5_1270X))) + 8))))>>2)), ((((char *) (-3 + arg4_1269X))) + start_2013X), count_2014X, waitP_2012X, &eofP_2017X, &pendingP_2018X, &status_2019X);
              if ((status_2019X == NO_ERRORS)) {
                if (eofP_2017X) {
                  arg0K0 = 21;
                  goto L46999;}
                else {
                  if (pendingP_2018X) {
                    addr_2020X = (((char *) (-3 + arg5_1270X))) + 20;S48_WRITE_BARRIER(arg5_1270X, addr_2020X, 5);
                    *((long *) addr_2020X) = (long) (5);
                    arg0K0 = 1;
                    goto L46999;}
                  else {
                    arg0K0 = (((got_2016X)<<2));
                    goto L46999;}}}
              else {
                addr_2021X = s48_allocate_small(8);
                *((long *) addr_2021X) = (long) (1046);
                x_2022X = 3 + (((long) (addr_2021X + 4)));
                *((long *) (((char *) (-3 + x_2022X)))) = (long) ((((status_2019X)<<2)));
                arg0K0 = x_2022X;
                goto L46999;}}}
          else {
            goto L47000;}}
        else {
          goto L47000;}}
      else {
        goto L47000;}}
    else {
      goto L47000;}}
  else {
    goto L47000;}}
 L14943: {
  arg0K0 = (*((long *) ((((char *) (-3 + channel_1294X))) + 20)));
  goto L54534;}
 L14973: {
  val_2023X = *((long *) ((((char *) (-3 + ch_1761X))) + 16));
  addr_2024X = (((char *) (-3 + prev_1762X))) + 16;S48_WRITE_BARRIER(prev_1762X, addr_2024X, val_2023X);
  *((long *) addr_2024X) = (long) (val_2023X);
  addr_2025X = (((char *) (-3 + ch_1761X))) + 16;S48_WRITE_BARRIER(ch_1761X, addr_2025X, 1);
  *((long *) addr_2025X) = (long) (1);
  arg0K0 = (*((long *) ((((char *) (-3 + ch_1761X))) + 20)));
  goto L54534;}
 L21547: {
  v_2026X = arg0K0;
  arg0K0 = (-1 + i_1767X);
  arg0K1 = v_2026X;
  goto L21533;}
 L47544: {
  if ((1 == proposal_1301X)) {
    goto L47556;}
  else {
    addr_2027X = ((char *) (-3 + proposal_1301X));S48_WRITE_BARRIER(proposal_1301X, addr_2027X, 5);
    *((long *) addr_2027X) = (long) (5);
    goto L47556;}}
 L13495: {
  i_2028X = arg0K0;
  stob_2029X = *((long *) ((((char *) (-3 + log_1776X))) + (((i_2028X)<<2))));
  if ((1 == stob_2029X)) {
    copies_2030X = *((long *) ((((char *) (-3 + proposal_1302X))) + 12));
    arg0K0 = copies_2030X;
    goto L47907;}
  else {
    value_2031X = *((long *) ((((char *) (-3 + log_1776X))) + (8 + (((i_2028X)<<2)))));
    verify_2032X = *((long *) ((((char *) (-3 + log_1776X))) + (12 + (((i_2028X)<<2)))));
    if ((29 == verify_2032X)) {
      if ((3 == (3 & stob_2029X))) {
        if ((0 == (128 & (*((long *) ((((char *) (-3 + stob_2029X))) + -4)))))) {
          goto L13547;}
        else {
          goto L47807;}}
      else {
        goto L47807;}}
    else {
      if ((verify_2032X == ((((*((unsigned char *) ((((char *) (-3 + stob_2029X))) + ((((*((long *) ((((char *) (-3 + log_1776X))) + (4 + (((i_2028X)<<2)))))))>>2))))))<<2)))) {
        if ((verify_2032X == value_2031X)) {
          goto L13547;}
        else {
          if ((3 == (3 & stob_2029X))) {
            if ((0 == (128 & (*((long *) ((((char *) (-3 + stob_2029X))) + -4)))))) {
              goto L13547;}
            else {
              goto L47807;}}
          else {
            goto L47807;}}}
      else {
        goto L47807;}}}}
 L13309: {
  arg0K0 = (4 + i_1774X);
  goto L13257;}
 L47807: {
RELEASE_PROPOSAL_LOCK();
  x_2033X = Scurrent_threadS;
  addr_2034X = (((char *) (-3 + x_2033X))) + 12;S48_WRITE_BARRIER(x_2033X, addr_2034X, 1);
  *((long *) addr_2034X) = (long) (1);
  SvalS = 1;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L12972: {
  vector_2035X = arg0K0;
  if ((1 == vector_2035X)) {
    ps_error("Out of space, unable to allocate", 0);
    arg0K0 = vector_2035X;
    goto L12935;}
  else {
    arg0K0 = vector_2035X;
    goto L12935;}}
 L19698: {
  arg0K0 = (4 + i_1788X);
  goto L19676;}
 L19872: {
  arg0K0 = (4 + i_1792X);
  goto L19852;}
 L55871: {
  minutesP_2036X = arg3K0;
  pending_interruptP_return_tag = 6;
  goto pending_interruptP;
 pending_interruptP_return_6:
  x_2037X = pending_interruptP0_return_value;
  if (x_2037X) {
    goto L55901;}
  else {
    if ((0 == (Spending_interruptsS))) {s48_wait_for_event((((arg2_1392X)>>2)), minutesP_2036X);
      goto L55901;}
    else {
      goto L55901;}}}
 L37378: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (proc_1813X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (name_1812X);
  arg0K0 = 2;
  goto L29309;}
 L54789: {
  val_2038X = arg0K0;
  SvalS = val_2038X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L40617: {
  table_2039X = arg0K0;
  v_2040X = Haction4940(arg2_1401X);
  index_2041X = 1023 & v_2040X;
  link_2042X = *((long *) ((((char *) (-3 + table_2039X))) + (((index_2041X)<<2))));
  if ((0 == (3 & link_2042X))) {
    arg0K0 = (3 + (-4 & link_2042X));
    goto L26463;}
  else {
    arg0K0 = link_2042X;
    goto L26463;}}
 L48360: {
  l_2043X = arg0K0;
  i_2044X = arg0K1;
  if ((i_2044X < 0)) {
    SvalS = obj_1830X;
    Scode_pointerS = ((Scode_pointerS) + 1);
    arg2K0 = (Scode_pointerS);
    goto L31612;}
  else {
    d_2045X = *((long *) (((char *) (-3 + l_2043X))));
    arg0K0 = 0;
    arg0K1 = 0;
    arg0K2 = (((d_2045X)>>8));
    goto L48431;}}
 L29990: {
  x_2046X = arg0K0;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_2046X);
  arg0K0 = 2;
  arg0K1 = 25;
  arg0K2 = 0;
  goto L28737;}
 L30289: {
  x_2047X = arg0K0;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_2047X);
  arg0K0 = 2;
  arg0K1 = 25;
  arg0K2 = 0;
  goto L28737;}
 L38048: {
push_exception_setupB(5, 2);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (port_1844X);
  arg0K0 = 1;
  goto L29309;}
 L38250: {
push_exception_setupB(5, 2);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (port_1851X);
  arg0K0 = 1;
  goto L29309;}
 L38465: {
push_exception_setupB(5, 2);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (byte_1856X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (port_1857X);
  arg0K0 = 2;
  goto L29309;}
 L38830: {
push_exception_setupB(5, 2);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (port_1863X);
  arg0K0 = 1;
  goto L29309;}
 L38686: {
  i_2048X = arg0K0;
  p_2049X = *((long *) ((((char *) (-3 + port_1863X))) + 32));
  codec_2050X = *((long *) ((((char *) (-3 + port_1863X))) + 4));
  l_2051X = ((p_2049X)>>2);
  if ((i_2048X == l_2051X)) {
    val_2052X = ((i_2048X)<<2);
    addr_2053X = (((char *) (-3 + port_1863X))) + 28;S48_WRITE_BARRIER(port_1863X, addr_2053X, val_2052X);
    *((long *) addr_2053X) = (long) (val_2052X);push_exception_setupB(13, 2);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (port_1863X);
    arg0K0 = 1;
    goto L29309;}
  else {
    if ((0 == (3 & codec_2050X))) {
      encoding_okP_2054X = decode_scalar_value((((codec_2050X)>>2)), ((((char *) (-3 + b_1864X))) + i_2048X), (l_2051X - i_2048X), &okP_2055X, &incompleteP_2056X, &value_2057X, &count_2058X);
      if (encoding_okP_2054X) {
        if (okP_2055X) {
          if (incompleteP_2056X) {
            val_2059X = ((i_2048X)<<2);
            addr_2060X = (((char *) (-3 + port_1863X))) + 28;S48_WRITE_BARRIER(port_1863X, addr_2060X, val_2059X);
            *((long *) addr_2060X) = (long) (val_2059X);push_exception_setupB(13, 2);
            SstackS = ((SstackS) + -4);
            *((long *) (SstackS)) = (long) (port_1863X);
            arg0K0 = 1;
            goto L29309;}
          else {
            if ((1 == (*((long *) ((((char *) (-3 + port_1863X))) + 8))))) {
              goto L38740;}
            else {
              if ((13 == value_2057X)) {
                addr_2061X = (((char *) (-3 + port_1863X))) + 36;S48_WRITE_BARRIER(port_1863X, addr_2061X, 5);
                *((long *) addr_2061X) = (long) (5);
                val_2062X = (((i_2048X + count_2058X))<<2);
                addr_2063X = (((char *) (-3 + port_1863X))) + 28;S48_WRITE_BARRIER(port_1863X, addr_2063X, val_2062X);
                *((long *) addr_2063X) = (long) (val_2062X);
                SvalS = 2569;
                Scode_pointerS = ((Scode_pointerS) + 2);
                arg2K0 = (Scode_pointerS);
                goto L31612;}
              else {
                if ((10 == value_2057X)) {
                  if ((1 == (*((long *) ((((char *) (-3 + port_1863X))) + 36))))) {
                    goto L38740;}
                  else {
                    addr_2064X = (((char *) (-3 + port_1863X))) + 36;S48_WRITE_BARRIER(port_1863X, addr_2064X, 1);
                    *((long *) addr_2064X) = (long) (1);
                    arg0K0 = (i_2048X + count_2058X);
                    goto L38686;}}
                else {
                  goto L38740;}}}}}
        else {
          val_2065X = ((i_2048X)<<2);
          addr_2066X = (((char *) (-3 + port_1863X))) + 28;S48_WRITE_BARRIER(port_1863X, addr_2066X, val_2065X);
          *((long *) addr_2066X) = (long) (val_2065X);push_exception_setupB(13, 2);
          SstackS = ((SstackS) + -4);
          *((long *) (SstackS)) = (long) (port_1863X);
          arg0K0 = 1;
          goto L29309;}}
      else {push_exception_setupB(5, 2);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (port_1863X);
        arg0K0 = 1;
        goto L29309;}}
    else {
      val_2067X = ((i_2048X)<<2);
      addr_2068X = (((char *) (-3 + port_1863X))) + 28;S48_WRITE_BARRIER(port_1863X, addr_2068X, val_2067X);
      *((long *) addr_2068X) = (long) (val_2067X);push_exception_setupB(13, 2);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (port_1863X);
      arg0K0 = 1;
      goto L29309;}}}
 L39421: {
push_exception_setupB(5, 2);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (port_1865X);
  arg0K0 = 1;
  goto L29309;}
 L39277: {
  i_2069X = arg0K0;
  p_2070X = *((long *) ((((char *) (-3 + port_1865X))) + 32));
  codec_2071X = *((long *) ((((char *) (-3 + port_1865X))) + 4));
  l_2072X = ((p_2070X)>>2);
  if ((i_2069X == l_2072X)) {push_exception_setupB(13, 2);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (port_1865X);
    arg0K0 = 1;
    goto L29309;}
  else {
    if ((0 == (3 & codec_2071X))) {
      encoding_okP_2073X = decode_scalar_value((((codec_2071X)>>2)), ((((char *) (-3 + b_1866X))) + i_2069X), (l_2072X - i_2069X), &okP_2074X, &incompleteP_2075X, &value_2076X, &count_2077X);
      if (encoding_okP_2073X) {
        if (okP_2074X) {
          if (incompleteP_2075X) {push_exception_setupB(13, 2);
            SstackS = ((SstackS) + -4);
            *((long *) (SstackS)) = (long) (port_1865X);
            arg0K0 = 1;
            goto L29309;}
          else {
            if ((1 == (*((long *) ((((char *) (-3 + port_1865X))) + 8))))) {
              SvalS = (9 + (((value_2076X)<<8)));
              Scode_pointerS = ((Scode_pointerS) + 2);
              arg2K0 = (Scode_pointerS);
              goto L31612;}
            else {
              if ((13 == value_2076X)) {
                SvalS = 2569;
                Scode_pointerS = ((Scode_pointerS) + 2);
                arg2K0 = (Scode_pointerS);
                goto L31612;}
              else {
                if ((10 == value_2076X)) {
                  if ((1 == (*((long *) ((((char *) (-3 + port_1865X))) + 36))))) {
                    SvalS = (9 + (((value_2076X)<<8)));
                    Scode_pointerS = ((Scode_pointerS) + 2);
                    arg2K0 = (Scode_pointerS);
                    goto L31612;}
                  else {
                    arg0K0 = (i_2069X + count_2077X);
                    goto L39277;}}
                else {
                  SvalS = (9 + (((value_2076X)<<8)));
                  Scode_pointerS = ((Scode_pointerS) + 2);
                  arg2K0 = (Scode_pointerS);
                  goto L31612;}}}}}
        else {push_exception_setupB(13, 2);
          SstackS = ((SstackS) + -4);
          *((long *) (SstackS)) = (long) (port_1865X);
          arg0K0 = 1;
          goto L29309;}}
      else {push_exception_setupB(5, 2);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (port_1865X);
        arg0K0 = 1;
        goto L29309;}}
    else {push_exception_setupB(13, 2);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (port_1865X);
      arg0K0 = 1;
      goto L29309;}}}
 L39978: {
push_exception_setupB(5, 2);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (Kchar_1867X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (port_1868X);
  arg0K0 = 2;
  goto L29309;}
 L39924: {
  codec_okP_2078X = encode_scalar_value((((codec_1869X)>>2)), (((Kchar_1867X)>>8)), ((((char *) (-3 + b_1870X))) + i_1871X), (l_1872X - i_1871X), &encoding_okP_2079X, &out_of_spaceP_2080X, &count_2081X);
  if (codec_okP_2078X) {
    if (encoding_okP_2079X) {
      if (out_of_spaceP_2080X) {push_exception_setupB(13, 2);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (Kchar_1867X);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (port_1868X);
        arg0K0 = 2;
        goto L29309;}
      else {
        val_2082X = (((i_1871X + count_2081X))<<2);
        addr_2083X = (((char *) (-3 + port_1868X))) + 28;S48_WRITE_BARRIER(port_1868X, addr_2083X, val_2082X);
        *((long *) addr_2083X) = (long) (val_2082X);
        SvalS = 13;
        Scode_pointerS = ((Scode_pointerS) + 2);
        arg2K0 = (Scode_pointerS);
        goto L31612;}}
    else {push_exception_setupB(13, 2);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (Kchar_1867X);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (port_1868X);
      arg0K0 = 2;
      goto L29309;}}
  else {push_exception_setupB(5, 2);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (Kchar_1867X);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (port_1868X);
    arg0K0 = 2;
    goto L29309;}}
 L50584: {
  arg0K0 = (*((long *) ((((char *) (-3 + stuff_1884X))) + 4)));
  goto L50578;}
 L22822: {
  if ((3 == (3 & thing_1885X))) {
    if ((16 == (31 & ((((*((long *) ((((char *) (-3 + thing_1885X))) + -4))))>>2))))) {write_vm_string(thing_1885X, out_1510X);
      goto L50584;}
    else {
      goto L22826;}}
  else {
    goto L22826;}}
 L50569: {
  { long ignoreXX;
  PS_WRITE_CHAR(10, out_1510X, ignoreXX) }
  SvalS = 13;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L28355: {
  SvalS = (*((long *) ((((char *) (-3 + handlers_1513X))) + (((i_1511X)<<2)))));
  obj_2084X = SvalS;
  if ((3 == (3 & obj_2084X))) {
    if ((3 == (31 & ((((*((long *) ((((char *) (-3 + obj_2084X))) + -4))))>>2))))) {
      goto L28372;}
    else {
      goto L28411;}}
  else {
    goto L28411;}}
 L28397: {
  ps_error("interrupt handler is not a vector", 0);
  goto L28355;}
 L15162: {
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (channel_1889X);
  x_2085X = *((long *) ((((char *) (-3 + channel_1889X))) + 24));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_2085X);
  x_2086X = *((long *) ((((char *) (-3 + channel_1889X))) + 20));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_2086X);
  n_2087X = Senabled_interruptsS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((n_2087X)<<2)));
  arg0K0 = 4;
  goto L28341;}
 L15336: {
  v_2088X = arg0K0;
  Sos_signal_ring_startS = v_2088X;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((sig_1891X)<<2)));
  if (((Sos_signal_ring_readyS) == (Sos_signal_ring_startS))) {
    goto L15194;}
  else {
    Spending_interruptsS = (16 | (Spending_interruptsS));
    if ((0 == ((Spending_interruptsS) & (Senabled_interruptsS)))) {
      s48_Sstack_limitS = (Sreal_stack_limitS);
      if ((s48_Spending_eventsPS)) {
        s48_Sstack_limitS = (((char *) -1));
        goto L15194;}
      else {
        goto L15194;}}
    else {
      s48_Sstack_limitS = (((char *) -1));
      goto L15194;}}}
 L9480: {
  i_2089X = arg0K0;
  offset_2090X = arg0K1;
  if ((i_2089X == total_count_1549X)) {
    arg0K0 = offset_2090X;
    goto L63865;}
  else {
    env_2091X = *((long *) ((SstackS) + ((((*((unsigned char *) ((Scode_pointerS) + (1 + offset_2090X)))))<<2))));
    count_2092X = *((unsigned char *) ((Scode_pointerS) + (2 + offset_2090X)));
    arg0K0 = count_2092X;
    arg0K1 = i_2089X;
    arg0K2 = (2 + offset_2090X);
    goto L9497;}}
 L63865: {
  bytes_used_2093X = arg0K0;
  SvalS = new_env_1000X;
  Scode_pointerS = ((Scode_pointerS) + (1 + bytes_used_2093X));
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L10545: {
  i_2094X = arg0K0;
  offset_2095X = arg0K1;
  if ((i_2094X == total_count_1558X)) {
    arg0K0 = offset_2095X;
    goto L63856;}
  else {
    env_2096X = *((long *) ((SstackS) + ((((((((*((unsigned char *) ((Scode_pointerS) + (1 + offset_2095X)))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + (2 + offset_2095X))))))<<2))));
    index_2097X = 2 + offset_2095X;
    count_2098X = ((((*((unsigned char *) ((Scode_pointerS) + (1 + index_2097X)))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + (2 + index_2097X))));
    arg0K0 = count_2098X;
    arg0K1 = i_2094X;
    arg0K2 = (4 + offset_2095X);
    goto L10562;}}
 L63856: {
  bytes_used_2099X = arg0K0;
  SvalS = new_env_1006X;
  Scode_pointerS = ((Scode_pointerS) + (1 + bytes_used_2099X));
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L58713: {
  v_2100X = arg0K0;
  ScontS = (cont_1905X + (4 + (((v_2100X)<<2))));
  v_2101X = *((long *) (SstackS));
  SstackS = ((SstackS) + 4);
  v_2102X = s48_invoke_native_continuation((((long) (((char *) v_2101X)))), protocol_skip_1904X);
  arg0K0 = v_2102X;
  goto L58572;}
 L29670: {
  SstackS = (Sbottom_of_stackS);
  Sheap_continuationS = 1;
  ScontS = (Sbottom_of_stackS);push_exception_setupB(5, 0);
  x_2103X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_2103X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (cont_1908X);
  arg0K0 = 2;
  goto L29309;}
 L28850: {
  v_2104X = arg0K0;
  SvalS = v_2104X;
  arg0K0 = cont_1625X;
  goto L29655;}
 L33065: {
  x_2105X = arg0K0;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_2105X);
  Scode_pointerS = ((Scode_pointerS) + 4);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L33047: {
  stack_nargs_2106X = arg0K0;
  l_2107X = arg0K1;
  if ((count_1630X == stack_nargs_2106X)) {
    arg0K0 = l_2107X;
    goto L33065;}
  else {
    x_2108X = *((long *) (((char *) (-3 + l_2107X))));
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (x_2108X);
    arg0K0 = (1 + stack_nargs_2106X);
    arg0K1 = (*((long *) ((((char *) (-3 + l_2107X))) + 4)));
    goto L33047;}}
 L32970: {
  loc_2109X = arg2K0;
  arg_2110X = arg2K1;
  if ((arg_2110X < arg_top_1927X)) {
    SstackS = ((SstackS) + (0 - (((stack_nargs_1924X)<<2))));
    if ((0 == list_arg_count_1926X)) {
      goto L32957;}
    else {
      merged_arg0K0 = list_args_1925X;
      merged_arg0K1 = list_arg_count_1926X;
      push_list_return_tag = 3;
      goto push_list;
     push_list_return_3:
      goto L32957;}}
  else {
    *((long *) loc_2109X) = (long) ((*((long *) arg_2110X)));
    arg2K0 = (loc_2109X + -4);
    arg2K1 = (arg_2110X + -4);
    goto L32970;}}
 L18530: {
  if ((3 == (3 & x_1075X))) {
    if ((11 == (31 & ((((*((long *) ((((char *) (-3 + x_1075X))) + -4))))>>2))))) {
      arg0K0 = 5;
      goto L60289;}
    else {
      arg0K0 = 1;
      goto L60289;}}
  else {
    arg0K0 = 1;
    goto L60289;}}
 L49810: {
  SvalS = 1;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L49953: {
  if ((3 == (3 & n_1640X))) {
    if ((18 == (31 & ((((*((long *) ((((char *) (-3 + n_1640X))) + -4))))>>2))))) {
      goto L49962;}
    else {
      goto L49963;}}
  else {
    goto L49963;}}
 L11630: {
  if ((536870911 < lo_c_1935X)) {
    val_2111X = integer_multiply(arg2_1083X, y_1084X);
    SvalS = val_2111X;
    Scode_pointerS = ((Scode_pointerS) + 1);
    arg2K0 = (Scode_pointerS);
    goto L31612;}
  else {
    if ((lo_c_1935X < 0)) {
      val_2112X = integer_multiply(arg2_1083X, y_1084X);
      SvalS = val_2112X;
      Scode_pointerS = ((Scode_pointerS) + 1);
      arg2K0 = (Scode_pointerS);
      goto L31612;}
    else {
      if ((8192 < mid_c_1938X)) {
        val_2113X = integer_multiply(arg2_1083X, y_1084X);
        SvalS = val_2113X;
        Scode_pointerS = ((Scode_pointerS) + 1);
        arg2K0 = (Scode_pointerS);
        goto L31612;}
      else {
        if ((a_1085X < 0)) {
          if ((b_1086X < 0)) {s48_make_availableAgc(16);
            if ((536870911 < c_1939X)) {
              goto L61913;}
            else {
              if ((c_1939X < -536870912)) {
                goto L61913;}
              else {
                arg0K0 = (((c_1939X)<<2));
                goto L61908;}}}
          else {
            goto L11658;}}
        else {
          if ((b_1086X < 0)) {
            goto L11658;}
          else {s48_make_availableAgc(16);
            if ((536870911 < c_1939X)) {
              goto L61935;}
            else {
              if ((c_1939X < -536870912)) {
                goto L61935;}
              else {
                arg0K0 = (((c_1939X)<<2));
                goto L61930;}}}}}}}}
 L62016: {
  v_2114X = (char *) s48_long_to_bignum(c_1944X);
  v_2115X = enter_bignum(v_2114X);
  arg0K0 = v_2115X;
  goto L62011;}
 L62011: {
  val_2116X = arg0K0;
  SvalS = val_2116X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L11892: {
  x_2117X = 0 - c_1944X;s48_make_availableAgc(16);
  if ((536870911 < x_2117X)) {
    goto L61994;}
  else {
    if ((x_2117X < -536870912)) {
      goto L61994;}
    else {
      arg0K0 = (((x_2117X)<<2));
      goto L61989;}}}
 L62038: {
  v_2118X = (char *) s48_long_to_bignum(c_1944X);
  v_2119X = enter_bignum(v_2118X);
  arg0K0 = v_2119X;
  goto L62033;}
 L62033: {
  val_2120X = arg0K0;
  SvalS = val_2120X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L20162: {
  length0_2121X = arg0K0;
  extra0_2122X = arg0K1;
  if ((0 == (3 & y_1091X))) {
    arg0K0 = 3;
    goto L20170;}
  else {
    arg0K0 = 0;
    goto L20170;}}
 L43065: {
  val_2123X = arg0K0;
  SvalS = val_2123X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L43325: {
  val_2124X = arg0K0;
  SvalS = val_2124X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L43648: {
  val_2125X = arg0K0;
  SvalS = val_2125X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L43971: {
  val_2126X = arg0K0;
  SvalS = val_2126X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L44265: {
  val_2127X = arg0K0;
  SvalS = val_2127X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L12506: {
  if ((536870911 < c_1961X)) {
    val_2128X = Hinteger_op8311(arg2_1104X, y_1105X);
    SvalS = val_2128X;
    Scode_pointerS = ((Scode_pointerS) + 1);
    arg2K0 = (Scode_pointerS);
    goto L31612;}
  else {
    SvalS = (((c_1961X)<<2));
    Scode_pointerS = ((Scode_pointerS) + 1);
    arg2K0 = (Scode_pointerS);
    goto L31612;}}
 L12505: {
  SvalS = ((((0 - c_1961X))<<2));
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L44775: {
  n_2129X = arg0K0;
  SvalS = (((n_2129X)<<2));
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L52318: {
  v_2130X = (char *) s48_long_to_bignum(x_1966X);
  v_2131X = enter_bignum(v_2130X);
  arg0K0 = v_2131X;
  goto L52313;}
 L52313: {
  val_2132X = arg0K0;
  SvalS = val_2132X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L23671: {
  x_2133X = arg2K0;
  v_2134X = s48_bignum_test(x_2133X);
  if ((-1 == v_2134X)) {
    v_2135X = (char *) s48_bignum_negate(x_2133X);
    arg2K0 = v_2135X;
    goto L23673;}
  else {
    arg2K0 = x_2133X;
    goto L23673;}}
 L52429: {
  x_2136X = arg2K0;
  external_bignum_2137X = (char *) s48_bignum_arithmetic_shift(x_2136X, y_1984X);
  v_2138X = s48_bignum_fits_in_word_p(external_bignum_2137X, 30, 1);
  if (v_2138X) {
    n_2139X = s48_bignum_to_long(external_bignum_2137X);
    arg0K0 = (((n_2139X)<<2));
    goto L52357;}
  else {
    v_2140X = enter_bignum(external_bignum_2137X);
    arg0K0 = v_2140X;
    goto L52357;}}
 L52363: {
  val_2141X = arg0K0;
  SvalS = val_2141X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L46382: {
  bits_2142X = arg0K0;
  j_2143X = arg0K1;
  shifted_2144X = arg0K2;
  if ((j_2143X < 4)) {
    *((unsigned char *) ((((char *) (-3 + vector_1728X))) + ((((i_2001X)<<2)) + j_2143X))) = (unsigned char) ((255 & shifted_2144X));
    arg0K0 = (8 + bits_2142X);
    arg0K1 = (1 + j_2143X);
    arg0K2 = ((long)(((unsigned long)shifted_2144X)>>8));
    goto L46382;}
  else {
    arg0K0 = (-1 + i_2001X);
    goto L46295;}}
 L26970: {
  b_2145X = arg0K0;
  addr_2146X = s48_allocate_small(12);
  *((long *) addr_2146X) = (long) (2054);
  x_2147X = 3 + (((long) (addr_2146X + 4)));
  *((long *) (((char *) (-3 + x_2147X)))) = (long) (string_1246X);
  *((long *) ((((char *) (-3 + x_2147X))) + 4)) = (long) (b_2145X);
  if ((3 == (3 & x_2147X))) {
    arg0K0 = (-4 & x_2147X);
    goto L26976;}
  else {
    arg0K0 = x_2147X;
    goto L26976;}}
 L42368: {
  val_2148X = arg0K0;
  SvalS = val_2148X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L26985: {
  link_2149X = *((long *) ((((char *) (-3 + foo_2002X))) + 4));
  if ((0 == (3 & link_2149X))) {
    arg0K0 = (3 + (-4 & link_2149X));
    goto L26965;}
  else {
    arg0K0 = link_2149X;
    goto L26965;}}
 L46598: {
  if ((1 == (*((Svm_channelsS) + index_2005X)))) {
    channel_2150X = make_channel((((mode_1260X)<<2)), arg3_1258X, (((index_2005X)<<2)), close_silentlyP_1261X, 1, 1, 1, 0);
    *((Svm_channelsS) + index_2005X) = channel_2150X;
    arg0K0 = channel_2150X;
    arg0K1 = 9;
    goto L46487;}
  else {
    arg0K0 = 1;
    arg0K1 = 11;
    goto L46487;}}
 L46487: {
  channel_2151X = arg0K0;
  reason_2152X = arg0K1;
  if ((1 == channel_2151X)) {
    if ((3 == (3 & arg4_1259X))) {
      if ((17 == (31 & ((((*((long *) ((((char *) (-3 + arg4_1259X))) + -4))))>>2))))) {
        if ((1 == mode_1260X)) {
          goto L46632;}
        else {
          if ((3 == mode_1260X)) {
            goto L46632;}
          else {
            v_2153X = ps_close_fd(index_2005X);
            arg0K0 = v_2153X;
            goto L46627;}}}
      else {push_exception_setupB(reason_2152X, 1);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (arg4_1259X);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) ((((mode_1260X)<<2)));
        arg0K0 = 2;
        goto L29309;}}
    else {push_exception_setupB(reason_2152X, 1);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (arg4_1259X);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) ((((mode_1260X)<<2)));
      arg0K0 = 2;
      goto L29309;}}
  else {
    SvalS = channel_2151X;
    Scode_pointerS = ((Scode_pointerS) + 1);
    arg2K0 = (Scode_pointerS);
    goto L31612;}}
 L47000: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg5_1270X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg4_1269X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((start_2013X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((count_2014X)<<2)));
  if (waitP_2012X) {
    arg0K0 = 5;
    goto L47016;}
  else {
    arg0K0 = 1;
    goto L47016;}}
 L46999: {
  val_2154X = arg0K0;
  SvalS = val_2154X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L47556: {
  x_2155X = Scurrent_threadS;
  addr_2156X = (((char *) (-3 + x_2155X))) + 12;S48_WRITE_BARRIER(x_2155X, addr_2156X, proposal_1301X);
  *((long *) addr_2156X) = (long) (proposal_1301X);
  SvalS = 13;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L47907: {
  copies_2157X = arg0K0;
  if ((1 == copies_2157X)) {
    log_2158X = *((long *) ((((char *) (-3 + proposal_1302X))) + 4));
    arg0K0 = 0;
    goto L12285;}
  else {
    thing_2159X = *((long *) ((((char *) (-3 + copies_2157X))) + 8));
    if ((3 == (3 & thing_2159X))) {
      if ((0 == (128 & (*((long *) ((((char *) (-3 + thing_2159X))) + -4)))))) {
        arg0K0 = (*((long *) ((((char *) (-3 + copies_2157X))) + 20)));
        goto L47907;}
      else {
        goto L47807;}}
    else {
      goto L47807;}}}
 L13547: {
  arg0K0 = (4 + i_2028X);
  goto L13495;}
 L12935: {
  entry_2160X = arg0K0;
  proposal_2161X = *((long *) ((((char *) (-3 + (Scurrent_threadS)))) + 12));
  value_2162X = Stemp0S;
  Stemp0S = 1;
  addr_2163X = ((char *) (-3 + entry_2160X));S48_WRITE_BARRIER(entry_2160X, addr_2163X, value_2162X);
  *((long *) addr_2163X) = (long) (value_2162X);
  addr_2164X = (((char *) (-3 + entry_2160X))) + 4;S48_WRITE_BARRIER(entry_2160X, addr_2164X, from_index_1782X);
  *((long *) addr_2164X) = (long) (from_index_1782X);
  value_2165X = Stemp1S;
  Stemp1S = 1;
  addr_2166X = (((char *) (-3 + entry_2160X))) + 8;S48_WRITE_BARRIER(entry_2160X, addr_2166X, value_2165X);
  *((long *) addr_2166X) = (long) (value_2165X);
  addr_2167X = (((char *) (-3 + entry_2160X))) + 12;S48_WRITE_BARRIER(entry_2160X, addr_2167X, to_index_1783X);
  *((long *) addr_2167X) = (long) (to_index_1783X);
  addr_2168X = (((char *) (-3 + entry_2160X))) + 16;S48_WRITE_BARRIER(entry_2160X, addr_2168X, count_1784X);
  *((long *) addr_2168X) = (long) (count_1784X);
  value_2169X = *((long *) ((((char *) (-3 + proposal_2161X))) + 12));
  addr_2170X = (((char *) (-3 + entry_2160X))) + 20;S48_WRITE_BARRIER(entry_2160X, addr_2170X, value_2169X);
  *((long *) addr_2170X) = (long) (value_2169X);
  addr_2171X = (((char *) (-3 + proposal_2161X))) + 12;S48_WRITE_BARRIER(proposal_2161X, addr_2171X, entry_2160X);
  *((long *) addr_2171X) = (long) (entry_2160X);
  SvalS = 13;
  Scode_pointerS = ((Scode_pointerS) + 2);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L55901: {
  SvalS = 13;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L26463: {
  bucket_2172X = arg0K0;
  arg0K0 = 1;
  arg0K1 = bucket_2172X;
  goto L26470;}
 L48431: {
  bits_2173X = arg0K0;
  j_2174X = arg0K1;
  shifted_2175X = arg0K2;
  if ((j_2174X < 4)) {
    *((unsigned char *) ((((char *) (-3 + obj_1830X))) + ((((i_2044X)<<2)) + j_2174X))) = (unsigned char) ((255 & shifted_2175X));
    arg0K0 = (8 + bits_2173X);
    arg0K1 = (1 + j_2174X);
    arg0K2 = ((long)(((unsigned long)shifted_2175X)>>8));
    goto L48431;}
  else {
    arg0K0 = (*((long *) ((((char *) (-3 + l_2043X))) + 4)));
    arg0K1 = (-1 + i_2044X);
    goto L48360;}}
 L38740: {
  addr_2176X = (((char *) (-3 + port_1863X))) + 36;S48_WRITE_BARRIER(port_1863X, addr_2176X, 1);
  *((long *) addr_2176X) = (long) (1);
  val_2177X = (((i_2048X + count_2058X))<<2);
  addr_2178X = (((char *) (-3 + port_1863X))) + 28;S48_WRITE_BARRIER(port_1863X, addr_2178X, val_2177X);
  *((long *) addr_2178X) = (long) (val_2177X);
  SvalS = (9 + (((value_2057X)<<8)));
  Scode_pointerS = ((Scode_pointerS) + 2);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L22826: {
  if ((3 == (3 & thing_1885X))) {
    if ((1 == (31 & ((((*((long *) ((((char *) (-3 + thing_1885X))) + -4))))>>2))))) {write_vm_string((*((long *) (((char *) (-3 + thing_1885X))))), out_1510X);
      goto L50584;}
    else {
      goto L22832;}}
  else {
    goto L22832;}}
 L28372: {
  Senabled_interruptsS = 0;
  if ((0 == ((Spending_interruptsS) & (Senabled_interruptsS)))) {
    s48_Sstack_limitS = (Sreal_stack_limitS);
    if ((s48_Spending_eventsPS)) {
      s48_Sstack_limitS = (((char *) -1));
      goto L28374;}
    else {
      goto L28374;}}
  else {
    s48_Sstack_limitS = (((char *) -1));
    goto L28374;}}
 L28411: {
  ps_error("interrupt handler is not a closure", 1, i_1511X);
  goto L28372;}
 L15194: {
  n_2179X = Senabled_interruptsS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((n_2179X)<<2)));
  arg0K0 = 2;
  goto L28341;}
 L9497: {
  count_2180X = arg0K0;
  i_2181X = arg0K1;
  offset_2182X = arg0K2;
  if ((0 == count_2180X)) {
    arg0K0 = i_2181X;
    arg0K1 = offset_2182X;
    goto L9480;}
  else {
    value_2183X = *((long *) ((((char *) (-3 + env_2091X))) + ((((*((unsigned char *) ((Scode_pointerS) + (1 + offset_2182X)))))<<2))));
    addr_2184X = (((char *) (-3 + new_env_1546X))) + (((i_2181X)<<2));S48_WRITE_BARRIER(new_env_1546X, addr_2184X, value_2183X);
    *((long *) addr_2184X) = (long) (value_2183X);
    arg0K0 = (-1 + count_2180X);
    arg0K1 = (1 + i_2181X);
    arg0K2 = (1 + offset_2182X);
    goto L9497;}}
 L10562: {
  count_2185X = arg0K0;
  i_2186X = arg0K1;
  offset_2187X = arg0K2;
  if ((0 == count_2185X)) {
    arg0K0 = i_2186X;
    arg0K1 = offset_2187X;
    goto L10545;}
  else {
    value_2188X = *((long *) ((((char *) (-3 + env_2096X))) + ((((((((*((unsigned char *) ((Scode_pointerS) + (1 + offset_2187X)))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + (2 + offset_2187X))))))<<2))));
    addr_2189X = (((char *) (-3 + new_env_1555X))) + (((i_2186X)<<2));S48_WRITE_BARRIER(new_env_1555X, addr_2189X, value_2188X);
    *((long *) addr_2189X) = (long) (value_2188X);
    arg0K0 = (-1 + count_2185X);
    arg0K1 = (1 + i_2186X);
    arg0K2 = (2 + offset_2187X);
    goto L10562;}}
 L32957: {
  Scode_pointerS = ((Scode_pointerS) + (1 + bytes_used_1923X));
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L49963: {
  if ((3 == (3 & n_1640X))) {
    if ((11 == (31 & ((((*((long *) ((((char *) (-3 + n_1640X))) + -4))))>>2))))) {push_exception_setupB(5, 1);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (n_1640X);
      arg0K0 = 1;
      goto L29309;}
    else {
      goto L49967;}}
  else {
    goto L49967;}}
 L61913: {
  v_2190X = (char *) s48_long_to_bignum(c_1939X);
  v_2191X = enter_bignum(v_2190X);
  arg0K0 = v_2191X;
  goto L61908;}
 L61908: {
  val_2192X = arg0K0;
  SvalS = val_2192X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L11658: {
  x_2193X = 0 - c_1939X;s48_make_availableAgc(16);
  if ((536870911 < x_2193X)) {
    goto L61891;}
  else {
    if ((x_2193X < -536870912)) {
      goto L61891;}
    else {
      arg0K0 = (((x_2193X)<<2));
      goto L61886;}}}
 L61935: {
  v_2194X = (char *) s48_long_to_bignum(c_1939X);
  v_2195X = enter_bignum(v_2194X);
  arg0K0 = v_2195X;
  goto L61930;}
 L61930: {
  val_2196X = arg0K0;
  SvalS = val_2196X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L61994: {
  v_2197X = (char *) s48_long_to_bignum(x_2117X);
  v_2198X = enter_bignum(v_2197X);
  arg0K0 = v_2198X;
  goto L61989;}
 L61989: {
  val_2199X = arg0K0;
  SvalS = val_2199X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L20170: {
  extra1_2200X = arg0K0;
  Stemp0S = arg2_1090X;
  Stemp1S = y_1091X;s48_make_availableAgc(((((((6 + (-2 & ((((7 + (((length0_2121X)<<2))))>>1)))) + extra0_2122X) + extra1_2200X))<<2)));
  value_2201X = Stemp0S;
  Stemp0S = 1;
  if ((0 == (3 & value_2201X))) {
    v_2202X = (char *) s48_long_to_bignum((((value_2201X)>>2)));
    arg2K0 = v_2202X;
    goto L23507;}
  else {
    arg2K0 = (((char *) (-3 + value_2201X)));
    goto L23507;}}
 L23673: {
  external_bignum_2203X = arg2K0;
  v_2204X = s48_bignum_fits_in_word_p(external_bignum_2203X, 30, 1);
  if (v_2204X) {
    n_2205X = s48_bignum_to_long(external_bignum_2203X);
    arg0K0 = (((n_2205X)<<2));
    goto L52295;}
  else {
    val_2206X = enter_bignum(external_bignum_2203X);
    arg0K0 = val_2206X;
    goto L52295;}}
 L52357: {
  val_2207X = arg0K0;
  SvalS = val_2207X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L26976: {
  value_2208X = arg0K0;
  addr_2209X = (((char *) (-3 + table_1245X))) + (((index_1248X)<<2));S48_WRITE_BARRIER(table_1245X, addr_2209X, value_2208X);
  *((long *) addr_2209X) = (long) (value_2208X);
  arg0K0 = x_2147X;
  goto L42368;}
 L46632: {
  v_2210X = ps_close_fd(index_2005X);
  arg0K0 = v_2210X;
  goto L46627;}
 L46627: {
  status_2211X = arg0K0;
  if ((status_2211X == NO_ERRORS)) {push_exception_setupB(reason_2152X, 1);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (arg4_1259X);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) ((((mode_1260X)<<2)));
    arg0K0 = 2;
    goto L29309;}
  else {channel_close_error(status_2211X, index_2005X, arg4_1259X);push_exception_setupB(reason_2152X, 1);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (arg4_1259X);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) ((((mode_1260X)<<2)));
    arg0K0 = 2;
    goto L29309;}}
 L47016: {
  x_2212X = arg0K0;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_2212X);
  arg0K0 = 5;
  goto L29309;}
 L12285: {
  i_2213X = arg0K0;
  stob_2214X = *((long *) ((((char *) (-3 + log_2158X))) + (((i_2213X)<<2))));
  if ((1 == stob_2214X)) {
    log_2215X = *((long *) ((((char *) (-3 + proposal_1302X))) + 8));
    arg0K0 = 0;
    goto L15974;}
  else {
    value_2216X = *((long *) ((((char *) (-3 + log_2158X))) + (8 + (((i_2213X)<<2)))));
    verify_2217X = *((long *) ((((char *) (-3 + log_2158X))) + (12 + (((i_2213X)<<2)))));
    if ((verify_2217X == value_2216X)) {
      goto L12317;}
    else {
      addr_2218X = (((char *) (-3 + stob_2214X))) + (-4 & (*((long *) ((((char *) (-3 + log_2158X))) + (4 + (((i_2213X)<<2)))))));S48_WRITE_BARRIER(stob_2214X, addr_2218X, value_2216X);
      *((long *) addr_2218X) = (long) (value_2216X);
      goto L12317;}}}
 L26470: {
  previous_foo_2219X = arg0K0;
  foo_2220X = arg0K1;
  if ((1 == foo_2220X)) {
    goto L40619;}
  else {
    s2_2221X = *((long *) (((char *) (-3 + foo_2220X))));
    len_2222X = (long)(((unsigned long)(*((long *) ((((char *) (-3 + arg2_1401X))) + -4))))>>8);
    if ((len_2222X == ((long)(((unsigned long)(*((long *) ((((char *) (-3 + s2_2221X))) + -4))))>>8)))) {
      if (((!memcmp((void *)(((char *) (-3 + s2_2221X))), (void *)(((char *) (-3 + arg2_1401X))),len_2222X)))) {
        if ((1 == previous_foo_2219X)) {
          value_2223X = *((long *) ((((char *) (-3 + foo_2220X))) + 12));
          addr_2224X = (((char *) (-3 + table_2039X))) + (((index_2041X)<<2));S48_WRITE_BARRIER(table_2039X, addr_2224X, value_2223X);
          *((long *) addr_2224X) = (long) (value_2223X);
          goto L40619;}
        else {
          val_2225X = *((long *) ((((char *) (-3 + foo_2220X))) + 12));
          addr_2226X = (((char *) (-3 + previous_foo_2219X))) + 12;S48_WRITE_BARRIER(previous_foo_2219X, addr_2226X, val_2225X);
          *((long *) addr_2226X) = (long) (val_2225X);
          goto L40619;}}
      else {
        goto L26529;}}
    else {
      goto L26529;}}}
 L22832: {
  if ((1 == thing_1885X)) {
    goto L22837;}
  else {
    if ((5 == thing_1885X)) {
      goto L22837;}
    else {
      if ((25 == thing_1885X)) {
        arg4K0 = "()";
        goto L22876;}
      else {
        if ((3 == (3 & thing_1885X))) {
          if ((0 == (31 & ((((*((long *) ((((char *) (-3 + thing_1885X))) + -4))))>>2))))) {
            arg4K0 = "(...)";
            goto L22876;}
          else {
            goto L22850;}}
        else {
          goto L22850;}}}}}
 L28374: {
  arg0K0 = arg_count_1888X;
  arg0K1 = 25;
  arg0K2 = 0;
  arg0K3 = (-2 - i_1511X);
  goto L59362;}
 L49967: {
  SvalS = 1;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L61891: {
  v_2227X = (char *) s48_long_to_bignum(x_2193X);
  v_2228X = enter_bignum(v_2227X);
  arg0K0 = v_2228X;
  goto L61886;}
 L61886: {
  val_2229X = arg0K0;
  SvalS = val_2229X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L23507: {
  x_2230X = arg2K0;
  value_2231X = Stemp1S;
  Stemp1S = 1;
  if ((0 == (3 & value_2231X))) {
    v_2232X = (char *) s48_long_to_bignum((((value_2231X)>>2)));
    arg2K0 = v_2232X;
    goto L23511;}
  else {
    arg2K0 = (((char *) (-3 + value_2231X)));
    goto L23511;}}
 L52295: {
  val_2233X = arg0K0;
  SvalS = val_2233X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L15974: {
  i_2234X = arg0K0;
  stob_2235X = *((long *) ((((char *) (-3 + log_2215X))) + (((i_2234X)<<2))));
  if ((1 == stob_2235X)) {
    copies_2236X = *((long *) ((((char *) (-3 + proposal_1302X))) + 12));
    arg0K0 = copies_2236X;
    goto L15889;}
  else {
    value_2237X = *((long *) ((((char *) (-3 + log_2215X))) + (8 + (((i_2234X)<<2)))));
    verify_2238X = *((long *) ((((char *) (-3 + log_2215X))) + (12 + (((i_2234X)<<2)))));
    if ((verify_2238X == value_2237X)) {
      goto L16006;}
    else {
      *((unsigned char *) ((((char *) (-3 + stob_2235X))) + ((((*((long *) ((((char *) (-3 + log_2215X))) + (4 + (((i_2234X)<<2)))))))>>2)))) = (unsigned char) ((((value_2237X)>>2)));
      goto L16006;}}}
 L12317: {
  arg0K0 = (4 + i_2213X);
  goto L12285;}
 L40619: {
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg2K0 = (Scode_pointerS);
  goto L31612;}
 L26529: {
  link_2239X = *((long *) ((((char *) (-3 + foo_2220X))) + 12));
  if ((0 == (3 & link_2239X))) {
    arg0K0 = foo_2220X;
    arg0K1 = (3 + (-4 & link_2239X));
    goto L26470;}
  else {
    arg0K0 = foo_2220X;
    arg0K1 = link_2239X;
    goto L26470;}}
 L22837: {
  if ((1 == thing_1885X)) {
    arg4K0 = "#f";
    goto L22876;}
  else {
    arg4K0 = "#t";
    goto L22876;}}
 L22876: {
  v_2240X = arg4K0;
  ps_write_string(v_2240X, out_1510X);
  goto L50584;}
 L22850: {
  if ((3 == (3 & thing_1885X))) {
    if ((2 == (31 & ((((*((long *) ((((char *) (-3 + thing_1885X))) + -4))))>>2))))) {
      arg4K0 = "#(...)";
      goto L22876;}
    else {
      goto L22854;}}
  else {
    goto L22854;}}
 L23511: {
  y_2241X = arg2K0;
  div_by_zeroP_2242X = s48_bignum_divide(x_2230X, y_2241X, &quot_2243X, &rem_2244X);
  if (div_by_zeroP_2242X) {
    v_2245X = s48_bignum_fits_in_word_p(y_2241X, 30, 1);
    if (v_2245X) {
      n_2246X = s48_bignum_to_long(y_2241X);
      arg0K0 = (((n_2246X)<<2));
      goto L23533;}
    else {
      v_2247X = enter_bignum(y_2241X);
      arg0K0 = v_2247X;
      goto L23533;}}
  else {
    v_2248X = s48_bignum_fits_in_word_p(y_2241X, 30, 1);
    if (v_2248X) {
      n_2249X = s48_bignum_to_long(y_2241X);
      arg0K0 = (((n_2249X)<<2));
      goto L23542;}
    else {
      v_2250X = enter_bignum(y_2241X);
      arg0K0 = v_2250X;
      goto L23542;}}}
 L15889: {
  copies_2251X = arg0K0;
  if ((1 == copies_2251X)) {
    value_2252X = Sempty_logS;
    addr_2253X = (((char *) (-3 + proposal_1302X))) + 4;S48_WRITE_BARRIER(proposal_1302X, addr_2253X, value_2252X);
    *((long *) addr_2253X) = (long) (value_2252X);
    value_2254X = Sempty_logS;
    addr_2255X = (((char *) (-3 + proposal_1302X))) + 8;S48_WRITE_BARRIER(proposal_1302X, addr_2255X, value_2254X);
    *((long *) addr_2255X) = (long) (value_2254X);
    addr_2256X = (((char *) (-3 + proposal_1302X))) + 12;S48_WRITE_BARRIER(proposal_1302X, addr_2256X, 1);
    *((long *) addr_2256X) = (long) (1);RELEASE_PROPOSAL_LOCK();
    x_2257X = Scurrent_threadS;
    addr_2258X = (((char *) (-3 + x_2257X))) + 12;S48_WRITE_BARRIER(x_2257X, addr_2258X, 1);
    *((long *) addr_2258X) = (long) (1);
    SvalS = 5;
    Scode_pointerS = ((Scode_pointerS) + 1);
    arg2K0 = (Scode_pointerS);
    goto L31612;}
  else {
    stob_2259X = *((long *) ((((char *) (-3 + copies_2251X))) + 8));
    v_2260X = (((*((long *) ((((char *) (-3 + copies_2251X))) + 12))))>>2);
    stob_2261X = *((long *) (((char *) (-3 + copies_2251X))));
    v_2262X = (((*((long *) ((((char *) (-3 + copies_2251X))) + 4))))>>2);
    v_2263X = (((*((long *) ((((char *) (-3 + copies_2251X))) + 16))))>>2);
    memmove((void *)((((char *) (-3 + stob_2259X))) + v_2260X), (void *)((((char *) (-3 + stob_2261X))) + v_2262X),v_2263X);
    arg0K0 = (*((long *) ((((char *) (-3 + copies_2251X))) + 20)));
    goto L15889;}}
 L16006: {
  arg0K0 = (4 + i_2234X);
  goto L15974;}
 L22854: {
  if ((3 == (3 & thing_1885X))) {
    if ((3 == (31 & ((((*((long *) ((((char *) (-3 + thing_1885X))) + -4))))>>2))))) {
      arg4K0 = "#{procedure}";
      goto L22876;}
    else {
      goto L22858;}}
  else {
    goto L22858;}}
 L23533: {
  v_2264X = arg0K0;
  v_2265X = s48_bignum_fits_in_word_p(x_2230X, 30, 1);
  if (v_2265X) {
    n_2266X = s48_bignum_to_long(x_2230X);
    arg3K0 = 1;
    arg0K1 = 0;
    arg0K2 = 0;
    arg0K3 = (((n_2266X)<<2));
    arg0K4 = v_2264X;
    goto L51968;}
  else {
    v_2267X = enter_bignum(x_2230X);
    arg3K0 = 1;
    arg0K1 = 0;
    arg0K2 = 0;
    arg0K3 = v_2267X;
    arg0K4 = v_2264X;
    goto L51968;}}
 L23542: {
  v_2268X = arg0K0;
  v_2269X = s48_bignum_fits_in_word_p(rem_2244X, 30, 1);
  if (v_2269X) {
    n_2270X = s48_bignum_to_long(rem_2244X);
    arg0K0 = (((n_2270X)<<2));
    goto L23538;}
  else {
    v_2271X = enter_bignum(rem_2244X);
    arg0K0 = v_2271X;
    goto L23538;}}
 L22858: {
  if ((3 == (3 & thing_1885X))) {
    if ((12 == (31 & ((((*((long *) ((((char *) (-3 + thing_1885X))) + -4))))>>2))))) {
      arg4K0 = "#{template}";
      goto L22876;}
    else {
      goto L22862;}}
  else {
    goto L22862;}}
 L51968: {
  div_by_zeroP_2272X = arg3K0;
  quot_2273X = arg0K1;
  rem_2274X = arg0K2;
  x_2275X = arg0K3;
  y_2276X = arg0K4;
  if (div_by_zeroP_2272X) {
    goto L51991;}
  else {
    if ((0 == (3 & rem_2274X))) {
      if ((0 == rem_2274X)) {
        SvalS = quot_2273X;
        Scode_pointerS = ((Scode_pointerS) + 1);
        arg2K0 = (Scode_pointerS);
        goto L31612;}
      else {
        goto L51991;}}
    else {
      goto L51991;}}}
 L23538: {
  v_2277X = arg0K0;
  v_2278X = s48_bignum_fits_in_word_p(quot_2243X, 30, 1);
  if (v_2278X) {
    n_2279X = s48_bignum_to_long(quot_2243X);
    arg0K0 = (((n_2279X)<<2));
    goto L23536;}
  else {
    v_2280X = enter_bignum(quot_2243X);
    arg0K0 = v_2280X;
    goto L23536;}}
 L22862: {
  if ((3 == (3 & thing_1885X))) {
    if ((4 == (31 & ((((*((long *) ((((char *) (-3 + thing_1885X))) + -4))))>>2))))) {
      arg4K0 = "#{location}";
      goto L22876;}
    else {
      goto L22866;}}
  else {
    goto L22866;}}
 L51991: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_2275X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (y_2276X);
  arg0K0 = 2;
  goto L29309;}
 L23536: {
  v_2281X = arg0K0;
  v_2282X = s48_bignum_fits_in_word_p(x_2230X, 30, 1);
  if (v_2282X) {
    n_2283X = s48_bignum_to_long(x_2230X);
    arg3K0 = 0;
    arg0K1 = v_2281X;
    arg0K2 = v_2277X;
    arg0K3 = (((n_2283X)<<2));
    arg0K4 = v_2268X;
    goto L51968;}
  else {
    v_2284X = enter_bignum(x_2230X);
    arg3K0 = 0;
    arg0K1 = v_2281X;
    arg0K2 = v_2277X;
    arg0K3 = v_2284X;
    arg0K4 = v_2268X;
    goto L51968;}}
 L22866: {
  if ((3 == (3 & thing_1885X))) {
    if ((17 == (31 & ((((*((long *) ((((char *) (-3 + thing_1885X))) + -4))))>>2))))) {
      arg4K0 = "#{code-vector}";
      goto L22876;}
    else {
      goto L22870;}}
  else {
    goto L22870;}}
 L22870: {
  if ((3 == (3 & thing_1885X))) {
    if ((10 == (31 & ((((*((long *) ((((char *) (-3 + thing_1885X))) + -4))))>>2))))) {
      arg4K0 = "#{continuation}";
      goto L22876;}
    else {
      arg4K0 = "???";
      goto L22876;}}
  else {
    arg4K0 = "???";
    goto L22876;}}
 loseD0: {
  message_884X = merged_arg4K0;{
  ps_write_string("Template UIDs: ", (stderr));
  current_code_2285X = current_code_vector();
  out_2286X = stderr;
  merged_arg2K0 = (SstackS);
  merged_arg0K1 = (((((ScontS) - (SstackS)))>>2));
  merged_arg0K2 = current_code_2285X;
  find_template_return_tag = 0;
  goto find_template;
 find_template_return_0:
  template_2287X = find_template0_return_value;
  merged_arg0K0 = template_2287X;
  merged_arg3K1 = 0;
  merged_arg5K2 = out_2286X;
  maybe_write_template_return_tag = 0;
  goto maybe_write_template;
 maybe_write_template_return_0:
  not_firstP_2288X = maybe_write_template0_return_value;
  arg2K0 = (ScontS);
  arg3K1 = not_firstP_2288X;
  goto L26415;}
 L26415: {
  cont_2289X = arg2K0;
  not_firstP_2290X = arg3K1;
  if ((cont_2289X == (Sbottom_of_stackS))) {
    cont_2291X = Sheap_continuationS;
    arg0K0 = cont_2291X;
    arg3K1 = not_firstP_2290X;
    goto L25703;}
  else {
    code_pointer_2292X = ((char *) (*((long *) cont_2289X)));
    pointer_2293X = code_pointer_2292X + -5;
    v_2294X = 3 + (((long) (code_pointer_2292X + (0 - (((((*((unsigned char *) pointer_2293X)))<<8)) + (*((unsigned char *) (pointer_2293X + 1))))))));
    pointer_2295X = (((char *) (*((long *) cont_2289X)))) + -2;
    size_2296X = ((((*((unsigned char *) pointer_2295X)))<<8)) + (*((unsigned char *) (pointer_2295X + 1)));
    if ((65535 == size_2296X)) {
      arg0K0 = ((((*((long *) (cont_2289X + 4))))>>2));
      goto L20951;}
    else {
      arg0K0 = size_2296X;
      goto L20951;}}}
 L25703: {
  cont_2297X = arg0K0;
  not_firstP_2298X = arg3K1;
  if ((3 == (3 & cont_2297X))) {
    if ((10 == (31 & ((((*((long *) ((((char *) (-3 + cont_2297X))) + -4))))>>2))))) {
      merged_arg2K0 = (((char *) (-3 + cont_2297X)));
      merged_arg0K1 = ((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + cont_2297X))) + -4))))>>8))))>>2));
      merged_arg0K2 = (*((long *) ((((char *) (-3 + cont_2297X))) + 4)));
      find_template_return_tag = 1;
      goto find_template;
     find_template_return_1:
      v_2299X = find_template0_return_value;
      merged_arg0K0 = v_2299X;
      merged_arg3K1 = not_firstP_2298X;
      merged_arg5K2 = out_2286X;
      maybe_write_template_return_tag = 1;
      goto maybe_write_template;
     maybe_write_template_return_1:
      v_2300X = maybe_write_template0_return_value;
      arg0K0 = (*((long *) ((((char *) (-3 + cont_2297X))) + 8)));
      arg3K1 = v_2300X;
      goto L25703;}
    else {
      goto L29407;}}
  else {
    goto L29407;}}
 L20951: {
  v_2301X = arg0K0;
  merged_arg2K0 = (cont_2289X + 4);
  merged_arg0K1 = v_2301X;
  merged_arg0K2 = v_2294X;
  find_template_return_tag = 2;
  goto find_template;
 find_template_return_2:
  v_2302X = find_template0_return_value;
  merged_arg0K0 = v_2302X;
  merged_arg3K1 = not_firstP_2290X;
  merged_arg5K2 = out_2286X;
  maybe_write_template_return_tag = 2;
  goto maybe_write_template;
 maybe_write_template_return_2:
  v_2303X = maybe_write_template0_return_value;
  pointer_2304X = (((char *) (*((long *) cont_2289X)))) + -2;
  size_2305X = ((((*((unsigned char *) pointer_2304X)))<<8)) + (*((unsigned char *) (pointer_2304X + 1)));
  if ((65535 == size_2305X)) {
    arg0K0 = ((((*((long *) (cont_2289X + 4))))>>2));
    goto L26433;}
  else {
    arg0K0 = size_2305X;
    goto L26433;}}
 L29407: {
  { long ignoreXX;
  PS_WRITE_CHAR(10, (stderr), ignoreXX) }
  why_2306X = (((*((long *) ((SstackS) + (((nargs_921X)<<2))))))>>2);
  if ((why_2306X == 1)) {
    if ((0 == (3 & (*((long *) (((char *) (-3 + (*((long *) ((SstackS) + (-4 + (((nargs_921X)<<2)))))))))))))) {
      ps_error(message_884X, 3, opcode_922X, why_2306X, ((((*((long *) (((char *) (-3 + (*((long *) ((SstackS) + (-4 + (((nargs_921X)<<2))))))))))))>>2)));
      goto loseD0_return;}
    else {
      goto L29354;}}
  else {
    goto L29354;}}
 L26433: {
  v_2307X = arg0K0;
  arg2K0 = (cont_2289X + (4 + (((v_2307X)<<2))));
  arg3K1 = v_2303X;
  goto L26415;}
 L29354: {
  ps_error(message_884X, 2, opcode_922X, why_2306X);
  goto loseD0_return;}
 loseD0_return:
  switch (loseD0_return_tag) {
  case 0: goto loseD0_return_0;
  default: goto loseD0_return_1;
  }}

 maybe_write_template: {
  template_881X = merged_arg0K0;
  not_firstP_882X = merged_arg3K1;
  out_883X = merged_arg5K2;{
  if (not_firstP_882X) {
    ps_write_string(" <- ", out_883X);
    goto L22549;}
  else {
    goto L22549;}}
 L22549: {
  if ((3 == (3 & template_881X))) {
    if ((12 == (31 & ((((*((long *) ((((char *) (-3 + template_881X))) + -4))))>>2))))) {
      name_2308X = *((long *) ((((char *) (-3 + template_881X))) + 8));
      if ((0 == (3 & name_2308X))) {
        ps_write_integer((((name_2308X)>>2)), out_883X);
        maybe_write_template0_return_value = 1;
        goto maybe_write_template_return;}
      else {
        if ((3 == (3 & name_2308X))) {
          if ((9 == (31 & ((((*((long *) ((((char *) (-3 + name_2308X))) + -4))))>>2))))) {
            obj_2309X = *((long *) ((((char *) (-3 + name_2308X))) + 8));
            if ((3 == (3 & obj_2309X))) {
              if ((16 == (31 & ((((*((long *) ((((char *) (-3 + obj_2309X))) + -4))))>>2))))) {write_vm_string((*((long *) ((((char *) (-3 + name_2308X))) + 8))), out_883X);
                maybe_write_template0_return_value = 1;
                goto maybe_write_template_return;}
              else {
                goto L22584;}}
            else {
              goto L22584;}}
          else {
            goto L22584;}}
        else {
          goto L22584;}}}
    else {
      goto L22607;}}
  else {
    goto L22607;}}
 L22584: {
  if ((3 == (3 & name_2308X))) {
    if ((9 == (31 & ((((*((long *) ((((char *) (-3 + name_2308X))) + -4))))>>2))))) {
      obj_2310X = *((long *) ((((char *) (-3 + name_2308X))) + 8));
      if ((3 == (3 & obj_2310X))) {
        if ((1 == (31 & ((((*((long *) ((((char *) (-3 + obj_2310X))) + -4))))>>2))))) {write_vm_string((*((long *) (((char *) (-3 + (*((long *) ((((char *) (-3 + name_2308X))) + 8)))))))), out_883X);
          maybe_write_template0_return_value = 1;
          goto maybe_write_template_return;}
        else {
          goto L22604;}}
      else {
        goto L22604;}}
    else {
      goto L22604;}}
  else {
    goto L22604;}}
 L22607: {
  ps_write_string(" ?? ", out_883X);
  maybe_write_template0_return_value = 1;
  goto maybe_write_template_return;}
 L22604: {
  ps_write_string("?", out_883X);
  maybe_write_template0_return_value = 1;
  goto maybe_write_template_return;}
 maybe_write_template_return:
  switch (maybe_write_template_return_tag) {
  case 0: goto maybe_write_template_return_0;
  case 1: goto maybe_write_template_return_1;
  default: goto maybe_write_template_return_2;
  }}

 find_template: {
  start_878X = merged_arg2K0;
  count_879X = merged_arg0K1;
  code_vector_880X = merged_arg0K2;{
  arg0K0 = 0;
  goto L18009;}
 L18009: {
  i_2311X = arg0K0;
  if ((i_2311X == count_879X)) {
    find_template0_return_value = 1;
    goto find_template_return;}
  else {
    next_2312X = *((long *) (start_878X + (((i_2311X)<<2))));
    if ((3 == (3 & next_2312X))) {
      if ((12 == (31 & ((((*((long *) ((((char *) (-3 + next_2312X))) + -4))))>>2))))) {
        if (((*((long *) (((char *) (-3 + next_2312X))))) == code_vector_880X)) {
          find_template0_return_value = next_2312X;
          goto find_template_return;}
        else {
          goto L18031;}}
      else {
        goto L18031;}}
    else {
      goto L18031;}}}
 L18031: {
  arg0K0 = (1 + i_2311X);
  goto L18009;}
 find_template_return:
  switch (find_template_return_tag) {
  case 0: goto find_template_return_0;
  case 1: goto find_template_return_1;
  default: goto find_template_return_2;
  }}

 rest_list_setupAgc: {
  wants_stack_args_874X = merged_arg0K0;
  stack_arg_count_875X = merged_arg0K1;
  list_args_876X = merged_arg0K2;
  list_arg_count_877X = merged_arg0K3;{
  if ((stack_arg_count_875X == wants_stack_args_874X)) {
    merged_arg0K0 = list_args_876X;
    merged_arg0K1 = list_arg_count_877X;
    copy_listSAgc_return_tag = 1;
    goto copy_listSAgc;
   copy_listSAgc_return_1:
    x_2313X = copy_listSAgc0_return_value;
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (x_2313X);
    goto rest_list_setupAgc_return;}
  else {
    if ((stack_arg_count_875X < wants_stack_args_874X)) {
      count_2314X = wants_stack_args_874X - stack_arg_count_875X;
      merged_arg0K0 = list_args_876X;
      merged_arg0K1 = count_2314X;
      push_list_return_tag = 4;
      goto push_list;
     push_list_return_4:
      v_2315X = push_list0_return_value;
      merged_arg0K0 = v_2315X;
      merged_arg0K1 = (list_arg_count_877X - count_2314X);
      copy_listSAgc_return_tag = 2;
      goto copy_listSAgc;
     copy_listSAgc_return_2:
      x_2316X = copy_listSAgc0_return_value;
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (x_2316X);
      goto rest_list_setupAgc_return;}
    else {
      merged_arg0K0 = list_args_876X;
      merged_arg0K1 = list_arg_count_877X;
      copy_listSAgc_return_tag = 3;
      goto copy_listSAgc;
     copy_listSAgc_return_3:
      v_2317X = copy_listSAgc0_return_value;
      merged_arg0K0 = v_2317X;
      merged_arg0K1 = (stack_arg_count_875X - wants_stack_args_874X);
      pop_args_GlistSAgc_return_tag = 12;
      goto pop_args_GlistSAgc;
     pop_args_GlistSAgc_return_12:
      x_2318X = pop_args_GlistSAgc0_return_value;
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (x_2318X);
      goto rest_list_setupAgc_return;}}}
 rest_list_setupAgc_return:
  switch (rest_list_setupAgc_return_tag) {
  case 0: goto rest_list_setupAgc_return_0;
  default: goto rest_list_setupAgc_return_1;
  }}

 push_list: {
  list_872X = merged_arg0K0;
  count_873X = merged_arg0K1;{
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (list_872X);
  merged_arg0K0 = count_873X;
  ensure_stack_spaceB_return_tag = 2;
  goto ensure_stack_spaceB;
 ensure_stack_spaceB_return_2:
  v_2319X = ensure_stack_spaceB0_return_value;
  if (v_2319X) {
    s48_Sstack_limitS = (((char *) -1));
    goto L27807;}
  else {
    goto L27807;}}
 L27807: {
  list_2320X = *((long *) (SstackS));
  SstackS = ((SstackS) + 4);
  arg0K0 = count_873X;
  arg0K1 = list_2320X;
  goto L27816;}
 L27816: {
  i_2321X = arg0K0;
  l_2322X = arg0K1;
  if ((0 < i_2321X)) {
    x_2323X = *((long *) (((char *) (-3 + l_2322X))));
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (x_2323X);
    arg0K0 = (-1 + i_2321X);
    arg0K1 = (*((long *) ((((char *) (-3 + l_2322X))) + 4)));
    goto L27816;}
  else {
    push_list0_return_value = l_2322X;
    goto push_list_return;}}
 push_list_return:
  switch (push_list_return_tag) {
  case 0: goto push_list_return_0;
  case 1: goto push_list_return_1;
  case 2: goto push_list_return_2;
  case 3: goto push_list_return_3;
  default: goto push_list_return_4;
  }}

 ensure_stack_spaceB: {
  need_871X = merged_arg0K0;{
  if ((((SstackS) + (256 - (((need_871X)<<2)))) < (s48_Sstack_limitS))) {
    interruptP_2324X = (s48_Sstack_limitS) == (((char *) -1));
    s48_Sstack_limitS = (Sreal_stack_limitS);
    if ((((SstackS) + (256 - (((need_871X)<<2)))) < (Sreal_stack_limitS))) {s48_copy_stack_into_heap();
      if ((((SstackS) + (256 - (((need_871X)<<2)))) < (Sreal_stack_limitS))) {
        ps_error("VM's stack is too small (how can this happen?)", 0);
        ensure_stack_spaceB0_return_value = interruptP_2324X;
        goto ensure_stack_spaceB_return;}
      else {
        ensure_stack_spaceB0_return_value = interruptP_2324X;
        goto ensure_stack_spaceB_return;}}
    else {
      ensure_stack_spaceB0_return_value = interruptP_2324X;
      goto ensure_stack_spaceB_return;}}
  else {
    ensure_stack_spaceB0_return_value = 0;
    goto ensure_stack_spaceB_return;}}
 ensure_stack_spaceB_return:
  switch (ensure_stack_spaceB_return_tag) {
  case 0: goto ensure_stack_spaceB_return_0;
  case 1: goto ensure_stack_spaceB_return_1;
  default: goto ensure_stack_spaceB_return_2;
  }}

 pop_args_GlistSAgc: {
  start_869X = merged_arg0K0;
  count_870X = merged_arg0K1;{
  Stemp0S = start_869X;s48_make_availableAgc(((((3 * count_870X))<<2)));
  value_2325X = Stemp0S;
  Stemp0S = 1;
  arg0K0 = value_2325X;
  arg0K1 = count_870X;
  goto L21736;}
 L21736: {
  args_2326X = arg0K0;
  count_2327X = arg0K1;
  if ((0 == count_2327X)) {
    pop_args_GlistSAgc0_return_value = args_2326X;
    goto pop_args_GlistSAgc_return;}
  else {
    a_2328X = *((long *) (SstackS));
    SstackS = ((SstackS) + 4);
    addr_2329X = s48_allocate_small(12);
    *((long *) addr_2329X) = (long) (2050);
    x_2330X = 3 + (((long) (addr_2329X + 4)));
    *((long *) (((char *) (-3 + x_2330X)))) = (long) (a_2328X);
    *((long *) ((((char *) (-3 + x_2330X))) + 4)) = (long) (args_2326X);
    arg0K0 = x_2330X;
    arg0K1 = (-1 + count_2327X);
    goto L21736;}}
 pop_args_GlistSAgc_return:
  switch (pop_args_GlistSAgc_return_tag) {
  case 0: goto pop_args_GlistSAgc_return_0;
  case 1: goto pop_args_GlistSAgc_return_1;
  case 2: goto pop_args_GlistSAgc_return_2;
  case 3: goto pop_args_GlistSAgc_return_3;
  case 4: goto pop_args_GlistSAgc_return_4;
  case 5: goto pop_args_GlistSAgc_return_5;
  case 6: goto pop_args_GlistSAgc_return_6;
  case 7: goto pop_args_GlistSAgc_return_7;
  case 8: goto pop_args_GlistSAgc_return_8;
  case 9: goto pop_args_GlistSAgc_return_9;
  case 10: goto pop_args_GlistSAgc_return_10;
  case 11: goto pop_args_GlistSAgc_return_11;
  default: goto pop_args_GlistSAgc_return_12;
  }}

 copy_listSAgc: {
  list_867X = merged_arg0K0;
  length_868X = merged_arg0K1;{
  if ((0 == length_868X)) {
    copy_listSAgc0_return_value = 25;
    goto copy_listSAgc_return;}
  else {
    Stemp0S = list_867X;s48_make_availableAgc(((((3 * length_868X))<<2)));
    value_2331X = Stemp0S;
    Stemp0S = 1;
    a_2332X = *((long *) (((char *) (-3 + value_2331X))));
    addr_2333X = s48_allocate_small(12);
    *((long *) addr_2333X) = (long) (2050);
    x_2334X = 3 + (((long) (addr_2333X + 4)));
    *((long *) (((char *) (-3 + x_2334X)))) = (long) (a_2332X);
    *((long *) ((((char *) (-3 + x_2334X))) + 4)) = (long) (25);
    arg0K0 = (*((long *) ((((char *) (-3 + value_2331X))) + 4)));
    arg0K1 = x_2334X;
    goto L21624;}}
 L21624: {
  l_2335X = arg0K0;
  last_2336X = arg0K1;
  if ((25 == l_2335X)) {
    copy_listSAgc0_return_value = x_2334X;
    goto copy_listSAgc_return;}
  else {
    a_2337X = *((long *) (((char *) (-3 + l_2335X))));
    addr_2338X = s48_allocate_small(12);
    *((long *) addr_2338X) = (long) (2050);
    x_2339X = 3 + (((long) (addr_2338X + 4)));
    *((long *) (((char *) (-3 + x_2339X)))) = (long) (a_2337X);
    *((long *) ((((char *) (-3 + x_2339X))) + 4)) = (long) (25);
    addr_2340X = (((char *) (-3 + last_2336X))) + 4;S48_WRITE_BARRIER(last_2336X, addr_2340X, x_2339X);
    *((long *) addr_2340X) = (long) (x_2339X);
    arg0K0 = (*((long *) ((((char *) (-3 + l_2335X))) + 4)));
    arg0K1 = x_2339X;
    goto L21624;}}
 copy_listSAgc_return:
  switch (copy_listSAgc_return_tag) {
  case 0: goto copy_listSAgc_return_0;
  case 1: goto copy_listSAgc_return_1;
  case 2: goto copy_listSAgc_return_2;
  default: goto copy_listSAgc_return_3;
  }}

 pop_continuationB: {
{ SstackS = (ScontS);
  cont_2341X = ScontS;
  pointer_2342X = (((char *) (*((long *) cont_2341X)))) + -2;
  size_2343X = ((((*((unsigned char *) pointer_2342X)))<<8)) + (*((unsigned char *) (pointer_2342X + 1)));
  if ((65535 == size_2343X)) {
    arg0K0 = ((((*((long *) (cont_2341X + 4))))>>2));
    goto L21468;}
  else {
    arg0K0 = size_2343X;
    goto L21468;}}
 L21468: {
  v_2344X = arg0K0;
  ScontS = (cont_2341X + (4 + (((v_2344X)<<2))));
  v_2345X = *((long *) (SstackS));
  SstackS = ((SstackS) + 4);
  Scode_pointerS = (((char *) v_2345X));
  Slast_code_pointer_resumedS = (Scode_pointerS);
  goto pop_continuationB_return;}
 pop_continuationB_return:
  switch (pop_continuationB_return_tag) {
  case 0: goto pop_continuationB_return_0;
  case 1: goto pop_continuationB_return_1;
  case 2: goto pop_continuationB_return_2;
  case 3: goto pop_continuationB_return_3;
  case 4: goto pop_continuationB_return_4;
  case 5: goto pop_continuationB_return_5;
  default: goto pop_continuationB_return_6;
  }}

 shift_space: {
  x_865X = merged_arg0K0;
  n_866X = merged_arg0K1;{
  if ((0 == (3 & x_865X))) {
    arg0K0 = 1;
    arg0K1 = 3;
    goto L20195;}
  else {
    arg0K0 = (-1 + ((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + x_865X))) + -4))))>>8))))>>2)));
    arg0K1 = 0;
    goto L20195;}}
 L20195: {
  x_size_2346X = arg0K0;
  extra_2347X = arg0K1;
  if ((n_866X < 0)) {
    if ((x_size_2346X < 1)) {
      arg0K0 = 1;
      goto L20237;}
    else {
      arg0K0 = x_size_2346X;
      goto L20237;}}
  else {
    n_2348X = n_866X / 30;
    arg0K0 = (3 + (((((7 + (((x_size_2346X)<<2))))>>2)) + ((((7 + (((n_2348X)<<2))))>>2))));
    goto L20215;}}
 L20237: {
  v_2349X = arg0K0;
  arg0K0 = (4 + ((-2 & ((((11 + (((v_2349X)<<2))))>>1))) + ((((7 + (((x_size_2346X)<<2))))>>2))));
  goto L20215;}
 L20215: {
  v_2350X = arg0K0;
  shift_space0_return_value = (extra_2347X + v_2350X);
  goto shift_space_return;}
 shift_space_return:
  switch (shift_space_return_tag) {
  case 0: goto shift_space_return_0;
  default: goto shift_space_return_1;
  }}

 proposal_d_write: {
  stob_862X = merged_arg0K0;
  index_863X = merged_arg0K1;
  value_864X = merged_arg0K2;{
  log_2351X = *((long *) ((((char *) (-3 + (*((long *) ((((char *) (-3 + (Scurrent_threadS)))) + 12)))))) + 4));
  arg0K0 = 0;
  goto L19765;}
 L19765: {
  i_2352X = arg0K0;
  next_stob_2353X = *((long *) ((((char *) (-3 + log_2351X))) + (((i_2352X)<<2))));
  if ((1 == next_stob_2353X)) {add_log_entryAgc(1, i_2352X, stob_862X, index_863X, value_864X, 0);
    goto proposal_d_write_return;}
  else {
    if ((stob_862X == next_stob_2353X)) {
      if ((index_863X == (*((long *) ((((char *) (-3 + log_2351X))) + (4 + (((i_2352X)<<2)))))))) {
        addr_2354X = (((char *) (-3 + log_2351X))) + (8 + (((i_2352X)<<2)));S48_WRITE_BARRIER(log_2351X, addr_2354X, value_864X);
        *((long *) addr_2354X) = (long) (value_864X);
        goto proposal_d_write_return;}
      else {
        goto L19785;}}
    else {
      goto L19785;}}}
 L19785: {
  arg0K0 = (4 + i_2352X);
  goto L19765;}
 proposal_d_write_return:
  switch (proposal_d_write_return_tag) {
  case 0: goto proposal_d_write_return_0;
  case 1: goto proposal_d_write_return_1;
  default: goto proposal_d_write_return_2;
  }}

 proposal_d_read: {
  stob_860X = merged_arg0K0;
  index_861X = merged_arg0K1;{
  log_2355X = *((long *) ((((char *) (-3 + (*((long *) ((((char *) (-3 + (Scurrent_threadS)))) + 12)))))) + 4));
  arg0K0 = 0;
  goto L19588;}
 L19588: {
  i_2356X = arg0K0;
  next_stob_2357X = *((long *) ((((char *) (-3 + log_2355X))) + (((i_2356X)<<2))));
  if ((1 == next_stob_2357X)) {
    v_2358X = add_log_entryAgc(1, i_2356X, stob_860X, index_861X, (*((long *) ((((char *) (-3 + stob_860X))) + (-4 & index_861X)))), 1);
    proposal_d_read0_return_value = v_2358X;
    goto proposal_d_read_return;}
  else {
    if ((stob_860X == next_stob_2357X)) {
      if ((index_861X == (*((long *) ((((char *) (-3 + log_2355X))) + (4 + (((i_2356X)<<2)))))))) {
        proposal_d_read0_return_value = (*((long *) ((((char *) (-3 + log_2355X))) + (8 + (((i_2356X)<<2))))));
        goto proposal_d_read_return;}
      else {
        goto L19610;}}
    else {
      goto L19610;}}}
 L19610: {
  arg0K0 = (4 + i_2356X);
  goto L19588;}
 proposal_d_read_return:
  switch (proposal_d_read_return_tag) {
  case 0: goto proposal_d_read_return_0;
  case 1: goto proposal_d_read_return_1;
  default: goto proposal_d_read_return_2;
  }}

 pending_interruptP: {
{ if ((s48_Spending_eventsPS)) {
    s48_Spending_eventsPS = 0;
    goto L19559;}
  else {
    goto L19545;}}
 L19559: {
  type_2359X = s48_get_next_event(&channel_2360X, &status_2361X);
  if ((type_2359X == ALARM_EVENT)) {
    arg0K0 = 1;
    goto L19565;}
  else {
    if ((type_2359X == KEYBOARD_INTERRUPT_EVENT)) {
      arg0K0 = 2;
      goto L19565;}
    else {
      if ((type_2359X == IO_COMPLETION_EVENT)) {enqueue_channelB(channel_2360X, status_2361X, 1);
        arg0K0 = 8;
        goto L19565;}
      else {
        if ((type_2359X == IO_ERROR_EVENT)) {enqueue_channelB(channel_2360X, status_2361X, 5);
          arg0K0 = 8;
          goto L19565;}
        else {
          if ((type_2359X == OS_SIGNAL_EVENT)) {
            arg0K0 = 16;
            goto L19565;}
          else {
            if ((type_2359X == NO_EVENT)) {
              arg0K0 = 0;
              goto L19565;}
            else {
              if ((type_2359X == ERROR_EVENT)) {
                ps_write_string("OS error while getting event", (stderr));
                { long ignoreXX;
                PS_WRITE_CHAR(10, (stderr), ignoreXX) }
                ps_write_string((ps_error_string(status_2361X)), (stderr));
                { long ignoreXX;
                PS_WRITE_CHAR(10, (stderr), ignoreXX) }
                arg0K0 = 0;
                goto L19565;}
              else {
                ps_write_string("unknown type of event", (stderr));
                { long ignoreXX;
                PS_WRITE_CHAR(10, (stderr), ignoreXX) }
                arg0K0 = 0;
                goto L19565;}}}}}}}}
 L19545: {
  if ((0 == ((Spending_interruptsS) & (Senabled_interruptsS)))) {
    s48_Sstack_limitS = (Sreal_stack_limitS);
    if ((s48_Spending_eventsPS)) {
      s48_Sstack_limitS = (((char *) -1));
      pending_interruptP0_return_value = 0;
      goto pending_interruptP_return;}
    else {
      pending_interruptP0_return_value = 0;
      goto pending_interruptP_return;}}
  else {
    pending_interruptP0_return_value = 1;
    goto pending_interruptP_return;}}
 L19565: {
  interrupt_bit_2362X = arg0K0;
  Spending_interruptsS = ((Spending_interruptsS) | interrupt_bit_2362X);
  if ((type_2359X == NO_EVENT)) {
    goto L19545;}
  else {
    goto L19559;}}
 pending_interruptP_return:
  switch (pending_interruptP_return_tag) {
  case 0: goto pending_interruptP_return_0;
  case 1: goto pending_interruptP_return_1;
  case 2: goto pending_interruptP_return_2;
  case 3: goto pending_interruptP_return_3;
  case 4: goto pending_interruptP_return_4;
  case 5: goto pending_interruptP_return_5;
  default: goto pending_interruptP_return_6;
  }}

 make_closure: {
  a_858X = merged_arg0K0;
  b_859X = merged_arg0K1;{
  addr_2363X = s48_allocate_small(12);
  *((long *) addr_2363X) = (long) (2062);
  x_2364X = 3 + (((long) (addr_2363X + 4)));
  *((long *) (((char *) (-3 + x_2364X)))) = (long) (a_858X);
  *((long *) ((((char *) (-3 + x_2364X))) + 4)) = (long) (b_859X);
  if ((3 == (3 & x_2364X))) {
    if ((0 == (128 & (*((long *) ((((char *) (-3 + x_2364X))) + -4)))))) {
      *((long *) ((((char *) (-3 + x_2364X))) + -4)) = (long) ((128 | (*((long *) ((((char *) (-3 + x_2364X))) + -4)))));
      make_closure0_return_value = x_2364X;
      goto make_closure_return;}
    else {
      make_closure0_return_value = x_2364X;
      goto make_closure_return;}}
  else {
    make_closure0_return_value = x_2364X;
    goto make_closure_return;}}
 make_closure_return:
  switch (make_closure_return_tag) {
  case 0: goto make_closure_return_0;
  default: goto make_closure_return_1;
  }}

 get_current_port: {
  marker_857X = merged_arg0K0;{
  thread_2365X = Scurrent_threadS;
  if ((3 == (3 & thread_2365X))) {
    if ((9 == (31 & ((((*((long *) ((((char *) (-3 + thread_2365X))) + -4))))>>2))))) {
      if ((1 < ((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + thread_2365X))) + -4))))>>8))))>>2)))) {
        arg0K0 = (*((long *) ((((char *) (-3 + thread_2365X))) + 4)));
        goto L17463;}
      else {
        goto L17513;}}
    else {
      goto L17513;}}
  else {
    goto L17513;}}
 L17463: {
  env_2366X = arg0K0;
  if ((3 == (3 & env_2366X))) {
    if ((0 == (31 & ((((*((long *) ((((char *) (-3 + env_2366X))) + -4))))>>2))))) {
      obj_2367X = *((long *) (((char *) (-3 + env_2366X))));
      if ((3 == (3 & obj_2367X))) {
        if ((0 == (31 & ((((*((long *) ((((char *) (-3 + obj_2367X))) + -4))))>>2))))) {
          if ((marker_857X == (*((long *) (((char *) (-3 + (*((long *) (((char *) (-3 + env_2366X)))))))))))) {
            get_current_port0_return_value = (*((long *) ((((char *) (-3 + (*((long *) (((char *) (-3 + env_2366X)))))))) + 4)));
            goto get_current_port_return;}
          else {
            arg0K0 = (*((long *) ((((char *) (-3 + env_2366X))) + 4)));
            goto L17463;}}
        else {
          goto L17535;}}
      else {
        goto L17535;}}
    else {
      goto L17535;}}
  else {
    goto L17535;}}
 L17513: {
  ps_error("current thread is not a record", 0);
  get_current_port0_return_value = v_2368X;
  goto get_current_port_return;}
 L17535: {
  if ((25 == env_2366X)) {
    if (((((marker_857X)>>2)) == 1)) {
      arg4K0 = "dynamic environment doesn't have current-output-port";
      goto L17489;}
    else {
      arg4K0 = "dynamic environment doesn't have current-input-port";
      goto L17489;}}
  else {
    ps_error("dynamic environment is not a proper list", 0);
    goto get_current_port_return;}}
 L17489: {
  v_2369X = arg4K0;
  ps_error(v_2369X, 0);
  goto get_current_port_return;}
 get_current_port_return:
  switch (get_current_port_return_tag) {
  case 0: goto get_current_port_return_0;
  case 1: goto get_current_port_return_1;
  case 2: goto get_current_port_return_2;
  case 3: goto get_current_port_return_3;
  case 4: goto get_current_port_return_4;
  default: goto get_current_port_return_5;
  }}

 okay_argument_list: {
  list_856X = merged_arg0K0;{
  arg0K0 = list_856X;
  arg0K1 = 0;
  arg0K2 = list_856X;
  arg3K3 = 0;
  goto L17330;}
 L17330: {
  fast_2370X = arg0K0;
  len_2371X = arg0K1;
  slow_2372X = arg0K2;
  move_slowP_2373X = arg3K3;
  if ((25 == fast_2370X)) {
    okay_argument_list0_return_value = 1;
    okay_argument_list1_return_value = len_2371X;
    goto okay_argument_list_return;}
  else {
    if ((3 == (3 & fast_2370X))) {
      if ((0 == (31 & ((((*((long *) ((((char *) (-3 + fast_2370X))) + -4))))>>2))))) {
        if (move_slowP_2373X) {
          if ((fast_2370X == slow_2372X)) {
            okay_argument_list0_return_value = 0;
            okay_argument_list1_return_value = 0;
            goto okay_argument_list_return;}
          else {
            arg0K0 = (*((long *) ((((char *) (-3 + fast_2370X))) + 4)));
            arg0K1 = (1 + len_2371X);
            arg0K2 = (*((long *) ((((char *) (-3 + slow_2372X))) + 4)));
            arg3K3 = 0;
            goto L17330;}}
        else {
          arg0K0 = (*((long *) ((((char *) (-3 + fast_2370X))) + 4)));
          arg0K1 = (1 + len_2371X);
          arg0K2 = slow_2372X;
          arg3K3 = 1;
          goto L17330;}}
      else {
        okay_argument_list0_return_value = 0;
        okay_argument_list1_return_value = 0;
        goto okay_argument_list_return;}}
    else {
      okay_argument_list0_return_value = 0;
      okay_argument_list1_return_value = 0;
      goto okay_argument_list_return;}}}
 okay_argument_list_return:
  switch (okay_argument_list_return_tag) {
  case 0: goto okay_argument_list_return_0;
  case 1: goto okay_argument_list_return_1;
  default: goto okay_argument_list_return_2;
  }}

 copy_continuation_from_heapB: {
  cont_854X = merged_arg0K0;
  stack_arg_count_855X = merged_arg0K1;{
  stack_size_2374X = -2 + ((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + cont_854X))) + -4))))>>8))))>>2));
  new_cont_2375X = (Sbottom_of_stackS) + (0 - (((stack_size_2374X)<<2)));
  if ((0 == stack_arg_count_855X)) {
    SstackS = new_cont_2375X;
    goto L17159;}
  else {
    new_stack_2376X = new_cont_2375X + (0 - (((stack_arg_count_855X)<<2)));
    if ((new_stack_2376X < (SstackS))) {
      memmove((void *)new_stack_2376X, (void *)(SstackS),(((stack_arg_count_855X)<<2)));
      SstackS = new_stack_2376X;
      goto L17159;}
    else {
      goto L17159;}}}
 L17159: {
  ScontS = new_cont_2375X;
  memmove((void *)(new_cont_2375X + 4), (void *)((((char *) (-3 + cont_854X))) + 12),(-4 + (((stack_size_2374X)<<2))));
  *((long *) new_cont_2375X) = (long) ((((long) ((((char *) (-3 + (*((long *) ((((char *) (-3 + cont_854X))) + 4)))))) + ((((*((long *) (((char *) (-3 + cont_854X))))))>>2))))));
  Sheap_continuationS = (*((long *) ((((char *) (-3 + cont_854X))) + 8)));
  copy_continuation_from_heapB0_return_value = new_cont_2375X;
  goto copy_continuation_from_heapB_return;}
 copy_continuation_from_heapB_return:
  switch (copy_continuation_from_heapB_return_tag) {
  case 0: goto copy_continuation_from_heapB_return_0;
  case 1: goto copy_continuation_from_heapB_return_1;
  default: goto copy_continuation_from_heapB_return_2;
  }}

 get_error_string: {
  status_853X = merged_arg0K0;{
  string_2377X = ps_error_string(status_853X);
  x_2378X = strlen((char *) string_2377X);
  if ((x_2378X < 512)) {
    arg0K0 = x_2378X;
    goto L16144;}
  else {
    arg0K0 = 512;
    goto L16144;}}
 L16144: {
  len_2379X = arg0K0;
  len_2380X = ((len_2379X)<<2);
  addr_2381X = s48_allocate_small((4 + len_2380X));
  *((long *) addr_2381X) = (long) ((66 + (((len_2380X)<<8))));
  new_2382X = 3 + (((long) (addr_2381X + 4)));
  arg0K0 = 0;
  goto L16154;}
 L16154: {
  i_2383X = arg0K0;
  if ((i_2383X == len_2379X)) {
    get_error_string0_return_value = new_2382X;
    goto get_error_string_return;}
  else {
    c_2384X = ((unsigned char) (*(string_2377X + i_2383X)));
    arg0K0 = 0;
    arg0K1 = 0;
    arg0K2 = c_2384X;
    goto L16193;}}
 L16193: {
  bits_2385X = arg0K0;
  j_2386X = arg0K1;
  shifted_2387X = arg0K2;
  if ((j_2386X < 4)) {
    *((unsigned char *) ((((char *) (-3 + new_2382X))) + ((((i_2383X)<<2)) + j_2386X))) = (unsigned char) ((255 & shifted_2387X));
    arg0K0 = (8 + bits_2385X);
    arg0K1 = (1 + j_2386X);
    arg0K2 = ((long)(((unsigned long)shifted_2387X)>>8));
    goto L16193;}
  else {
    arg0K0 = (1 + i_2383X);
    goto L16154;}}
 get_error_string_return:
  switch (get_error_string_return_tag) {
  case 0: goto get_error_string_return_0;
  case 1: goto get_error_string_return_1;
  case 2: goto get_error_string_return_2;
  default: goto get_error_string_return_3;
  }}

 s48_pop_interrupt_state: {
{ p_2388X = *((long *) (SstackS));
  SstackS = ((SstackS) + 4);
  Senabled_interruptsS = (((p_2388X)>>2));
  if ((0 == ((Spending_interruptsS) & (Senabled_interruptsS)))) {
    s48_Sstack_limitS = (Sreal_stack_limitS);
    if ((s48_Spending_eventsPS)) {
      s48_Sstack_limitS = (((char *) -1));
      goto L12141;}
    else {
      goto L12141;}}
  else {
    s48_Sstack_limitS = (((char *) -1));
    goto L12141;}}
 L12141: {
  proposal_2389X = *((long *) (SstackS));
  SstackS = ((SstackS) + 4);
  x_2390X = Scurrent_threadS;
  addr_2391X = (((char *) (-3 + x_2390X))) + 12;S48_WRITE_BARRIER(x_2390X, addr_2391X, proposal_2389X);
  *((long *) addr_2391X) = (long) (proposal_2389X);
  goto s48_pop_interrupt_state_return;}
 s48_pop_interrupt_state_return:
  switch (s48_pop_interrupt_state_return_tag) {
  case 0: goto s48_pop_interrupt_state_return_0;
  case 1: goto s48_pop_interrupt_state_return_1;
  default: goto s48_pop_interrupt_state_return_2;
  }}

 move_args_above_contB: {
  nargs_852X = merged_arg0K0;{
  top_of_args_2392X = SstackS;
  if (((ScontS) == (top_of_args_2392X + (((nargs_852X)<<2))))) {
    goto move_args_above_contB_return;}
  else {
    SstackS = (ScontS);
    arg2K0 = ((SstackS) + -4);
    arg2K1 = (top_of_args_2392X + (-4 + (((nargs_852X)<<2))));
    goto L7743;}}
 L7743: {
  loc_2393X = arg2K0;
  arg_2394X = arg2K1;
  if ((arg_2394X < top_of_args_2392X)) {
    SstackS = ((SstackS) + (0 - (((nargs_852X)<<2))));
    goto move_args_above_contB_return;}
  else {
    *((long *) loc_2393X) = (long) ((*((long *) arg_2394X)));
    arg2K0 = (loc_2393X + -4);
    arg2K1 = (arg_2394X + -4);
    goto L7743;}}
 move_args_above_contB_return:
  switch (move_args_above_contB_return_tag) {
  case 0: goto move_args_above_contB_return_0;
  case 1: goto move_args_above_contB_return_1;
  case 2: goto move_args_above_contB_return_2;
  case 3: goto move_args_above_contB_return_3;
  case 4: goto move_args_above_contB_return_4;
  case 5: goto move_args_above_contB_return_5;
  case 6: goto move_args_above_contB_return_6;
  case 7: goto move_args_above_contB_return_7;
  default: goto move_args_above_contB_return_8;
  }}

}
long s48_call_startup_procedure(char **startup_vector_2395X, long startup_vector_length_2396X)
{
  long arg0K2;
  long arg0K1;
  long arg0K0;
  long merged_arg0K1;
  char *merged_arg4K0;

  int enter_string_return_tag;
  long enter_string0_return_value;
  char *string_2397X;
  long shifted_2454X;
  long j_2453X;
  long bits_2452X;
  long c_2451X;
  long i_2450X;
  long s_2449X;
  char * addr_2448X;
  long len_2447X;
  long len_2446X;
  long v_2445X;
  long x_2444X;
  long error_encoding_2443X;
  long output_encoding_2442X;
  long input_encoding_2441X;
  long vm_channel_2440X;
  long v_2439X;
  long channel_2438X;
  long vm_channel_2437X;
  long v_2436X;
  long channel_2435X;
  long vm_channel_2434X;
  long v_2433X;
  long channel_2432X;
  char *error_encoding_2431X;
  long v_2430X;
  char *input_encoding_2429X;
  long v_2428X;
  char *output_encoding_2427X;
  long v_2426X;
  long i_2425X;
  long length_2424X;
  long *v_2423X;
  long v_2422X;
  long v_2421X;
  long y_2420X;
  long x_2419X;
  long v_2418X;
  char * addr_2417X;
  long i_2416X;
  long x_2415X;
  long y_2414X;
  long vec_2413X;
  char * addr_2412X;
  long length_2411X;
  long len_2410X;
  char *s_2409X;
  long y_2408X;
  long x_2407X;
  long i_2406X;
  long vector_2405X;
  char * addr_2404X;
  long len_2403X;
  long count_2402X;
  long i_2401X;
  long code_2400X;
  long code_2399X;
  long code_2398X;
 {  SstackS = (Sbottom_of_stackS);
  Sheap_continuationS = 1;
  ScontS = (Sbottom_of_stackS);
  code_2398X = Sinterrupted_byte_opcode_return_codeS;
  Slast_code_calledS = code_2398X;
  Scode_pointerS = (((char *) (-3 + code_2398X)));
  code_2399X = Sinterrupted_native_call_return_codeS;
  Slast_code_calledS = code_2399X;
  Scode_pointerS = (((char *) (-3 + code_2399X)));
  code_2400X = Snative_poll_return_codeS;
  Slast_code_calledS = code_2400X;
  Scode_pointerS = (((char *) (-3 + code_2400X)));
  Slast_code_pointer_resumedS = (Scode_pointerS);
  SvalS = 13;
  Scurrent_threadS = 25;SHARED_SETB((Ssession_dataS), 25);SHARED_SETB((Sexception_handlersS), 25);SHARED_SETB((Sinterrupt_handlersS), 25);
  Senabled_interruptsS = 0;SHARED_SETB((Sfinalizer_alistS), 25);
  Sfinalize_theseS = 25;
  Spending_interruptsS = 0;
  s48_Spending_interruptPS = 0;
  Sos_signal_ring_startS = 0;
  Sos_signal_ring_readyS = 0;
  Sos_signal_ring_endS = 0;
  Sinterrupted_templateS = 1;
  arg0K0 = 0;
  arg0K1 = 0;
  goto L19371;}
 L19371: {
  i_2401X = arg0K0;
  count_2402X = arg0K1;
  if ((i_2401X == startup_vector_length_2396X)) {s48_make_availableAgc(((((((1 + startup_vector_length_2396X) + startup_vector_length_2396X) + ((((3 + count_2402X))>>2))))<<2)));
    len_2403X = ((startup_vector_length_2396X)<<2);
    addr_2404X = s48_allocate_small((4 + len_2403X));
    *((long *) addr_2404X) = (long) ((10 + (((len_2403X)<<8))));
    vector_2405X = 3 + (((long) (addr_2404X + 4)));
    arg0K0 = 0;
    goto L19488;}
  else {
    arg0K0 = (1 + i_2401X);
    arg0K1 = (1 + (count_2402X + (strlen((char *) (*(startup_vector_2395X + i_2401X))))));
    goto L19371;}}
 L19488: {
  i_2406X = arg0K0;
  if ((i_2406X == startup_vector_length_2396X)) {
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (vector_2405X);
    x_2407X = STDOUT_FD();
    y_2408X = STDERR_FD();
    if ((x_2407X < y_2408X)) {
      arg0K0 = y_2408X;
      goto L25210;}
    else {
      arg0K0 = x_2407X;
      goto L25210;}}
  else {
    s_2409X = *(startup_vector_2395X + i_2406X);
    len_2410X = strlen((char *) s_2409X);
    length_2411X = 1 + len_2410X;
    addr_2412X = s48_allocate_small((4 + length_2411X));
    *((long *) addr_2412X) = (long) ((70 + (((length_2411X)<<8))));
    vec_2413X = 3 + (((long) (addr_2412X + 4)));
    arg0K0 = 0;
    goto L19508;}}
 L25210: {
  y_2414X = arg0K0;
  x_2415X = STDIN_FD();
  if ((x_2415X < y_2414X)) {
    arg0K0 = y_2414X;
    goto L25212;}
  else {
    arg0K0 = x_2415X;
    goto L25212;}}
 L19508: {
  i_2416X = arg0K0;
  if ((len_2410X < i_2416X)) {
    addr_2417X = (((char *) (-3 + vector_2405X))) + (((i_2406X)<<2));S48_WRITE_BARRIER(vector_2405X, addr_2417X, vec_2413X);
    *((long *) addr_2417X) = (long) (vec_2413X);
    arg0K0 = (1 + i_2406X);
    goto L19488;}
  else {
    *((unsigned char *) ((((char *) (-3 + vec_2413X))) + i_2416X)) = (unsigned char) ((((unsigned char) (*(s_2409X + i_2416X)))));
    arg0K0 = (1 + i_2416X);
    goto L19508;}}
 L25212: {
  v_2418X = arg0K0;
  x_2419X = Snumber_of_channelsS;
  y_2420X = 1 + v_2418X;
  if ((x_2419X < y_2420X)) {
    arg0K0 = y_2420X;
    goto L25214;}
  else {
    arg0K0 = x_2419X;
    goto L25214;}}
 L25214: {
  v_2421X = arg0K0;
  Snumber_of_channelsS = v_2421X;
  v_2422X = STDIN_FD();
  Svm_channelsS = ((long*)malloc(sizeof(long) * (Snumber_of_channelsS)));
  Spending_channels_headS = 1;
  Spending_channels_tailS = 1;
  if ((NULL == (Svm_channelsS))) {
    ps_error("out of memory, unable to continue", 0);
    goto L25236;}
  else {
    goto L25236;}}
 L25236: {
  v_2423X = Svm_channelsS;
  length_2424X = Snumber_of_channelsS;
  arg0K0 = 0;
  goto L25336;}
 L25336: {
  i_2425X = arg0K0;
  if ((i_2425X < length_2424X)) {
    *(v_2423X + i_2425X) = 1;
    arg0K0 = (1 + i_2425X);
    goto L25336;}
  else {
    v_2426X = STDOUT_FD();
    output_encoding_2427X = ps_console_encoding(v_2426X);
    v_2428X = STDIN_FD();
    input_encoding_2429X = ps_console_encoding(v_2428X);
    v_2430X = STDERR_FD();
    error_encoding_2431X = ps_console_encoding(v_2430X);
    if ((NULL == input_encoding_2429X)) {
      goto L25273;}
    else {
      if ((NULL == output_encoding_2427X)) {
        goto L25273;}
      else {
        if ((NULL == error_encoding_2431X)) {
          goto L25273;}
        else {
          goto L25278;}}}}}
 L25273: {
  ps_error("out of memory, unable to continue", 0);
  goto L25278;}
 L25278: {
s48_make_availableAgc(((((3 * (12 + (((((((3 + ((((strlen((char *) "standard output")))<<2))))>>2)) + ((((3 + ((((strlen((char *) input_encoding_2429X)))<<2))))>>2))) + ((((3 + ((((strlen((char *) output_encoding_2427X)))<<2))))>>2))) + ((((3 + ((((strlen((char *) error_encoding_2431X)))<<2))))>>2))))))<<2)));
  channel_2432X = STDERR_FD();
  merged_arg4K0 = "standard error";
  merged_arg0K1 = 0;
  enter_string_return_tag = 0;
  goto enter_string;
 enter_string_return_0:
  v_2433X = enter_string0_return_value;
  vm_channel_2434X = make_channel(8, v_2433X, (((channel_2432X)<<2)), 1, 1, 1, 1, 0);
  *((Svm_channelsS) + channel_2432X) = vm_channel_2434X;
  channel_2435X = STDIN_FD();
  merged_arg4K0 = "standard input";
  merged_arg0K1 = 0;
  enter_string_return_tag = 1;
  goto enter_string;
 enter_string_return_1:
  v_2436X = enter_string0_return_value;
  vm_channel_2437X = make_channel(4, v_2436X, (((channel_2435X)<<2)), 1, 1, 1, 1, 0);
  *((Svm_channelsS) + channel_2435X) = vm_channel_2437X;
  channel_2438X = STDOUT_FD();
  merged_arg4K0 = "standard output";
  merged_arg0K1 = 0;
  enter_string_return_tag = 2;
  goto enter_string;
 enter_string_return_2:
  v_2439X = enter_string0_return_value;
  vm_channel_2440X = make_channel(8, v_2439X, (((channel_2438X)<<2)), 1, 1, 1, 1, 0);
  *((Svm_channelsS) + channel_2438X) = vm_channel_2440X;
  merged_arg4K0 = input_encoding_2429X;
  merged_arg0K1 = 0;
  enter_string_return_tag = 3;
  goto enter_string;
 enter_string_return_3:
  input_encoding_2441X = enter_string0_return_value;
  merged_arg4K0 = output_encoding_2427X;
  merged_arg0K1 = 0;
  enter_string_return_tag = 4;
  goto enter_string;
 enter_string_return_4:
  output_encoding_2442X = enter_string0_return_value;
  merged_arg4K0 = error_encoding_2431X;
  merged_arg0K1 = 0;
  enter_string_return_tag = 5;
  goto enter_string;
 enter_string_return_5:
  error_encoding_2443X = enter_string0_return_value;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (vm_channel_2437X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (input_encoding_2441X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (vm_channel_2440X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (output_encoding_2442X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (vm_channel_2434X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (error_encoding_2443X);
  x_2444X = s48_resumer_records();
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_2444X);s48_initialization_completeB();
  v_2445X = s48_startup_procedure();
  return s48_restart(v_2445X, 8);}
 enter_string: {
  string_2397X = merged_arg4K0;{
  len_2446X = strlen((char *) string_2397X);
  len_2447X = ((len_2446X)<<2);
  addr_2448X = s48_allocate_small((4 + len_2447X));
  *((long *) addr_2448X) = (long) ((66 + (((len_2447X)<<8))));
  s_2449X = 3 + (((long) (addr_2448X + 4)));
  arg0K0 = 0;
  goto L16738;}
 L16738: {
  i_2450X = arg0K0;
  if ((i_2450X < len_2446X)) {
    c_2451X = ((unsigned char) (*(string_2397X + i_2450X)));
    arg0K0 = 0;
    arg0K1 = 0;
    arg0K2 = c_2451X;
    goto L16749;}
  else {
    enter_string0_return_value = s_2449X;
    goto enter_string_return;}}
 L16749: {
  bits_2452X = arg0K0;
  j_2453X = arg0K1;
  shifted_2454X = arg0K2;
  if ((j_2453X < 4)) {
    *((unsigned char *) ((((char *) (-3 + s_2449X))) + ((((i_2450X)<<2)) + j_2453X))) = (unsigned char) ((255 & shifted_2454X));
    arg0K0 = (8 + bits_2452X);
    arg0K1 = (1 + j_2453X);
    arg0K2 = ((long)(((unsigned long)shifted_2454X)>>8));
    goto L16749;}
  else {
    arg0K0 = (1 + i_2450X);
    goto L16738;}}
 enter_string_return:
  switch (enter_string_return_tag) {
  case 0: goto enter_string_return_0;
  case 1: goto enter_string_return_1;
  case 2: goto enter_string_return_2;
  case 3: goto enter_string_return_3;
  case 4: goto enter_string_return_4;
  default: goto enter_string_return_5;
  }}

}void
s48_init(void)
{
Snumber_of_channelsS = 100;
Spending_channels_headS = 1;
Spending_channels_tailS = 1;
Sutf_8_state_tableS = malloc(128 * sizeof(long));
Sutf_8_state_tableS[0] = 0;
Sutf_8_state_tableS[1] = 0;
Sutf_8_state_tableS[2] = 0;
Sutf_8_state_tableS[3] = 0;
Sutf_8_state_tableS[4] = 0;
Sutf_8_state_tableS[5] = 0;
Sutf_8_state_tableS[6] = 0;
Sutf_8_state_tableS[7] = 0;
Sutf_8_state_tableS[8] = 0;
Sutf_8_state_tableS[9] = 0;
Sutf_8_state_tableS[10] = 0;
Sutf_8_state_tableS[11] = 0;
Sutf_8_state_tableS[12] = 0;
Sutf_8_state_tableS[13] = 0;
Sutf_8_state_tableS[14] = 0;
Sutf_8_state_tableS[15] = 0;
Sutf_8_state_tableS[16] = -1;
Sutf_8_state_tableS[17] = -1;
Sutf_8_state_tableS[18] = -1;
Sutf_8_state_tableS[19] = -1;
Sutf_8_state_tableS[20] = -1;
Sutf_8_state_tableS[21] = -1;
Sutf_8_state_tableS[22] = -1;
Sutf_8_state_tableS[23] = -1;
Sutf_8_state_tableS[24] = 1;
Sutf_8_state_tableS[25] = 1;
Sutf_8_state_tableS[26] = 1;
Sutf_8_state_tableS[27] = 1;
Sutf_8_state_tableS[28] = 2;
Sutf_8_state_tableS[29] = 2;
Sutf_8_state_tableS[30] = 3;
Sutf_8_state_tableS[31] = -1;
Sutf_8_state_tableS[32] = -2;
Sutf_8_state_tableS[33] = -2;
Sutf_8_state_tableS[34] = -2;
Sutf_8_state_tableS[35] = -2;
Sutf_8_state_tableS[36] = -2;
Sutf_8_state_tableS[37] = -2;
Sutf_8_state_tableS[38] = -2;
Sutf_8_state_tableS[39] = -2;
Sutf_8_state_tableS[40] = -2;
Sutf_8_state_tableS[41] = -2;
Sutf_8_state_tableS[42] = -2;
Sutf_8_state_tableS[43] = -2;
Sutf_8_state_tableS[44] = -2;
Sutf_8_state_tableS[45] = -2;
Sutf_8_state_tableS[46] = -2;
Sutf_8_state_tableS[47] = -2;
Sutf_8_state_tableS[48] = 0;
Sutf_8_state_tableS[49] = 0;
Sutf_8_state_tableS[50] = 0;
Sutf_8_state_tableS[51] = 0;
Sutf_8_state_tableS[52] = 0;
Sutf_8_state_tableS[53] = 0;
Sutf_8_state_tableS[54] = 0;
Sutf_8_state_tableS[55] = 0;
Sutf_8_state_tableS[56] = -2;
Sutf_8_state_tableS[57] = -2;
Sutf_8_state_tableS[58] = -2;
Sutf_8_state_tableS[59] = -2;
Sutf_8_state_tableS[60] = -2;
Sutf_8_state_tableS[61] = -2;
Sutf_8_state_tableS[62] = -2;
Sutf_8_state_tableS[63] = -2;
Sutf_8_state_tableS[64] = -2;
Sutf_8_state_tableS[65] = -2;
Sutf_8_state_tableS[66] = -2;
Sutf_8_state_tableS[67] = -2;
Sutf_8_state_tableS[68] = -2;
Sutf_8_state_tableS[69] = -2;
Sutf_8_state_tableS[70] = -2;
Sutf_8_state_tableS[71] = -2;
Sutf_8_state_tableS[72] = -2;
Sutf_8_state_tableS[73] = -2;
Sutf_8_state_tableS[74] = -2;
Sutf_8_state_tableS[75] = -2;
Sutf_8_state_tableS[76] = -2;
Sutf_8_state_tableS[77] = -2;
Sutf_8_state_tableS[78] = -2;
Sutf_8_state_tableS[79] = -2;
Sutf_8_state_tableS[80] = 1;
Sutf_8_state_tableS[81] = 1;
Sutf_8_state_tableS[82] = 1;
Sutf_8_state_tableS[83] = 1;
Sutf_8_state_tableS[84] = 1;
Sutf_8_state_tableS[85] = 1;
Sutf_8_state_tableS[86] = 1;
Sutf_8_state_tableS[87] = 1;
Sutf_8_state_tableS[88] = -2;
Sutf_8_state_tableS[89] = -2;
Sutf_8_state_tableS[90] = -2;
Sutf_8_state_tableS[91] = -2;
Sutf_8_state_tableS[92] = -2;
Sutf_8_state_tableS[93] = -2;
Sutf_8_state_tableS[94] = -2;
Sutf_8_state_tableS[95] = -2;
Sutf_8_state_tableS[96] = -2;
Sutf_8_state_tableS[97] = -2;
Sutf_8_state_tableS[98] = -2;
Sutf_8_state_tableS[99] = -2;
Sutf_8_state_tableS[100] = -2;
Sutf_8_state_tableS[101] = -2;
Sutf_8_state_tableS[102] = -2;
Sutf_8_state_tableS[103] = -2;
Sutf_8_state_tableS[104] = -2;
Sutf_8_state_tableS[105] = -2;
Sutf_8_state_tableS[106] = -2;
Sutf_8_state_tableS[107] = -2;
Sutf_8_state_tableS[108] = -2;
Sutf_8_state_tableS[109] = -2;
Sutf_8_state_tableS[110] = -2;
Sutf_8_state_tableS[111] = -2;
Sutf_8_state_tableS[112] = 2;
Sutf_8_state_tableS[113] = 2;
Sutf_8_state_tableS[114] = 2;
Sutf_8_state_tableS[115] = 2;
Sutf_8_state_tableS[116] = 2;
Sutf_8_state_tableS[117] = 2;
Sutf_8_state_tableS[118] = 2;
Sutf_8_state_tableS[119] = 2;
Sutf_8_state_tableS[120] = -2;
Sutf_8_state_tableS[121] = -2;
Sutf_8_state_tableS[122] = -2;
Sutf_8_state_tableS[123] = -2;
Sutf_8_state_tableS[124] = -2;
Sutf_8_state_tableS[125] = -2;
Sutf_8_state_tableS[126] = -2;
Sutf_8_state_tableS[127] = -2;
Sutf_8_masksS = malloc(4 * sizeof(long));
Sutf_8_masksS[0] = 127;
Sutf_8_masksS[1] = 31;
Sutf_8_masksS[2] = 15;
Sutf_8_masksS[3] = 7;
Stemp0S = 1;
Stemp1S = 1;
Sstack_warningPS = 1;
Sos_signal_ringS = malloc(32 * sizeof(long));
Sos_signal_ringS[0] = 0;
Sos_signal_ringS[1] = 0;
Sos_signal_ringS[2] = 0;
Sos_signal_ringS[3] = 0;
Sos_signal_ringS[4] = 0;
Sos_signal_ringS[5] = 0;
Sos_signal_ringS[6] = 0;
Sos_signal_ringS[7] = 0;
Sos_signal_ringS[8] = 0;
Sos_signal_ringS[9] = 0;
Sos_signal_ringS[10] = 0;
Sos_signal_ringS[11] = 0;
Sos_signal_ringS[12] = 0;
Sos_signal_ringS[13] = 0;
Sos_signal_ringS[14] = 0;
Sos_signal_ringS[15] = 0;
Sos_signal_ringS[16] = 0;
Sos_signal_ringS[17] = 0;
Sos_signal_ringS[18] = 0;
Sos_signal_ringS[19] = 0;
Sos_signal_ringS[20] = 0;
Sos_signal_ringS[21] = 0;
Sos_signal_ringS[22] = 0;
Sos_signal_ringS[23] = 0;
Sos_signal_ringS[24] = 0;
Sos_signal_ringS[25] = 0;
Sos_signal_ringS[26] = 0;
Sos_signal_ringS[27] = 0;
Sos_signal_ringS[28] = 0;
Sos_signal_ringS[29] = 0;
Sos_signal_ringS[30] = 0;
Sos_signal_ringS[31] = 0;
Sos_signal_ring_startS = 0;
Sos_signal_ring_readyS = 0;
Sos_signal_ring_endS = 0;
Sexternal_exceptionPS = 0;
Simported_bindingsS = 1;
Sexported_bindingsS = 1;
Sexternal_root_stackS = NULL;
Sexternal_root_stack_baseS = NULL;
Spermanent_external_rootsS = NULL;
Spost_gc_cleanupS = HtopD11565;
Sgc_root_procS = HtopD11576;
Snative_exception_contS = 0;
s48_Scallback_return_stack_blockS = 1;
s48_Spending_eventsPS = 0;
}
