@begin: scope:[] from [0] phi() to:@1 @1: scope:[] from @begin [1] phi() [2] call main to:@end @end: scope:[] from @1 [3] phi() (void()) main() main: scope:[main] from @1 [4] phi() [5] call print_cls to:main::@1 main::@1: scope:[main] from main main::@6 [6] (byte) main::i#2 ← phi( main/(byte) 0 main::@6/(byte) main::i#1 ) [6] (byte*) print_line_cursor#19 ← phi( main/(byte*) 1024 main::@6/(byte*) print_line_cursor#1 ) [6] (byte*) print_char_cursor#53 ← phi( main/(byte*) 1024 main::@6/(byte*~) print_char_cursor#63 ) [6] (signed word) main::w1#2 ← phi( main/(signed word) $4d2 main::@6/(signed word) main::w1#1 ) [7] (signed word) main::w2#0 ← (signed word) main::w1#2 - (signed byte) $5b [8] (signed word) main::w1#1 ← (signed word) main::w2#0 - (signed byte) $29 [9] (signed word) print_sword::w#1 ← (signed word) main::w1#1 [10] call print_sword to:main::@2 main::@2: scope:[main] from main::@1 [11] phi() [12] call print_char to:main::@3 main::@3: scope:[main] from main::@2 [13] (signed word) print_sword::w#2 ← (signed word) main::w2#0 [14] call print_sword to:main::@4 main::@4: scope:[main] from main::@3 [15] phi() [16] call print_ln to:main::@5 main::@5: scope:[main] from main::@4 [17] (byte) main::i#1 ← ++ (byte) main::i#2 [18] if((byte) main::i#1!=(byte) $b) goto main::@6 to:main::@return main::@return: scope:[main] from main::@5 [19] return to:@return main::@6: scope:[main] from main::@5 [20] (byte*~) print_char_cursor#63 ← (byte*) print_line_cursor#1 to:main::@1 (void()) print_ln() print_ln: scope:[print_ln] from main::@4 [21] phi() to:print_ln::@1 print_ln::@1: scope:[print_ln] from print_ln print_ln::@1 [22] (byte*) print_line_cursor#9 ← phi( print_ln/(byte*) print_line_cursor#19 print_ln::@1/(byte*) print_line_cursor#1 ) [23] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#9 + (byte) $28 [24] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#13) goto print_ln::@1 to:print_ln::@return print_ln::@return: scope:[print_ln] from print_ln::@1 [25] return to:@return (void()) print_sword((signed word) print_sword::w) print_sword: scope:[print_sword] from main::@1 main::@3 [26] (byte*) print_char_cursor#47 ← phi( main::@1/(byte*) print_char_cursor#53 main::@3/(byte*) print_char_cursor#13 ) [26] (signed word) print_sword::w#3 ← phi( main::@1/(signed word) print_sword::w#1 main::@3/(signed word) print_sword::w#2 ) [27] if((signed word) print_sword::w#3<(signed byte) 0) goto print_sword::@1 to:print_sword::@3 print_sword::@3: scope:[print_sword] from print_sword [28] phi() [29] call print_char to:print_sword::@2 print_sword::@2: scope:[print_sword] from print_sword::@3 print_sword::@4 [30] (signed word) print_sword::w#5 ← phi( print_sword::@4/(signed word) print_sword::w#0 print_sword::@3/(signed word) print_sword::w#3 ) [31] (word) print_word::w#0 ← (word)(signed word) print_sword::w#5 [32] call print_word to:print_sword::@return print_sword::@return: scope:[print_sword] from print_sword::@2 [33] return to:@return print_sword::@1: scope:[print_sword] from print_sword [34] phi() [35] call print_char to:print_sword::@4 print_sword::@4: scope:[print_sword] from print_sword::@1 [36] (signed word) print_sword::w#0 ← - (signed word) print_sword::w#3 to:print_sword::@2 (void()) print_char((byte) print_char::ch) print_char: scope:[print_char] from main::@2 print_byte print_byte::@1 print_sword::@1 print_sword::@3 [37] (byte*) print_char_cursor#36 ← phi( main::@2/(byte*) print_char_cursor#13 print_byte/(byte*) print_char_cursor#13 print_byte::@1/(byte*) print_char_cursor#13 print_sword::@1/(byte*) print_char_cursor#47 print_sword::@3/(byte*) print_char_cursor#47 ) [37] (byte) print_char::ch#5 ← phi( main::@2/(byte) ' ' print_byte/(byte) print_char::ch#2 print_byte::@1/(byte) print_char::ch#3 print_sword::@1/(byte) '-' print_sword::@3/(byte) ' ' ) [38] *((byte*) print_char_cursor#36) ← (byte) print_char::ch#5 [39] (byte*) print_char_cursor#13 ← ++ (byte*) print_char_cursor#36 to:print_char::@return print_char::@return: scope:[print_char] from print_char [40] return to:@return (void()) print_word((word) print_word::w) print_word: scope:[print_word] from print_sword::@2 [41] (byte) print_byte::b#0 ← > (word) print_word::w#0 [42] call print_byte to:print_word::@1 print_word::@1: scope:[print_word] from print_word [43] (byte) print_byte::b#1 ← < (word) print_word::w#0 [44] call print_byte to:print_word::@return print_word::@return: scope:[print_word] from print_word::@1 [45] return to:@return (void()) print_byte((byte) print_byte::b) print_byte: scope:[print_byte] from print_word print_word::@1 [46] (byte) print_byte::b#2 ← phi( print_word/(byte) print_byte::b#0 print_word::@1/(byte) print_byte::b#1 ) [47] (byte~) print_byte::$0 ← (byte) print_byte::b#2 >> (byte) 4 [48] (byte) print_char::ch#2 ← *((const byte[]) print_hextab + (byte~) print_byte::$0) [49] call print_char to:print_byte::@1 print_byte::@1: scope:[print_byte] from print_byte [50] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte) $f [51] (byte) print_char::ch#3 ← *((const byte[]) print_hextab + (byte~) print_byte::$2) [52] call print_char to:print_byte::@return print_byte::@return: scope:[print_byte] from print_byte::@1 [53] return to:@return (void()) print_cls() print_cls: scope:[print_cls] from main [54] phi() [55] call memset to:print_cls::@return print_cls::@return: scope:[print_cls] from print_cls [56] return to:@return (void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num) memset: scope:[memset] from print_cls [57] phi() to:memset::@1 memset::@1: scope:[memset] from memset memset::@2 [58] (byte*) memset::dst#2 ← phi( memset/(byte*)(const void*) memset::str#0 memset::@2/(byte*) memset::dst#1 ) [59] if((byte*) memset::dst#2!=(const byte*) memset::end#0) goto memset::@2 to:memset::@return memset::@return: scope:[memset] from memset::@1 [60] return to:@return memset::@2: scope:[memset] from memset::@1 [61] *((byte*) memset::dst#2) ← (const byte) memset::c#0 [62] (byte*) memset::dst#1 ← ++ (byte*) memset::dst#2 to:memset::@1