/* generated by Id 1.0 at 2007-08-31 06:58:59 Z */
/* with the command: -I../stage1/ -c LargeInteger.st -o ../stage2/LargeInteger.o.c */

#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
#include <setjmp.h>
#include <string.h>
#include <ctype.h>
#include <fcntl.h>
#include <unistd.h>
#include <time.h>
#include <sys/time.h>
#include <sys/stat.h>
#include <sys/param.h>
#include <assert.h>
#define GC_DLL 1
#include <gc/gc.h>
#if defined(WIN32)
# include <malloc.h>
# include <windows.h>
  typedef HINSTANCE dlhandle_t;
# define dlopen(path, mode)	LoadLibrary(path)
# define dlsym(handle, name)	((void *)GetProcAddress(handle, name))
# define dlclose(handle)	FreeLibrary(handle)
# include <winbase.h>
  inline int gettimeofday(struct timeval *tp, void *tzp)
  {
     union {
       long long ns100;
       FILETIME ft;
     } _now;
     GetSystemTimeAsFileTime(&_now.ft);
     tp->tv_usec= (long)((_now.ns100 / 10LL) % 1000000LL);
     tp->tv_sec= (long)((_now.ns100 - (116444736000000000LL)) / 10000000LL);
     return 0;
   }
#else
# include <dlfcn.h>
  typedef void *dlhandle_t;
#endif
#ifndef O_BINARY
# define O_BINARY 0
#endif

typedef struct t__object *oop;

typedef oop (*_imp_t)(oop _thunk, oop receiver, ...);

struct __closure
{
  _imp_t method;
  oop	 data;
};

static void              *(*_local_param   )(int index)= 0;
static oop  		  (*_local_intern  )(const char *string)= 0;
static oop  		  (*_local_proto   )(oop base)= 0;
static oop  		  (*_local_import  )(const char *name)= 0;
static oop  		  (*_local_export  )(const char *name, oop value)= 0;
static void 		  (*_local_method  )(oop type, oop selector, _imp_t method)= 0;
static oop  		  (*_local_alloc   )(oop type, size_t size)= 0;
static oop  		 *(*_local_palloc  )(size_t size)= 0;
static void  		 *(*_local_balloc  )(size_t size)= 0;
static struct __closure  *(*_local_bind    )(oop selector, oop receiver)= 0;
static oop                (*_local_nlreturn)(oop nlr, oop result)= 0;
static oop                (*_local_nlresult)(void)= 0;
static oop  		    _local_object= 0;
static oop  		   *_local_tag_vtable= 0;
static oop  		   *_local_nil_vtable= 0;
static void               (*_local_gc_addRoots)(char *lo, char *hi)= 0;
static void	          (*_local_gc_unregisterDisappearingLink)(void *ptr)= 0;
static void		  (*_local_gc_generalRegisterDisappearingLink)(void *link, void *ptr)= 0;
static void		  (*_local_gc_gcollect)(void)= 0;
static void		 *(*_local_enter)(char *name, char *type, char *file)= 0;
static void		  (*_local_line)(int line)= 0;
static void		  (*_local_leave)(void *)= 0;
static char		 *(*_local_backtrace)(void)= 0;

#define _param(INDEX)		_local_param(INDEX)
#define _selector(NAME)		_local_intern(NAME)
#define _proto(BASE)		_local_proto(BASE)
#define _id_import(NAME)	_local_import(NAME)
#define _id_export(NAME, VAL)	_local_export((NAME), (VAL))
#define _method(TYPE, SEL, IMP)	_local_method((TYPE), (SEL), (_imp_t)(IMP))
#define _alloc(RCV, LBS)	_local_alloc((RCV), (LBS))
#define _palloc(LBS)		_local_palloc((LBS))
#define _balloc(LBS)		_local_balloc((LBS))
#define _nlreturn(NLR, ARG)	_local_nlreturn((NLR), (ARG))
#define _nlresult()		_local_nlresult()
#define _backtrace()		_local_backtrace()
#ifdef ID_DEBUG
# define _enter(NM, TYPE, FILE)	void *__id_debug= _local_enter(NM, TYPE, FILE)
# define _line(line)		_local_line(line)
# define _leave()		_local_leave(__id_debug)
#else
# define _enter(NM, TYPE, FILE)
# define _line(line)
# define _leave()
#endif
#define _return			_leave(); return

#define _send(MSG, RCV, ARG...) ({					\
  register oop _r= (RCV);						\
  struct __closure *_c= (struct __closure *)_local_bind((MSG), _r);	\
  (_c->method)((oop)_c, _r, _r, ##ARG);					\
})

#define _super(TYP, MSG, RCV, ARG...) ({				\
  register oop _r= (RCV);						\
  struct __closure *_c= (struct __closure *)_local_bind((MSG), (TYP));	\
  (_c->method)((oop)_c, _r, _r, ##ARG);					\
})

static oop s_new_neg_= 0;
static oop s_digitLogic_op_length_= 0;
static oop s_perform_with_= 0;
static oop s__3e_3e= 0;
static oop s_bitShiftMagnitude_= 0;
static oop s_anyBitOfMagnitudeFrom_to_= 0;
static oop s_highBitOfMagnitude= 0;
static oop s_digitCompare_= 0;
static oop s_highBit= 0;
static oop s_whileFalse_= 0;
static oop s_bitXor_= 0;
static oop s_negated= 0;
static oop s_bitOr_= 0;
static oop s_growTo_= 0;
static oop s_abs= 0;
static oop s_min_= 0;
static oop s__5c_5c= 0;
static oop s_growBy_= 0;
static oop s__2a= 0;
static oop s_bitAnd_= 0;
static oop s_whileTrue_= 0;
static oop s_error_= 0;
static oop s_lastDigit= 0;
static oop s__7e_7e= 0;
static oop s_bitClear_= 0;
static oop s_digitAt_= 0;
static oop s_max_= 0;
static oop s_new_= 0;
static oop s_new_5f_= 0;
static oop s_asFloat= 0;
static oop s__3c_3d= 0;
static oop s__3c_3c= 0;
static oop s_maxVal= 0;
static oop s_rem_= 0;
static oop s_value_5f_= 0;
static oop s_negative= 0;
static oop s__5fimport_= 0;
static oop s_quo_= 0;
static oop s_with_with_= 0;
static oop s_ifFalse_= 0;
static oop s_normalize= 0;
static oop s__2d= 0;
static oop s_ifTrue_= 0;
static oop s__2b= 0;
static oop s_to_do_= 0;
static oop s__2f_2f= 0;
static oop s__2f= 0;
static oop s__3d_3d= 0;
static oop s_gcd_= 0;
static oop s_digitAdd_= 0;
static oop s__3d= 0;
static oop s_bitInvert= 0;
static oop s_isSmallInteger= 0;
static oop s_digitLength= 0;
static oop s_ifTrue_ifFalse_= 0;
static oop s_replaceFrom_to_with_startingAt_= 0;
static oop s_digitSubtract_= 0;
static oop s_adaptToInteger_andSend_= 0;
static oop s_size_5f_value_5f_= 0;
static oop s__3c= 0;
static oop s__3e= 0;
static oop s_bitShift_= 0;
static oop s_digitAt_put_= 0;
static oop s_function_5f_arity_5f_outer_state_nlr_5f_= 0;
static oop s_and_= 0;
static oop s_digitMultiply_neg_= 0;
static oop s_digitDiv_neg_= 0;
static oop s__7e_3d= 0;
static oop s_at_= 0;
static oop s_errorZeroDivide= 0;
static oop s_highBitOfPositiveReceiver= 0;
static oop s_digitLshift_= 0;
static oop s_digitRshift_bytes_lookfirst_= 0;
static oop s_or_= 0;
static oop s_copyTo_= 0;
static oop s_isInteger= 0;
static oop s_at_put_= 0;
static oop s__3e_3d= 0;
static struct _Selector { const char *name; oop *addr; } _Selectors[]= {
  { "new:neg:", &s_new_neg_ },
  { "digitLogic:op:length:", &s_digitLogic_op_length_ },
  { "perform:with:", &s_perform_with_ },
  { ">>", &s__3e_3e },
  { "bitShiftMagnitude:", &s_bitShiftMagnitude_ },
  { "anyBitOfMagnitudeFrom:to:", &s_anyBitOfMagnitudeFrom_to_ },
  { "highBitOfMagnitude", &s_highBitOfMagnitude },
  { "digitCompare:", &s_digitCompare_ },
  { "highBit", &s_highBit },
  { "whileFalse:", &s_whileFalse_ },
  { "bitXor:", &s_bitXor_ },
  { "negated", &s_negated },
  { "bitOr:", &s_bitOr_ },
  { "growTo:", &s_growTo_ },
  { "abs", &s_abs },
  { "min:", &s_min_ },
  { "\\\\", &s__5c_5c },
  { "growBy:", &s_growBy_ },
  { "*", &s__2a },
  { "bitAnd:", &s_bitAnd_ },
  { "whileTrue:", &s_whileTrue_ },
  { "error:", &s_error_ },
  { "lastDigit", &s_lastDigit },
  { "~~", &s__7e_7e },
  { "bitClear:", &s_bitClear_ },
  { "digitAt:", &s_digitAt_ },
  { "max:", &s_max_ },
  { "new:", &s_new_ },
  { "new_:", &s_new_5f_ },
  { "asFloat", &s_asFloat },
  { "<=", &s__3c_3d },
  { "<<", &s__3c_3c },
  { "maxVal", &s_maxVal },
  { "rem:", &s_rem_ },
  { "value_:", &s_value_5f_ },
  { "negative", &s_negative },
  { "_import:", &s__5fimport_ },
  { "quo:", &s_quo_ },
  { "with:with:", &s_with_with_ },
  { "ifFalse:", &s_ifFalse_ },
  { "normalize", &s_normalize },
  { "-", &s__2d },
  { "ifTrue:", &s_ifTrue_ },
  { "+", &s__2b },
  { "to:do:", &s_to_do_ },
  { "//", &s__2f_2f },
  { "/", &s__2f },
  { "==", &s__3d_3d },
  { "gcd:", &s_gcd_ },
  { "digitAdd:", &s_digitAdd_ },
  { "=", &s__3d },
  { "bitInvert", &s_bitInvert },
  { "isSmallInteger", &s_isSmallInteger },
  { "digitLength", &s_digitLength },
  { "ifTrue:ifFalse:", &s_ifTrue_ifFalse_ },
  { "replaceFrom:to:with:startingAt:", &s_replaceFrom_to_with_startingAt_ },
  { "digitSubtract:", &s_digitSubtract_ },
  { "adaptToInteger:andSend:", &s_adaptToInteger_andSend_ },
  { "size_:value_:", &s_size_5f_value_5f_ },
  { "<", &s__3c },
  { ">", &s__3e },
  { "bitShift:", &s_bitShift_ },
  { "digitAt:put:", &s_digitAt_put_ },
  { "function_:arity_:outer:state:nlr_:", &s_function_5f_arity_5f_outer_state_nlr_5f_ },
  { "and:", &s_and_ },
  { "digitMultiply:neg:", &s_digitMultiply_neg_ },
  { "digitDiv:neg:", &s_digitDiv_neg_ },
  { "~=", &s__7e_3d },
  { "at:", &s_at_ },
  { "errorZeroDivide", &s_errorZeroDivide },
  { "highBitOfPositiveReceiver", &s_highBitOfPositiveReceiver },
  { "digitLshift:", &s_digitLshift_ },
  { "digitRshift:bytes:lookfirst:", &s_digitRshift_bytes_lookfirst_ },
  { "or:", &s_or_ },
  { "copyTo:", &s_copyTo_ },
  { "isInteger", &s_isInteger },
  { "at:put:", &s_at_put_ },
  { ">=", &s__3e_3d },
  { 0, 0 }
};
struct t__object {
  struct _vtable *_vtable[0];
};
struct t__selector {
  struct _vtable *_vtable[0];
  oop v__size;
  oop v__elements;
};
struct t__assoc {
  struct _vtable *_vtable[0];
  oop v_key;
  oop v_value;
};
struct t__closure {
  struct _vtable *_vtable[0];
  oop v__method;
  oop v_data;
};
struct t__vector {
  struct _vtable *_vtable[0];
  oop v__size;
};
struct t__vtable {
  struct _vtable *_vtable[0];
  oop v__tally;
  oop v_bindings;
  oop v_delegate;
};
struct t_Object {
  struct _vtable *_vtable[0];
};
struct t_UndefinedObject {
  struct _vtable *_vtable[0];
};
struct t_StaticBlockClosure {
  struct _vtable *_vtable[0];
  oop v__function;
  oop v__arity;
};
struct t_BlockClosure {
  struct _vtable *_vtable[0];
  oop v__function;
  oop v__arity;
  oop v_outer;
  oop v_state;
  oop v__nlr;
};
struct t_Magnitude {
  struct _vtable *_vtable[0];
};
struct t_Character {
  struct _vtable *_vtable[0];
  oop v_value;
};
struct t_Number {
  struct _vtable *_vtable[0];
};
struct t_Fraction {
  struct _vtable *_vtable[0];
  oop v_numerator;
  oop v_denominator;
};
struct t_Float {
  struct _vtable *_vtable[0];
};
struct t_Integer {
  struct _vtable *_vtable[0];
};
struct t_SmallInteger {
  struct _vtable *_vtable[0];
};
struct t_LargePositiveInteger {
  struct _vtable *_vtable[0];
  oop v_bytes;
};
struct t_LargeNegativeInteger {
  struct _vtable *_vtable[0];
  oop v_bytes;
};
struct t_Collection {
  struct _vtable *_vtable[0];
};
struct t_SequenceableCollection {
  struct _vtable *_vtable[0];
};
struct t_ArrayedCollection {
  struct _vtable *_vtable[0];
  oop v_size;
};
struct t_Array {
  struct _vtable *_vtable[0];
  oop v_size;
  oop v__pointers;
};
struct t_ImmutableArray {
  struct _vtable *_vtable[0];
  oop v_size;
  oop v__pointers;
};
struct t_WordArray {
  struct _vtable *_vtable[0];
  oop v_size;
  oop v__words;
};
struct t_ImmutableWordArray {
  struct _vtable *_vtable[0];
  oop v_size;
  oop v__words;
};
struct t_ByteArray {
  struct _vtable *_vtable[0];
  oop v_size;
  oop v__bytes;
};
struct t_ImmutableByteArray {
  struct _vtable *_vtable[0];
  oop v_size;
  oop v__bytes;
};
struct t_String {
  struct _vtable *_vtable[0];
  oop v_size;
  oop v__bytes;
};
struct t_ImmutableString {
  struct _vtable *_vtable[0];
  oop v_size;
  oop v__bytes;
};
struct t_Symbol {
  struct _vtable *_vtable[0];
  oop v_size;
  oop v__bytes;
};
struct t_nil {
  struct _vtable *_vtable[0];
};
struct t_true {
  struct _vtable *_vtable[0];
};
struct t_false {
  struct _vtable *_vtable[0];
};
struct t_CharacterTable {
  struct _vtable *_vtable[0];
  oop v_size;
  oop v__pointers;
};
static oop l_1= 0;
static oop l_2= 0;
static oop l_3= 0;
static oop l_4= 0;
static oop l_6= 0;
static oop l_7= 0;
static oop l_8= 0;
static oop l_9= 0;
static oop l_10= 0;
static oop l_12= 0;
static oop l_13= 0;
static oop l_14= 0;
static oop l_15= 0;
static oop l_18= 0;
static oop l_19= 0;
static oop l_20= 0;
static oop l_21= 0;
static oop l_22= 0;
static oop l_23= 0;
static oop l_24= 0;
static oop l_25= 0;
static oop l_26= 0;
static oop l_27= 0;
static oop l_28= 0;
static oop l_29= 0;
static oop l_30= 0;
static oop l_31= 0;
static oop l_33= 0;
static oop l_34= 0;
static oop l_35= 0;
static oop l_36= 0;
static oop l_37= 0;
static oop l_38= 0;
static oop l_39= 0;
static oop l_40= 0;
static oop l_41= 0;
static oop l_44= 0;
static oop l_45= 0;
static oop l_46= 0;
static oop l_47= 0;
static oop l_48= 0;
static oop l_49= 0;
static oop l_50= 0;
static oop l_52= 0;
static oop l_53= 0;
static oop l_54= 0;
static oop l_55= 0;
static oop l_56= 0;
static oop l_57= 0;
static oop l_58= 0;
static oop l_59= 0;
static oop l_60= 0;
static oop l_61= 0;
static oop l_62= 0;
static oop l_63= 0;
static oop l_64= 0;
static oop l_65= 0;
static oop l_66= 0;
static oop l_69= 0;
static oop l_70= 0;
static oop l_71= 0;
static oop l_72= 0;
static oop l_74= 0;
static oop l_75= 0;
static oop l_76= 0;
static oop l_77= 0;
static oop l_78= 0;
static oop l_79= 0;
static oop l_80= 0;
static oop l_81= 0;
static oop v__object= 0;
static oop v__vector= 0;
static oop v_Object= 0;
static oop v_UndefinedObject= 0;
static oop v_StaticBlockClosure= 0;
static oop v_BlockClosure= 0;
static oop v_Magnitude= 0;
static oop v_Number= 0;
static oop v_Integer= 0;
static oop v_SmallInteger= 0;
static oop v_LargePositiveInteger= 0;
static oop v_LargeNegativeInteger= 0;
static oop v_Collection= 0;
static oop v_SequenceableCollection= 0;
static oop v_ArrayedCollection= 0;
static oop v_Array= 0;
static oop v_WordArray= 0;
static oop v_ByteArray= 0;
static oop v_String= 0;
static oop v_ImmutableString= 0;
static oop v_Symbol= 0;
static oop v_true= 0;
static oop v_false= 0;
static oop Integer__new_neg_(oop v__closure, oop v_stateful_self, oop v_self, oop v_length, oop v_neg)
 {
  _enter("new:neg:", "Integer", "/home/saintiss/source/svn/stIdst_278/object/st80/LargeInteger.st");
  oop _1= 0;
  oop _2= 0;
  _line(25);
  /* ifTrue:ifFalse: */
  _1= v_neg;
  if (!_1) goto _l1;
 {
  _1= v_LargeNegativeInteger;
 }
  goto _l2;
 _l1:;
 {
  _1= v_LargePositiveInteger;
 }
 _l2:;
  _2= v_length;
  _line(27);
  _1=_send(s_new_, _1, _2);
  _leave();
  return _1;
  _leave();
 }
static oop Integer__lastDigit(oop v__closure, oop v_stateful_self, oop v_self)
 {
  _enter("lastDigit", "Integer", "/home/saintiss/source/svn/stIdst_278/object/st80/LargeInteger.st");
  oop _1= 0;
  oop _2= 0;
  _line(30);
  _1= v_self;
  _2= v_self;
  _line(32);
  _2=_send(s_digitLength, _2);
  _line(32);
  _1=_send(s_digitAt_, _1, _2);
  _leave();
  return _1;
  _leave();
 }
static oop Integer__growTo_(oop v__closure, oop v_stateful_self, oop v_self, oop v_n)
 {
  _enter("growTo:", "Integer", "/home/saintiss/source/svn/stIdst_278/object/st80/LargeInteger.st");
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  _line(35);
  _1= v_self;
  _2= v_self;
  _3= v_n;
  _line(37);
  _2=_send(s_new_, _2, _3);
  _line(37);
  _1=_send(s_copyTo_, _1, _2);
  _leave();
  return _1;
  _leave();
 }
static oop Integer__growBy_(oop v__closure, oop v_stateful_self, oop v_self, oop v_n)
 {
  _enter("growBy:", "Integer", "/home/saintiss/source/svn/stIdst_278/object/st80/LargeInteger.st");
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  _line(40);
  _1= v_self;
  _2= v_self;
  _line(42);
  _2=_send(s_digitLength, _2);
  _3= v_n;
  {
    int _l= (int)_2 >> 1;
    int _r= (int)_3 >> 1;
    int _s= _l + _r;
    if ((1 & (int)_2 & (int)_3) && ((_s ^ (_s << 1)) >= 0))  _2= (oop)(_s << 1 | 1);  else _2= _send(s__2b, _2, _3);
  }
  _line(42);
  _1=_send(s_growTo_, _1, _2);
  _leave();
  return _1;
  _leave();
 }
static oop Integer__copyTo_(oop v__closure, oop v_stateful_self, oop v_self, oop v_x)
 {
  _enter("copyTo:", "Integer", "/home/saintiss/source/svn/stIdst_278/object/st80/LargeInteger.st");
  oop v_stop= 0;
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  oop _4= 0;
  oop _5= 0;
  (void)v_stop;
  _line(45);
  _1= v_self;
  _line(48);
  _1=_send(s_digitLength, _1);
  _2= v_x;
  _line(48);
  _2=_send(s_digitLength, _2);
  _line(48);
  _1=_send(s_min_, _1, _2);
  v_stop= _1;
  _1= v_x;
  _2= l_1;
  _3= v_stop;
  _4= v_self;
  _5= l_1;
  _line(49);
  _1=_send(s_replaceFrom_to_with_startingAt_, _1, _2, _3, _4, _5);
  _leave();
  return _1;
  _leave();
 }
static oop Integer___2b(oop v__closure, oop v_stateful_self, oop v_self, oop v_aNumber)
 {
  _enter("+", "Integer", "/home/saintiss/source/svn/stIdst_278/object/st80/LargeInteger.st");
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  _line(52);
  /* ifTrue: */
  _1= 0;
  _2= v_aNumber;
  _line(54);
  _2=_send(s_isInteger, _2);
  if (!_2) goto _l3;
 {
  /* ifTrue:ifFalse: */
  _1= v_self;
  _line(56);
  _1=_send(s_negative, _1);
  _2= v_aNumber;
  _line(56);
  _2=_send(s_negative, _2);
  _1= (_1 == _2) ? v_true : v_false;
  if (!_1) goto _l4;
 {
  _1= v_self;
  _2= v_aNumber;
  _line(57);
  _1=_send(s_digitAdd_, _1, _2);
  _line(57);
  _1=_send(s_normalize, _1);
 }
  goto _l5;
 _l4:;
 {
  _1= v_self;
  _2= v_aNumber;
  _line(58);
  _1=_send(s_digitSubtract_, _1, _2);
 }
 _l5:;
  _leave();
  return _1;
 }
 _l3:;
  _1= v_aNumber;
  _2= v_self;
  _3= l_2;
  _line(59);
  _1=_send(s_adaptToInteger_andSend_, _1, _2, _3);
  _leave();
  return _1;
  _leave();
 }
static oop b_5(oop v__closure, oop v__self, oop v_i)
 {
  _enter("[]", "?", "/home/saintiss/source/svn/stIdst_278/object/st80/LargeInteger.st");
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  oop _4= 0;
  _line(68);
  _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1];  /* accum */
  _2= l_7;
  { int _l= (int)_1 >> 1,  _r= (int)_2 >> 1,  _s= ((_r < 0) ? (_l >> -_r) : (_l << _r));
    if ((1 & (int)_1) && (   (    (_r >= 0) && (_r <= 31)  && (_l == (_s >> _r)) && ((_s ^ (_s << 1)) >= 0) ) || ((_r < 0) && (_r >= -31)) )) _1= (oop)(_s << 1 | 1); else _1= _send(s_bitShift_, _1, _2);
  }
  _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[2];  /* self */
  _3= v_i;
  _line(69);
  _2=_send(s_digitAt_, _2, _3);
  {
    int _l= (int)_1 >> 1;
    int _r= (int)_2 >> 1;
    int _s= _l + _r;
    if ((1 & (int)_1 & (int)_2) && ((_s ^ (_s << 1)) >= 0))  _1= (oop)(_s << 1 | 1);  else _1= _send(s__2b, _1, _2);
  }
  _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[4];  /* arg */
  _3= v_i;
  _line(69);
  _2=_send(s_digitAt_, _2, _3);
  {
    int _l= (int)_1 >> 1;
    int _r= (int)_2 >> 1;
    int _s= _l + _r;
    if ((1 & (int)_1 & (int)_2) && ((_s ^ (_s << 1)) >= 0))  _1= (oop)(_s << 1 | 1);  else _1= _send(s__2b, _1, _2);
  }
  ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1]= _1;  /* accum */
  _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[5];  /* sum */
  _2= v_i;
  _3= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1];  /* accum */
  _4= l_6;
  if ((1 & (int)_3) && (_3 > 0) && (_4 > 0)) {
    _3= (oop)((int)_3 & (int)_4);
  } else _3= _send(s_bitAnd_, _3, _4);
  _line(70);
  _1=_send(s_digitAt_put_, _1, _2, _3);
  _leave();
  return _1;
  _leave();
 }
static oop Integer__digitAdd_(oop v__closure, oop v_stateful_self, oop v_self, oop v_arg)
 {
  _enter("digitAdd:", "Integer", "/home/saintiss/source/svn/stIdst_278/object/st80/LargeInteger.st");
  oop _state1= _send(s_new_5f_, v__vector, 6);
  oop v_len= 0;
  oop v_arglen= 0;
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  oop _4= 0;
  (void)v_len;
  (void)v_arglen;
  ((oop *)_state1)[3]= v_stateful_self;
  ((oop *)_state1)[2]= v_self;
  ((oop *)_state1)[4]= v_arg;
  _line(62);
  _1= l_3;
  ((oop *)_state1)[1]= _1;  /* accum */
  /* ifTrue: */
  _1= 0;
  _2= ((oop *)_state1)[2];  /* self */
  _line(66);
  _2=_send(s_digitLength, _2);
  v_len= _2;
  _3= ((oop *)_state1)[4];  /* arg */
  _line(66);
  _3=_send(s_digitLength, _3);
  v_arglen= _3;
  if (1 & (int)_2 & (int)_3) {
    _2= (((int)_2 < (int)_3) ? v_true : v_false);
  } else _2= _send(s__3c, _2, _3);
  if (!_2) goto _l6;
 {
  _1= v_arglen;
  v_len= _1;
 }
 _l6:;
  _1= v_Integer;
  _2= v_len;
  _3= ((oop *)_state1)[2];  /* self */
  _line(67);
  _3=_send(s_negative, _3);
  _line(67);
  _1=_send(s_new_neg_, _1, _2, _3);
  ((oop *)_state1)[5]= _1;  /* sum */
  _1= l_4;
  _2= v_len;
  /* Scope('i'->ArgumentVariableNode) */
  /* Scope('accum'->TemporaryVariableNode 'arg'->ArgumentVariableNode 'stateful_self'->ArgumentVariableNode 'self'->ArgumentVariableNode 'len'->TemporaryVariableNode 'arglen'->TemporaryVariableNode 'sum'->TemporaryVariableNode) */
  /* nil */
  /* 2 */
  /* 1 */
  _3= _send(s_function_5f_arity_5f_outer_state_nlr_5f_, v_BlockClosure, (oop)b_5, 1, 0, ((oop *)_state1), 0);
  _line(68);
  _1=_send(s_to_do_, _1, _2, _3);
  /* ifTrue: */
  _1= 0;
  _2= ((oop *)_state1)[1];  /* accum */
  _3= l_6;
  if (1 & (int)_2) {
    _2= (((int)_2 > (int)_3) ? v_true : v_false);
  } else _2= _send(s__3e, _2, _3);
  if (!_2) goto _l7;
 {
  _1= ((oop *)_state1)[5];  /* sum */
  _2= l_4;
  _line(73);
  _1=_send(s_growBy_, _1, _2);
  ((oop *)_state1)[5]= _1;  /* sum */
  _1= ((oop *)_state1)[5];  /* sum */
  _2= ((oop *)_state1)[5];  /* sum */
  _line(74);
  _2=_send(s_digitLength, _2);
  _3= ((oop *)_state1)[1];  /* accum */
  _4= l_7;
  { int _l= (int)_3 >> 1,  _r= (int)_4 >> 1,  _s= ((_r < 0) ? (_l >> -_r) : (_l << _r));
    if ((1 & (int)_3) && (   (    (_r >= 0) && (_r <= 31)  && (_l == (_s >> _r)) && ((_s ^ (_s << 1)) >= 0) ) || ((_r < 0) && (_r >= -31)) )) _3= (oop)(_s << 1 | 1); else _3= _send(s_bitShift_, _3, _4);
  }
  _line(74);
  _1=_send(s_at_put_, _1, _2, _3);
 }
 _l7:;
  _1= ((oop *)_state1)[5];  /* sum */
  _leave();
  return _1;
  _leave();
 }
static oop Integer___2d(oop v__closure, oop v_stateful_self, oop v_self, oop v_aNumber)
 {
  _enter("-", "Integer", "/home/saintiss/source/svn/stIdst_278/object/st80/LargeInteger.st");
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  _line(78);
  /* ifTrue: */
  _1= 0;
  _2= v_aNumber;
  _line(80);
  _2=_send(s_isInteger, _2);
  if (!_2) goto _l8;
 {
  /* ifTrue:ifFalse: */
  _1= v_self;
  _line(82);
  _1=_send(s_negative, _1);
  _2= v_aNumber;
  _line(82);
  _2=_send(s_negative, _2);
  _1= (_1 == _2) ? v_true : v_false;
  if (!_1) goto _l9;
 {
  _1= v_self;
  _2= v_aNumber;
  _line(83);
  _1=_send(s_digitSubtract_, _1, _2);
 }
  goto _l10;
 _l9:;
 {
  _1= v_self;
  _2= v_aNumber;
  _line(84);
  _1=_send(s_digitAdd_, _1, _2);
  _line(84);
  _1=_send(s_normalize, _1);
 }
 _l10:;
  _leave();
  return _1;
 }
 _l8:;
  _1= v_aNumber;
  _2= v_self;
  _3= l_8;
  _line(85);
  _1=_send(s_adaptToInteger_andSend_, _1, _2, _3);
  _leave();
  return _1;
  _leave();
 }
static oop b_11(oop v__closure, oop v__self, oop v_i)
 {
  _enter("[]", "?", "/home/saintiss/source/svn/stIdst_278/object/st80/LargeInteger.st");
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  oop _4= 0;
  oop _5= 0;
  _line(110);
  _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1];  /* z */
  _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[2];  /* larger */
  _3= v_i;
  _line(111);
  _2=_send(s_digitAt_, _2, _3);
  {
    int _l= (int)_1 >> 1;
    int _r= (int)_2 >> 1;
    int _s= _l + _r;
    if ((1 & (int)_1 & (int)_2) && ((_s ^ (_s << 1)) >= 0))  _1= (oop)(_s << 1 | 1);  else _1= _send(s__2b, _1, _2);
  }
  _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[3];  /* smaller */
  _3= v_i;
  _line(111);
  _2=_send(s_digitAt_, _2, _3);
  {
    int _l= (int)_1 >> 1;
    int _r= (int)_2 >> 1;
    int _s= (_l - _r);
    if ((1 & (int)_1 & (int)_2) && ((_s ^ (_s << 1)) >= 0))  _1= (oop)(_s << 1 | 1);  else _1= _send(s__2d, _1, _2);
  }
  ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1]= _1;  /* z */
  _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[4];  /* sum */
  _2= v_i;
  _3= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1];  /* z */
  _4= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1];  /* z */
  _5= l_12;
  _4= _send(s__2f_2f, _4, _5);
  _5= l_12;
  {
    int _l= (int)_4 >> 1;
    int _r= (int)_5 >> 1;
    int _s= (_l * _r);
    if ((1 & (int)_4) && ((_r == 0) || (_s / _r == _l)) && ((_s ^ (_s << 1)) >= 0))  _4= (oop)(_s << 1 | 1);  else _4= _send(s__2a, _4, _5);
  }
  {
    int _l= (int)_3 >> 1;
    int _r= (int)_4 >> 1;
    int _s= (_l - _r);
    if ((1 & (int)_3 & (int)_4) && ((_s ^ (_s << 1)) >= 0))  _3= (oop)(_s << 1 | 1);  else _3= _send(s__2d, _3, _4);
  }
  _line(112);
  _1=_send(s_digitAt_put_, _1, _2, _3);
  _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1];  /* z */
  _2= l_12;
  _1= _send(s__2f_2f, _1, _2);
  ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1]= _1;  /* z */
  _leave();
  return _1;
  _leave();
 }
static oop Integer__digitSubtract_(oop v__closure, oop v_stateful_self, oop v_self, oop v_arg)
 {
  _enter("digitSubtract:", "Integer", "/home/saintiss/source/svn/stIdst_278/object/st80/LargeInteger.st");
  oop _state1= _send(s_new_5f_, v__vector, 5);
  oop v_sl= 0;
  oop v_al= 0;
  oop v_ng= 0;
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  (void)v_sl;
  (void)v_al;
  (void)v_ng;
  _line(88);
  _1= v_self;
  _line(91);
  _1=_send(s_digitLength, _1);
  v_sl= _1;
  _1= v_arg;
  _line(92);
  _1=_send(s_digitLength, _1);
  v_al= _1;
  /* ifTrue:ifFalse: */
  /* ifTrue:ifFalse: */
  _1= v_sl;
  _2= v_al;
  if (1 & (int)_1 & (int)_2) {
    _1= (((int)_1 == (int)_2) ? v_true : v_false);
  } else _1= _send(s__3d, _1, _2);
  if (!_1) goto _l13;
 {
  /* whileTrue: */
  goto _l16;
 _l15:;
 {
  _1= v_sl;
  _2= l_9;
  {
    int _l= (int)_1 >> 1;
    int _r= (int)_2 >> 1;
    int _s= (_l - _r);
    if ((1 & (int)_1) && ((_s ^ (_s << 1)) >= 0))  _1= (oop)(_s << 1 | 1);  else _1= _send(s__2d, _1, _2);
  }
  v_sl= _1;
 }
 _l16:;
 {
  /* and: */
  _1= v_self;
  _2= v_sl;
  _line(93);
  _1=_send(s_digitAt_, _1, _2);
  _2= v_arg;
  _3= v_sl;
  _line(93);
  _2=_send(s_digitAt_, _2, _3);
  if (1 & (int)_1 & (int)_2) {
    _1= (((int)_1 == (int)_2) ? v_true : v_false);
  } else _1= _send(s__3d, _1, _2);
  if (!_1) goto _l17;
 {
  _1= v_sl;
  _2= l_9;
  if (1 & (int)_1) {
    _1= (((int)_1 > (int)_2) ? v_true : v_false);
  } else _1= _send(s__3e, _1, _2);
 }
 _l17:;
 }
  if (_1) goto _l15;
  _1= 0;
  _1= v_sl;
  v_al= _1;
  _1= v_self;
  _2= v_sl;
  _line(96);
  _1=_send(s_digitAt_, _1, _2);
  _2= v_arg;
  _3= v_sl;
  _line(96);
  _2=_send(s_digitAt_, _2, _3);
  if (1 & (int)_1 & (int)_2) {
    _1= (((int)_1 < (int)_2) ? v_true : v_false);
  } else _1= _send(s__3c, _1, _2);
 }
  goto _l14;
 _l13:;
 {
  _1= v_sl;
  _2= v_al;
  if (1 & (int)_1 & (int)_2) {
    _1= (((int)_1 < (int)_2) ? v_true : v_false);
  } else _1= _send(s__3c, _1, _2);
 }
 _l14:;
  if (!_1) goto _l11;
 {
  _1= v_arg;
  ((oop *)_state1)[2]= _1;  /* larger */
  _1= v_self;
  ((oop *)_state1)[3]= _1;  /* smaller */
  _1= v_self;
  _line(101);
  _1=_send(s_negative, _1);
  _2= v_false;
  _1= (_1 == _2) ? v_true : v_false;
  v_ng= _1;
  _1= v_al;
  v_sl= _1;
 }
  goto _l12;
 _l11:;
 {
  _1= v_self;
  ((oop *)_state1)[2]= _1;  /* larger */
  _1= v_arg;
  ((oop *)_state1)[3]= _1;  /* smaller */
  _1= v_self;
  _line(106);
  _1=_send(s_negative, _1);
  v_ng= _1;
 }
 _l12:;
  _1= v_Integer;
  _2= v_sl;
  _3= v_ng;
  _line(107);
  _1=_send(s_new_neg_, _1, _2, _3);
  ((oop *)_state1)[4]= _1;  /* sum */
  _1= l_10;
  ((oop *)_state1)[1]= _1;  /* z */
  _1= l_9;
  _2= v_sl;
  /* Scope('i'->ArgumentVariableNode) */
  /* Scope('sl'->TemporaryVariableNode 'arg'->ArgumentVariableNode 'larger'->TemporaryVariableNode 'stateful_self'->ArgumentVariableNode 'al'->TemporaryVariableNode 'smaller'->TemporaryVariableNode 'z'->TemporaryVariableNode 'self'->ArgumentVariableNode 'ng'->TemporaryVariableNode 'sum'->TemporaryVariableNode) */
  /* nil */
  /* 2 */
  /* 1 */
  _3= _send(s_function_5f_arity_5f_outer_state_nlr_5f_, v_BlockClosure, (oop)b_11, 1, 0, ((oop *)_state1), 0);
  _line(110);
  _1=_send(s_to_do_, _1, _2, _3);
  _1= ((oop *)_state1)[4];  /* sum */
  _line(115);
  _1=_send(s_normalize, _1);
  _leave();
  return _1;
  _leave();
 }
static oop Integer___2a(oop v__closure, oop v_stateful_self, oop v_self, oop v_aNumber)
 {
  _enter("*", "Integer", "/home/saintiss/source/svn/stIdst_278/object/st80/LargeInteger.st");
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  oop _4= 0;
  _line(118);
  /* ifTrue: */
  _1= 0;
  _2= v_aNumber;
  _line(120);
  _2=_send(s_isInteger, _2);
  if (!_2) goto _l18;
 {
  _1= v_self;
  _2= v_aNumber;
  _3= v_self;
  _line(122);
  _3=_send(s_negative, _3);
  _4= v_aNumber;
  _line(122);
  _4=_send(s_negative, _4);
  _3= (_3 != _4) ? v_true : v_false;
  _line(122);
  _1=_send(s_digitMultiply_neg_, _1, _2, _3);
  _leave();
  return _1;
 }
 _l18:;
  _1= v_aNumber;
  _2= v_self;
  _3= l_13;
  _line(123);
  _1=_send(s_adaptToInteger_andSend_, _1, _2, _3);
  _leave();
  return _1;
  _leave();
 }
static oop b_17(oop v__closure, oop v__self, oop v_j)
 {
  _enter("[]", "?", "/home/saintiss/source/svn/stIdst_278/object/st80/LargeInteger.st");
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  oop _4= 0;
  _line(140);
  _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_outer)->v_state))[6];  /* arg */
  _2= v_j;
  _line(141);
  _1=_send(s_digitAt_, _1, _2);
  _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_outer)->v_state))[3];  /* digit */
  {
    int _l= (int)_1 >> 1;
    int _r= (int)_2 >> 1;
    int _s= (_l * _r);
    if ((1 & (int)_1 & (int)_2) && ((_r == 0) || (_s / _r == _l)) && ((_s ^ (_s << 1)) >= 0))  _1= (oop)(_s << 1 | 1);  else _1= _send(s__2a, _1, _2);
  }
  _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_outer)->v_state))[5];  /* carry */
  {
    int _l= (int)_1 >> 1;
    int _r= (int)_2 >> 1;
    int _s= _l + _r;
    if ((1 & (int)_1 & (int)_2) && ((_s ^ (_s << 1)) >= 0))  _1= (oop)(_s << 1 | 1);  else _1= _send(s__2b, _1, _2);
  }
  _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_outer)->v_state))[7];  /* prod */
  _3= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_outer)->v_state))[4];  /* k */
  _line(141);
  _2=_send(s_digitAt_, _2, _3);
  {
    int _l= (int)_1 >> 1;
    int _r= (int)_2 >> 1;
    int _s= _l + _r;
    if ((1 & (int)_1 & (int)_2) && ((_s ^ (_s << 1)) >= 0))  _1= (oop)(_s << 1 | 1);  else _1= _send(s__2b, _1, _2);
  }
  ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_outer)->v_state))[8]= _1;  /* ab */
  _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_outer)->v_state))[8];  /* ab */
  _2= l_18;
  { int _l= (int)_1 >> 1,  _r= (int)_2 >> 1,  _s= ((_r < 0) ? (_l >> -_r) : (_l << _r));
    if ((1 & (int)_1) && (   (    (_r >= 0) && (_r <= 31)  && (_l == (_s >> _r)) && ((_s ^ (_s << 1)) >= 0) ) || ((_r < 0) && (_r >= -31)) )) _1= (oop)(_s << 1 | 1); else _1= _send(s_bitShift_, _1, _2);
  }
  ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_outer)->v_state))[5]= _1;  /* carry */
  _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_outer)->v_state))[7];  /* prod */
  _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_outer)->v_state))[4];  /* k */
  _3= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_outer)->v_state))[8];  /* ab */
  _4= l_19;
  if ((1 & (int)_3) && (_3 > 0) && (_4 > 0)) {
    _3= (oop)((int)_3 & (int)_4);
  } else _3= _send(s_bitAnd_, _3, _4);
  _line(143);
  _1=_send(s_digitAt_put_, _1, _2, _3);
  _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_outer)->v_state))[4];  /* k */
  _2= l_14;
  {
    int _l= (int)_1 >> 1;
    int _r= (int)_2 >> 1;
    int _s= _l + _r;
    if ((1 & (int)_1) && ((_s ^ (_s << 1)) >= 0))  _1= (oop)(_s << 1 | 1);  else _1= _send(s__2b, _1, _2);
  }
  ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_outer)->v_state))[4]= _1;  /* k */
  _leave();
  return _1;
  _leave();
 }
static oop b_16(oop v__closure, oop v__self, oop v_i)
 {
  _enter("[]", "?", "/home/saintiss/source/svn/stIdst_278/object/st80/LargeInteger.st");
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  _line(134);
  /* ifTrue: */
  _1= 0;
  _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1];  /* self */
  _3= v_i;
  _line(135);
  _2=_send(s_digitAt_, _2, _3);
  ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[3]= _2;  /* digit */
  _3= l_15;
  if (1 & (int)_2) {
    _2= (((int)_2 != (int)_3) ? v_true : v_false);
  } else _2= _send(s__7e_3d, _2, _3);
  if (!_2) goto _l19;
 {
  _1= v_i;
  ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[4]= _1;  /* k */
  _1= l_15;
  ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[5]= _1;  /* carry */
  _1= l_14;
  _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[6];  /* arg */
  _line(140);
  _2=_send(s_digitLength, _2);
  /* Scope('j'->ArgumentVariableNode) */
  /* Scope('i'->ArgumentVariableNode) */
  /* Object */
  /* 3 */
  /* 2 */
  _3= _send(s_function_5f_arity_5f_outer_state_nlr_5f_, v_BlockClosure, (oop)b_17, 1, v__self, 0, 0);
  _line(140);
  _1=_send(s_to_do_, _1, _2, _3);
  _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[7];  /* prod */
  _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[4];  /* k */
  _3= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[5];  /* carry */
  _line(145);
  _1=_send(s_digitAt_put_, _1, _2, _3);
 }
 _l19:;
  _leave();
  return _1;
  _leave();
 }
static oop Integer__digitMultiply_neg_(oop v__closure, oop v_stateful_self, oop v_self, oop v_arg, oop v_ng)
 {
  _enter("digitMultiply:neg:", "Integer", "/home/saintiss/source/svn/stIdst_278/object/st80/LargeInteger.st");
  oop _state1= _send(s_new_5f_, v__vector, 9);
  oop v_prodLen= 0;
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  (void)v_prodLen;
  ((oop *)_state1)[2]= v_stateful_self;
  ((oop *)_state1)[1]= v_self;
  ((oop *)_state1)[6]= v_arg;
  _line(126);
  /* ifTrue: */
  _1= 0;
  /* and: */
  _2= ((oop *)_state1)[6];  /* arg */
  _line(129);
  _2=_send(s_digitLength, _2);
  _3= l_14;
  if (1 & (int)_2) {
    _2= (((int)_2 == (int)_3) ? v_true : v_false);
  } else _2= _send(s__3d, _2, _3);
  if (!_2) goto _l21;
 {
  _2= ((oop *)_state1)[6];  /* arg */
  _3= l_14;
  _line(129);
  _2=_send(s_digitAt_, _2, _3);
  _3= l_15;
  if (1 & (int)_2) {
    _2= (((int)_2 == (int)_3) ? v_true : v_false);
  } else _2= _send(s__3d, _2, _3);
 }
 _l21:;
  if (!_2) goto _l20;
 {
  _1= l_15;
  _leave();
  return _1;
 }
 _l20:;
  /* ifTrue: */
  _1= 0;
  /* and: */
  _2= ((oop *)_state1)[1];  /* self */
  _line(130);
  _2=_send(s_digitLength, _2);
  _3= l_14;
  if (1 & (int)_2) {
    _2= (((int)_2 == (int)_3) ? v_true : v_false);
  } else _2= _send(s__3d, _2, _3);
  if (!_2) goto _l23;
 {
  _2= ((oop *)_state1)[1];  /* self */
  _3= l_14;
  _line(130);
  _2=_send(s_digitAt_, _2, _3);
  _3= l_15;
  if (1 & (int)_2) {
    _2= (((int)_2 == (int)_3) ? v_true : v_false);
  } else _2= _send(s__3d, _2, _3);
 }
 _l23:;
  if (!_2) goto _l22;
 {
  _1= l_15;
  _leave();
  return _1;
 }
 _l22:;
  _1= ((oop *)_state1)[1];  /* self */
  _line(131);
  _1=_send(s_digitLength, _1);
  _2= ((oop *)_state1)[6];  /* arg */
  _line(131);
  _2=_send(s_digitLength, _2);
  {
    int _l= (int)_1 >> 1;
    int _r= (int)_2 >> 1;
    int _s= _l + _r;
    if ((1 & (int)_1 & (int)_2) && ((_s ^ (_s << 1)) >= 0))  _1= (oop)(_s << 1 | 1);  else _1= _send(s__2b, _1, _2);
  }
  v_prodLen= _1;
  _1= v_Integer;
  _2= v_prodLen;
  _3= v_ng;
  _line(132);
  _1=_send(s_new_neg_, _1, _2, _3);
  ((oop *)_state1)[7]= _1;  /* prod */
  _1= l_14;
  _2= ((oop *)_state1)[1];  /* self */
  _line(134);
  _2=_send(s_digitLength, _2);
  /* Scope('i'->ArgumentVariableNode) */
  /* Scope('ab'->TemporaryVariableNode 'carry'->TemporaryVariableNode 'arg'->ArgumentVariableNode 'prodLen'->TemporaryVariableNode 'k'->TemporaryVariableNode 'stateful_self'->ArgumentVariableNode 'ng'->ArgumentVariableNode 'self'->ArgumentVariableNode 'prod'->TemporaryVariableNode 'digit'->TemporaryVariableNode) */
  /* nil */
  /* 2 */
  /* 1 */
  _3= _send(s_function_5f_arity_5f_outer_state_nlr_5f_, v_BlockClosure, (oop)b_16, 1, 0, ((oop *)_state1), 0);
  _line(134);
  _1=_send(s_to_do_, _1, _2, _3);
  _1= ((oop *)_state1)[7];  /* prod */
  _line(146);
  _1=_send(s_normalize, _1);
  _leave();
  return _1;
  _leave();
 }
static oop Integer___2f_2f(oop v__closure, oop v_stateful_self, oop v_self, oop v_aNumber)
 {
  _enter("//", "Integer", "/home/saintiss/source/svn/stIdst_278/object/st80/LargeInteger.st");
  oop v_q= 0;
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  (void)v_q;
  _line(149);
  /* ifTrue: */
  _1= 0;
  _2= v_aNumber;
  _3= l_20;
  if (1 & (int)_2) {
    _2= (((int)_2 == (int)_3) ? v_true : v_false);
  } else _2= _send(s__3d, _2, _3);
  if (!_2) goto _l24;
 {
  _1= v_self;
  _2= l_21;
  _line(152);
  _1=_send(s_error_, _1, _2);
  _leave();
  return _1;
 }
 _l24:;
  /* ifTrue: */
  _1= 0;
  _2= v_self;
  _3= l_20;
  if (1 & (int)_2) {
    _2= (((int)_2 == (int)_3) ? v_true : v_false);
  } else _2= _send(s__3d, _2, _3);
  if (!_2) goto _l25;
 {
  _1= l_20;
  _leave();
  return _1;
 }
 _l25:;
  _1= v_self;
  _2= v_aNumber;
  _line(154);
  _1=_send(s_quo_, _1, _2);
  v_q= _1;
  /* ifTrue:ifFalse: */
  /* ifTrue:ifFalse: */
  _1= v_q;
  _line(155);
  _1=_send(s_negative, _1);
  if (!_1) goto _l28;
 {
  _1= v_q;
  _2= v_aNumber;
  {
    int _l= (int)_1 >> 1;
    int _r= (int)_2 >> 1;
    int _s= (_l * _r);
    if ((1 & (int)_1 & (int)_2) && ((_r == 0) || (_s / _r == _l)) && ((_s ^ (_s << 1)) >= 0))  _1= (oop)(_s << 1 | 1);  else _1= _send(s__2a, _1, _2);
  }
  _2= v_self;
  if (1 & (int)_1 & (int)_2) {
    _1= (((int)_1 != (int)_2) ? v_true : v_false);
  } else _1= _send(s__7e_3d, _1, _2);
 }
  goto _l29;
 _l28:;
 {
  /* and: */
  _1= v_q;
  _2= l_20;
  if (1 & (int)_1) {
    _1= (((int)_1 == (int)_2) ? v_true : v_false);
  } else _1= _send(s__3d, _1, _2);
  if (!_1) goto _l30;
 {
  _1= v_self;
  _line(155);
  _1=_send(s_negative, _1);
  _2= v_aNumber;
  _line(155);
  _2=_send(s_negative, _2);
  if (1 & (int)_1 & (int)_2) {
    _1= (((int)_1 != (int)_2) ? v_true : v_false);
  } else _1= _send(s__7e_3d, _1, _2);
 }
 _l30:;
 }
 _l29:;
  if (!_1) goto _l26;
 {
  _1= v_q;
  _2= l_22;
  {
    int _l= (int)_1 >> 1;
    int _r= (int)_2 >> 1;
    int _s= (_l - _r);
    if ((1 & (int)_1) && ((_s ^ (_s << 1)) >= 0))  _1= (oop)(_s << 1 | 1);  else _1= _send(s__2d, _1, _2);
  }
 }
  goto _l27;
 _l26:;
 {
  _1= v_q;
 }
 _l27:;
  _leave();
  return _1;
  _leave();
 }
static oop Integer__quo_(oop v__closure, oop v_stateful_self, oop v_self, oop v_aNumber)
 {
  _enter("quo:", "Integer", "/home/saintiss/source/svn/stIdst_278/object/st80/LargeInteger.st");
  oop v_ng= 0;
  oop v_quo= 0;
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  (void)v_ng;
  (void)v_quo;
  _line(160);
  /* ifTrue: */
  _1= 0;
  _2= v_aNumber;
  _line(163);
  _2=_send(s_isInteger, _2);
  if (!_2) goto _l31;
 {
  _1= v_self;
  _line(165);
  _1=_send(s_negative, _1);
  _2= v_aNumber;
  _line(165);
  _2=_send(s_negative, _2);
  _1= (_1 == _2) ? v_true : v_false;
  _2= v_false;
  _1= (_1 == _2) ? v_true : v_false;
  v_ng= _1;
  _1= v_self;
  /* ifTrue:ifFalse: */
  _2= v_aNumber;
  _line(166);
  _2=_send(s_isSmallInteger, _2);
  if (!_2) goto _l32;
 {
  _2= v_aNumber;
  _line(166);
  _2=_send(s_abs, _2);
 }
  goto _l33;
 _l32:;
 {
  _2= v_aNumber;
 }
 _l33:;
  _3= v_ng;
  _line(166);
  _1=_send(s_digitDiv_neg_, _1, _2, _3);
  _2= l_23;
  _line(167);
  _1=_send(s_at_, _1, _2);
  v_quo= _1;
  _1= v_quo;
  _line(168);
  _1=_send(s_normalize, _1);
  _leave();
  return _1;
 }
 _l31:;
  _1= v_aNumber;
  _2= v_self;
  _3= l_24;
  _line(169);
  _1=_send(s_adaptToInteger_andSend_, _1, _2, _3);
  _leave();
  return _1;
  _leave();
 }
static oop Integer___2f(oop v__closure, oop v_stateful_self, oop v_self, oop v_aNumber)
 {
  _enter("/", "Integer", "/home/saintiss/source/svn/stIdst_278/object/st80/LargeInteger.st");
  oop v_quoRem= 0;
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  oop _4= 0;
  (void)v_quoRem;
  _line(172);
  /* ifTrue: */
  _1= 0;
  _2= v_aNumber;
  _line(175);
  _2=_send(s_isInteger, _2);
  if (!_2) goto _l34;
 {
  _1= v_self;
  _2= v_aNumber;
  _line(177);
  _2=_send(s_abs, _2);
  _3= v_self;
  _line(177);
  _3=_send(s_negative, _3);
  _4= v_aNumber;
  _line(177);
  _4=_send(s_negative, _4);
  _3= (_3 != _4) ? v_true : v_false;
  _line(177);
  _1=_send(s_digitDiv_neg_, _1, _2, _3);
  v_quoRem= _1;
  /* ifTrue:ifFalse: */
  _1= v_quoRem;
  _2= l_25;
  _line(178);
  _1=_send(s_at_, _1, _2);
  _2= l_26;
  if (1 & (int)_1) {
    _1= (((int)_1 == (int)_2) ? v_true : v_false);
  } else _1= _send(s__3d, _1, _2);
  if (!_1) goto _l35;
 {
  _1= v_quoRem;
  _2= l_27;
  _line(179);
  _1=_send(s_at_, _1, _2);
  _line(179);
  _1=_send(s_normalize, _1);
 }
  goto _l36;
 _l35:;
 {
  _1= v_self;
  _line(180);
  _1=_send(s_asFloat, _1);
  _2= v_aNumber;
  _line(180);
  _2=_send(s_asFloat, _2);
  _line(180);
  _1=_send(s__2f, _1, _2);
 }
 _l36:;
  _leave();
  return _1;
 }
 _l34:;
  _1= v_aNumber;
  _2= v_self;
  _3= l_28;
  _line(181);
  _1=_send(s_adaptToInteger_andSend_, _1, _2, _3);
  _leave();
  return _1;
  _leave();
 }
static oop b_42(oop v__closure, oop v__self, oop v_i)
 {
  _enter("[]", "?", "/home/saintiss/source/svn/stIdst_278/object/st80/LargeInteger.st");
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  oop _4= 0;
  oop _5= 0;
  _line(247);
  _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_outer)->v_state))[14];  /* div */
  _2= v_i;
  _line(248);
  _1=_send(s_digitAt_, _1, _2);
  _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_outer)->v_state))[5];  /* qhi */
  {
    int _l= (int)_1 >> 1;
    int _r= (int)_2 >> 1;
    int _s= (_l * _r);
    if ((1 & (int)_1 & (int)_2) && ((_r == 0) || (_s / _r == _l)) && ((_s ^ (_s << 1)) >= 0))  _1= (oop)(_s << 1 | 1);  else _1= _send(s__2a, _1, _2);
  }
  ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_outer)->v_state))[8]= _1;  /* hi */
  _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_outer)->v_state))[13];  /* a */
  _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_outer)->v_state))[1];  /* rem */
  _3= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_outer)->v_state))[12];  /* l */
  _line(249);
  _2=_send(s_digitAt_, _2, _3);
  {
    int _l= (int)_1 >> 1;
    int _r= (int)_2 >> 1;
    int _s= _l + _r;
    if ((1 & (int)_1 & (int)_2) && ((_s ^ (_s << 1)) >= 0))  _1= (oop)(_s << 1 | 1);  else _1= _send(s__2b, _1, _2);
  }
  _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_outer)->v_state))[8];  /* hi */
  _3= l_33;
  if ((1 & (int)_2) && (_2 > 0) && (_3 > 0)) {
    _2= (oop)((int)_2 & (int)_3);
  } else _2= _send(s_bitAnd_, _2, _3);
  _3= l_34;
  { int _l= (int)_2 >> 1,  _r= (int)_3 >> 1,  _s= ((_r < 0) ? (_l >> -_r) : (_l << _r));
    if ((1 & (int)_2) && (   (    (_r >= 0) && (_r <= 31)  && (_l == (_s >> _r)) && ((_s ^ (_s << 1)) >= 0) ) || ((_r < 0) && (_r >= -31)) )) _2= (oop)(_s << 1 | 1); else _2= _send(s_bitShift_, _2, _3);
  }
  {
    int _l= (int)_1 >> 1;
    int _r= (int)_2 >> 1;
    int _s= (_l - _r);
    if ((1 & (int)_1 & (int)_2) && ((_s ^ (_s << 1)) >= 0))  _1= (oop)(_s << 1 | 1);  else _1= _send(s__2d, _1, _2);
  }
  _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_outer)->v_state))[14];  /* div */
  _3= v_i;
  _line(249);
  _2=_send(s_digitAt_, _2, _3);
  _3= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_outer)->v_state))[4];  /* qlo */
  {
    int _l= (int)_2 >> 1;
    int _r= (int)_3 >> 1;
    int _s= (_l * _r);
    if ((1 & (int)_2 & (int)_3) && ((_r == 0) || (_s / _r == _l)) && ((_s ^ (_s << 1)) >= 0))  _2= (oop)(_s << 1 | 1);  else _2= _send(s__2a, _2, _3);
  }
  {
    int _l= (int)_1 >> 1;
    int _r= (int)_2 >> 1;
    int _s= (_l - _r);
    if ((1 & (int)_1 & (int)_2) && ((_s ^ (_s << 1)) >= 0))  _1= (oop)(_s << 1 | 1);  else _1= _send(s__2d, _1, _2);
  }
  ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_outer)->v_state))[9]= _1;  /* lo */
  _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_outer)->v_state))[1];  /* rem */
  _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_outer)->v_state))[12];  /* l */
  _3= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_outer)->v_state))[9];  /* lo */
  _4= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_outer)->v_state))[9];  /* lo */
  _5= l_40;
  _4= _send(s__2f_2f, _4, _5);
  _5= l_40;
  {
    int _l= (int)_4 >> 1;
    int _r= (int)_5 >> 1;
    int _s= (_l * _r);
    if ((1 & (int)_4) && ((_r == 0) || (_s / _r == _l)) && ((_s ^ (_s << 1)) >= 0))  _4= (oop)(_s << 1 | 1);  else _4= _send(s__2a, _4, _5);
  }
  {
    int _l= (int)_3 >> 1;
    int _r= (int)_4 >> 1;
    int _s= (_l - _r);
    if ((1 & (int)_3 & (int)_4) && ((_s ^ (_s << 1)) >= 0))  _3= (oop)(_s << 1 | 1);  else _3= _send(s__2d, _3, _4);
  }
  _line(250);
  _1=_send(s_digitAt_put_, _1, _2, _3);
  _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_outer)->v_state))[9];  /* lo */
  _2= l_40;
  _1= _send(s__2f_2f, _1, _2);
  _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_outer)->v_state))[8];  /* hi */
  _3= l_35;
  { int _l= (int)_2 >> 1,  _r= (int)_3 >> 1,  _s= ((_r < 0) ? (_l >> -_r) : (_l << _r));
    if ((1 & (int)_2) && (   (    (_r >= 0) && (_r <= 31)  && (_l == (_s >> _r)) && ((_s ^ (_s << 1)) >= 0) ) || ((_r < 0) && (_r >= -31)) )) _2= (oop)(_s << 1 | 1); else _2= _send(s_bitShift_, _2, _3);
  }
  {
    int _l= (int)_1 >> 1;
    int _r= (int)_2 >> 1;
    int _s= (_l - _r);
    if ((1 & (int)_1 & (int)_2) && ((_s ^ (_s << 1)) >= 0))  _1= (oop)(_s << 1 | 1);  else _1= _send(s__2d, _1, _2);
  }
  ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_outer)->v_state))[13]= _1;  /* a */
  _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_outer)->v_state))[12];  /* l */
  _2= l_30;
  {
    int _l= (int)_1 >> 1;
    int _r= (int)_2 >> 1;
    int _s= _l + _r;
    if ((1 & (int)_1) && ((_s ^ (_s << 1)) >= 0))  _1= (oop)(_s << 1 | 1);  else _1= _send(s__2b, _1, _2);
  }
  ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_outer)->v_state))[12]= _1;  /* l */
  _leave();
  return _1;
  _leave();
 }
static oop b_43(oop v__closure, oop v__self, oop v_i)
 {
  _enter("[]", "?", "/home/saintiss/source/svn/stIdst_278/object/st80/LargeInteger.st");
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  oop _4= 0;
  _line(260);
  _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_outer)->v_state))[13];  /* a */
  _2= l_36;
  { int _l= (int)_1 >> 1,  _r= (int)_2 >> 1,  _s= ((_r < 0) ? (_l >> -_r) : (_l << _r));
    if ((1 & (int)_1) && (   (    (_r >= 0) && (_r <= 31)  && (_l == (_s >> _r)) && ((_s ^ (_s << 1)) >= 0) ) || ((_r < 0) && (_r >= -31)) )) _1= (oop)(_s << 1 | 1); else _1= _send(s_bitShift_, _1, _2);
  }
  _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_outer)->v_state))[1];  /* rem */
  _3= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_outer)->v_state))[12];  /* l */
  _line(261);
  _2=_send(s_digitAt_, _2, _3);
  {
    int _l= (int)_1 >> 1;
    int _r= (int)_2 >> 1;
    int _s= _l + _r;
    if ((1 & (int)_1 & (int)_2) && ((_s ^ (_s << 1)) >= 0))  _1= (oop)(_s << 1 | 1);  else _1= _send(s__2b, _1, _2);
  }
  _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_outer)->v_state))[14];  /* div */
  _3= v_i;
  _line(261);
  _2=_send(s_digitAt_, _2, _3);
  {
    int _l= (int)_1 >> 1;
    int _r= (int)_2 >> 1;
    int _s= _l + _r;
    if ((1 & (int)_1 & (int)_2) && ((_s ^ (_s << 1)) >= 0))  _1= (oop)(_s << 1 | 1);  else _1= _send(s__2b, _1, _2);
  }
  ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_outer)->v_state))[13]= _1;  /* a */
  _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_outer)->v_state))[1];  /* rem */
  _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_outer)->v_state))[12];  /* l */
  _3= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_outer)->v_state))[13];  /* a */
  _4= l_37;
  if ((1 & (int)_3) && (_3 > 0) && (_4 > 0)) {
    _3= (oop)((int)_3 & (int)_4);
  } else _3= _send(s_bitAnd_, _3, _4);
  _line(262);
  _1=_send(s_digitAt_put_, _1, _2, _3);
  _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_outer)->v_state))[12];  /* l */
  _2= l_30;
  {
    int _l= (int)_1 >> 1;
    int _r= (int)_2 >> 1;
    int _s= _l + _r;
    if ((1 & (int)_1) && ((_s ^ (_s << 1)) >= 0))  _1= (oop)(_s << 1 | 1);  else _1= _send(s__2b, _1, _2);
  }
  ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_outer)->v_state))[12]= _1;  /* l */
  _leave();
  return _1;
  _leave();
 }
static oop b_32(oop v__closure, oop v__self, oop v_k)
 {
  _enter("[]", "?", "/home/saintiss/source/svn/stIdst_278/object/st80/LargeInteger.st");
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  oop _4= 0;
  _line(203);
  _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1];  /* rem */
  _line(207);
  _1=_send(s_digitLength, _1);
  _2= l_30;
  {
    int _l= (int)_1 >> 1;
    int _r= (int)_2 >> 1;
    int _s= _l + _r;
    if ((1 & (int)_1) && ((_s ^ (_s << 1)) >= 0))  _1= (oop)(_s << 1 | 1);  else _1= _send(s__2b, _1, _2);
  }
  _2= v_k;
  {
    int _l= (int)_1 >> 1;
    int _r= (int)_2 >> 1;
    int _s= (_l - _r);
    if ((1 & (int)_1 & (int)_2) && ((_s ^ (_s << 1)) >= 0))  _1= (oop)(_s << 1 | 1);  else _1= _send(s__2d, _1, _2);
  }
  ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[2]= _1;  /* j */
  /* ifTrue:ifFalse: */
  _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1];  /* rem */
  _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[2];  /* j */
  _line(209);
  _1=_send(s_digitAt_, _1, _2);
  _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[3];  /* dh */
  if (1 & (int)_1 & (int)_2) {
    _1= (((int)_1 == (int)_2) ? v_true : v_false);
  } else _1= _send(s__3d, _1, _2);
  if (!_1) goto _l37;
 {
  _1= l_33;
  ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[4]= _1;  /* qlo */
  ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[5]= _1;  /* qhi */
 }
  goto _l38;
 _l37:;
 {
  _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1];  /* rem */
  _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[2];  /* j */
  _line(217);
  _1=_send(s_digitAt_, _1, _2);
  _2= l_34;
  { int _l= (int)_1 >> 1,  _r= (int)_2 >> 1,  _s= ((_r < 0) ? (_l >> -_r) : (_l << _r));
    if ((1 & (int)_1) && (   (    (_r >= 0) && (_r <= 31)  && (_l == (_s >> _r)) && ((_s ^ (_s << 1)) >= 0) ) || ((_r < 0) && (_r >= -31)) )) _1= (oop)(_s << 1 | 1); else _1= _send(s_bitShift_, _1, _2);
  }
  _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1];  /* rem */
  _3= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[2];  /* j */
  _4= l_30;
  {
    int _l= (int)_3 >> 1;
    int _r= (int)_4 >> 1;
    int _s= (_l - _r);
    if ((1 & (int)_3) && ((_s ^ (_s << 1)) >= 0))  _3= (oop)(_s << 1 | 1);  else _3= _send(s__2d, _3, _4);
  }
  _line(217);
  _2=_send(s_digitAt_, _2, _3);
  _3= l_35;
  { int _l= (int)_2 >> 1,  _r= (int)_3 >> 1,  _s= ((_r < 0) ? (_l >> -_r) : (_l << _r));
    if ((1 & (int)_2) && (   (    (_r >= 0) && (_r <= 31)  && (_l == (_s >> _r)) && ((_s ^ (_s << 1)) >= 0) ) || ((_r < 0) && (_r >= -31)) )) _2= (oop)(_s << 1 | 1); else _2= _send(s_bitShift_, _2, _3);
  }
  {
    int _l= (int)_1 >> 1;
    int _r= (int)_2 >> 1;
    int _s= _l + _r;
    if ((1 & (int)_1 & (int)_2) && ((_s ^ (_s << 1)) >= 0))  _1= (oop)(_s << 1 | 1);  else _1= _send(s__2b, _1, _2);
  }
  ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[6]= _1;  /* t */
  _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[6];  /* t */
  _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[3];  /* dh */
  _1= _send(s__2f_2f, _1, _2);
  ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[5]= _1;  /* qhi */
  _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[6];  /* t */
  _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[3];  /* dh */
  _1= _send(s__5c_5c, _1, _2);
  _2= l_34;
  { int _l= (int)_1 >> 1,  _r= (int)_2 >> 1,  _s= ((_r < 0) ? (_l >> -_r) : (_l << _r));
    if ((1 & (int)_1) && (   (    (_r >= 0) && (_r <= 31)  && (_l == (_s >> _r)) && ((_s ^ (_s << 1)) >= 0) ) || ((_r < 0) && (_r >= -31)) )) _1= (oop)(_s << 1 | 1); else _1= _send(s_bitShift_, _1, _2);
  }
  _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1];  /* rem */
  _3= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[2];  /* j */
  _4= l_30;
  {
    int _l= (int)_3 >> 1;
    int _r= (int)_4 >> 1;
    int _s= (_l - _r);
    if ((1 & (int)_3) && ((_s ^ (_s << 1)) >= 0))  _3= (oop)(_s << 1 | 1);  else _3= _send(s__2d, _3, _4);
  }
  _line(219);
  _2=_send(s_digitAt_, _2, _3);
  _3= l_33;
  if ((1 & (int)_2) && (_2 > 0) && (_3 > 0)) {
    _2= (oop)((int)_2 & (int)_3);
  } else _2= _send(s_bitAnd_, _2, _3);
  {
    int _l= (int)_1 >> 1;
    int _r= (int)_2 >> 1;
    int _s= _l + _r;
    if ((1 & (int)_1 & (int)_2) && ((_s ^ (_s << 1)) >= 0))  _1= (oop)(_s << 1 | 1);  else _1= _send(s__2b, _1, _2);
  }
  ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[6]= _1;  /* t */
  _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[6];  /* t */
  _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[3];  /* dh */
  _1= _send(s__2f_2f, _1, _2);
  ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[4]= _1;  /* qlo */
  _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[6];  /* t */
  _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[3];  /* dh */
  _1= _send(s__5c_5c, _1, _2);
  ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[6]= _1;  /* t */
  _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[5];  /* qhi */
  _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[7];  /* dnh */
  {
    int _l= (int)_1 >> 1;
    int _r= (int)_2 >> 1;
    int _s= (_l * _r);
    if ((1 & (int)_1 & (int)_2) && ((_r == 0) || (_s / _r == _l)) && ((_s ^ (_s << 1)) >= 0))  _1= (oop)(_s << 1 | 1);  else _1= _send(s__2a, _1, _2);
  }
  ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[8]= _1;  /* hi */
  _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[4];  /* qlo */
  _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[7];  /* dnh */
  {
    int _l= (int)_1 >> 1;
    int _r= (int)_2 >> 1;
    int _s= (_l * _r);
    if ((1 & (int)_1 & (int)_2) && ((_r == 0) || (_s / _r == _l)) && ((_s ^ (_s << 1)) >= 0))  _1= (oop)(_s << 1 | 1);  else _1= _send(s__2a, _1, _2);
  }
  _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[8];  /* hi */
  _3= l_33;
  if ((1 & (int)_2) && (_2 > 0) && (_3 > 0)) {
    _2= (oop)((int)_2 & (int)_3);
  } else _2= _send(s_bitAnd_, _2, _3);
  _3= l_34;
  { int _l= (int)_2 >> 1,  _r= (int)_3 >> 1,  _s= ((_r < 0) ? (_l >> -_r) : (_l << _r));
    if ((1 & (int)_2) && (   (    (_r >= 0) && (_r <= 31)  && (_l == (_s >> _r)) && ((_s ^ (_s << 1)) >= 0) ) || ((_r < 0) && (_r >= -31)) )) _2= (oop)(_s << 1 | 1); else _2= _send(s_bitShift_, _2, _3);
  }
  {
    int _l= (int)_1 >> 1;
    int _r= (int)_2 >> 1;
    int _s= _l + _r;
    if ((1 & (int)_1 & (int)_2) && ((_s ^ (_s << 1)) >= 0))  _1= (oop)(_s << 1 | 1);  else _1= _send(s__2b, _1, _2);
  }
  ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[9]= _1;  /* lo */
  _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[8];  /* hi */
  _2= l_35;
  { int _l= (int)_1 >> 1,  _r= (int)_2 >> 1,  _s= ((_r < 0) ? (_l >> -_r) : (_l << _r));
    if ((1 & (int)_1) && (   (    (_r >= 0) && (_r <= 31)  && (_l == (_s >> _r)) && ((_s ^ (_s << 1)) >= 0) ) || ((_r < 0) && (_r >= -31)) )) _1= (oop)(_s << 1 | 1); else _1= _send(s_bitShift_, _1, _2);
  }
  _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[9];  /* lo */
  _3= l_36;
  { int _l= (int)_2 >> 1,  _r= (int)_3 >> 1,  _s= ((_r < 0) ? (_l >> -_r) : (_l << _r));
    if ((1 & (int)_2) && (   (    (_r >= 0) && (_r <= 31)  && (_l == (_s >> _r)) && ((_s ^ (_s << 1)) >= 0) ) || ((_r < 0) && (_r >= -31)) )) _2= (oop)(_s << 1 | 1); else _2= _send(s_bitShift_, _2, _3);
  }
  {
    int _l= (int)_1 >> 1;
    int _r= (int)_2 >> 1;
    int _s= _l + _r;
    if ((1 & (int)_1 & (int)_2) && ((_s ^ (_s << 1)) >= 0))  _1= (oop)(_s << 1 | 1);  else _1= _send(s__2b, _1, _2);
  }
  ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[8]= _1;  /* hi */
  _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[9];  /* lo */
  _2= l_37;
  if ((1 & (int)_1) && (_1 > 0) && (_2 > 0)) {
    _1= (oop)((int)_1 & (int)_2);
  } else _1= _send(s_bitAnd_, _1, _2);
  ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[9]= _1;  /* lo */
  /* ifTrue:ifFalse: */
  _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[2];  /* j */
  _2= l_38;
  if (1 & (int)_1) {
    _1= (((int)_1 < (int)_2) ? v_true : v_false);
  } else _1= _send(s__3c, _1, _2);
  if (!_1) goto _l39;
 {
  _1= l_29;
 }
  goto _l40;
 _l39:;
 {
  _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1];  /* rem */
  _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[2];  /* j */
  _3= l_39;
  {
    int _l= (int)_2 >> 1;
    int _r= (int)_3 >> 1;
    int _s= (_l - _r);
    if ((1 & (int)_2) && ((_s ^ (_s << 1)) >= 0))  _2= (oop)(_s << 1 | 1);  else _2= _send(s__2d, _2, _3);
  }
  _line(228);
  _1=_send(s_digitAt_, _1, _2);
 }
 _l40:;
  ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[10]= _1;  /* r3 */
  /* whileTrue: */
  goto _l42;
 _l41:;
 {
  _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[8];  /* hi */
  _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[3];  /* dh */
  {
    int _l= (int)_1 >> 1;
    int _r= (int)_2 >> 1;
    int _s= (_l - _r);
    if ((1 & (int)_1 & (int)_2) && ((_s ^ (_s << 1)) >= 0))  _1= (oop)(_s << 1 | 1);  else _1= _send(s__2d, _1, _2);
  }
  ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[8]= _1;  /* hi */
 }
 _l42:;
 {
  /* and: */
  /* or: */
  _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[6];  /* t */
  _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[8];  /* hi */
  if (1 & (int)_1 & (int)_2) {
    _1= (((int)_1 < (int)_2) ? v_true : v_false);
  } else _1= _send(s__3c, _1, _2);
  if (_1) goto _l44;
 {
  /* and: */
  _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[6];  /* t */
  _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[8];  /* hi */
  if (1 & (int)_1 & (int)_2) {
    _1= (((int)_1 == (int)_2) ? v_true : v_false);
  } else _1= _send(s__3d, _1, _2);
  if (!_1) goto _l45;
 {
  _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[10];  /* r3 */
  _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[9];  /* lo */
  if (1 & (int)_1 & (int)_2) {
    _1= (((int)_1 < (int)_2) ? v_true : v_false);
  } else _1= _send(s__3c, _1, _2);
 }
 _l45:;
 }
 _l44:;
  if (!_1) goto _l43;
 {
  _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[4];  /* qlo */
  _2= l_30;
  {
    int _l= (int)_1 >> 1;
    int _r= (int)_2 >> 1;
    int _s= (_l - _r);
    if ((1 & (int)_1) && ((_s ^ (_s << 1)) >= 0))  _1= (oop)(_s << 1 | 1);  else _1= _send(s__2d, _1, _2);
  }
  ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[4]= _1;  /* qlo */
  _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[9];  /* lo */
  _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[7];  /* dnh */
  {
    int _l= (int)_1 >> 1;
    int _r= (int)_2 >> 1;
    int _s= (_l - _r);
    if ((1 & (int)_1 & (int)_2) && ((_s ^ (_s << 1)) >= 0))  _1= (oop)(_s << 1 | 1);  else _1= _send(s__2d, _1, _2);
  }
  ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[9]= _1;  /* lo */
  /* ifTrue: */
  _1= 0;
  _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[9];  /* lo */
  _3= l_29;
  if (1 & (int)_2) {
    _2= (((int)_2 < (int)_3) ? v_true : v_false);
  } else _2= _send(s__3c, _2, _3);
  if (!_2) goto _l46;
 {
  _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[8];  /* hi */
  _2= l_30;
  {
    int _l= (int)_1 >> 1;
    int _r= (int)_2 >> 1;
    int _s= (_l - _r);
    if ((1 & (int)_1) && ((_s ^ (_s << 1)) >= 0))  _1= (oop)(_s << 1 | 1);  else _1= _send(s__2d, _1, _2);
  }
  ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[8]= _1;  /* hi */
  _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[9];  /* lo */
  _2= l_40;
  {
    int _l= (int)_1 >> 1;
    int _r= (int)_2 >> 1;
    int _s= _l + _r;
    if ((1 & (int)_1) && ((_s ^ (_s << 1)) >= 0))  _1= (oop)(_s << 1 | 1);  else _1= _send(s__2b, _1, _2);
  }
  ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[9]= _1;  /* lo */
 }
 _l46:;
  _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[8];  /* hi */
  _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[3];  /* dh */
  if (1 & (int)_1 & (int)_2) {
    _1= (((int)_1 >= (int)_2) ? v_true : v_false);
  } else _1= _send(s__3e_3d, _1, _2);
 }
 _l43:;
 }
  if (_1) goto _l41;
  _1= 0;
  /* ifTrue: */
  _1= 0;
  _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[4];  /* qlo */
  _3= l_29;
  if (1 & (int)_2) {
    _2= (((int)_2 < (int)_3) ? v_true : v_false);
  } else _2= _send(s__3c, _2, _3);
  if (!_2) goto _l47;
 {
  _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[5];  /* qhi */
  _2= l_30;
  {
    int _l= (int)_1 >> 1;
    int _r= (int)_2 >> 1;
    int _s= (_l - _r);
    if ((1 & (int)_1) && ((_s ^ (_s << 1)) >= 0))  _1= (oop)(_s << 1 | 1);  else _1= _send(s__2d, _1, _2);
  }
  ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[5]= _1;  /* qhi */
  _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[4];  /* qlo */
  _2= l_41;
  {
    int _l= (int)_1 >> 1;
    int _r= (int)_2 >> 1;
    int _s= _l + _r;
    if ((1 & (int)_1) && ((_s ^ (_s << 1)) >= 0))  _1= (oop)(_s << 1 | 1);  else _1= _send(s__2b, _1, _2);
  }
  ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[4]= _1;  /* qlo */
 }
 _l47:;
 }
 _l38:;
  _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[2];  /* j */
  _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[11];  /* dl */
  {
    int _l= (int)_1 >> 1;
    int _r= (int)_2 >> 1;
    int _s= (_l - _r);
    if ((1 & (int)_1 & (int)_2) && ((_s ^ (_s << 1)) >= 0))  _1= (oop)(_s << 1 | 1);  else _1= _send(s__2d, _1, _2);
  }
  ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[12]= _1;  /* l */
  _1= l_29;
  ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[13]= _1;  /* a */
  _1= l_30;
  _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[14];  /* div */
  _line(247);
  _2=_send(s_digitLength, _2);
  /* Scope('i'->ArgumentVariableNode) */
  /* Scope('k'->ArgumentVariableNode) */
  /* Object */
  /* 3 */
  /* 2 */
  _3= _send(s_function_5f_arity_5f_outer_state_nlr_5f_, v_BlockClosure, (oop)b_42, 1, v__self, 0, 0);
  _line(247);
  _1=_send(s_to_do_, _1, _2, _3);
  /* ifTrue: */
  _1= 0;
  _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[13];  /* a */
  _3= l_29;
  if (1 & (int)_2) {
    _2= (((int)_2 < (int)_3) ? v_true : v_false);
  } else _2= _send(s__3c, _2, _3);
  if (!_2) goto _l48;
 {
  _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[4];  /* qlo */
  _2= l_30;
  {
    int _l= (int)_1 >> 1;
    int _r= (int)_2 >> 1;
    int _s= (_l - _r);
    if ((1 & (int)_1) && ((_s ^ (_s << 1)) >= 0))  _1= (oop)(_s << 1 | 1);  else _1= _send(s__2d, _1, _2);
  }
  ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[4]= _1;  /* qlo */
  _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[2];  /* j */
  _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[11];  /* dl */
  {
    int _l= (int)_1 >> 1;
    int _r= (int)_2 >> 1;
    int _s= (_l - _r);
    if ((1 & (int)_1 & (int)_2) && ((_s ^ (_s << 1)) >= 0))  _1= (oop)(_s << 1 | 1);  else _1= _send(s__2d, _1, _2);
  }
  ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[12]= _1;  /* l */
  _1= l_29;
  ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[13]= _1;  /* a */
  _1= l_30;
  _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[14];  /* div */
  _line(260);
  _2=_send(s_digitLength, _2);
  /* Scope('i'->ArgumentVariableNode) */
  /* Scope('k'->ArgumentVariableNode) */
  /* Object */
  /* 3 */
  /* 2 */
  _3= _send(s_function_5f_arity_5f_outer_state_nlr_5f_, v_BlockClosure, (oop)b_43, 1, v__self, 0, 0);
  _line(260);
  _1=_send(s_to_do_, _1, _2, _3);
 }
 _l48:;
  _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[15];  /* quo */
  _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[15];  /* quo */
  _line(264);
  _2=_send(s_digitLength, _2);
  _3= l_30;
  {
    int _l= (int)_2 >> 1;
    int _r= (int)_3 >> 1;
    int _s= _l + _r;
    if ((1 & (int)_2) && ((_s ^ (_s << 1)) >= 0))  _2= (oop)(_s << 1 | 1);  else _2= _send(s__2b, _2, _3);
  }
  _3= v_k;
  {
    int _l= (int)_2 >> 1;
    int _r= (int)_3 >> 1;
    int _s= (_l - _r);
    if ((1 & (int)_2 & (int)_3) && ((_s ^ (_s << 1)) >= 0))  _2= (oop)(_s << 1 | 1);  else _2= _send(s__2d, _2, _3);
  }
  _3= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[5];  /* qhi */
  _4= l_34;
  { int _l= (int)_3 >> 1,  _r= (int)_4 >> 1,  _s= ((_r < 0) ? (_l >> -_r) : (_l << _r));
    if ((1 & (int)_3) && (   (    (_r >= 0) && (_r <= 31)  && (_l == (_s >> _r)) && ((_s ^ (_s << 1)) >= 0) ) || ((_r < 0) && (_r >= -31)) )) _3= (oop)(_s << 1 | 1); else _3= _send(s_bitShift_, _3, _4);
  }
  _4= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[4];  /* qlo */
  {
    int _l= (int)_3 >> 1;
    int _r= (int)_4 >> 1;
    int _s= _l + _r;
    if ((1 & (int)_3 & (int)_4) && ((_s ^ (_s << 1)) >= 0))  _3= (oop)(_s << 1 | 1);  else _3= _send(s__2b, _3, _4);
  }
  _line(264);
  _1=_send(s_digitAt_put_, _1, _2, _3);
  _leave();
  return _1;
  _leave();
 }
static oop Integer__digitDiv_neg_(oop v__closure, oop v_stateful_self, oop v_self, oop v_arg, oop v_ng)
 {
  _enter("digitDiv:neg:", "Integer", "/home/saintiss/source/svn/stIdst_278/object/st80/LargeInteger.st");
  oop _state1= _send(s_new_5f_, v__vector, 16);
  oop v_ql= 0;
  oop v_d= 0;
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  oop _4= 0;
  (void)v_ql;
  (void)v_d;
  _line(184);
  /* ifTrue: */
  _1= 0;
  _2= v_arg;
  _3= l_29;
  if (1 & (int)_2) {
    _2= (((int)_2 == (int)_3) ? v_true : v_false);
  } else _2= _send(s__3d, _2, _3);
  if (!_2) goto _l49;
 {
  _1= v_self;
  _line(187);
  _1=_send(s_errorZeroDivide, _1);
  _leave();
  return _1;
 }
 _l49:;
  _1= v_self;
  _line(188);
  _1=_send(s_digitLength, _1);
  _2= v_arg;
  _line(188);
  _2=_send(s_digitLength, _2);
  {
    int _l= (int)_1 >> 1;
    int _r= (int)_2 >> 1;
    int _s= (_l - _r);
    if ((1 & (int)_1 & (int)_2) && ((_s ^ (_s << 1)) >= 0))  _1= (oop)(_s << 1 | 1);  else _1= _send(s__2d, _1, _2);
  }
  _2= l_30;
  {
    int _l= (int)_1 >> 1;
    int _r= (int)_2 >> 1;
    int _s= _l + _r;
    if ((1 & (int)_1) && ((_s ^ (_s << 1)) >= 0))  _1= (oop)(_s << 1 | 1);  else _1= _send(s__2b, _1, _2);
  }
  ((oop *)_state1)[12]= _1;  /* l */
  /* ifTrue: */
  _1= 0;
  _2= ((oop *)_state1)[12];  /* l */
  _3= l_29;
  if (1 & (int)_2) {
    _2= (((int)_2 <= (int)_3) ? v_true : v_false);
  } else _2= _send(s__3c_3d, _2, _3);
  if (!_2) goto _l50;
 {
  _1= v_Array;
  _2= l_29;
  _3= v_self;
  _line(189);
  _1=_send(s_with_with_, _1, _2, _3);
  _leave();
  return _1;
 }
 _l50:;
  _1= l_31;
  _2= v_arg;
  _line(190);
  _2=_send(s_lastDigit, _2);
  _line(190);
  _2=_send(s_highBitOfPositiveReceiver, _2);
  {
    int _l= (int)_1 >> 1;
    int _r= (int)_2 >> 1;
    int _s= (_l - _r);
    if ((1 & (int)_2) && ((_s ^ (_s << 1)) >= 0))  _1= (oop)(_s << 1 | 1);  else _1= _send(s__2d, _1, _2);
  }
  v_d= _1;
  _1= v_arg;
  _2= v_d;
  _line(191);
  _1=_send(s_digitLshift_, _1, _2);
  ((oop *)_state1)[14]= _1;  /* div */
  _1= ((oop *)_state1)[14];  /* div */
  _2= ((oop *)_state1)[14];  /* div */
  _line(192);
  _2=_send(s_digitLength, _2);
  _3= l_30;
  {
    int _l= (int)_2 >> 1;
    int _r= (int)_3 >> 1;
    int _s= _l + _r;
    if ((1 & (int)_2) && ((_s ^ (_s << 1)) >= 0))  _2= (oop)(_s << 1 | 1);  else _2= _send(s__2b, _2, _3);
  }
  _line(192);
  _1=_send(s_growTo_, _1, _2);
  ((oop *)_state1)[14]= _1;  /* div */
  _1= v_self;
  _2= v_d;
  _line(194);
  _1=_send(s_digitLshift_, _1, _2);
  ((oop *)_state1)[1]= _1;  /* rem */
  /* ifTrue: */
  _1= 0;
  _2= ((oop *)_state1)[1];  /* rem */
  _line(195);
  _2=_send(s_digitLength, _2);
  _3= v_self;
  _line(195);
  _3=_send(s_digitLength, _3);
  if (1 & (int)_2 & (int)_3) {
    _2= (((int)_2 == (int)_3) ? v_true : v_false);
  } else _2= _send(s__3d, _2, _3);
  if (!_2) goto _l51;
 {
  _1= ((oop *)_state1)[1];  /* rem */
  _2= v_self;
  _line(195);
  _2=_send(s_digitLength, _2);
  _3= l_30;
  {
    int _l= (int)_2 >> 1;
    int _r= (int)_3 >> 1;
    int _s= _l + _r;
    if ((1 & (int)_2) && ((_s ^ (_s << 1)) >= 0))  _2= (oop)(_s << 1 | 1);  else _2= _send(s__2b, _2, _3);
  }
  _line(195);
  _1=_send(s_growTo_, _1, _2);
  ((oop *)_state1)[1]= _1;  /* rem */
 }
 _l51:;
  _1= v_Integer;
  _2= ((oop *)_state1)[12];  /* l */
  _3= v_ng;
  _line(197);
  _1=_send(s_new_neg_, _1, _2, _3);
  ((oop *)_state1)[15]= _1;  /* quo */
  _1= ((oop *)_state1)[14];  /* div */
  _line(198);
  _1=_send(s_digitLength, _1);
  _2= l_30;
  {
    int _l= (int)_1 >> 1;
    int _r= (int)_2 >> 1;
    int _s= (_l - _r);
    if ((1 & (int)_1) && ((_s ^ (_s << 1)) >= 0))  _1= (oop)(_s << 1 | 1);  else _1= _send(s__2d, _1, _2);
  }
  ((oop *)_state1)[11]= _1;  /* dl */
  _1= ((oop *)_state1)[12];  /* l */
  v_ql= _1;
  _1= ((oop *)_state1)[14];  /* div */
  _2= ((oop *)_state1)[11];  /* dl */
  _line(201);
  _1=_send(s_digitAt_, _1, _2);
  ((oop *)_state1)[3]= _1;  /* dh */
  /* ifTrue:ifFalse: */
  _1= ((oop *)_state1)[11];  /* dl */
  _2= l_30;
  if (1 & (int)_1) {
    _1= (((int)_1 == (int)_2) ? v_true : v_false);
  } else _1= _send(s__3d, _1, _2);
  if (!_1) goto _l52;
 {
  _1= l_29;
 }
  goto _l53;
 _l52:;
 {
  _1= ((oop *)_state1)[14];  /* div */
  _2= ((oop *)_state1)[11];  /* dl */
  _3= l_30;
  {
    int _l= (int)_2 >> 1;
    int _r= (int)_3 >> 1;
    int _s= (_l - _r);
    if ((1 & (int)_2) && ((_s ^ (_s << 1)) >= 0))  _2= (oop)(_s << 1 | 1);  else _2= _send(s__2d, _2, _3);
  }
  _line(202);
  _1=_send(s_digitAt_, _1, _2);
 }
 _l53:;
  ((oop *)_state1)[7]= _1;  /* dnh */
  _1= l_30;
  _2= v_ql;
  /* Scope('k'->ArgumentVariableNode) */
  /* Scope('r3'->TemporaryVariableNode 'dl'->TemporaryVariableNode 'hi'->TemporaryVariableNode 'ql'->TemporaryVariableNode 'stateful_self'->ArgumentVariableNode 'qlo'->TemporaryVariableNode 'j'->TemporaryVariableNode 'self'->ArgumentVariableNode 'div'->TemporaryVariableNode 'quo'->TemporaryVariableNode 'dnh'->TemporaryVariableNode 't'->TemporaryVariableNode 'dh'->TemporaryVariableNode 'arg'->ArgumentVariableNode 'l'->TemporaryVariableNode 'ng'->ArgumentVariableNode 'a'->TemporaryVariableNode 'qhi'->TemporaryVariableNode 'rem'->TemporaryVariableNode 'lo'->TemporaryVariableNode 'd'->TemporaryVariableNode) */
  /* nil */
  /* 2 */
  /* 1 */
  _3= _send(s_function_5f_arity_5f_outer_state_nlr_5f_, v_BlockClosure, (oop)b_32, 1, 0, ((oop *)_state1), 0);
  _line(203);
  _1=_send(s_to_do_, _1, _2, _3);
  _1= ((oop *)_state1)[1];  /* rem */
  _2= v_d;
  _3= l_29;
  _4= ((oop *)_state1)[11];  /* dl */
  _line(265);
  _1=_send(s_digitRshift_bytes_lookfirst_, _1, _2, _3, _4);
  ((oop *)_state1)[1]= _1;  /* rem */
  _1= v_Array;
  _2= ((oop *)_state1)[15];  /* quo */
  _3= ((oop *)_state1)[1];  /* rem */
  _line(266);
  _1=_send(s_with_with_, _1, _2, _3);
  _leave();
  return _1;
  _leave();
 }
static oop Integer__bitAnd_(oop v__closure, oop v_stateful_self, oop v_self, oop v_n)
 {
  _enter("bitAnd:", "Integer", "/home/saintiss/source/svn/stIdst_278/object/st80/LargeInteger.st");
  oop v_norm= 0;
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  oop _4= 0;
  oop _5= 0;
  (void)v_norm;
  _line(269);
  _1= v_n;
  _line(272);
  _1=_send(s_normalize, _1);
  v_norm= _1;
  _1= v_self;
  _2= v_norm;
  _3= l_44;
  _4= v_self;
  _line(276);
  _4=_send(s_digitLength, _4);
  _5= v_norm;
  _line(276);
  _5=_send(s_digitLength, _5);
  _line(276);
  _4=_send(s_max_, _4, _5);
  _line(274);
  _1=_send(s_digitLogic_op_length_, _1, _2, _3, _4);
  _leave();
  return _1;
  _leave();
 }
static oop Integer__bitOr_(oop v__closure, oop v_stateful_self, oop v_self, oop v_n)
 {
  _enter("bitOr:", "Integer", "/home/saintiss/source/svn/stIdst_278/object/st80/LargeInteger.st");
  oop v_norm= 0;
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  oop _4= 0;
  oop _5= 0;
  (void)v_norm;
  _line(279);
  _1= v_n;
  _line(282);
  _1=_send(s_normalize, _1);
  v_norm= _1;
  _1= v_self;
  _2= v_norm;
  _3= l_45;
  _4= v_self;
  _line(286);
  _4=_send(s_digitLength, _4);
  _5= v_norm;
  _line(286);
  _5=_send(s_digitLength, _5);
  _line(286);
  _4=_send(s_max_, _4, _5);
  _line(284);
  _1=_send(s_digitLogic_op_length_, _1, _2, _3, _4);
  _leave();
  return _1;
  _leave();
 }
static oop Integer__bitXor_(oop v__closure, oop v_stateful_self, oop v_self, oop v_n)
 {
  _enter("bitXor:", "Integer", "/home/saintiss/source/svn/stIdst_278/object/st80/LargeInteger.st");
  oop v_norm= 0;
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  oop _4= 0;
  oop _5= 0;
  (void)v_norm;
  _line(289);
  _1= v_n;
  _line(292);
  _1=_send(s_normalize, _1);
  v_norm= _1;
  _1= v_self;
  _2= v_norm;
  _3= l_46;
  _4= v_self;
  _line(296);
  _4=_send(s_digitLength, _4);
  _5= v_norm;
  _line(296);
  _5=_send(s_digitLength, _5);
  _line(296);
  _4=_send(s_max_, _4, _5);
  _line(294);
  _1=_send(s_digitLogic_op_length_, _1, _2, _3, _4);
  _leave();
  return _1;
  _leave();
 }
static oop Integer__bitClear_(oop v__closure, oop v_stateful_self, oop v_self, oop v_n)
 {
  _enter("bitClear:", "Integer", "/home/saintiss/source/svn/stIdst_278/object/st80/LargeInteger.st");
  oop _1= 0;
  oop _2= 0;
  _line(299);
  _1= v_self;
  _2= v_n;
  if ((1 & (int)_1 & (int)_2) && (_1 > 0) && (_2 > 0)) {
    _1= (oop)((int)_1 | (int)_2);
  } else _1= _send(s_bitOr_, _1, _2);
  _2= v_n;
  {
    int _l= (int)_1 >> 1;
    int _r= (int)_2 >> 1;
    int _s= (_l - _r);
    if ((1 & (int)_1 & (int)_2) && ((_s ^ (_s << 1)) >= 0))  _1= (oop)(_s << 1 | 1);  else _1= _send(s__2d, _1, _2);
  }
  _leave();
  return _1;
  _leave();
 }
static oop Integer__bitInvert(oop v__closure, oop v_stateful_self, oop v_self)
 {
  _enter("bitInvert", "Integer", "/home/saintiss/source/svn/stIdst_278/object/st80/LargeInteger.st");
  oop _1= 0;
  oop _2= 0;
  _line(304);
  _1= l_47;
  _2= v_self;
  {
    int _l= (int)_1 >> 1;
    int _r= (int)_2 >> 1;
    int _s= (_l - _r);
    if ((1 & (int)_2) && ((_s ^ (_s << 1)) >= 0))  _1= (oop)(_s << 1 | 1);  else _1= _send(s__2d, _1, _2);
  }
  _leave();
  return _1;
  _leave();
 }
static oop b_51(oop v__closure, oop v__self, oop v_i)
 {
  _enter("[]", "?", "/home/saintiss/source/svn/stIdst_278/object/st80/LargeInteger.st");
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  oop _4= 0;
  _line(316);
  _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1];  /* self */
  _2= v_i;
  _line(317);
  _1=_send(s_digitAt_, _1, _2);
  ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[3]= _1;  /* b1 */
  /* ifTrue: */
  _1= 0;
  _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[4];  /* neg1 */
  if (!_2) goto _l54;
 {
  /* ifTrue:ifFalse: */
  _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[5];  /* z1 */
  if (!_1) goto _l55;
 {
  /* ifTrue:ifFalse: */
  _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[3];  /* b1 */
  _2= l_49;
  if (1 & (int)_1) {
    _1= (((int)_1 == (int)_2) ? v_true : v_false);
  } else _1= _send(s__3d, _1, _2);
  if (!_1) goto _l57;
 {
  _1= l_49;
 }
  goto _l58;
 _l57:;
 {
  _1= v_false;
  ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[5]= _1;  /* z1 */
  _1= l_52;
  _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[3];  /* b1 */
  {
    int _l= (int)_1 >> 1;
    int _r= (int)_2 >> 1;
    int _s= (_l - _r);
    if ((1 & (int)_2) && ((_s ^ (_s << 1)) >= 0))  _1= (oop)(_s << 1 | 1);  else _1= _send(s__2d, _1, _2);
  }
 }
 _l58:;
 }
  goto _l56;
 _l55:;
 {
  _1= l_53;
  _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[3];  /* b1 */
  {
    int _l= (int)_1 >> 1;
    int _r= (int)_2 >> 1;
    int _s= (_l - _r);
    if ((1 & (int)_2) && ((_s ^ (_s << 1)) >= 0))  _1= (oop)(_s << 1 | 1);  else _1= _send(s__2d, _1, _2);
  }
 }
 _l56:;
  ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[3]= _1;  /* b1 */
 }
 _l54:;
  _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[6];  /* arg */
  _2= v_i;
  _line(325);
  _1=_send(s_digitAt_, _1, _2);
  ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[7]= _1;  /* b2 */
  /* ifTrue: */
  _1= 0;
  _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[8];  /* neg2 */
  if (!_2) goto _l59;
 {
  /* ifTrue:ifFalse: */
  _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[9];  /* z2 */
  if (!_1) goto _l60;
 {
  /* ifTrue:ifFalse: */
  _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[7];  /* b2 */
  _2= l_49;
  if (1 & (int)_1) {
    _1= (((int)_1 == (int)_2) ? v_true : v_false);
  } else _1= _send(s__3d, _1, _2);
  if (!_1) goto _l62;
 {
  _1= l_49;
 }
  goto _l63;
 _l62:;
 {
  _1= v_false;
  ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[9]= _1;  /* z2 */
  _1= l_52;
  _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[7];  /* b2 */
  {
    int _l= (int)_1 >> 1;
    int _r= (int)_2 >> 1;
    int _s= (_l - _r);
    if ((1 & (int)_2) && ((_s ^ (_s << 1)) >= 0))  _1= (oop)(_s << 1 | 1);  else _1= _send(s__2d, _1, _2);
  }
 }
 _l63:;
 }
  goto _l61;
 _l60:;
 {
  _1= l_53;
  _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[7];  /* b2 */
  {
    int _l= (int)_1 >> 1;
    int _r= (int)_2 >> 1;
    int _s= (_l - _r);
    if ((1 & (int)_2) && ((_s ^ (_s << 1)) >= 0))  _1= (oop)(_s << 1 | 1);  else _1= _send(s__2d, _1, _2);
  }
 }
 _l61:;
  ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[7]= _1;  /* b2 */
 }
 _l59:;
  _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[3];  /* b1 */
  _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[10];  /* op */
  _3= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[7];  /* b2 */
  _line(333);
  _1=_send(s_perform_with_, _1, _2, _3);
  ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[11]= _1;  /* b */
  _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[12];  /* result */
  _2= v_i;
  /* ifTrue:ifFalse: */
  _3= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[13];  /* rneg */
  if (!_3) goto _l64;
 {
  /* ifTrue:ifFalse: */
  _3= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[14];  /* rz */
  if (!_3) goto _l66;
 {
  /* ifTrue:ifFalse: */
  _3= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[11];  /* b */
  _4= l_49;
  if (1 & (int)_3) {
    _3= (((int)_3 == (int)_4) ? v_true : v_false);
  } else _3= _send(s__3d, _3, _4);
  if (!_3) goto _l68;
 {
  _3= l_49;
 }
  goto _l69;
 _l68:;
 {
  _3= v_false;
  ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[14]= _3;  /* rz */
  _3= l_52;
  _4= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[11];  /* b */
  {
    int _l= (int)_3 >> 1;
    int _r= (int)_4 >> 1;
    int _s= (_l - _r);
    if ((1 & (int)_4) && ((_s ^ (_s << 1)) >= 0))  _3= (oop)(_s << 1 | 1);  else _3= _send(s__2d, _3, _4);
  }
 }
 _l69:;
 }
  goto _l67;
 _l66:;
 {
  _3= l_53;
  _4= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[11];  /* b */
  {
    int _l= (int)_3 >> 1;
    int _r= (int)_4 >> 1;
    int _s= (_l - _r);
    if ((1 & (int)_4) && ((_s ^ (_s << 1)) >= 0))  _3= (oop)(_s << 1 | 1);  else _3= _send(s__2d, _3, _4);
  }
 }
 _l67:;
 }
  goto _l65;
 _l64:;
 {
  _3= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[11];  /* b */
 }
 _l65:;
  _line(335);
  _1=_send(s_digitAt_put_, _1, _2, _3);
  _leave();
  return _1;
  _leave();
 }
static oop Integer__digitLogic_op_length_(oop v__closure, oop v_stateful_self, oop v_self, oop v_arg, oop v_op, oop v_len)
 {
  _enter("digitLogic:op:length:", "Integer", "/home/saintiss/source/svn/stIdst_278/object/st80/LargeInteger.st");
  oop _state1= _send(s_new_5f_, v__vector, 15);
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  ((oop *)_state1)[2]= v_stateful_self;
  ((oop *)_state1)[1]= v_self;
  ((oop *)_state1)[6]= v_arg;
  ((oop *)_state1)[10]= v_op;
  _line(306);
  _1= ((oop *)_state1)[1];  /* self */
  _line(309);
  _1=_send(s_negative, _1);
  ((oop *)_state1)[4]= _1;  /* neg1 */
  _1= ((oop *)_state1)[6];  /* arg */
  _line(310);
  _1=_send(s_negative, _1);
  ((oop *)_state1)[8]= _1;  /* neg2 */
  /* ifTrue:ifFalse: */
  _1= ((oop *)_state1)[4];  /* neg1 */
  if (!_1) goto _l70;
 {
  _1= l_48;
 }
  goto _l71;
 _l70:;
 {
  _1= l_49;
 }
 _l71:;
  _2= ((oop *)_state1)[10];  /* op */
  /* ifTrue:ifFalse: */
  _3= ((oop *)_state1)[8];  /* neg2 */
  if (!_3) goto _l72;
 {
  _3= l_48;
 }
  goto _l73;
 _l72:;
 {
  _3= l_49;
 }
 _l73:;
  _line(312);
  _1=_send(s_perform_with_, _1, _2, _3);
  _2= l_49;
  if (1 & (int)_1) {
    _1= (((int)_1 < (int)_2) ? v_true : v_false);
  } else _1= _send(s__3c, _1, _2);
  ((oop *)_state1)[13]= _1;  /* rneg */
  _1= v_Integer;
  _2= v_len;
  _3= ((oop *)_state1)[13];  /* rneg */
  _line(314);
  _1=_send(s_new_neg_, _1, _2, _3);
  ((oop *)_state1)[12]= _1;  /* result */
  _1= v_true;
  ((oop *)_state1)[9]= _1;  /* z2 */
  ((oop *)_state1)[5]= _1;  /* z1 */
  ((oop *)_state1)[14]= _1;  /* rz */
  _1= l_50;
  _2= ((oop *)_state1)[12];  /* result */
  _line(316);
  _2=_send(s_digitLength, _2);
  /* Scope('i'->ArgumentVariableNode) */
  /* Scope('stateful_self'->ArgumentVariableNode 'b1'->TemporaryVariableNode 'self'->ArgumentVariableNode 'len'->ArgumentVariableNode 'b2'->TemporaryVariableNode 'result'->TemporaryVariableNode 'rneg'->TemporaryVariableNode 'b'->TemporaryVariableNode 'arg'->ArgumentVariableNode 'op'->ArgumentVariableNode 'rz'->TemporaryVariableNode 'neg2'->TemporaryVariableNode 'z1'->TemporaryVariableNode 'z2'->TemporaryVariableNode 'neg1'->TemporaryVariableNode) */
  /* nil */
  /* 2 */
  /* 1 */
  _3= _send(s_function_5f_arity_5f_outer_state_nlr_5f_, v_BlockClosure, (oop)b_51, 1, 0, ((oop *)_state1), 0);
  _line(316);
  _1=_send(s_to_do_, _1, _2, _3);
  _1= ((oop *)_state1)[12];  /* result */
  _line(343);
  _1=_send(s_normalize, _1);
  _leave();
  return _1;
  _leave();
 }
static oop Integer___3c_3c(oop v__closure, oop v_stateful_self, oop v_self, oop v_displacement)
 {
  _enter("<<", "Integer", "/home/saintiss/source/svn/stIdst_278/object/st80/LargeInteger.st");
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  _line(346);
  /* ifTrue: */
  _1= 0;
  _2= v_displacement;
  _3= l_54;
  if (1 & (int)_2) {
    _2= (((int)_2 < (int)_3) ? v_true : v_false);
  } else _2= _send(s__3c, _2, _3);
  if (!_2) goto _l74;
 {
  _1= v_self;
  _2= l_55;
  _line(348);
  _1=_send(s_error_, _1, _2);
 }
 _l74:;
  _1= v_self;
  _2= v_displacement;
  { int _l= (int)_1 >> 1,  _r= (int)_2 >> 1,  _s= ((_r < 0) ? (_l >> -_r) : (_l << _r));
    if ((1 & (int)_1 & (int)_2) && (   (    (_r >= 0) && (_r <= 31)  && (_l == (_s >> _r)) && ((_s ^ (_s << 1)) >= 0) ) || ((_r < 0) && (_r >= -31)) )) _1= (oop)(_s << 1 | 1); else _1= _send(s_bitShift_, _1, _2);
  }
  _leave();
  return _1;
  _leave();
 }
static oop Integer___3e_3e(oop v__closure, oop v_stateful_self, oop v_self, oop v_displacement)
 {
  _enter(">>", "Integer", "/home/saintiss/source/svn/stIdst_278/object/st80/LargeInteger.st");
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  _line(352);
  /* ifTrue: */
  _1= 0;
  _2= v_displacement;
  _3= l_56;
  if (1 & (int)_2) {
    _2= (((int)_2 < (int)_3) ? v_true : v_false);
  } else _2= _send(s__3c, _2, _3);
  if (!_2) goto _l75;
 {
  _1= v_self;
  _2= l_57;
  _line(354);
  _1=_send(s_error_, _1, _2);
 }
 _l75:;
  _1= v_self;
  _2= v_displacement;
  _line(355);
  _2=_send(s_negated, _2);
  { int _l= (int)_1 >> 1,  _r= (int)_2 >> 1,  _s= ((_r < 0) ? (_l >> -_r) : (_l << _r));
    if ((1 & (int)_1 & (int)_2) && (   (    (_r >= 0) && (_r <= 31)  && (_l == (_s >> _r)) && ((_s ^ (_s << 1)) >= 0) ) || ((_r < 0) && (_r >= -31)) )) _1= (oop)(_s << 1 | 1); else _1= _send(s_bitShift_, _1, _2);
  }
  _leave();
  return _1;
  _leave();
 }
static oop Integer__bitShift_(oop v__closure, oop v_stateful_self, oop v_self, oop v_displacement)
 {
  _enter("bitShift:", "Integer", "/home/saintiss/source/svn/stIdst_278/object/st80/LargeInteger.st");
  oop v_magnitudeShift= 0;
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  (void)v_magnitudeShift;
  _line(358);
  _1= v_self;
  _2= v_displacement;
  _line(361);
  _1=_send(s_bitShiftMagnitude_, _1, _2);
  v_magnitudeShift= _1;
  /* ifTrue:ifFalse: */
  /* and: */
  /* and: */
  _1= v_self;
  _line(362);
  _1=_send(s_negative, _1);
  if (!_1) goto _l79;
 {
  _1= v_displacement;
  _line(362);
  _1=_send(s_negative, _1);
 }
 _l79:;
  if (!_1) goto _l78;
 {
  _1= v_self;
  _2= l_58;
  _3= v_displacement;
  _line(362);
  _3=_send(s_negated, _3);
  _line(362);
  _1=_send(s_anyBitOfMagnitudeFrom_to_, _1, _2, _3);
 }
 _l78:;
  if (!_1) goto _l76;
 {
  _1= v_magnitudeShift;
  _2= l_58;
  {
    int _l= (int)_1 >> 1;
    int _r= (int)_2 >> 1;
    int _s= (_l - _r);
    if ((1 & (int)_1) && ((_s ^ (_s << 1)) >= 0))  _1= (oop)(_s << 1 | 1);  else _1= _send(s__2d, _1, _2);
  }
 }
  goto _l77;
 _l76:;
 {
  _1= v_magnitudeShift;
 }
 _l77:;
  _leave();
  return _1;
  _leave();
 }
static oop Integer__bitShiftMagnitude_(oop v__closure, oop v_stateful_self, oop v_self, oop v_displacement)
 {
  _enter("bitShiftMagnitude:", "Integer", "/home/saintiss/source/svn/stIdst_278/object/st80/LargeInteger.st");
  oop v_rShift= 0;
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  oop _4= 0;
  (void)v_rShift;
  _line(367);
  /* ifTrue: */
  _1= 0;
  _2= v_displacement;
  _3= l_59;
  if (1 & (int)_2) {
    _2= (((int)_2 >= (int)_3) ? v_true : v_false);
  } else _2= _send(s__3e_3d, _2, _3);
  if (!_2) goto _l80;
 {
  _1= v_self;
  _2= v_displacement;
  _line(370);
  _1=_send(s_digitLshift_, _1, _2);
  _leave();
  return _1;
 }
 _l80:;
  _1= l_59;
  _2= v_displacement;
  {
    int _l= (int)_1 >> 1;
    int _r= (int)_2 >> 1;
    int _s= (_l - _r);
    if ((1 & (int)_2) && ((_s ^ (_s << 1)) >= 0))  _1= (oop)(_s << 1 | 1);  else _1= _send(s__2d, _1, _2);
  }
  v_rShift= _1;
  _1= v_self;
  _2= v_rShift;
  _3= l_60;
  if ((1 & (int)_2) && (_2 > 0) && (_3 > 0)) {
    _2= (oop)((int)_2 & (int)_3);
  } else _2= _send(s_bitAnd_, _2, _3);
  _3= v_rShift;
  _4= l_61;
  { int _l= (int)_3 >> 1,  _r= (int)_4 >> 1,  _s= ((_r < 0) ? (_l >> -_r) : (_l << _r));
    if ((1 & (int)_3) && (   (    (_r >= 0) && (_r <= 31)  && (_l == (_s >> _r)) && ((_s ^ (_s << 1)) >= 0) ) || ((_r < 0) && (_r >= -31)) )) _3= (oop)(_s << 1 | 1); else _3= _send(s_bitShift_, _3, _4);
  }
  _4= v_self;
  _line(375);
  _4=_send(s_digitLength, _4);
  _line(373);
  _1=_send(s_digitRshift_bytes_lookfirst_, _1, _2, _3, _4);
  _line(375);
  _1=_send(s_normalize, _1);
  _leave();
  return _1;
  _leave();
 }
static oop b_67(oop v__closure, oop v__self, oop v_i)
 {
  _enter("[]", "?", "/home/saintiss/source/svn/stIdst_278/object/st80/LargeInteger.st");
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  _line(391);
  _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1];  /* result */
  _2= v_i;
  _3= l_62;
  _line(391);
  _1=_send(s_digitAt_put_, _1, _2, _3);
  _leave();
  return _1;
  _leave();
 }
static oop b_68(oop v__closure, oop v__self, oop v_i)
 {
  _enter("[]", "?", "/home/saintiss/source/svn/stIdst_278/object/st80/LargeInteger.st");
  oop v_digit= 0;
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  oop _4= 0;
  (void)v_digit;
  _line(392);
  _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[2];  /* self */
  _2= v_i;
  _line(394);
  _1=_send(s_digitAt_, _1, _2);
  v_digit= _1;
  _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1];  /* result */
  _2= v_i;
  _3= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[4];  /* byteShift */
  {
    int _l= (int)_2 >> 1;
    int _r= (int)_3 >> 1;
    int _s= _l + _r;
    if ((1 & (int)_2 & (int)_3) && ((_s ^ (_s << 1)) >= 0))  _2= (oop)(_s << 1 | 1);  else _2= _send(s__2b, _2, _3);
  }
  _3= v_digit;
  _4= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[5];  /* mask */
  if ((1 & (int)_3 & (int)_4) && (_3 > 0) && (_4 > 0)) {
    _3= (oop)((int)_3 & (int)_4);
  } else _3= _send(s_bitAnd_, _3, _4);
  _4= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[6];  /* bitShift */
  { int _l= (int)_3 >> 1,  _r= (int)_4 >> 1,  _s= ((_r < 0) ? (_l >> -_r) : (_l << _r));
    if ((1 & (int)_3 & (int)_4) && (   (    (_r >= 0) && (_r <= 31)  && (_l == (_s >> _r)) && ((_s ^ (_s << 1)) >= 0) ) || ((_r < 0) && (_r >= -31)) )) _3= (oop)(_s << 1 | 1); else _3= _send(s_bitShift_, _3, _4);
  }
  _4= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[7];  /* carry */
  if ((1 & (int)_3 & (int)_4) && (_3 > 0) && (_4 > 0)) {
    _3= (oop)((int)_3 | (int)_4);
  } else _3= _send(s_bitOr_, _3, _4);
  _line(395);
  _1=_send(s_digitAt_put_, _1, _2, _3);
  _1= v_digit;
  _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[8];  /* rShift */
  { int _l= (int)_1 >> 1,  _r= (int)_2 >> 1,  _s= ((_r < 0) ? (_l >> -_r) : (_l << _r));
    if ((1 & (int)_1 & (int)_2) && (   (    (_r >= 0) && (_r <= 31)  && (_l == (_s >> _r)) && ((_s ^ (_s << 1)) >= 0) ) || ((_r < 0) && (_r >= -31)) )) _1= (oop)(_s << 1 | 1); else _1= _send(s_bitShift_, _1, _2);
  }
  ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[7]= _1;  /* carry */
  _leave();
  return _1;
  _leave();
 }
static oop Integer__digitLshift_(oop v__closure, oop v_stateful_self, oop v_self, oop v_shiftCount)
 {
  _enter("digitLshift:", "Integer", "/home/saintiss/source/svn/stIdst_278/object/st80/LargeInteger.st");
  oop _state1= _send(s_new_5f_, v__vector, 9);
  oop v_len= 0;
  oop v_highBit= 0;
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  oop _4= 0;
  oop _5= 0;
  (void)v_len;
  (void)v_highBit;
  ((oop *)_state1)[3]= v_stateful_self;
  ((oop *)_state1)[2]= v_self;
  _line(378);
  /* ifTrue: */
  _1= 0;
  _2= ((oop *)_state1)[2];  /* self */
  _line(381);
  _2=_send(s_highBitOfMagnitude, _2);
  v_highBit= _2;
  _3= l_62;
  if (1 & (int)_2) {
    _2= (((int)_2 == (int)_3) ? v_true : v_false);
  } else _2= _send(s__3d, _2, _3);
  if (!_2) goto _l81;
 {
  _1= l_62;
  _leave();
  return _1;
 }
 _l81:;
  _1= v_highBit;
  _2= v_shiftCount;
  {
    int _l= (int)_1 >> 1;
    int _r= (int)_2 >> 1;
    int _s= _l + _r;
    if ((1 & (int)_1 & (int)_2) && ((_s ^ (_s << 1)) >= 0))  _1= (oop)(_s << 1 | 1);  else _1= _send(s__2b, _1, _2);
  }
  _2= l_63;
  {
    int _l= (int)_1 >> 1;
    int _r= (int)_2 >> 1;
    int _s= _l + _r;
    if ((1 & (int)_1) && ((_s ^ (_s << 1)) >= 0))  _1= (oop)(_s << 1 | 1);  else _1= _send(s__2b, _1, _2);
  }
  _2= l_64;
  _1= _send(s__2f_2f, _1, _2);
  v_len= _1;
  _1= v_Integer;
  _2= v_len;
  _3= ((oop *)_state1)[2];  /* self */
  _line(383);
  _3=_send(s_negative, _3);
  _line(383);
  _1=_send(s_new_neg_, _1, _2, _3);
  ((oop *)_state1)[1]= _1;  /* result */
  _1= v_shiftCount;
  _2= l_64;
  _1= _send(s__2f_2f, _1, _2);
  ((oop *)_state1)[4]= _1;  /* byteShift */
  _1= v_shiftCount;
  _2= l_64;
  _1= _send(s__5c_5c, _1, _2);
  ((oop *)_state1)[6]= _1;  /* bitShift */
  /* ifTrue: */
  _1= 0;
  _2= ((oop *)_state1)[6];  /* bitShift */
  _3= l_62;
  if (1 & (int)_2) {
    _2= (((int)_2 == (int)_3) ? v_true : v_false);
  } else _2= _send(s__3d, _2, _3);
  if (!_2) goto _l82;
 {
  _1= ((oop *)_state1)[1];  /* result */
  _2= ((oop *)_state1)[4];  /* byteShift */
  _3= l_65;
  {
    int _l= (int)_2 >> 1;
    int _r= (int)_3 >> 1;
    int _s= _l + _r;
    if ((1 & (int)_2) && ((_s ^ (_s << 1)) >= 0))  _2= (oop)(_s << 1 | 1);  else _2= _send(s__2b, _2, _3);
  }
  _3= v_len;
  _4= ((oop *)_state1)[2];  /* self */
  _5= l_65;
  _line(387);
  _1=_send(s_replaceFrom_to_with_startingAt_, _1, _2, _3, _4, _5);
  _leave();
  return _1;
 }
 _l82:;
  _1= l_62;
  ((oop *)_state1)[7]= _1;  /* carry */
  _1= ((oop *)_state1)[6];  /* bitShift */
  _2= l_64;
  {
    int _l= (int)_1 >> 1;
    int _r= (int)_2 >> 1;
    int _s= (_l - _r);
    if ((1 & (int)_1) && ((_s ^ (_s << 1)) >= 0))  _1= (oop)(_s << 1 | 1);  else _1= _send(s__2d, _1, _2);
  }
  ((oop *)_state1)[8]= _1;  /* rShift */
  _1= l_66;
  _2= l_62;
  _3= ((oop *)_state1)[6];  /* bitShift */
  {
    int _l= (int)_2 >> 1;
    int _r= (int)_3 >> 1;
    int _s= (_l - _r);
    if ((1 & (int)_3) && ((_s ^ (_s << 1)) >= 0))  _2= (oop)(_s << 1 | 1);  else _2= _send(s__2d, _2, _3);
  }
  { int _l= (int)_1 >> 1,  _r= (int)_2 >> 1,  _s= ((_r < 0) ? (_l >> -_r) : (_l << _r));
    if ((1 & (int)_2) && (   (    (_r >= 0) && (_r <= 31)  && (_l == (_s >> _r)) && ((_s ^ (_s << 1)) >= 0) ) || ((_r < 0) && (_r >= -31)) )) _1= (oop)(_s << 1 | 1); else _1= _send(s_bitShift_, _1, _2);
  }
  ((oop *)_state1)[5]= _1;  /* mask */
  _1= l_65;
  _2= ((oop *)_state1)[4];  /* byteShift */
  /* Scope('i'->ArgumentVariableNode) */
  /* Scope('result'->TemporaryVariableNode 'carry'->TemporaryVariableNode 'bitShift'->TemporaryVariableNode 'shiftCount'->ArgumentVariableNode 'stateful_self'->ArgumentVariableNode 'highBit'->TemporaryVariableNode 'self'->ArgumentVariableNode 'len'->TemporaryVariableNode 'rShift'->TemporaryVariableNode 'mask'->TemporaryVariableNode 'byteShift'->TemporaryVariableNode) */
  /* nil */
  /* 2 */
  /* 1 */
  _3= _send(s_function_5f_arity_5f_outer_state_nlr_5f_, v_BlockClosure, (oop)b_67, 1, 0, ((oop *)_state1), 0);
  _line(391);
  _1=_send(s_to_do_, _1, _2, _3);
  _1= l_65;
  _2= v_len;
  _3= ((oop *)_state1)[4];  /* byteShift */
  {
    int _l= (int)_2 >> 1;
    int _r= (int)_3 >> 1;
    int _s= (_l - _r);
    if ((1 & (int)_2 & (int)_3) && ((_s ^ (_s << 1)) >= 0))  _2= (oop)(_s << 1 | 1);  else _2= _send(s__2d, _2, _3);
  }
  /* Scope('digit'->TemporaryVariableNode 'i'->ArgumentVariableNode) */
  /* Scope('result'->TemporaryVariableNode 'carry'->TemporaryVariableNode 'bitShift'->TemporaryVariableNode 'shiftCount'->ArgumentVariableNode 'stateful_self'->ArgumentVariableNode 'highBit'->TemporaryVariableNode 'self'->ArgumentVariableNode 'len'->TemporaryVariableNode 'rShift'->TemporaryVariableNode 'mask'->TemporaryVariableNode 'byteShift'->TemporaryVariableNode) */
  /* nil */
  /* 2 */
  /* 1 */
  _3= _send(s_function_5f_arity_5f_outer_state_nlr_5f_, v_BlockClosure, (oop)b_68, 1, 0, ((oop *)_state1), 0);
  _line(392);
  _1=_send(s_to_do_, _1, _2, _3);
  _1= ((oop *)_state1)[1];  /* result */
  _leave();
  return _1;
  _leave();
 }
static oop b_73(oop v__closure, oop v__self, oop v_j)
 {
  _enter("[]", "?", "/home/saintiss/source/svn/stIdst_278/object/st80/LargeInteger.st");
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  oop _4= 0;
  _line(419);
  _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1];  /* self */
  _2= v_j;
  _3= l_72;
  {
    int _l= (int)_2 >> 1;
    int _r= (int)_3 >> 1;
    int _s= _l + _r;
    if ((1 & (int)_2) && ((_s ^ (_s << 1)) >= 0))  _2= (oop)(_s << 1 | 1);  else _2= _send(s__2b, _2, _3);
  }
  _line(420);
  _1=_send(s_digitAt_, _1, _2);
  ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[3]= _1;  /* digit */
  _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[4];  /* r */
  _2= v_j;
  _3= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[5];  /* b */
  {
    int _l= (int)_2 >> 1;
    int _r= (int)_3 >> 1;
    int _s= (_l - _r);
    if ((1 & (int)_2 & (int)_3) && ((_s ^ (_s << 1)) >= 0))  _2= (oop)(_s << 1 | 1);  else _2= _send(s__2d, _2, _3);
  }
  _3= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[3];  /* digit */
  _4= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[6];  /* m */
  if ((1 & (int)_3 & (int)_4) && (_3 > 0) && (_4 > 0)) {
    _3= (oop)((int)_3 & (int)_4);
  } else _3= _send(s_bitAnd_, _3, _4);
  _4= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[7];  /* f */
  { int _l= (int)_3 >> 1,  _r= (int)_4 >> 1,  _s= ((_r < 0) ? (_l >> -_r) : (_l << _r));
    if ((1 & (int)_3 & (int)_4) && (   (    (_r >= 0) && (_r <= 31)  && (_l == (_s >> _r)) && ((_s ^ (_s << 1)) >= 0) ) || ((_r < 0) && (_r >= -31)) )) _3= (oop)(_s << 1 | 1); else _3= _send(s_bitShift_, _3, _4);
  }
  _4= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[8];  /* x */
  if ((1 & (int)_3 & (int)_4) && (_3 > 0) && (_4 > 0)) {
    _3= (oop)((int)_3 | (int)_4);
  } else _3= _send(s_bitOr_, _3, _4);
  _line(421);
  _1=_send(s_digitAt_put_, _1, _2, _3);
  _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[3];  /* digit */
  _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[9];  /* n */
  { int _l= (int)_1 >> 1,  _r= (int)_2 >> 1,  _s= ((_r < 0) ? (_l >> -_r) : (_l << _r));
    if ((1 & (int)_1 & (int)_2) && (   (    (_r >= 0) && (_r <= 31)  && (_l == (_s >> _r)) && ((_s ^ (_s << 1)) >= 0) ) || ((_r < 0) && (_r >= -31)) )) _1= (oop)(_s << 1 | 1); else _1= _send(s_bitShift_, _1, _2);
  }
  ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[8]= _1;  /* x */
  _leave();
  return _1;
  _leave();
 }
static oop Integer__digitRshift_bytes_lookfirst_(oop v__closure, oop v_stateful_self, oop v_self, oop v_anInteger, oop v_b, oop v_a)
 {
  _enter("digitRshift:bytes:lookfirst:", "Integer", "/home/saintiss/source/svn/stIdst_278/object/st80/LargeInteger.st");
  oop _state1= _send(s_new_5f_, v__vector, 10);
  oop v_count= 0;
  oop v_i= 0;
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  (void)v_count;
  (void)v_i;
  ((oop *)_state1)[2]= v_stateful_self;
  ((oop *)_state1)[1]= v_self;
  ((oop *)_state1)[5]= v_b;
  _line(400);
  _1= l_69;
  _2= v_anInteger;
  {
    int _l= (int)_1 >> 1;
    int _r= (int)_2 >> 1;
    int _s= (_l - _r);
    if ((1 & (int)_2) && ((_s ^ (_s << 1)) >= 0))  _1= (oop)(_s << 1 | 1);  else _1= _send(s__2d, _1, _2);
  }
  ((oop *)_state1)[9]= _1;  /* n */
  _1= l_69;
  ((oop *)_state1)[8]= _1;  /* x */
  _1= ((oop *)_state1)[9];  /* n */
  _2= l_70;
  {
    int _l= (int)_1 >> 1;
    int _r= (int)_2 >> 1;
    int _s= _l + _r;
    if ((1 & (int)_1) && ((_s ^ (_s << 1)) >= 0))  _1= (oop)(_s << 1 | 1);  else _1= _send(s__2b, _1, _2);
  }
  ((oop *)_state1)[7]= _1;  /* f */
  _1= v_a;
  v_i= _1;
  _1= l_71;
  _2= l_69;
  _3= ((oop *)_state1)[7];  /* f */
  {
    int _l= (int)_2 >> 1;
    int _r= (int)_3 >> 1;
    int _s= (_l - _r);
    if ((1 & (int)_3) && ((_s ^ (_s << 1)) >= 0))  _2= (oop)(_s << 1 | 1);  else _2= _send(s__2d, _2, _3);
  }
  { int _l= (int)_1 >> 1,  _r= (int)_2 >> 1,  _s= ((_r < 0) ? (_l >> -_r) : (_l << _r));
    if ((1 & (int)_2) && (   (    (_r >= 0) && (_r <= 31)  && (_l == (_s >> _r)) && ((_s ^ (_s << 1)) >= 0) ) || ((_r < 0) && (_r >= -31)) )) _1= (oop)(_s << 1 | 1); else _1= _send(s_bitShift_, _1, _2);
  }
  ((oop *)_state1)[6]= _1;  /* m */
  _1= ((oop *)_state1)[1];  /* self */
  _2= v_i;
  _line(409);
  _1=_send(s_digitAt_, _1, _2);
  ((oop *)_state1)[3]= _1;  /* digit */
  /* whileTrue: */
  goto _l84;
 _l83:;
 {
  _1= ((oop *)_state1)[3];  /* digit */
  _2= ((oop *)_state1)[7];  /* f */
  { int _l= (int)_1 >> 1,  _r= (int)_2 >> 1,  _s= ((_r < 0) ? (_l >> -_r) : (_l << _r));
    if ((1 & (int)_1 & (int)_2) && (   (    (_r >= 0) && (_r <= 31)  && (_l == (_s >> _r)) && ((_s ^ (_s << 1)) >= 0) ) || ((_r < 0) && (_r >= -31)) )) _1= (oop)(_s << 1 | 1); else _1= _send(s_bitShift_, _1, _2);
  }
  ((oop *)_state1)[8]= _1;  /* x */
  _1= v_i;
  _2= l_72;
  {
    int _l= (int)_1 >> 1;
    int _r= (int)_2 >> 1;
    int _s= (_l - _r);
    if ((1 & (int)_1) && ((_s ^ (_s << 1)) >= 0))  _1= (oop)(_s << 1 | 1);  else _1= _send(s__2d, _1, _2);
  }
  v_i= _1;
  _1= ((oop *)_state1)[1];  /* self */
  _2= v_i;
  _line(414);
  _1=_send(s_digitAt_, _1, _2);
  ((oop *)_state1)[3]= _1;  /* digit */
 }
 _l84:;
 {
  /* and: */
  _1= ((oop *)_state1)[3];  /* digit */
  _2= ((oop *)_state1)[9];  /* n */
  { int _l= (int)_1 >> 1,  _r= (int)_2 >> 1,  _s= ((_r < 0) ? (_l >> -_r) : (_l << _r));
    if ((1 & (int)_1 & (int)_2) && (   (    (_r >= 0) && (_r <= 31)  && (_l == (_s >> _r)) && ((_s ^ (_s << 1)) >= 0) ) || ((_r < 0) && (_r >= -31)) )) _1= (oop)(_s << 1 | 1); else _1= _send(s_bitShift_, _1, _2);
  }
  _2= ((oop *)_state1)[8];  /* x */
  if ((1 & (int)_1 & (int)_2) && (_1 > 0) && (_2 > 0)) {
    _1= (oop)((int)_1 | (int)_2);
  } else _1= _send(s_bitOr_, _1, _2);
  _2= l_69;
  if (1 & (int)_1) {
    _1= (((int)_1 == (int)_2) ? v_true : v_false);
  } else _1= _send(s__3d, _1, _2);
  if (!_1) goto _l85;
 {
  _1= v_i;
  _2= l_72;
  if (1 & (int)_1) {
    _1= (((int)_1 != (int)_2) ? v_true : v_false);
  } else _1= _send(s__7e_3d, _1, _2);
 }
 _l85:;
 }
  if (_1) goto _l83;
  _1= 0;
  /* ifTrue: */
  _1= 0;
  _2= v_i;
  _3= ((oop *)_state1)[5];  /* b */
  if (1 & (int)_2 & (int)_3) {
    _2= (((int)_2 <= (int)_3) ? v_true : v_false);
  } else _2= _send(s__3c_3d, _2, _3);
  if (!_2) goto _l86;
 {
  _1= v_Integer;
  _2= l_69;
  _3= ((oop *)_state1)[1];  /* self */
  _line(415);
  _3=_send(s_negative, _3);
  _line(415);
  _1=_send(s_new_neg_, _1, _2, _3);
  _leave();
  return _1;
 }
 _l86:;
  _1= v_Integer;
  _2= v_i;
  _3= ((oop *)_state1)[5];  /* b */
  {
    int _l= (int)_2 >> 1;
    int _r= (int)_3 >> 1;
    int _s= (_l - _r);
    if ((1 & (int)_2 & (int)_3) && ((_s ^ (_s << 1)) >= 0))  _2= (oop)(_s << 1 | 1);  else _2= _send(s__2d, _2, _3);
  }
  _3= ((oop *)_state1)[1];  /* self */
  _line(416);
  _3=_send(s_negative, _3);
  _line(416);
  _1=_send(s_new_neg_, _1, _2, _3);
  ((oop *)_state1)[4]= _1;  /* r */
  _1= v_i;
  v_count= _1;
  _1= ((oop *)_state1)[1];  /* self */
  _2= ((oop *)_state1)[5];  /* b */
  _3= l_72;
  {
    int _l= (int)_2 >> 1;
    int _r= (int)_3 >> 1;
    int _s= _l + _r;
    if ((1 & (int)_2) && ((_s ^ (_s << 1)) >= 0))  _2= (oop)(_s << 1 | 1);  else _2= _send(s__2b, _2, _3);
  }
  _line(418);
  _1=_send(s_digitAt_, _1, _2);
  _2= ((oop *)_state1)[9];  /* n */
  { int _l= (int)_1 >> 1,  _r= (int)_2 >> 1,  _s= ((_r < 0) ? (_l >> -_r) : (_l << _r));
    if ((1 & (int)_1 & (int)_2) && (   (    (_r >= 0) && (_r <= 31)  && (_l == (_s >> _r)) && ((_s ^ (_s << 1)) >= 0) ) || ((_r < 0) && (_r >= -31)) )) _1= (oop)(_s << 1 | 1); else _1= _send(s_bitShift_, _1, _2);
  }
  ((oop *)_state1)[8]= _1;  /* x */
  _1= ((oop *)_state1)[5];  /* b */
  _2= l_72;
  {
    int _l= (int)_1 >> 1;
    int _r= (int)_2 >> 1;
    int _s= _l + _r;
    if ((1 & (int)_1) && ((_s ^ (_s << 1)) >= 0))  _1= (oop)(_s << 1 | 1);  else _1= _send(s__2b, _1, _2);
  }
  _2= v_count;
  /* Scope('j'->ArgumentVariableNode) */
  /* Scope('r'->TemporaryVariableNode 'f'->TemporaryVariableNode 'count'->TemporaryVariableNode 'stateful_self'->ArgumentVariableNode 'self'->ArgumentVariableNode 'i'->TemporaryVariableNode 'b'->ArgumentVariableNode 'x'->TemporaryVariableNode 'm'->TemporaryVariableNode 'a'->ArgumentVariableNode 'digit'->TemporaryVariableNode 'anInteger'->ArgumentVariableNode 'n'->TemporaryVariableNode) */
  /* nil */
  /* 2 */
  /* 1 */
  _3= _send(s_function_5f_arity_5f_outer_state_nlr_5f_, v_BlockClosure, (oop)b_73, 1, 0, ((oop *)_state1), 0);
  _line(419);
  _1=_send(s_to_do_, _1, _2, _3);
  _1= ((oop *)_state1)[4];  /* r */
  _leave();
  return _1;
  _leave();
 }
static oop Integer___3c(oop v__closure, oop v_stateful_self, oop v_self, oop v_aNumber)
 {
  _enter("<", "Integer", "/home/saintiss/source/svn/stIdst_278/object/st80/LargeInteger.st");
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  _line(426);
  /* ifTrue: */
  _1= 0;
  _2= v_aNumber;
  _line(428);
  _2=_send(s_isInteger, _2);
  if (!_2) goto _l87;
 {
  /* ifTrue:ifFalse: */
  _1= v_self;
  _line(430);
  _1=_send(s_negative, _1);
  _2= v_aNumber;
  _line(430);
  _2=_send(s_negative, _2);
  _1= (_1 == _2) ? v_true : v_false;
  if (!_1) goto _l88;
 {
  /* ifTrue:ifFalse: */
  _1= v_self;
  _line(431);
  _1=_send(s_negative, _1);
  if (!_1) goto _l90;
 {
  _1= v_self;
  _2= v_aNumber;
  _line(432);
  _1=_send(s_digitCompare_, _1, _2);
  _2= l_74;
  if (1 & (int)_1) {
    _1= (((int)_1 > (int)_2) ? v_true : v_false);
  } else _1= _send(s__3e, _1, _2);
  _leave();
  return _1;
 }
  goto _l91;
 _l90:;
 {
  _1= v_self;
  _2= v_aNumber;
  _line(433);
  _1=_send(s_digitCompare_, _1, _2);
  _2= l_74;
  if (1 & (int)_1) {
    _1= (((int)_1 < (int)_2) ? v_true : v_false);
  } else _1= _send(s__3c, _1, _2);
  _leave();
  return _1;
 }
 _l91:;
 }
  goto _l89;
 _l88:;
 {
  _1= v_self;
  _line(434);
  _1=_send(s_negative, _1);
  _leave();
  return _1;
 }
 _l89:;
 }
 _l87:;
  _1= v_aNumber;
  _2= v_self;
  _3= l_75;
  _line(435);
  _1=_send(s_adaptToInteger_andSend_, _1, _2, _3);
  _leave();
  return _1;
  _leave();
 }
static oop Integer__digitCompare_(oop v__closure, oop v_stateful_self, oop v_self, oop v_anInteger)
 {
  _enter("digitCompare:", "Integer", "/home/saintiss/source/svn/stIdst_278/object/st80/LargeInteger.st");
  oop v_length= 0;
  oop v_argLength= 0;
  oop v_digit= 0;
  oop v_argDigit= 0;
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  oop _4= 0;
  (void)v_length;
  (void)v_argLength;
  (void)v_digit;
  (void)v_argDigit;
  _line(438);
  _1= v_self;
  _line(441);
  _1=_send(s_digitLength, _1);
  v_length= _1;
  /* ifTrue: */
  _1= 0;
  _2= v_anInteger;
  _line(442);
  _2=_send(s_digitLength, _2);
  v_argLength= _2;
  _3= v_length;
  if (1 & (int)_2 & (int)_3) {
    _2= (((int)_2 != (int)_3) ? v_true : v_false);
  } else _2= _send(s__7e_3d, _2, _3);
  if (!_2) goto _l92;
 {
  /* ifTrue:ifFalse: */
  _1= v_argLength;
  _2= v_length;
  if (1 & (int)_1 & (int)_2) {
    _1= (((int)_1 > (int)_2) ? v_true : v_false);
  } else _1= _send(s__3e, _1, _2);
  if (!_1) goto _l93;
 {
  _1= l_76;
 }
  goto _l94;
 _l93:;
 {
  _1= l_77;
 }
 _l94:;
  _leave();
  return _1;
 }
 _l92:;
  /* whileTrue: */
  goto _l96;
 _l95:;
 {
  /* ifTrue: */
  _1= 0;
  _2= v_anInteger;
  _3= v_length;
  _line(449);
  _2=_send(s_digitAt_, _2, _3);
  v_argDigit= _2;
  _3= v_self;
  _4= v_length;
  _line(449);
  _3=_send(s_digitAt_, _3, _4);
  v_digit= _3;
  if (1 & (int)_2 & (int)_3) {
    _2= (((int)_2 != (int)_3) ? v_true : v_false);
  } else _2= _send(s__7e_3d, _2, _3);
  if (!_2) goto _l97;
 {
  /* ifTrue:ifFalse: */
  _1= v_argDigit;
  _2= v_digit;
  if (1 & (int)_1 & (int)_2) {
    _1= (((int)_1 < (int)_2) ? v_true : v_false);
  } else _1= _send(s__3c, _1, _2);
  if (!_1) goto _l98;
 {
  _1= l_77;
 }
  goto _l99;
 _l98:;
 {
  _1= l_76;
 }
 _l99:;
  _leave();
  return _1;
 }
 _l97:;
  _1= v_length;
  _2= l_77;
  {
    int _l= (int)_1 >> 1;
    int _r= (int)_2 >> 1;
    int _s= (_l - _r);
    if ((1 & (int)_1) && ((_s ^ (_s << 1)) >= 0))  _1= (oop)(_s << 1 | 1);  else _1= _send(s__2d, _1, _2);
  }
  v_length= _1;
 }
 _l96:;
 {
  _1= v_length;
  _2= l_78;
  if (1 & (int)_1) {
    _1= (((int)_1 > (int)_2) ? v_true : v_false);
  } else _1= _send(s__3e, _1, _2);
 }
  if (_1) goto _l95;
  _1= 0;
  _1= l_78;
  _leave();
  return _1;
  _leave();
 }
static oop Integer__gcd_(oop v__closure, oop v_stateful_self, oop v_self, oop v_anInteger)
 {
  _enter("gcd:", "Integer", "/home/saintiss/source/svn/stIdst_278/object/st80/LargeInteger.st");
  oop v_higher= 0;
  oop v_u= 0;
  oop v_v= 0;
  oop v_k= 0;
  oop v_uHat= 0;
  oop v_vHat= 0;
  oop v_a= 0;
  oop v_b= 0;
  oop v_c= 0;
  oop v_d= 0;
  oop v_vPrime= 0;
  oop v_vPrimePrime= 0;
  oop v_q= 0;
  oop v_t= 0;
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  oop _4= 0;
  (void)v_higher;
  (void)v_u;
  (void)v_v;
  (void)v_k;
  (void)v_uHat;
  (void)v_vHat;
  (void)v_a;
  (void)v_b;
  (void)v_c;
  (void)v_d;
  (void)v_vPrime;
  (void)v_vPrimePrime;
  (void)v_q;
  (void)v_t;
  _line(457);
  _1= v_SmallInteger;
  _line(461);
  _1=_send(s_maxVal, _1);
  _line(461);
  _1=_send(s_highBit, _1);
  v_higher= _1;
  _1= v_self;
  _line(462);
  _1=_send(s_abs, _1);
  _2= v_anInteger;
  _line(462);
  _2=_send(s_abs, _2);
  v_v= _2;
  _line(462);
  _1=_send(s_max_, _1, _2);
  v_u= _1;
  _1= v_self;
  _line(463);
  _1=_send(s_abs, _1);
  _2= v_v;
  _line(463);
  _1=_send(s_min_, _1, _2);
  v_v= _1;
  /* whileFalse: */
  goto _l101;
 _l100:;
 {
  /* ifFalse: */
  _1= 0;
  _2= v_u;
  _3= v_higher;
  _4= v_u;
  _line(466);
  _4=_send(s_highBit, _4);
  {
    int _l= (int)_3 >> 1;
    int _r= (int)_4 >> 1;
    int _s= (_l - _r);
    if ((1 & (int)_3 & (int)_4) && ((_s ^ (_s << 1)) >= 0))  _3= (oop)(_s << 1 | 1);  else _3= _send(s__2d, _3, _4);
  }
  v_k= _3;
  { int _l= (int)_2 >> 1,  _r= (int)_3 >> 1,  _s= ((_r < 0) ? (_l >> -_r) : (_l << _r));
    if ((1 & (int)_2 & (int)_3) && (   (    (_r >= 0) && (_r <= 31)  && (_l == (_s >> _r)) && ((_s ^ (_s << 1)) >= 0) ) || ((_r < 0) && (_r >= -31)) )) _2= (oop)(_s << 1 | 1); else _2= _send(s_bitShift_, _2, _3);
  }
  v_uHat= _2;
  _line(466);
  _2=_send(s_isSmallInteger, _2);
  if (_2) goto _l102;
 {
  _1= v_k;
  _2= l_79;
  {
    int _l= (int)_1 >> 1;
    int _r= (int)_2 >> 1;
    int _s= (_l - _r);
    if ((1 & (int)_1) && ((_s ^ (_s << 1)) >= 0))  _1= (oop)(_s << 1 | 1);  else _1= _send(s__2d, _1, _2);
  }
  v_k= _1;
  _1= v_uHat;
  _2= l_80;
  { int _l= (int)_1 >> 1,  _r= (int)_2 >> 1,  _s= ((_r < 0) ? (_l >> -_r) : (_l << _r));
    if ((1 & (int)_1) && (   (    (_r >= 0) && (_r <= 31)  && (_l == (_s >> _r)) && ((_s ^ (_s << 1)) >= 0) ) || ((_r < 0) && (_r >= -31)) )) _1= (oop)(_s << 1 | 1); else _1= _send(s_bitShift_, _1, _2);
  }
  v_uHat= _1;
 }
 _l102:;
  _1= v_v;
  _2= v_k;
  { int _l= (int)_1 >> 1,  _r= (int)_2 >> 1,  _s= ((_r < 0) ? (_l >> -_r) : (_l << _r));
    if ((1 & (int)_1 & (int)_2) && (   (    (_r >= 0) && (_r <= 31)  && (_l == (_s >> _r)) && ((_s ^ (_s << 1)) >= 0) ) || ((_r < 0) && (_r >= -31)) )) _1= (oop)(_s << 1 | 1); else _1= _send(s_bitShift_, _1, _2);
  }
  v_vHat= _1;
  _1= l_79;
  v_a= _1;
  _1= l_81;
  v_b= _1;
  _1= l_81;
  v_c= _1;
  _1= l_79;
  v_d= _1;
  /* whileTrue: */
  goto _l104;
 _l103:;
 {
  _1= v_a;
  _2= v_q;
  _3= v_c;
  v_a= _3;
  {
    int _l= (int)_2 >> 1;
    int _r= (int)_3 >> 1;
    int _s= (_l * _r);
    if ((1 & (int)_2 & (int)_3) && ((_r == 0) || (_s / _r == _l)) && ((_s ^ (_s << 1)) >= 0))  _2= (oop)(_s << 1 | 1);  else _2= _send(s__2a, _2, _3);
  }
  {
    int _l= (int)_1 >> 1;
    int _r= (int)_2 >> 1;
    int _s= (_l - _r);
    if ((1 & (int)_1 & (int)_2) && ((_s ^ (_s << 1)) >= 0))  _1= (oop)(_s << 1 | 1);  else _1= _send(s__2d, _1, _2);
  }
  v_c= _1;
  _1= v_b;
  _2= v_q;
  _3= v_d;
  v_b= _3;
  {
    int _l= (int)_2 >> 1;
    int _r= (int)_3 >> 1;
    int _s= (_l * _r);
    if ((1 & (int)_2 & (int)_3) && ((_r == 0) || (_s / _r == _l)) && ((_s ^ (_s << 1)) >= 0))  _2= (oop)(_s << 1 | 1);  else _2= _send(s__2a, _2, _3);
  }
  {
    int _l= (int)_1 >> 1;
    int _r= (int)_2 >> 1;
    int _s= (_l - _r);
    if ((1 & (int)_1 & (int)_2) && ((_s ^ (_s << 1)) >= 0))  _1= (oop)(_s << 1 | 1);  else _1= _send(s__2d, _1, _2);
  }
  v_d= _1;
  _1= v_uHat;
  _2= v_q;
  _3= v_vHat;
  v_uHat= _3;
  {
    int _l= (int)_2 >> 1;
    int _r= (int)_3 >> 1;
    int _s= (_l * _r);
    if ((1 & (int)_2 & (int)_3) && ((_r == 0) || (_s / _r == _l)) && ((_s ^ (_s << 1)) >= 0))  _2= (oop)(_s << 1 | 1);  else _2= _send(s__2a, _2, _3);
  }
  {
    int _l= (int)_1 >> 1;
    int _r= (int)_2 >> 1;
    int _s= (_l - _r);
    if ((1 & (int)_1 & (int)_2) && ((_s ^ (_s << 1)) >= 0))  _1= (oop)(_s << 1 | 1);  else _1= _send(s__2d, _1, _2);
  }
  v_vHat= _1;
 }
 _l104:;
 {
  /* and: */
  _1= v_vHat;
  _2= v_d;
  {
    int _l= (int)_1 >> 1;
    int _r= (int)_2 >> 1;
    int _s= _l + _r;
    if ((1 & (int)_1 & (int)_2) && ((_s ^ (_s << 1)) >= 0))  _1= (oop)(_s << 1 | 1);  else _1= _send(s__2b, _1, _2);
  }
  v_vPrime= _1;
  _2= l_81;
  if (1 & (int)_1) {
    _1= (((int)_1 != (int)_2) ? v_true : v_false);
  } else _1= _send(s__7e_3d, _1, _2);
  if (!_1) goto _l105;
 {
  /* and: */
  _1= v_vHat;
  _2= v_c;
  {
    int _l= (int)_1 >> 1;
    int _r= (int)_2 >> 1;
    int _s= _l + _r;
    if ((1 & (int)_1 & (int)_2) && ((_s ^ (_s << 1)) >= 0))  _1= (oop)(_s << 1 | 1);  else _1= _send(s__2b, _1, _2);
  }
  v_vPrimePrime= _1;
  _2= l_81;
  if (1 & (int)_1) {
    _1= (((int)_1 != (int)_2) ? v_true : v_false);
  } else _1= _send(s__7e_3d, _1, _2);
  if (!_1) goto _l106;
 {
  _1= v_uHat;
  _2= v_a;
  {
    int _l= (int)_1 >> 1;
    int _r= (int)_2 >> 1;
    int _s= _l + _r;
    if ((1 & (int)_1 & (int)_2) && ((_s ^ (_s << 1)) >= 0))  _1= (oop)(_s << 1 | 1);  else _1= _send(s__2b, _1, _2);
  }
  _2= v_vPrimePrime;
  _1= _send(s__2f_2f, _1, _2);
  v_q= _1;
  _2= v_uHat;
  _3= v_b;
  {
    int _l= (int)_2 >> 1;
    int _r= (int)_3 >> 1;
    int _s= _l + _r;
    if ((1 & (int)_2 & (int)_3) && ((_s ^ (_s << 1)) >= 0))  _2= (oop)(_s << 1 | 1);  else _2= _send(s__2b, _2, _3);
  }
  _3= v_vPrime;
  _2= _send(s__2f_2f, _2, _3);
  if (1 & (int)_1 & (int)_2) {
    _1= (((int)_1 == (int)_2) ? v_true : v_false);
  } else _1= _send(s__3d, _1, _2);
 }
 _l106:;
 }
 _l105:;
 }
  if (_1) goto _l103;
  _1= 0;
  /* ifTrue:ifFalse: */
  _1= v_b;
  _2= l_81;
  if (1 & (int)_1) {
    _1= (((int)_1 == (int)_2) ? v_true : v_false);
  } else _1= _send(s__3d, _1, _2);
  if (!_1) goto _l107;
 {
  _1= v_u;
  _2= v_v;
  v_u= _2;
  _line(484);
  _1=_send(s_rem_, _1, _2);
  v_v= _1;
 }
  goto _l108;
 _l107:;
 {
  _1= v_u;
  _2= v_a;
  {
    int _l= (int)_1 >> 1;
    int _r= (int)_2 >> 1;
    int _s= (_l * _r);
    if ((1 & (int)_1 & (int)_2) && ((_r == 0) || (_s / _r == _l)) && ((_s ^ (_s << 1)) >= 0))  _1= (oop)(_s << 1 | 1);  else _1= _send(s__2a, _1, _2);
  }
  _2= v_v;
  _3= v_b;
  {
    int _l= (int)_2 >> 1;
    int _r= (int)_3 >> 1;
    int _s= (_l * _r);
    if ((1 & (int)_2 & (int)_3) && ((_r == 0) || (_s / _r == _l)) && ((_s ^ (_s << 1)) >= 0))  _2= (oop)(_s << 1 | 1);  else _2= _send(s__2a, _2, _3);
  }
  {
    int _l= (int)_1 >> 1;
    int _r= (int)_2 >> 1;
    int _s= _l + _r;
    if ((1 & (int)_1 & (int)_2) && ((_s ^ (_s << 1)) >= 0))  _1= (oop)(_s << 1 | 1);  else _1= _send(s__2b, _1, _2);
  }
  v_t= _1;
  _1= v_u;
  _2= v_c;
  {
    int _l= (int)_1 >> 1;
    int _r= (int)_2 >> 1;
    int _s= (_l * _r);
    if ((1 & (int)_1 & (int)_2) && ((_r == 0) || (_s / _r == _l)) && ((_s ^ (_s << 1)) >= 0))  _1= (oop)(_s << 1 | 1);  else _1= _send(s__2a, _1, _2);
  }
  _2= v_v;
  _3= v_d;
  {
    int _l= (int)_2 >> 1;
    int _r= (int)_3 >> 1;
    int _s= (_l * _r);
    if ((1 & (int)_2 & (int)_3) && ((_r == 0) || (_s / _r == _l)) && ((_s ^ (_s << 1)) >= 0))  _2= (oop)(_s << 1 | 1);  else _2= _send(s__2a, _2, _3);
  }
  {
    int _l= (int)_1 >> 1;
    int _r= (int)_2 >> 1;
    int _s= _l + _r;
    if ((1 & (int)_1 & (int)_2) && ((_s ^ (_s << 1)) >= 0))  _1= (oop)(_s << 1 | 1);  else _1= _send(s__2b, _1, _2);
  }
  v_v= _1;
  _1= v_t;
  v_u= _1;
 }
 _l108:;
 }
 _l101:;
 {
  _1= v_v;
  _line(464);
  _1=_send(s_isSmallInteger, _1);
 }
  if (!_1) goto _l100;
  _1= 0;
  _1= v_v;
  _2= v_u;
  _line(489);
  _1=_send(s_gcd_, _1, _2);
  _leave();
  return _1;
  _leave();
 }

void __id__init__LargeInteger(void)
{
  if (_local_object) return;
  { 
    dlhandle_t global= dlopen(0, RTLD_LAZY);
    _local_object= *(oop *)dlsym(global, "_libid_object");
    _local_param= dlsym(global, "_libid_param");
    _local_intern= dlsym(global, "_libid_intern");
    _local_proto= dlsym(global, "_libid_proto");
    _local_import= dlsym(global, "_libid_import");
    _local_export= dlsym(global, "_libid_export");
    _local_method= dlsym(global, "_libid_method");
    _local_alloc= dlsym(global, "_libid_alloc");
    _local_palloc= dlsym(global, "_libid_palloc");
    _local_balloc= dlsym(global, "_libid_balloc");
    _local_bind= dlsym(global, "_libid_bind");
    _local_nlreturn= dlsym(global, "_libid_nlreturn");
    _local_nlresult= dlsym(global, "_libid_nlresult");
    _local_enter= dlsym(global, "_libid_enter");
    _local_line= dlsym(global, "_libid_line");
    _local_leave= dlsym(global, "_libid_leave");
    _local_backtrace= dlsym(global, "_libid_backtrace");
    _local_tag_vtable= dlsym(global, "_libid_tag_vtable");
    _local_nil_vtable= dlsym(global, "_libid_nil_vtable");
    _local_gc_addRoots= dlsym(global, "GC_add_roots");
    _local_gc_unregisterDisappearingLink= dlsym(global, "GC_unregister_disappearing_link");
    _local_gc_generalRegisterDisappearingLink= dlsym(global, "GC_general_register_disappearing_link");
    _local_gc_gcollect= dlsym(global, "GC_gcollect");
    dlclose(global);
  }
# define GC_add_roots _local_gc_addRoots
  GC_INIT();
  {
    struct _Selector *s= 0;
    for (s= _Selectors;  s->name;  ++s)
      *s->addr= _selector(s->name);
  }
  _enter("__id__init__", "<initialisation>", "LargeInteger.st");

  _send(s__5fimport_, _local_object, "Integer", "__id__init__Integer");
  _send(s__5fimport_, _local_object, "Number", "__id__init__Number");
  _send(s__5fimport_, _local_object, "Magnitude", "__id__init__Magnitude");
  _send(s__5fimport_, _local_object, "Object", "__id__init__Object");
  _send(s__5fimport_, _local_object, "_object", "__id__init___5fobject");
  v__object= _id_import("_object");
  v__vector= _id_import("_vector");
  v_Object= _id_import("Object");
  v_UndefinedObject= _id_import("UndefinedObject");
  v_StaticBlockClosure= _id_import("StaticBlockClosure");
  v_BlockClosure= _id_import("BlockClosure");
  v_Magnitude= _id_import("Magnitude");
  v_Number= _id_import("Number");
  v_Integer= _id_import("Integer");
  v_SmallInteger= _id_import("SmallInteger");
  v_LargePositiveInteger= _id_import("LargePositiveInteger");
  v_LargeNegativeInteger= _id_import("LargeNegativeInteger");
  v_Collection= _id_import("Collection");
  v_SequenceableCollection= _id_import("SequenceableCollection");
  v_ArrayedCollection= _id_import("ArrayedCollection");
  v_Array= _id_import("Array");
  v_WordArray= _id_import("WordArray");
  v_ByteArray= _id_import("ByteArray");
  v_String= _id_import("String");
  v_ImmutableString= _id_import("ImmutableString");
  v_Symbol= _id_import("Symbol");
  v_true= _id_import("true");
  v_false= _id_import("false");
  _send(s__5fimport_, _local_object, "BlockClosure", "__id__init__BlockClosure");
  _send(s__5fimport_, _local_object, "SmallInteger", "__id__init__SmallInteger");
  _send(s__5fimport_, _local_object, "Array", "__id__init__Array");
  _send(s__5fimport_, _local_object, "ArrayedCollection", "__id__init__ArrayedCollection");
  _send(s__5fimport_, _local_object, "SequenceableCollection", "__id__init__SequenceableCollection");
  _send(s__5fimport_, _local_object, "Collection", "__id__init__Collection");
  _send(s__5fimport_, _local_object, "Character", "__id__init__Character");
  _send(s__5fimport_, _local_object, "String", "__id__init__String");
  _send(s__5fimport_, _local_object, "ByteArray", "__id__init__ByteArray");
  _send(s__5fimport_, _local_object, "WordArray", "__id__init__WordArray");
  _send(s__5fimport_, _local_object, "LargePositiveInteger", "__id__init__LargePositiveInteger");
  _send(s__5fimport_, _local_object, "LargeNegativeInteger", "__id__init__LargeNegativeInteger");
  _method(v_Integer, s_new_neg_, Integer__new_neg_);
  _method(v_Integer, s_lastDigit, Integer__lastDigit);
  _method(v_Integer, s_growTo_, Integer__growTo_);
  _method(v_Integer, s_growBy_, Integer__growBy_);
  l_1= _send(s_value_5f_, v_SmallInteger, 1);
  _method(v_Integer, s_copyTo_, Integer__copyTo_);
  l_2= _send(s_size_5f_value_5f_, v_Symbol, 1, "+");
  _method(v_Integer, s__2b, Integer___2b);
  l_3= _send(s_value_5f_, v_SmallInteger, 0);
  l_4= _send(s_value_5f_, v_SmallInteger, 1);
  l_6= _send(s_value_5f_, v_SmallInteger, 255);
  l_7= _send(s_value_5f_, v_SmallInteger, -8);
  _method(v_Integer, s_digitAdd_, Integer__digitAdd_);
  l_8= _send(s_size_5f_value_5f_, v_Symbol, 1, "-");
  _method(v_Integer, s__2d, Integer___2d);
  l_9= _send(s_value_5f_, v_SmallInteger, 1);
  l_10= _send(s_value_5f_, v_SmallInteger, 0);
  l_12= _send(s_value_5f_, v_SmallInteger, 256);
  _method(v_Integer, s_digitSubtract_, Integer__digitSubtract_);
  l_13= _send(s_size_5f_value_5f_, v_Symbol, 1, "*");
  _method(v_Integer, s__2a, Integer___2a);
  l_14= _send(s_value_5f_, v_SmallInteger, 1);
  l_15= _send(s_value_5f_, v_SmallInteger, 0);
  l_18= _send(s_value_5f_, v_SmallInteger, -8);
  l_19= _send(s_value_5f_, v_SmallInteger, 255);
  _method(v_Integer, s_digitMultiply_neg_, Integer__digitMultiply_neg_);
  l_20= _send(s_value_5f_, v_SmallInteger, 0);
  l_21= _send(s_size_5f_value_5f_, v_ImmutableString, 13, "division by 0");
  l_22= _send(s_value_5f_, v_SmallInteger, 1);
  _method(v_Integer, s__2f_2f, Integer___2f_2f);
  l_23= _send(s_value_5f_, v_SmallInteger, 1);
  l_24= _send(s_size_5f_value_5f_, v_Symbol, 4, "quo:");
  _method(v_Integer, s_quo_, Integer__quo_);
  l_25= _send(s_value_5f_, v_SmallInteger, 2);
  l_26= _send(s_value_5f_, v_SmallInteger, 0);
  l_27= _send(s_value_5f_, v_SmallInteger, 1);
  l_28= _send(s_size_5f_value_5f_, v_Symbol, 1, "/");
  _method(v_Integer, s__2f, Integer___2f);
  l_29= _send(s_value_5f_, v_SmallInteger, 0);
  l_30= _send(s_value_5f_, v_SmallInteger, 1);
  l_31= _send(s_value_5f_, v_SmallInteger, 8);
  l_33= _send(s_value_5f_, v_SmallInteger, 15);
  l_34= _send(s_value_5f_, v_SmallInteger, 4);
  l_35= _send(s_value_5f_, v_SmallInteger, -4);
  l_36= _send(s_value_5f_, v_SmallInteger, -8);
  l_37= _send(s_value_5f_, v_SmallInteger, 255);
  l_38= _send(s_value_5f_, v_SmallInteger, 3);
  l_39= _send(s_value_5f_, v_SmallInteger, 2);
  l_40= _send(s_value_5f_, v_SmallInteger, 256);
  l_41= _send(s_value_5f_, v_SmallInteger, 16);
  _method(v_Integer, s_digitDiv_neg_, Integer__digitDiv_neg_);
  l_44= _send(s_size_5f_value_5f_, v_Symbol, 7, "bitAnd:");
  _method(v_Integer, s_bitAnd_, Integer__bitAnd_);
  l_45= _send(s_size_5f_value_5f_, v_Symbol, 6, "bitOr:");
  _method(v_Integer, s_bitOr_, Integer__bitOr_);
  l_46= _send(s_size_5f_value_5f_, v_Symbol, 7, "bitXor:");
  _method(v_Integer, s_bitXor_, Integer__bitXor_);
  _method(v_Integer, s_bitClear_, Integer__bitClear_);
  l_47= _send(s_value_5f_, v_SmallInteger, -1);
  _method(v_Integer, s_bitInvert, Integer__bitInvert);
  l_48= _send(s_value_5f_, v_SmallInteger, -1);
  l_49= _send(s_value_5f_, v_SmallInteger, 0);
  l_50= _send(s_value_5f_, v_SmallInteger, 1);
  l_52= _send(s_value_5f_, v_SmallInteger, 256);
  l_53= _send(s_value_5f_, v_SmallInteger, 255);
  _method(v_Integer, s_digitLogic_op_length_, Integer__digitLogic_op_length_);
  l_54= _send(s_value_5f_, v_SmallInteger, 0);
  l_55= _send(s_size_5f_value_5f_, v_ImmutableString, 21, "negative displacement");
  _method(v_Integer, s__3c_3c, Integer___3c_3c);
  l_56= _send(s_value_5f_, v_SmallInteger, 0);
  l_57= _send(s_size_5f_value_5f_, v_ImmutableString, 21, "negative displacement");
  _method(v_Integer, s__3e_3e, Integer___3e_3e);
  l_58= _send(s_value_5f_, v_SmallInteger, 1);
  _method(v_Integer, s_bitShift_, Integer__bitShift_);
  l_59= _send(s_value_5f_, v_SmallInteger, 0);
  l_60= _send(s_value_5f_, v_SmallInteger, 7);
  l_61= _send(s_value_5f_, v_SmallInteger, -3);
  _method(v_Integer, s_bitShiftMagnitude_, Integer__bitShiftMagnitude_);
  l_62= _send(s_value_5f_, v_SmallInteger, 0);
  l_63= _send(s_value_5f_, v_SmallInteger, 7);
  l_64= _send(s_value_5f_, v_SmallInteger, 8);
  l_65= _send(s_value_5f_, v_SmallInteger, 1);
  l_66= _send(s_value_5f_, v_SmallInteger, 255);
  _method(v_Integer, s_digitLshift_, Integer__digitLshift_);
  l_69= _send(s_value_5f_, v_SmallInteger, 0);
  l_70= _send(s_value_5f_, v_SmallInteger, 8);
  l_71= _send(s_value_5f_, v_SmallInteger, 255);
  l_72= _send(s_value_5f_, v_SmallInteger, 1);
  _method(v_Integer, s_digitRshift_bytes_lookfirst_, Integer__digitRshift_bytes_lookfirst_);
  l_74= _send(s_value_5f_, v_SmallInteger, 0);
  l_75= _send(s_size_5f_value_5f_, v_Symbol, 1, "<");
  _method(v_Integer, s__3c, Integer___3c);
  l_76= _send(s_value_5f_, v_SmallInteger, -1);
  l_77= _send(s_value_5f_, v_SmallInteger, 1);
  l_78= _send(s_value_5f_, v_SmallInteger, 0);
  _method(v_Integer, s_digitCompare_, Integer__digitCompare_);
  l_79= _send(s_value_5f_, v_SmallInteger, 1);
  l_80= _send(s_value_5f_, v_SmallInteger, -1);
  l_81= _send(s_value_5f_, v_SmallInteger, 0);
  _method(v_Integer, s_gcd_, Integer__gcd_);
  _leave();
}
