
void main()
main: scope:[main]  from
  [0] phi()
  [1] call print_cls
  to:main::@1
main::@1: scope:[main]  from main main::@4
  [2] main::i#2 = phi( main/0, main::@4/main::i#1 )
  [2] print_line_cursor#21 = phi( main/print_screen#0, main::@4/print_line_cursor#0 )
  [2] print_char_cursor#32 = phi( main/print_screen#0, main::@4/print_char_cursor#37 )
  [3] call print_str
  to:main::@2
main::@2: scope:[main]  from main::@1
  [4] phi()
  [5] call print_ln
  to:main::@3
main::@3: scope:[main]  from main::@2
  [6] *(txt+1) = ++ *(txt+1)
  [7] main::i#1 = ++ main::i#2
  [8] if(main::i#1!=$b) goto main::@4
  to:main::@return
main::@return: scope:[main]  from main::@3
  [9] return 
  to:@return
main::@4: scope:[main]  from main::@3
  [10] print_char_cursor#37 = print_line_cursor#0
  to:main::@1

void print_cls()
print_cls: scope:[print_cls]  from main
  [11] phi()
  [12] call memset
  to:print_cls::@return
print_cls::@return: scope:[print_cls]  from print_cls
  [13] return 
  to:@return

void print_str(char *str)
print_str: scope:[print_str]  from main::@1
  [14] phi()
  to:print_str::@1
print_str::@1: scope:[print_str]  from print_str print_str::@3
  [15] print_char_cursor#1 = phi( print_str/print_char_cursor#32, print_str::@3/print_char_cursor#20 )
  [15] print_str::str#2 = phi( print_str/txt, print_str::@3/print_str::str#0 )
  [16] if(0!=*print_str::str#2) goto print_str::@2
  to:print_str::@return
print_str::@return: scope:[print_str]  from print_str::@1
  [17] return 
  to:@return
print_str::@2: scope:[print_str]  from print_str::@1
  [18] print_char::ch#0 = *print_str::str#2
  [19] call print_char
  to:print_str::@3
print_str::@3: scope:[print_str]  from print_str::@2
  [20] print_str::str#0 = ++ print_str::str#2
  to:print_str::@1

void print_ln()
print_ln: scope:[print_ln]  from main::@2
  [21] phi()
  to:print_ln::@1
print_ln::@1: scope:[print_ln]  from print_ln print_ln::@1
  [22] print_line_cursor#10 = phi( print_ln/print_line_cursor#21, print_ln::@1/print_line_cursor#0 )
  [23] print_line_cursor#0 = print_line_cursor#10 + $28
  [24] if(print_line_cursor#0<print_char_cursor#1) goto print_ln::@1
  to:print_ln::@return
print_ln::@return: scope:[print_ln]  from print_ln::@1
  [25] return 
  to:@return

void * memset(void *str , char c , unsigned int num)
memset: scope:[memset]  from print_cls
  [26] phi()
  to:memset::@1
memset::@1: scope:[memset]  from memset memset::@2
  [27] memset::dst#2 = phi( memset/(char *)memset::str#0, memset::@2/memset::dst#1 )
  [28] if(memset::dst#2!=memset::end#0) goto memset::@2
  to:memset::@return
memset::@return: scope:[memset]  from memset::@1
  [29] return 
  to:@return
memset::@2: scope:[memset]  from memset::@1
  [30] *memset::dst#2 = memset::c#0
  [31] memset::dst#1 = ++ memset::dst#2
  to:memset::@1

void print_char(char ch)
print_char: scope:[print_char]  from print_str::@2
  [32] *print_char_cursor#1 = print_char::ch#0
  [33] print_char_cursor#20 = ++ print_char_cursor#1
  to:print_char::@return
print_char::@return: scope:[print_char]  from print_char
  [34] return 
  to:@return
