
void main()
main: scope:[main]  from
  [0] phi()
  [1] call lin16u_gen
  to:main::@4
main::@4: scope:[main]  from main
  [2] phi()
  [3] call lin16u_gen
  to:main::@5
main::@5: scope:[main]  from main::@4
  [4] phi()
  [5] call lin16u_gen
  to:main::@6
main::@6: scope:[main]  from main::@5
  [6] phi()
  [7] call print_cls
  to:main::@7
main::@7: scope:[main]  from main::@6
  [8] phi()
  [9] call print_str
  to:main::@8
main::@8: scope:[main]  from main::@7
  [10] phi()
  [11] call print_uint
  to:main::@9
main::@9: scope:[main]  from main::@8
  [12] phi()
  [13] call print_str
  to:main::@10
main::@10: scope:[main]  from main::@9
  [14] phi()
  [15] call print_uint
  to:main::@11
main::@11: scope:[main]  from main::@10
  [16] phi()
  [17] call print_str
  to:main::@12
main::@12: scope:[main]  from main::@11
  [18] phi()
  [19] call print_uint
  to:main::@13
main::@13: scope:[main]  from main::@12
  [20] phi()
  [21] call print_ln
  to:main::@1
main::@1: scope:[main]  from main::@13 main::@21
  [22] main::i#10 = phi( main::@13/0, main::@21/main::i#1 )
  [23] if(main::i#10<$14) goto main::@2
  to:main::@3
main::@3: scope:[main]  from main::@1
  [24] print_char_cursor#100 = print_line_cursor#0
  [25] call print_str
  to:main::@22
main::@22: scope:[main]  from main::@3
  [26] phi()
  [27] call print_uint
  to:main::@23
main::@23: scope:[main]  from main::@22
  [28] phi()
  [29] call print_str
  to:main::@24
main::@24: scope:[main]  from main::@23
  [30] phi()
  [31] call print_uint
  to:main::@25
main::@25: scope:[main]  from main::@24
  [32] phi()
  [33] call print_str
  to:main::@26
main::@26: scope:[main]  from main::@25
  [34] phi()
  [35] call print_uint
  to:main::@27
main::@27: scope:[main]  from main::@26
  [36] phi()
  [37] call print_ln
  to:main::@return
main::@return: scope:[main]  from main::@27
  [38] return 
  to:@return
main::@2: scope:[main]  from main::@1
  [39] print_uchar::b#2 = main::i#10
  [40] print_char_cursor#104 = print_line_cursor#0
  [41] call print_uchar
  to:main::@14
main::@14: scope:[main]  from main::@2
  [42] phi()
  [43] call print_str
  to:main::@15
main::@15: scope:[main]  from main::@14
  [44] main::$28 = main::i#10 << 1
  [45] print_uint::w#3 = main::lintab1[main::$28]
  [46] call print_uint
  to:main::@16
main::@16: scope:[main]  from main::@15
  [47] phi()
  [48] call print_str
  to:main::@17
main::@17: scope:[main]  from main::@16
  [49] print_uint::w#4 = main::lintab2[main::$28]
  [50] call print_uint
  to:main::@18
main::@18: scope:[main]  from main::@17
  [51] phi()
  [52] call print_str
  to:main::@19
main::@19: scope:[main]  from main::@18
  [53] print_uint::w#5 = main::lintab3[main::$28]
  [54] call print_uint
  to:main::@20
main::@20: scope:[main]  from main::@19
  [55] phi()
  [56] call print_ln
  to:main::@21
main::@21: scope:[main]  from main::@20
  [57] main::i#1 = ++ main::i#10
  to:main::@1

void lin16u_gen(unsigned int min , unsigned int max , unsigned int *lintab , unsigned int length)
lin16u_gen: scope:[lin16u_gen]  from main main::@4 main::@5
  [58] lin16u_gen::lintab#6 = phi( main/main::lintab1, main::@4/main::lintab2, main::@5/main::lintab3 )
  [58] lin16u_gen::min#3 = phi( main/$22d, main::@4/$79cb, main::@5/0 )
  [58] lin16u_gen::max#3 = phi( main/$7461, main::@4/$f781, main::@5/$6488 )
  [59] lin16u_gen::ampl#0 = lin16u_gen::max#3 - lin16u_gen::min#3
  [60] divr16u::dividend#1 = lin16u_gen::ampl#0
  [61] call divr16u
  [62] divr16u::return#2 = divr16u::return#0
  to:lin16u_gen::@3
lin16u_gen::@3: scope:[lin16u_gen]  from lin16u_gen
  [63] lin16u_gen::stepi#0 = divr16u::return#2
  [64] divr16u::rem#4 = rem16u#0
  [65] call divr16u
  [66] divr16u::return#3 = divr16u::return#0
  to:lin16u_gen::@4
lin16u_gen::@4: scope:[lin16u_gen]  from lin16u_gen::@3
  [67] lin16u_gen::stepf#0 = divr16u::return#3
  [68] lin16u_gen::step#0 = lin16u_gen::stepi#0 dw= lin16u_gen::stepf#0
  [69] lin16u_gen::val#0 = lin16u_gen::min#3 dw= 0
  to:lin16u_gen::@1
lin16u_gen::@1: scope:[lin16u_gen]  from lin16u_gen::@2 lin16u_gen::@4
  [70] lin16u_gen::lintab#4 = phi( lin16u_gen::@2/lin16u_gen::lintab#3, lin16u_gen::@4/lin16u_gen::lintab#6 )
  [70] lin16u_gen::val#2 = phi( lin16u_gen::@2/lin16u_gen::val#1, lin16u_gen::@4/lin16u_gen::val#0 )
  [70] lin16u_gen::i#2 = phi( lin16u_gen::@2/lin16u_gen::i#1, lin16u_gen::@4/0 )
  [71] if(lin16u_gen::i#2<$14) goto lin16u_gen::@2
  to:lin16u_gen::@return
lin16u_gen::@return: scope:[lin16u_gen]  from lin16u_gen::@1
  [72] return 
  to:@return
lin16u_gen::@2: scope:[lin16u_gen]  from lin16u_gen::@1
  [73] lin16u_gen::$8 = word1  lin16u_gen::val#2
  [74] *lin16u_gen::lintab#4 = lin16u_gen::$8
  [75] lin16u_gen::val#1 = lin16u_gen::val#2 + lin16u_gen::step#0
  [76] lin16u_gen::lintab#3 = lin16u_gen::lintab#4 + SIZEOF_UNSIGNED_INT
  [77] lin16u_gen::i#1 = ++ lin16u_gen::i#2
  to:lin16u_gen::@1

void print_cls()
print_cls: scope:[print_cls]  from main::@6
  [78] phi()
  [79] call memset
  to:print_cls::@return
print_cls::@return: scope:[print_cls]  from print_cls
  [80] return 
  to:@return

void print_str(char *str)
print_str: scope:[print_str]  from main::@11 main::@14 main::@16 main::@18 main::@23 main::@25 main::@3 main::@7 main::@9
  [81] print_char_cursor#89 = phi( main::@11/print_char_cursor#10, main::@14/print_char_cursor#10, main::@16/print_char_cursor#10, main::@18/print_char_cursor#10, main::@23/print_char_cursor#10, main::@25/print_char_cursor#10, main::@3/print_char_cursor#100, main::@7/print_screen#0, main::@9/print_char_cursor#10 )
  [81] print_str::str#13 = phi( main::@11/main::str1, main::@14/main::str1, main::@16/main::str1, main::@18/main::str1, main::@23/main::str1, main::@25/main::str1, main::@3/main::str, main::@7/main::str, main::@9/main::str1 )
  to:print_str::@1
print_str::@1: scope:[print_str]  from print_str print_str::@3
  [82] print_char_cursor#1 = phi( print_str/print_char_cursor#89, print_str::@3/print_char_cursor#10 )
  [82] print_str::str#10 = phi( print_str/print_str::str#13, print_str::@3/print_str::str#0 )
  [83] if(0!=*print_str::str#10) goto print_str::@2
  to:print_str::@return
print_str::@return: scope:[print_str]  from print_str::@1
  [84] return 
  to:@return
print_str::@2: scope:[print_str]  from print_str::@1
  [85] print_char::ch#0 = *print_str::str#10
  [86] call print_char
  to:print_str::@3
print_str::@3: scope:[print_str]  from print_str::@2
  [87] print_str::str#0 = ++ print_str::str#10
  to:print_str::@1

void print_uint(unsigned int w)
print_uint: scope:[print_uint]  from main::@10 main::@12 main::@15 main::@17 main::@19 main::@22 main::@24 main::@26 main::@8
  [88] print_uint::w#10 = phi( main::@10/$79cb, main::@12/0, main::@15/print_uint::w#3, main::@17/print_uint::w#4, main::@19/print_uint::w#5, main::@22/$7461, main::@24/$f781, main::@26/$6488, main::@8/$22d )
  [89] print_uchar::b#0 = byte1  print_uint::w#10
  [90] call print_uchar
  to:print_uint::@1
print_uint::@1: scope:[print_uint]  from print_uint
  [91] print_uchar::b#1 = byte0  print_uint::w#10
  [92] call print_uchar
  to:print_uint::@return
print_uint::@return: scope:[print_uint]  from print_uint::@1
  [93] return 
  to:@return

void print_ln()
print_ln: scope:[print_ln]  from main::@13 main::@20 main::@27
  [94] print_line_cursor#23 = phi( main::@13/print_screen#0, main::@20/print_line_cursor#0, main::@27/print_line_cursor#0 )
  to:print_ln::@1
print_ln::@1: scope:[print_ln]  from print_ln print_ln::@1
  [95] print_line_cursor#12 = phi( print_ln/print_line_cursor#23, print_ln::@1/print_line_cursor#0 )
  [96] print_line_cursor#0 = print_line_cursor#12 + $28
  [97] if(print_line_cursor#0<print_char_cursor#10) goto print_ln::@1
  to:print_ln::@return
print_ln::@return: scope:[print_ln]  from print_ln::@1
  [98] return 
  to:@return

void print_uchar(char b)
print_uchar: scope:[print_uchar]  from main::@2 print_uint print_uint::@1
  [99] print_char_cursor#84 = phi( main::@2/print_char_cursor#104, print_uint/print_char_cursor#1, print_uint::@1/print_char_cursor#10 )
  [99] print_uchar::b#3 = phi( main::@2/print_uchar::b#2, print_uint/print_uchar::b#0, print_uint::@1/print_uchar::b#1 )
  [100] print_uchar::$0 = print_uchar::b#3 >> 4
  [101] print_char::ch#1 = print_hextab[print_uchar::$0]
  [102] call print_char
  to:print_uchar::@1
print_uchar::@1: scope:[print_uchar]  from print_uchar
  [103] print_uchar::$2 = print_uchar::b#3 & $f
  [104] print_char::ch#2 = print_hextab[print_uchar::$2]
  [105] call print_char
  to:print_uchar::@return
print_uchar::@return: scope:[print_uchar]  from print_uchar::@1
  [106] return 
  to:@return

unsigned int divr16u(unsigned int dividend , unsigned int divisor , unsigned int rem)
divr16u: scope:[divr16u]  from lin16u_gen lin16u_gen::@3
  [107] divr16u::dividend#5 = phi( lin16u_gen/divr16u::dividend#1, lin16u_gen::@3/0 )
  [107] divr16u::rem#10 = phi( lin16u_gen/0, lin16u_gen::@3/divr16u::rem#4 )
  to:divr16u::@1
divr16u::@1: scope:[divr16u]  from divr16u divr16u::@3
  [108] divr16u::i#2 = phi( divr16u/0, divr16u::@3/divr16u::i#1 )
  [108] divr16u::quotient#3 = phi( divr16u/0, divr16u::@3/divr16u::return#0 )
  [108] divr16u::dividend#3 = phi( divr16u/divr16u::dividend#5, divr16u::@3/divr16u::dividend#0 )
  [108] divr16u::rem#5 = phi( divr16u/divr16u::rem#10, divr16u::@3/divr16u::rem#11 )
  [109] divr16u::rem#0 = divr16u::rem#5 << 1
  [110] divr16u::$1 = byte1  divr16u::dividend#3
  [111] divr16u::$2 = divr16u::$1 & $80
  [112] if(divr16u::$2==0) goto divr16u::@2
  to:divr16u::@4
divr16u::@4: scope:[divr16u]  from divr16u::@1
  [113] divr16u::rem#1 = divr16u::rem#0 | 1
  to:divr16u::@2
divr16u::@2: scope:[divr16u]  from divr16u::@1 divr16u::@4
  [114] divr16u::rem#6 = phi( divr16u::@1/divr16u::rem#0, divr16u::@4/divr16u::rem#1 )
  [115] divr16u::dividend#0 = divr16u::dividend#3 << 1
  [116] divr16u::quotient#1 = divr16u::quotient#3 << 1
  [117] if(divr16u::rem#6<$14-1) goto divr16u::@3
  to:divr16u::@5
divr16u::@5: scope:[divr16u]  from divr16u::@2
  [118] divr16u::quotient#2 = ++ divr16u::quotient#1
  [119] divr16u::rem#2 = divr16u::rem#6 - $14-1
  to:divr16u::@3
divr16u::@3: scope:[divr16u]  from divr16u::@2 divr16u::@5
  [120] divr16u::return#0 = phi( divr16u::@2/divr16u::quotient#1, divr16u::@5/divr16u::quotient#2 )
  [120] divr16u::rem#11 = phi( divr16u::@2/divr16u::rem#6, divr16u::@5/divr16u::rem#2 )
  [121] divr16u::i#1 = ++ divr16u::i#2
  [122] if(divr16u::i#1!=$10) goto divr16u::@1
  to:divr16u::@6
divr16u::@6: scope:[divr16u]  from divr16u::@3
  [123] rem16u#0 = divr16u::rem#11
  to:divr16u::@return
divr16u::@return: scope:[divr16u]  from divr16u::@6
  [124] return 
  to:@return

void * memset(void *str , char c , unsigned int num)
memset: scope:[memset]  from print_cls
  [125] phi()
  to:memset::@1
memset::@1: scope:[memset]  from memset memset::@2
  [126] memset::dst#2 = phi( memset/(char *)memset::str#0, memset::@2/memset::dst#1 )
  [127] if(memset::dst#2!=memset::end#0) goto memset::@2
  to:memset::@return
memset::@return: scope:[memset]  from memset::@1
  [128] return 
  to:@return
memset::@2: scope:[memset]  from memset::@1
  [129] *memset::dst#2 = memset::c#0
  [130] memset::dst#1 = ++ memset::dst#2
  to:memset::@1

void print_char(char ch)
print_char: scope:[print_char]  from print_str::@2 print_uchar print_uchar::@1
  [131] print_char_cursor#51 = phi( print_str::@2/print_char_cursor#1, print_uchar/print_char_cursor#84, print_uchar::@1/print_char_cursor#10 )
  [131] print_char::ch#3 = phi( print_str::@2/print_char::ch#0, print_uchar/print_char::ch#1, print_uchar::@1/print_char::ch#2 )
  [132] *print_char_cursor#51 = print_char::ch#3
  [133] print_char_cursor#10 = ++ print_char_cursor#51
  to:print_char::@return
print_char::@return: scope:[print_char]  from print_char
  [134] return 
  to:@return
