@begin: scope:[]  from
  [0] phi()
  to:@1
@1: scope:[]  from @begin
  [1] phi()
  [2] call main 
  to:@end
@end: scope:[]  from @1
  [3] phi()
main: scope:[main]  from @1
  [4] phi()
  [5] call bool_and 
  to:main::@1
main::@1: scope:[main]  from main
  [6] phi()
  [7] call bool_or 
  to:main::@2
main::@2: scope:[main]  from main::@1
  [8] phi()
  [9] call bool_not 
  to:main::@3
main::@3: scope:[main]  from main::@2
  [10] phi()
  [11] call bool_complex 
  to:main::@return
main::@return: scope:[main]  from main::@3
  [12] return 
  to:@return
bool_complex: scope:[bool_complex]  from main::@3
  [13] phi()
  to:bool_complex::@1
bool_complex::@1: scope:[bool_complex]  from bool_complex bool_complex::@3
  [14] (byte) bool_complex::i#2 ← phi( bool_complex/(byte) 0 bool_complex::@3/(byte) bool_complex::i#1 )
  [15] (byte~) bool_complex::$5 ← (byte) bool_complex::i#2 & (byte) 1
  [16] if((byte) bool_complex::i#2>=(byte) $a) goto bool_complex::@5
  to:bool_complex::@6
bool_complex::@6: scope:[bool_complex]  from bool_complex::@1
  [17] if((byte~) bool_complex::$5==(byte) 0) goto bool_complex::@2
  to:bool_complex::@5
bool_complex::@5: scope:[bool_complex]  from bool_complex::@1 bool_complex::@6
  [18] if((byte) bool_complex::i#2<(byte) $a) goto bool_complex::@4
  to:bool_complex::@7
bool_complex::@7: scope:[bool_complex]  from bool_complex::@5
  [19] if((byte~) bool_complex::$5==(byte) 0) goto bool_complex::@4
  to:bool_complex::@2
bool_complex::@2: scope:[bool_complex]  from bool_complex::@6 bool_complex::@7
  [20] *((const byte*) bool_complex::screen#0 + (byte) bool_complex::i#2) ← (byte) '*'
  to:bool_complex::@3
bool_complex::@3: scope:[bool_complex]  from bool_complex::@2 bool_complex::@4
  [21] (byte) bool_complex::i#1 ← ++ (byte) bool_complex::i#2
  [22] if((byte) bool_complex::i#1!=(byte) $15) goto bool_complex::@1
  to:bool_complex::@return
bool_complex::@return: scope:[bool_complex]  from bool_complex::@3
  [23] return 
  to:@return
bool_complex::@4: scope:[bool_complex]  from bool_complex::@5 bool_complex::@7
  [24] *((const byte*) bool_complex::screen#0 + (byte) bool_complex::i#2) ← (byte) ' '
  to:bool_complex::@3
bool_not: scope:[bool_not]  from main::@2
  [25] phi()
  to:bool_not::@1
bool_not::@1: scope:[bool_not]  from bool_not bool_not::@3
  [26] (byte) bool_not::i#2 ← phi( bool_not/(byte) 0 bool_not::@3/(byte) bool_not::i#1 )
  [27] (byte~) bool_not::$1 ← (byte) bool_not::i#2 & (byte) 1
  [28] if((byte) bool_not::i#2<(byte) $a) goto bool_not::@4
  to:bool_not::@5
bool_not::@5: scope:[bool_not]  from bool_not::@1
  [29] if((byte~) bool_not::$1==(byte) 0) goto bool_not::@4
  to:bool_not::@2
bool_not::@2: scope:[bool_not]  from bool_not::@5
  [30] *((const byte*) bool_not::screen#0 + (byte) bool_not::i#2) ← (byte) '*'
  to:bool_not::@3
bool_not::@3: scope:[bool_not]  from bool_not::@2 bool_not::@4
  [31] (byte) bool_not::i#1 ← ++ (byte) bool_not::i#2
  [32] if((byte) bool_not::i#1!=(byte) $15) goto bool_not::@1
  to:bool_not::@return
bool_not::@return: scope:[bool_not]  from bool_not::@3
  [33] return 
  to:@return
bool_not::@4: scope:[bool_not]  from bool_not::@1 bool_not::@5
  [34] *((const byte*) bool_not::screen#0 + (byte) bool_not::i#2) ← (byte) ' '
  to:bool_not::@3
bool_or: scope:[bool_or]  from main::@1
  [35] phi()
  to:bool_or::@1
bool_or::@1: scope:[bool_or]  from bool_or bool_or::@3
  [36] (byte) bool_or::i#2 ← phi( bool_or/(byte) 0 bool_or::@3/(byte) bool_or::i#1 )
  [37] (byte~) bool_or::$1 ← (byte) bool_or::i#2 & (byte) 1
  [38] if((byte) bool_or::i#2<(byte) $a) goto bool_or::@2
  to:bool_or::@5
bool_or::@5: scope:[bool_or]  from bool_or::@1
  [39] if((byte~) bool_or::$1==(byte) 0) goto bool_or::@2
  to:bool_or::@4
bool_or::@4: scope:[bool_or]  from bool_or::@5
  [40] *((const byte*) bool_or::screen#0 + (byte) bool_or::i#2) ← (byte) ' '
  to:bool_or::@3
bool_or::@3: scope:[bool_or]  from bool_or::@2 bool_or::@4
  [41] (byte) bool_or::i#1 ← ++ (byte) bool_or::i#2
  [42] if((byte) bool_or::i#1!=(byte) $15) goto bool_or::@1
  to:bool_or::@return
bool_or::@return: scope:[bool_or]  from bool_or::@3
  [43] return 
  to:@return
bool_or::@2: scope:[bool_or]  from bool_or::@1 bool_or::@5
  [44] *((const byte*) bool_or::screen#0 + (byte) bool_or::i#2) ← (byte) '*'
  to:bool_or::@3
bool_and: scope:[bool_and]  from main
  [45] phi()
  to:bool_and::@1
bool_and::@1: scope:[bool_and]  from bool_and bool_and::@3
  [46] (byte) bool_and::i#2 ← phi( bool_and/(byte) 0 bool_and::@3/(byte) bool_and::i#1 )
  [47] (byte~) bool_and::$1 ← (byte) bool_and::i#2 & (byte) 1
  [48] if((byte) bool_and::i#2>=(byte) $a) goto bool_and::@4
  to:bool_and::@5
bool_and::@5: scope:[bool_and]  from bool_and::@1
  [49] if((byte~) bool_and::$1==(byte) 0) goto bool_and::@2
  to:bool_and::@4
bool_and::@4: scope:[bool_and]  from bool_and::@1 bool_and::@5
  [50] *((const byte*) bool_and::screen#0 + (byte) bool_and::i#2) ← (byte) ' '
  to:bool_and::@3
bool_and::@3: scope:[bool_and]  from bool_and::@2 bool_and::@4
  [51] (byte) bool_and::i#1 ← ++ (byte) bool_and::i#2
  [52] if((byte) bool_and::i#1!=(byte) $15) goto bool_and::@1
  to:bool_and::@return
bool_and::@return: scope:[bool_and]  from bool_and::@3
  [53] return 
  to:@return
bool_and::@2: scope:[bool_and]  from bool_and::@5
  [54] *((const byte*) bool_and::screen#0 + (byte) bool_and::i#2) ← (byte) '*'
  to:bool_and::@3
