
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::@1
main::@1: scope:[main]  from main::toD0181
  [3] *D018 = main::toD0181_return#0
  [4] call clock_start
  to:main::@3
main::@3: scope:[main]  from main::@1
  [5] phi()
  [6] call init_dist_screen
  to:main::@4
main::@4: scope:[main]  from main::@3
  [7] phi()
  [8] call clock
  [9] clock::return#2 = clock::return#0
  to:main::@5
main::@5: scope:[main]  from main::@4
  [10] main::$4 = clock::return#2
  [11] main::cyclecount#0 = main::$4 - CLOCKS_PER_INIT
  [12] print_ulong_at::dw#0 = main::cyclecount#0
  [13] call print_ulong_at
  to:main::toD0182
main::toD0182: scope:[main]  from main::@5
  [14] phi()
  to:main::@2
main::@2: scope:[main]  from main::toD0182
  [15] *D018 = main::toD0182_return#0
  to:main::@return
main::@return: scope:[main]  from main::@2
  [16] return 
  to:@return

void init_font_hex(char *charset)
init_font_hex: scope:[init_font_hex]  from main
  [17] phi()
  to:init_font_hex::@1
init_font_hex::@1: scope:[init_font_hex]  from init_font_hex init_font_hex::@5
  [18] init_font_hex::c#6 = phi( init_font_hex/0, init_font_hex::@5/init_font_hex::c#1 )
  [18] init_font_hex::proto_hi#6 = phi( init_font_hex/FONT_HEX_PROTO, init_font_hex::@5/init_font_hex::proto_hi#1 )
  [18] 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
  [19] init_font_hex::c1#4 = phi( init_font_hex::@1/0, init_font_hex::@4/init_font_hex::c1#1 )
  [19] init_font_hex::proto_lo#4 = phi( init_font_hex::@1/FONT_HEX_PROTO, init_font_hex::@4/init_font_hex::proto_lo#1 )
  [19] init_font_hex::charset#2 = phi( init_font_hex::@1/init_font_hex::charset#5, init_font_hex::@4/init_font_hex::charset#0 )
  [20] *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
  [21] init_font_hex::idx#5 = phi( init_font_hex::@2/1, init_font_hex::@3/init_font_hex::idx#2 )
  [21] init_font_hex::i#2 = phi( init_font_hex::@2/0, init_font_hex::@3/init_font_hex::i#1 )
  [22] init_font_hex::$0 = init_font_hex::proto_hi#6[init_font_hex::i#2] << 4
  [23] init_font_hex::$1 = init_font_hex::proto_lo#4[init_font_hex::i#2] << 1
  [24] init_font_hex::$2 = init_font_hex::$0 | init_font_hex::$1
  [25] init_font_hex::charset#2[init_font_hex::idx#5] = init_font_hex::$2
  [26] init_font_hex::idx#2 = ++ init_font_hex::idx#5
  [27] init_font_hex::i#1 = ++ init_font_hex::i#2
  [28] 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
  [29] init_font_hex::charset#2[init_font_hex::idx#2] = 0
  [30] init_font_hex::idx#3 = ++ init_font_hex::idx#2
  [31] init_font_hex::charset#2[init_font_hex::idx#3] = 0
  [32] init_font_hex::proto_lo#1 = init_font_hex::proto_lo#4 + 5
  [33] init_font_hex::charset#0 = init_font_hex::charset#2 + 8
  [34] init_font_hex::c1#1 = ++ init_font_hex::c1#4
  [35] 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
  [36] init_font_hex::proto_hi#1 = init_font_hex::proto_hi#6 + 5
  [37] init_font_hex::c#1 = ++ init_font_hex::c#6
  [38] 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
  [39] return 
  to:@return

void clock_start()
clock_start: scope:[clock_start]  from main::@1
  [40] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = 0
  [41] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A
  [42] *CIA2_TIMER_AB = $ffffffff
  [43] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A
  [44] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START
  to:clock_start::@return
clock_start::@return: scope:[clock_start]  from clock_start
  [45] return 
  to:@return

void init_dist_screen(char *screen)
init_dist_screen: scope:[init_dist_screen]  from main::@3
  [46] phi()
  [47] call init_squares
  to:init_dist_screen::@1
init_dist_screen::@1: scope:[init_dist_screen]  from init_dist_screen init_dist_screen::@7
  [48] init_dist_screen::screen_bottomline#11 = phi( init_dist_screen/SCREEN+(unsigned int)$28*$18, init_dist_screen::@7/init_dist_screen::screen_bottomline#1 )
  [48] init_dist_screen::screen_topline#11 = phi( init_dist_screen/SCREEN, init_dist_screen::@7/init_dist_screen::screen_topline#1 )
  [48] init_dist_screen::y#10 = phi( init_dist_screen/0, init_dist_screen::@7/init_dist_screen::y#1 )
  [49] init_dist_screen::y2#0 = init_dist_screen::y#10 << 1
  [50] if(init_dist_screen::y2#0>=$18) goto init_dist_screen::@2
  to:init_dist_screen::@3
init_dist_screen::@3: scope:[init_dist_screen]  from init_dist_screen::@1
  [51] init_dist_screen::$5 = $18 - init_dist_screen::y2#0
  to:init_dist_screen::@4
init_dist_screen::@4: scope:[init_dist_screen]  from init_dist_screen::@2 init_dist_screen::@3
  [52] init_dist_screen::yd#0 = phi( init_dist_screen::@2/init_dist_screen::$7, init_dist_screen::@3/init_dist_screen::$5 )
  [53] sqr::val#0 = init_dist_screen::yd#0
  [54] call sqr
  [55] sqr::return#2 = sqr::return#0
  to:init_dist_screen::@11
init_dist_screen::@11: scope:[init_dist_screen]  from init_dist_screen::@4
  [56] init_dist_screen::yds#0 = sqr::return#2
  to:init_dist_screen::@5
init_dist_screen::@5: scope:[init_dist_screen]  from init_dist_screen::@11 init_dist_screen::@13
  [57] init_dist_screen::xb#2 = phi( init_dist_screen::@11/$27, init_dist_screen::@13/init_dist_screen::xb#1 )
  [57] init_dist_screen::x#2 = phi( init_dist_screen::@11/0, init_dist_screen::@13/init_dist_screen::x#1 )
  [58] if(init_dist_screen::x#2<$13+1) goto init_dist_screen::@6
  to:init_dist_screen::@7
init_dist_screen::@7: scope:[init_dist_screen]  from init_dist_screen::@5
  [59] init_dist_screen::screen_topline#1 = init_dist_screen::screen_topline#11 + $28
  [60] init_dist_screen::screen_bottomline#1 = init_dist_screen::screen_bottomline#11 - $28
  [61] init_dist_screen::y#1 = ++ init_dist_screen::y#10
  [62] if(init_dist_screen::y#1!=$d) goto init_dist_screen::@1
  to:init_dist_screen::@return
init_dist_screen::@return: scope:[init_dist_screen]  from init_dist_screen::@7
  [63] return 
  to:@return
init_dist_screen::@6: scope:[init_dist_screen]  from init_dist_screen::@5
  [64] init_dist_screen::x2#0 = init_dist_screen::x#2 << 1
  [65] if(init_dist_screen::x2#0>=$27) goto init_dist_screen::@8
  to:init_dist_screen::@9
init_dist_screen::@9: scope:[init_dist_screen]  from init_dist_screen::@6
  [66] init_dist_screen::$14 = $27 - init_dist_screen::x2#0
  to:init_dist_screen::@10
init_dist_screen::@10: scope:[init_dist_screen]  from init_dist_screen::@8 init_dist_screen::@9
  [67] init_dist_screen::xd#0 = phi( init_dist_screen::@8/init_dist_screen::$16, init_dist_screen::@9/init_dist_screen::$14 )
  [68] sqr::val#1 = init_dist_screen::xd#0
  [69] call sqr
  [70] sqr::return#3 = sqr::return#0
  to:init_dist_screen::@12
init_dist_screen::@12: scope:[init_dist_screen]  from init_dist_screen::@10
  [71] init_dist_screen::xds#0 = sqr::return#3
  [72] init_dist_screen::ds#0 = init_dist_screen::xds#0 + init_dist_screen::yds#0
  [73] sqrt::val#0 = init_dist_screen::ds#0
  [74] call sqrt
  [75] sqrt::return#2 = sqrt::return#0
  to:init_dist_screen::@13
init_dist_screen::@13: scope:[init_dist_screen]  from init_dist_screen::@12
  [76] init_dist_screen::d#0 = sqrt::return#2
  [77] init_dist_screen::screen_topline#11[init_dist_screen::x#2] = init_dist_screen::d#0
  [78] init_dist_screen::screen_bottomline#11[init_dist_screen::x#2] = init_dist_screen::d#0
  [79] init_dist_screen::screen_topline#11[init_dist_screen::xb#2] = init_dist_screen::d#0
  [80] init_dist_screen::screen_bottomline#11[init_dist_screen::xb#2] = init_dist_screen::d#0
  [81] init_dist_screen::x#1 = ++ init_dist_screen::x#2
  [82] init_dist_screen::xb#1 = -- init_dist_screen::xb#2
  to:init_dist_screen::@5
init_dist_screen::@8: scope:[init_dist_screen]  from init_dist_screen::@6
  [83] init_dist_screen::$16 = init_dist_screen::x2#0 - $27
  to:init_dist_screen::@10
init_dist_screen::@2: scope:[init_dist_screen]  from init_dist_screen::@1
  [84] init_dist_screen::$7 = init_dist_screen::y2#0 - $18
  to:init_dist_screen::@4

unsigned long clock()
clock: scope:[clock]  from main::@4
  [85] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = 0
  [86] clock::return#0 = $ffffffff - *CIA2_TIMER_AB
  [87] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START
  to:clock::@return
clock::@return: scope:[clock]  from clock
  [88] return 
  to:@return

void print_ulong_at(unsigned long dw , char *at)
print_ulong_at: scope:[print_ulong_at]  from main::@5
  [89] print_uint_at::w#0 = word1  print_ulong_at::dw#0
  [90] call print_uint_at
  to:print_ulong_at::@1
print_ulong_at::@1: scope:[print_ulong_at]  from print_ulong_at
  [91] print_uint_at::w#1 = word0  print_ulong_at::dw#0
  [92] call print_uint_at
  to:print_ulong_at::@return
print_ulong_at::@return: scope:[print_ulong_at]  from print_ulong_at::@1
  [93] return 
  to:@return

void init_squares()
init_squares: scope:[init_squares]  from init_dist_screen
  [94] phi()
  [95] call malloc
  to:init_squares::@1
init_squares::@1: scope:[init_squares]  from init_squares init_squares::@2
  [96] init_squares::squares#2 = phi( init_squares::@2/init_squares::squares#1, init_squares/SQUARES#0 )
  [96] init_squares::sqr#2 = phi( init_squares::@2/init_squares::sqr#1, init_squares/0 )
  [96] init_squares::i#2 = phi( init_squares::@2/init_squares::i#1, init_squares/0 )
  [97] if(init_squares::i#2<NUM_SQUARES#2) goto init_squares::@2
  to:init_squares::@return
init_squares::@return: scope:[init_squares]  from init_squares::@1
  [98] return 
  to:@return
init_squares::@2: scope:[init_squares]  from init_squares::@1
  [99] *init_squares::squares#2 = init_squares::sqr#2
  [100] init_squares::squares#1 = init_squares::squares#2 + SIZEOF_UNSIGNED_INT
  [101] init_squares::$3 = init_squares::i#2 << 1
  [102] init_squares::$4 = init_squares::$3 + 1
  [103] init_squares::sqr#1 = init_squares::sqr#2 + init_squares::$4
  [104] init_squares::i#1 = ++ init_squares::i#2
  to:init_squares::@1

unsigned int sqr(char val)
sqr: scope:[sqr]  from init_dist_screen::@10 init_dist_screen::@4
  [105] sqr::val#2 = phi( init_dist_screen::@10/sqr::val#1, init_dist_screen::@4/sqr::val#0 )
  [106] sqr::$0 = sqr::val#2 << 1
  [107] sqr::return#0 = SQUARES#0[sqr::$0]
  to:sqr::@return
sqr::@return: scope:[sqr]  from sqr
  [108] return 
  to:@return

char sqrt(unsigned int val)
sqrt: scope:[sqrt]  from init_dist_screen::@12
  [109] bsearch16u::key#0 = sqrt::val#0
  [110] call bsearch16u
  [111] bsearch16u::return#3 = bsearch16u::return#1
  to:sqrt::@1
sqrt::@1: scope:[sqrt]  from sqrt
  [112] sqrt::found#0 = bsearch16u::return#3
  [113] sqrt::$2 = sqrt::found#0 - SQUARES#0
  [114] sqrt::$1 = sqrt::$2 >> 1
  [115] sqrt::return#0 = (char)sqrt::$1
  to:sqrt::@return
sqrt::@return: scope:[sqrt]  from sqrt::@1
  [116] return 
  to:@return

void print_uint_at(unsigned int w , char *at)
print_uint_at: scope:[print_uint_at]  from print_ulong_at print_ulong_at::@1
  [117] print_uint_at::at#2 = phi( print_ulong_at/main::BASE_SCREEN, print_ulong_at::@1/main::BASE_SCREEN+4 )
  [117] print_uint_at::w#2 = phi( print_ulong_at/print_uint_at::w#0, print_ulong_at::@1/print_uint_at::w#1 )
  [118] print_uchar_at::b#0 = byte1  print_uint_at::w#2
  [119] print_uchar_at::at#0 = print_uint_at::at#2
  [120] call print_uchar_at
  to:print_uint_at::@1
print_uint_at::@1: scope:[print_uint_at]  from print_uint_at
  [121] print_uchar_at::b#1 = byte0  print_uint_at::w#2
  [122] print_uchar_at::at#1 = print_uint_at::at#2 + 2
  [123] call print_uchar_at
  to:print_uint_at::@return
print_uint_at::@return: scope:[print_uint_at]  from print_uint_at::@1
  [124] return 
  to:@return

void * malloc(unsigned int size)
malloc: scope:[malloc]  from init_squares
  [125] phi()
  to:malloc::@return
malloc::@return: scope:[malloc]  from malloc
  [126] return 
  to:@return

unsigned int * bsearch16u(unsigned int key , unsigned int *items , char num)
bsearch16u: scope:[bsearch16u]  from sqrt
  [127] phi()
  to:bsearch16u::@3
bsearch16u::@3: scope:[bsearch16u]  from bsearch16u bsearch16u::@7
  [128] bsearch16u::items#2 = phi( bsearch16u/SQUARES#0, bsearch16u::@7/bsearch16u::items#8 )
  [128] bsearch16u::num#3 = phi( bsearch16u/NUM_SQUARES#2, bsearch16u::@7/bsearch16u::num#0 )
  [129] if(bsearch16u::num#3>0) goto bsearch16u::@4
  to:bsearch16u::@5
bsearch16u::@5: scope:[bsearch16u]  from bsearch16u::@3
  [130] if(*bsearch16u::items#2<=bsearch16u::key#0) goto bsearch16u::@2
  to:bsearch16u::@1
bsearch16u::@1: scope:[bsearch16u]  from bsearch16u::@5
  [131] bsearch16u::$2 = bsearch16u::items#2 - 1*SIZEOF_UNSIGNED_INT
  to:bsearch16u::@2
bsearch16u::@2: scope:[bsearch16u]  from bsearch16u::@1 bsearch16u::@5
  [132] bsearch16u::return#2 = phi( bsearch16u::@5/bsearch16u::items#2, bsearch16u::@1/bsearch16u::$2 )
  to:bsearch16u::@return
bsearch16u::@return: scope:[bsearch16u]  from bsearch16u::@2 bsearch16u::@8
  [133] bsearch16u::return#1 = phi( bsearch16u::@2/bsearch16u::return#2, bsearch16u::@8/bsearch16u::return#7 )
  [134] return 
  to:@return
bsearch16u::@4: scope:[bsearch16u]  from bsearch16u::@3
  [135] bsearch16u::$6 = bsearch16u::num#3 >> 1
  [136] bsearch16u::$14 = bsearch16u::$6 << 1
  [137] bsearch16u::pivot#0 = bsearch16u::items#2 + bsearch16u::$14
  [138] bsearch16u::result#0 = (int)bsearch16u::key#0 - (int)*bsearch16u::pivot#0
  [139] if(bsearch16u::result#0!=0) goto bsearch16u::@6
  to:bsearch16u::@8
bsearch16u::@8: scope:[bsearch16u]  from bsearch16u::@4
  [140] bsearch16u::return#7 = bsearch16u::pivot#0
  to:bsearch16u::@return
bsearch16u::@6: scope:[bsearch16u]  from bsearch16u::@4
  [141] if(bsearch16u::result#0<=0) goto bsearch16u::@7
  to:bsearch16u::@9
bsearch16u::@9: scope:[bsearch16u]  from bsearch16u::@6
  [142] bsearch16u::items#0 = bsearch16u::pivot#0 + 1*SIZEOF_UNSIGNED_INT
  [143] bsearch16u::num#1 = -- bsearch16u::num#3
  to:bsearch16u::@7
bsearch16u::@7: scope:[bsearch16u]  from bsearch16u::@6 bsearch16u::@9
  [144] bsearch16u::items#8 = phi( bsearch16u::@9/bsearch16u::items#0, bsearch16u::@6/bsearch16u::items#2 )
  [144] bsearch16u::num#5 = phi( bsearch16u::@9/bsearch16u::num#1, bsearch16u::@6/bsearch16u::num#3 )
  [145] bsearch16u::num#0 = bsearch16u::num#5 >> 1
  to:bsearch16u::@3

void print_uchar_at(char b , char *at)
print_uchar_at: scope:[print_uchar_at]  from print_uint_at print_uint_at::@1
  [146] print_uchar_at::at#2 = phi( print_uint_at/print_uchar_at::at#0, print_uint_at::@1/print_uchar_at::at#1 )
  [146] print_uchar_at::b#2 = phi( print_uint_at/print_uchar_at::b#0, print_uint_at::@1/print_uchar_at::b#1 )
  [147] print_uchar_at::$0 = print_uchar_at::b#2 >> 4
  [148] print_char_at::ch#0 = print_hextab[print_uchar_at::$0]
  [149] print_char_at::at#0 = print_uchar_at::at#2
  [150] call print_char_at
  to:print_uchar_at::@1
print_uchar_at::@1: scope:[print_uchar_at]  from print_uchar_at
  [151] print_uchar_at::$2 = print_uchar_at::b#2 & $f
  [152] print_char_at::at#1 = print_uchar_at::at#2 + 1
  [153] print_char_at::ch#1 = print_hextab[print_uchar_at::$2]
  [154] call print_char_at
  to:print_uchar_at::@return
print_uchar_at::@return: scope:[print_uchar_at]  from print_uchar_at::@1
  [155] return 
  to:@return

void print_char_at(char ch , char *at)
print_char_at: scope:[print_char_at]  from print_uchar_at print_uchar_at::@1
  [156] print_char_at::at#2 = phi( print_uchar_at/print_char_at::at#0, print_uchar_at::@1/print_char_at::at#1 )
  [156] print_char_at::ch#2 = phi( print_uchar_at/print_char_at::ch#0, print_uchar_at::@1/print_char_at::ch#1 )
  [157] *print_char_at::at#2 = print_char_at::ch#2
  to:print_char_at::@return
print_char_at::@return: scope:[print_char_at]  from print_char_at
  [158] return 
  to:@return
