
void main()
main: scope:[main]  from
  [0] phi()
  [1] call init_font_hex
  to:main::toD0181
main::toD0181: scope:[main]  from main
  [2] phi()
  to:main::@6
main::@6: scope:[main]  from main::toD0181
  [3] *D018 = main::toD0181_return#0
  to:main::@1
main::@1: scope:[main]  from main::@3 main::@6
  [4] main::screen#5 = phi( main::@3/main::screen#1, main::@6/SCREEN )
  [4] main::diff_sum#7 = phi( main::@3/main::diff_sum#1, main::@6/0 )
  [4] main::screen_ref#5 = phi( main::@3/main::screen_ref#1, main::@6/SCREEN_REF )
  [4] main::y#4 = phi( main::@3/main::y#1, main::@6/-$c )
  to:main::@2
main::@2: scope:[main]  from main::@1 main::@8
  [5] main::screen#2 = phi( main::@1/main::screen#5, main::@8/main::screen#1 )
  [5] main::diff_sum#2 = phi( main::@1/main::diff_sum#7, main::@8/main::diff_sum#1 )
  [5] main::screen_ref#2 = phi( main::@1/main::screen_ref#5, main::@8/main::screen_ref#1 )
  [5] main::x#2 = phi( main::@1/-$13, main::@8/main::x#1 )
  [6] main::xw#0 = (char)main::x#2 w= 0
  [7] main::yw#0 = (char)main::y#4 w= 0
  [8] atan2_16::x#0 = (int)main::xw#0
  [9] atan2_16::y#0 = (int)main::yw#0
  [10] call atan2_16
  [11] atan2_16::return#2 = atan2_16::return#0
  to:main::@7
main::@7: scope:[main]  from main::@2
  [12] main::angle_w#0 = atan2_16::return#2
  [13] main::$6 = main::angle_w#0 + $80
  [14] main::ang_w#0 = byte1  main::$6
  [15] diff::bb1#0 = main::ang_w#0
  [16] diff::bb2#0 = *main::screen_ref#2
  [17] call diff
  [18] diff::return#0 = diff::return#1
  to:main::@8
main::@8: scope:[main]  from main::@7
  [19] main::$8 = diff::return#0
  [20] main::diff_sum#1 = main::diff_sum#2 + main::$8
  [21] main::$9 = main::ang_w#0 - *main::screen_ref#2
  [22] *main::screen#2 = main::$9
  [23] main::screen#1 = ++ main::screen#2
  [24] main::screen_ref#1 = ++ main::screen_ref#2
  [25] main::x#1 = ++ main::x#2
  [26] if(main::x#1!=$15) goto main::@2
  to:main::@3
main::@3: scope:[main]  from main::@8
  [27] main::y#1 = ++ main::y#4
  [28] if(main::y#1!=$d) goto main::@1
  to:main::@4
main::@4: scope:[main]  from main::@3
  [29] print_uint::w#0 = main::diff_sum#1
  [30] call print_uint
  to:main::@5
main::@5: scope:[main]  from main::@4 main::@5
  [31] *main::col00 = ++ *main::col00
  to:main::@5

void init_font_hex(char *charset)
init_font_hex: scope:[init_font_hex]  from main
  [32] phi()
  to:init_font_hex::@1
init_font_hex::@1: scope:[init_font_hex]  from init_font_hex init_font_hex::@5
  [33] init_font_hex::c#6 = phi( init_font_hex/0, init_font_hex::@5/init_font_hex::c#1 )
  [33] init_font_hex::proto_hi#6 = phi( init_font_hex/FONT_HEX_PROTO, init_font_hex::@5/init_font_hex::proto_hi#1 )
  [33] init_font_hex::charset#5 = phi( init_font_hex/CHARSET, init_font_hex::@5/init_font_hex::charset#0 )
  to:init_font_hex::@2
init_font_hex::@2: scope:[init_font_hex]  from init_font_hex::@1 init_font_hex::@4
  [34] init_font_hex::c1#4 = phi( init_font_hex::@1/0, init_font_hex::@4/init_font_hex::c1#1 )
  [34] init_font_hex::proto_lo#4 = phi( init_font_hex::@1/FONT_HEX_PROTO, init_font_hex::@4/init_font_hex::proto_lo#1 )
  [34] init_font_hex::charset#2 = phi( init_font_hex::@1/init_font_hex::charset#5, init_font_hex::@4/init_font_hex::charset#0 )
  [35] *init_font_hex::charset#2 = 0
  to:init_font_hex::@3
init_font_hex::@3: scope:[init_font_hex]  from init_font_hex::@2 init_font_hex::@3
  [36] init_font_hex::idx#5 = phi( init_font_hex::@2/1, init_font_hex::@3/init_font_hex::idx#2 )
  [36] init_font_hex::i#2 = phi( init_font_hex::@2/0, init_font_hex::@3/init_font_hex::i#1 )
  [37] init_font_hex::$0 = init_font_hex::proto_hi#6[init_font_hex::i#2] << 4
  [38] init_font_hex::$1 = init_font_hex::proto_lo#4[init_font_hex::i#2] << 1
  [39] init_font_hex::$2 = init_font_hex::$0 | init_font_hex::$1
  [40] init_font_hex::charset#2[init_font_hex::idx#5] = init_font_hex::$2
  [41] init_font_hex::idx#2 = ++ init_font_hex::idx#5
  [42] init_font_hex::i#1 = ++ init_font_hex::i#2
  [43] if(init_font_hex::i#1!=5) goto init_font_hex::@3
  to:init_font_hex::@4
init_font_hex::@4: scope:[init_font_hex]  from init_font_hex::@3
  [44] init_font_hex::charset#2[init_font_hex::idx#2] = 0
  [45] init_font_hex::idx#3 = ++ init_font_hex::idx#2
  [46] init_font_hex::charset#2[init_font_hex::idx#3] = 0
  [47] init_font_hex::proto_lo#1 = init_font_hex::proto_lo#4 + 5
  [48] init_font_hex::charset#0 = init_font_hex::charset#2 + 8
  [49] init_font_hex::c1#1 = ++ init_font_hex::c1#4
  [50] if(init_font_hex::c1#1!=$10) goto init_font_hex::@2
  to:init_font_hex::@5
init_font_hex::@5: scope:[init_font_hex]  from init_font_hex::@4
  [51] init_font_hex::proto_hi#1 = init_font_hex::proto_hi#6 + 5
  [52] init_font_hex::c#1 = ++ init_font_hex::c#6
  [53] if(init_font_hex::c#1!=$10) goto init_font_hex::@1
  to:init_font_hex::@return
init_font_hex::@return: scope:[init_font_hex]  from init_font_hex::@5
  [54] return 
  to:@return

unsigned int atan2_16(int x , int y)
atan2_16: scope:[atan2_16]  from main::@2
  [55] if(atan2_16::y#0>=0) goto atan2_16::@1
  to:atan2_16::@2
atan2_16::@2: scope:[atan2_16]  from atan2_16
  [56] atan2_16::$2 = - atan2_16::y#0
  to:atan2_16::@3
atan2_16::@3: scope:[atan2_16]  from atan2_16::@1 atan2_16::@2
  [57] atan2_16::yi#0 = phi( atan2_16::@1/atan2_16::yi#16, atan2_16::@2/atan2_16::$2 )
  [58] if(atan2_16::x#0>=0) goto atan2_16::@4
  to:atan2_16::@5
atan2_16::@5: scope:[atan2_16]  from atan2_16::@3
  [59] atan2_16::$7 = - atan2_16::x#0
  to:atan2_16::@6
atan2_16::@6: scope:[atan2_16]  from atan2_16::@4 atan2_16::@5
  [60] atan2_16::xi#0 = phi( atan2_16::@4/atan2_16::xi#13, atan2_16::@5/atan2_16::$7 )
  to:atan2_16::@10
atan2_16::@10: scope:[atan2_16]  from atan2_16::@19 atan2_16::@6
  [61] atan2_16::angle#12 = phi( atan2_16::@19/atan2_16::angle#13, atan2_16::@6/0 )
  [61] atan2_16::i#2 = phi( atan2_16::@19/atan2_16::i#1, atan2_16::@6/0 )
  [61] atan2_16::xi#3 = phi( atan2_16::@19/atan2_16::xi#8, atan2_16::@6/atan2_16::xi#0 )
  [61] atan2_16::yi#3 = phi( atan2_16::@19/atan2_16::yi#8, atan2_16::@6/atan2_16::yi#0 )
  [62] if(atan2_16::yi#3!=0) goto atan2_16::@11
  to:atan2_16::@12
atan2_16::@12: scope:[atan2_16]  from atan2_16::@10 atan2_16::@19
  [63] atan2_16::angle#6 = phi( atan2_16::@10/atan2_16::angle#12, atan2_16::@19/atan2_16::angle#13 )
  [64] atan2_16::angle#1 = atan2_16::angle#6 >> 1
  [65] if(atan2_16::x#0>=0) goto atan2_16::@7
  to:atan2_16::@21
atan2_16::@21: scope:[atan2_16]  from atan2_16::@12
  [66] atan2_16::angle#4 = $8000 - atan2_16::angle#1
  to:atan2_16::@7
atan2_16::@7: scope:[atan2_16]  from atan2_16::@12 atan2_16::@21
  [67] atan2_16::angle#11 = phi( atan2_16::@12/atan2_16::angle#1, atan2_16::@21/atan2_16::angle#4 )
  [68] if(atan2_16::y#0>=0) goto atan2_16::@8
  to:atan2_16::@9
atan2_16::@9: scope:[atan2_16]  from atan2_16::@7
  [69] atan2_16::angle#5 = - atan2_16::angle#11
  to:atan2_16::@8
atan2_16::@8: scope:[atan2_16]  from atan2_16::@7 atan2_16::@9
  [70] atan2_16::return#0 = phi( atan2_16::@7/atan2_16::angle#11, atan2_16::@9/atan2_16::angle#5 )
  to:atan2_16::@return
atan2_16::@return: scope:[atan2_16]  from atan2_16::@8
  [71] return 
  to:@return
atan2_16::@11: scope:[atan2_16]  from atan2_16::@10
  [72] atan2_16::shift#5 = atan2_16::i#2
  [73] atan2_16::xd#10 = atan2_16::xi#3
  [74] atan2_16::yd#10 = atan2_16::yi#3
  to:atan2_16::@13
atan2_16::@13: scope:[atan2_16]  from atan2_16::@11 atan2_16::@14
  [75] atan2_16::yd#3 = phi( atan2_16::@11/atan2_16::yd#10, atan2_16::@14/atan2_16::yd#1 )
  [75] atan2_16::xd#3 = phi( atan2_16::@11/atan2_16::xd#10, atan2_16::@14/atan2_16::xd#1 )
  [75] atan2_16::shift#2 = phi( atan2_16::@11/atan2_16::shift#5, atan2_16::@14/atan2_16::shift#1 )
  [76] if(atan2_16::shift#2>=2) goto atan2_16::@14
  to:atan2_16::@15
atan2_16::@15: scope:[atan2_16]  from atan2_16::@13
  [77] if(0==atan2_16::shift#2) goto atan2_16::@17
  to:atan2_16::@16
atan2_16::@16: scope:[atan2_16]  from atan2_16::@15
  [78] atan2_16::xd#2 = atan2_16::xd#3 >> 1
  [79] atan2_16::yd#2 = atan2_16::yd#3 >> 1
  to:atan2_16::@17
atan2_16::@17: scope:[atan2_16]  from atan2_16::@15 atan2_16::@16
  [80] atan2_16::xd#5 = phi( atan2_16::@15/atan2_16::xd#3, atan2_16::@16/atan2_16::xd#2 )
  [80] atan2_16::yd#5 = phi( atan2_16::@15/atan2_16::yd#3, atan2_16::@16/atan2_16::yd#2 )
  [81] if(atan2_16::yi#3>=0) goto atan2_16::@18
  to:atan2_16::@20
atan2_16::@20: scope:[atan2_16]  from atan2_16::@17
  [82] atan2_16::xi#2 = atan2_16::xi#3 - atan2_16::yd#5
  [83] atan2_16::yi#2 = atan2_16::yi#3 + atan2_16::xd#5
  [84] atan2_16::$23 = atan2_16::i#2 << 1
  [85] atan2_16::angle#3 = atan2_16::angle#12 - CORDIC_ATAN2_ANGLES_16[atan2_16::$23]
  to:atan2_16::@19
atan2_16::@19: scope:[atan2_16]  from atan2_16::@18 atan2_16::@20
  [86] atan2_16::xi#8 = phi( atan2_16::@18/atan2_16::xi#1, atan2_16::@20/atan2_16::xi#2 )
  [86] atan2_16::angle#13 = phi( atan2_16::@18/atan2_16::angle#2, atan2_16::@20/atan2_16::angle#3 )
  [86] atan2_16::yi#8 = phi( atan2_16::@18/atan2_16::yi#1, atan2_16::@20/atan2_16::yi#2 )
  [87] atan2_16::i#1 = ++ atan2_16::i#2
  [88] if(atan2_16::i#1==CORDIC_ITERATIONS_16-1+1) goto atan2_16::@12
  to:atan2_16::@10
atan2_16::@18: scope:[atan2_16]  from atan2_16::@17
  [89] atan2_16::xi#1 = atan2_16::xi#3 + atan2_16::yd#5
  [90] atan2_16::yi#1 = atan2_16::yi#3 - atan2_16::xd#5
  [91] atan2_16::$22 = atan2_16::i#2 << 1
  [92] atan2_16::angle#2 = atan2_16::angle#12 + CORDIC_ATAN2_ANGLES_16[atan2_16::$22]
  to:atan2_16::@19
atan2_16::@14: scope:[atan2_16]  from atan2_16::@13
  [93] atan2_16::xd#1 = atan2_16::xd#3 >> 2
  [94] atan2_16::yd#1 = atan2_16::yd#3 >> 2
  [95] atan2_16::shift#1 = atan2_16::shift#2 - 2
  to:atan2_16::@13
atan2_16::@4: scope:[atan2_16]  from atan2_16::@3
  [96] atan2_16::xi#13 = atan2_16::x#0
  to:atan2_16::@6
atan2_16::@1: scope:[atan2_16]  from atan2_16
  [97] atan2_16::yi#16 = atan2_16::y#0
  to:atan2_16::@3

char diff(char bb1 , char bb2)
diff: scope:[diff]  from main::@7
  [98] if(diff::bb1#0<diff::bb2#0) goto diff::@1
  to:diff::@2
diff::@2: scope:[diff]  from diff
  [99] diff::$2 = diff::bb1#0 - diff::bb2#0
  to:diff::@3
diff::@3: scope:[diff]  from diff::@1 diff::@2
  [100] diff::return#1 = phi( diff::@1/diff::$4, diff::@2/diff::$2 )
  to:diff::@return
diff::@return: scope:[diff]  from diff::@3
  [101] return 
  to:@return
diff::@1: scope:[diff]  from diff
  [102] diff::$4 = diff::bb2#0 - diff::bb1#0
  to:diff::@3

void print_uint(unsigned int w)
print_uint: scope:[print_uint]  from main::@4
  [103] print_uchar::b#0 = byte1  print_uint::w#0
  [104] call print_uchar
  to:print_uint::@1
print_uint::@1: scope:[print_uint]  from print_uint
  [105] print_uchar::b#1 = byte0  print_uint::w#0
  [106] call print_uchar
  to:print_uint::@return
print_uint::@return: scope:[print_uint]  from print_uint::@1
  [107] return 
  to:@return

void print_uchar(char b)
print_uchar: scope:[print_uchar]  from print_uint print_uint::@1
  [108] print_char_cursor#26 = phi( print_uint/print_screen#0, print_uint::@1/print_char_cursor#20 )
  [108] print_uchar::b#2 = phi( print_uint/print_uchar::b#0, print_uint::@1/print_uchar::b#1 )
  [109] print_uchar::$0 = print_uchar::b#2 >> 4
  [110] print_char::ch#0 = print_hextab[print_uchar::$0]
  [111] call print_char
  to:print_uchar::@1
print_uchar::@1: scope:[print_uchar]  from print_uchar
  [112] print_uchar::$2 = print_uchar::b#2 & $f
  [113] print_char::ch#1 = print_hextab[print_uchar::$2]
  [114] call print_char
  to:print_uchar::@return
print_uchar::@return: scope:[print_uchar]  from print_uchar::@1
  [115] return 
  to:@return

void print_char(char ch)
print_char: scope:[print_char]  from print_uchar print_uchar::@1
  [116] print_char_cursor#19 = phi( print_uchar/print_char_cursor#26, print_uchar::@1/print_char_cursor#20 )
  [116] print_char::ch#2 = phi( print_uchar/print_char::ch#0, print_uchar::@1/print_char::ch#1 )
  [117] *print_char_cursor#19 = print_char::ch#2
  [118] print_char_cursor#20 = ++ print_char_cursor#19
  to:print_char::@return
print_char::@return: scope:[print_char]  from print_char
  [119] return 
  to:@return
