
void __start()
__start: scope:[__start]  from
  [0] phi()
  to:__start::__init1
__start::__init1: scope:[__start]  from __start
  [1] conio_cursor_x = 0
  [2] conio_cursor_y = 0
  [3] conio_line_text = DEFAULT_SCREEN
  [4] conio_line_color = COLORRAM
  [5] conio_textcolor = LIGHT_BLUE
  [6] call conio_c64_init
  to:__start::@1
__start::@1: scope:[__start]  from __start::__init1
  [7] phi()
  [8] call main
  to:__start::@return
__start::@return: scope:[__start]  from __start::@1
  [9] return 
  to:@return

void conio_c64_init()
conio_c64_init: scope:[conio_c64_init]  from __start::__init1
  [10] conio_c64_init::line#0 = *conio_c64_init::BASIC_CURSOR_LINE
  [11] if(conio_c64_init::line#0<$19) goto conio_c64_init::@2
  to:conio_c64_init::@1
conio_c64_init::@2: scope:[conio_c64_init]  from conio_c64_init
  [12] phi()
  to:conio_c64_init::@1
conio_c64_init::@1: scope:[conio_c64_init]  from conio_c64_init conio_c64_init::@2
  [13] conio_c64_init::line#2 = phi( conio_c64_init::@2/conio_c64_init::line#0, conio_c64_init/$19-1 )
  [14] gotoxy::y#2 = conio_c64_init::line#2
  [15] call gotoxy
  to:conio_c64_init::@return
conio_c64_init::@return: scope:[conio_c64_init]  from conio_c64_init::@1
  [16] return 
  to:@return

__stackcall void cputc(char c)
cputc: scope:[cputc]  from printf_number_buffer::@3
  [17] cputc::c#0 = stackidx(char,cputc::OFFSET_STACK_C)
  [18] if(cputc::c#0=='
') goto cputc::@1
  to:cputc::@2
cputc::@2: scope:[cputc]  from cputc
  [19] conio_line_text[conio_cursor_x] = cputc::c#0
  [20] conio_line_color[conio_cursor_x] = conio_textcolor
  [21] conio_cursor_x = ++ conio_cursor_x
  [22] if(conio_cursor_x!=$28) goto cputc::@return
  to:cputc::@3
cputc::@3: scope:[cputc]  from cputc::@2
  [23] phi()
  [24] call cputln
  to:cputc::@return
cputc::@return: scope:[cputc]  from cputc::@1 cputc::@2 cputc::@3
  [25] return 
  to:@return
cputc::@1: scope:[cputc]  from cputc
  [26] phi()
  [27] call cputln
  to:cputc::@return

void main()
main: scope:[main]  from __start::@1
  [28] phi()
  [29] call strcmp
  [30] strcmp::return#12 = strcmp::return#11
  to:main::@2
main::@2: scope:[main]  from main
  [31] assert_cmp::actual#0 = strcmp::return#12
  [32] call assert_cmp
  to:main::@3
main::@3: scope:[main]  from main::@2
  [33] phi()
  [34] call strcmp
  [35] strcmp::return#13 = strcmp::return#11
  to:main::@4
main::@4: scope:[main]  from main::@3
  [36] assert_cmp::actual#1 = strcmp::return#13
  [37] call assert_cmp
  to:main::@5
main::@5: scope:[main]  from main::@4
  [38] phi()
  [39] call strcmp
  [40] strcmp::return#14 = strcmp::return#11
  to:main::@6
main::@6: scope:[main]  from main::@5
  [41] assert_cmp::actual#2 = strcmp::return#14
  [42] call assert_cmp
  to:main::@7
main::@7: scope:[main]  from main::@6
  [43] phi()
  [44] call strcmp
  [45] strcmp::return#15 = strcmp::return#11
  to:main::@8
main::@8: scope:[main]  from main::@7
  [46] assert_cmp::actual#3 = strcmp::return#15
  [47] call assert_cmp
  to:main::@9
main::@9: scope:[main]  from main::@8
  [48] phi()
  [49] call strcmp
  [50] strcmp::return#16 = strcmp::return#11
  to:main::@10
main::@10: scope:[main]  from main::@9
  [51] assert_cmp::actual#4 = strcmp::return#16
  [52] call assert_cmp
  to:main::@11
main::@11: scope:[main]  from main::@10
  [53] phi()
  [54] call strcmp
  [55] strcmp::return#17 = strcmp::return#11
  to:main::@12
main::@12: scope:[main]  from main::@11
  [56] assert_cmp::actual#5 = strcmp::return#17
  [57] call assert_cmp
  to:main::@13
main::@13: scope:[main]  from main::@12
  [58] phi()
  [59] call strcmp
  [60] strcmp::return#18 = strcmp::return#11
  to:main::@14
main::@14: scope:[main]  from main::@13
  [61] assert_cmp::actual#6 = strcmp::return#18
  [62] call assert_cmp
  to:main::@15
main::@15: scope:[main]  from main::@14
  [63] phi()
  [64] call strcmp
  [65] strcmp::return#10 = strcmp::return#11
  to:main::@16
main::@16: scope:[main]  from main::@15
  [66] assert_cmp::actual#7 = strcmp::return#10
  [67] call assert_cmp
  to:main::@17
main::@17: scope:[main]  from main::@16
  [68] phi()
  [69] call strncmp
  [70] strncmp::return#3 = strncmp::return#2
  to:main::@18
main::@18: scope:[main]  from main::@17
  [71] assert_cmp::actual#8 = strncmp::return#3
  [72] call assert_cmp
  to:main::@19
main::@19: scope:[main]  from main::@18
  [73] phi()
  [74] call strncmp
  [75] strncmp::return#10 = strncmp::return#2
  to:main::@20
main::@20: scope:[main]  from main::@19
  [76] assert_cmp::actual#9 = strncmp::return#10
  [77] call assert_cmp
  to:main::@21
main::@21: scope:[main]  from main::@20
  [78] phi()
  [79] call strncmp
  [80] strncmp::return#11 = strncmp::return#2
  to:main::@22
main::@22: scope:[main]  from main::@21
  [81] assert_cmp::actual#10 = strncmp::return#11
  [82] call assert_cmp
  to:main::@23
main::@23: scope:[main]  from main::@22
  [83] phi()
  [84] call strncmp
  [85] strncmp::return#12 = strncmp::return#2
  to:main::@24
main::@24: scope:[main]  from main::@23
  [86] assert_cmp::actual#11 = strncmp::return#12
  [87] call assert_cmp
  to:main::@25
main::@25: scope:[main]  from main::@24
  [88] phi()
  [89] call strncmp
  [90] strncmp::return#13 = strncmp::return#2
  to:main::@26
main::@26: scope:[main]  from main::@25
  [91] assert_cmp::actual#12 = strncmp::return#13
  [92] call assert_cmp
  to:main::@27
main::@27: scope:[main]  from main::@26
  [93] phi()
  [94] call memcmp
  [95] memcmp::return#3 = memcmp::return#2
  to:main::@28
main::@28: scope:[main]  from main::@27
  [96] assert_cmp::actual#13 = memcmp::return#3
  [97] call assert_cmp
  to:main::@29
main::@29: scope:[main]  from main::@28
  [98] phi()
  [99] call memcmp
  [100] memcmp::return#4 = memcmp::return#2
  to:main::@30
main::@30: scope:[main]  from main::@29
  [101] assert_cmp::actual#14 = memcmp::return#4
  [102] call assert_cmp
  to:main::@31
main::@31: scope:[main]  from main::@30
  [103] phi()
  [104] call memcmp
  [105] memcmp::return#10 = memcmp::return#2
  to:main::@32
main::@32: scope:[main]  from main::@31
  [106] assert_cmp::actual#15 = memcmp::return#10
  [107] call assert_cmp
  to:main::@33
main::@33: scope:[main]  from main::@32
  [108] phi()
  [109] call memcmp
  [110] memcmp::return#11 = memcmp::return#2
  to:main::@34
main::@34: scope:[main]  from main::@33
  [111] assert_cmp::actual#16 = memcmp::return#11
  [112] call assert_cmp
  to:main::@1
main::@1: scope:[main]  from main::@1 main::@34
  [113] phi()
  to:main::@1

void gotoxy(char x , char y)
gotoxy: scope:[gotoxy]  from conio_c64_init::@1
  [114] if(gotoxy::y#2<$19+1) goto gotoxy::@3
  to:gotoxy::@1
gotoxy::@3: scope:[gotoxy]  from gotoxy
  [115] phi()
  to:gotoxy::@1
gotoxy::@1: scope:[gotoxy]  from gotoxy gotoxy::@3
  [116] gotoxy::y#4 = phi( gotoxy::@3/gotoxy::y#2, gotoxy/0 )
  to:gotoxy::@2
gotoxy::@2: scope:[gotoxy]  from gotoxy::@1
  [117] conio_cursor_x = gotoxy::x#2
  [118] conio_cursor_y = gotoxy::y#4
  [119] gotoxy::$7 = (unsigned int)gotoxy::y#4
  [120] gotoxy::$8 = gotoxy::$7 << 2
  [121] gotoxy::$9 = gotoxy::$8 + gotoxy::$7
  [122] gotoxy::line_offset#0 = gotoxy::$9 << 3
  [123] gotoxy::$5 = DEFAULT_SCREEN + gotoxy::line_offset#0
  [124] conio_line_text = gotoxy::$5
  [125] gotoxy::$6 = COLORRAM + gotoxy::line_offset#0
  [126] conio_line_color = gotoxy::$6
  to:gotoxy::@return
gotoxy::@return: scope:[gotoxy]  from gotoxy::@2
  [127] return 
  to:@return

void cputln()
cputln: scope:[cputln]  from cputc::@1 cputc::@3
  [128] conio_line_text = conio_line_text + $28
  [129] conio_line_color = conio_line_color + $28
  [130] conio_cursor_x = 0
  [131] conio_cursor_y = ++ conio_cursor_y
  [132] call cscroll
  to:cputln::@return
cputln::@return: scope:[cputln]  from cputln
  [133] return 
  to:@return

int strcmp(const char *str1 , const char *str2)
strcmp: scope:[strcmp]  from main main::@11 main::@13 main::@15 main::@3 main::@5 main::@7 main::@9
  [134] strcmp::s2#0 = phi( main/main::str2, main::@11/main::str25, main::@13/main::str26, main::@15/main::str27, main::@3/main::str21, main::@5/main::str11, main::@7/main::str13, main::@9/main::str14 )
  [134] strcmp::s1#0 = phi( main/main::str1, main::@11/main::str15, main::@13/main::str16, main::@15/main::str16, main::@3/main::str11, main::@5/main::str12, main::@7/main::str13, main::@9/main::str14 )
  to:strcmp::@1
strcmp::@1: scope:[strcmp]  from strcmp strcmp::@4
  [135] strcmp::s2#2 = phi( strcmp/strcmp::s2#0, strcmp::@4/strcmp::s2#1 )
  [135] strcmp::s1#2 = phi( strcmp/strcmp::s1#0, strcmp::@4/strcmp::s1#1 )
  [136] if(*strcmp::s1#2==*strcmp::s2#2) goto strcmp::@2
  to:strcmp::@3
strcmp::@3: scope:[strcmp]  from strcmp::@1
  [137] strcmp::$0 = *strcmp::s1#2 - *strcmp::s2#2
  [138] strcmp::return#0 = (int)(signed char)strcmp::$0
  to:strcmp::@return
strcmp::@return: scope:[strcmp]  from strcmp::@2 strcmp::@3
  [139] strcmp::return#11 = phi( strcmp::@3/strcmp::return#0, strcmp::@2/0 )
  [140] return 
  to:@return
strcmp::@2: scope:[strcmp]  from strcmp::@1
  [141] if(*strcmp::s1#2!=0) goto strcmp::@4
  to:strcmp::@return
strcmp::@4: scope:[strcmp]  from strcmp::@2
  [142] strcmp::s1#1 = ++ strcmp::s1#2
  [143] strcmp::s2#1 = ++ strcmp::s2#2
  to:strcmp::@1

void assert_cmp(signed char expect , signed char actual , char *message)
assert_cmp: scope:[assert_cmp]  from main::@10 main::@12 main::@14 main::@16 main::@18 main::@2 main::@20 main::@22 main::@24 main::@26 main::@28 main::@30 main::@32 main::@34 main::@4 main::@6 main::@8
  [144] assert_cmp::message#17 = phi( main::@10/main::message4, main::@12/main::message5, main::@14/main::message6, main::@16/main::message7, main::@18/main::message8, main::@2/main::message, main::@20/main::message9, main::@22/main::message10, main::@24/main::message11, main::@26/main::message12, main::@28/main::message13, main::@30/main::message14, main::@32/main::message15, main::@34/main::message16, main::@4/main::message1, main::@6/main::message2, main::@8/main::message3 )
  [144] assert_cmp::actual#17 = phi( main::@10/assert_cmp::actual#4, main::@12/assert_cmp::actual#5, main::@14/assert_cmp::actual#6, main::@16/assert_cmp::actual#7, main::@18/assert_cmp::actual#8, main::@2/assert_cmp::actual#0, main::@20/assert_cmp::actual#9, main::@22/assert_cmp::actual#10, main::@24/assert_cmp::actual#11, main::@26/assert_cmp::actual#12, main::@28/assert_cmp::actual#13, main::@30/assert_cmp::actual#14, main::@32/assert_cmp::actual#15, main::@34/assert_cmp::actual#16, main::@4/assert_cmp::actual#1, main::@6/assert_cmp::actual#2, main::@8/assert_cmp::actual#3 )
  [144] assert_cmp::expect#17 = phi( main::@10/0, main::@12/1, main::@14/1, main::@16/1, main::@18/-1, main::@2/-1, main::@20/1, main::@22/0, main::@24/0, main::@26/-1, main::@28/-1, main::@30/0, main::@32/0, main::@34/1, main::@4/-1, main::@6/-1, main::@8/0 )
  [145] if(assert_cmp::expect#17==-1) goto assert_cmp::@4
  to:assert_cmp::@2
assert_cmp::@2: scope:[assert_cmp]  from assert_cmp
  [146] if(assert_cmp::expect#17==0) goto assert_cmp::@5
  to:assert_cmp::@3
assert_cmp::@3: scope:[assert_cmp]  from assert_cmp::@2
  [147] if(assert_cmp::expect#17!=1) goto assert_cmp::@7
  to:assert_cmp::@6
assert_cmp::@6: scope:[assert_cmp]  from assert_cmp::@3
  [148] assert_cmp::$2 = assert_cmp::actual#17 > 0
  [149] assert_cmp::ok#3 = (char)assert_cmp::$2
  to:assert_cmp::@7
assert_cmp::@7: scope:[assert_cmp]  from assert_cmp::@3 assert_cmp::@4 assert_cmp::@5 assert_cmp::@6
  [150] assert_cmp::ok#4 = phi( assert_cmp::@3/0, assert_cmp::@4/assert_cmp::ok#1, assert_cmp::@5/assert_cmp::ok#2, assert_cmp::@6/assert_cmp::ok#3 )
  [151] if(0!=assert_cmp::ok#4) goto assert_cmp::@1
  to:assert_cmp::@8
assert_cmp::@8: scope:[assert_cmp]  from assert_cmp::@7
  [152] phi()
  [153] call textcolor
  to:assert_cmp::@12
assert_cmp::@12: scope:[assert_cmp]  from assert_cmp::@8
  [154] phi()
  [155] call printf_str
  to:assert_cmp::@13
assert_cmp::@13: scope:[assert_cmp]  from assert_cmp::@12
  [156] printf_schar::value#1 = assert_cmp::expect#17
  [157] call printf_schar
  to:assert_cmp::@14
assert_cmp::@14: scope:[assert_cmp]  from assert_cmp::@13
  [158] phi()
  [159] call printf_str
  to:assert_cmp::@15
assert_cmp::@15: scope:[assert_cmp]  from assert_cmp::@14
  [160] printf_schar::value#2 = assert_cmp::actual#17
  [161] call printf_schar
  to:assert_cmp::@16
assert_cmp::@16: scope:[assert_cmp]  from assert_cmp::@15
  [162] phi()
  [163] call printf_str
  to:assert_cmp::@17
assert_cmp::@17: scope:[assert_cmp]  from assert_cmp::@16
  [164] printf_string::str#1 = assert_cmp::message#17
  [165] call printf_string
  to:assert_cmp::@18
assert_cmp::@18: scope:[assert_cmp]  from assert_cmp::@17
  [166] phi()
  [167] call printf_str
  to:assert_cmp::@return
assert_cmp::@return: scope:[assert_cmp]  from assert_cmp::@11 assert_cmp::@18
  [168] return 
  to:@return
assert_cmp::@1: scope:[assert_cmp]  from assert_cmp::@7
  [169] phi()
  [170] call textcolor
  to:assert_cmp::@9
assert_cmp::@9: scope:[assert_cmp]  from assert_cmp::@1
  [171] phi()
  [172] call printf_str
  to:assert_cmp::@10
assert_cmp::@10: scope:[assert_cmp]  from assert_cmp::@9
  [173] printf_string::str#0 = assert_cmp::message#17
  [174] call printf_string
  to:assert_cmp::@11
assert_cmp::@11: scope:[assert_cmp]  from assert_cmp::@10
  [175] phi()
  [176] call printf_str
  to:assert_cmp::@return
assert_cmp::@5: scope:[assert_cmp]  from assert_cmp::@2
  [177] assert_cmp::$1 = assert_cmp::actual#17 == 0
  [178] assert_cmp::ok#2 = (char)assert_cmp::$1
  to:assert_cmp::@7
assert_cmp::@4: scope:[assert_cmp]  from assert_cmp
  [179] assert_cmp::$0 = assert_cmp::actual#17 < 0
  [180] assert_cmp::ok#1 = (char)assert_cmp::$0
  to:assert_cmp::@7

int strncmp(const char *str1 , const char *str2 , unsigned int n)
strncmp: scope:[strncmp]  from main::@17 main::@19 main::@21 main::@23 main::@25
  [181] strncmp::n#8 = phi( main::@17/3, main::@19/3, main::@21/2, main::@23/3, main::@25/3 )
  [181] strncmp::s2#0 = phi( main::@17/main::str28, main::@19/main::str29, main::@21/main::str210, main::@23/main::str211, main::@25/main::str212 )
  [181] strncmp::s1#0 = phi( main::@17/main::str18, main::@19/main::str19, main::@21/main::str21, main::@23/main::str111, main::@25/main::str12 )
  to:strncmp::@1
strncmp::@1: scope:[strncmp]  from strncmp strncmp::@4
  [182] strncmp::n#6 = phi( strncmp/strncmp::n#8, strncmp::@4/strncmp::n#0 )
  [182] strncmp::s2#2 = phi( strncmp/strncmp::s2#0, strncmp::@4/strncmp::s2#1 )
  [182] strncmp::s1#2 = phi( strncmp/strncmp::s1#0, strncmp::@4/strncmp::s1#1 )
  [183] if(*strncmp::s1#2==*strncmp::s2#2) goto strncmp::@2
  to:strncmp::@3
strncmp::@3: scope:[strncmp]  from strncmp::@1
  [184] strncmp::$0 = *strncmp::s1#2 - *strncmp::s2#2
  [185] strncmp::return#0 = (int)(signed char)strncmp::$0
  to:strncmp::@return
strncmp::@return: scope:[strncmp]  from strncmp::@2 strncmp::@3 strncmp::@5
  [186] strncmp::return#2 = phi( strncmp::@3/strncmp::return#0, strncmp::@2/0, strncmp::@5/0 )
  [187] return 
  to:@return
strncmp::@2: scope:[strncmp]  from strncmp::@1
  [188] strncmp::n#0 = -- strncmp::n#6
  [189] if(*strncmp::s1#2==0) goto strncmp::@return
  to:strncmp::@5
strncmp::@5: scope:[strncmp]  from strncmp::@2
  [190] if(strncmp::n#0==0) goto strncmp::@return
  to:strncmp::@4
strncmp::@4: scope:[strncmp]  from strncmp::@5
  [191] strncmp::s1#1 = ++ strncmp::s1#2
  [192] strncmp::s2#1 = ++ strncmp::s2#2
  to:strncmp::@1

int memcmp(const void *str1 , const void *str2 , unsigned int n)
memcmp: scope:[memcmp]  from main::@27 main::@29 main::@31 main::@33
  [193] memcmp::n#7 = phi( main::@27/2, main::@29/2, main::@31/1, main::@33/4 )
  [193] memcmp::str2#4 = phi( main::@27/(const void *)main::$35, main::@29/(const void *)main::str13, main::@31/(const void *)main::$39, main::@33/(const void *)main::str111 )
  [193] memcmp::str1#4 = phi( main::@27/(const void *)main::str12, main::@29/(const void *)main::str13, main::@31/(const void *)main::$38, main::@33/(const void *)main::str14 )
  [194] memcmp::s1#6 = (char *)memcmp::str1#4
  [195] memcmp::s2#6 = (char *)memcmp::str2#4
  to:memcmp::@1
memcmp::@1: scope:[memcmp]  from memcmp memcmp::@3
  [196] memcmp::s2#2 = phi( memcmp/memcmp::s2#6, memcmp::@3/memcmp::s2#1 )
  [196] memcmp::s1#2 = phi( memcmp/memcmp::s1#6, memcmp::@3/memcmp::s1#1 )
  [196] memcmp::n#5 = phi( memcmp/memcmp::n#7, memcmp::@3/memcmp::n#0 )
  [197] if(memcmp::n#5!=0) goto memcmp::@2
  to:memcmp::@return
memcmp::@return: scope:[memcmp]  from memcmp::@1 memcmp::@4
  [198] memcmp::return#2 = phi( memcmp::@1/0, memcmp::@4/memcmp::return#1 )
  [199] return 
  to:@return
memcmp::@2: scope:[memcmp]  from memcmp::@1
  [200] if(*memcmp::s1#2==*memcmp::s2#2) goto memcmp::@3
  to:memcmp::@4
memcmp::@4: scope:[memcmp]  from memcmp::@2
  [201] memcmp::$3 = *memcmp::s1#2 - *memcmp::s2#2
  [202] memcmp::return#1 = (int)(signed char)memcmp::$3
  to:memcmp::@return
memcmp::@3: scope:[memcmp]  from memcmp::@2
  [203] memcmp::n#0 = -- memcmp::n#5
  [204] memcmp::s1#1 = ++ memcmp::s1#2
  [205] memcmp::s2#1 = ++ memcmp::s2#2
  to:memcmp::@1

void cscroll()
cscroll: scope:[cscroll]  from cputln
  [206] if(conio_cursor_y!=$19) goto cscroll::@return
  to:cscroll::@1
cscroll::@1: scope:[cscroll]  from cscroll
  [207] phi()
  [208] call memcpy
  to:cscroll::@2
cscroll::@2: scope:[cscroll]  from cscroll::@1
  [209] phi()
  [210] call memcpy
  to:cscroll::@3
cscroll::@3: scope:[cscroll]  from cscroll::@2
  [211] phi()
  [212] call memset
  to:cscroll::@4
cscroll::@4: scope:[cscroll]  from cscroll::@3
  [213] memset::c#1 = conio_textcolor
  [214] call memset
  to:cscroll::@5
cscroll::@5: scope:[cscroll]  from cscroll::@4
  [215] conio_line_text = conio_line_text - $28
  [216] conio_line_color = conio_line_color - $28
  [217] conio_cursor_y = -- conio_cursor_y
  to:cscroll::@return
cscroll::@return: scope:[cscroll]  from cscroll cscroll::@5
  [218] return 
  to:@return

char textcolor(char color)
textcolor: scope:[textcolor]  from assert_cmp::@1 assert_cmp::@8
  [219] textcolor::color#2 = phi( assert_cmp::@1/GREEN, assert_cmp::@8/RED )
  [220] conio_textcolor = textcolor::color#2
  to:textcolor::@return
textcolor::@return: scope:[textcolor]  from textcolor
  [221] return 
  to:@return

void printf_str(void (*putc)(char) , const char *s)
printf_str: scope:[printf_str]  from assert_cmp::@11 assert_cmp::@12 assert_cmp::@14 assert_cmp::@16 assert_cmp::@18 assert_cmp::@9 printf_number_buffer::@2 printf_string::@1
  [222] printf_str::putc#10 = phi( assert_cmp::@11/&cputc, assert_cmp::@12/&cputc, assert_cmp::@14/&cputc, assert_cmp::@16/&cputc, assert_cmp::@18/&cputc, assert_cmp::@9/&cputc, printf_number_buffer::@2/printf_number_buffer::putc#0, printf_string::@1/&cputc )
  [222] printf_str::s#10 = phi( assert_cmp::@11/assert_cmp::s1, assert_cmp::@12/assert_cmp::s2, assert_cmp::@14/assert_cmp::s3, assert_cmp::@16/assert_cmp::s4, assert_cmp::@18/assert_cmp::s1, assert_cmp::@9/assert_cmp::s, printf_number_buffer::@2/printf_number_buffer::buffer_digits#0, printf_string::@1/printf_str::s#2 )
  to:printf_str::@1
printf_str::@1: scope:[printf_str]  from printf_str printf_str::@2
  [223] printf_str::s#9 = phi( printf_str/printf_str::s#10, printf_str::@2/printf_str::s#0 )
  [224] printf_str::c#1 = *printf_str::s#9
  [225] printf_str::s#0 = ++ printf_str::s#9
  [226] if(0!=printf_str::c#1) goto printf_str::@2
  to:printf_str::@return
printf_str::@return: scope:[printf_str]  from printf_str::@1
  [227] return 
  to:@return
printf_str::@2: scope:[printf_str]  from printf_str::@1
  [228] stackpush(char) = printf_str::c#1
  [229] callexecute *printf_str::putc#10 
  sideeffect stackpullbytes(1)
  to:printf_str::@1

void printf_schar(void (*putc)(char) , signed char value , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix)
printf_schar: scope:[printf_schar]  from assert_cmp::@13 assert_cmp::@15
  [231] printf_schar::value#3 = phi( assert_cmp::@13/printf_schar::value#1, assert_cmp::@15/printf_schar::value#2 )
  [232] *((char *)&printf_buffer) = 0
  [233] if(printf_schar::value#3<0) goto printf_schar::@1
  to:printf_schar::@2
printf_schar::@1: scope:[printf_schar]  from printf_schar
  [234] printf_schar::value#0 = - printf_schar::value#3
  [235] *((char *)&printf_buffer) = '-'
  to:printf_schar::@2
printf_schar::@2: scope:[printf_schar]  from printf_schar printf_schar::@1
  [236] printf_schar::value#5 = phi( printf_schar::@1/printf_schar::value#0, printf_schar/printf_schar::value#3 )
  [237] uctoa::value#1 = (char)printf_schar::value#5
  [238] call uctoa
  to:printf_schar::@3
printf_schar::@3: scope:[printf_schar]  from printf_schar::@2
  [239] printf_number_buffer::buffer_sign#0 = *((char *)&printf_buffer)
  [240] call printf_number_buffer
  to:printf_schar::@return
printf_schar::@return: scope:[printf_schar]  from printf_schar::@3
  [241] return 
  to:@return

void printf_string(void (*putc)(char) , char *str , char format_min_length , char format_justify_left)
printf_string: scope:[printf_string]  from assert_cmp::@10 assert_cmp::@17
  [242] printf_string::str#2 = phi( assert_cmp::@10/printf_string::str#0, assert_cmp::@17/printf_string::str#1 )
  to:printf_string::@1
printf_string::@1: scope:[printf_string]  from printf_string
  [243] printf_str::s#2 = printf_string::str#2
  [244] call printf_str
  to:printf_string::@return
printf_string::@return: scope:[printf_string]  from printf_string::@1
  [245] return 
  to:@return

void * memcpy(void *destination , void *source , unsigned int num)
memcpy: scope:[memcpy]  from cscroll::@1 cscroll::@2
  [246] memcpy::destination#2 = phi( cscroll::@1/(void *)DEFAULT_SCREEN, cscroll::@2/(void *)COLORRAM )
  [246] memcpy::source#2 = phi( cscroll::@1/(void *)DEFAULT_SCREEN+$28, cscroll::@2/(void *)COLORRAM+$28 )
  [247] memcpy::src_end#0 = (char *)memcpy::source#2 + (unsigned int)$19*$28-$28
  [248] memcpy::src#4 = (char *)memcpy::source#2
  [249] memcpy::dst#4 = (char *)memcpy::destination#2
  to:memcpy::@1
memcpy::@1: scope:[memcpy]  from memcpy memcpy::@2
  [250] memcpy::dst#2 = phi( memcpy/memcpy::dst#4, memcpy::@2/memcpy::dst#1 )
  [250] memcpy::src#2 = phi( memcpy/memcpy::src#4, memcpy::@2/memcpy::src#1 )
  [251] if(memcpy::src#2!=memcpy::src_end#0) goto memcpy::@2
  to:memcpy::@return
memcpy::@return: scope:[memcpy]  from memcpy::@1
  [252] return 
  to:@return
memcpy::@2: scope:[memcpy]  from memcpy::@1
  [253] *memcpy::dst#2 = *memcpy::src#2
  [254] memcpy::dst#1 = ++ memcpy::dst#2
  [255] memcpy::src#1 = ++ memcpy::src#2
  to:memcpy::@1

void * memset(void *str , char c , unsigned int num)
memset: scope:[memset]  from cscroll::@3 cscroll::@4
  [256] memset::c#4 = phi( cscroll::@3/' ', cscroll::@4/memset::c#1 )
  [256] memset::str#3 = phi( cscroll::@3/(void *)DEFAULT_SCREEN+(unsigned int)$19*$28-$28, cscroll::@4/(void *)COLORRAM+(unsigned int)$19*$28-$28 )
  to:memset::@1
memset::@1: scope:[memset]  from memset
  [257] memset::end#0 = (char *)memset::str#3 + $28
  [258] memset::dst#4 = (char *)memset::str#3
  to:memset::@2
memset::@2: scope:[memset]  from memset::@1 memset::@3
  [259] memset::dst#2 = phi( memset::@1/memset::dst#4, memset::@3/memset::dst#1 )
  [260] if(memset::dst#2!=memset::end#0) goto memset::@3
  to:memset::@return
memset::@return: scope:[memset]  from memset::@2
  [261] return 
  to:@return
memset::@3: scope:[memset]  from memset::@2
  [262] *memset::dst#2 = memset::c#4
  [263] memset::dst#1 = ++ memset::dst#2
  to:memset::@2

void uctoa(char value , char *buffer , char radix)
uctoa: scope:[uctoa]  from printf_schar::@2
  [264] phi()
  to:uctoa::@1
uctoa::@1: scope:[uctoa]  from uctoa uctoa::@4
  [265] uctoa::buffer#11 = phi( uctoa::@4/uctoa::buffer#14, uctoa/(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS )
  [265] uctoa::started#2 = phi( uctoa::@4/uctoa::started#4, uctoa/0 )
  [265] uctoa::value#2 = phi( uctoa::@4/uctoa::value#6, uctoa/uctoa::value#1 )
  [265] uctoa::digit#2 = phi( uctoa::@4/uctoa::digit#1, uctoa/0 )
  [266] if(uctoa::digit#2<3-1) goto uctoa::@2
  to:uctoa::@3
uctoa::@3: scope:[uctoa]  from uctoa::@1
  [267] *uctoa::buffer#11 = DIGITS[uctoa::value#2]
  [268] uctoa::buffer#3 = ++ uctoa::buffer#11
  [269] *uctoa::buffer#3 = 0
  to:uctoa::@return
uctoa::@return: scope:[uctoa]  from uctoa::@3
  [270] return 
  to:@return
uctoa::@2: scope:[uctoa]  from uctoa::@1
  [271] uctoa::digit_value#0 = RADIX_DECIMAL_VALUES_CHAR[uctoa::digit#2]
  [272] if(0!=uctoa::started#2) goto uctoa::@5
  to:uctoa::@7
uctoa::@7: scope:[uctoa]  from uctoa::@2
  [273] if(uctoa::value#2>=uctoa::digit_value#0) goto uctoa::@5
  to:uctoa::@4
uctoa::@4: scope:[uctoa]  from uctoa::@6 uctoa::@7
  [274] uctoa::buffer#14 = phi( uctoa::@7/uctoa::buffer#11, uctoa::@6/uctoa::buffer#4 )
  [274] uctoa::started#4 = phi( uctoa::@7/uctoa::started#2, uctoa::@6/1 )
  [274] uctoa::value#6 = phi( uctoa::@7/uctoa::value#2, uctoa::@6/uctoa::value#0 )
  [275] uctoa::digit#1 = ++ uctoa::digit#2
  to:uctoa::@1
uctoa::@5: scope:[uctoa]  from uctoa::@2 uctoa::@7
  [276] uctoa_append::buffer#0 = uctoa::buffer#11
  [277] uctoa_append::value#0 = uctoa::value#2
  [278] uctoa_append::sub#0 = uctoa::digit_value#0
  [279] call uctoa_append
  [280] uctoa_append::return#0 = uctoa_append::value#2
  to:uctoa::@6
uctoa::@6: scope:[uctoa]  from uctoa::@5
  [281] uctoa::value#0 = uctoa_append::return#0
  [282] uctoa::buffer#4 = ++ uctoa::buffer#11
  to:uctoa::@4

void printf_number_buffer(void (*putc)(char) , char buffer_sign , char *buffer_digits , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix)
printf_number_buffer: scope:[printf_number_buffer]  from printf_schar::@3
  [283] phi()
  to:printf_number_buffer::@1
printf_number_buffer::@1: scope:[printf_number_buffer]  from printf_number_buffer
  [284] if(0==printf_number_buffer::buffer_sign#0) goto printf_number_buffer::@2
  to:printf_number_buffer::@3
printf_number_buffer::@3: scope:[printf_number_buffer]  from printf_number_buffer::@1
  [285] stackpush(char) = printf_number_buffer::buffer_sign#0
  [286] callexecute cputc 
  sideeffect stackpullbytes(1)
  to:printf_number_buffer::@2
printf_number_buffer::@2: scope:[printf_number_buffer]  from printf_number_buffer::@1 printf_number_buffer::@3
  [288] phi()
  [289] call printf_str
  to:printf_number_buffer::@return
printf_number_buffer::@return: scope:[printf_number_buffer]  from printf_number_buffer::@2
  [290] return 
  to:@return

char uctoa_append(char *buffer , char value , char sub)
uctoa_append: scope:[uctoa_append]  from uctoa::@5
  [291] phi()
  to:uctoa_append::@1
uctoa_append::@1: scope:[uctoa_append]  from uctoa_append uctoa_append::@2
  [292] uctoa_append::digit#2 = phi( uctoa_append/0, uctoa_append::@2/uctoa_append::digit#1 )
  [292] uctoa_append::value#2 = phi( uctoa_append/uctoa_append::value#0, uctoa_append::@2/uctoa_append::value#1 )
  [293] if(uctoa_append::value#2>=uctoa_append::sub#0) goto uctoa_append::@2
  to:uctoa_append::@3
uctoa_append::@3: scope:[uctoa_append]  from uctoa_append::@1
  [294] *uctoa_append::buffer#0 = DIGITS[uctoa_append::digit#2]
  to:uctoa_append::@return
uctoa_append::@return: scope:[uctoa_append]  from uctoa_append::@3
  [295] return 
  to:@return
uctoa_append::@2: scope:[uctoa_append]  from uctoa_append::@1
  [296] uctoa_append::digit#1 = ++ uctoa_append::digit#2
  [297] uctoa_append::value#1 = uctoa_append::value#2 - uctoa_append::sub#0
  to:uctoa_append::@1
