Test: mg_17_1

Higher SubleqErrorOutputSubleqITR
int a=10,b=4;
void main()
{
   __out a*++b;
}


2

   top:top top sqmain

.  _a:10 _b:4

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

   inc _b
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+9; sp ?+5; _b Z; Z 0; Z
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+9; sp ?+5; _a Z; Z 0; Z
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+6; sp ?+2; ?+2 0 __mul; . ?;
   t1; ax t1
   c1 sp
   t1 (-1)

   ?+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
   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
   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; c2 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 l1
   t1; t2; bp t1; c2 t1; t1 t2
   t1; t3; ?+11; t2 Z; Z ?+4; Z; 0 t1; t1 t3
   t2; t3 t2
   t3; t1; bp t3; c2 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

l1:

   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 l2
   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

l2:

   t1; t2; bp t1; c2 t1; t1 t2
   t1; t3; ?+11; t2 Z; Z ?+4; Z; 0 t1; t1 t3
   t2; t1; bp t2; c1 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 l3
   t1; t2; bp t1; c2 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

   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
   ?+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

l3:

   t1; t2; bp t1; c1 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; c2 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
   c1 sp
   t2; t3; bp t2; c5 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 l4
   t1; t2; bp t1; c5 t1; t1 t2
   t1; t3; ?+11; t2 Z; Z ?+4; Z; 0 t1; t1 t3
   ax; t3 ax
   Z Z end__mul
l4:

   t1; t2; bp t1; c5 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

__multr:
   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
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+6; sp ?+2; t4 0

   t1; t2; bp t1; c1 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 l5
   ax; c3 ax
   Z Z end__multr
l5:

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

   t1; t2; bp t1; c5 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; c4 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; c4 Z; Z 0; Z
   t2; t1; bp t2; c1 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
   c6 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; c4 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 l7
   Z Z l8
l7:
   t1; t2; bp t1; c2 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
l8:

   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; c2 t3; t3 t2
   t3; t1; ?+11; t2 Z; Z ?+4; Z; 0 t3; t3 t1
   t2; t3; bp t2; c2 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
   c1 sp
   t3; t4; bp t3; c5 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

__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; c2 t1; t1 t2
   t1; t3; ?+11; t2 Z; Z ?+4; Z; 0 t1; t1 t3
   t2; t1; bp t2; c1 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; c2 t1; t1 t2
   t1; t3; ?+11; t2 Z; Z ?+4; Z; 0 t1; t1 t3
   t2; t1; bp t2; c6 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

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; 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; c4 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; 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; 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; c4 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; t2; t3 t1; t4 t1; t1 t2
   t1; t4; bp t1; c4 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; c2 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 l10
   t1; t2; bp t1; c7 t1; t1 t2
   t1; t3; ?+11; t2 Z; Z ?+4; Z; 0 t1; t1 t3
   t2; t1; bp t2; c6 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; c1 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; c2 t2; t2 t1
   t2; t4; ?+11; t1 Z; Z ?+4; Z; 0 t2; t2 t4
   t1; t2; bp t1; c5 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
   c6 sp
   t5; t4; t3 t5; t2 t5; t5 t4
   ax; t4 ax
   Z Z end__divMod
l10:

   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

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

   Z Z (-1)

. c2:-2 c1:-3 c6:-4 c3:0 c4:2 c5:3 c7:4

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

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

Root (mg_17_1.hsq:6)
   Declaration (mg_17_1.hsq:1)
      Keyword [int] (mg_17_1.hsq:1)
      Declarator [=] (mg_17_1.hsq:1)
         Id [a] (mg_17_1.hsq:1)
         Const [10] (mg_17_1.hsq:1)
      Declarator [=] (mg_17_1.hsq:1)
         Id [b] (mg_17_1.hsq:1)
         Const [4] (mg_17_1.hsq:1)
   Function:0 [main] (mg_17_1.hsq:2)
      Keyword [void] (mg_17_1.hsq:2)
      Param-type-list (mg_17_1.hsq:2)
      Block (mg_17_1.hsq:3)
         OperatorIO [__out] (mg_17_1.hsq:4)
            Postfix [(] (mg_17_1.hsq:4)
               Label [_mul] (mg_17_1.hsq:4)
               Expression-list (mg_17_1.hsq:4)
                  Variable [a] (mg_17_1.hsq:4) =:1
                  Unary [++] (mg_17_1.hsq:4)
                     Variable [b] (mg_17_1.hsq:4) =:1
   Function:0 [_multr] (::_mul:1)
      Keyword [int] (::_mul:1)
      Param-type-list (::_mul:1)
         Stackvar:-2 [a] (::_mul:1)
         Stackvar:-3 [b] (::_mul:1)
   Function:3 [_mul] (::_mul:2)
      Keyword [int] (::_mul:2)
      Param-type-list (::_mul:2)
         Stackvar:-2 [a] (::_mul:2)
         Stackvar:-3 [b] (::_mul:2)
      Block (::_mul:3)
         Declaration (::_mul:4)
            Keyword [int] (::_mul:4)
            Declarator [=] (::_mul:4)
               Stackvar:1 [s] (::_mul:4)
               Const [1] (::_mul:4)
         Keyword-statement [if] (::_mul:5)
            Relational [<] (::_mul:5)
               Unary [*] (::_mul:5) a:2
                  Additive [+] (::_mul:5) a:2
                     Variable [@bp] (::_mul:5) a:2
                     Const [-2] (::_mul:5) a:2
               Const [0] (::_mul:5)
            Block (::_mul:5)
               Assignment [=] (::_mul:5)
                  Unary [*] (::_mul:5) a:2
                     Additive [+] (::_mul:5) a:2
                        Variable [@bp] (::_mul:5) a:2
                        Const [-2] (::_mul:5) a:2
                  Unary [-] (::_mul:5)
                     Unary [*] (::_mul:5) a:2
                        Additive [+] (::_mul:5) a:2
                           Variable [@bp] (::_mul:5) a:2
                           Const [-2] (::_mul:5) a:2
               Assignment [=] (::_mul:5)
                  Unary [*] (::_mul:5) s:4
                     Additive [+] (::_mul:5) s:4
                        Variable [@bp] (::_mul:5) s:4
                        Const [1] (::_mul:5) s:4
                  Unary [-] (::_mul:5)
                     Unary [*] (::_mul:5) s:4
                        Additive [+] (::_mul:5) s:4
                           Variable [@bp] (::_mul:5) s:4
                           Const [1] (::_mul:5) s:4
         Keyword-statement [if] (::_mul:6)
            Relational [<] (::_mul:6)
               Unary [*] (::_mul:6) b:2
                  Additive [+] (::_mul:6) b:2
                     Variable [@bp] (::_mul:6) b:2
                     Const [-3] (::_mul:6) b:2
               Const [0] (::_mul:6)
            Block (::_mul:6)
               Assignment [=] (::_mul:6)
                  Unary [*] (::_mul:6) b:2
                     Additive [+] (::_mul:6) b:2
                        Variable [@bp] (::_mul:6) b:2
                        Const [-3] (::_mul:6) b:2
                  Unary [-] (::_mul:6)
                     Unary [*] (::_mul:6) b:2
                        Additive [+] (::_mul:6) b:2
                           Variable [@bp] (::_mul:6) b:2
                           Const [-3] (::_mul:6) b:2
               Assignment [=] (::_mul:6)
                  Unary [*] (::_mul:6) s:4
                     Additive [+] (::_mul:6) s:4
                        Variable [@bp] (::_mul:6) s:4
                        Const [1] (::_mul:6) s:4
                  Unary [-] (::_mul:6)
                     Unary [*] (::_mul:6) s:4
                        Additive [+] (::_mul:6) s:4
                           Variable [@bp] (::_mul:6) s:4
                           Const [1] (::_mul:6) s:4
         Keyword-statement [if] (::_mul:7)
            Relational [<] (::_mul:7)
               Unary [*] (::_mul:7) a:2
                  Additive [+] (::_mul:7) a:2
                     Variable [@bp] (::_mul:7) a:2
                     Const [-2] (::_mul:7) a:2
               Unary [*] (::_mul:7) b:2
                  Additive [+] (::_mul:7) b:2
                     Variable [@bp] (::_mul:7) b:2
                     Const [-3] (::_mul:7) b:2
            Block (::_mul:7)
               Declaration (::_mul:7)
                  Keyword [int] (::_mul:7)
                  Declarator [=] (::_mul:7)
                     Stackvar:2 [t] (::_mul:7)
                     Unary [*] (::_mul:7) a:2
                        Additive [+] (::_mul:7) a:2
                           Variable [@bp] (::_mul:7) a:2
                           Const [-2] (::_mul:7) a:2
               Assignment [=] (::_mul:7)
                  Unary [*] (::_mul:7) a:2
                     Additive [+] (::_mul:7) a:2
                        Variable [@bp] (::_mul:7) a:2
                        Const [-2] (::_mul:7) a:2
                  Unary [*] (::_mul:7) b:2
                     Additive [+] (::_mul:7) b:2
                        Variable [@bp] (::_mul:7) b:2
                        Const [-3] (::_mul:7) b:2
               Assignment [=] (::_mul:7)
                  Unary [*] (::_mul:7) b:2
                     Additive [+] (::_mul:7) b:2
                        Variable [@bp] (::_mul:7) b:2
                        Const [-3] (::_mul:7) b:2
                  Unary [*] (::_mul:7) t:7
                     Additive [+] (::_mul:7) t:7
                        Variable [@bp] (::_mul:7) t:7
                        Const [2] (::_mul:7) t:7
         Declaration (::_mul:8)
            Keyword [int] (::_mul:8)
            Declarator [=] (::_mul:8)
               Stackvar:3 [k] (::_mul:8)
               Postfix [(] (::_mul:8)
                  Label [_multr] (::_mul:8)
                  Expression-list (::_mul:8)
                     Unary [*] (::_mul:8) a:2
                        Additive [+] (::_mul:8) a:2
                           Variable [@bp] (::_mul:8) a:2
                           Const [-2] (::_mul:8) a:2
                     Unary [*] (::_mul:8) b:2
                        Additive [+] (::_mul:8) b:2
                           Variable [@bp] (::_mul:8) b:2
                           Const [-3] (::_mul:8) b:2
         Keyword-statement [if] (::_mul:9)
            Relational [>] (::_mul:9)
               Unary [*] (::_mul:9) s:4
                  Additive [+] (::_mul:9) s:4
                     Variable [@bp] (::_mul:9) s:4
                     Const [1] (::_mul:9) s:4
               Const [0] (::_mul:9)
            Keyword-statement [return] (::_mul:9)
               Unary [*] (::_mul:9) k:8
                  Additive [+] (::_mul:9) k:8
                     Variable [@bp] (::_mul:9) k:8
                     Const [3] (::_mul:9) k:8
         Keyword-statement [return] (::_mul:10)
            Unary [-] (::_mul:10)
               Unary [*] (::_mul:10) k:8
                  Additive [+] (::_mul:10) k:8
                     Variable [@bp] (::_mul:10) k:8
                     Const [3] (::_mul:10) k:8
   Function:0 [_divMod] (::_multr:1)
      Keyword [int] (::_multr:1)
      Param-type-list (::_multr:1)
         Stackvar:-2 [a] (::_multr:1)
         Stackvar:-3 [b] (::_multr:1)
         Stackvar:-4 [m] (::_multr:1)
   Function:3 [_multr] (::_multr:2)
      Keyword [int] (::_multr:2)
      Param-type-list (::_multr:2)
         Stackvar:-2 [a] (::_multr:2)
         Stackvar:-3 [b] (::_multr:2)
      Block (::_multr:3)
         Keyword-statement [if] (::_multr:4)
            Relational [<] (::_multr:4)
               Unary [*] (::_multr:4) b:2
                  Additive [+] (::_multr:4) b:2
                     Variable [@bp] (::_multr:4) b:2
                     Const [-3] (::_multr:4) b:2
               Const [1] (::_multr:4)
            Keyword-statement [return] (::_multr:4)
               Const [0] (::_multr:4)
         Keyword-statement [if] (::_multr:5)
            Relational [<] (::_multr:5)
               Unary [*] (::_multr:5) b:2
                  Additive [+] (::_multr:5) b:2
                     Variable [@bp] (::_multr:5) b:2
                     Const [-3] (::_multr:5) b:2
               Const [2] (::_multr:5)
            Keyword-statement [return] (::_multr:5)
               Unary [*] (::_multr:5) a:2
                  Additive [+] (::_multr:5) a:2
                     Variable [@bp] (::_multr:5) a:2
                     Const [-2] (::_multr:5) a:2
         Declaration (::_multr:6)
            Keyword [int] (::_multr:6)
            Declarator [0] (::_multr:6)
               Stackvar:1 [i] (::_multr:6)
            Declarator [0] (::_multr:6)
               Stackvar:2 [j] (::_multr:6)
            Declarator [=] (::_multr:6)
               Stackvar:3 [k] (::_multr:6)
               Const [0] (::_multr:6)
         Assignment [=] (::_multr:7)
            Unary [*] (::_multr:7) i:6
               Additive [+] (::_multr:7) i:6
                  Variable [@bp] (::_multr:7) i:6
                  Const [1] (::_multr:7) i:6
            Postfix [(] (::_multr:7)
               Label [_divMod] (::_multr:7)
               Expression-list (::_multr:7)
                  Unary [*] (::_multr:7) b:2
                     Additive [+] (::_multr:7) b:2
                        Variable [@bp] (::_multr:7) b:2
                        Const [-3] (::_multr:7) b:2
                  Const [2] (::_multr:7)
                  Additive [+] (::_multr:7) j:6
                     Variable [@bp] (::_multr:7) j:6
                     Const [2] (::_multr:7) j:6
         Keyword-statement [if] (::_multr:9)
            Relational [<] (::_multr:9)
               Unary [*] (::_multr:9) j:6
                  Additive [+] (::_multr:9) j:6
                     Variable [@bp] (::_multr:9) j:6
                     Const [2] (::_multr:9) j:6
               Const [1] (::_multr:9)
            Statement [;] (::_multr:9)
            Assignment [=] (::_multr:9)
               Unary [*] (::_multr:9) k:6
                  Additive [+] (::_multr:9) k:6
                     Variable [@bp] (::_multr:9) k:6
                     Const [3] (::_multr:9) k:6
               Unary [*] (::_multr:9) a:2
                  Additive [+] (::_multr:9) a:2
                     Variable [@bp] (::_multr:9) a:2
                     Const [-2] (::_multr:9) a:2
         Keyword-statement [return] (::_multr:10)
            Additive [+] (::_multr:10)
               Postfix [(] (::_multr:10)
                  Label [_multr] (::_multr:10) _multr:2
                  Expression-list (::_multr:10)
                     Additive [+] (::_multr:10)
                        Unary [*] (::_multr:10) a:2
                           Additive [+] (::_multr:10) a:2
                              Variable [@bp] (::_multr:10) a:2
                              Const [-2] (::_multr:10) a:2
                        Unary [*] (::_multr:10) a:2
                           Additive [+] (::_multr:10) a:2
                              Variable [@bp] (::_multr:10) a:2
                              Const [-2] (::_multr:10) a:2
                     Unary [*] (::_multr:10) i:6
                        Additive [+] (::_multr:10) i:6
                           Variable [@bp] (::_multr:10) i:6
                           Const [1] (::_multr:10) i:6
               Unary [*] (::_multr:10) k:6
                  Additive [+] (::_multr:10) k:6
                     Variable [@bp] (::_multr:10) k:6
                     Const [3] (::_multr:10) k:6
   Function:4 [_divMod] (::_divMod:1)
      Keyword [int] (::_divMod:1)
      Param-type-list (::_divMod:1)
         Stackvar:-2 [a] (::_divMod:1)
         Stackvar:-3 [b] (::_divMod:1)
         Stackvar:-4 [j] (::_divMod:1)
      Block (::_divMod:2)
         Keyword-statement [if] (::_divMod:3)
            Relational [<] (::_divMod:3)
               Unary [*] (::_divMod:3) a:1
                  Additive [+] (::_divMod:3) a:1
                     Variable [@bp] (::_divMod:3) a:1
                     Const [-2] (::_divMod:3) a:1
               Unary [*] (::_divMod:3) b:1
                  Additive [+] (::_divMod:3) b:1
                     Variable [@bp] (::_divMod:3) b:1
                     Const [-3] (::_divMod:3) b:1
            Block (::_divMod:3)
               Assignment [=] (::_divMod:3)
                  Unary [*] (::_divMod:3)
                     Unary [*] (::_divMod:3) j:1
                        Additive [+] (::_divMod:3) j:1
                           Variable [@bp] (::_divMod:3) j:1
                           Const [-4] (::_divMod:3) j:1
                  Unary [*] (::_divMod:3) a:1
                     Additive [+] (::_divMod:3) a:1
                        Variable [@bp] (::_divMod:3) a:1
                        Const [-2] (::_divMod:3) a:1
               Keyword-statement [return] (::_divMod:3)
                  Const [0] (::_divMod:3)
         Declaration (::_divMod:5)
            Keyword [int] (::_divMod:5)
            Declarator [=] (::_divMod:5)
               Stackvar:1 [b1] (::_divMod:5)
               Unary [*] (::_divMod:5) b:1
                  Additive [+] (::_divMod:5) b:1
                     Variable [@bp] (::_divMod:5) b:1
                     Const [-3] (::_divMod:5) b:1
            Declarator [=] (::_divMod:5)
               Stackvar:2 [i] (::_divMod:5)
               Const [1] (::_divMod:5)
            Declarator [0] (::_divMod:5)
               Stackvar:3 [bp] (::_divMod:5)
            Declarator [0] (::_divMod:5)
               Stackvar:4 [ip] (::_divMod:5)
         Label-statement [next] (::_divMod:7)
            Assignment [=] (::_divMod:8)
               Unary [*] (::_divMod:8) bp:5
                  Additive [+] (::_divMod:8) bp:5
                     Variable [@bp] (::_divMod:8) bp:5
                     Const [3] (::_divMod:8) bp:5
               Unary [*] (::_divMod:8) b1:5
                  Additive [+] (::_divMod:8) b1:5
                     Variable [@bp] (::_divMod:8) b1:5
                     Const [1] (::_divMod:8) b1:5
         Assignment [=] (::_divMod:8)
            Unary [*] (::_divMod:8) ip:5
               Additive [+] (::_divMod:8) ip:5
                  Variable [@bp] (::_divMod:8) ip:5
                  Const [4] (::_divMod:8) ip:5
            Unary [*] (::_divMod:8) i:5
               Additive [+] (::_divMod:8) i:5
                  Variable [@bp] (::_divMod:8) i:5
                  Const [2] (::_divMod:8) i:5
         Assignment [=] (::_divMod:9)
            Unary [*] (::_divMod:9) b1:5
               Additive [+] (::_divMod:9) b1:5
                  Variable [@bp] (::_divMod:9) b1:5
                  Const [1] (::_divMod:9) b1:5
            Additive [+] (::_divMod:9)
               Unary [*] (::_divMod:9) b1:5
                  Additive [+] (::_divMod:9) b1:5
                     Variable [@bp] (::_divMod:9) b1:5
                     Const [1] (::_divMod:9) b1:5
               Unary [*] (::_divMod:9) b1:5
                  Additive [+] (::_divMod:9) b1:5
                     Variable [@bp] (::_divMod:9) b1:5
                     Const [1] (::_divMod:9) b1:5
         Assignment [=] (::_divMod:9)
            Unary [*] (::_divMod:9) i:5
               Additive [+] (::_divMod:9) i:5
                  Variable [@bp] (::_divMod:9) i:5
                  Const [2] (::_divMod:9) i:5
            Additive [+] (::_divMod:9)
               Unary [*] (::_divMod:9) i:5
                  Additive [+] (::_divMod:9) i:5
                     Variable [@bp] (::_divMod:9) i:5
                     Const [2] (::_divMod:9) i:5
               Unary [*] (::_divMod:9) i:5
                  Additive [+] (::_divMod:9) i:5
                     Variable [@bp] (::_divMod:9) i:5
                     Const [2] (::_divMod:9) i:5
         Keyword-statement [if] (::_divMod:11)
            Relational [<] (::_divMod:11)
               Unary [*] (::_divMod:11) a:1
                  Additive [+] (::_divMod:11) a:1
                     Variable [@bp] (::_divMod:11) a:1
                     Const [-2] (::_divMod:11) a:1
               Unary [*] (::_divMod:11) b1:5
                  Additive [+] (::_divMod:11) b1:5
                     Variable [@bp] (::_divMod:11) b1:5
                     Const [1] (::_divMod:11) b1:5
            Keyword-statement [return] (::_divMod:12)
               Additive [+] (::_divMod:12)
                  Unary [*] (::_divMod:12) ip:5
                     Additive [+] (::_divMod:12) ip:5
                        Variable [@bp] (::_divMod:12) ip:5
                        Const [4] (::_divMod:12) ip:5
                  Postfix [(] (::_divMod:12)
                     Label [_divMod] (::_divMod:12) _divMod:1
                     Expression-list (::_divMod:12)
                        Additive [-] (::_divMod:12)
                           Unary [*] (::_divMod:12) a:1
                              Additive [+] (::_divMod:12) a:1
                                 Variable [@bp] (::_divMod:12) a:1
                                 Const [-2] (::_divMod:12) a:1
                           Unary [*] (::_divMod:12) bp:5
                              Additive [+] (::_divMod:12) bp:5
                                 Variable [@bp] (::_divMod:12) bp:5
                                 Const [3] (::_divMod:12) bp:5
                        Unary [*] (::_divMod:12) b:1
                           Additive [+] (::_divMod:12) b:1
                              Variable [@bp] (::_divMod:12) b:1
                              Const [-3] (::_divMod:12) b:1
                        Unary [*] (::_divMod:12) j:1
                           Additive [+] (::_divMod:12) j:1
                              Variable [@bp] (::_divMod:12) j:1
                              Const [-4] (::_divMod:12) j:1
         Keyword-statement [goto] (::_divMod:14)
            Label [next] (::_divMod:14) next:7