
void main()
main: scope:[main]  from
  [0] print_circle::c_radius#0 = *((unsigned int *)&circle)
  [1] print_circle::c_center_x#0 = *((unsigned int *)(struct Point *)&circle+OFFSET_STRUCT_CIRCLE_CENTER)
  [2] print_circle::c_center_y#0 = *((unsigned int *)(struct Point *)&circle+OFFSET_STRUCT_CIRCLE_CENTER+OFFSET_STRUCT_POINT_Y)
  [3] print_circle::c_color#0 = *((char *)&circle+OFFSET_STRUCT_CIRCLE_COLOR)
  [4] call print_circle
  to:main::@1
main::@1: scope:[main]  from main
  [5] phi()
  [6] call print_ln
  to:main::@2
main::@2: scope:[main]  from main::@1
  [7] print_circle::c_radius#1 = *((unsigned int *)&c2)
  [8] print_circle::c_center_x#1 = *((unsigned int *)(struct Point *)&c2+OFFSET_STRUCT_CIRCLE_CENTER)
  [9] print_circle::c_center_y#1 = *((unsigned int *)(struct Point *)&c2+OFFSET_STRUCT_CIRCLE_CENTER+OFFSET_STRUCT_POINT_Y)
  [10] print_circle::c_color#1 = *((char *)&c2+OFFSET_STRUCT_CIRCLE_COLOR)
  [11] call print_circle
  to:main::@return
main::@return: scope:[main]  from main::@2
  [12] return 
  to:@return

void print_circle(unsigned int c_radius , unsigned int c_center_x , unsigned int c_center_y , char c_color)
print_circle: scope:[print_circle]  from main main::@2
  [13] print_circle::c_color#2 = phi( main/print_circle::c_color#0, main::@2/print_circle::c_color#1 )
  [13] print_circle::c_center_y#2 = phi( main/print_circle::c_center_y#0, main::@2/print_circle::c_center_y#1 )
  [13] print_circle::c_center_x#2 = phi( main/print_circle::c_center_x#0, main::@2/print_circle::c_center_x#1 )
  [13] print_circle::c_radius#2 = phi( main/print_circle::c_radius#0, main::@2/print_circle::c_radius#1 )
  [13] screen_line#61 = phi( main/(char *) 1024+(unsigned int)$28*$a, main::@2/screen_line#25 )
  [14] call print_str
  to:print_circle::@1
print_circle::@1: scope:[print_circle]  from print_circle
  [15] print_uint::i#0 = print_circle::c_radius#2
  [16] call print_uint
  to:print_circle::@2
print_circle::@2: scope:[print_circle]  from print_circle::@1
  [17] phi()
  [18] call print_str
  to:print_circle::@3
print_circle::@3: scope:[print_circle]  from print_circle::@2
  [19] print_uint::i#1 = print_circle::c_center_x#2
  [20] call print_uint
  to:print_circle::@4
print_circle::@4: scope:[print_circle]  from print_circle::@3
  [21] phi()
  [22] call print_str
  to:print_circle::@5
print_circle::@5: scope:[print_circle]  from print_circle::@4
  [23] print_uint::i#2 = print_circle::c_center_y#2
  [24] call print_uint
  to:print_circle::@6
print_circle::@6: scope:[print_circle]  from print_circle::@5
  [25] phi()
  [26] call print_str
  to:print_circle::@7
print_circle::@7: scope:[print_circle]  from print_circle::@6
  [27] print_uchar::c#0 = print_circle::c_color#2
  [28] call print_uchar
  to:print_circle::@return
print_circle::@return: scope:[print_circle]  from print_circle::@7
  [29] return 
  to:@return

void print_ln()
print_ln: scope:[print_ln]  from main::@1 print_char::@1
  [30] screen_line#56 = phi( main::@1/screen_line#24, print_char::@1/screen_line#53 )
  [31] screen_line#25 = screen_line#56 + $28
  to:print_ln::@return
print_ln::@return: scope:[print_ln]  from print_ln
  [32] return 
  to:@return

void print_str(char *str)
print_str: scope:[print_str]  from print_circle print_circle::@2 print_circle::@4 print_circle::@6
  [33] screen_line#68 = phi( print_circle/screen_line#61, print_circle::@2/screen_line#24, print_circle::@4/screen_line#24, print_circle::@6/screen_line#24 )
  [33] screen_idx#68 = phi( print_circle/0, print_circle::@2/screen_idx#25, print_circle::@4/screen_idx#25, print_circle::@6/screen_idx#25 )
  [33] print_str::str#8 = phi( print_circle/print_circle::str, print_circle::@2/print_circle::str1, print_circle::@4/print_circle::str2, print_circle::@6/print_circle::str3 )
  to:print_str::@1
print_str::@1: scope:[print_str]  from print_str print_str::@3
  [34] screen_line#22 = phi( print_str/screen_line#68, print_str::@3/screen_line#24 )
  [34] screen_idx#22 = phi( print_str/screen_idx#68, print_str::@3/screen_idx#25 )
  [34] print_str::str#5 = phi( print_str/print_str::str#8, print_str::@3/print_str::str#4 )
  [35] if(0!=*print_str::str#5) goto print_str::@2
  to:print_str::@return
print_str::@return: scope:[print_str]  from print_str::@1
  [36] return 
  to:@return
print_str::@2: scope:[print_str]  from print_str::@1
  [37] print_char::c#6 = *print_str::str#5
  [38] call print_char
  to:print_str::@3
print_str::@3: scope:[print_str]  from print_str::@2
  [39] print_str::str#4 = ++ print_str::str#5
  to:print_str::@1

void print_uint(unsigned int i)
print_uint: scope:[print_uint]  from print_circle::@1 print_circle::@3 print_circle::@5
  [40] print_uint::i#3 = phi( print_circle::@1/print_uint::i#0, print_circle::@3/print_uint::i#1, print_circle::@5/print_uint::i#2 )
  [41] print_uint::$0 = byte1  print_uint::i#3
  [42] print_uint::$1 = print_uint::$0 >> 4
  [43] print_char::c#0 = HEX[print_uint::$1]
  [44] call print_char
  to:print_uint::@1
print_uint::@1: scope:[print_uint]  from print_uint
  [45] print_uint::$3 = byte1  print_uint::i#3
  [46] print_uint::$4 = print_uint::$3 & $f
  [47] print_char::c#1 = HEX[print_uint::$4]
  [48] call print_char
  to:print_uint::@2
print_uint::@2: scope:[print_uint]  from print_uint::@1
  [49] print_uint::$6 = byte0  print_uint::i#3
  [50] print_uint::$7 = print_uint::$6 >> 4
  [51] print_char::c#2 = HEX[print_uint::$7]
  [52] call print_char
  to:print_uint::@3
print_uint::@3: scope:[print_uint]  from print_uint::@2
  [53] print_uint::$9 = byte0  print_uint::i#3
  [54] print_uint::$10 = print_uint::$9 & $f
  [55] print_char::c#3 = HEX[print_uint::$10]
  [56] call print_char
  to:print_uint::@return
print_uint::@return: scope:[print_uint]  from print_uint::@3
  [57] return 
  to:@return

void print_uchar(char c)
print_uchar: scope:[print_uchar]  from print_circle::@7
  [58] print_uchar::$0 = print_uchar::c#0 >> 4
  [59] print_char::c#4 = HEX[print_uchar::$0]
  [60] call print_char
  to:print_uchar::@1
print_uchar::@1: scope:[print_uchar]  from print_uchar
  [61] print_uchar::$2 = print_uchar::c#0 & $f
  [62] print_char::c#5 = HEX[print_uchar::$2]
  [63] call print_char
  to:print_uchar::@return
print_uchar::@return: scope:[print_uchar]  from print_uchar::@1
  [64] return 
  to:@return

void print_char(char c)
print_char: scope:[print_char]  from print_str::@2 print_uchar print_uchar::@1 print_uint print_uint::@1 print_uint::@2 print_uint::@3
  [65] screen_idx#54 = phi( print_str::@2/screen_idx#22, print_uchar/screen_idx#22, print_uchar::@1/screen_idx#25, print_uint/screen_idx#22, print_uint::@1/screen_idx#25, print_uint::@2/screen_idx#25, print_uint::@3/screen_idx#25 )
  [65] screen_line#53 = phi( print_str::@2/screen_line#22, print_uchar/screen_line#22, print_uchar::@1/screen_line#24, print_uint/screen_line#22, print_uint::@1/screen_line#24, print_uint::@2/screen_line#24, print_uint::@3/screen_line#24 )
  [65] print_char::c#7 = phi( print_str::@2/print_char::c#6, print_uchar/print_char::c#4, print_uchar::@1/print_char::c#5, print_uint/print_char::c#0, print_uint::@1/print_char::c#1, print_uint::@2/print_char::c#2, print_uint::@3/print_char::c#3 )
  [66] screen_line#53[screen_idx#54] = print_char::c#7
  [67] screen_idx#23 = ++ screen_idx#54
  [68] if(screen_idx#23!=$28) goto print_char::@return
  to:print_char::@1
print_char::@1: scope:[print_char]  from print_char
  [69] phi()
  [70] call print_ln
  to:print_char::@return
print_char::@return: scope:[print_char]  from print_char print_char::@1
  [71] screen_line#24 = phi( print_char/screen_line#53, print_char::@1/screen_line#25 )
  [71] screen_idx#25 = phi( print_char/screen_idx#23, print_char::@1/0 )
  [72] return 
  to:@return
