@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::@4 [6] (byte*) print_char_cursor#14 ← phi( main/(byte*) 1024 main::@4/(byte*) print_line_cursor#1 ) [6] (byte*) print_line_cursor#15 ← phi( main/(byte*) 1024 main::@4/(byte*) print_line_cursor#25 ) [6] (dword) main::i#2 ← phi( main/(dword) 0 main::@4/(dword) main::i#1 ) [7] if((dword) main::i#2<(word) $d02) goto main::@2 to:main::@return main::@return: scope:[main] from main::@1 [8] return to:@return main::@2: scope:[main] from main::@1 [9] (dword~) main::$5 ← (dword) main::i#2 << (byte) 4 [10] (dword~) main::$6 ← (dword~) main::$5 + (dword) main::i#2 [11] (dword~) main::$7 ← (dword~) main::$6 << (byte) 2 [12] (dword~) main::$8 ← (dword~) main::$7 + (dword) main::i#2 [13] (dword~) main::$9 ← (dword~) main::$8 << (byte) 2 [14] (dword~) main::$10 ← (dword~) main::$9 + (dword) main::i#2 [15] (dword~) main::$11 ← (dword~) main::$10 << (byte) 1 [16] (dword) print_ulong_decimal::w#0 ← (dword~) main::$11 + (dword) main::i#2 [17] call print_ulong_decimal to:main::@3 main::@3: scope:[main] from main::@2 [18] phi() [19] call print_ln to:main::@4 main::@4: scope:[main] from main::@3 [20] (dword) main::i#1 ← (dword) main::i#2 + (word) $14d [21] (byte*) print_line_cursor#25 ← (byte*) print_line_cursor#1 to:main::@1 (void()) print_ln() print_ln: scope:[print_ln] from main::@3 [22] phi() to:print_ln::@1 print_ln::@1: scope:[print_ln] from print_ln print_ln::@2 [23] (byte*) print_line_cursor#9 ← phi( print_ln/(byte*) print_line_cursor#15 print_ln::@2/(byte*) print_line_cursor#24 ) [24] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#9 + (byte) $28 [25] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#17) goto print_ln::@2 to:print_ln::@return print_ln::@return: scope:[print_ln] from print_ln::@1 [26] return to:@return print_ln::@2: scope:[print_ln] from print_ln::@1 [27] (byte*) print_line_cursor#24 ← (byte*) print_line_cursor#1 to:print_ln::@1 (void()) print_ulong_decimal((dword) print_ulong_decimal::w) print_ulong_decimal: scope:[print_ulong_decimal] from main::@2 [28] (dword) ultoa::value#1 ← (dword) print_ulong_decimal::w#0 [29] call ultoa to:print_ulong_decimal::@1 print_ulong_decimal::@1: scope:[print_ulong_decimal] from print_ulong_decimal [30] phi() [31] call print_str to:print_ulong_decimal::@return print_ulong_decimal::@return: scope:[print_ulong_decimal] from print_ulong_decimal::@1 [32] return to:@return (void()) print_str((byte*) print_str::str) print_str: scope:[print_str] from print_ulong_decimal::@1 [33] (byte*) print_char_cursor#40 ← (byte*) print_char_cursor#14 to:print_str::@1 print_str::@1: scope:[print_str] from print_str print_str::@3 [34] (byte*) print_char_cursor#17 ← phi( print_str/(byte*) print_char_cursor#40 print_str::@3/(byte*) print_char_cursor#23 ) [34] (byte*) print_str::str#2 ← phi( print_str/(const byte*) decimal_digits_long print_str::@3/(byte*) print_str::str#0 ) [35] if((byte) 0!=*((byte*) print_str::str#2)) goto print_str::@2 to:print_str::@return print_str::@return: scope:[print_str] from print_str::@1 [36] return to:@return print_str::@2: scope:[print_str] from print_str::@1 [37] (byte) print_char::ch#0 ← *((byte*) print_str::str#2) [38] call print_char to:print_str::@3 print_str::@3: scope:[print_str] from print_str::@2 [39] (byte*) print_str::str#0 ← ++ (byte*) print_str::str#2 to:print_str::@1 (void()) print_char((byte) print_char::ch) print_char: scope:[print_char] from print_str::@2 [40] *((byte*) print_char_cursor#17) ← (byte) print_char::ch#0 [41] (byte*) print_char_cursor#23 ← ++ (byte*) print_char_cursor#17 to:print_char::@return print_char::@return: scope:[print_char] from print_char [42] return to:@return (void()) ultoa((dword) ultoa::value , (byte*) ultoa::buffer , (byte) ultoa::radix) ultoa: scope:[ultoa] from print_ulong_decimal [43] phi() to:ultoa::@1 ultoa::@1: scope:[ultoa] from ultoa ultoa::@4 [44] (byte*) ultoa::buffer#11 ← phi( ultoa::@4/(byte*) ultoa::buffer#14 ultoa/(const byte*) decimal_digits_long ) [44] (byte) ultoa::started#2 ← phi( ultoa::@4/(byte) ultoa::started#4 ultoa/(byte) 0 ) [44] (dword) ultoa::value#2 ← phi( ultoa::@4/(dword) ultoa::value#6 ultoa/(dword) ultoa::value#1 ) [44] (byte) ultoa::digit#2 ← phi( ultoa::@4/(byte) ultoa::digit#1 ultoa/(byte) 0 ) [45] if((byte) ultoa::digit#2<(const byte) ultoa::max_digits#1-(byte) 1) goto ultoa::@2 to:ultoa::@3 ultoa::@3: scope:[ultoa] from ultoa::@1 [46] (byte~) ultoa::$11 ← (byte)(dword) ultoa::value#2 [47] *((byte*) ultoa::buffer#11) ← *((const byte*) DIGITS + (byte~) ultoa::$11) [48] (byte*) ultoa::buffer#3 ← ++ (byte*) ultoa::buffer#11 [49] *((byte*) ultoa::buffer#3) ← (byte) 0 to:ultoa::@return ultoa::@return: scope:[ultoa] from ultoa::@3 [50] return to:@return ultoa::@2: scope:[ultoa] from ultoa::@1 [51] (byte~) ultoa::$10 ← (byte) ultoa::digit#2 << (byte) 2 [52] (dword) ultoa::digit_value#0 ← *((const dword*) RADIX_DECIMAL_VALUES_LONG + (byte~) ultoa::$10) [53] if((byte) 0!=(byte) ultoa::started#2) goto ultoa::@5 to:ultoa::@7 ultoa::@7: scope:[ultoa] from ultoa::@2 [54] if((dword) ultoa::value#2>=(dword) ultoa::digit_value#0) goto ultoa::@5 to:ultoa::@4 ultoa::@4: scope:[ultoa] from ultoa::@6 ultoa::@7 [55] (byte*) ultoa::buffer#14 ← phi( ultoa::@7/(byte*) ultoa::buffer#11 ultoa::@6/(byte*) ultoa::buffer#4 ) [55] (byte) ultoa::started#4 ← phi( ultoa::@7/(byte) ultoa::started#2 ultoa::@6/(byte) 1 ) [55] (dword) ultoa::value#6 ← phi( ultoa::@7/(dword) ultoa::value#2 ultoa::@6/(dword) ultoa::value#0 ) [56] (byte) ultoa::digit#1 ← ++ (byte) ultoa::digit#2 to:ultoa::@1 ultoa::@5: scope:[ultoa] from ultoa::@2 ultoa::@7 [57] (byte*) ultoa_append::buffer#0 ← (byte*) ultoa::buffer#11 [58] (dword) ultoa_append::value#0 ← (dword) ultoa::value#2 [59] (dword) ultoa_append::sub#0 ← (dword) ultoa::digit_value#0 [60] call ultoa_append [61] (dword) ultoa_append::return#0 ← (dword) ultoa_append::value#2 to:ultoa::@6 ultoa::@6: scope:[ultoa] from ultoa::@5 [62] (dword) ultoa::value#0 ← (dword) ultoa_append::return#0 [63] (byte*) ultoa::buffer#4 ← ++ (byte*) ultoa::buffer#11 to:ultoa::@4 (dword()) ultoa_append((byte*) ultoa_append::buffer , (dword) ultoa_append::value , (dword) ultoa_append::sub) ultoa_append: scope:[ultoa_append] from ultoa::@5 [64] phi() to:ultoa_append::@1 ultoa_append::@1: scope:[ultoa_append] from ultoa_append ultoa_append::@2 [65] (byte) ultoa_append::digit#2 ← phi( ultoa_append/(byte) 0 ultoa_append::@2/(byte) ultoa_append::digit#1 ) [65] (dword) ultoa_append::value#2 ← phi( ultoa_append/(dword) ultoa_append::value#0 ultoa_append::@2/(dword) ultoa_append::value#1 ) [66] if((dword) ultoa_append::value#2>=(dword) ultoa_append::sub#0) goto ultoa_append::@2 to:ultoa_append::@3 ultoa_append::@3: scope:[ultoa_append] from ultoa_append::@1 [67] *((byte*) ultoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) ultoa_append::digit#2) to:ultoa_append::@return ultoa_append::@return: scope:[ultoa_append] from ultoa_append::@3 [68] return to:@return ultoa_append::@2: scope:[ultoa_append] from ultoa_append::@1 [69] (byte) ultoa_append::digit#1 ← ++ (byte) ultoa_append::digit#2 [70] (dword) ultoa_append::value#1 ← (dword) ultoa_append::value#2 - (dword) ultoa_append::sub#0 to:ultoa_append::@1 (void()) print_cls() print_cls: scope:[print_cls] from main [71] phi() [72] call memset to:print_cls::@return print_cls::@return: scope:[print_cls] from print_cls [73] return to:@return (void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num) memset: scope:[memset] from print_cls [74] phi() to:memset::@1 memset::@1: scope:[memset] from memset memset::@2 [75] (byte*) memset::dst#2 ← phi( memset/(byte*)(const void*) memset::str#0 memset::@2/(byte*) memset::dst#1 ) [76] if((byte*) memset::dst#2!=(const byte*) memset::end#0) goto memset::@2 to:memset::@return memset::@return: scope:[memset] from memset::@1 [77] return to:@return memset::@2: scope:[memset] from memset::@1 [78] *((byte*) memset::dst#2) ← (const byte) memset::c#0 [79] (byte*) memset::dst#1 ← ++ (byte*) memset::dst#2 to:memset::@1