
void main()
main: scope:[main]  from
  [0] phi()
  [1] call print_cls
  to:main::@1
main::@1: scope:[main]  from main main::@4
  [2] print_char_cursor#13 = phi( main/print_screen#0, main::@4/print_line_cursor#0 )
  [2] print_line_cursor#16 = phi( main/print_screen#0, main::@4/print_line_cursor#27 )
  [2] main::i#2 = phi( main/0, main::@4/main::i#1 )
  [3] if(main::i#2<$d02) goto main::@2
  to:main::@return
main::@return: scope:[main]  from main::@1
  [4] return 
  to:@return
main::@2: scope:[main]  from main::@1
  [5] main::$5 = main::i#2 << 4
  [6] main::$6 = main::$5 + main::i#2
  [7] main::$7 = main::$6 << 2
  [8] main::$8 = main::$7 + main::i#2
  [9] main::$9 = main::$8 << 2
  [10] main::$10 = main::$9 + main::i#2
  [11] main::$11 = main::$10 << 1
  [12] print_ulong_decimal::w#0 = main::$11 + main::i#2
  [13] call print_ulong_decimal
  to:main::@3
main::@3: scope:[main]  from main::@2
  [14] phi()
  [15] call print_ln
  to:main::@4
main::@4: scope:[main]  from main::@3
  [16] main::i#1 = main::i#2 + $14d
  [17] print_line_cursor#27 = print_line_cursor#0
  to:main::@1

void print_cls()
print_cls: scope:[print_cls]  from main
  [18] phi()
  [19] call memset
  to:print_cls::@return
print_cls::@return: scope:[print_cls]  from print_cls
  [20] return 
  to:@return

void print_ulong_decimal(unsigned long w)
print_ulong_decimal: scope:[print_ulong_decimal]  from main::@2
  [21] ultoa::value#0 = print_ulong_decimal::w#0
  [22] call ultoa
  to:print_ulong_decimal::@1
print_ulong_decimal::@1: scope:[print_ulong_decimal]  from print_ulong_decimal
  [23] phi()
  [24] call print_str
  to:print_ulong_decimal::@return
print_ulong_decimal::@return: scope:[print_ulong_decimal]  from print_ulong_decimal::@1
  [25] return 
  to:@return

void print_ln()
print_ln: scope:[print_ln]  from main::@3
  [26] phi()
  to:print_ln::@1
print_ln::@1: scope:[print_ln]  from print_ln print_ln::@2
  [27] print_line_cursor#10 = phi( print_ln/print_line_cursor#16, print_ln::@2/print_line_cursor#26 )
  [28] print_line_cursor#0 = print_line_cursor#10 + $28
  [29] if(print_line_cursor#0<print_char_cursor#1) goto print_ln::@2
  to:print_ln::@return
print_ln::@return: scope:[print_ln]  from print_ln::@1
  [30] return 
  to:@return
print_ln::@2: scope:[print_ln]  from print_ln::@1
  [31] print_line_cursor#26 = print_line_cursor#0
  to:print_ln::@1

void * memset(void *str , char c , unsigned int num)
memset: scope:[memset]  from print_cls
  [32] phi()
  to:memset::@1
memset::@1: scope:[memset]  from memset memset::@2
  [33] memset::dst#2 = phi( memset/(char *)memset::str#0, memset::@2/memset::dst#1 )
  [34] if(memset::dst#2!=memset::end#0) goto memset::@2
  to:memset::@return
memset::@return: scope:[memset]  from memset::@1
  [35] return 
  to:@return
memset::@2: scope:[memset]  from memset::@1
  [36] *memset::dst#2 = memset::c#0
  [37] memset::dst#1 = ++ memset::dst#2
  to:memset::@1

void ultoa(unsigned long value , char *buffer , char radix)
ultoa: scope:[ultoa]  from print_ulong_decimal
  [38] phi()
  to:ultoa::@1
ultoa::@1: scope:[ultoa]  from ultoa ultoa::@4
  [39] ultoa::buffer#11 = phi( ultoa::@4/ultoa::buffer#14, ultoa/decimal_digits_long )
  [39] ultoa::started#2 = phi( ultoa::@4/ultoa::started#4, ultoa/0 )
  [39] ultoa::value#2 = phi( ultoa::@4/ultoa::value#6, ultoa/ultoa::value#0 )
  [39] ultoa::digit#2 = phi( ultoa::@4/ultoa::digit#1, ultoa/0 )
  [40] if(ultoa::digit#2<ultoa::max_digits#1-1) goto ultoa::@2
  to:ultoa::@3
ultoa::@3: scope:[ultoa]  from ultoa::@1
  [41] ultoa::$11 = (char)ultoa::value#2
  [42] *ultoa::buffer#11 = DIGITS[ultoa::$11]
  [43] ultoa::buffer#4 = ++ ultoa::buffer#11
  [44] *ultoa::buffer#4 = 0
  to:ultoa::@return
ultoa::@return: scope:[ultoa]  from ultoa::@3
  [45] return 
  to:@return
ultoa::@2: scope:[ultoa]  from ultoa::@1
  [46] ultoa::$10 = ultoa::digit#2 << 2
  [47] ultoa::digit_value#0 = RADIX_DECIMAL_VALUES_LONG[ultoa::$10]
  [48] if(0!=ultoa::started#2) goto ultoa::@5
  to:ultoa::@7
ultoa::@7: scope:[ultoa]  from ultoa::@2
  [49] if(ultoa::value#2>=ultoa::digit_value#0) goto ultoa::@5
  to:ultoa::@4
ultoa::@4: scope:[ultoa]  from ultoa::@6 ultoa::@7
  [50] ultoa::buffer#14 = phi( ultoa::@7/ultoa::buffer#11, ultoa::@6/ultoa::buffer#5 )
  [50] ultoa::started#4 = phi( ultoa::@7/ultoa::started#2, ultoa::@6/1 )
  [50] ultoa::value#6 = phi( ultoa::@7/ultoa::value#2, ultoa::@6/ultoa::value#1 )
  [51] ultoa::digit#1 = ++ ultoa::digit#2
  to:ultoa::@1
ultoa::@5: scope:[ultoa]  from ultoa::@2 ultoa::@7
  [52] ultoa_append::buffer#0 = ultoa::buffer#11
  [53] ultoa_append::value#0 = ultoa::value#2
  [54] ultoa_append::sub#0 = ultoa::digit_value#0
  [55] call ultoa_append
  [56] ultoa_append::return#0 = ultoa_append::value#2
  to:ultoa::@6
ultoa::@6: scope:[ultoa]  from ultoa::@5
  [57] ultoa::value#1 = ultoa_append::return#0
  [58] ultoa::buffer#5 = ++ ultoa::buffer#11
  to:ultoa::@4

void print_str(char *str)
print_str: scope:[print_str]  from print_ulong_decimal::@1
  [59] print_char_cursor#42 = print_char_cursor#13
  to:print_str::@1
print_str::@1: scope:[print_str]  from print_str print_str::@3
  [60] print_char_cursor#1 = phi( print_str/print_char_cursor#42, print_str::@3/print_char_cursor#24 )
  [60] print_str::str#2 = phi( print_str/decimal_digits_long, print_str::@3/print_str::str#0 )
  [61] if(0!=*print_str::str#2) goto print_str::@2
  to:print_str::@return
print_str::@return: scope:[print_str]  from print_str::@1
  [62] return 
  to:@return
print_str::@2: scope:[print_str]  from print_str::@1
  [63] print_char::ch#0 = *print_str::str#2
  [64] call print_char
  to:print_str::@3
print_str::@3: scope:[print_str]  from print_str::@2
  [65] print_str::str#0 = ++ print_str::str#2
  to:print_str::@1

unsigned long ultoa_append(char *buffer , unsigned long value , unsigned long sub)
ultoa_append: scope:[ultoa_append]  from ultoa::@5
  [66] phi()
  to:ultoa_append::@1
ultoa_append::@1: scope:[ultoa_append]  from ultoa_append ultoa_append::@2
  [67] ultoa_append::digit#2 = phi( ultoa_append/0, ultoa_append::@2/ultoa_append::digit#1 )
  [67] ultoa_append::value#2 = phi( ultoa_append/ultoa_append::value#0, ultoa_append::@2/ultoa_append::value#1 )
  [68] if(ultoa_append::value#2>=ultoa_append::sub#0) goto ultoa_append::@2
  to:ultoa_append::@3
ultoa_append::@3: scope:[ultoa_append]  from ultoa_append::@1
  [69] *ultoa_append::buffer#0 = DIGITS[ultoa_append::digit#2]
  to:ultoa_append::@return
ultoa_append::@return: scope:[ultoa_append]  from ultoa_append::@3
  [70] return 
  to:@return
ultoa_append::@2: scope:[ultoa_append]  from ultoa_append::@1
  [71] ultoa_append::digit#1 = ++ ultoa_append::digit#2
  [72] ultoa_append::value#1 = ultoa_append::value#2 - ultoa_append::sub#0
  to:ultoa_append::@1

void print_char(char ch)
print_char: scope:[print_char]  from print_str::@2
  [73] *print_char_cursor#1 = print_char::ch#0
  [74] print_char_cursor#24 = ++ print_char_cursor#1
  to:print_char::@return
print_char::@return: scope:[print_char]  from print_char
  [75] return 
  to:@return
