Test: ex064

Higher SubleqErrorOutputSubleqITR
int _divMod(int a, int b, int j)
{
   if( a<b ) { *j=a; return 0; }

   int b1=b, i=1, bp, ip;

   next:
   bp = b1; ip = i;
   b1 = b1 + b1; i=i + i;

   if( a<b1 ) 
      return ip + _divMod(a-bp,b,j);

   goto next;
}


int _multr(int a , int b)
{
   if( b<1 ) return 0;
   if( b<2 ) return a;
   int i,j,k=0;
   i = _divMod(b,2,&j);

   if( j<1 ) ; else k=a;
   return _multr(a+a,i) + k;
}

int _mul(int a , int b)
{
   int s=1;
   if( a<0 ){ a=-a; s=-s; }
   if( b<0 ){ b=-b; s=-s; }
   if( a<b ){ int t=a; a=b; b=t; }
   int k = _multr(a,b);
   if( s>0 ) return k;
   return -k;
}

int main()
{
   int i,j;

   i = _divMod(10,3,&j);

   __out 48+i;
   __out 48+j;
   __out _mul(11,5);
   __out _mul(-6,-9);
}


3176

   top:top top sqmain

__divMod:
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+6; sp ?+2; bp 0
   bp; sp bp
   c7 sp
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+6; sp ?+2; t1 0
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+6; sp ?+2; t2 0
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+6; sp ?+2; t3 0
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+6; sp ?+2; t4 0
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+6; sp ?+2; t5 0

   t1; t2; bp t1; c1 t1; t1 t2
   t1; t3; ?+11; t2 Z; Z ?+4; Z; 0 t1; t1 t3
   t2; t1; bp t2; c4 t2; t2 t1
   t2; t4; ?+11; t1 Z; Z ?+4; Z; 0 t2; t2 t4
   t1; t4 Z; Z t1; Z; t3 t1
   Z t1 l1
   t1; t2; bp t1; c1 t1; t1 t2
   t1; t3; ?+11; t2 Z; Z ?+4; Z; 0 t1; t1 t3
   t2; t1; bp t2; c2 t2; t2 t1
   t2; t4; ?+11; t1 Z; Z ?+4; Z; 0 t2; t2 t4
   ?+23; ?+21; ?+24; t4 Z; Z ?+10; Z ?+8
   Z ?+11; Z; 0; t3 Z; Z 0; Z

   ax; c3 ax
   Z Z end__divMod

l1:

   t1; t2; bp t1; c4 t1; t1 t2
   t1; t3; ?+11; t2 Z; Z ?+4; Z; 0 t1; t1 t3
   t2; t1; bp t2; dec t2; t2 t1
   ?+23; ?+21; ?+24; t1 Z; Z ?+10; Z ?+8
   Z ?+11; Z; 0; t3 Z; Z 0; Z
   t3; t1; bp t3; c5 t3; t3 t1
   ?+23; ?+21; ?+24; t1 Z; Z ?+10; Z ?+8
   Z ?+11; Z; 0; dec Z; Z 0; Z

l__divMod_next:
   t1; t2; bp t1; dec t1; t1 t2
   t1; t3; ?+11; t2 Z; Z ?+4; Z; 0 t1; t1 t3
   t2; t1; bp t2; c6 t2; t2 t1
   ?+23; ?+21; ?+24; t1 Z; Z ?+10; Z ?+8
   Z ?+11; Z; 0; t3 Z; Z 0; Z

   t1; t2; bp t1; c5 t1; t1 t2
   t1; t3; ?+11; t2 Z; Z ?+4; Z; 0 t1; t1 t3
   t2; t1; bp t2; c7 t2; t2 t1
   ?+23; ?+21; ?+24; t1 Z; Z ?+10; Z ?+8
   Z ?+11; Z; 0; t3 Z; Z 0; Z

   t1; t2; bp t1; dec t1; t1 t2
   t1; t3; ?+11; t2 Z; Z ?+4; Z; 0 t1; t1 t3
   t2; t1; bp t2; dec t2; t2 t1
   t2; t4; ?+11; t1 Z; Z ?+4; Z; 0 t2; t2 t4
   t1; t2; t3 t1; t4 t1; t1 t2
   t1; t4; bp t1; dec t1; t1 t4
   ?+23; ?+21; ?+24; t4 Z; Z ?+10; Z ?+8
   Z ?+11; Z; 0; t2 Z; Z 0; Z

   t1; t2; bp t1; c5 t1; t1 t2
   t1; t3; ?+11; t2 Z; Z ?+4; Z; 0 t1; t1 t3
   t2; t1; bp t2; c5 t2; t2 t1
   t2; t4; ?+11; t1 Z; Z ?+4; Z; 0 t2; t2 t4
   t1; t2; t3 t1; t4 t1; t1 t2
   t1; t4; bp t1; c5 t1; t1 t4
   ?+23; ?+21; ?+24; t4 Z; Z ?+10; Z ?+8
   Z ?+11; Z; 0; t2 Z; Z 0; Z

   t5; t2; bp t5; c1 t5; t5 t2
   t5; t3; ?+11; t2 Z; Z ?+4; Z; 0 t5; t5 t3
   t2; t5; bp t2; dec t2; t2 t5
   t2; t1; ?+11; t5 Z; Z ?+4; Z; 0 t2; t2 t1
   t5; t1 Z; Z t5; Z; t3 t5
   Z t5 l2
   t1; t2; bp t1; c7 t1; t1 t2
   t1; t3; ?+11; t2 Z; Z ?+4; Z; 0 t1; t1 t3
   t2; t1; bp t2; c2 t2; t2 t1
   t2; t4; ?+11; t1 Z; Z ?+4; Z; 0 t2; t2 t4
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+9; sp ?+5; t4 Z; Z 0; Z
   t4; t1; bp t4; c4 t4; t4 t1
   t4; t2; ?+11; t1 Z; Z ?+4; Z; 0 t4; t4 t2
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+9; sp ?+5; t2 Z; Z 0; Z
   t2; t1; bp t2; c1 t2; t2 t1
   t2; t4; ?+11; t1 Z; Z ?+4; Z; 0 t2; t2 t4
   t1; t2; bp t1; c6 t1; t1 t2
   t1; t5; ?+11; t2 Z; Z ?+4; Z; 0 t1; t1 t5
   t2; t4 Z; Z t2; Z; t5 t2
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+9; sp ?+5; t2 Z; Z 0; Z
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+6; sp ?+2; ?+2 0 __divMod; . ?;
   t2; ax t2
   c2 sp
   t5; t4; t3 t5; t2 t5; t5 t4
   ax; t4 ax
   Z Z end__divMod
l2:

   Z Z l__divMod_next

end__divMod:
   ?+8; sp ?+4; t5; 0 t5; inc sp
   ?+8; sp ?+4; t4; 0 t4; inc sp
   ?+8; sp ?+4; t3; 0 t3; inc sp
   ?+8; sp ?+4; t2; 0 t2; inc sp
   ?+8; sp ?+4; t1; 0 t1; inc sp
   sp; bp sp
   ?+8; sp ?+4; bp; 0 bp; inc sp
   ?+8; sp ?+4; ?+7; 0 ?+3; Z Z 0

__multr:
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+6; sp ?+2; bp 0
   bp; sp bp
   c6 sp
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+6; sp ?+2; t1 0
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+6; sp ?+2; t2 0
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+6; sp ?+2; t3 0
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+6; sp ?+2; t4 0

   t1; t2; bp t1; c4 t1; t1 t2
   t1; t3; ?+11; t2 Z; Z ?+4; Z; 0 t1; t1 t3
   t2; dec Z; Z t2; Z; t3 t2
   Z t2 l3
   ax; c3 ax
   Z Z end__multr
l3:

   t2; t1; bp t2; c4 t2; t2 t1
   t2; t4; ?+11; t1 Z; Z ?+4; Z; 0 t2; t2 t4
   t1; c5 Z; Z t1; Z; t4 t1
   Z t1 l4
   t1; t2; bp t1; c1 t1; t1 t2
   t1; t3; ?+11; t2 Z; Z ?+4; Z; 0 t1; t1 t3
   ax; t3 ax
   Z Z end__multr
l4:

   t1; t2; bp t1; c6 t1; t1 t2
   ?+23; ?+21; ?+24; t2 Z; Z ?+10; Z ?+8
   Z ?+11; Z; 0; c3 Z; Z 0; Z

   t1; t2; bp t1; c5 t1; t1 t2
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+9; sp ?+5; t2 Z; Z 0; Z
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+9; sp ?+5; c5 Z; Z 0; Z
   t2; t1; bp t2; c4 t2; t2 t1
   t2; t3; ?+11; t1 Z; Z ?+4; Z; 0 t2; t2 t3
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+9; sp ?+5; t3 Z; Z 0; Z
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+6; sp ?+2; ?+2 0 __divMod; . ?;
   t3; ax t3
   c2 sp
   t1; t2; bp t1; dec t1; t1 t2
   ?+23; ?+21; ?+24; t2 Z; Z ?+10; Z ?+8
   Z ?+11; Z; 0; t3 Z; Z 0; Z

   t3; t1; bp t3; c5 t3; t3 t1
   t3; t2; ?+11; t1 Z; Z ?+4; Z; 0 t3; t3 t2
   t1; dec Z; Z t1; Z; t2 t1
   Z t1 l5
   Z Z l6
l5:
   t1; t2; bp t1; c1 t1; t1 t2
   t1; t3; ?+11; t2 Z; Z ?+4; Z; 0 t1; t1 t3
   t2; t1; bp t2; c6 t2; t2 t1
   ?+23; ?+21; ?+24; t1 Z; Z ?+10; Z ?+8
   Z ?+11; Z; 0; t3 Z; Z 0; Z
l6:

   t1; t2; bp t1; dec t1; t1 t2
   t1; t3; ?+11; t2 Z; Z ?+4; Z; 0 t1; t1 t3
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+9; sp ?+5; t3 Z; Z 0; Z
   t3; t2; bp t3; c1 t3; t3 t2
   t3; t1; ?+11; t2 Z; Z ?+4; Z; 0 t3; t3 t1
   t2; t3; bp t2; c1 t2; t2 t3
   t2; t4; ?+11; t3 Z; Z ?+4; Z; 0 t2; t2 t4
   t3; t2; t1 t3; t4 t3; t3 t2
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+9; sp ?+5; t2 Z; Z 0; Z
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+6; sp ?+2; ?+2 0 __multr; . ?;
   t2; ax t2
   c4 sp
   t3; t4; bp t3; c6 t3; t3 t4
   t3; t1; ?+11; t4 Z; Z ?+4; Z; 0 t3; t3 t1
   t4; t3; t2 t4; t1 t4; t4 t3
   ax; t3 ax
   Z Z end__multr

end__multr:
   ?+8; sp ?+4; t4; 0 t4; inc sp
   ?+8; sp ?+4; t3; 0 t3; inc sp
   ?+8; sp ?+4; t2; 0 t2; inc sp
   ?+8; sp ?+4; t1; 0 t1; inc sp
   sp; bp sp
   ?+8; sp ?+4; bp; 0 bp; inc sp
   ?+8; sp ?+4; ?+7; 0 ?+3; Z Z 0

__mul:
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+6; sp ?+2; bp 0
   bp; sp bp
   c6 sp
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+6; sp ?+2; t1 0
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+6; sp ?+2; t2 0
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+6; sp ?+2; t3 0
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+6; sp ?+2; t4 0

   t1; t2; bp t1; dec t1; t1 t2
   ?+23; ?+21; ?+24; t2 Z; Z ?+10; Z ?+8
   Z ?+11; Z; 0; dec Z; Z 0; Z

   t1; t2; bp t1; c1 t1; t1 t2
   t1; t3; ?+11; t2 Z; Z ?+4; Z; 0 t1; t1 t3
   t2; c3 Z; Z t2; Z; t3 t2
   Z t2 l7
   t1; t2; bp t1; c1 t1; t1 t2
   t1; t3; ?+11; t2 Z; Z ?+4; Z; 0 t1; t1 t3
   t2; t3 t2
   t3; t1; bp t3; c1 t3; t3 t1
   ?+23; ?+21; ?+24; t1 Z; Z ?+10; Z ?+8
   Z ?+11; Z; 0; t2 Z; Z 0; Z

   t1; t2; bp t1; dec t1; t1 t2
   t1; t3; ?+11; t2 Z; Z ?+4; Z; 0 t1; t1 t3
   t2; t3 t2
   t3; t1; bp t3; dec t3; t3 t1
   ?+23; ?+21; ?+24; t1 Z; Z ?+10; Z ?+8
   Z ?+11; Z; 0; t2 Z; Z 0; Z

l7:

   t1; t2; bp t1; c4 t1; t1 t2
   t1; t3; ?+11; t2 Z; Z ?+4; Z; 0 t1; t1 t3
   t2; c3 Z; Z t2; Z; t3 t2
   Z t2 l8
   t1; t2; bp t1; c4 t1; t1 t2
   t1; t3; ?+11; t2 Z; Z ?+4; Z; 0 t1; t1 t3
   t2; t3 t2
   t3; t1; bp t3; c4 t3; t3 t1
   ?+23; ?+21; ?+24; t1 Z; Z ?+10; Z ?+8
   Z ?+11; Z; 0; t2 Z; Z 0; Z

   t1; t2; bp t1; dec t1; t1 t2
   t1; t3; ?+11; t2 Z; Z ?+4; Z; 0 t1; t1 t3
   t2; t3 t2
   t3; t1; bp t3; dec t3; t3 t1
   ?+23; ?+21; ?+24; t1 Z; Z ?+10; Z ?+8
   Z ?+11; Z; 0; t2 Z; Z 0; Z

l8:

   t1; t2; bp t1; c1 t1; t1 t2
   t1; t3; ?+11; t2 Z; Z ?+4; Z; 0 t1; t1 t3
   t2; t1; bp t2; c4 t2; t2 t1
   t2; t4; ?+11; t1 Z; Z ?+4; Z; 0 t2; t2 t4
   t1; t4 Z; Z t1; Z; t3 t1
   Z t1 l9
   t1; t2; bp t1; c1 t1; t1 t2
   t1; t3; ?+11; t2 Z; Z ?+4; Z; 0 t1; t1 t3
   t2; t1; bp t2; c5 t2; t2 t1
   ?+23; ?+21; ?+24; t1 Z; Z ?+10; Z ?+8
   Z ?+11; Z; 0; t3 Z; Z 0; Z

   t1; t2; bp t1; c4 t1; t1 t2
   t1; t3; ?+11; t2 Z; Z ?+4; Z; 0 t1; t1 t3
   t2; t1; bp t2; c1 t2; t2 t1
   ?+23; ?+21; ?+24; t1 Z; Z ?+10; Z ?+8
   Z ?+11; Z; 0; t3 Z; Z 0; Z

   t1; t2; bp t1; c5 t1; t1 t2
   t1; t3; ?+11; t2 Z; Z ?+4; Z; 0 t1; t1 t3
   t2; t1; bp t2; c4 t2; t2 t1
   ?+23; ?+21; ?+24; t1 Z; Z ?+10; Z ?+8
   Z ?+11; Z; 0; t3 Z; Z 0; Z

l9:

   t1; t2; bp t1; c4 t1; t1 t2
   t1; t3; ?+11; t2 Z; Z ?+4; Z; 0 t1; t1 t3
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+9; sp ?+5; t3 Z; Z 0; Z
   t3; t2; bp t3; c1 t3; t3 t2
   t3; t1; ?+11; t2 Z; Z ?+4; Z; 0 t3; t3 t1
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+9; sp ?+5; t1 Z; Z 0; Z
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+6; sp ?+2; ?+2 0 __multr; . ?;
   t1; ax t1
   c4 sp
   t2; t3; bp t2; c6 t2; t2 t3
   ?+23; ?+21; ?+24; t3 Z; Z ?+10; Z ?+8
   Z ?+11; Z; 0; t1 Z; Z 0; Z

   t2; t1; bp t2; dec t2; t2 t1
   t2; t4; ?+11; t1 Z; Z ?+4; Z; 0 t2; t2 t4
   t1; t4 Z; Z t1; Z; c3 t1
   Z t1 l10
   t1; t2; bp t1; c6 t1; t1 t2
   t1; t3; ?+11; t2 Z; Z ?+4; Z; 0 t1; t1 t3
   ax; t3 ax
   Z Z end__mul
l10:

   t1; t2; bp t1; c6 t1; t1 t2
   t1; t3; ?+11; t2 Z; Z ?+4; Z; 0 t1; t1 t3
   t2; t3 t2
   ax; t2 ax
   Z Z end__mul

end__mul:
   ?+8; sp ?+4; t4; 0 t4; inc sp
   ?+8; sp ?+4; t3; 0 t3; inc sp
   ?+8; sp ?+4; t2; 0 t2; inc sp
   ?+8; sp ?+4; t1; 0 t1; inc sp
   sp; bp sp
   ?+8; sp ?+4; bp; 0 bp; inc sp
   ?+8; sp ?+4; ?+7; 0 ?+3; Z Z 0

_main:
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+6; sp ?+2; bp 0
   bp; sp bp
   c5 sp
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+6; sp ?+2; t1 0
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+6; sp ?+2; t2 0
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+6; sp ?+2; t3 0

   t1; t2; bp t1; c5 t1; t1 t2
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+9; sp ?+5; t2 Z; Z 0; Z
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+9; sp ?+5; c6 Z; Z 0; Z
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+9; sp ?+5; c8 Z; Z 0; Z
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+6; sp ?+2; ?+2 0 __divMod; . ?;
   t2; ax t2
   c2 sp
   t1; t3; bp t1; dec t1; t1 t3
   ?+23; ?+21; ?+24; t3 Z; Z ?+10; Z ?+8
   Z ?+11; Z; 0; t2 Z; Z 0; Z

   t1; t2; bp t1; dec t1; t1 t2
   t1; t3; ?+11; t2 Z; Z ?+4; Z; 0 t1; t1 t3
   t2; t1; c9 t2; t3 t2; t2 t1
   t1 (-1)

   t1; t2; bp t1; c5 t1; t1 t2
   t1; t3; ?+11; t2 Z; Z ?+4; Z; 0 t1; t1 t3
   t2; t1; c9 t2; t3 t2; t2 t1
   t1 (-1)

   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+9; sp ?+5; c10 Z; Z 0; Z
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+9; sp ?+5; c11 Z; Z 0; Z
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+6; sp ?+2; ?+2 0 __mul; . ?;
   t1; ax t1
   c4 sp
   t1 (-1)

   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+9; sp ?+5; c12 Z; Z 0; Z
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+9; sp ?+5; c13 Z; Z 0; Z
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+6; sp ?+2; ?+2 0 __mul; . ?;
   t1; ax t1
   c4 sp
   t1 (-1)

   ?+8; sp ?+4; t3; 0 t3; inc sp
   ?+8; sp ?+4; t2; 0 t2; inc sp
   ?+8; sp ?+4; t1; 0 t1; inc sp
   sp; bp sp
   ?+8; sp ?+4; bp; 0 bp; inc sp
   ?+8; sp ?+4; ?+7; 0 ?+3; Z Z 0

sqmain:
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+6; sp ?+2; ?+2 0 _main; . ?; inc sp

   Z Z (-1)

. c1:-2 c4:-3 c2:-4 c13:-6 c12:-9 c3:0 c8:10 c11:11 c5:2 c6:3 c7:4 c9:48 c10:5

. t1:0 t2:0 t3:0 t4:0 t5:0

. inc:-1 Z:0 dec:1 ax:0 bp:0 sp:-sp

Root (ex064.hsq:51)
   Function:4 [_divMod] (ex064.hsq:1)
      Keyword [int] (ex064.hsq:1)
      Param-type-list (ex064.hsq:1)
         Stackvar:-2 [a] (ex064.hsq:1)
         Stackvar:-3 [b] (ex064.hsq:1)
         Stackvar:-4 [j] (ex064.hsq:1)
      Block (ex064.hsq:2)
         Keyword-statement [if] (ex064.hsq:3)
            Relational [<] (ex064.hsq:3)
               Unary [*] (ex064.hsq:3) a:1
                  Additive [+] (ex064.hsq:3) a:1
                     Variable [@bp] (ex064.hsq:3) a:1
                     Const [-2] (ex064.hsq:3) a:1
               Unary [*] (ex064.hsq:3) b:1
                  Additive [+] (ex064.hsq:3) b:1
                     Variable [@bp] (ex064.hsq:3) b:1
                     Const [-3] (ex064.hsq:3) b:1
            Block (ex064.hsq:3)
               Assignment [=] (ex064.hsq:3)
                  Unary [*] (ex064.hsq:3)
                     Unary [*] (ex064.hsq:3) j:1
                        Additive [+] (ex064.hsq:3) j:1
                           Variable [@bp] (ex064.hsq:3) j:1
                           Const [-4] (ex064.hsq:3) j:1
                  Unary [*] (ex064.hsq:3) a:1
                     Additive [+] (ex064.hsq:3) a:1
                        Variable [@bp] (ex064.hsq:3) a:1
                        Const [-2] (ex064.hsq:3) a:1
               Keyword-statement [return] (ex064.hsq:3)
                  Const [0] (ex064.hsq:3)
         Declaration (ex064.hsq:5)
            Keyword [int] (ex064.hsq:5)
            Declarator [=] (ex064.hsq:5)
               Stackvar:1 [b1] (ex064.hsq:5)
               Unary [*] (ex064.hsq:5) b:1
                  Additive [+] (ex064.hsq:5) b:1
                     Variable [@bp] (ex064.hsq:5) b:1
                     Const [-3] (ex064.hsq:5) b:1
            Declarator [=] (ex064.hsq:5)
               Stackvar:2 [i] (ex064.hsq:5)
               Const [1] (ex064.hsq:5)
            Declarator [0] (ex064.hsq:5)
               Stackvar:3 [bp] (ex064.hsq:5)
            Declarator [0] (ex064.hsq:5)
               Stackvar:4 [ip] (ex064.hsq:5)
         Label-statement [next] (ex064.hsq:7)
            Assignment [=] (ex064.hsq:8)
               Unary [*] (ex064.hsq:8) bp:5
                  Additive [+] (ex064.hsq:8) bp:5
                     Variable [@bp] (ex064.hsq:8) bp:5
                     Const [3] (ex064.hsq:8) bp:5
               Unary [*] (ex064.hsq:8) b1:5
                  Additive [+] (ex064.hsq:8) b1:5
                     Variable [@bp] (ex064.hsq:8) b1:5
                     Const [1] (ex064.hsq:8) b1:5
         Assignment [=] (ex064.hsq:8)
            Unary [*] (ex064.hsq:8) ip:5
               Additive [+] (ex064.hsq:8) ip:5
                  Variable [@bp] (ex064.hsq:8) ip:5
                  Const [4] (ex064.hsq:8) ip:5
            Unary [*] (ex064.hsq:8) i:5
               Additive [+] (ex064.hsq:8) i:5
                  Variable [@bp] (ex064.hsq:8) i:5
                  Const [2] (ex064.hsq:8) i:5
         Assignment [=] (ex064.hsq:9)
            Unary [*] (ex064.hsq:9) b1:5
               Additive [+] (ex064.hsq:9) b1:5
                  Variable [@bp] (ex064.hsq:9) b1:5
                  Const [1] (ex064.hsq:9) b1:5
            Additive [+] (ex064.hsq:9)
               Unary [*] (ex064.hsq:9) b1:5
                  Additive [+] (ex064.hsq:9) b1:5
                     Variable [@bp] (ex064.hsq:9) b1:5
                     Const [1] (ex064.hsq:9) b1:5
               Unary [*] (ex064.hsq:9) b1:5
                  Additive [+] (ex064.hsq:9) b1:5
                     Variable [@bp] (ex064.hsq:9) b1:5
                     Const [1] (ex064.hsq:9) b1:5
         Assignment [=] (ex064.hsq:9)
            Unary [*] (ex064.hsq:9) i:5
               Additive [+] (ex064.hsq:9) i:5
                  Variable [@bp] (ex064.hsq:9) i:5
                  Const [2] (ex064.hsq:9) i:5
            Additive [+] (ex064.hsq:9)
               Unary [*] (ex064.hsq:9) i:5
                  Additive [+] (ex064.hsq:9) i:5
                     Variable [@bp] (ex064.hsq:9) i:5
                     Const [2] (ex064.hsq:9) i:5
               Unary [*] (ex064.hsq:9) i:5
                  Additive [+] (ex064.hsq:9) i:5
                     Variable [@bp] (ex064.hsq:9) i:5
                     Const [2] (ex064.hsq:9) i:5
         Keyword-statement [if] (ex064.hsq:11)
            Relational [<] (ex064.hsq:11)
               Unary [*] (ex064.hsq:11) a:1
                  Additive [+] (ex064.hsq:11) a:1
                     Variable [@bp] (ex064.hsq:11) a:1
                     Const [-2] (ex064.hsq:11) a:1
               Unary [*] (ex064.hsq:11) b1:5
                  Additive [+] (ex064.hsq:11) b1:5
                     Variable [@bp] (ex064.hsq:11) b1:5
                     Const [1] (ex064.hsq:11) b1:5
            Keyword-statement [return] (ex064.hsq:12)
               Additive [+] (ex064.hsq:12)
                  Unary [*] (ex064.hsq:12) ip:5
                     Additive [+] (ex064.hsq:12) ip:5
                        Variable [@bp] (ex064.hsq:12) ip:5
                        Const [4] (ex064.hsq:12) ip:5
                  Postfix [(] (ex064.hsq:12)
                     Label [_divMod] (ex064.hsq:12) _divMod:1
                     Expression-list (ex064.hsq:12)
                        Additive [-] (ex064.hsq:12)
                           Unary [*] (ex064.hsq:12) a:1
                              Additive [+] (ex064.hsq:12) a:1
                                 Variable [@bp] (ex064.hsq:12) a:1
                                 Const [-2] (ex064.hsq:12) a:1
                           Unary [*] (ex064.hsq:12) bp:5
                              Additive [+] (ex064.hsq:12) bp:5
                                 Variable [@bp] (ex064.hsq:12) bp:5
                                 Const [3] (ex064.hsq:12) bp:5
                        Unary [*] (ex064.hsq:12) b:1
                           Additive [+] (ex064.hsq:12) b:1
                              Variable [@bp] (ex064.hsq:12) b:1
                              Const [-3] (ex064.hsq:12) b:1
                        Unary [*] (ex064.hsq:12) j:1
                           Additive [+] (ex064.hsq:12) j:1
                              Variable [@bp] (ex064.hsq:12) j:1
                              Const [-4] (ex064.hsq:12) j:1
         Keyword-statement [goto] (ex064.hsq:14)
            Label [next] (ex064.hsq:14) next:7
   Function:3 [_multr] (ex064.hsq:18)
      Keyword [int] (ex064.hsq:18)
      Param-type-list (ex064.hsq:18)
         Stackvar:-2 [a] (ex064.hsq:18)
         Stackvar:-3 [b] (ex064.hsq:18)
      Block (ex064.hsq:19)
         Keyword-statement [if] (ex064.hsq:20)
            Relational [<] (ex064.hsq:20)
               Unary [*] (ex064.hsq:20) b:18
                  Additive [+] (ex064.hsq:20) b:18
                     Variable [@bp] (ex064.hsq:20) b:18
                     Const [-3] (ex064.hsq:20) b:18
               Const [1] (ex064.hsq:20)
            Keyword-statement [return] (ex064.hsq:20)
               Const [0] (ex064.hsq:20)
         Keyword-statement [if] (ex064.hsq:21)
            Relational [<] (ex064.hsq:21)
               Unary [*] (ex064.hsq:21) b:18
                  Additive [+] (ex064.hsq:21) b:18
                     Variable [@bp] (ex064.hsq:21) b:18
                     Const [-3] (ex064.hsq:21) b:18
               Const [2] (ex064.hsq:21)
            Keyword-statement [return] (ex064.hsq:21)
               Unary [*] (ex064.hsq:21) a:18
                  Additive [+] (ex064.hsq:21) a:18
                     Variable [@bp] (ex064.hsq:21) a:18
                     Const [-2] (ex064.hsq:21) a:18
         Declaration (ex064.hsq:22)
            Keyword [int] (ex064.hsq:22)
            Declarator [0] (ex064.hsq:22)
               Stackvar:1 [i] (ex064.hsq:22)
            Declarator [0] (ex064.hsq:22)
               Stackvar:2 [j] (ex064.hsq:22)
            Declarator [=] (ex064.hsq:22)
               Stackvar:3 [k] (ex064.hsq:22)
               Const [0] (ex064.hsq:22)
         Assignment [=] (ex064.hsq:23)
            Unary [*] (ex064.hsq:23) i:22
               Additive [+] (ex064.hsq:23) i:22
                  Variable [@bp] (ex064.hsq:23) i:22
                  Const [1] (ex064.hsq:23) i:22
            Postfix [(] (ex064.hsq:23)
               Label [_divMod] (ex064.hsq:23) _divMod:1
               Expression-list (ex064.hsq:23)
                  Unary [*] (ex064.hsq:23) b:18
                     Additive [+] (ex064.hsq:23) b:18
                        Variable [@bp] (ex064.hsq:23) b:18
                        Const [-3] (ex064.hsq:23) b:18
                  Const [2] (ex064.hsq:23)
                  Additive [+] (ex064.hsq:23) j:22
                     Variable [@bp] (ex064.hsq:23) j:22
                     Const [2] (ex064.hsq:23) j:22
         Keyword-statement [if] (ex064.hsq:25)
            Relational [<] (ex064.hsq:25)
               Unary [*] (ex064.hsq:25) j:22
                  Additive [+] (ex064.hsq:25) j:22
                     Variable [@bp] (ex064.hsq:25) j:22
                     Const [2] (ex064.hsq:25) j:22
               Const [1] (ex064.hsq:25)
            Statement [;] (ex064.hsq:25)
            Assignment [=] (ex064.hsq:25)
               Unary [*] (ex064.hsq:25) k:22
                  Additive [+] (ex064.hsq:25) k:22
                     Variable [@bp] (ex064.hsq:25) k:22
                     Const [3] (ex064.hsq:25) k:22
               Unary [*] (ex064.hsq:25) a:18
                  Additive [+] (ex064.hsq:25) a:18
                     Variable [@bp] (ex064.hsq:25) a:18
                     Const [-2] (ex064.hsq:25) a:18
         Keyword-statement [return] (ex064.hsq:26)
            Additive [+] (ex064.hsq:26)
               Postfix [(] (ex064.hsq:26)
                  Label [_multr] (ex064.hsq:26) _multr:18
                  Expression-list (ex064.hsq:26)
                     Additive [+] (ex064.hsq:26)
                        Unary [*] (ex064.hsq:26) a:18
                           Additive [+] (ex064.hsq:26) a:18
                              Variable [@bp] (ex064.hsq:26) a:18
                              Const [-2] (ex064.hsq:26) a:18
                        Unary [*] (ex064.hsq:26) a:18
                           Additive [+] (ex064.hsq:26) a:18
                              Variable [@bp] (ex064.hsq:26) a:18
                              Const [-2] (ex064.hsq:26) a:18
                     Unary [*] (ex064.hsq:26) i:22
                        Additive [+] (ex064.hsq:26) i:22
                           Variable [@bp] (ex064.hsq:26) i:22
                           Const [1] (ex064.hsq:26) i:22
               Unary [*] (ex064.hsq:26) k:22
                  Additive [+] (ex064.hsq:26) k:22
                     Variable [@bp] (ex064.hsq:26) k:22
                     Const [3] (ex064.hsq:26) k:22
   Function:3 [_mul] (ex064.hsq:29)
      Keyword [int] (ex064.hsq:29)
      Param-type-list (ex064.hsq:29)
         Stackvar:-2 [a] (ex064.hsq:29)
         Stackvar:-3 [b] (ex064.hsq:29)
      Block (ex064.hsq:30)
         Declaration (ex064.hsq:31)
            Keyword [int] (ex064.hsq:31)
            Declarator [=] (ex064.hsq:31)
               Stackvar:1 [s] (ex064.hsq:31)
               Const [1] (ex064.hsq:31)
         Keyword-statement [if] (ex064.hsq:32)
            Relational [<] (ex064.hsq:32)
               Unary [*] (ex064.hsq:32) a:29
                  Additive [+] (ex064.hsq:32) a:29
                     Variable [@bp] (ex064.hsq:32) a:29
                     Const [-2] (ex064.hsq:32) a:29
               Const [0] (ex064.hsq:32)
            Block (ex064.hsq:32)
               Assignment [=] (ex064.hsq:32)
                  Unary [*] (ex064.hsq:32) a:29
                     Additive [+] (ex064.hsq:32) a:29
                        Variable [@bp] (ex064.hsq:32) a:29
                        Const [-2] (ex064.hsq:32) a:29
                  Unary [-] (ex064.hsq:32)
                     Unary [*] (ex064.hsq:32) a:29
                        Additive [+] (ex064.hsq:32) a:29
                           Variable [@bp] (ex064.hsq:32) a:29
                           Const [-2] (ex064.hsq:32) a:29
               Assignment [=] (ex064.hsq:32)
                  Unary [*] (ex064.hsq:32) s:31
                     Additive [+] (ex064.hsq:32) s:31
                        Variable [@bp] (ex064.hsq:32) s:31
                        Const [1] (ex064.hsq:32) s:31
                  Unary [-] (ex064.hsq:32)
                     Unary [*] (ex064.hsq:32) s:31
                        Additive [+] (ex064.hsq:32) s:31
                           Variable [@bp] (ex064.hsq:32) s:31
                           Const [1] (ex064.hsq:32) s:31
         Keyword-statement [if] (ex064.hsq:33)
            Relational [<] (ex064.hsq:33)
               Unary [*] (ex064.hsq:33) b:29
                  Additive [+] (ex064.hsq:33) b:29
                     Variable [@bp] (ex064.hsq:33) b:29
                     Const [-3] (ex064.hsq:33) b:29
               Const [0] (ex064.hsq:33)
            Block (ex064.hsq:33)
               Assignment [=] (ex064.hsq:33)
                  Unary [*] (ex064.hsq:33) b:29
                     Additive [+] (ex064.hsq:33) b:29
                        Variable [@bp] (ex064.hsq:33) b:29
                        Const [-3] (ex064.hsq:33) b:29
                  Unary [-] (ex064.hsq:33)
                     Unary [*] (ex064.hsq:33) b:29
                        Additive [+] (ex064.hsq:33) b:29
                           Variable [@bp] (ex064.hsq:33) b:29
                           Const [-3] (ex064.hsq:33) b:29
               Assignment [=] (ex064.hsq:33)
                  Unary [*] (ex064.hsq:33) s:31
                     Additive [+] (ex064.hsq:33) s:31
                        Variable [@bp] (ex064.hsq:33) s:31
                        Const [1] (ex064.hsq:33) s:31
                  Unary [-] (ex064.hsq:33)
                     Unary [*] (ex064.hsq:33) s:31
                        Additive [+] (ex064.hsq:33) s:31
                           Variable [@bp] (ex064.hsq:33) s:31
                           Const [1] (ex064.hsq:33) s:31
         Keyword-statement [if] (ex064.hsq:34)
            Relational [<] (ex064.hsq:34)
               Unary [*] (ex064.hsq:34) a:29
                  Additive [+] (ex064.hsq:34) a:29
                     Variable [@bp] (ex064.hsq:34) a:29
                     Const [-2] (ex064.hsq:34) a:29
               Unary [*] (ex064.hsq:34) b:29
                  Additive [+] (ex064.hsq:34) b:29
                     Variable [@bp] (ex064.hsq:34) b:29
                     Const [-3] (ex064.hsq:34) b:29
            Block (ex064.hsq:34)
               Declaration (ex064.hsq:34)
                  Keyword [int] (ex064.hsq:34)
                  Declarator [=] (ex064.hsq:34)
                     Stackvar:2 [t] (ex064.hsq:34)
                     Unary [*] (ex064.hsq:34) a:29
                        Additive [+] (ex064.hsq:34) a:29
                           Variable [@bp] (ex064.hsq:34) a:29
                           Const [-2] (ex064.hsq:34) a:29
               Assignment [=] (ex064.hsq:34)
                  Unary [*] (ex064.hsq:34) a:29
                     Additive [+] (ex064.hsq:34) a:29
                        Variable [@bp] (ex064.hsq:34) a:29
                        Const [-2] (ex064.hsq:34) a:29
                  Unary [*] (ex064.hsq:34) b:29
                     Additive [+] (ex064.hsq:34) b:29
                        Variable [@bp] (ex064.hsq:34) b:29
                        Const [-3] (ex064.hsq:34) b:29
               Assignment [=] (ex064.hsq:34)
                  Unary [*] (ex064.hsq:34) b:29
                     Additive [+] (ex064.hsq:34) b:29
                        Variable [@bp] (ex064.hsq:34) b:29
                        Const [-3] (ex064.hsq:34) b:29
                  Unary [*] (ex064.hsq:34) t:34
                     Additive [+] (ex064.hsq:34) t:34
                        Variable [@bp] (ex064.hsq:34) t:34
                        Const [2] (ex064.hsq:34) t:34
         Declaration (ex064.hsq:35)
            Keyword [int] (ex064.hsq:35)
            Declarator [=] (ex064.hsq:35)
               Stackvar:3 [k] (ex064.hsq:35)
               Postfix [(] (ex064.hsq:35)
                  Label [_multr] (ex064.hsq:35) _multr:18
                  Expression-list (ex064.hsq:35)
                     Unary [*] (ex064.hsq:35) a:29
                        Additive [+] (ex064.hsq:35) a:29
                           Variable [@bp] (ex064.hsq:35) a:29
                           Const [-2] (ex064.hsq:35) a:29
                     Unary [*] (ex064.hsq:35) b:29
                        Additive [+] (ex064.hsq:35) b:29
                           Variable [@bp] (ex064.hsq:35) b:29
                           Const [-3] (ex064.hsq:35) b:29
         Keyword-statement [if] (ex064.hsq:36)
            Relational [>] (ex064.hsq:36)
               Unary [*] (ex064.hsq:36) s:31
                  Additive [+] (ex064.hsq:36) s:31
                     Variable [@bp] (ex064.hsq:36) s:31
                     Const [1] (ex064.hsq:36) s:31
               Const [0] (ex064.hsq:36)
            Keyword-statement [return] (ex064.hsq:36)
               Unary [*] (ex064.hsq:36) k:35
                  Additive [+] (ex064.hsq:36) k:35
                     Variable [@bp] (ex064.hsq:36) k:35
                     Const [3] (ex064.hsq:36) k:35
         Keyword-statement [return] (ex064.hsq:37)
            Unary [-] (ex064.hsq:37)
               Unary [*] (ex064.hsq:37) k:35
                  Additive [+] (ex064.hsq:37) k:35
                     Variable [@bp] (ex064.hsq:37) k:35
                     Const [3] (ex064.hsq:37) k:35
   Function:2 [main] (ex064.hsq:40)
      Keyword [int] (ex064.hsq:40)
      Param-type-list (ex064.hsq:40)
      Block (ex064.hsq:41)
         Declaration (ex064.hsq:42)
            Keyword [int] (ex064.hsq:42)
            Declarator [0] (ex064.hsq:42)
               Stackvar:1 [i] (ex064.hsq:42)
            Declarator [0] (ex064.hsq:42)
               Stackvar:2 [j] (ex064.hsq:42)
         Assignment [=] (ex064.hsq:44)
            Unary [*] (ex064.hsq:44) i:42
               Additive [+] (ex064.hsq:44) i:42
                  Variable [@bp] (ex064.hsq:44) i:42
                  Const [1] (ex064.hsq:44) i:42
            Postfix [(] (ex064.hsq:44)
               Label [_divMod] (ex064.hsq:44) _divMod:1
               Expression-list (ex064.hsq:44)
                  Const [10] (ex064.hsq:44)
                  Const [3] (ex064.hsq:44)
                  Additive [+] (ex064.hsq:44) j:42
                     Variable [@bp] (ex064.hsq:44) j:42
                     Const [2] (ex064.hsq:44) j:42
         OperatorIO [__out] (ex064.hsq:46)
            Additive [+] (ex064.hsq:46)
               Const [48] (ex064.hsq:46)
               Unary [*] (ex064.hsq:46) i:42
                  Additive [+] (ex064.hsq:46) i:42
                     Variable [@bp] (ex064.hsq:46) i:42
                     Const [1] (ex064.hsq:46) i:42
         OperatorIO [__out] (ex064.hsq:47)
            Additive [+] (ex064.hsq:47)
               Const [48] (ex064.hsq:47)
               Unary [*] (ex064.hsq:47) j:42
                  Additive [+] (ex064.hsq:47) j:42
                     Variable [@bp] (ex064.hsq:47) j:42
                     Const [2] (ex064.hsq:47) j:42
         OperatorIO [__out] (ex064.hsq:48)
            Postfix [(] (ex064.hsq:48)
               Label [_mul] (ex064.hsq:48) _mul:29
               Expression-list (ex064.hsq:48)
                  Const [11] (ex064.hsq:48)
                  Const [5] (ex064.hsq:48)
         OperatorIO [__out] (ex064.hsq:49)
            Postfix [(] (ex064.hsq:49)
               Label [_mul] (ex064.hsq:49) _mul:29
               Expression-list (ex064.hsq:49)
                  Const [-6] (ex064.hsq:49)
                  Const [-9] (ex064.hsq:49)