
__stackcall void fn3(char e)
fn3: scope:[fn3]  from
  [0] fn3::e#0 = stackidx(char,fn3::OFFSET_STACK_E)
  [1] SCREEN[fn3::e#0] = 'c'
  to:fn3::@return
fn3::@return: scope:[fn3]  from fn3
  [2] return 
  to:@return

__stackcall void fn2(char d)
fn2: scope:[fn2]  from
  [3] fn2::d#0 = stackidx(char,fn2::OFFSET_STACK_D)
  [4] SCREEN[fn2::d#0] = 'b'
  to:fn2::@return
fn2::@return: scope:[fn2]  from fn2
  [5] return 
  to:@return

__stackcall void fn1(char c)
fn1: scope:[fn1]  from
  [6] fn1::c#0 = stackidx(char,fn1::OFFSET_STACK_C)
  [7] SCREEN[fn1::c#0] = 'a'
  to:fn1::@return
fn1::@return: scope:[fn1]  from fn1
  [8] return 
  to:@return

void main()
main: scope:[main]  from
  [9] phi()
  to:main::@1
main::@1: scope:[main]  from main main::@4
  [10] main::i#2 = phi( main/0, main::@4/main::i#1 )
  [11] if(main::i#2<$a0) goto main::@2
  to:main::@return
main::@return: scope:[main]  from main::@1
  [12] return 
  to:@return
main::@2: scope:[main]  from main::@1
  [13] main::$1 = main::i#2 & 1
  [14] if(main::$1!=0) goto main::@3
  to:main::@7
main::@7: scope:[main]  from main::@2
  [15] stackpush(char) = main::i#2
  [16] callexecute fn3 
  sideeffect stackpullbytes(1)
  to:main::@4
main::@4: scope:[main]  from main::@6 main::@7
  [18] main::i#1 = ++ main::i#2
  to:main::@1
main::@3: scope:[main]  from main::@2
  [19] main::$5 = main::i#2 & 3
  [20] if(main::$5==1) goto main::@5
  to:main::@6
main::@5: scope:[main]  from main::@3
  [21] phi()
  to:main::@6
main::@6: scope:[main]  from main::@3 main::@5
  [22] main::f#3 = phi( main::@5/&fn1, main::@3/&fn2 )
  [23] stackpush(char) = main::i#2
  [24] callexecute *main::f#3 
  sideeffect stackpullbytes(1)
  to:main::@4
