@begin: scope:[]  from
  [0] phi()
  to:@1
@1: scope:[]  from @begin
  [1] phi()
  [2] call main 
  to:@end
@end: scope:[]  from @1
  [3] phi()

(void()) main()
main: scope:[main]  from @1
  [4] *(&(struct Point) main::point1) ← memcpy(*(&(const struct Point) $0), struct Point, (const byte) SIZEOF_STRUCT_POINT)
  [5] *(&(struct Point) main::point2) ← memcpy(*(&(const struct Point) $1), struct Point, (const byte) SIZEOF_STRUCT_POINT)
  [6] (byte) print::p_x#0 ← *((byte*)&(struct Point) main::point1)
  [7] (byte) print::p_y#0 ← *((byte*)&(struct Point) main::point1+(const byte) OFFSET_STRUCT_POINT_Y)
  [8] call print 
  to:main::@1
main::@1: scope:[main]  from main
  [9] (byte) print::p_x#1 ← *((byte*)&(struct Point) main::point2)
  [10] (byte) print::p_y#1 ← *((byte*)&(struct Point) main::point2+(const byte) OFFSET_STRUCT_POINT_Y)
  [11] call print 
  to:main::@return
main::@return: scope:[main]  from main::@1
  [12] return 
  to:@return

(void()) print((byte) print::p_x , (byte) print::p_y)
print: scope:[print]  from main main::@1
  [13] (byte) print::p_y#2 ← phi( main/(byte) print::p_y#0 main::@1/(byte) print::p_y#1 )
  [13] (byte) print::p_x#2 ← phi( main/(byte) print::p_x#0 main::@1/(byte) print::p_x#1 )
  [14] *((const byte*) SCREEN) ← (byte) print::p_x#2
  [15] *((const byte*) SCREEN+(byte) 1) ← (byte) print::p_y#2
  to:print::@return
print::@return: scope:[print]  from print
  [16] return 
  to:@return
