
void main()
main: scope:[main]  from
  [0] phi()
  to:main::@1
main::@1: scope:[main]  from main main::@6
  [1] main::i#2 = phi( main/0, main::@6/main::i#1 )
  [2] sub::idx#0 = main::i#2
  [3] call sub
  to:main::@4
main::@4: scope:[main]  from main::@1
  [4] sub::idx#1 = main::i#2
  [5] call sub
  to:main::@5
main::@5: scope:[main]  from main::@4
  [6] sub::idx#2 = main::i#2
  [7] call sub
  to:main::@6
main::@6: scope:[main]  from main::@5
  [8] main::i#1 = ++ main::i#2
  [9] if(main::i#1!=9) goto main::@1
  to:main::@2
main::@2: scope:[main]  from main::@6
  [10] phi()
  [11] call print_cls
  to:main::@3
main::@3: scope:[main]  from main::@2 main::@9
  [12] print_line_cursor#21 = phi( main::@2/print_screen#0, main::@9/print_line_cursor#0 )
  [12] print_char_cursor#51 = phi( main::@2/print_screen#0, main::@9/print_char_cursor#63 )
  [12] main::j#2 = phi( main::@2/0, main::@9/main::j#1 )
  [13] main::$8 = main::j#2 << 1
  [14] print_sint::w#1 = words[main::$8]
  [15] call print_sint
  to:main::@7
main::@7: scope:[main]  from main::@3
  [16] phi()
  [17] call print_ln
  to:main::@8
main::@8: scope:[main]  from main::@7
  [18] main::j#1 = ++ main::j#2
  [19] if(main::j#1!=9) goto main::@9
  to:main::@return
main::@return: scope:[main]  from main::@8
  [20] return 
  to:@return
main::@9: scope:[main]  from main::@8
  [21] print_char_cursor#63 = print_line_cursor#0
  to:main::@3

void sub(char idx , char s)
sub: scope:[sub]  from main::@1 main::@4 main::@5
  [22] sub::s#3 = phi( main::@1/$80, main::@4/$40, main::@5/$40 )
  [22] sub::idx#3 = phi( main::@1/sub::idx#0, main::@4/sub::idx#1, main::@5/sub::idx#2 )
  [23] sub::$0 = sub::idx#3 << 1
  [24] words[sub::$0] = words[sub::$0] - sub::s#3
  to:sub::@return
sub::@return: scope:[sub]  from sub
  [25] return 
  to:@return

void print_cls()
print_cls: scope:[print_cls]  from main::@2
  [26] phi()
  [27] call memset
  to:print_cls::@return
print_cls::@return: scope:[print_cls]  from print_cls
  [28] return 
  to:@return

void print_sint(int w)
print_sint: scope:[print_sint]  from main::@3
  [29] if(print_sint::w#1<0) goto print_sint::@1
  to:print_sint::@3
print_sint::@3: scope:[print_sint]  from print_sint
  [30] phi()
  [31] call print_char
  to:print_sint::@2
print_sint::@2: scope:[print_sint]  from print_sint::@3 print_sint::@4
  [32] print_sint::w#4 = phi( print_sint::@4/print_sint::w#0, print_sint::@3/print_sint::w#1 )
  [33] print_uint::w#0 = (unsigned int)print_sint::w#4
  [34] call print_uint
  to:print_sint::@return
print_sint::@return: scope:[print_sint]  from print_sint::@2
  [35] return 
  to:@return
print_sint::@1: scope:[print_sint]  from print_sint
  [36] phi()
  [37] call print_char
  to:print_sint::@4
print_sint::@4: scope:[print_sint]  from print_sint::@1
  [38] print_sint::w#0 = - print_sint::w#1
  to:print_sint::@2

void print_ln()
print_ln: scope:[print_ln]  from main::@7
  [39] phi()
  to:print_ln::@1
print_ln::@1: scope:[print_ln]  from print_ln print_ln::@1
  [40] print_line_cursor#10 = phi( print_ln/print_line_cursor#21, print_ln::@1/print_line_cursor#0 )
  [41] print_line_cursor#0 = print_line_cursor#10 + $28
  [42] 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
  [43] return 
  to:@return

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

void print_char(char ch)
print_char: scope:[print_char]  from print_sint::@1 print_sint::@3 print_uchar print_uchar::@1
  [50] print_char_cursor#35 = phi( print_sint::@1/print_char_cursor#51, print_sint::@3/print_char_cursor#51, print_uchar/print_char_cursor#12, print_uchar::@1/print_char_cursor#12 )
  [50] print_char::ch#4 = phi( print_sint::@1/'-', print_sint::@3/' ', print_uchar/print_char::ch#2, print_uchar::@1/print_char::ch#3 )
  [51] *print_char_cursor#35 = print_char::ch#4
  [52] print_char_cursor#12 = ++ print_char_cursor#35
  to:print_char::@return
print_char::@return: scope:[print_char]  from print_char
  [53] return 
  to:@return

void print_uint(unsigned int w)
print_uint: scope:[print_uint]  from print_sint::@2
  [54] print_uchar::b#0 = byte1  print_uint::w#0
  [55] call print_uchar
  to:print_uint::@1
print_uint::@1: scope:[print_uint]  from print_uint
  [56] print_uchar::b#1 = byte0  print_uint::w#0
  [57] call print_uchar
  to:print_uint::@return
print_uint::@return: scope:[print_uint]  from print_uint::@1
  [58] return 
  to:@return

void print_uchar(char b)
print_uchar: scope:[print_uchar]  from print_uint print_uint::@1
  [59] print_uchar::b#2 = phi( print_uint/print_uchar::b#0, print_uint::@1/print_uchar::b#1 )
  [60] print_uchar::$0 = print_uchar::b#2 >> 4
  [61] print_char::ch#2 = print_hextab[print_uchar::$0]
  [62] call print_char
  to:print_uchar::@1
print_uchar::@1: scope:[print_uchar]  from print_uchar
  [63] print_uchar::$2 = print_uchar::b#2 & $f
  [64] print_char::ch#3 = print_hextab[print_uchar::$2]
  [65] call print_char
  to:print_uchar::@return
print_uchar::@return: scope:[print_uchar]  from print_uchar::@1
  [66] return 
  to:@return
