
void __start()
__start: scope:[__start]  from
  [0] phi()
  to:__start::__init1
__start::__init1: scope:[__start]  from __start
  [1] phi()
  [2] call malloc
  to:__start::@2
__start::@2: scope:[__start]  from __start::__init1
  [3] SCREEN_DIST#0 = (char *)(void *)malloc::mem#0
  [4] call malloc
  to:__start::@3
__start::@3: scope:[__start]  from __start::@2
  [5] SCREEN_ANGLE#0 = (char *)(void *)malloc::mem#0
  to:__start::@1
__start::@1: scope:[__start]  from __start::@3
  [6] phi()
  [7] call main
  to:__start::@return
__start::@return: scope:[__start]  from __start::@1
  [8] return 
  to:@return

void * malloc(unsigned int size)
malloc: scope:[malloc]  from __start::@2 __start::__init1 init_squares
  [9] malloc::size#3 = phi( __start::@2/$3e8, __start::__init1/$3e8, init_squares/NUM_SQUARES#2*SIZEOF_UNSIGNED_INT )
  [9] heap_head#13 = phi( __start::@2/heap_head#0, __start::__init1/HEAP_TOP, init_squares/heap_head#0 )
  [10] malloc::mem#0 = heap_head#13 - malloc::size#3
  [11] heap_head#0 = malloc::mem#0
  to:malloc::@return
malloc::@return: scope:[malloc]  from malloc
  [12] return 
  to:@return

void main()
main: scope:[main]  from __start::@1
  [13] init_dist_screen::screen#0 = SCREEN_DIST#0
  [14] call init_dist_screen
  to:main::@5
main::@5: scope:[main]  from main
  [15] init_angle_screen::screen#0 = SCREEN_ANGLE#0
  [16] call init_angle_screen
  to:main::@6
main::@6: scope:[main]  from main::@5
  [17] phi()
  [18] call make_plasma_charset
  to:main::@7
main::@7: scope:[main]  from main::@6
  [19] phi()
  [20] call memset
  to:main::@1
main::@1: scope:[main]  from main::@4 main::@7
  [21] sin_offset_y#10 = phi( main::@4/sin_offset_y#13, main::@7/0 )
  [21] sin_offset_x#10 = phi( main::@4/sin_offset_x#13, main::@7/0 )
  to:main::@2
main::@2: scope:[main]  from main::@1
  [22] phi()
  [23] call doplasma
  to:main::toD0181
main::toD0181: scope:[main]  from main::@2
  [24] phi()
  to:main::@3
main::@3: scope:[main]  from main::toD0181
  [25] *D018 = main::toD0181_return#0
  [26] call doplasma
  to:main::toD0182
main::toD0182: scope:[main]  from main::@3
  [27] phi()
  to:main::@4
main::@4: scope:[main]  from main::toD0182
  [28] *D018 = main::toD0182_return#0
  to:main::@1

void init_dist_screen(char *screen)
init_dist_screen: scope:[init_dist_screen]  from main
  [29] phi()
  [30] call init_squares
  to:init_dist_screen::@11
init_dist_screen::@11: scope:[init_dist_screen]  from init_dist_screen
  [31] init_dist_screen::screen_bottomline#0 = init_dist_screen::screen#0 + (unsigned int)$28*$18
  to:init_dist_screen::@1
init_dist_screen::@1: scope:[init_dist_screen]  from init_dist_screen::@11 init_dist_screen::@7
  [32] init_dist_screen::screen_bottomline#11 = phi( init_dist_screen::@11/init_dist_screen::screen_bottomline#0, init_dist_screen::@7/init_dist_screen::screen_bottomline#1 )
  [32] init_dist_screen::screen_topline#11 = phi( init_dist_screen::@11/init_dist_screen::screen#0, init_dist_screen::@7/init_dist_screen::screen_topline#1 )
  [32] init_dist_screen::y#10 = phi( init_dist_screen::@11/0, init_dist_screen::@7/init_dist_screen::y#1 )
  [33] init_dist_screen::y2#0 = init_dist_screen::y#10 << 1
  [34] 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
  [35] 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
  [36] init_dist_screen::yd#0 = phi( init_dist_screen::@2/init_dist_screen::$7, init_dist_screen::@3/init_dist_screen::$5 )
  [37] sqr::val#0 = init_dist_screen::yd#0
  [38] call sqr
  [39] sqr::return#2 = sqr::return#0
  to:init_dist_screen::@12
init_dist_screen::@12: scope:[init_dist_screen]  from init_dist_screen::@4
  [40] 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::@12 init_dist_screen::@14
  [41] init_dist_screen::xb#2 = phi( init_dist_screen::@12/$27, init_dist_screen::@14/init_dist_screen::xb#1 )
  [41] init_dist_screen::x#2 = phi( init_dist_screen::@12/0, init_dist_screen::@14/init_dist_screen::x#1 )
  [42] 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
  [43] init_dist_screen::screen_topline#1 = init_dist_screen::screen_topline#11 + $28
  [44] init_dist_screen::screen_bottomline#1 = init_dist_screen::screen_bottomline#11 - $28
  [45] init_dist_screen::y#1 = ++ init_dist_screen::y#10
  [46] 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
  [47] return 
  to:@return
init_dist_screen::@6: scope:[init_dist_screen]  from init_dist_screen::@5
  [48] init_dist_screen::x2#0 = init_dist_screen::x#2 << 1
  [49] 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
  [50] 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
  [51] init_dist_screen::xd#0 = phi( init_dist_screen::@8/init_dist_screen::$16, init_dist_screen::@9/init_dist_screen::$14 )
  [52] sqr::val#1 = init_dist_screen::xd#0
  [53] call sqr
  [54] sqr::return#3 = sqr::return#0
  to:init_dist_screen::@13
init_dist_screen::@13: scope:[init_dist_screen]  from init_dist_screen::@10
  [55] init_dist_screen::xds#0 = sqr::return#3
  [56] init_dist_screen::ds#0 = init_dist_screen::xds#0 + init_dist_screen::yds#0
  [57] sqrt::val#0 = init_dist_screen::ds#0
  [58] call sqrt
  [59] sqrt::return#2 = sqrt::return#0
  to:init_dist_screen::@14
init_dist_screen::@14: scope:[init_dist_screen]  from init_dist_screen::@13
  [60] init_dist_screen::d#0 = sqrt::return#2
  [61] init_dist_screen::screen_topline#11[init_dist_screen::x#2] = init_dist_screen::d#0
  [62] init_dist_screen::screen_bottomline#11[init_dist_screen::x#2] = init_dist_screen::d#0
  [63] init_dist_screen::screen_topline#11[init_dist_screen::xb#2] = init_dist_screen::d#0
  [64] init_dist_screen::screen_bottomline#11[init_dist_screen::xb#2] = init_dist_screen::d#0
  [65] init_dist_screen::x#1 = ++ init_dist_screen::x#2
  [66] 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
  [67] 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
  [68] init_dist_screen::$7 = init_dist_screen::y2#0 - $18
  to:init_dist_screen::@4

void init_angle_screen(char *screen)
init_angle_screen: scope:[init_angle_screen]  from main::@5
  [69] init_angle_screen::screen_bottomline#0 = init_angle_screen::screen#0 + (unsigned int)$28*$c
  [70] init_angle_screen::screen_topline#7 = init_angle_screen::screen_bottomline#0
  to:init_angle_screen::@1
init_angle_screen::@1: scope:[init_angle_screen]  from init_angle_screen init_angle_screen::@4
  [71] init_angle_screen::screen_bottomline#6 = phi( init_angle_screen/init_angle_screen::screen_bottomline#0, init_angle_screen::@4/init_angle_screen::screen_bottomline#1 )
  [71] init_angle_screen::screen_topline#6 = phi( init_angle_screen/init_angle_screen::screen_topline#7, init_angle_screen::@4/init_angle_screen::screen_topline#1 )
  [71] init_angle_screen::y#5 = phi( init_angle_screen/0, init_angle_screen::@4/init_angle_screen::y#1 )
  to:init_angle_screen::@2
init_angle_screen::@2: scope:[init_angle_screen]  from init_angle_screen::@1 init_angle_screen::@5
  [72] init_angle_screen::xb#2 = phi( init_angle_screen::@1/$27, init_angle_screen::@5/init_angle_screen::xb#1 )
  [72] init_angle_screen::x#2 = phi( init_angle_screen::@1/0, init_angle_screen::@5/init_angle_screen::x#1 )
  [73] if(init_angle_screen::x#2<$13+1) goto init_angle_screen::@3
  to:init_angle_screen::@4
init_angle_screen::@4: scope:[init_angle_screen]  from init_angle_screen::@2
  [74] init_angle_screen::screen_topline#1 = init_angle_screen::screen_topline#6 - $28
  [75] init_angle_screen::screen_bottomline#1 = init_angle_screen::screen_bottomline#6 + $28
  [76] init_angle_screen::y#1 = ++ init_angle_screen::y#5
  [77] if(init_angle_screen::y#1!=$d) goto init_angle_screen::@1
  to:init_angle_screen::@return
init_angle_screen::@return: scope:[init_angle_screen]  from init_angle_screen::@4
  [78] return 
  to:@return
init_angle_screen::@3: scope:[init_angle_screen]  from init_angle_screen::@2
  [79] init_angle_screen::$3 = init_angle_screen::x#2 << 1
  [80] init_angle_screen::$4 = $27 - init_angle_screen::$3
  [81] init_angle_screen::xw#0 = init_angle_screen::$4 w= 0
  [82] init_angle_screen::$6 = init_angle_screen::y#5 << 1
  [83] init_angle_screen::yw#0 = init_angle_screen::$6 w= 0
  [84] atan2_16::x#0 = (int)init_angle_screen::xw#0
  [85] atan2_16::y#0 = (int)init_angle_screen::yw#0
  [86] call atan2_16
  [87] atan2_16::return#2 = atan2_16::return#0
  to:init_angle_screen::@5
init_angle_screen::@5: scope:[init_angle_screen]  from init_angle_screen::@3
  [88] init_angle_screen::angle_w#0 = atan2_16::return#2
  [89] init_angle_screen::$9 = init_angle_screen::angle_w#0 + $80
  [90] init_angle_screen::ang_w#0 = byte1  init_angle_screen::$9
  [91] init_angle_screen::screen_bottomline#6[init_angle_screen::xb#2] = init_angle_screen::ang_w#0
  [92] init_angle_screen::$11 = - init_angle_screen::ang_w#0
  [93] init_angle_screen::screen_topline#6[init_angle_screen::xb#2] = init_angle_screen::$11
  [94] init_angle_screen::$12 = $80 + init_angle_screen::ang_w#0
  [95] init_angle_screen::screen_topline#6[init_angle_screen::x#2] = init_angle_screen::$12
  [96] init_angle_screen::$13 = $80 - init_angle_screen::ang_w#0
  [97] init_angle_screen::screen_bottomline#6[init_angle_screen::x#2] = init_angle_screen::$13
  [98] init_angle_screen::x#1 = ++ init_angle_screen::x#2
  [99] init_angle_screen::xb#1 = -- init_angle_screen::xb#2
  to:init_angle_screen::@2

void make_plasma_charset(char *charset)
make_plasma_charset: scope:[make_plasma_charset]  from main::@6
  [100] phi()
  to:make_plasma_charset::sid_rnd_init1
make_plasma_charset::sid_rnd_init1: scope:[make_plasma_charset]  from make_plasma_charset
  [101] *((unsigned int *)SID+OFFSET_STRUCT_MOS6581_SID_CH3_FREQ) = $ffff
  [102] *((char *)SID+OFFSET_STRUCT_MOS6581_SID_CH3_CONTROL) = SID_CONTROL_NOISE
  to:make_plasma_charset::@11
make_plasma_charset::@11: scope:[make_plasma_charset]  from make_plasma_charset::sid_rnd_init1
  [103] phi()
  [104] call print_cls
  to:make_plasma_charset::@1
make_plasma_charset::@1: scope:[make_plasma_charset]  from make_plasma_charset::@10 make_plasma_charset::@11
  [105] print_char_cursor#19 = phi( make_plasma_charset::@10/print_char_cursor#32, make_plasma_charset::@11/print_screen#0 )
  [105] make_plasma_charset::c#2 = phi( make_plasma_charset::@10/make_plasma_charset::c#1, make_plasma_charset::@11/0 )
  [106] if(make_plasma_charset::c#2<$100) goto make_plasma_charset::@2
  to:make_plasma_charset::@return
make_plasma_charset::@return: scope:[make_plasma_charset]  from make_plasma_charset::@1
  [107] return 
  to:@return
make_plasma_charset::@2: scope:[make_plasma_charset]  from make_plasma_charset::@1
  [108] make_plasma_charset::$3 = byte0  make_plasma_charset::c#2
  [109] make_plasma_charset::s#0 = SINTABLE[make_plasma_charset::$3]
  to:make_plasma_charset::@3
make_plasma_charset::@3: scope:[make_plasma_charset]  from make_plasma_charset::@2 make_plasma_charset::@6
  [110] make_plasma_charset::i#2 = phi( make_plasma_charset::@2/0, make_plasma_charset::@6/make_plasma_charset::i#1 )
  [111] if(make_plasma_charset::i#2<8) goto make_plasma_charset::@5
  to:make_plasma_charset::@4
make_plasma_charset::@4: scope:[make_plasma_charset]  from make_plasma_charset::@3
  [112] make_plasma_charset::$12 = make_plasma_charset::c#2 & 7
  [113] if(make_plasma_charset::$12!=0) goto make_plasma_charset::@10
  to:make_plasma_charset::@9
make_plasma_charset::@9: scope:[make_plasma_charset]  from make_plasma_charset::@4
  [114] phi()
  [115] call print_char
  to:make_plasma_charset::@10
make_plasma_charset::@10: scope:[make_plasma_charset]  from make_plasma_charset::@4 make_plasma_charset::@9
  [116] print_char_cursor#32 = phi( make_plasma_charset::@9/print_char_cursor#0, make_plasma_charset::@4/print_char_cursor#19 )
  [117] make_plasma_charset::c#1 = ++ make_plasma_charset::c#2
  to:make_plasma_charset::@1
make_plasma_charset::@5: scope:[make_plasma_charset]  from make_plasma_charset::@3 make_plasma_charset::@7
  [118] make_plasma_charset::b#2 = phi( make_plasma_charset::@3/0, make_plasma_charset::@7/make_plasma_charset::b#6 )
  [118] make_plasma_charset::ii#2 = phi( make_plasma_charset::@3/0, make_plasma_charset::@7/make_plasma_charset::ii#1 )
  [119] if(make_plasma_charset::ii#2<8) goto make_plasma_charset::sid_rnd1
  to:make_plasma_charset::@6
make_plasma_charset::@6: scope:[make_plasma_charset]  from make_plasma_charset::@5
  [120] make_plasma_charset::$10 = make_plasma_charset::c#2 << 3
  [121] make_plasma_charset::$11 = make_plasma_charset::$10 + make_plasma_charset::i#2
  [122] make_plasma_charset::$16 = CHARSET + make_plasma_charset::$11
  [123] *make_plasma_charset::$16 = make_plasma_charset::b#2
  [124] make_plasma_charset::i#1 = ++ make_plasma_charset::i#2
  to:make_plasma_charset::@3
make_plasma_charset::sid_rnd1: scope:[make_plasma_charset]  from make_plasma_charset::@5
  [125] make_plasma_charset::sid_rnd1_return#0 = *((char *)SID+OFFSET_STRUCT_MOS6581_SID_CH3_OSC)
  to:make_plasma_charset::@12
make_plasma_charset::@12: scope:[make_plasma_charset]  from make_plasma_charset::sid_rnd1
  [126] make_plasma_charset::$7 = make_plasma_charset::sid_rnd1_return#0 & $ff
  [127] if(make_plasma_charset::$7<=make_plasma_charset::s#0) goto make_plasma_charset::@7
  to:make_plasma_charset::@8
make_plasma_charset::@8: scope:[make_plasma_charset]  from make_plasma_charset::@12
  [128] make_plasma_charset::b#1 = make_plasma_charset::b#2 | make_plasma_charset::bittab[make_plasma_charset::ii#2]
  to:make_plasma_charset::@7
make_plasma_charset::@7: scope:[make_plasma_charset]  from make_plasma_charset::@12 make_plasma_charset::@8
  [129] make_plasma_charset::b#6 = phi( make_plasma_charset::@12/make_plasma_charset::b#2, make_plasma_charset::@8/make_plasma_charset::b#1 )
  [130] make_plasma_charset::ii#1 = ++ make_plasma_charset::ii#2
  to:make_plasma_charset::@5

void * memset(void *str , char c , unsigned int num)
memset: scope:[memset]  from main::@7 print_cls
  [131] memset::c#4 = phi( main::@7/BLACK, print_cls/' ' )
  [131] memset::str#3 = phi( main::@7/(void *)COLS, print_cls/(void *)print_screen#0 )
  to:memset::@1
memset::@1: scope:[memset]  from memset
  [132] memset::end#0 = (char *)memset::str#3 + $3e8
  [133] memset::dst#4 = (char *)memset::str#3
  to:memset::@2
memset::@2: scope:[memset]  from memset::@1 memset::@3
  [134] memset::dst#2 = phi( memset::@1/memset::dst#4, memset::@3/memset::dst#1 )
  [135] if(memset::dst#2!=memset::end#0) goto memset::@3
  to:memset::@return
memset::@return: scope:[memset]  from memset::@2
  [136] return 
  to:@return
memset::@3: scope:[memset]  from memset::@2
  [137] *memset::dst#2 = memset::c#4
  [138] memset::dst#1 = ++ memset::dst#2
  to:memset::@2

void doplasma(char *screen)
doplasma: scope:[doplasma]  from main::@2 main::@3
  [139] doplasma::screen#6 = phi( main::@2/SCREEN1, main::@3/SCREEN2 )
  [139] sin_offset_y#11 = phi( main::@2/sin_offset_y#10, main::@3/sin_offset_y#13 )
  [139] sin_offset_x#11 = phi( main::@2/sin_offset_x#10, main::@3/sin_offset_x#13 )
  [140] doplasma::angle#0 = SCREEN_ANGLE#0
  [141] doplasma::dist#0 = SCREEN_DIST#0
  [142] doplasma::sin_x#0 = SINTABLE + sin_offset_x#11
  [143] doplasma::sin_y#0 = SINTABLE + sin_offset_y#11
  to:doplasma::@1
doplasma::@1: scope:[doplasma]  from doplasma doplasma::@3
  [144] doplasma::y#4 = phi( doplasma/0, doplasma::@3/doplasma::y#1 )
  [144] doplasma::screen#5 = phi( doplasma/doplasma::screen#6, doplasma::@3/doplasma::screen#2 )
  [144] doplasma::dist#4 = phi( doplasma/doplasma::dist#0, doplasma::@3/doplasma::dist#1 )
  [144] doplasma::angle#4 = phi( doplasma/doplasma::angle#0, doplasma::@3/doplasma::angle#1 )
  to:doplasma::@2
doplasma::@2: scope:[doplasma]  from doplasma::@1 doplasma::@2
  [145] doplasma::x#2 = phi( doplasma::@1/0, doplasma::@2/doplasma::x#1 )
  [146] doplasma::$2 = doplasma::sin_x#0[doplasma::angle#4[doplasma::x#2]] + doplasma::sin_y#0[doplasma::dist#4[doplasma::x#2]]
  [147] doplasma::screen#5[doplasma::x#2] = doplasma::$2
  [148] doplasma::x#1 = ++ doplasma::x#2
  [149] if(doplasma::x#1!=$28) goto doplasma::@2
  to:doplasma::@3
doplasma::@3: scope:[doplasma]  from doplasma::@2
  [150] doplasma::screen#2 = doplasma::screen#5 + $28
  [151] doplasma::angle#1 = doplasma::angle#4 + $28
  [152] doplasma::dist#1 = doplasma::dist#4 + $28
  [153] doplasma::y#1 = ++ doplasma::y#4
  [154] if(doplasma::y#1!=$1a) goto doplasma::@1
  to:doplasma::@4
doplasma::@4: scope:[doplasma]  from doplasma::@3
  [155] sin_offset_x#13 = sin_offset_x#11 - 3
  [156] sin_offset_y#13 = sin_offset_y#11 - 7
  to:doplasma::@return
doplasma::@return: scope:[doplasma]  from doplasma::@4
  [157] return 
  to:@return

void init_squares()
init_squares: scope:[init_squares]  from init_dist_screen
  [158] phi()
  [159] call malloc
  to:init_squares::@3
init_squares::@3: scope:[init_squares]  from init_squares
  [160] SQUARES#0 = (void *)malloc::mem#0
  [161] init_squares::squares#0 = (unsigned int *)SQUARES#0
  to:init_squares::@1
init_squares::@1: scope:[init_squares]  from init_squares::@2 init_squares::@3
  [162] init_squares::squares#2 = phi( init_squares::@2/init_squares::squares#1, init_squares::@3/init_squares::squares#0 )
  [162] init_squares::sqr#2 = phi( init_squares::@2/init_squares::sqr#1, init_squares::@3/0 )
  [162] init_squares::i#2 = phi( init_squares::@2/init_squares::i#1, init_squares::@3/0 )
  [163] 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
  [164] return 
  to:@return
init_squares::@2: scope:[init_squares]  from init_squares::@1
  [165] *init_squares::squares#2 = init_squares::sqr#2
  [166] init_squares::squares#1 = init_squares::squares#2 + SIZEOF_UNSIGNED_INT
  [167] init_squares::$3 = init_squares::i#2 << 1
  [168] init_squares::$4 = init_squares::$3 + 1
  [169] init_squares::sqr#1 = init_squares::sqr#2 + init_squares::$4
  [170] 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
  [171] sqr::val#2 = phi( init_dist_screen::@10/sqr::val#1, init_dist_screen::@4/sqr::val#0 )
  [172] sqr::$0 = sqr::val#2 << 1
  [173] sqr::return#0 = ((unsigned int *)SQUARES#0)[sqr::$0]
  to:sqr::@return
sqr::@return: scope:[sqr]  from sqr
  [174] return 
  to:@return

char sqrt(unsigned int val)
sqrt: scope:[sqrt]  from init_dist_screen::@13
  [175] bsearch16u::key#0 = sqrt::val#0
  [176] bsearch16u::items#1 = (unsigned int *)SQUARES#0
  [177] call bsearch16u
  [178] bsearch16u::return#3 = bsearch16u::return#1
  to:sqrt::@1
sqrt::@1: scope:[sqrt]  from sqrt
  [179] sqrt::found#0 = bsearch16u::return#3
  [180] sqrt::$2 = sqrt::found#0 - (unsigned int *)SQUARES#0
  [181] sqrt::$1 = sqrt::$2 >> 1
  [182] sqrt::return#0 = (char)sqrt::$1
  to:sqrt::@return
sqrt::@return: scope:[sqrt]  from sqrt::@1
  [183] return 
  to:@return

unsigned int atan2_16(int x , int y)
atan2_16: scope:[atan2_16]  from init_angle_screen::@3
  [184] if(atan2_16::y#0>=0) goto atan2_16::@1
  to:atan2_16::@2
atan2_16::@2: scope:[atan2_16]  from atan2_16
  [185] atan2_16::$2 = - atan2_16::y#0
  to:atan2_16::@3
atan2_16::@3: scope:[atan2_16]  from atan2_16::@1 atan2_16::@2
  [186] atan2_16::yi#0 = phi( atan2_16::@1/atan2_16::yi#16, atan2_16::@2/atan2_16::$2 )
  [187] if(atan2_16::x#0>=0) goto atan2_16::@4
  to:atan2_16::@5
atan2_16::@5: scope:[atan2_16]  from atan2_16::@3
  [188] atan2_16::$7 = - atan2_16::x#0
  to:atan2_16::@6
atan2_16::@6: scope:[atan2_16]  from atan2_16::@4 atan2_16::@5
  [189] 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
  [190] atan2_16::angle#12 = phi( atan2_16::@19/atan2_16::angle#13, atan2_16::@6/0 )
  [190] atan2_16::i#2 = phi( atan2_16::@19/atan2_16::i#1, atan2_16::@6/0 )
  [190] atan2_16::xi#3 = phi( atan2_16::@19/atan2_16::xi#8, atan2_16::@6/atan2_16::xi#0 )
  [190] atan2_16::yi#3 = phi( atan2_16::@19/atan2_16::yi#8, atan2_16::@6/atan2_16::yi#0 )
  [191] 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
  [192] atan2_16::angle#6 = phi( atan2_16::@10/atan2_16::angle#12, atan2_16::@19/atan2_16::angle#13 )
  [193] atan2_16::angle#1 = atan2_16::angle#6 >> 1
  [194] if(atan2_16::x#0>=0) goto atan2_16::@7
  to:atan2_16::@21
atan2_16::@21: scope:[atan2_16]  from atan2_16::@12
  [195] 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
  [196] atan2_16::angle#11 = phi( atan2_16::@12/atan2_16::angle#1, atan2_16::@21/atan2_16::angle#4 )
  [197] if(atan2_16::y#0>=0) goto atan2_16::@8
  to:atan2_16::@9
atan2_16::@9: scope:[atan2_16]  from atan2_16::@7
  [198] 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
  [199] 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
  [200] return 
  to:@return
atan2_16::@11: scope:[atan2_16]  from atan2_16::@10
  [201] atan2_16::shift#5 = atan2_16::i#2
  [202] atan2_16::xd#10 = atan2_16::xi#3
  [203] 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
  [204] atan2_16::yd#3 = phi( atan2_16::@11/atan2_16::yd#10, atan2_16::@14/atan2_16::yd#1 )
  [204] atan2_16::xd#3 = phi( atan2_16::@11/atan2_16::xd#10, atan2_16::@14/atan2_16::xd#1 )
  [204] atan2_16::shift#2 = phi( atan2_16::@11/atan2_16::shift#5, atan2_16::@14/atan2_16::shift#1 )
  [205] if(atan2_16::shift#2>=2) goto atan2_16::@14
  to:atan2_16::@15
atan2_16::@15: scope:[atan2_16]  from atan2_16::@13
  [206] if(0==atan2_16::shift#2) goto atan2_16::@17
  to:atan2_16::@16
atan2_16::@16: scope:[atan2_16]  from atan2_16::@15
  [207] atan2_16::xd#2 = atan2_16::xd#3 >> 1
  [208] 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
  [209] atan2_16::xd#5 = phi( atan2_16::@15/atan2_16::xd#3, atan2_16::@16/atan2_16::xd#2 )
  [209] atan2_16::yd#5 = phi( atan2_16::@15/atan2_16::yd#3, atan2_16::@16/atan2_16::yd#2 )
  [210] if(atan2_16::yi#3>=0) goto atan2_16::@18
  to:atan2_16::@20
atan2_16::@20: scope:[atan2_16]  from atan2_16::@17
  [211] atan2_16::xi#2 = atan2_16::xi#3 - atan2_16::yd#5
  [212] atan2_16::yi#2 = atan2_16::yi#3 + atan2_16::xd#5
  [213] atan2_16::$23 = atan2_16::i#2 << 1
  [214] 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
  [215] atan2_16::xi#8 = phi( atan2_16::@18/atan2_16::xi#1, atan2_16::@20/atan2_16::xi#2 )
  [215] atan2_16::angle#13 = phi( atan2_16::@18/atan2_16::angle#2, atan2_16::@20/atan2_16::angle#3 )
  [215] atan2_16::yi#8 = phi( atan2_16::@18/atan2_16::yi#1, atan2_16::@20/atan2_16::yi#2 )
  [216] atan2_16::i#1 = ++ atan2_16::i#2
  [217] 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
  [218] atan2_16::xi#1 = atan2_16::xi#3 + atan2_16::yd#5
  [219] atan2_16::yi#1 = atan2_16::yi#3 - atan2_16::xd#5
  [220] atan2_16::$22 = atan2_16::i#2 << 1
  [221] 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
  [222] atan2_16::xd#1 = atan2_16::xd#3 >> 2
  [223] atan2_16::yd#1 = atan2_16::yd#3 >> 2
  [224] atan2_16::shift#1 = atan2_16::shift#2 - 2
  to:atan2_16::@13
atan2_16::@4: scope:[atan2_16]  from atan2_16::@3
  [225] atan2_16::xi#13 = atan2_16::x#0
  to:atan2_16::@6
atan2_16::@1: scope:[atan2_16]  from atan2_16
  [226] atan2_16::yi#16 = atan2_16::y#0
  to:atan2_16::@3

void print_cls()
print_cls: scope:[print_cls]  from make_plasma_charset::@11
  [227] phi()
  [228] call memset
  to:print_cls::@return
print_cls::@return: scope:[print_cls]  from print_cls
  [229] return 
  to:@return

void print_char(char ch)
print_char: scope:[print_char]  from make_plasma_charset::@9
  [230] *print_char_cursor#19 = print_char::ch#0
  [231] print_char_cursor#0 = ++ print_char_cursor#19
  to:print_char::@return
print_char::@return: scope:[print_char]  from print_char
  [232] return 
  to:@return

unsigned int * bsearch16u(unsigned int key , unsigned int *items , char num)
bsearch16u: scope:[bsearch16u]  from sqrt
  [233] phi()
  to:bsearch16u::@3
bsearch16u::@3: scope:[bsearch16u]  from bsearch16u bsearch16u::@7
  [234] bsearch16u::items#2 = phi( bsearch16u/bsearch16u::items#1, bsearch16u::@7/bsearch16u::items#8 )
  [234] bsearch16u::num#3 = phi( bsearch16u/NUM_SQUARES#2, bsearch16u::@7/bsearch16u::num#0 )
  [235] if(bsearch16u::num#3>0) goto bsearch16u::@4
  to:bsearch16u::@5
bsearch16u::@5: scope:[bsearch16u]  from bsearch16u::@3
  [236] if(*bsearch16u::items#2<=bsearch16u::key#0) goto bsearch16u::@2
  to:bsearch16u::@1
bsearch16u::@1: scope:[bsearch16u]  from bsearch16u::@5
  [237] bsearch16u::$2 = bsearch16u::items#2 - 1*SIZEOF_UNSIGNED_INT
  to:bsearch16u::@2
bsearch16u::@2: scope:[bsearch16u]  from bsearch16u::@1 bsearch16u::@5
  [238] 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
  [239] bsearch16u::return#1 = phi( bsearch16u::@2/bsearch16u::return#2, bsearch16u::@8/bsearch16u::return#7 )
  [240] return 
  to:@return
bsearch16u::@4: scope:[bsearch16u]  from bsearch16u::@3
  [241] bsearch16u::$6 = bsearch16u::num#3 >> 1
  [242] bsearch16u::$14 = bsearch16u::$6 << 1
  [243] bsearch16u::pivot#0 = bsearch16u::items#2 + bsearch16u::$14
  [244] bsearch16u::result#0 = (int)bsearch16u::key#0 - (int)*bsearch16u::pivot#0
  [245] if(bsearch16u::result#0!=0) goto bsearch16u::@6
  to:bsearch16u::@8
bsearch16u::@8: scope:[bsearch16u]  from bsearch16u::@4
  [246] bsearch16u::return#7 = bsearch16u::pivot#0
  to:bsearch16u::@return
bsearch16u::@6: scope:[bsearch16u]  from bsearch16u::@4
  [247] if(bsearch16u::result#0<=0) goto bsearch16u::@7
  to:bsearch16u::@9
bsearch16u::@9: scope:[bsearch16u]  from bsearch16u::@6
  [248] bsearch16u::items#0 = bsearch16u::pivot#0 + 1*SIZEOF_UNSIGNED_INT
  [249] bsearch16u::num#1 = -- bsearch16u::num#3
  to:bsearch16u::@7
bsearch16u::@7: scope:[bsearch16u]  from bsearch16u::@6 bsearch16u::@9
  [250] bsearch16u::items#8 = phi( bsearch16u::@9/bsearch16u::items#0, bsearch16u::@6/bsearch16u::items#2 )
  [250] bsearch16u::num#5 = phi( bsearch16u::@9/bsearch16u::num#1, bsearch16u::@6/bsearch16u::num#3 )
  [251] bsearch16u::num#0 = bsearch16u::num#5 >> 1
  to:bsearch16u::@3
