
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 clrscr
  to:main::@1
main::@1: scope:[main]  from main
  [30] phi()
  [31] call memchr
  [32] memchr::return#3 = memchr::return#2
  to:main::@2
main::@2: scope:[main]  from main::@1
  [33] main::ptr#0 = (char *)memchr::return#3
  [34] assert_uint::actual#0 = main::ptr#0 - main::str
  [35] call assert_uint
  to:main::@3
main::@3: scope:[main]  from main::@2
  [36] phi()
  [37] call memchr
  [38] memchr::return#4 = memchr::return#2
  to:main::@4
main::@4: scope:[main]  from main::@3
  [39] main::ptr2#0 = (char *)memchr::return#4
  [40] assert_ptr::actual#0 = (void *)main::ptr2#0
  [41] call assert_ptr
  to:main::@return
main::@return: scope:[main]  from main::@4
  [42] return 
  to:@return

void gotoxy(char x , char y)
gotoxy: scope:[gotoxy]  from conio_c64_init::@1
  [43] if(gotoxy::y#2<$19+1) goto gotoxy::@3
  to:gotoxy::@1
gotoxy::@3: scope:[gotoxy]  from gotoxy
  [44] phi()
  to:gotoxy::@1
gotoxy::@1: scope:[gotoxy]  from gotoxy gotoxy::@3
  [45] gotoxy::y#4 = phi( gotoxy::@3/gotoxy::y#2, gotoxy/0 )
  to:gotoxy::@2
gotoxy::@2: scope:[gotoxy]  from gotoxy::@1
  [46] conio_cursor_x = gotoxy::x#2
  [47] conio_cursor_y = gotoxy::y#4
  [48] gotoxy::$7 = (unsigned int)gotoxy::y#4
  [49] gotoxy::$8 = gotoxy::$7 << 2
  [50] gotoxy::$9 = gotoxy::$8 + gotoxy::$7
  [51] gotoxy::line_offset#0 = gotoxy::$9 << 3
  [52] gotoxy::$5 = DEFAULT_SCREEN + gotoxy::line_offset#0
  [53] conio_line_text = gotoxy::$5
  [54] gotoxy::$6 = COLORRAM + gotoxy::line_offset#0
  [55] conio_line_color = gotoxy::$6
  to:gotoxy::@return
gotoxy::@return: scope:[gotoxy]  from gotoxy::@2
  [56] return 
  to:@return

void cputln()
cputln: scope:[cputln]  from cputc::@1 cputc::@3
  [57] conio_line_text = conio_line_text + $28
  [58] conio_line_color = conio_line_color + $28
  [59] conio_cursor_x = 0
  [60] conio_cursor_y = ++ conio_cursor_y
  [61] call cscroll
  to:cputln::@return
cputln::@return: scope:[cputln]  from cputln
  [62] return 
  to:@return

void clrscr()
clrscr: scope:[clrscr]  from main
  [63] phi()
  to:clrscr::@1
clrscr::@1: scope:[clrscr]  from clrscr clrscr::@5
  [64] clrscr::line_cols#5 = phi( clrscr/COLORRAM, clrscr::@5/clrscr::line_cols#1 )
  [64] clrscr::line_text#5 = phi( clrscr/DEFAULT_SCREEN, clrscr::@5/clrscr::line_text#1 )
  [64] clrscr::l#2 = phi( clrscr/0, clrscr::@5/clrscr::l#1 )
  [65] if(clrscr::l#2<$19) goto clrscr::@3
  to:clrscr::@2
clrscr::@2: scope:[clrscr]  from clrscr::@1
  [66] conio_cursor_x = 0
  [67] conio_cursor_y = 0
  [68] conio_line_text = DEFAULT_SCREEN
  [69] conio_line_color = COLORRAM
  to:clrscr::@return
clrscr::@return: scope:[clrscr]  from clrscr::@2
  [70] return 
  to:@return
clrscr::@3: scope:[clrscr]  from clrscr::@1 clrscr::@4
  [71] clrscr::c#2 = phi( clrscr::@1/0, clrscr::@4/clrscr::c#1 )
  [72] if(clrscr::c#2<$28) goto clrscr::@4
  to:clrscr::@5
clrscr::@5: scope:[clrscr]  from clrscr::@3
  [73] clrscr::line_text#1 = clrscr::line_text#5 + $28
  [74] clrscr::line_cols#1 = clrscr::line_cols#5 + $28
  [75] clrscr::l#1 = ++ clrscr::l#2
  to:clrscr::@1
clrscr::@4: scope:[clrscr]  from clrscr::@3
  [76] clrscr::line_text#5[clrscr::c#2] = ' '
  [77] clrscr::line_cols#5[clrscr::c#2] = conio_textcolor
  [78] clrscr::c#1 = ++ clrscr::c#2
  to:clrscr::@3

void * memchr(const void *str , char c , unsigned int n)
memchr: scope:[memchr]  from main::@1 main::@3
  [79] memchr::c#4 = phi( main::@1/'a', main::@3/'a' )
  [79] memchr::n#3 = phi( main::@1/$e, main::@3/7 )
  to:memchr::@1
memchr::@1: scope:[memchr]  from memchr memchr::@3
  [80] memchr::ptr#2 = phi( memchr/(char *)(const void *)main::str, memchr::@3/memchr::ptr#1 )
  [80] memchr::i#2 = phi( memchr/0, memchr::@3/memchr::i#1 )
  [81] if(memchr::i#2<memchr::n#3) goto memchr::@2
  to:memchr::@return
memchr::@return: scope:[memchr]  from memchr::@1 memchr::@4
  [82] memchr::return#2 = phi( memchr::@1/(void *) 0, memchr::@4/memchr::return#8 )
  [83] return 
  to:@return
memchr::@2: scope:[memchr]  from memchr::@1
  [84] if(*memchr::ptr#2!=memchr::c#4) goto memchr::@3
  to:memchr::@4
memchr::@4: scope:[memchr]  from memchr::@2
  [85] memchr::return#8 = (void *)memchr::ptr#2
  to:memchr::@return
memchr::@3: scope:[memchr]  from memchr::@2
  [86] memchr::ptr#1 = ++ memchr::ptr#2
  [87] memchr::i#1 = ++ memchr::i#2
  to:memchr::@1

void assert_uint(unsigned int expect , unsigned int actual , char *message)
assert_uint: scope:[assert_uint]  from main::@2
  [88] if(assert_uint::expect#0!=assert_uint::actual#0) goto assert_uint::@1
  to:assert_uint::@2
assert_uint::@2: scope:[assert_uint]  from assert_uint
  [89] phi()
  [90] call textcolor
  to:assert_uint::@10
assert_uint::@10: scope:[assert_uint]  from assert_uint::@2
  [91] phi()
  [92] call printf_str
  to:assert_uint::@11
assert_uint::@11: scope:[assert_uint]  from assert_uint::@10
  [93] phi()
  [94] call printf_string
  to:assert_uint::@12
assert_uint::@12: scope:[assert_uint]  from assert_uint::@11
  [95] phi()
  [96] call printf_str
  to:assert_uint::@return
assert_uint::@return: scope:[assert_uint]  from assert_uint::@12 assert_uint::@9
  [97] return 
  to:@return
assert_uint::@1: scope:[assert_uint]  from assert_uint
  [98] phi()
  [99] call textcolor
  to:assert_uint::@3
assert_uint::@3: scope:[assert_uint]  from assert_uint::@1
  [100] phi()
  [101] call printf_str
  to:assert_uint::@4
assert_uint::@4: scope:[assert_uint]  from assert_uint::@3
  [102] phi()
  [103] call printf_uint
  to:assert_uint::@5
assert_uint::@5: scope:[assert_uint]  from assert_uint::@4
  [104] phi()
  [105] call printf_str
  to:assert_uint::@6
assert_uint::@6: scope:[assert_uint]  from assert_uint::@5
  [106] printf_uint::uvalue#1 = assert_uint::actual#0
  [107] call printf_uint
  to:assert_uint::@7
assert_uint::@7: scope:[assert_uint]  from assert_uint::@6
  [108] phi()
  [109] call printf_str
  to:assert_uint::@8
assert_uint::@8: scope:[assert_uint]  from assert_uint::@7
  [110] phi()
  [111] call printf_string
  to:assert_uint::@9
assert_uint::@9: scope:[assert_uint]  from assert_uint::@8
  [112] phi()
  [113] call printf_str
  to:assert_uint::@return

void assert_ptr(void *expect , void *actual , char *message)
assert_ptr: scope:[assert_ptr]  from main::@4
  [114] if(assert_ptr::expect#0!=assert_ptr::actual#0) goto assert_ptr::@1
  to:assert_ptr::@2
assert_ptr::@2: scope:[assert_ptr]  from assert_ptr
  [115] phi()
  [116] call textcolor
  to:assert_ptr::@10
assert_ptr::@10: scope:[assert_ptr]  from assert_ptr::@2
  [117] phi()
  [118] call printf_str
  to:assert_ptr::@11
assert_ptr::@11: scope:[assert_ptr]  from assert_ptr::@10
  [119] phi()
  [120] call printf_string
  to:assert_ptr::@12
assert_ptr::@12: scope:[assert_ptr]  from assert_ptr::@11
  [121] phi()
  [122] call printf_str
  to:assert_ptr::@return
assert_ptr::@return: scope:[assert_ptr]  from assert_ptr::@12 assert_ptr::@9
  [123] return 
  to:@return
assert_ptr::@1: scope:[assert_ptr]  from assert_ptr
  [124] phi()
  [125] call textcolor
  to:assert_ptr::@3
assert_ptr::@3: scope:[assert_ptr]  from assert_ptr::@1
  [126] phi()
  [127] call printf_str
  to:assert_ptr::@4
assert_ptr::@4: scope:[assert_ptr]  from assert_ptr::@3
  [128] phi()
  [129] call printf_uint
  to:assert_ptr::@5
assert_ptr::@5: scope:[assert_ptr]  from assert_ptr::@4
  [130] phi()
  [131] call printf_str
  to:assert_ptr::@6
assert_ptr::@6: scope:[assert_ptr]  from assert_ptr::@5
  [132] printf_uint::uvalue#3 = (unsigned int)assert_ptr::actual#0
  [133] call printf_uint
  to:assert_ptr::@7
assert_ptr::@7: scope:[assert_ptr]  from assert_ptr::@6
  [134] phi()
  [135] call printf_str
  to:assert_ptr::@8
assert_ptr::@8: scope:[assert_ptr]  from assert_ptr::@7
  [136] phi()
  [137] call printf_string
  to:assert_ptr::@9
assert_ptr::@9: scope:[assert_ptr]  from assert_ptr::@8
  [138] phi()
  [139] call printf_str
  to:assert_ptr::@return

void cscroll()
cscroll: scope:[cscroll]  from cputln
  [140] if(conio_cursor_y!=$19) goto cscroll::@return
  to:cscroll::@1
cscroll::@1: scope:[cscroll]  from cscroll
  [141] phi()
  [142] call memcpy
  to:cscroll::@2
cscroll::@2: scope:[cscroll]  from cscroll::@1
  [143] phi()
  [144] call memcpy
  to:cscroll::@3
cscroll::@3: scope:[cscroll]  from cscroll::@2
  [145] phi()
  [146] call memset
  to:cscroll::@4
cscroll::@4: scope:[cscroll]  from cscroll::@3
  [147] memset::c#1 = conio_textcolor
  [148] call memset
  to:cscroll::@5
cscroll::@5: scope:[cscroll]  from cscroll::@4
  [149] conio_line_text = conio_line_text - $28
  [150] conio_line_color = conio_line_color - $28
  [151] conio_cursor_y = -- conio_cursor_y
  to:cscroll::@return
cscroll::@return: scope:[cscroll]  from cscroll cscroll::@5
  [152] return 
  to:@return

char textcolor(char color)
textcolor: scope:[textcolor]  from assert_ptr::@1 assert_ptr::@2 assert_uint::@1 assert_uint::@2
  [153] textcolor::color#4 = phi( assert_ptr::@1/RED, assert_ptr::@2/GREEN, assert_uint::@1/RED, assert_uint::@2/GREEN )
  [154] conio_textcolor = textcolor::color#4
  to:textcolor::@return
textcolor::@return: scope:[textcolor]  from textcolor
  [155] return 
  to:@return

void printf_str(void (*putc)(char) , const char *s)
printf_str: scope:[printf_str]  from assert_ptr::@10 assert_ptr::@12 assert_ptr::@3 assert_ptr::@5 assert_ptr::@7 assert_ptr::@9 assert_uint::@10 assert_uint::@12 assert_uint::@3 assert_uint::@5 assert_uint::@7 assert_uint::@9 printf_number_buffer::@2 printf_string::@1
  [156] printf_str::putc#16 = phi( assert_ptr::@10/&cputc, assert_ptr::@12/&cputc, assert_ptr::@3/&cputc, assert_ptr::@5/&cputc, assert_ptr::@7/&cputc, assert_ptr::@9/&cputc, assert_uint::@10/&cputc, assert_uint::@12/&cputc, assert_uint::@3/&cputc, assert_uint::@5/&cputc, assert_uint::@7/&cputc, assert_uint::@9/&cputc, printf_number_buffer::@2/printf_number_buffer::putc#0, printf_string::@1/&cputc )
  [156] printf_str::s#16 = phi( assert_ptr::@10/s4, assert_ptr::@12/s3, assert_ptr::@3/assert_ptr::s, assert_ptr::@5/assert_ptr::s1, assert_ptr::@7/s2, assert_ptr::@9/s3, assert_uint::@10/s4, assert_uint::@12/s3, assert_uint::@3/assert_uint::s, assert_uint::@5/assert_uint::s1, assert_uint::@7/s2, assert_uint::@9/s3, 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
  [157] printf_str::s#15 = phi( printf_str/printf_str::s#16, printf_str::@2/printf_str::s#0 )
  [158] printf_str::c#1 = *printf_str::s#15
  [159] printf_str::s#0 = ++ printf_str::s#15
  [160] if(0!=printf_str::c#1) goto printf_str::@2
  to:printf_str::@return
printf_str::@return: scope:[printf_str]  from printf_str::@1
  [161] return 
  to:@return
printf_str::@2: scope:[printf_str]  from printf_str::@1
  [162] stackpush(char) = printf_str::c#1
  [163] callexecute *printf_str::putc#16 
  sideeffect stackpullbytes(1)
  to:printf_str::@1

void printf_string(void (*putc)(char) , char *str , char format_min_length , char format_justify_left)
printf_string: scope:[printf_string]  from assert_ptr::@11 assert_ptr::@8 assert_uint::@11 assert_uint::@8
  [165] printf_string::str#10 = phi( assert_ptr::@11/main::message1, assert_ptr::@8/main::message1, assert_uint::@11/main::message, assert_uint::@8/main::message )
  to:printf_string::@1
printf_string::@1: scope:[printf_string]  from printf_string
  [166] printf_str::s#2 = printf_string::str#10
  [167] call printf_str
  to:printf_string::@return
printf_string::@return: scope:[printf_string]  from printf_string::@1
  [168] return 
  to:@return

void printf_uint(void (*putc)(char) , unsigned int uvalue , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix)
printf_uint: scope:[printf_uint]  from assert_ptr::@4 assert_ptr::@6 assert_uint::@4 assert_uint::@6
  [169] printf_uint::format_radix#4 = phi( assert_ptr::@4/HEXADECIMAL, assert_ptr::@6/HEXADECIMAL, assert_uint::@4/DECIMAL, assert_uint::@6/DECIMAL )
  [169] printf_uint::uvalue#4 = phi( assert_ptr::@4/0, assert_ptr::@6/printf_uint::uvalue#3, assert_uint::@4/assert_uint::expect#0, assert_uint::@6/printf_uint::uvalue#1 )
  to:printf_uint::@1
printf_uint::@1: scope:[printf_uint]  from printf_uint
  [170] *((char *)&printf_buffer) = 0
  [171] utoa::value#1 = printf_uint::uvalue#4
  [172] utoa::radix#0 = printf_uint::format_radix#4
  [173] call utoa
  to:printf_uint::@2
printf_uint::@2: scope:[printf_uint]  from printf_uint::@1
  [174] printf_number_buffer::buffer_sign#0 = *((char *)&printf_buffer)
  [175] call printf_number_buffer
  to:printf_uint::@return
printf_uint::@return: scope:[printf_uint]  from printf_uint::@2
  [176] return 
  to:@return

void * memcpy(void *destination , void *source , unsigned int num)
memcpy: scope:[memcpy]  from cscroll::@1 cscroll::@2
  [177] memcpy::destination#2 = phi( cscroll::@1/(void *)DEFAULT_SCREEN, cscroll::@2/(void *)COLORRAM )
  [177] memcpy::source#2 = phi( cscroll::@1/(void *)DEFAULT_SCREEN+$28, cscroll::@2/(void *)COLORRAM+$28 )
  [178] memcpy::src_end#0 = (char *)memcpy::source#2 + (unsigned int)$19*$28-$28
  [179] memcpy::src#4 = (char *)memcpy::source#2
  [180] memcpy::dst#4 = (char *)memcpy::destination#2
  to:memcpy::@1
memcpy::@1: scope:[memcpy]  from memcpy memcpy::@2
  [181] memcpy::dst#2 = phi( memcpy/memcpy::dst#4, memcpy::@2/memcpy::dst#1 )
  [181] memcpy::src#2 = phi( memcpy/memcpy::src#4, memcpy::@2/memcpy::src#1 )
  [182] if(memcpy::src#2!=memcpy::src_end#0) goto memcpy::@2
  to:memcpy::@return
memcpy::@return: scope:[memcpy]  from memcpy::@1
  [183] return 
  to:@return
memcpy::@2: scope:[memcpy]  from memcpy::@1
  [184] *memcpy::dst#2 = *memcpy::src#2
  [185] memcpy::dst#1 = ++ memcpy::dst#2
  [186] 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
  [187] memset::c#4 = phi( cscroll::@3/' ', cscroll::@4/memset::c#1 )
  [187] 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
  [188] memset::end#0 = (char *)memset::str#3 + $28
  [189] memset::dst#4 = (char *)memset::str#3
  to:memset::@2
memset::@2: scope:[memset]  from memset::@1 memset::@3
  [190] memset::dst#2 = phi( memset::@1/memset::dst#4, memset::@3/memset::dst#1 )
  [191] if(memset::dst#2!=memset::end#0) goto memset::@3
  to:memset::@return
memset::@return: scope:[memset]  from memset::@2
  [192] return 
  to:@return
memset::@3: scope:[memset]  from memset::@2
  [193] *memset::dst#2 = memset::c#4
  [194] memset::dst#1 = ++ memset::dst#2
  to:memset::@2

void utoa(unsigned int value , char *buffer , char radix)
utoa: scope:[utoa]  from printf_uint::@1
  [195] if(utoa::radix#0==DECIMAL) goto utoa::@1
  to:utoa::@2
utoa::@2: scope:[utoa]  from utoa
  [196] if(utoa::radix#0==HEXADECIMAL) goto utoa::@1
  to:utoa::@3
utoa::@3: scope:[utoa]  from utoa::@2
  [197] if(utoa::radix#0==OCTAL) goto utoa::@1
  to:utoa::@4
utoa::@4: scope:[utoa]  from utoa::@3
  [198] if(utoa::radix#0==BINARY) goto utoa::@1
  to:utoa::@5
utoa::@5: scope:[utoa]  from utoa::@4
  [199] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS) = 'e'
  [200] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1) = 'r'
  [201] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+2) = 'r'
  [202] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+3) = 0
  to:utoa::@return
utoa::@return: scope:[utoa]  from utoa::@5 utoa::@8
  [203] return 
  to:@return
utoa::@1: scope:[utoa]  from utoa utoa::@2 utoa::@3 utoa::@4
  [204] utoa::digit_values#8 = phi( utoa/RADIX_DECIMAL_VALUES, utoa::@2/RADIX_HEXADECIMAL_VALUES, utoa::@3/RADIX_OCTAL_VALUES, utoa::@4/RADIX_BINARY_VALUES )
  [204] utoa::max_digits#7 = phi( utoa/5, utoa::@2/4, utoa::@3/6, utoa::@4/$10 )
  to:utoa::@6
utoa::@6: scope:[utoa]  from utoa::@1 utoa::@9
  [205] utoa::buffer#11 = phi( utoa::@9/utoa::buffer#14, utoa::@1/(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS )
  [205] utoa::started#2 = phi( utoa::@9/utoa::started#4, utoa::@1/0 )
  [205] utoa::value#2 = phi( utoa::@9/utoa::value#6, utoa::@1/utoa::value#1 )
  [205] utoa::digit#2 = phi( utoa::@9/utoa::digit#1, utoa::@1/0 )
  [206] utoa::$4 = utoa::max_digits#7 - 1
  [207] if(utoa::digit#2<utoa::$4) goto utoa::@7
  to:utoa::@8
utoa::@8: scope:[utoa]  from utoa::@6
  [208] utoa::$11 = (char)utoa::value#2
  [209] *utoa::buffer#11 = DIGITS[utoa::$11]
  [210] utoa::buffer#3 = ++ utoa::buffer#11
  [211] *utoa::buffer#3 = 0
  to:utoa::@return
utoa::@7: scope:[utoa]  from utoa::@6
  [212] utoa::$10 = utoa::digit#2 << 1
  [213] utoa::digit_value#0 = utoa::digit_values#8[utoa::$10]
  [214] if(0!=utoa::started#2) goto utoa::@10
  to:utoa::@12
utoa::@12: scope:[utoa]  from utoa::@7
  [215] if(utoa::value#2>=utoa::digit_value#0) goto utoa::@10
  to:utoa::@9
utoa::@9: scope:[utoa]  from utoa::@11 utoa::@12
  [216] utoa::buffer#14 = phi( utoa::@12/utoa::buffer#11, utoa::@11/utoa::buffer#4 )
  [216] utoa::started#4 = phi( utoa::@12/utoa::started#2, utoa::@11/1 )
  [216] utoa::value#6 = phi( utoa::@12/utoa::value#2, utoa::@11/utoa::value#0 )
  [217] utoa::digit#1 = ++ utoa::digit#2
  to:utoa::@6
utoa::@10: scope:[utoa]  from utoa::@12 utoa::@7
  [218] utoa_append::buffer#0 = utoa::buffer#11
  [219] utoa_append::value#0 = utoa::value#2
  [220] utoa_append::sub#0 = utoa::digit_value#0
  [221] call utoa_append
  [222] utoa_append::return#0 = utoa_append::value#2
  to:utoa::@11
utoa::@11: scope:[utoa]  from utoa::@10
  [223] utoa::value#0 = utoa_append::return#0
  [224] utoa::buffer#4 = ++ utoa::buffer#11
  to:utoa::@9

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_uint::@2
  [225] phi()
  to:printf_number_buffer::@1
printf_number_buffer::@1: scope:[printf_number_buffer]  from printf_number_buffer
  [226] 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
  [227] stackpush(char) = printf_number_buffer::buffer_sign#0
  [228] 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
  [230] phi()
  [231] call printf_str
  to:printf_number_buffer::@return
printf_number_buffer::@return: scope:[printf_number_buffer]  from printf_number_buffer::@2
  [232] return 
  to:@return

unsigned int utoa_append(char *buffer , unsigned int value , unsigned int sub)
utoa_append: scope:[utoa_append]  from utoa::@10
  [233] phi()
  to:utoa_append::@1
utoa_append::@1: scope:[utoa_append]  from utoa_append utoa_append::@2
  [234] utoa_append::digit#2 = phi( utoa_append/0, utoa_append::@2/utoa_append::digit#1 )
  [234] utoa_append::value#2 = phi( utoa_append/utoa_append::value#0, utoa_append::@2/utoa_append::value#1 )
  [235] if(utoa_append::value#2>=utoa_append::sub#0) goto utoa_append::@2
  to:utoa_append::@3
utoa_append::@3: scope:[utoa_append]  from utoa_append::@1
  [236] *utoa_append::buffer#0 = DIGITS[utoa_append::digit#2]
  to:utoa_append::@return
utoa_append::@return: scope:[utoa_append]  from utoa_append::@3
  [237] return 
  to:@return
utoa_append::@2: scope:[utoa_append]  from utoa_append::@1
  [238] utoa_append::digit#1 = ++ utoa_append::digit#2
  [239] utoa_append::value#1 = utoa_append::value#2 - utoa_append::sub#0
  to:utoa_append::@1
