
void __start()
__start: scope:[__start]  from
  [0] phi()
  to:__start::__init1
__start::__init1: scope:[__start]  from __start
  [1] idx = 0
  to:__start::@1
__start::@1: scope:[__start]  from __start::__init1
  [2] phi()
  [3] callexecute main 
  to:__start::@return
__start::@return: scope:[__start]  from __start::@1
  [4] return 
  to:@return

__stackcall void print(struct Point p)
print: scope:[print]  from
  [5] print::p = stackidx(struct Point,print::OFFSET_STACK_P)
  [6] SCREEN[idx] = *((char *)&print::p)
  [7] idx = ++ idx
  [8] SCREEN[idx] = *((char *)&print::p+OFFSET_STRUCT_POINT_Y)
  [9] idx = ++ idx
  to:print::@return
print::@return: scope:[print]  from print
  [10] return 
  to:@return

__stackcall struct Point get(char i)
get: scope:[get]  from
  [11] get::i#0 = stackidx(char,get::OFFSET_STACK_I)
  [12] get::$0 = get::i#0 >> 1
  [13] *((char *)&get::p) = get::i#0
  [14] *((char *)&get::p+OFFSET_STRUCT_POINT_Y) = get::$0
  [15] *(&get::return) = memcpy(*(&get::p), struct Point, SIZEOF_STRUCT_POINT)
  to:get::@return
get::@return: scope:[get]  from get
  [16] stackidx(struct Point,get::OFFSET_STACK_RETURN_0) = get::return
  [17] return 
  to:@return

__stackcall void main()
main: scope:[main]  from
  [18] phi()
  to:main::@1
main::@1: scope:[main]  from main main::@2
  [19] main::i#2 = phi( main/0, main::@2/main::i#1 )
  [20] if(main::i#2<5) goto main::@2
  to:main::@return
main::@return: scope:[main]  from main::@1
  [21] return 
  to:@return
main::@2: scope:[main]  from main::@1
  [22] stackpush(char) = main::i#2
  sideeffect stackpushbytes(1)
  [24] callexecute get 
  [25] main::p = stackpull(struct Point)
  [26] stackpush(struct Point) = main::p
  [27] callexecute print 
  sideeffect stackpullbytes(2)
  [29] main::i#1 = ++ main::i#2
  to:main::@1
