
void main()
main: scope:[main]  from
  [0] phi()
  [1] call print_cls
  to:main::@1
main::@1: scope:[main]  from main main::@6
  [2] main::i#2 = phi( main/0, main::@6/main::i#1 )
  [2] print_line_cursor#21 = phi( main/print_screen#0, main::@6/print_line_cursor#0 )
  [2] print_char_cursor#55 = phi( main/print_screen#0, main::@6/print_char_cursor#65 )
  [2] main::w1#2 = phi( main/$4d2, main::@6/main::w1#1 )
  [3] main::w2#0 = main::w1#2 - $5b
  [4] main::w1#1 = main::w2#0 - $29
  [5] print_sint::w#1 = main::w1#1
  [6] call print_sint
  to:main::@2
main::@2: scope:[main]  from main::@1
  [7] phi()
  [8] call print_char
  to:main::@3
main::@3: scope:[main]  from main::@2
  [9] print_sint::w#2 = main::w2#0
  [10] call print_sint
  to:main::@4
main::@4: scope:[main]  from main::@3
  [11] phi()
  [12] call print_ln
  to:main::@5
main::@5: scope:[main]  from main::@4
  [13] main::i#1 = ++ main::i#2
  [14] if(main::i#1!=$b) goto main::@6
  to:main::@return
main::@return: scope:[main]  from main::@5
  [15] return 
  to:@return
main::@6: scope:[main]  from main::@5
  [16] print_char_cursor#65 = print_line_cursor#0
  to:main::@1

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

void print_sint(int w)
print_sint: scope:[print_sint]  from main::@1 main::@3
  [20] print_char_cursor#49 = phi( main::@1/print_char_cursor#55, main::@3/print_char_cursor#12 )
  [20] print_sint::w#3 = phi( main::@1/print_sint::w#1, main::@3/print_sint::w#2 )
  [21] if(print_sint::w#3<0) goto print_sint::@1
  to:print_sint::@3
print_sint::@3: scope:[print_sint]  from print_sint
  [22] phi()
  [23] call print_char
  to:print_sint::@2
print_sint::@2: scope:[print_sint]  from print_sint::@3 print_sint::@4
  [24] print_sint::w#5 = phi( print_sint::@4/print_sint::w#0, print_sint::@3/print_sint::w#3 )
  [25] print_uint::w#0 = (unsigned int)print_sint::w#5
  [26] call print_uint
  to:print_sint::@return
print_sint::@return: scope:[print_sint]  from print_sint::@2
  [27] return 
  to:@return
print_sint::@1: scope:[print_sint]  from print_sint
  [28] phi()
  [29] call print_char
  to:print_sint::@4
print_sint::@4: scope:[print_sint]  from print_sint::@1
  [30] print_sint::w#0 = - print_sint::w#3
  to:print_sint::@2

void print_char(char ch)
print_char: scope:[print_char]  from main::@2 print_sint::@1 print_sint::@3 print_uchar print_uchar::@1
  [31] print_char_cursor#37 = phi( main::@2/print_char_cursor#12, print_sint::@1/print_char_cursor#49, print_sint::@3/print_char_cursor#49, print_uchar/print_char_cursor#12, print_uchar::@1/print_char_cursor#12 )
  [31] print_char::ch#5 = phi( main::@2/' ', print_sint::@1/'-', print_sint::@3/' ', print_uchar/print_char::ch#2, print_uchar::@1/print_char::ch#3 )
  [32] *print_char_cursor#37 = print_char::ch#5
  [33] print_char_cursor#12 = ++ print_char_cursor#37
  to:print_char::@return
print_char::@return: scope:[print_char]  from print_char
  [34] return 
  to:@return

void print_ln()
print_ln: scope:[print_ln]  from main::@4
  [35] phi()
  to:print_ln::@1
print_ln::@1: scope:[print_ln]  from print_ln print_ln::@1
  [36] print_line_cursor#10 = phi( print_ln/print_line_cursor#21, print_ln::@1/print_line_cursor#0 )
  [37] print_line_cursor#0 = print_line_cursor#10 + $28
  [38] if(print_line_cursor#0<print_char_cursor#12) goto print_ln::@1
  to:print_ln::@return
print_ln::@return: scope:[print_ln]  from print_ln::@1
  [39] return 
  to:@return

void * memset(void *str , char c , unsigned int num)
memset: scope:[memset]  from print_cls
  [40] phi()
  to:memset::@1
memset::@1: scope:[memset]  from memset memset::@2
  [41] memset::dst#2 = phi( memset/(char *)memset::str#0, memset::@2/memset::dst#1 )
  [42] if(memset::dst#2!=memset::end#0) goto memset::@2
  to:memset::@return
memset::@return: scope:[memset]  from memset::@1
  [43] return 
  to:@return
memset::@2: scope:[memset]  from memset::@1
  [44] *memset::dst#2 = memset::c#0
  [45] memset::dst#1 = ++ memset::dst#2
  to:memset::@1

void print_uint(unsigned int w)
print_uint: scope:[print_uint]  from print_sint::@2
  [46] print_uchar::b#0 = byte1  print_uint::w#0
  [47] call print_uchar
  to:print_uint::@1
print_uint::@1: scope:[print_uint]  from print_uint
  [48] print_uchar::b#1 = byte0  print_uint::w#0
  [49] call print_uchar
  to:print_uint::@return
print_uint::@return: scope:[print_uint]  from print_uint::@1
  [50] return 
  to:@return

void print_uchar(char b)
print_uchar: scope:[print_uchar]  from print_uint print_uint::@1
  [51] print_uchar::b#2 = phi( print_uint/print_uchar::b#0, print_uint::@1/print_uchar::b#1 )
  [52] print_uchar::$0 = print_uchar::b#2 >> 4
  [53] print_char::ch#2 = print_hextab[print_uchar::$0]
  [54] call print_char
  to:print_uchar::@1
print_uchar::@1: scope:[print_uchar]  from print_uchar
  [55] print_uchar::$2 = print_uchar::b#2 & $f
  [56] print_char::ch#3 = print_hextab[print_uchar::$2]
  [57] call print_char
  to:print_uchar::@return
print_uchar::@return: scope:[print_uchar]  from print_uchar::@1
  [58] return 
  to:@return
