
void main()
main: scope:[main]  from
  [0] phi()
  [1] call print_cls
  to:main::@1
main::@1: scope:[main]  from main main::@7
  [2] print_line_cursor#30 = phi( main::@7/print_line_cursor#25, main/print_screen#0 )
  [2] main::s#7 = phi( main::@7/main::s#10, main/0 )
  [2] print_char_cursor#84 = phi( main::@7/print_char_cursor#75, main/print_screen#0 )
  [2] main::i#2 = phi( main::@7/main::i#1, main/0 )
  [3] main::$8 = main::i#2 << 1
  [4] main::w1#0 = swords[main::$8]
  to:main::@2
main::@2: scope:[main]  from main::@1 main::@6
  [5] print_line_cursor#28 = phi( main::@1/print_line_cursor#30, main::@6/print_line_cursor#25 )
  [5] main::s#5 = phi( main::@1/main::s#7, main::@6/main::s#10 )
  [5] print_char_cursor#74 = phi( main::@1/print_char_cursor#84, main::@6/print_char_cursor#75 )
  [5] main::j#2 = phi( main::@1/0, main::@6/main::j#1 )
  [6] main::$9 = main::j#2 << 1
  [7] main::w2#0 = swords[main::$9]
  to:main::@3
main::@3: scope:[main]  from main::@2 main::@4
  [8] print_line_cursor#21 = phi( main::@2/print_line_cursor#28, main::@4/print_line_cursor#25 )
  [8] main::s#3 = phi( main::@2/main::s#5, main::@4/main::s#10 )
  [8] print_char_cursor#67 = phi( main::@2/print_char_cursor#74, main::@4/print_char_cursor#75 )
  [8] main::op#2 = phi( main::@2/0, main::@4/main::op#1 )
  [9] compare::w1#0 = main::w1#0
  [10] compare::w2#0 = main::w2#0
  [11] compare::op#0 = main::op#2
  [12] call compare
  to:main::@9
main::@9: scope:[main]  from main::@3
  [13] main::s#1 = ++ main::s#3
  [14] if(main::s#1!=3) goto main::@4
  to:main::@5
main::@5: scope:[main]  from main::@9
  [15] phi()
  [16] call print_ln
  to:main::@10
main::@10: scope:[main]  from main::@5
  [17] print_char_cursor#117 = print_line_cursor#0
  to:main::@4
main::@4: scope:[main]  from main::@10 main::@9
  [18] print_line_cursor#25 = phi( main::@9/print_line_cursor#21, main::@10/print_line_cursor#0 )
  [18] main::s#10 = phi( main::@9/main::s#1, main::@10/0 )
  [18] print_char_cursor#75 = phi( main::@9/print_char_cursor#14, main::@10/print_char_cursor#117 )
  [19] main::op#1 = ++ main::op#2
  [20] if(main::op#1!=6) goto main::@3
  to:main::@6
main::@6: scope:[main]  from main::@4
  [21] main::j#1 = ++ main::j#2
  [22] if(main::j#1!=3) goto main::@2
  to:main::@7
main::@7: scope:[main]  from main::@6
  [23] main::i#1 = ++ main::i#2
  [24] if(main::i#1!=3) goto main::@1
  to:main::@8
main::@8: scope:[main]  from main::@7 main::@8
  [25] phi()
  to:main::@8

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

void compare(int w1 , int w2 , char op)
compare: scope:[compare]  from main::@3
  [29] if(compare::op#0==LT) goto compare::@1
  to:compare::@7
compare::@7: scope:[compare]  from compare
  [30] if(compare::op#0==LE) goto compare::@2
  to:compare::@8
compare::@8: scope:[compare]  from compare::@7
  [31] if(compare::op#0==GT) goto compare::@3
  to:compare::@9
compare::@9: scope:[compare]  from compare::@8
  [32] if(compare::op#0==GE) goto compare::@4
  to:compare::@10
compare::@10: scope:[compare]  from compare::@9
  [33] if(compare::op#0==EQ) goto compare::@5
  to:compare::@11
compare::@11: scope:[compare]  from compare::@10
  [34] if(compare::op#0!=NE) goto compare::@6
  to:compare::@12
compare::@12: scope:[compare]  from compare::@11
  [35] if(compare::w1#0==compare::w2#0) goto compare::@19
  to:compare::@13
compare::@13: scope:[compare]  from compare::@12
  [36] phi()
  to:compare::@19
compare::@19: scope:[compare]  from compare::@12 compare::@13
  [37] compare::r#12 = phi( compare::@12/FF, compare::@13/TT )
  to:compare::@6
compare::@6: scope:[compare]  from compare::@11 compare::@19 compare::@20 compare::@21 compare::@22 compare::@23 compare::@24
  [38] compare::r#10 = phi( compare::@11/FF, compare::@19/compare::r#12, compare::@20/compare::r#13, compare::@21/compare::r#14, compare::@22/compare::r#15, compare::@23/compare::r#16, compare::@24/compare::r#17 )
  [38] compare::ops#7 = phi( compare::@11/(char *) 0, compare::@19/compare::ops#1, compare::@20/compare::ops#2, compare::@21/compare::ops#3, compare::@22/compare::ops#4, compare::@23/compare::ops#5, compare::@24/compare::ops#6 )
  [39] print_sint::w#1 = compare::w1#0
  [40] call print_sint
  to:compare::@25
compare::@25: scope:[compare]  from compare::@6
  [41] print_str::str#1 = compare::ops#7
  [42] call print_str
  to:compare::@26
compare::@26: scope:[compare]  from compare::@25
  [43] print_sint::w#2 = compare::w2#0
  [44] call print_sint
  to:compare::@27
compare::@27: scope:[compare]  from compare::@26
  [45] print_char::ch#5 = compare::r#10
  [46] call print_char
  to:compare::@return
compare::@return: scope:[compare]  from compare::@27
  [47] return 
  to:@return
compare::@5: scope:[compare]  from compare::@10
  [48] if(compare::w1#0!=compare::w2#0) goto compare::@20
  to:compare::@14
compare::@14: scope:[compare]  from compare::@5
  [49] phi()
  to:compare::@20
compare::@20: scope:[compare]  from compare::@14 compare::@5
  [50] compare::r#13 = phi( compare::@14/TT, compare::@5/FF )
  to:compare::@6
compare::@4: scope:[compare]  from compare::@9
  [51] if(compare::w1#0<compare::w2#0) goto compare::@21
  to:compare::@15
compare::@15: scope:[compare]  from compare::@4
  [52] phi()
  to:compare::@21
compare::@21: scope:[compare]  from compare::@15 compare::@4
  [53] compare::r#14 = phi( compare::@15/TT, compare::@4/FF )
  to:compare::@6
compare::@3: scope:[compare]  from compare::@8
  [54] if(compare::w1#0<=compare::w2#0) goto compare::@22
  to:compare::@16
compare::@16: scope:[compare]  from compare::@3
  [55] phi()
  to:compare::@22
compare::@22: scope:[compare]  from compare::@16 compare::@3
  [56] compare::r#15 = phi( compare::@16/TT, compare::@3/FF )
  to:compare::@6
compare::@2: scope:[compare]  from compare::@7
  [57] if(compare::w1#0>compare::w2#0) goto compare::@23
  to:compare::@17
compare::@17: scope:[compare]  from compare::@2
  [58] phi()
  to:compare::@23
compare::@23: scope:[compare]  from compare::@17 compare::@2
  [59] compare::r#16 = phi( compare::@17/TT, compare::@2/FF )
  to:compare::@6
compare::@1: scope:[compare]  from compare
  [60] if(compare::w1#0>=compare::w2#0) goto compare::@24
  to:compare::@18
compare::@18: scope:[compare]  from compare::@1
  [61] phi()
  to:compare::@24
compare::@24: scope:[compare]  from compare::@1 compare::@18
  [62] compare::r#17 = phi( compare::@1/FF, compare::@18/TT )
  to:compare::@6

void print_ln()
print_ln: scope:[print_ln]  from main::@5
  [63] phi()
  to:print_ln::@1
print_ln::@1: scope:[print_ln]  from print_ln print_ln::@1
  [64] print_line_cursor#10 = phi( print_ln/print_line_cursor#21, print_ln::@1/print_line_cursor#0 )
  [65] print_line_cursor#0 = print_line_cursor#10 + $28
  [66] if(print_line_cursor#0<print_char_cursor#14) goto print_ln::@1
  to:print_ln::@return
print_ln::@return: scope:[print_ln]  from print_ln::@1
  [67] return 
  to:@return

void * memset(void *str , char c , unsigned int num)
memset: scope:[memset]  from print_cls
  [68] phi()
  to:memset::@1
memset::@1: scope:[memset]  from memset memset::@2
  [69] memset::dst#2 = phi( memset/(char *)memset::str#0, memset::@2/memset::dst#1 )
  [70] if(memset::dst#2!=memset::end#0) goto memset::@2
  to:memset::@return
memset::@return: scope:[memset]  from memset::@1
  [71] return 
  to:@return
memset::@2: scope:[memset]  from memset::@1
  [72] *memset::dst#2 = memset::c#0
  [73] memset::dst#1 = ++ memset::dst#2
  to:memset::@1

void print_sint(int w)
print_sint: scope:[print_sint]  from compare::@26 compare::@6
  [74] print_char_cursor#61 = phi( compare::@26/print_char_cursor#14, compare::@6/print_char_cursor#67 )
  [74] print_sint::w#3 = phi( compare::@26/print_sint::w#2, compare::@6/print_sint::w#1 )
  [75] if(print_sint::w#3<0) goto print_sint::@1
  to:print_sint::@3
print_sint::@3: scope:[print_sint]  from print_sint
  [76] phi()
  [77] call print_char
  to:print_sint::@2
print_sint::@2: scope:[print_sint]  from print_sint::@3 print_sint::@4
  [78] print_sint::w#5 = phi( print_sint::@4/print_sint::w#0, print_sint::@3/print_sint::w#3 )
  [79] print_uint::w#0 = (unsigned int)print_sint::w#5
  [80] call print_uint
  to:print_sint::@return
print_sint::@return: scope:[print_sint]  from print_sint::@2
  [81] return 
  to:@return
print_sint::@1: scope:[print_sint]  from print_sint
  [82] phi()
  [83] call print_char
  to:print_sint::@4
print_sint::@4: scope:[print_sint]  from print_sint::@1
  [84] print_sint::w#0 = - print_sint::w#3
  to:print_sint::@2

void print_str(char *str)
print_str: scope:[print_str]  from compare::@25
  [85] phi()
  to:print_str::@1
print_str::@1: scope:[print_str]  from print_str print_str::@3
  [86] print_str::str#2 = phi( print_str/print_str::str#1, print_str::@3/print_str::str#0 )
  [87] if(0!=*print_str::str#2) goto print_str::@2
  to:print_str::@return
print_str::@return: scope:[print_str]  from print_str::@1
  [88] return 
  to:@return
print_str::@2: scope:[print_str]  from print_str::@1
  [89] print_char::ch#0 = *print_str::str#2
  [90] call print_char
  to:print_str::@3
print_str::@3: scope:[print_str]  from print_str::@2
  [91] print_str::str#0 = ++ print_str::str#2
  to:print_str::@1

void print_char(char ch)
print_char: scope:[print_char]  from compare::@27 print_sint::@1 print_sint::@3 print_str::@2 print_uchar print_uchar::@1
  [92] print_char_cursor#44 = phi( compare::@27/print_char_cursor#14, print_sint::@1/print_char_cursor#61, print_sint::@3/print_char_cursor#61, print_str::@2/print_char_cursor#14, print_uchar/print_char_cursor#14, print_uchar::@1/print_char_cursor#14 )
  [92] print_char::ch#6 = phi( compare::@27/print_char::ch#5, print_sint::@1/'-', print_sint::@3/' ', print_str::@2/print_char::ch#0, print_uchar/print_char::ch#3, print_uchar::@1/print_char::ch#4 )
  [93] *print_char_cursor#44 = print_char::ch#6
  [94] print_char_cursor#14 = ++ print_char_cursor#44
  to:print_char::@return
print_char::@return: scope:[print_char]  from print_char
  [95] return 
  to:@return

void print_uint(unsigned int w)
print_uint: scope:[print_uint]  from print_sint::@2
  [96] print_uchar::b#0 = byte1  print_uint::w#0
  [97] call print_uchar
  to:print_uint::@1
print_uint::@1: scope:[print_uint]  from print_uint
  [98] print_uchar::b#1 = byte0  print_uint::w#0
  [99] call print_uchar
  to:print_uint::@return
print_uint::@return: scope:[print_uint]  from print_uint::@1
  [100] return 
  to:@return

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