Fixing struct type size struct printf_buffer_number to 12
Fixing struct type size struct printf_buffer_number to 12
Fixing struct type size struct printf_buffer_number to 12
Fixing struct type SIZE_OF struct printf_buffer_number to 12
Fixing struct type SIZE_OF struct printf_buffer_number to 12
Setting inferred __stackcall on procedure affected by address-of __stackcall void snputc(char c) caused by statement call printf_str(&snputc, "hello world! ")
Setting inferred __stackcall on procedure affected by address-of __stackcall void snputc(char c) caused by statement call printf_str(&snputc, "hello ")
Setting inferred __stackcall on procedure affected by address-of __stackcall void snputc(char c) caused by statement call printf_string(&snputc, "world", { 0, 0 })
Setting inferred __stackcall on procedure affected by address-of __stackcall void snputc(char c) caused by statement call printf_str(&snputc, " ")
Setting inferred __stackcall on procedure affected by address-of __stackcall void snputc(char c) caused by statement call printf_str(&snputc, "hello ")
Setting inferred __stackcall on procedure affected by address-of __stackcall void snputc(char c) caused by statement call printf_sint(&snputc, 3, { 0, 0, 0, 0, 0, DECIMAL })
Setting inferred __stackcall on procedure affected by address-of __stackcall void snputc(char c) caused by statement call printf_str(&snputc, "+")
Setting inferred __stackcall on procedure affected by address-of __stackcall void snputc(char c) caused by statement call printf_uint(&snputc, $b, { 0, 0, 0, 0, 0, HEXADECIMAL })
Setting inferred __stackcall on procedure affected by address-of __stackcall void snputc(char c) caused by statement call printf_str(&snputc, "! ")
Setting inferred __stackcall on procedure affected by address-of __stackcall void snputc(char c) caused by statement call printf_str(&snputc, "hi ")
Setting inferred __stackcall on procedure affected by address-of __stackcall void snputc(char c) caused by statement call printf_slong(&snputc, $153158e, { 0, 0, 0, 0, 0, DECIMAL })
Setting inferred __stackcall on procedure affected by address-of __stackcall void snputc(char c) caused by statement call printf_str(&snputc, "! ")
Converting variable modified inside __stackcall procedure snputc() to load/store __snprintf_buffer
Adding parameter assignment in __stackcall procedure snputc::c = param(snputc::c)
Added struct type cast to parameter value list call printf_string(&snputc, "world", (struct printf_format_string){ 0, 0 })
Added struct type cast to parameter value list call printf_sint(&snputc, 3, (struct printf_format_number){ 0, 0, 0, 0, 0, DECIMAL })
Added struct type cast to parameter value list call printf_uint(&snputc, $b, (struct printf_format_number){ 0, 0, 0, 0, 0, HEXADECIMAL })
Added struct type cast to parameter value list call printf_slong(&snputc, $153158e, (struct printf_format_number){ 0, 0, 0, 0, 0, DECIMAL })
Inlined call vicSelectGfxBank::$0 = call toDd00(vicSelectGfxBank::gfx)
Inlined call call __init
Eliminating unused variable with no statement gotoxy::$4
Eliminating unused variable with no statement main::$0
Eliminating unused variable with no statement main::$2
Eliminating unused variable with no statement main::$4
Eliminating unused variable with no statement main::$6
Calling convention STACK_CALL adding prepare/execute/finalize for call *printf_str::putc printf_str::c 
Calling convention STACK_CALL adding prepare/execute/finalize for call *printf_padding::putc printf_padding::pad 
Calling convention STACK_CALL adding prepare/execute/finalize for call *printf_number_buffer::putc printf_number_buffer::buffer_sign 
Calling convention __stackcall adding prepare/execute/finalize for call snputc(0)
Calling convention __stackcall adding prepare/execute/finalize for call snputc('!')
Calling convention __stackcall adding prepare/execute/finalize for call snputc(0)
Calling convention __stackcall adding prepare/execute/finalize for call snputc(0)
Calling convention __stackcall adding prepare/execute/finalize for call snputc(0)
Calling convention STACK_CALL replacing param(snputc::c) with stackidx(char,snputc::OFFSET_STACK_C)
Calling convention STACK_CALL adding stack push stackpush(char) = printf_str::c
Calling convention STACK_CALL adding stack push stackpush(char) = printf_padding::pad
Calling convention STACK_CALL adding stack push stackpush(char) = printf_number_buffer::buffer_sign
Calling convention STACK_CALL adding stack push stackpush(char) = 0
Calling convention STACK_CALL adding stack push stackpush(char) = '!'
Calling convention STACK_CALL adding stack push stackpush(char) = 0
Calling convention STACK_CALL adding stack push stackpush(char) = 0
Calling convention STACK_CALL adding stack push stackpush(char) = 0

CONTROL FLOW GRAPH SSA

unsigned int strlen(char *str)
strlen: scope:[strlen]  from printf_number_buffer::@6 printf_string::@3
  strlen::str#5 = phi( printf_number_buffer::@6/strlen::str#1, printf_string::@3/strlen::str#2 )
  strlen::len#0 = 0
  to:strlen::@1
strlen::@1: scope:[strlen]  from strlen strlen::@2
  strlen::len#4 = phi( strlen/strlen::len#0, strlen::@2/strlen::len#1 )
  strlen::str#3 = phi( strlen/strlen::str#5, strlen::@2/strlen::str#0 )
  strlen::$0 = 0 != *strlen::str#3
  if(strlen::$0) goto strlen::@2
  to:strlen::@3
strlen::@2: scope:[strlen]  from strlen::@1
  strlen::str#4 = phi( strlen::@1/strlen::str#3 )
  strlen::len#2 = phi( strlen::@1/strlen::len#4 )
  strlen::len#1 = ++ strlen::len#2
  strlen::str#0 = ++ strlen::str#4
  to:strlen::@1
strlen::@3: scope:[strlen]  from strlen::@1
  strlen::len#3 = phi( strlen::@1/strlen::len#4 )
  strlen::return#0 = strlen::len#3
  to:strlen::@return
strlen::@return: scope:[strlen]  from strlen::@3
  strlen::return#4 = phi( strlen::@3/strlen::return#0 )
  strlen::return#1 = strlen::return#4
  return 
  to:@return

char toupper(char ch)
toupper: scope:[toupper]  from strupr::@2
  toupper::ch#1 = phi( strupr::@2/toupper::ch#0 )
  toupper::$0 = toupper::ch#1 >= 'a'
  toupper::$1 = toupper::ch#1 <= 'z'
  toupper::$2 = toupper::$0 && toupper::$1
  if(toupper::$2) goto toupper::@1
  to:toupper::@2
toupper::@1: scope:[toupper]  from toupper
  toupper::ch#2 = phi( toupper/toupper::ch#1 )
  toupper::$3 = toupper::ch#2 + 'A'-'a'
  toupper::return#0 = toupper::$3
  to:toupper::@return
toupper::@2: scope:[toupper]  from toupper
  toupper::ch#3 = phi( toupper/toupper::ch#1 )
  toupper::return#1 = toupper::ch#3
  to:toupper::@return
toupper::@return: scope:[toupper]  from toupper::@1 toupper::@2
  toupper::return#4 = phi( toupper::@1/toupper::return#0, toupper::@2/toupper::return#1 )
  toupper::return#2 = toupper::return#4
  return 
  to:@return

char * strupr(char *str)
strupr: scope:[strupr]  from printf_number_buffer::@11
  strupr::str#1 = phi( printf_number_buffer::@11/strupr::str#0 )
  strupr::src#0 = strupr::str#1
  to:strupr::@1
strupr::@1: scope:[strupr]  from strupr strupr::@4
  strupr::str#3 = phi( strupr/strupr::str#1, strupr::@4/strupr::str#4 )
  strupr::src#2 = phi( strupr/strupr::src#0, strupr::@4/strupr::src#1 )
  strupr::$1 = 0 != *strupr::src#2
  if(strupr::$1) goto strupr::@2
  to:strupr::@3
strupr::@2: scope:[strupr]  from strupr::@1
  strupr::str#5 = phi( strupr::@1/strupr::str#3 )
  strupr::src#3 = phi( strupr::@1/strupr::src#2 )
  toupper::ch#0 = *strupr::src#3
  call toupper
  toupper::return#3 = toupper::return#2
  to:strupr::@4
strupr::@4: scope:[strupr]  from strupr::@2
  strupr::str#4 = phi( strupr::@2/strupr::str#5 )
  strupr::src#4 = phi( strupr::@2/strupr::src#3 )
  toupper::return#5 = phi( strupr::@2/toupper::return#3 )
  strupr::$0 = toupper::return#5
  *strupr::src#4 = strupr::$0
  strupr::src#1 = ++ strupr::src#4
  to:strupr::@1
strupr::@3: scope:[strupr]  from strupr::@1
  strupr::str#2 = phi( strupr::@1/strupr::str#3 )
  strupr::return#0 = strupr::str#2
  to:strupr::@return
strupr::@return: scope:[strupr]  from strupr::@3
  strupr::return#3 = phi( strupr::@3/strupr::return#0 )
  strupr::return#1 = strupr::return#3
  return 
  to:@return

void utoa(unsigned int value , char *buffer , char radix)
utoa: scope:[utoa]  from printf_sint::@2 printf_uint::@3
  utoa::buffer#22 = phi( printf_sint::@2/utoa::buffer#5, printf_uint::@3/utoa::buffer#6 )
  utoa::value#13 = phi( printf_sint::@2/utoa::value#1, printf_uint::@3/utoa::value#2 )
  utoa::radix#2 = phi( printf_sint::@2/utoa::radix#0, printf_uint::@3/utoa::radix#1 )
  utoa::max_digits#0 = 0
  utoa::digit_values#0 = (unsigned int *) 0
  utoa::$0 = utoa::radix#2 == DECIMAL
  if(utoa::$0) goto utoa::@1
  to:utoa::@6
utoa::@1: scope:[utoa]  from utoa
  utoa::buffer#18 = phi( utoa/utoa::buffer#22 )
  utoa::value#9 = phi( utoa/utoa::value#13 )
  utoa::max_digits#1 = 5
  utoa::digit_values#1 = RADIX_DECIMAL_VALUES
  to:utoa::@5
utoa::@6: scope:[utoa]  from utoa
  utoa::value#14 = phi( utoa/utoa::value#13 )
  utoa::buffer#17 = phi( utoa/utoa::buffer#22 )
  utoa::radix#3 = phi( utoa/utoa::radix#2 )
  utoa::$1 = utoa::radix#3 == HEXADECIMAL
  if(utoa::$1) goto utoa::@2
  to:utoa::@7
utoa::@2: scope:[utoa]  from utoa::@6
  utoa::buffer#19 = phi( utoa::@6/utoa::buffer#17 )
  utoa::value#10 = phi( utoa::@6/utoa::value#14 )
  utoa::max_digits#2 = 4
  utoa::digit_values#2 = RADIX_HEXADECIMAL_VALUES
  to:utoa::@5
utoa::@7: scope:[utoa]  from utoa::@6
  utoa::value#15 = phi( utoa::@6/utoa::value#14 )
  utoa::buffer#14 = phi( utoa::@6/utoa::buffer#17 )
  utoa::radix#4 = phi( utoa::@6/utoa::radix#3 )
  utoa::$2 = utoa::radix#4 == OCTAL
  if(utoa::$2) goto utoa::@3
  to:utoa::@8
utoa::@3: scope:[utoa]  from utoa::@7
  utoa::buffer#20 = phi( utoa::@7/utoa::buffer#14 )
  utoa::value#11 = phi( utoa::@7/utoa::value#15 )
  utoa::max_digits#3 = 6
  utoa::digit_values#3 = RADIX_OCTAL_VALUES
  to:utoa::@5
utoa::@8: scope:[utoa]  from utoa::@7
  utoa::value#16 = phi( utoa::@7/utoa::value#15 )
  utoa::buffer#11 = phi( utoa::@7/utoa::buffer#14 )
  utoa::radix#5 = phi( utoa::@7/utoa::radix#4 )
  utoa::$3 = utoa::radix#5 == BINARY
  if(utoa::$3) goto utoa::@4
  to:utoa::@9
utoa::@4: scope:[utoa]  from utoa::@8
  utoa::buffer#21 = phi( utoa::@8/utoa::buffer#11 )
  utoa::value#12 = phi( utoa::@8/utoa::value#16 )
  utoa::max_digits#4 = $10
  utoa::digit_values#4 = RADIX_BINARY_VALUES
  to:utoa::@5
utoa::@9: scope:[utoa]  from utoa::@8
  utoa::buffer#7 = phi( utoa::@8/utoa::buffer#11 )
  *utoa::buffer#7 = 'e'
  utoa::buffer#0 = ++ utoa::buffer#7
  *utoa::buffer#0 = 'r'
  utoa::buffer#1 = ++ utoa::buffer#0
  *utoa::buffer#1 = 'r'
  utoa::buffer#2 = ++ utoa::buffer#1
  *utoa::buffer#2 = 0
  to:utoa::@return
utoa::@return: scope:[utoa]  from utoa::@12 utoa::@9
  return 
  to:@return
utoa::@5: scope:[utoa]  from utoa::@1 utoa::@2 utoa::@3 utoa::@4
  utoa::buffer#16 = phi( utoa::@1/utoa::buffer#18, utoa::@2/utoa::buffer#19, utoa::@3/utoa::buffer#20, utoa::@4/utoa::buffer#21 )
  utoa::value#8 = phi( utoa::@1/utoa::value#9, utoa::@2/utoa::value#10, utoa::@3/utoa::value#11, utoa::@4/utoa::value#12 )
  utoa::digit_values#8 = phi( utoa::@1/utoa::digit_values#1, utoa::@2/utoa::digit_values#2, utoa::@3/utoa::digit_values#3, utoa::@4/utoa::digit_values#4 )
  utoa::max_digits#7 = phi( utoa::@1/utoa::max_digits#1, utoa::@2/utoa::max_digits#2, utoa::@3/utoa::max_digits#3, utoa::@4/utoa::max_digits#4 )
  utoa::started#0 = 0
  utoa::digit#0 = 0
  to:utoa::@10
utoa::@10: scope:[utoa]  from utoa::@13 utoa::@5
  utoa::buffer#12 = phi( utoa::@13/utoa::buffer#15, utoa::@5/utoa::buffer#16 )
  utoa::started#3 = phi( utoa::@13/utoa::started#4, utoa::@5/utoa::started#0 )
  utoa::value#6 = phi( utoa::@13/utoa::value#7, utoa::@5/utoa::value#8 )
  utoa::digit_values#6 = phi( utoa::@13/utoa::digit_values#7, utoa::@5/utoa::digit_values#8 )
  utoa::digit#2 = phi( utoa::@13/utoa::digit#1, utoa::@5/utoa::digit#0 )
  utoa::max_digits#5 = phi( utoa::@13/utoa::max_digits#6, utoa::@5/utoa::max_digits#7 )
  utoa::$4 = utoa::max_digits#5 - 1
  utoa::$5 = utoa::digit#2 < utoa::$4
  if(utoa::$5) goto utoa::@11
  to:utoa::@12
utoa::@11: scope:[utoa]  from utoa::@10
  utoa::max_digits#8 = phi( utoa::@10/utoa::max_digits#5 )
  utoa::buffer#13 = phi( utoa::@10/utoa::buffer#12 )
  utoa::started#2 = phi( utoa::@10/utoa::started#3 )
  utoa::value#3 = phi( utoa::@10/utoa::value#6 )
  utoa::digit_values#5 = phi( utoa::@10/utoa::digit_values#6 )
  utoa::digit#3 = phi( utoa::@10/utoa::digit#2 )
  utoa::$10 = utoa::digit#3 * SIZEOF_UNSIGNED_INT
  utoa::digit_value#0 = utoa::digit_values#5[utoa::$10]
  utoa::$6 = utoa::value#3 >= utoa::digit_value#0
  utoa::$7 = utoa::started#2 || utoa::$6
  utoa::$8 = ! utoa::$7
  if(utoa::$8) goto utoa::@13
  to:utoa::@14
utoa::@12: scope:[utoa]  from utoa::@10
  utoa::buffer#8 = phi( utoa::@10/utoa::buffer#12 )
  utoa::value#4 = phi( utoa::@10/utoa::value#6 )
  utoa::$11 = (char)utoa::value#4
  *utoa::buffer#8 = DIGITS[utoa::$11]
  utoa::buffer#3 = ++ utoa::buffer#8
  *utoa::buffer#3 = 0
  to:utoa::@return
utoa::@13: scope:[utoa]  from utoa::@11 utoa::@15
  utoa::buffer#15 = phi( utoa::@11/utoa::buffer#13, utoa::@15/utoa::buffer#4 )
  utoa::started#4 = phi( utoa::@11/utoa::started#2, utoa::@15/utoa::started#1 )
  utoa::value#7 = phi( utoa::@11/utoa::value#3, utoa::@15/utoa::value#0 )
  utoa::digit_values#7 = phi( utoa::@11/utoa::digit_values#5, utoa::@15/utoa::digit_values#9 )
  utoa::max_digits#6 = phi( utoa::@11/utoa::max_digits#8, utoa::@15/utoa::max_digits#9 )
  utoa::digit#4 = phi( utoa::@11/utoa::digit#3, utoa::@15/utoa::digit#5 )
  utoa::digit#1 = ++ utoa::digit#4
  to:utoa::@10
utoa::@14: scope:[utoa]  from utoa::@11
  utoa::digit_values#10 = phi( utoa::@11/utoa::digit_values#5 )
  utoa::max_digits#10 = phi( utoa::@11/utoa::max_digits#8 )
  utoa::digit#6 = phi( utoa::@11/utoa::digit#3 )
  utoa::digit_value#1 = phi( utoa::@11/utoa::digit_value#0 )
  utoa::value#5 = phi( utoa::@11/utoa::value#3 )
  utoa::buffer#9 = phi( utoa::@11/utoa::buffer#13 )
  utoa_append::buffer#0 = utoa::buffer#9
  utoa_append::value#0 = utoa::value#5
  utoa_append::sub#0 = utoa::digit_value#1
  call utoa_append
  utoa_append::return#0 = utoa_append::return#2
  to:utoa::@15
utoa::@15: scope:[utoa]  from utoa::@14
  utoa::digit_values#9 = phi( utoa::@14/utoa::digit_values#10 )
  utoa::max_digits#9 = phi( utoa::@14/utoa::max_digits#10 )
  utoa::digit#5 = phi( utoa::@14/utoa::digit#6 )
  utoa::buffer#10 = phi( utoa::@14/utoa::buffer#9 )
  utoa_append::return#3 = phi( utoa::@14/utoa_append::return#0 )
  utoa::$9 = utoa_append::return#3
  utoa::value#0 = utoa::$9
  utoa::buffer#4 = ++ utoa::buffer#10
  utoa::started#1 = 1
  to:utoa::@13

void ultoa(unsigned long value , char *buffer , char radix)
ultoa: scope:[ultoa]  from printf_slong::@2
  ultoa::buffer#21 = phi( printf_slong::@2/ultoa::buffer#5 )
  ultoa::value#12 = phi( printf_slong::@2/ultoa::value#1 )
  ultoa::radix#1 = phi( printf_slong::@2/ultoa::radix#0 )
  ultoa::max_digits#0 = 0
  ultoa::digit_values#0 = (unsigned long *) 0
  ultoa::$0 = ultoa::radix#1 == DECIMAL
  if(ultoa::$0) goto ultoa::@1
  to:ultoa::@6
ultoa::@1: scope:[ultoa]  from ultoa
  ultoa::buffer#17 = phi( ultoa/ultoa::buffer#21 )
  ultoa::value#8 = phi( ultoa/ultoa::value#12 )
  ultoa::max_digits#1 = $a
  ultoa::digit_values#1 = RADIX_DECIMAL_VALUES_LONG
  to:ultoa::@5
ultoa::@6: scope:[ultoa]  from ultoa
  ultoa::value#13 = phi( ultoa/ultoa::value#12 )
  ultoa::buffer#16 = phi( ultoa/ultoa::buffer#21 )
  ultoa::radix#2 = phi( ultoa/ultoa::radix#1 )
  ultoa::$1 = ultoa::radix#2 == HEXADECIMAL
  if(ultoa::$1) goto ultoa::@2
  to:ultoa::@7
ultoa::@2: scope:[ultoa]  from ultoa::@6
  ultoa::buffer#18 = phi( ultoa::@6/ultoa::buffer#16 )
  ultoa::value#9 = phi( ultoa::@6/ultoa::value#13 )
  ultoa::max_digits#2 = 8
  ultoa::digit_values#2 = RADIX_HEXADECIMAL_VALUES_LONG
  to:ultoa::@5
ultoa::@7: scope:[ultoa]  from ultoa::@6
  ultoa::value#14 = phi( ultoa::@6/ultoa::value#13 )
  ultoa::buffer#13 = phi( ultoa::@6/ultoa::buffer#16 )
  ultoa::radix#3 = phi( ultoa::@6/ultoa::radix#2 )
  ultoa::$2 = ultoa::radix#3 == OCTAL
  if(ultoa::$2) goto ultoa::@3
  to:ultoa::@8
ultoa::@3: scope:[ultoa]  from ultoa::@7
  ultoa::buffer#19 = phi( ultoa::@7/ultoa::buffer#13 )
  ultoa::value#10 = phi( ultoa::@7/ultoa::value#14 )
  ultoa::max_digits#3 = $b
  ultoa::digit_values#3 = RADIX_OCTAL_VALUES_LONG
  to:ultoa::@5
ultoa::@8: scope:[ultoa]  from ultoa::@7
  ultoa::value#15 = phi( ultoa::@7/ultoa::value#14 )
  ultoa::buffer#10 = phi( ultoa::@7/ultoa::buffer#13 )
  ultoa::radix#4 = phi( ultoa::@7/ultoa::radix#3 )
  ultoa::$3 = ultoa::radix#4 == BINARY
  if(ultoa::$3) goto ultoa::@4
  to:ultoa::@9
ultoa::@4: scope:[ultoa]  from ultoa::@8
  ultoa::buffer#20 = phi( ultoa::@8/ultoa::buffer#10 )
  ultoa::value#11 = phi( ultoa::@8/ultoa::value#15 )
  ultoa::max_digits#4 = $20
  ultoa::digit_values#4 = RADIX_BINARY_VALUES_LONG
  to:ultoa::@5
ultoa::@9: scope:[ultoa]  from ultoa::@8
  ultoa::buffer#6 = phi( ultoa::@8/ultoa::buffer#10 )
  *ultoa::buffer#6 = 'e'
  ultoa::buffer#0 = ++ ultoa::buffer#6
  *ultoa::buffer#0 = 'r'
  ultoa::buffer#1 = ++ ultoa::buffer#0
  *ultoa::buffer#1 = 'r'
  ultoa::buffer#2 = ++ ultoa::buffer#1
  *ultoa::buffer#2 = 0
  to:ultoa::@return
ultoa::@return: scope:[ultoa]  from ultoa::@12 ultoa::@9
  return 
  to:@return
ultoa::@5: scope:[ultoa]  from ultoa::@1 ultoa::@2 ultoa::@3 ultoa::@4
  ultoa::buffer#15 = phi( ultoa::@1/ultoa::buffer#17, ultoa::@2/ultoa::buffer#18, ultoa::@3/ultoa::buffer#19, ultoa::@4/ultoa::buffer#20 )
  ultoa::value#7 = phi( ultoa::@1/ultoa::value#8, ultoa::@2/ultoa::value#9, ultoa::@3/ultoa::value#10, ultoa::@4/ultoa::value#11 )
  ultoa::digit_values#8 = phi( ultoa::@1/ultoa::digit_values#1, ultoa::@2/ultoa::digit_values#2, ultoa::@3/ultoa::digit_values#3, ultoa::@4/ultoa::digit_values#4 )
  ultoa::max_digits#7 = phi( ultoa::@1/ultoa::max_digits#1, ultoa::@2/ultoa::max_digits#2, ultoa::@3/ultoa::max_digits#3, ultoa::@4/ultoa::max_digits#4 )
  ultoa::started#0 = 0
  ultoa::digit#0 = 0
  to:ultoa::@10
ultoa::@10: scope:[ultoa]  from ultoa::@13 ultoa::@5
  ultoa::buffer#11 = phi( ultoa::@13/ultoa::buffer#14, ultoa::@5/ultoa::buffer#15 )
  ultoa::started#3 = phi( ultoa::@13/ultoa::started#4, ultoa::@5/ultoa::started#0 )
  ultoa::value#5 = phi( ultoa::@13/ultoa::value#6, ultoa::@5/ultoa::value#7 )
  ultoa::digit_values#6 = phi( ultoa::@13/ultoa::digit_values#7, ultoa::@5/ultoa::digit_values#8 )
  ultoa::digit#2 = phi( ultoa::@13/ultoa::digit#1, ultoa::@5/ultoa::digit#0 )
  ultoa::max_digits#5 = phi( ultoa::@13/ultoa::max_digits#6, ultoa::@5/ultoa::max_digits#7 )
  ultoa::$4 = ultoa::max_digits#5 - 1
  ultoa::$5 = ultoa::digit#2 < ultoa::$4
  if(ultoa::$5) goto ultoa::@11
  to:ultoa::@12
ultoa::@11: scope:[ultoa]  from ultoa::@10
  ultoa::max_digits#8 = phi( ultoa::@10/ultoa::max_digits#5 )
  ultoa::buffer#12 = phi( ultoa::@10/ultoa::buffer#11 )
  ultoa::started#2 = phi( ultoa::@10/ultoa::started#3 )
  ultoa::value#2 = phi( ultoa::@10/ultoa::value#5 )
  ultoa::digit_values#5 = phi( ultoa::@10/ultoa::digit_values#6 )
  ultoa::digit#3 = phi( ultoa::@10/ultoa::digit#2 )
  ultoa::$10 = ultoa::digit#3 * SIZEOF_UNSIGNED_LONG
  ultoa::digit_value#0 = ultoa::digit_values#5[ultoa::$10]
  ultoa::$6 = ultoa::value#2 >= ultoa::digit_value#0
  ultoa::$7 = ultoa::started#2 || ultoa::$6
  ultoa::$8 = ! ultoa::$7
  if(ultoa::$8) goto ultoa::@13
  to:ultoa::@14
ultoa::@12: scope:[ultoa]  from ultoa::@10
  ultoa::buffer#7 = phi( ultoa::@10/ultoa::buffer#11 )
  ultoa::value#3 = phi( ultoa::@10/ultoa::value#5 )
  ultoa::$11 = (char)ultoa::value#3
  *ultoa::buffer#7 = DIGITS[ultoa::$11]
  ultoa::buffer#3 = ++ ultoa::buffer#7
  *ultoa::buffer#3 = 0
  to:ultoa::@return
ultoa::@13: scope:[ultoa]  from ultoa::@11 ultoa::@15
  ultoa::buffer#14 = phi( ultoa::@11/ultoa::buffer#12, ultoa::@15/ultoa::buffer#4 )
  ultoa::started#4 = phi( ultoa::@11/ultoa::started#2, ultoa::@15/ultoa::started#1 )
  ultoa::value#6 = phi( ultoa::@11/ultoa::value#2, ultoa::@15/ultoa::value#0 )
  ultoa::digit_values#7 = phi( ultoa::@11/ultoa::digit_values#5, ultoa::@15/ultoa::digit_values#9 )
  ultoa::max_digits#6 = phi( ultoa::@11/ultoa::max_digits#8, ultoa::@15/ultoa::max_digits#9 )
  ultoa::digit#4 = phi( ultoa::@11/ultoa::digit#3, ultoa::@15/ultoa::digit#5 )
  ultoa::digit#1 = ++ ultoa::digit#4
  to:ultoa::@10
ultoa::@14: scope:[ultoa]  from ultoa::@11
  ultoa::digit_values#10 = phi( ultoa::@11/ultoa::digit_values#5 )
  ultoa::max_digits#10 = phi( ultoa::@11/ultoa::max_digits#8 )
  ultoa::digit#6 = phi( ultoa::@11/ultoa::digit#3 )
  ultoa::digit_value#1 = phi( ultoa::@11/ultoa::digit_value#0 )
  ultoa::value#4 = phi( ultoa::@11/ultoa::value#2 )
  ultoa::buffer#8 = phi( ultoa::@11/ultoa::buffer#12 )
  ultoa_append::buffer#0 = ultoa::buffer#8
  ultoa_append::value#0 = ultoa::value#4
  ultoa_append::sub#0 = ultoa::digit_value#1
  call ultoa_append
  ultoa_append::return#0 = ultoa_append::return#2
  to:ultoa::@15
ultoa::@15: scope:[ultoa]  from ultoa::@14
  ultoa::digit_values#9 = phi( ultoa::@14/ultoa::digit_values#10 )
  ultoa::max_digits#9 = phi( ultoa::@14/ultoa::max_digits#10 )
  ultoa::digit#5 = phi( ultoa::@14/ultoa::digit#6 )
  ultoa::buffer#9 = phi( ultoa::@14/ultoa::buffer#8 )
  ultoa_append::return#3 = phi( ultoa::@14/ultoa_append::return#0 )
  ultoa::$9 = ultoa_append::return#3
  ultoa::value#0 = ultoa::$9
  ultoa::buffer#4 = ++ ultoa::buffer#9
  ultoa::started#1 = 1
  to:ultoa::@13

unsigned int utoa_append(char *buffer , unsigned int value , unsigned int sub)
utoa_append: scope:[utoa_append]  from utoa::@14
  utoa_append::buffer#3 = phi( utoa::@14/utoa_append::buffer#0 )
  utoa_append::sub#3 = phi( utoa::@14/utoa_append::sub#0 )
  utoa_append::value#5 = phi( utoa::@14/utoa_append::value#0 )
  utoa_append::digit#0 = 0
  to:utoa_append::@1
utoa_append::@1: scope:[utoa_append]  from utoa_append utoa_append::@2
  utoa_append::buffer#2 = phi( utoa_append/utoa_append::buffer#3, utoa_append::@2/utoa_append::buffer#4 )
  utoa_append::digit#4 = phi( utoa_append/utoa_append::digit#0, utoa_append::@2/utoa_append::digit#1 )
  utoa_append::sub#1 = phi( utoa_append/utoa_append::sub#3, utoa_append::@2/utoa_append::sub#2 )
  utoa_append::value#2 = phi( utoa_append/utoa_append::value#5, utoa_append::@2/utoa_append::value#1 )
  utoa_append::$0 = utoa_append::value#2 >= utoa_append::sub#1
  if(utoa_append::$0) goto utoa_append::@2
  to:utoa_append::@3
utoa_append::@2: scope:[utoa_append]  from utoa_append::@1
  utoa_append::buffer#4 = phi( utoa_append::@1/utoa_append::buffer#2 )
  utoa_append::sub#2 = phi( utoa_append::@1/utoa_append::sub#1 )
  utoa_append::value#3 = phi( utoa_append::@1/utoa_append::value#2 )
  utoa_append::digit#2 = phi( utoa_append::@1/utoa_append::digit#4 )
  utoa_append::digit#1 = ++ utoa_append::digit#2
  utoa_append::value#1 = utoa_append::value#3 - utoa_append::sub#2
  to:utoa_append::@1
utoa_append::@3: scope:[utoa_append]  from utoa_append::@1
  utoa_append::value#4 = phi( utoa_append::@1/utoa_append::value#2 )
  utoa_append::buffer#1 = phi( utoa_append::@1/utoa_append::buffer#2 )
  utoa_append::digit#3 = phi( utoa_append::@1/utoa_append::digit#4 )
  *utoa_append::buffer#1 = DIGITS[utoa_append::digit#3]
  utoa_append::return#1 = utoa_append::value#4
  to:utoa_append::@return
utoa_append::@return: scope:[utoa_append]  from utoa_append::@3
  utoa_append::return#4 = phi( utoa_append::@3/utoa_append::return#1 )
  utoa_append::return#2 = utoa_append::return#4
  return 
  to:@return

unsigned long ultoa_append(char *buffer , unsigned long value , unsigned long sub)
ultoa_append: scope:[ultoa_append]  from ultoa::@14
  ultoa_append::buffer#3 = phi( ultoa::@14/ultoa_append::buffer#0 )
  ultoa_append::sub#3 = phi( ultoa::@14/ultoa_append::sub#0 )
  ultoa_append::value#5 = phi( ultoa::@14/ultoa_append::value#0 )
  ultoa_append::digit#0 = 0
  to:ultoa_append::@1
ultoa_append::@1: scope:[ultoa_append]  from ultoa_append ultoa_append::@2
  ultoa_append::buffer#2 = phi( ultoa_append/ultoa_append::buffer#3, ultoa_append::@2/ultoa_append::buffer#4 )
  ultoa_append::digit#4 = phi( ultoa_append/ultoa_append::digit#0, ultoa_append::@2/ultoa_append::digit#1 )
  ultoa_append::sub#1 = phi( ultoa_append/ultoa_append::sub#3, ultoa_append::@2/ultoa_append::sub#2 )
  ultoa_append::value#2 = phi( ultoa_append/ultoa_append::value#5, ultoa_append::@2/ultoa_append::value#1 )
  ultoa_append::$0 = ultoa_append::value#2 >= ultoa_append::sub#1
  if(ultoa_append::$0) goto ultoa_append::@2
  to:ultoa_append::@3
ultoa_append::@2: scope:[ultoa_append]  from ultoa_append::@1
  ultoa_append::buffer#4 = phi( ultoa_append::@1/ultoa_append::buffer#2 )
  ultoa_append::sub#2 = phi( ultoa_append::@1/ultoa_append::sub#1 )
  ultoa_append::value#3 = phi( ultoa_append::@1/ultoa_append::value#2 )
  ultoa_append::digit#2 = phi( ultoa_append::@1/ultoa_append::digit#4 )
  ultoa_append::digit#1 = ++ ultoa_append::digit#2
  ultoa_append::value#1 = ultoa_append::value#3 - ultoa_append::sub#2
  to:ultoa_append::@1
ultoa_append::@3: scope:[ultoa_append]  from ultoa_append::@1
  ultoa_append::value#4 = phi( ultoa_append::@1/ultoa_append::value#2 )
  ultoa_append::buffer#1 = phi( ultoa_append::@1/ultoa_append::buffer#2 )
  ultoa_append::digit#3 = phi( ultoa_append::@1/ultoa_append::digit#4 )
  *ultoa_append::buffer#1 = DIGITS[ultoa_append::digit#3]
  ultoa_append::return#1 = ultoa_append::value#4
  to:ultoa_append::@return
ultoa_append::@return: scope:[ultoa_append]  from ultoa_append::@3
  ultoa_append::return#4 = phi( ultoa_append::@3/ultoa_append::return#1 )
  ultoa_append::return#2 = ultoa_append::return#4
  return 
  to:@return

void gotoxy(char x , char y)
gotoxy: scope:[gotoxy]  from conio_c64_init::@1
  gotoxy::x#3 = phi( conio_c64_init::@1/gotoxy::x#1 )
  gotoxy::y#2 = phi( conio_c64_init::@1/gotoxy::y#1 )
  gotoxy::$0 = gotoxy::y#2 > $19
  gotoxy::$1 = ! gotoxy::$0
  if(gotoxy::$1) goto gotoxy::@1
  to:gotoxy::@2
gotoxy::@1: scope:[gotoxy]  from gotoxy gotoxy::@2
  gotoxy::x#2 = phi( gotoxy/gotoxy::x#3, gotoxy::@2/gotoxy::x#4 )
  gotoxy::$2 = gotoxy::x#2 >= $28
  gotoxy::$3 = ! gotoxy::$2
  if(gotoxy::$3) goto gotoxy::@return
  to:gotoxy::@3
gotoxy::@2: scope:[gotoxy]  from gotoxy
  gotoxy::x#4 = phi( gotoxy/gotoxy::x#3 )
  gotoxy::y#0 = 0
  to:gotoxy::@1
gotoxy::@3: scope:[gotoxy]  from gotoxy::@1
  gotoxy::x#0 = 0
  to:gotoxy::@return
gotoxy::@return: scope:[gotoxy]  from gotoxy::@1 gotoxy::@3
  return 
  to:@return

void conio_c64_init()
conio_c64_init: scope:[conio_c64_init]  from __start::__init1
  conio_c64_init::line#0 = *conio_c64_init::BASIC_CURSOR_LINE
  conio_c64_init::$0 = conio_c64_init::line#0 >= $19
  conio_c64_init::$1 = ! conio_c64_init::$0
  if(conio_c64_init::$1) goto conio_c64_init::@1
  to:conio_c64_init::@2
conio_c64_init::@1: scope:[conio_c64_init]  from conio_c64_init conio_c64_init::@2
  conio_c64_init::line#2 = phi( conio_c64_init/conio_c64_init::line#0, conio_c64_init::@2/conio_c64_init::line#1 )
  gotoxy::x#1 = 0
  gotoxy::y#1 = conio_c64_init::line#2
  call gotoxy
  to:conio_c64_init::@3
conio_c64_init::@3: scope:[conio_c64_init]  from conio_c64_init::@1
  to:conio_c64_init::@return
conio_c64_init::@2: scope:[conio_c64_init]  from conio_c64_init
  conio_c64_init::line#1 = $19-1
  to:conio_c64_init::@1
conio_c64_init::@return: scope:[conio_c64_init]  from conio_c64_init::@3
  return 
  to:@return

void printf_str(void (*putc)(char) , const char *s)
printf_str: scope:[printf_str]  from main::@1 main::@11 main::@13 main::@16 main::@18 main::@4 main::@6 main::@9 printf_number_buffer::@5 printf_string::@2
  printf_str::putc#12 = phi( main::@1/printf_str::putc#2, main::@11/printf_str::putc#6, main::@13/printf_str::putc#7, main::@16/printf_str::putc#8, main::@18/printf_str::putc#9, main::@4/printf_str::putc#3, main::@6/printf_str::putc#4, main::@9/printf_str::putc#5, printf_number_buffer::@5/printf_str::putc#0, printf_string::@2/printf_str::putc#1 )
  printf_str::s#12 = phi( main::@1/printf_str::s#3, main::@11/printf_str::s#7, main::@13/printf_str::s#8, main::@16/printf_str::s#9, main::@18/printf_str::s#10, main::@4/printf_str::s#4, main::@6/printf_str::s#5, main::@9/printf_str::s#6, printf_number_buffer::@5/printf_str::s#1, printf_string::@2/printf_str::s#2 )
  printf_str::c#0 = 0
  to:printf_str::@1
printf_str::@1: scope:[printf_str]  from printf_str printf_str::@2
  printf_str::putc#11 = phi( printf_str/printf_str::putc#12, printf_str::@2/printf_str::putc#10 )
  printf_str::s#11 = phi( printf_str/printf_str::s#12, printf_str::@2/printf_str::s#13 )
  printf_str::c#1 = *printf_str::s#11
  printf_str::$0 = printf_str::c#1
  printf_str::s#0 = ++ printf_str::s#11
  printf_str::$2 = 0 != printf_str::$0
  if(printf_str::$2) goto printf_str::@2
  to:printf_str::@return
printf_str::@2: scope:[printf_str]  from printf_str::@1
  printf_str::s#13 = phi( printf_str::@1/printf_str::s#0 )
  printf_str::putc#10 = phi( printf_str::@1/printf_str::putc#11 )
  printf_str::c#2 = phi( printf_str::@1/printf_str::c#1 )
  stackpush(char) = printf_str::c#2
  callexecute *printf_str::putc#10 
  sideeffect stackpullbytes(1)
  to:printf_str::@1
printf_str::@return: scope:[printf_str]  from printf_str::@1
  return 
  to:@return

void printf_padding(void (*putc)(char) , char pad , char length)
printf_padding: scope:[printf_padding]  from printf_number_buffer::@10 printf_number_buffer::@12 printf_number_buffer::@8 printf_string::@5 printf_string::@6
  printf_padding::putc#7 = phi( printf_number_buffer::@10/printf_padding::putc#1, printf_number_buffer::@12/printf_padding::putc#2, printf_number_buffer::@8/printf_padding::putc#0, printf_string::@5/printf_padding::putc#3, printf_string::@6/printf_padding::putc#4 )
  printf_padding::pad#7 = phi( printf_number_buffer::@10/printf_padding::pad#1, printf_number_buffer::@12/printf_padding::pad#2, printf_number_buffer::@8/printf_padding::pad#0, printf_string::@5/printf_padding::pad#3, printf_string::@6/printf_padding::pad#4 )
  printf_padding::length#6 = phi( printf_number_buffer::@10/printf_padding::length#1, printf_number_buffer::@12/printf_padding::length#2, printf_number_buffer::@8/printf_padding::length#0, printf_string::@5/printf_padding::length#3, printf_string::@6/printf_padding::length#4 )
  printf_padding::i#0 = 0
  to:printf_padding::@1
printf_padding::@1: scope:[printf_padding]  from printf_padding printf_padding::@3
  printf_padding::putc#6 = phi( printf_padding/printf_padding::putc#7, printf_padding::@3/printf_padding::putc#8 )
  printf_padding::pad#6 = phi( printf_padding/printf_padding::pad#7, printf_padding::@3/printf_padding::pad#8 )
  printf_padding::length#5 = phi( printf_padding/printf_padding::length#6, printf_padding::@3/printf_padding::length#7 )
  printf_padding::i#2 = phi( printf_padding/printf_padding::i#0, printf_padding::@3/printf_padding::i#1 )
  printf_padding::$0 = printf_padding::i#2 < printf_padding::length#5
  if(printf_padding::$0) goto printf_padding::@2
  to:printf_padding::@return
printf_padding::@2: scope:[printf_padding]  from printf_padding::@1
  printf_padding::length#8 = phi( printf_padding::@1/printf_padding::length#5 )
  printf_padding::i#4 = phi( printf_padding::@1/printf_padding::i#2 )
  printf_padding::putc#5 = phi( printf_padding::@1/printf_padding::putc#6 )
  printf_padding::pad#5 = phi( printf_padding::@1/printf_padding::pad#6 )
  stackpush(char) = printf_padding::pad#5
  callexecute *printf_padding::putc#5 
  sideeffect stackpullbytes(1)
  to:printf_padding::@3
printf_padding::@3: scope:[printf_padding]  from printf_padding::@2
  printf_padding::putc#8 = phi( printf_padding::@2/printf_padding::putc#5 )
  printf_padding::pad#8 = phi( printf_padding::@2/printf_padding::pad#5 )
  printf_padding::length#7 = phi( printf_padding::@2/printf_padding::length#8 )
  printf_padding::i#3 = phi( printf_padding::@2/printf_padding::i#4 )
  printf_padding::i#1 = ++ printf_padding::i#3
  to:printf_padding::@1
printf_padding::@return: scope:[printf_padding]  from printf_padding::@1
  return 
  to:@return

void printf_slong(void (*putc)(char) , long 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_slong: scope:[printf_slong]  from main::@17
  printf_slong::format_upper_case#6 = phi( main::@17/printf_slong::format_upper_case#0 )
  printf_slong::format_zero_padding#6 = phi( main::@17/printf_slong::format_zero_padding#0 )
  printf_slong::format_justify_left#6 = phi( main::@17/printf_slong::format_justify_left#0 )
  printf_slong::format_min_length#6 = phi( main::@17/printf_slong::format_min_length#0 )
  printf_slong::putc#6 = phi( main::@17/printf_slong::putc#0 )
  printf_slong::format_radix#6 = phi( main::@17/printf_slong::format_radix#0 )
  printf_slong::format_sign_always#3 = phi( main::@17/printf_slong::format_sign_always#0 )
  printf_slong::value#2 = phi( main::@17/printf_slong::value#1 )
  *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) = 0
  printf_slong::$0 = printf_slong::value#2 < 0
  if(printf_slong::$0) goto printf_slong::@1
  to:printf_slong::@3
printf_slong::@1: scope:[printf_slong]  from printf_slong
  printf_slong::format_upper_case#3 = phi( printf_slong/printf_slong::format_upper_case#6 )
  printf_slong::format_zero_padding#3 = phi( printf_slong/printf_slong::format_zero_padding#6 )
  printf_slong::format_sign_always#5 = phi( printf_slong/printf_slong::format_sign_always#3 )
  printf_slong::format_justify_left#3 = phi( printf_slong/printf_slong::format_justify_left#6 )
  printf_slong::format_min_length#3 = phi( printf_slong/printf_slong::format_min_length#6 )
  printf_slong::putc#3 = phi( printf_slong/printf_slong::putc#6 )
  printf_slong::format_radix#3 = phi( printf_slong/printf_slong::format_radix#6 )
  printf_slong::value#3 = phi( printf_slong/printf_slong::value#2 )
  printf_slong::$4 = - printf_slong::value#3
  printf_slong::value#0 = printf_slong::$4
  *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) = '-'
  to:printf_slong::@2
printf_slong::@3: scope:[printf_slong]  from printf_slong
  printf_slong::format_upper_case#4 = phi( printf_slong/printf_slong::format_upper_case#6 )
  printf_slong::format_zero_padding#4 = phi( printf_slong/printf_slong::format_zero_padding#6 )
  printf_slong::format_justify_left#4 = phi( printf_slong/printf_slong::format_justify_left#6 )
  printf_slong::format_min_length#4 = phi( printf_slong/printf_slong::format_min_length#6 )
  printf_slong::putc#4 = phi( printf_slong/printf_slong::putc#6 )
  printf_slong::format_radix#4 = phi( printf_slong/printf_slong::format_radix#6 )
  printf_slong::value#5 = phi( printf_slong/printf_slong::value#2 )
  printf_slong::format_sign_always#1 = phi( printf_slong/printf_slong::format_sign_always#3 )
  printf_slong::$5 = 0 != printf_slong::format_sign_always#1
  printf_slong::$3 = ! printf_slong::$5
  if(printf_slong::$3) goto printf_slong::@2
  to:printf_slong::@4
printf_slong::@4: scope:[printf_slong]  from printf_slong::@3
  printf_slong::format_upper_case#5 = phi( printf_slong::@3/printf_slong::format_upper_case#4 )
  printf_slong::format_zero_padding#5 = phi( printf_slong::@3/printf_slong::format_zero_padding#4 )
  printf_slong::format_sign_always#6 = phi( printf_slong::@3/printf_slong::format_sign_always#1 )
  printf_slong::format_justify_left#5 = phi( printf_slong::@3/printf_slong::format_justify_left#4 )
  printf_slong::format_min_length#5 = phi( printf_slong::@3/printf_slong::format_min_length#4 )
  printf_slong::putc#5 = phi( printf_slong::@3/printf_slong::putc#4 )
  printf_slong::format_radix#5 = phi( printf_slong::@3/printf_slong::format_radix#4 )
  printf_slong::value#6 = phi( printf_slong::@3/printf_slong::value#5 )
  *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) = '+'
  to:printf_slong::@2
printf_slong::@2: scope:[printf_slong]  from printf_slong::@1 printf_slong::@3 printf_slong::@4
  printf_slong::format_upper_case#2 = phi( printf_slong::@1/printf_slong::format_upper_case#3, printf_slong::@3/printf_slong::format_upper_case#4, printf_slong::@4/printf_slong::format_upper_case#5 )
  printf_slong::format_zero_padding#2 = phi( printf_slong::@1/printf_slong::format_zero_padding#3, printf_slong::@3/printf_slong::format_zero_padding#4, printf_slong::@4/printf_slong::format_zero_padding#5 )
  printf_slong::format_sign_always#4 = phi( printf_slong::@1/printf_slong::format_sign_always#5, printf_slong::@3/printf_slong::format_sign_always#1, printf_slong::@4/printf_slong::format_sign_always#6 )
  printf_slong::format_justify_left#2 = phi( printf_slong::@1/printf_slong::format_justify_left#3, printf_slong::@3/printf_slong::format_justify_left#4, printf_slong::@4/printf_slong::format_justify_left#5 )
  printf_slong::format_min_length#2 = phi( printf_slong::@1/printf_slong::format_min_length#3, printf_slong::@3/printf_slong::format_min_length#4, printf_slong::@4/printf_slong::format_min_length#5 )
  printf_slong::putc#2 = phi( printf_slong::@1/printf_slong::putc#3, printf_slong::@3/printf_slong::putc#4, printf_slong::@4/printf_slong::putc#5 )
  printf_slong::format_radix#1 = phi( printf_slong::@1/printf_slong::format_radix#3, printf_slong::@3/printf_slong::format_radix#4, printf_slong::@4/printf_slong::format_radix#5 )
  printf_slong::value#4 = phi( printf_slong::@1/printf_slong::value#0, printf_slong::@3/printf_slong::value#5, printf_slong::@4/printf_slong::value#6 )
  printf_slong::uvalue#0 = (unsigned long)printf_slong::value#4
  ultoa::value#1 = printf_slong::uvalue#0
  ultoa::buffer#5 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
  ultoa::radix#0 = printf_slong::format_radix#1
  call ultoa
  to:printf_slong::@5
printf_slong::@5: scope:[printf_slong]  from printf_slong::@2
  printf_slong::format_radix#2 = phi( printf_slong::@2/printf_slong::format_radix#1 )
  printf_slong::format_upper_case#1 = phi( printf_slong::@2/printf_slong::format_upper_case#2 )
  printf_slong::format_zero_padding#1 = phi( printf_slong::@2/printf_slong::format_zero_padding#2 )
  printf_slong::format_sign_always#2 = phi( printf_slong::@2/printf_slong::format_sign_always#4 )
  printf_slong::format_justify_left#1 = phi( printf_slong::@2/printf_slong::format_justify_left#2 )
  printf_slong::format_min_length#1 = phi( printf_slong::@2/printf_slong::format_min_length#2 )
  printf_slong::putc#1 = phi( printf_slong::@2/printf_slong::putc#2 )
  printf_number_buffer::putc#0 = printf_slong::putc#1
  printf_number_buffer::buffer_sign#0 = *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN)
  printf_number_buffer::buffer_digits#0 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
  printf_number_buffer::format_min_length#0 = printf_slong::format_min_length#1
  printf_number_buffer::format_justify_left#0 = printf_slong::format_justify_left#1
  printf_number_buffer::format_sign_always#0 = printf_slong::format_sign_always#2
  printf_number_buffer::format_zero_padding#0 = printf_slong::format_zero_padding#1
  printf_number_buffer::format_upper_case#0 = printf_slong::format_upper_case#1
  printf_number_buffer::format_radix#0 = printf_slong::format_radix#2
  call printf_number_buffer
  to:printf_slong::@6
printf_slong::@6: scope:[printf_slong]  from printf_slong::@5
  to:printf_slong::@return
printf_slong::@return: scope:[printf_slong]  from printf_slong::@6
  return 
  to:@return

void printf_sint(void (*putc)(char) , int 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_sint: scope:[printf_sint]  from main::@10
  printf_sint::format_upper_case#6 = phi( main::@10/printf_sint::format_upper_case#0 )
  printf_sint::format_zero_padding#6 = phi( main::@10/printf_sint::format_zero_padding#0 )
  printf_sint::format_justify_left#6 = phi( main::@10/printf_sint::format_justify_left#0 )
  printf_sint::format_min_length#6 = phi( main::@10/printf_sint::format_min_length#0 )
  printf_sint::putc#6 = phi( main::@10/printf_sint::putc#0 )
  printf_sint::format_radix#6 = phi( main::@10/printf_sint::format_radix#0 )
  printf_sint::format_sign_always#3 = phi( main::@10/printf_sint::format_sign_always#0 )
  printf_sint::value#2 = phi( main::@10/printf_sint::value#1 )
  *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) = 0
  printf_sint::$0 = printf_sint::value#2 < 0
  if(printf_sint::$0) goto printf_sint::@1
  to:printf_sint::@3
printf_sint::@1: scope:[printf_sint]  from printf_sint
  printf_sint::format_upper_case#3 = phi( printf_sint/printf_sint::format_upper_case#6 )
  printf_sint::format_zero_padding#3 = phi( printf_sint/printf_sint::format_zero_padding#6 )
  printf_sint::format_sign_always#5 = phi( printf_sint/printf_sint::format_sign_always#3 )
  printf_sint::format_justify_left#3 = phi( printf_sint/printf_sint::format_justify_left#6 )
  printf_sint::format_min_length#3 = phi( printf_sint/printf_sint::format_min_length#6 )
  printf_sint::putc#3 = phi( printf_sint/printf_sint::putc#6 )
  printf_sint::format_radix#3 = phi( printf_sint/printf_sint::format_radix#6 )
  printf_sint::value#3 = phi( printf_sint/printf_sint::value#2 )
  printf_sint::$4 = - printf_sint::value#3
  printf_sint::value#0 = printf_sint::$4
  *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) = '-'
  to:printf_sint::@2
printf_sint::@3: scope:[printf_sint]  from printf_sint
  printf_sint::format_upper_case#4 = phi( printf_sint/printf_sint::format_upper_case#6 )
  printf_sint::format_zero_padding#4 = phi( printf_sint/printf_sint::format_zero_padding#6 )
  printf_sint::format_justify_left#4 = phi( printf_sint/printf_sint::format_justify_left#6 )
  printf_sint::format_min_length#4 = phi( printf_sint/printf_sint::format_min_length#6 )
  printf_sint::putc#4 = phi( printf_sint/printf_sint::putc#6 )
  printf_sint::format_radix#4 = phi( printf_sint/printf_sint::format_radix#6 )
  printf_sint::value#5 = phi( printf_sint/printf_sint::value#2 )
  printf_sint::format_sign_always#1 = phi( printf_sint/printf_sint::format_sign_always#3 )
  printf_sint::$5 = 0 != printf_sint::format_sign_always#1
  printf_sint::$3 = ! printf_sint::$5
  if(printf_sint::$3) goto printf_sint::@2
  to:printf_sint::@4
printf_sint::@4: scope:[printf_sint]  from printf_sint::@3
  printf_sint::format_upper_case#5 = phi( printf_sint::@3/printf_sint::format_upper_case#4 )
  printf_sint::format_zero_padding#5 = phi( printf_sint::@3/printf_sint::format_zero_padding#4 )
  printf_sint::format_sign_always#6 = phi( printf_sint::@3/printf_sint::format_sign_always#1 )
  printf_sint::format_justify_left#5 = phi( printf_sint::@3/printf_sint::format_justify_left#4 )
  printf_sint::format_min_length#5 = phi( printf_sint::@3/printf_sint::format_min_length#4 )
  printf_sint::putc#5 = phi( printf_sint::@3/printf_sint::putc#4 )
  printf_sint::format_radix#5 = phi( printf_sint::@3/printf_sint::format_radix#4 )
  printf_sint::value#6 = phi( printf_sint::@3/printf_sint::value#5 )
  *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) = '+'
  to:printf_sint::@2
printf_sint::@2: scope:[printf_sint]  from printf_sint::@1 printf_sint::@3 printf_sint::@4
  printf_sint::format_upper_case#2 = phi( printf_sint::@1/printf_sint::format_upper_case#3, printf_sint::@3/printf_sint::format_upper_case#4, printf_sint::@4/printf_sint::format_upper_case#5 )
  printf_sint::format_zero_padding#2 = phi( printf_sint::@1/printf_sint::format_zero_padding#3, printf_sint::@3/printf_sint::format_zero_padding#4, printf_sint::@4/printf_sint::format_zero_padding#5 )
  printf_sint::format_sign_always#4 = phi( printf_sint::@1/printf_sint::format_sign_always#5, printf_sint::@3/printf_sint::format_sign_always#1, printf_sint::@4/printf_sint::format_sign_always#6 )
  printf_sint::format_justify_left#2 = phi( printf_sint::@1/printf_sint::format_justify_left#3, printf_sint::@3/printf_sint::format_justify_left#4, printf_sint::@4/printf_sint::format_justify_left#5 )
  printf_sint::format_min_length#2 = phi( printf_sint::@1/printf_sint::format_min_length#3, printf_sint::@3/printf_sint::format_min_length#4, printf_sint::@4/printf_sint::format_min_length#5 )
  printf_sint::putc#2 = phi( printf_sint::@1/printf_sint::putc#3, printf_sint::@3/printf_sint::putc#4, printf_sint::@4/printf_sint::putc#5 )
  printf_sint::format_radix#1 = phi( printf_sint::@1/printf_sint::format_radix#3, printf_sint::@3/printf_sint::format_radix#4, printf_sint::@4/printf_sint::format_radix#5 )
  printf_sint::value#4 = phi( printf_sint::@1/printf_sint::value#0, printf_sint::@3/printf_sint::value#5, printf_sint::@4/printf_sint::value#6 )
  printf_sint::uvalue#0 = (unsigned int)printf_sint::value#4
  utoa::value#1 = printf_sint::uvalue#0
  utoa::buffer#5 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
  utoa::radix#0 = printf_sint::format_radix#1
  call utoa
  to:printf_sint::@5
printf_sint::@5: scope:[printf_sint]  from printf_sint::@2
  printf_sint::format_radix#2 = phi( printf_sint::@2/printf_sint::format_radix#1 )
  printf_sint::format_upper_case#1 = phi( printf_sint::@2/printf_sint::format_upper_case#2 )
  printf_sint::format_zero_padding#1 = phi( printf_sint::@2/printf_sint::format_zero_padding#2 )
  printf_sint::format_sign_always#2 = phi( printf_sint::@2/printf_sint::format_sign_always#4 )
  printf_sint::format_justify_left#1 = phi( printf_sint::@2/printf_sint::format_justify_left#2 )
  printf_sint::format_min_length#1 = phi( printf_sint::@2/printf_sint::format_min_length#2 )
  printf_sint::putc#1 = phi( printf_sint::@2/printf_sint::putc#2 )
  printf_number_buffer::putc#1 = printf_sint::putc#1
  printf_number_buffer::buffer_sign#1 = *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN)
  printf_number_buffer::buffer_digits#1 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
  printf_number_buffer::format_min_length#1 = printf_sint::format_min_length#1
  printf_number_buffer::format_justify_left#1 = printf_sint::format_justify_left#1
  printf_number_buffer::format_sign_always#1 = printf_sint::format_sign_always#2
  printf_number_buffer::format_zero_padding#1 = printf_sint::format_zero_padding#1
  printf_number_buffer::format_upper_case#1 = printf_sint::format_upper_case#1
  printf_number_buffer::format_radix#1 = printf_sint::format_radix#2
  call printf_number_buffer
  to:printf_sint::@6
printf_sint::@6: scope:[printf_sint]  from printf_sint::@5
  to:printf_sint::@return
printf_sint::@return: scope:[printf_sint]  from printf_sint::@6
  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 main::@12
  printf_uint::format_upper_case#5 = phi( main::@12/printf_uint::format_upper_case#0 )
  printf_uint::format_zero_padding#5 = phi( main::@12/printf_uint::format_zero_padding#0 )
  printf_uint::format_justify_left#5 = phi( main::@12/printf_uint::format_justify_left#0 )
  printf_uint::format_min_length#5 = phi( main::@12/printf_uint::format_min_length#0 )
  printf_uint::putc#5 = phi( main::@12/printf_uint::putc#0 )
  printf_uint::format_radix#5 = phi( main::@12/printf_uint::format_radix#0 )
  printf_uint::uvalue#4 = phi( main::@12/printf_uint::uvalue#0 )
  printf_uint::format_sign_always#1 = phi( main::@12/printf_uint::format_sign_always#0 )
  printf_uint::$5 = 0 != printf_uint::format_sign_always#1
  if(printf_uint::$5) goto printf_uint::@1
  to:printf_uint::@2
printf_uint::@1: scope:[printf_uint]  from printf_uint
  printf_uint::format_upper_case#3 = phi( printf_uint/printf_uint::format_upper_case#5 )
  printf_uint::format_zero_padding#3 = phi( printf_uint/printf_uint::format_zero_padding#5 )
  printf_uint::format_sign_always#4 = phi( printf_uint/printf_uint::format_sign_always#1 )
  printf_uint::format_justify_left#3 = phi( printf_uint/printf_uint::format_justify_left#5 )
  printf_uint::format_min_length#3 = phi( printf_uint/printf_uint::format_min_length#5 )
  printf_uint::putc#3 = phi( printf_uint/printf_uint::putc#5 )
  printf_uint::format_radix#3 = phi( printf_uint/printf_uint::format_radix#5 )
  printf_uint::uvalue#2 = phi( printf_uint/printf_uint::uvalue#4 )
  printf_uint::$1 = '+'
  to:printf_uint::@3
printf_uint::@2: scope:[printf_uint]  from printf_uint
  printf_uint::format_upper_case#4 = phi( printf_uint/printf_uint::format_upper_case#5 )
  printf_uint::format_zero_padding#4 = phi( printf_uint/printf_uint::format_zero_padding#5 )
  printf_uint::format_sign_always#5 = phi( printf_uint/printf_uint::format_sign_always#1 )
  printf_uint::format_justify_left#4 = phi( printf_uint/printf_uint::format_justify_left#5 )
  printf_uint::format_min_length#4 = phi( printf_uint/printf_uint::format_min_length#5 )
  printf_uint::putc#4 = phi( printf_uint/printf_uint::putc#5 )
  printf_uint::format_radix#4 = phi( printf_uint/printf_uint::format_radix#5 )
  printf_uint::uvalue#3 = phi( printf_uint/printf_uint::uvalue#4 )
  printf_uint::$0 = 0
  to:printf_uint::@3
printf_uint::@3: scope:[printf_uint]  from printf_uint::@1 printf_uint::@2
  printf_uint::format_upper_case#2 = phi( printf_uint::@1/printf_uint::format_upper_case#3, printf_uint::@2/printf_uint::format_upper_case#4 )
  printf_uint::format_zero_padding#2 = phi( printf_uint::@1/printf_uint::format_zero_padding#3, printf_uint::@2/printf_uint::format_zero_padding#4 )
  printf_uint::format_sign_always#3 = phi( printf_uint::@1/printf_uint::format_sign_always#4, printf_uint::@2/printf_uint::format_sign_always#5 )
  printf_uint::format_justify_left#2 = phi( printf_uint::@1/printf_uint::format_justify_left#3, printf_uint::@2/printf_uint::format_justify_left#4 )
  printf_uint::format_min_length#2 = phi( printf_uint::@1/printf_uint::format_min_length#3, printf_uint::@2/printf_uint::format_min_length#4 )
  printf_uint::putc#2 = phi( printf_uint::@1/printf_uint::putc#3, printf_uint::@2/printf_uint::putc#4 )
  printf_uint::format_radix#1 = phi( printf_uint::@1/printf_uint::format_radix#3, printf_uint::@2/printf_uint::format_radix#4 )
  printf_uint::uvalue#1 = phi( printf_uint::@1/printf_uint::uvalue#2, printf_uint::@2/printf_uint::uvalue#3 )
  printf_uint::$2 = phi( printf_uint::@1/printf_uint::$1, printf_uint::@2/printf_uint::$0 )
  *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) = printf_uint::$2
  utoa::value#2 = printf_uint::uvalue#1
  utoa::buffer#6 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
  utoa::radix#1 = printf_uint::format_radix#1
  call utoa
  to:printf_uint::@4
printf_uint::@4: scope:[printf_uint]  from printf_uint::@3
  printf_uint::format_radix#2 = phi( printf_uint::@3/printf_uint::format_radix#1 )
  printf_uint::format_upper_case#1 = phi( printf_uint::@3/printf_uint::format_upper_case#2 )
  printf_uint::format_zero_padding#1 = phi( printf_uint::@3/printf_uint::format_zero_padding#2 )
  printf_uint::format_sign_always#2 = phi( printf_uint::@3/printf_uint::format_sign_always#3 )
  printf_uint::format_justify_left#1 = phi( printf_uint::@3/printf_uint::format_justify_left#2 )
  printf_uint::format_min_length#1 = phi( printf_uint::@3/printf_uint::format_min_length#2 )
  printf_uint::putc#1 = phi( printf_uint::@3/printf_uint::putc#2 )
  printf_number_buffer::putc#2 = printf_uint::putc#1
  printf_number_buffer::buffer_sign#2 = *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN)
  printf_number_buffer::buffer_digits#2 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
  printf_number_buffer::format_min_length#2 = printf_uint::format_min_length#1
  printf_number_buffer::format_justify_left#2 = printf_uint::format_justify_left#1
  printf_number_buffer::format_sign_always#2 = printf_uint::format_sign_always#2
  printf_number_buffer::format_zero_padding#2 = printf_uint::format_zero_padding#1
  printf_number_buffer::format_upper_case#2 = printf_uint::format_upper_case#1
  printf_number_buffer::format_radix#2 = printf_uint::format_radix#2
  call printf_number_buffer
  to:printf_uint::@5
printf_uint::@5: scope:[printf_uint]  from printf_uint::@4
  to:printf_uint::@return
printf_uint::@return: scope:[printf_uint]  from printf_uint::@5
  return 
  to:@return

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_sint::@5 printf_slong::@5 printf_uint::@4
  printf_number_buffer::format_upper_case#11 = phi( printf_sint::@5/printf_number_buffer::format_upper_case#1, printf_slong::@5/printf_number_buffer::format_upper_case#0, printf_uint::@4/printf_number_buffer::format_upper_case#2 )
  printf_number_buffer::putc#14 = phi( printf_sint::@5/printf_number_buffer::putc#1, printf_slong::@5/printf_number_buffer::putc#0, printf_uint::@4/printf_number_buffer::putc#2 )
  printf_number_buffer::buffer_sign#9 = phi( printf_sint::@5/printf_number_buffer::buffer_sign#1, printf_slong::@5/printf_number_buffer::buffer_sign#0, printf_uint::@4/printf_number_buffer::buffer_sign#2 )
  printf_number_buffer::buffer_digits#6 = phi( printf_sint::@5/printf_number_buffer::buffer_digits#1, printf_slong::@5/printf_number_buffer::buffer_digits#0, printf_uint::@4/printf_number_buffer::buffer_digits#2 )
  printf_number_buffer::format_zero_padding#6 = phi( printf_sint::@5/printf_number_buffer::format_zero_padding#1, printf_slong::@5/printf_number_buffer::format_zero_padding#0, printf_uint::@4/printf_number_buffer::format_zero_padding#2 )
  printf_number_buffer::format_justify_left#5 = phi( printf_sint::@5/printf_number_buffer::format_justify_left#1, printf_slong::@5/printf_number_buffer::format_justify_left#0, printf_uint::@4/printf_number_buffer::format_justify_left#2 )
  printf_number_buffer::format_min_length#3 = phi( printf_sint::@5/printf_number_buffer::format_min_length#1, printf_slong::@5/printf_number_buffer::format_min_length#0, printf_uint::@4/printf_number_buffer::format_min_length#2 )
  printf_number_buffer::padding#0 = 0
  printf_number_buffer::$26 = 0 != printf_number_buffer::format_min_length#3
  printf_number_buffer::$0 = ! printf_number_buffer::$26
  if(printf_number_buffer::$0) goto printf_number_buffer::@1
  to:printf_number_buffer::@6
printf_number_buffer::@1: scope:[printf_number_buffer]  from printf_number_buffer printf_number_buffer::@13 printf_number_buffer::@14
  printf_number_buffer::buffer_digits#14 = phi( printf_number_buffer/printf_number_buffer::buffer_digits#6, printf_number_buffer::@13/printf_number_buffer::buffer_digits#16, printf_number_buffer::@14/printf_number_buffer::buffer_digits#17 )
  printf_number_buffer::format_upper_case#9 = phi( printf_number_buffer/printf_number_buffer::format_upper_case#11, printf_number_buffer::@13/printf_number_buffer::format_upper_case#12, printf_number_buffer::@14/printf_number_buffer::format_upper_case#13 )
  printf_number_buffer::putc#8 = phi( printf_number_buffer/printf_number_buffer::putc#14, printf_number_buffer::@13/printf_number_buffer::putc#15, printf_number_buffer::@14/printf_number_buffer::putc#16 )
  printf_number_buffer::buffer_sign#7 = phi( printf_number_buffer/printf_number_buffer::buffer_sign#9, printf_number_buffer::@13/printf_number_buffer::buffer_sign#10, printf_number_buffer::@14/printf_number_buffer::buffer_sign#11 )
  printf_number_buffer::padding#3 = phi( printf_number_buffer/printf_number_buffer::padding#0, printf_number_buffer::@13/printf_number_buffer::padding#1, printf_number_buffer::@14/printf_number_buffer::padding#2 )
  printf_number_buffer::format_zero_padding#3 = phi( printf_number_buffer/printf_number_buffer::format_zero_padding#6, printf_number_buffer::@13/printf_number_buffer::format_zero_padding#7, printf_number_buffer::@14/printf_number_buffer::format_zero_padding#8 )
  printf_number_buffer::format_justify_left#3 = phi( printf_number_buffer/printf_number_buffer::format_justify_left#5, printf_number_buffer::@13/printf_number_buffer::format_justify_left#6, printf_number_buffer::@14/printf_number_buffer::format_justify_left#7 )
  printf_number_buffer::$27 = 0 != printf_number_buffer::format_justify_left#3
  printf_number_buffer::$1 = ! printf_number_buffer::$27
  printf_number_buffer::$28 = 0 != printf_number_buffer::format_zero_padding#3
  printf_number_buffer::$2 = ! printf_number_buffer::$28
  printf_number_buffer::$3 = printf_number_buffer::$1 && printf_number_buffer::$2
  printf_number_buffer::$4 = printf_number_buffer::$3 && printf_number_buffer::padding#3
  printf_number_buffer::$5 = ! printf_number_buffer::$4
  if(printf_number_buffer::$5) goto printf_number_buffer::@2
  to:printf_number_buffer::@8
printf_number_buffer::@6: scope:[printf_number_buffer]  from printf_number_buffer
  printf_number_buffer::format_upper_case#17 = phi( printf_number_buffer/printf_number_buffer::format_upper_case#11 )
  printf_number_buffer::putc#22 = phi( printf_number_buffer/printf_number_buffer::putc#14 )
  printf_number_buffer::format_zero_padding#17 = phi( printf_number_buffer/printf_number_buffer::format_zero_padding#6 )
  printf_number_buffer::format_justify_left#13 = phi( printf_number_buffer/printf_number_buffer::format_justify_left#5 )
  printf_number_buffer::format_min_length#7 = phi( printf_number_buffer/printf_number_buffer::format_min_length#3 )
  printf_number_buffer::buffer_sign#6 = phi( printf_number_buffer/printf_number_buffer::buffer_sign#9 )
  printf_number_buffer::buffer_digits#3 = phi( printf_number_buffer/printf_number_buffer::buffer_digits#6 )
  strlen::str#1 = printf_number_buffer::buffer_digits#3
  call strlen
  strlen::return#2 = strlen::return#1
  to:printf_number_buffer::@15
printf_number_buffer::@15: scope:[printf_number_buffer]  from printf_number_buffer::@6
  printf_number_buffer::buffer_digits#19 = phi( printf_number_buffer::@6/printf_number_buffer::buffer_digits#3 )
  printf_number_buffer::format_upper_case#15 = phi( printf_number_buffer::@6/printf_number_buffer::format_upper_case#17 )
  printf_number_buffer::putc#20 = phi( printf_number_buffer::@6/printf_number_buffer::putc#22 )
  printf_number_buffer::format_zero_padding#12 = phi( printf_number_buffer::@6/printf_number_buffer::format_zero_padding#17 )
  printf_number_buffer::format_justify_left#9 = phi( printf_number_buffer::@6/printf_number_buffer::format_justify_left#13 )
  printf_number_buffer::format_min_length#5 = phi( printf_number_buffer::@6/printf_number_buffer::format_min_length#7 )
  printf_number_buffer::buffer_sign#3 = phi( printf_number_buffer::@6/printf_number_buffer::buffer_sign#6 )
  strlen::return#5 = phi( printf_number_buffer::@6/strlen::return#2 )
  printf_number_buffer::$19 = strlen::return#5
  printf_number_buffer::len#0 = (signed char)printf_number_buffer::$19
  printf_number_buffer::$29 = 0 != printf_number_buffer::buffer_sign#3
  printf_number_buffer::$20 = ! printf_number_buffer::$29
  if(printf_number_buffer::$20) goto printf_number_buffer::@13
  to:printf_number_buffer::@7
printf_number_buffer::@13: scope:[printf_number_buffer]  from printf_number_buffer::@15 printf_number_buffer::@7
  printf_number_buffer::buffer_digits#16 = phi( printf_number_buffer::@15/printf_number_buffer::buffer_digits#19, printf_number_buffer::@7/printf_number_buffer::buffer_digits#20 )
  printf_number_buffer::format_upper_case#12 = phi( printf_number_buffer::@15/printf_number_buffer::format_upper_case#15, printf_number_buffer::@7/printf_number_buffer::format_upper_case#16 )
  printf_number_buffer::putc#15 = phi( printf_number_buffer::@15/printf_number_buffer::putc#20, printf_number_buffer::@7/printf_number_buffer::putc#21 )
  printf_number_buffer::buffer_sign#10 = phi( printf_number_buffer::@15/printf_number_buffer::buffer_sign#3, printf_number_buffer::@7/printf_number_buffer::buffer_sign#13 )
  printf_number_buffer::format_zero_padding#7 = phi( printf_number_buffer::@15/printf_number_buffer::format_zero_padding#12, printf_number_buffer::@7/printf_number_buffer::format_zero_padding#13 )
  printf_number_buffer::format_justify_left#6 = phi( printf_number_buffer::@15/printf_number_buffer::format_justify_left#9, printf_number_buffer::@7/printf_number_buffer::format_justify_left#10 )
  printf_number_buffer::len#2 = phi( printf_number_buffer::@15/printf_number_buffer::len#0, printf_number_buffer::@7/printf_number_buffer::len#1 )
  printf_number_buffer::format_min_length#4 = phi( printf_number_buffer::@15/printf_number_buffer::format_min_length#5, printf_number_buffer::@7/printf_number_buffer::format_min_length#6 )
  printf_number_buffer::$25 = (signed char)printf_number_buffer::format_min_length#4
  printf_number_buffer::$21 = printf_number_buffer::$25 - printf_number_buffer::len#2
  printf_number_buffer::padding#1 = printf_number_buffer::$21
  printf_number_buffer::$22 = printf_number_buffer::padding#1 < 0
  printf_number_buffer::$23 = ! printf_number_buffer::$22
  if(printf_number_buffer::$23) goto printf_number_buffer::@1
  to:printf_number_buffer::@14
printf_number_buffer::@7: scope:[printf_number_buffer]  from printf_number_buffer::@15
  printf_number_buffer::buffer_digits#20 = phi( printf_number_buffer::@15/printf_number_buffer::buffer_digits#19 )
  printf_number_buffer::format_upper_case#16 = phi( printf_number_buffer::@15/printf_number_buffer::format_upper_case#15 )
  printf_number_buffer::putc#21 = phi( printf_number_buffer::@15/printf_number_buffer::putc#20 )
  printf_number_buffer::buffer_sign#13 = phi( printf_number_buffer::@15/printf_number_buffer::buffer_sign#3 )
  printf_number_buffer::format_zero_padding#13 = phi( printf_number_buffer::@15/printf_number_buffer::format_zero_padding#12 )
  printf_number_buffer::format_justify_left#10 = phi( printf_number_buffer::@15/printf_number_buffer::format_justify_left#9 )
  printf_number_buffer::format_min_length#6 = phi( printf_number_buffer::@15/printf_number_buffer::format_min_length#5 )
  printf_number_buffer::len#3 = phi( printf_number_buffer::@15/printf_number_buffer::len#0 )
  printf_number_buffer::len#1 = ++ printf_number_buffer::len#3
  to:printf_number_buffer::@13
printf_number_buffer::@14: scope:[printf_number_buffer]  from printf_number_buffer::@13
  printf_number_buffer::buffer_digits#17 = phi( printf_number_buffer::@13/printf_number_buffer::buffer_digits#16 )
  printf_number_buffer::format_upper_case#13 = phi( printf_number_buffer::@13/printf_number_buffer::format_upper_case#12 )
  printf_number_buffer::putc#16 = phi( printf_number_buffer::@13/printf_number_buffer::putc#15 )
  printf_number_buffer::buffer_sign#11 = phi( printf_number_buffer::@13/printf_number_buffer::buffer_sign#10 )
  printf_number_buffer::format_zero_padding#8 = phi( printf_number_buffer::@13/printf_number_buffer::format_zero_padding#7 )
  printf_number_buffer::format_justify_left#7 = phi( printf_number_buffer::@13/printf_number_buffer::format_justify_left#6 )
  printf_number_buffer::padding#2 = 0
  to:printf_number_buffer::@1
printf_number_buffer::@2: scope:[printf_number_buffer]  from printf_number_buffer::@1 printf_number_buffer::@16
  printf_number_buffer::format_justify_left#17 = phi( printf_number_buffer::@1/printf_number_buffer::format_justify_left#3, printf_number_buffer::@16/printf_number_buffer::format_justify_left#20 )
  printf_number_buffer::buffer_digits#11 = phi( printf_number_buffer::@1/printf_number_buffer::buffer_digits#14, printf_number_buffer::@16/printf_number_buffer::buffer_digits#15 )
  printf_number_buffer::format_upper_case#6 = phi( printf_number_buffer::@1/printf_number_buffer::format_upper_case#9, printf_number_buffer::@16/printf_number_buffer::format_upper_case#10 )
  printf_number_buffer::putc#9 = phi( printf_number_buffer::@1/printf_number_buffer::putc#8, printf_number_buffer::@16/printf_number_buffer::putc#17 )
  printf_number_buffer::padding#9 = phi( printf_number_buffer::@1/printf_number_buffer::padding#3, printf_number_buffer::@16/printf_number_buffer::padding#12 )
  printf_number_buffer::format_zero_padding#9 = phi( printf_number_buffer::@1/printf_number_buffer::format_zero_padding#3, printf_number_buffer::@16/printf_number_buffer::format_zero_padding#14 )
  printf_number_buffer::buffer_sign#4 = phi( printf_number_buffer::@1/printf_number_buffer::buffer_sign#7, printf_number_buffer::@16/printf_number_buffer::buffer_sign#8 )
  printf_number_buffer::$30 = 0 != printf_number_buffer::buffer_sign#4
  printf_number_buffer::$7 = ! printf_number_buffer::$30
  if(printf_number_buffer::$7) goto printf_number_buffer::@3
  to:printf_number_buffer::@9
printf_number_buffer::@8: scope:[printf_number_buffer]  from printf_number_buffer::@1
  printf_number_buffer::format_justify_left#21 = phi( printf_number_buffer::@1/printf_number_buffer::format_justify_left#3 )
  printf_number_buffer::buffer_digits#18 = phi( printf_number_buffer::@1/printf_number_buffer::buffer_digits#14 )
  printf_number_buffer::format_upper_case#14 = phi( printf_number_buffer::@1/printf_number_buffer::format_upper_case#9 )
  printf_number_buffer::format_zero_padding#18 = phi( printf_number_buffer::@1/printf_number_buffer::format_zero_padding#3 )
  printf_number_buffer::buffer_sign#12 = phi( printf_number_buffer::@1/printf_number_buffer::buffer_sign#7 )
  printf_number_buffer::padding#4 = phi( printf_number_buffer::@1/printf_number_buffer::padding#3 )
  printf_number_buffer::putc#3 = phi( printf_number_buffer::@1/printf_number_buffer::putc#8 )
  printf_padding::putc#0 = printf_number_buffer::putc#3
  printf_padding::pad#0 = ' '
  printf_padding::length#0 = (char)printf_number_buffer::padding#4
  call printf_padding
  to:printf_number_buffer::@16
printf_number_buffer::@16: scope:[printf_number_buffer]  from printf_number_buffer::@8
  printf_number_buffer::format_justify_left#20 = phi( printf_number_buffer::@8/printf_number_buffer::format_justify_left#21 )
  printf_number_buffer::buffer_digits#15 = phi( printf_number_buffer::@8/printf_number_buffer::buffer_digits#18 )
  printf_number_buffer::format_upper_case#10 = phi( printf_number_buffer::@8/printf_number_buffer::format_upper_case#14 )
  printf_number_buffer::putc#17 = phi( printf_number_buffer::@8/printf_number_buffer::putc#3 )
  printf_number_buffer::padding#12 = phi( printf_number_buffer::@8/printf_number_buffer::padding#4 )
  printf_number_buffer::format_zero_padding#14 = phi( printf_number_buffer::@8/printf_number_buffer::format_zero_padding#18 )
  printf_number_buffer::buffer_sign#8 = phi( printf_number_buffer::@8/printf_number_buffer::buffer_sign#12 )
  to:printf_number_buffer::@2
printf_number_buffer::@3: scope:[printf_number_buffer]  from printf_number_buffer::@2 printf_number_buffer::@9
  printf_number_buffer::format_justify_left#15 = phi( printf_number_buffer::@2/printf_number_buffer::format_justify_left#17, printf_number_buffer::@9/printf_number_buffer::format_justify_left#18 )
  printf_number_buffer::buffer_digits#10 = phi( printf_number_buffer::@2/printf_number_buffer::buffer_digits#11, printf_number_buffer::@9/printf_number_buffer::buffer_digits#12 )
  printf_number_buffer::putc#10 = phi( printf_number_buffer::@2/printf_number_buffer::putc#9, printf_number_buffer::@9/printf_number_buffer::putc#4 )
  printf_number_buffer::format_upper_case#5 = phi( printf_number_buffer::@2/printf_number_buffer::format_upper_case#6, printf_number_buffer::@9/printf_number_buffer::format_upper_case#7 )
  printf_number_buffer::padding#5 = phi( printf_number_buffer::@2/printf_number_buffer::padding#9, printf_number_buffer::@9/printf_number_buffer::padding#10 )
  printf_number_buffer::format_zero_padding#4 = phi( printf_number_buffer::@2/printf_number_buffer::format_zero_padding#9, printf_number_buffer::@9/printf_number_buffer::format_zero_padding#10 )
  printf_number_buffer::$9 = printf_number_buffer::format_zero_padding#4 && printf_number_buffer::padding#5
  printf_number_buffer::$10 = ! printf_number_buffer::$9
  if(printf_number_buffer::$10) goto printf_number_buffer::@4
  to:printf_number_buffer::@10
printf_number_buffer::@9: scope:[printf_number_buffer]  from printf_number_buffer::@2
  printf_number_buffer::format_justify_left#18 = phi( printf_number_buffer::@2/printf_number_buffer::format_justify_left#17 )
  printf_number_buffer::buffer_digits#12 = phi( printf_number_buffer::@2/printf_number_buffer::buffer_digits#11 )
  printf_number_buffer::format_upper_case#7 = phi( printf_number_buffer::@2/printf_number_buffer::format_upper_case#6 )
  printf_number_buffer::padding#10 = phi( printf_number_buffer::@2/printf_number_buffer::padding#9 )
  printf_number_buffer::format_zero_padding#10 = phi( printf_number_buffer::@2/printf_number_buffer::format_zero_padding#9 )
  printf_number_buffer::putc#4 = phi( printf_number_buffer::@2/printf_number_buffer::putc#9 )
  printf_number_buffer::buffer_sign#5 = phi( printf_number_buffer::@2/printf_number_buffer::buffer_sign#4 )
  stackpush(char) = printf_number_buffer::buffer_sign#5
  callexecute *printf_number_buffer::putc#4 
  sideeffect stackpullbytes(1)
  to:printf_number_buffer::@3
printf_number_buffer::@4: scope:[printf_number_buffer]  from printf_number_buffer::@17 printf_number_buffer::@3
  printf_number_buffer::padding#14 = phi( printf_number_buffer::@17/printf_number_buffer::padding#15, printf_number_buffer::@3/printf_number_buffer::padding#5 )
  printf_number_buffer::format_justify_left#12 = phi( printf_number_buffer::@17/printf_number_buffer::format_justify_left#14, printf_number_buffer::@3/printf_number_buffer::format_justify_left#15 )
  printf_number_buffer::format_zero_padding#16 = phi( printf_number_buffer::@17/printf_number_buffer::format_zero_padding#19, printf_number_buffer::@3/printf_number_buffer::format_zero_padding#4 )
  printf_number_buffer::buffer_digits#8 = phi( printf_number_buffer::@17/printf_number_buffer::buffer_digits#9, printf_number_buffer::@3/printf_number_buffer::buffer_digits#10 )
  printf_number_buffer::putc#12 = phi( printf_number_buffer::@17/printf_number_buffer::putc#18, printf_number_buffer::@3/printf_number_buffer::putc#10 )
  printf_number_buffer::format_upper_case#3 = phi( printf_number_buffer::@17/printf_number_buffer::format_upper_case#4, printf_number_buffer::@3/printf_number_buffer::format_upper_case#5 )
  printf_number_buffer::$31 = 0 != printf_number_buffer::format_upper_case#3
  printf_number_buffer::$12 = ! printf_number_buffer::$31
  if(printf_number_buffer::$12) goto printf_number_buffer::@5
  to:printf_number_buffer::@11
printf_number_buffer::@10: scope:[printf_number_buffer]  from printf_number_buffer::@3
  printf_number_buffer::format_justify_left#19 = phi( printf_number_buffer::@3/printf_number_buffer::format_justify_left#15 )
  printf_number_buffer::format_zero_padding#21 = phi( printf_number_buffer::@3/printf_number_buffer::format_zero_padding#4 )
  printf_number_buffer::buffer_digits#13 = phi( printf_number_buffer::@3/printf_number_buffer::buffer_digits#10 )
  printf_number_buffer::format_upper_case#8 = phi( printf_number_buffer::@3/printf_number_buffer::format_upper_case#5 )
  printf_number_buffer::padding#6 = phi( printf_number_buffer::@3/printf_number_buffer::padding#5 )
  printf_number_buffer::putc#5 = phi( printf_number_buffer::@3/printf_number_buffer::putc#10 )
  printf_padding::putc#1 = printf_number_buffer::putc#5
  printf_padding::pad#1 = '0'
  printf_padding::length#1 = (char)printf_number_buffer::padding#6
  call printf_padding
  to:printf_number_buffer::@17
printf_number_buffer::@17: scope:[printf_number_buffer]  from printf_number_buffer::@10
  printf_number_buffer::padding#15 = phi( printf_number_buffer::@10/printf_number_buffer::padding#6 )
  printf_number_buffer::format_justify_left#14 = phi( printf_number_buffer::@10/printf_number_buffer::format_justify_left#19 )
  printf_number_buffer::format_zero_padding#19 = phi( printf_number_buffer::@10/printf_number_buffer::format_zero_padding#21 )
  printf_number_buffer::buffer_digits#9 = phi( printf_number_buffer::@10/printf_number_buffer::buffer_digits#13 )
  printf_number_buffer::putc#18 = phi( printf_number_buffer::@10/printf_number_buffer::putc#5 )
  printf_number_buffer::format_upper_case#4 = phi( printf_number_buffer::@10/printf_number_buffer::format_upper_case#8 )
  to:printf_number_buffer::@4
printf_number_buffer::@5: scope:[printf_number_buffer]  from printf_number_buffer::@19 printf_number_buffer::@4
  printf_number_buffer::padding#11 = phi( printf_number_buffer::@19/printf_number_buffer::padding#13, printf_number_buffer::@4/printf_number_buffer::padding#14 )
  printf_number_buffer::format_justify_left#8 = phi( printf_number_buffer::@19/printf_number_buffer::format_justify_left#11, printf_number_buffer::@4/printf_number_buffer::format_justify_left#12 )
  printf_number_buffer::format_zero_padding#11 = phi( printf_number_buffer::@19/printf_number_buffer::format_zero_padding#15, printf_number_buffer::@4/printf_number_buffer::format_zero_padding#16 )
  printf_number_buffer::buffer_digits#4 = phi( printf_number_buffer::@19/printf_number_buffer::buffer_digits#7, printf_number_buffer::@4/printf_number_buffer::buffer_digits#8 )
  printf_number_buffer::putc#6 = phi( printf_number_buffer::@19/printf_number_buffer::putc#11, printf_number_buffer::@4/printf_number_buffer::putc#12 )
  printf_str::putc#0 = printf_number_buffer::putc#6
  printf_str::s#1 = printf_number_buffer::buffer_digits#4
  call printf_str
  to:printf_number_buffer::@18
printf_number_buffer::@18: scope:[printf_number_buffer]  from printf_number_buffer::@5
  printf_number_buffer::putc#13 = phi( printf_number_buffer::@5/printf_number_buffer::putc#6 )
  printf_number_buffer::padding#7 = phi( printf_number_buffer::@5/printf_number_buffer::padding#11 )
  printf_number_buffer::format_justify_left#4 = phi( printf_number_buffer::@5/printf_number_buffer::format_justify_left#8 )
  printf_number_buffer::format_zero_padding#5 = phi( printf_number_buffer::@5/printf_number_buffer::format_zero_padding#11 )
  printf_number_buffer::$32 = 0 != printf_number_buffer::format_zero_padding#5
  printf_number_buffer::$14 = ! printf_number_buffer::$32
  printf_number_buffer::$15 = printf_number_buffer::format_justify_left#4 && printf_number_buffer::$14
  printf_number_buffer::$16 = printf_number_buffer::$15 && printf_number_buffer::padding#7
  printf_number_buffer::$17 = ! printf_number_buffer::$16
  if(printf_number_buffer::$17) goto printf_number_buffer::@return
  to:printf_number_buffer::@12
printf_number_buffer::@11: scope:[printf_number_buffer]  from printf_number_buffer::@4
  printf_number_buffer::padding#16 = phi( printf_number_buffer::@4/printf_number_buffer::padding#14 )
  printf_number_buffer::format_justify_left#16 = phi( printf_number_buffer::@4/printf_number_buffer::format_justify_left#12 )
  printf_number_buffer::format_zero_padding#20 = phi( printf_number_buffer::@4/printf_number_buffer::format_zero_padding#16 )
  printf_number_buffer::putc#19 = phi( printf_number_buffer::@4/printf_number_buffer::putc#12 )
  printf_number_buffer::buffer_digits#5 = phi( printf_number_buffer::@4/printf_number_buffer::buffer_digits#8 )
  strupr::str#0 = printf_number_buffer::buffer_digits#5
  call strupr
  strupr::return#2 = strupr::return#1
  to:printf_number_buffer::@19
printf_number_buffer::@19: scope:[printf_number_buffer]  from printf_number_buffer::@11
  printf_number_buffer::padding#13 = phi( printf_number_buffer::@11/printf_number_buffer::padding#16 )
  printf_number_buffer::format_justify_left#11 = phi( printf_number_buffer::@11/printf_number_buffer::format_justify_left#16 )
  printf_number_buffer::format_zero_padding#15 = phi( printf_number_buffer::@11/printf_number_buffer::format_zero_padding#20 )
  printf_number_buffer::buffer_digits#7 = phi( printf_number_buffer::@11/printf_number_buffer::buffer_digits#5 )
  printf_number_buffer::putc#11 = phi( printf_number_buffer::@11/printf_number_buffer::putc#19 )
  to:printf_number_buffer::@5
printf_number_buffer::@12: scope:[printf_number_buffer]  from printf_number_buffer::@18
  printf_number_buffer::padding#8 = phi( printf_number_buffer::@18/printf_number_buffer::padding#7 )
  printf_number_buffer::putc#7 = phi( printf_number_buffer::@18/printf_number_buffer::putc#13 )
  printf_padding::putc#2 = printf_number_buffer::putc#7
  printf_padding::pad#2 = ' '
  printf_padding::length#2 = (char)printf_number_buffer::padding#8
  call printf_padding
  to:printf_number_buffer::@20
printf_number_buffer::@20: scope:[printf_number_buffer]  from printf_number_buffer::@12
  to:printf_number_buffer::@return
printf_number_buffer::@return: scope:[printf_number_buffer]  from printf_number_buffer::@18 printf_number_buffer::@20
  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 main::@5
  printf_string::putc#7 = phi( main::@5/printf_string::putc#0 )
  printf_string::str#3 = phi( main::@5/printf_string::str#0 )
  printf_string::format_justify_left#3 = phi( main::@5/printf_string::format_justify_left#0 )
  printf_string::format_min_length#1 = phi( main::@5/printf_string::format_min_length#0 )
  printf_string::padding#0 = 0
  printf_string::$14 = 0 != printf_string::format_min_length#1
  printf_string::$0 = ! printf_string::$14
  if(printf_string::$0) goto printf_string::@1
  to:printf_string::@3
printf_string::@1: scope:[printf_string]  from printf_string printf_string::@4 printf_string::@7
  printf_string::str#4 = phi( printf_string/printf_string::str#3, printf_string::@4/printf_string::str#6, printf_string::@7/printf_string::str#7 )
  printf_string::putc#4 = phi( printf_string/printf_string::putc#7, printf_string::@4/printf_string::putc#8, printf_string::@7/printf_string::putc#9 )
  printf_string::padding#3 = phi( printf_string/printf_string::padding#0, printf_string::@4/printf_string::padding#2, printf_string::@7/printf_string::padding#1 )
  printf_string::format_justify_left#1 = phi( printf_string/printf_string::format_justify_left#3, printf_string::@4/printf_string::format_justify_left#4, printf_string::@7/printf_string::format_justify_left#5 )
  printf_string::$15 = 0 != printf_string::format_justify_left#1
  printf_string::$1 = ! printf_string::$15
  printf_string::$2 = printf_string::$1 && printf_string::padding#3
  printf_string::$3 = ! printf_string::$2
  if(printf_string::$3) goto printf_string::@2
  to:printf_string::@5
printf_string::@3: scope:[printf_string]  from printf_string
  printf_string::putc#10 = phi( printf_string/printf_string::putc#7 )
  printf_string::format_justify_left#7 = phi( printf_string/printf_string::format_justify_left#3 )
  printf_string::format_min_length#3 = phi( printf_string/printf_string::format_min_length#1 )
  printf_string::str#1 = phi( printf_string/printf_string::str#3 )
  strlen::str#2 = printf_string::str#1
  call strlen
  strlen::return#3 = strlen::return#1
  to:printf_string::@7
printf_string::@7: scope:[printf_string]  from printf_string::@3
  printf_string::str#7 = phi( printf_string::@3/printf_string::str#1 )
  printf_string::putc#9 = phi( printf_string::@3/printf_string::putc#10 )
  printf_string::format_justify_left#5 = phi( printf_string::@3/printf_string::format_justify_left#7 )
  printf_string::format_min_length#2 = phi( printf_string::@3/printf_string::format_min_length#3 )
  strlen::return#6 = phi( printf_string::@3/strlen::return#3 )
  printf_string::$9 = strlen::return#6
  printf_string::len#0 = (signed char)printf_string::$9
  printf_string::$13 = (signed char)printf_string::format_min_length#2
  printf_string::$10 = printf_string::$13 - printf_string::len#0
  printf_string::padding#1 = printf_string::$10
  printf_string::$11 = printf_string::padding#1 < 0
  printf_string::$12 = ! printf_string::$11
  if(printf_string::$12) goto printf_string::@1
  to:printf_string::@4
printf_string::@4: scope:[printf_string]  from printf_string::@7
  printf_string::str#6 = phi( printf_string::@7/printf_string::str#7 )
  printf_string::putc#8 = phi( printf_string::@7/printf_string::putc#9 )
  printf_string::format_justify_left#4 = phi( printf_string::@7/printf_string::format_justify_left#5 )
  printf_string::padding#2 = 0
  to:printf_string::@1
printf_string::@2: scope:[printf_string]  from printf_string::@1 printf_string::@9
  printf_string::padding#7 = phi( printf_string::@1/printf_string::padding#3, printf_string::@9/printf_string::padding#8 )
  printf_string::format_justify_left#6 = phi( printf_string::@1/printf_string::format_justify_left#1, printf_string::@9/printf_string::format_justify_left#8 )
  printf_string::str#2 = phi( printf_string::@1/printf_string::str#4, printf_string::@9/printf_string::str#5 )
  printf_string::putc#1 = phi( printf_string::@1/printf_string::putc#4, printf_string::@9/printf_string::putc#5 )
  printf_str::putc#1 = printf_string::putc#1
  printf_str::s#2 = printf_string::str#2
  call printf_str
  to:printf_string::@8
printf_string::@8: scope:[printf_string]  from printf_string::@2
  printf_string::putc#6 = phi( printf_string::@2/printf_string::putc#1 )
  printf_string::padding#4 = phi( printf_string::@2/printf_string::padding#7 )
  printf_string::format_justify_left#2 = phi( printf_string::@2/printf_string::format_justify_left#6 )
  printf_string::$6 = printf_string::format_justify_left#2 && printf_string::padding#4
  printf_string::$7 = ! printf_string::$6
  if(printf_string::$7) goto printf_string::@return
  to:printf_string::@6
printf_string::@5: scope:[printf_string]  from printf_string::@1
  printf_string::format_justify_left#9 = phi( printf_string::@1/printf_string::format_justify_left#1 )
  printf_string::str#8 = phi( printf_string::@1/printf_string::str#4 )
  printf_string::padding#5 = phi( printf_string::@1/printf_string::padding#3 )
  printf_string::putc#2 = phi( printf_string::@1/printf_string::putc#4 )
  printf_padding::putc#3 = printf_string::putc#2
  printf_padding::pad#3 = ' '
  printf_padding::length#3 = (char)printf_string::padding#5
  call printf_padding
  to:printf_string::@9
printf_string::@9: scope:[printf_string]  from printf_string::@5
  printf_string::padding#8 = phi( printf_string::@5/printf_string::padding#5 )
  printf_string::format_justify_left#8 = phi( printf_string::@5/printf_string::format_justify_left#9 )
  printf_string::str#5 = phi( printf_string::@5/printf_string::str#8 )
  printf_string::putc#5 = phi( printf_string::@5/printf_string::putc#2 )
  to:printf_string::@2
printf_string::@6: scope:[printf_string]  from printf_string::@8
  printf_string::padding#6 = phi( printf_string::@8/printf_string::padding#4 )
  printf_string::putc#3 = phi( printf_string::@8/printf_string::putc#6 )
  printf_padding::putc#4 = printf_string::putc#3
  printf_padding::pad#4 = ' '
  printf_padding::length#4 = (char)printf_string::padding#6
  call printf_padding
  to:printf_string::@10
printf_string::@10: scope:[printf_string]  from printf_string::@6
  to:printf_string::@return
printf_string::@return: scope:[printf_string]  from printf_string::@10 printf_string::@8
  return 
  to:@return

void snprintf_init(char *s , unsigned int n)
snprintf_init: scope:[snprintf_init]  from main main::@15 main::@3 main::@8
  snprintf_init::s#4 = phi( main/snprintf_init::s#0, main::@15/snprintf_init::s#3, main::@3/snprintf_init::s#1, main::@8/snprintf_init::s#2 )
  snprintf_init::n#4 = phi( main/snprintf_init::n#0, main::@15/snprintf_init::n#3, main::@3/snprintf_init::n#1, main::@8/snprintf_init::n#2 )
  __snprintf_capacity = snprintf_init::n#4
  __snprintf_size = 0
  __snprintf_buffer = snprintf_init::s#4
  to:snprintf_init::@return
snprintf_init::@return: scope:[snprintf_init]  from snprintf_init
  return 
  to:@return

__stackcall void snputc(char c)
snputc: scope:[snputc]  from
  snputc::c#0 = stackidx(char,snputc::OFFSET_STACK_C)
  __snprintf_size = ++ __snprintf_size
  snputc::$0 = __snprintf_size > __snprintf_capacity
  snputc::$1 = ! snputc::$0
  if(snputc::$1) goto snputc::@1
  to:snputc::@return
snputc::@1: scope:[snputc]  from snputc
  snputc::c#3 = phi( snputc/snputc::c#0 )
  snputc::$2 = __snprintf_size == __snprintf_capacity
  snputc::$3 = ! snputc::$2
  if(snputc::$3) goto snputc::@2
  to:snputc::@3
snputc::@return: scope:[snputc]  from snputc snputc::@2
  return 
  to:@return
snputc::@2: scope:[snputc]  from snputc::@1 snputc::@3
  snputc::c#2 = phi( snputc::@1/snputc::c#3, snputc::@3/snputc::c#1 )
  *__snprintf_buffer = snputc::c#2
  __snprintf_buffer = ++ __snprintf_buffer
  to:snputc::@return
snputc::@3: scope:[snputc]  from snputc::@1
  snputc::c#1 = 0
  to:snputc::@2

void print(char *msg)
print: scope:[print]  from main::@14 main::@19 main::@2 main::@7
  screen#25 = phi( main::@14/screen#22, main::@19/screen#23, main::@2/screen#20, main::@7/screen#21 )
  print::msg#7 = phi( main::@14/print::msg#3, main::@19/print::msg#4, main::@2/print::msg#1, main::@7/print::msg#2 )
  to:print::@1
print::@1: scope:[print]  from print print::@2
  screen#19 = phi( print/screen#25, print::@2/screen#0 )
  print::msg#5 = phi( print/print::msg#7, print::@2/print::msg#0 )
  print::$0 = 0 != *print::msg#5
  if(print::$0) goto print::@2
  to:print::@return
print::@2: scope:[print]  from print::@1
  screen#10 = phi( print::@1/screen#19 )
  print::msg#6 = phi( print::@1/print::msg#5 )
  *screen#10 = *print::msg#6
  screen#0 = ++ screen#10
  print::msg#0 = ++ print::msg#6
  to:print::@1
print::@return: scope:[print]  from print::@1
  screen#11 = phi( print::@1/screen#19 )
  screen#1 = screen#11
  return 
  to:@return

void main()
main: scope:[main]  from __start::@1
  screen#31 = phi( __start::@1/screen#24 )
  snprintf_init::s#0 = BUF
  snprintf_init::n#0 = $ffff
  call snprintf_init
  to:main::@1
main::@1: scope:[main]  from main
  screen#26 = phi( main/screen#31 )
  printf_str::putc#2 = &snputc
  printf_str::s#3 = main::s
  call printf_str
  to:main::@2
main::@2: scope:[main]  from main::@1
  screen#20 = phi( main::@1/screen#26 )
  stackpush(char) = 0
  callexecute snputc 
  sideeffect stackpullbytes(1)
  print::msg#1 = BUF
  call print
  to:main::@3
main::@3: scope:[main]  from main::@2
  screen#12 = phi( main::@2/screen#1 )
  screen#2 = screen#12
  snprintf_init::s#1 = BUF
  snprintf_init::n#1 = $ffff
  call snprintf_init
  to:main::@4
main::@4: scope:[main]  from main::@3
  screen#35 = phi( main::@3/screen#2 )
  printf_str::putc#3 = &snputc
  printf_str::s#4 = main::s1
  call printf_str
  to:main::@5
main::@5: scope:[main]  from main::@4
  screen#32 = phi( main::@4/screen#35 )
  printf_string::putc#0 = &snputc
  printf_string::str#0 = main::str
  printf_string::format_min_length#0 = 0
  printf_string::format_justify_left#0 = 0
  call printf_string
  to:main::@6
main::@6: scope:[main]  from main::@5
  screen#27 = phi( main::@5/screen#32 )
  stackpush(char) = '!'
  callexecute snputc 
  sideeffect stackpullbytes(1)
  printf_str::putc#4 = &snputc
  printf_str::s#5 = main::s2
  call printf_str
  to:main::@7
main::@7: scope:[main]  from main::@6
  screen#21 = phi( main::@6/screen#27 )
  stackpush(char) = 0
  callexecute snputc 
  sideeffect stackpullbytes(1)
  print::msg#2 = BUF
  call print
  to:main::@8
main::@8: scope:[main]  from main::@7
  screen#13 = phi( main::@7/screen#1 )
  screen#3 = screen#13
  snprintf_init::s#2 = BUF
  snprintf_init::n#2 = $ffff
  call snprintf_init
  to:main::@9
main::@9: scope:[main]  from main::@8
  screen#39 = phi( main::@8/screen#3 )
  printf_str::putc#5 = &snputc
  printf_str::s#6 = main::s3
  call printf_str
  to:main::@10
main::@10: scope:[main]  from main::@9
  screen#38 = phi( main::@9/screen#39 )
  printf_sint::putc#0 = &snputc
  printf_sint::value#1 = 3
  printf_sint::format_min_length#0 = 0
  printf_sint::format_justify_left#0 = 0
  printf_sint::format_sign_always#0 = 0
  printf_sint::format_zero_padding#0 = 0
  printf_sint::format_upper_case#0 = 0
  printf_sint::format_radix#0 = DECIMAL
  call printf_sint
  to:main::@11
main::@11: scope:[main]  from main::@10
  screen#36 = phi( main::@10/screen#38 )
  printf_str::putc#6 = &snputc
  printf_str::s#7 = main::s4
  call printf_str
  to:main::@12
main::@12: scope:[main]  from main::@11
  screen#33 = phi( main::@11/screen#36 )
  printf_uint::putc#0 = &snputc
  printf_uint::uvalue#0 = $b
  printf_uint::format_min_length#0 = 0
  printf_uint::format_justify_left#0 = 0
  printf_uint::format_sign_always#0 = 0
  printf_uint::format_zero_padding#0 = 0
  printf_uint::format_upper_case#0 = 0
  printf_uint::format_radix#0 = HEXADECIMAL
  call printf_uint
  to:main::@13
main::@13: scope:[main]  from main::@12
  screen#28 = phi( main::@12/screen#33 )
  printf_str::putc#7 = &snputc
  printf_str::s#8 = main::s5
  call printf_str
  to:main::@14
main::@14: scope:[main]  from main::@13
  screen#22 = phi( main::@13/screen#28 )
  stackpush(char) = 0
  callexecute snputc 
  sideeffect stackpullbytes(1)
  print::msg#3 = BUF
  call print
  to:main::@15
main::@15: scope:[main]  from main::@14
  screen#14 = phi( main::@14/screen#1 )
  screen#4 = screen#14
  snprintf_init::s#3 = BUF
  snprintf_init::n#3 = $ffff
  call snprintf_init
  to:main::@16
main::@16: scope:[main]  from main::@15
  screen#37 = phi( main::@15/screen#4 )
  printf_str::putc#8 = &snputc
  printf_str::s#9 = main::s6
  call printf_str
  to:main::@17
main::@17: scope:[main]  from main::@16
  screen#34 = phi( main::@16/screen#37 )
  printf_slong::putc#0 = &snputc
  printf_slong::value#1 = $153158e
  printf_slong::format_min_length#0 = 0
  printf_slong::format_justify_left#0 = 0
  printf_slong::format_sign_always#0 = 0
  printf_slong::format_zero_padding#0 = 0
  printf_slong::format_upper_case#0 = 0
  printf_slong::format_radix#0 = DECIMAL
  call printf_slong
  to:main::@18
main::@18: scope:[main]  from main::@17
  screen#29 = phi( main::@17/screen#34 )
  printf_str::putc#9 = &snputc
  printf_str::s#10 = main::s7
  call printf_str
  to:main::@19
main::@19: scope:[main]  from main::@18
  screen#23 = phi( main::@18/screen#29 )
  stackpush(char) = 0
  callexecute snputc 
  sideeffect stackpullbytes(1)
  print::msg#4 = BUF
  call print
  to:main::@20
main::@20: scope:[main]  from main::@19
  screen#15 = phi( main::@19/screen#1 )
  screen#5 = screen#15
  to:main::@return
main::@return: scope:[main]  from main::@20
  screen#16 = phi( main::@20/screen#5 )
  screen#6 = screen#16
  return 
  to:@return

void __start()
__start: scope:[__start]  from
  to:__start::__init1
__start::__init1: scope:[__start]  from __start
  __snprintf_capacity = 0
  __snprintf_size = 0
  __snprintf_buffer = (char *) 0
  screen#7 = (char *)$400
  call conio_c64_init
  to:__start::@2
__start::@2: scope:[__start]  from __start::__init1
  screen#30 = phi( __start::__init1/screen#7 )
  to:__start::@1
__start::@1: scope:[__start]  from __start::@2
  screen#24 = phi( __start::@2/screen#30 )
  call main
  to:__start::@3
__start::@3: scope:[__start]  from __start::@1
  screen#17 = phi( __start::@1/screen#6 )
  screen#8 = screen#17
  to:__start::@return
__start::@return: scope:[__start]  from __start::@3
  screen#18 = phi( __start::@3/screen#8 )
  screen#9 = screen#18
  return 
  to:@return

SYMBOL TABLE SSA
__constant char BINARY = 2
__constant char BUF[$14] = { fill( $14, 0) }
__constant char DECIMAL = $a
__constant char DIGITS[] = "0123456789abcdef"z
__constant char HEXADECIMAL = $10
__constant char OCTAL = 8
__constant char OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = 1
__constant char OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN = 0
__constant char RADIX::BINARY = 2
__constant char RADIX::DECIMAL = $a
__constant char RADIX::HEXADECIMAL = $10
__constant char RADIX::OCTAL = 8
__constant unsigned int RADIX_BINARY_VALUES[] = { $8000, $4000, $2000, $1000, $800, $400, $200, $100, $80, $40, $20, $10, 8, 4, 2 }
__constant unsigned long RADIX_BINARY_VALUES_LONG[] = { $80000000, $40000000, $20000000, $10000000, $8000000, $4000000, $2000000, $1000000, $800000, $400000, $200000, $100000, $80000, $40000, $20000, $10000, $8000, $4000, $2000, $1000, $800, $400, $200, $100, $80, $40, $20, $10, 8, 4, 2 }
__constant unsigned int RADIX_DECIMAL_VALUES[] = { $2710, $3e8, $64, $a }
__constant unsigned long RADIX_DECIMAL_VALUES_LONG[] = { $3b9aca00, $5f5e100, $989680, $f4240, $186a0, $2710, $3e8, $64, $a }
__constant unsigned int RADIX_HEXADECIMAL_VALUES[] = { $1000, $100, $10 }
__constant unsigned long RADIX_HEXADECIMAL_VALUES_LONG[] = { $10000000, $1000000, $100000, $10000, $1000, $100, $10 }
__constant unsigned int RADIX_OCTAL_VALUES[] = { $8000, $1000, $200, $40, 8 }
__constant unsigned long RADIX_OCTAL_VALUES_LONG[] = { $40000000, $8000000, $1000000, $200000, $40000, $8000, $1000, $200, $40, 8 }
__constant char SIZEOF_UNSIGNED_INT = 2
__constant char SIZEOF_UNSIGNED_LONG = 4
__constant unsigned int STACK_BASE = $103
__loadstore char *__snprintf_buffer
__loadstore volatile unsigned int __snprintf_capacity
__loadstore volatile unsigned int __snprintf_size
void __start()
void conio_c64_init()
bool conio_c64_init::$0
bool conio_c64_init::$1
__constant char * const conio_c64_init::BASIC_CURSOR_LINE = (char *)$d6
char conio_c64_init::line
char conio_c64_init::line#0
char conio_c64_init::line#1
char conio_c64_init::line#2
void gotoxy(char x , char y)
bool gotoxy::$0
bool gotoxy::$1
bool gotoxy::$2
bool gotoxy::$3
char gotoxy::x
char gotoxy::x#0
char gotoxy::x#1
char gotoxy::x#2
char gotoxy::x#3
char gotoxy::x#4
char gotoxy::y
char gotoxy::y#0
char gotoxy::y#1
char gotoxy::y#2
void main()
__constant char main::s[$e] = "hello world! "
__constant char main::s1[7] = "hello "
__constant char main::s2[2] = " "
__constant char main::s3[7] = "hello "
__constant char main::s4[2] = "+"
__constant char main::s5[3] = "! "
__constant char main::s6[4] = "hi "
__constant char main::s7[3] = "! "
__constant char main::str[6] = "world"
void print(char *msg)
bool print::$0
char *print::msg
char *print::msg#0
char *print::msg#1
char *print::msg#2
char *print::msg#3
char *print::msg#4
char *print::msg#5
char *print::msg#6
char *print::msg#7
__loadstore struct printf_buffer_number printf_buffer = {}
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)
bool printf_number_buffer::$0
bool printf_number_buffer::$1
bool printf_number_buffer::$10
bool printf_number_buffer::$12
bool printf_number_buffer::$14
bool printf_number_buffer::$15
bool printf_number_buffer::$16
bool printf_number_buffer::$17
unsigned int printf_number_buffer::$19
bool printf_number_buffer::$2
bool printf_number_buffer::$20
signed char printf_number_buffer::$21
bool printf_number_buffer::$22
bool printf_number_buffer::$23
signed char printf_number_buffer::$25
bool printf_number_buffer::$26
bool printf_number_buffer::$27
bool printf_number_buffer::$28
bool printf_number_buffer::$29
bool printf_number_buffer::$3
bool printf_number_buffer::$30
bool printf_number_buffer::$31
bool printf_number_buffer::$32
bool printf_number_buffer::$4
bool printf_number_buffer::$5
bool printf_number_buffer::$7
bool printf_number_buffer::$9
struct printf_buffer_number printf_number_buffer::buffer
char *printf_number_buffer::buffer_digits
char *printf_number_buffer::buffer_digits#0
char *printf_number_buffer::buffer_digits#1
char *printf_number_buffer::buffer_digits#10
char *printf_number_buffer::buffer_digits#11
char *printf_number_buffer::buffer_digits#12
char *printf_number_buffer::buffer_digits#13
char *printf_number_buffer::buffer_digits#14
char *printf_number_buffer::buffer_digits#15
char *printf_number_buffer::buffer_digits#16
char *printf_number_buffer::buffer_digits#17
char *printf_number_buffer::buffer_digits#18
char *printf_number_buffer::buffer_digits#19
char *printf_number_buffer::buffer_digits#2
char *printf_number_buffer::buffer_digits#20
char *printf_number_buffer::buffer_digits#3
char *printf_number_buffer::buffer_digits#4
char *printf_number_buffer::buffer_digits#5
char *printf_number_buffer::buffer_digits#6
char *printf_number_buffer::buffer_digits#7
char *printf_number_buffer::buffer_digits#8
char *printf_number_buffer::buffer_digits#9
char printf_number_buffer::buffer_sign
char printf_number_buffer::buffer_sign#0
char printf_number_buffer::buffer_sign#1
char printf_number_buffer::buffer_sign#10
char printf_number_buffer::buffer_sign#11
char printf_number_buffer::buffer_sign#12
char printf_number_buffer::buffer_sign#13
char printf_number_buffer::buffer_sign#2
char printf_number_buffer::buffer_sign#3
char printf_number_buffer::buffer_sign#4
char printf_number_buffer::buffer_sign#5
char printf_number_buffer::buffer_sign#6
char printf_number_buffer::buffer_sign#7
char printf_number_buffer::buffer_sign#8
char printf_number_buffer::buffer_sign#9
struct printf_format_number printf_number_buffer::format
char printf_number_buffer::format_justify_left
char printf_number_buffer::format_justify_left#0
char printf_number_buffer::format_justify_left#1
char printf_number_buffer::format_justify_left#10
char printf_number_buffer::format_justify_left#11
char printf_number_buffer::format_justify_left#12
char printf_number_buffer::format_justify_left#13
char printf_number_buffer::format_justify_left#14
char printf_number_buffer::format_justify_left#15
char printf_number_buffer::format_justify_left#16
char printf_number_buffer::format_justify_left#17
char printf_number_buffer::format_justify_left#18
char printf_number_buffer::format_justify_left#19
char printf_number_buffer::format_justify_left#2
char printf_number_buffer::format_justify_left#20
char printf_number_buffer::format_justify_left#21
char printf_number_buffer::format_justify_left#3
char printf_number_buffer::format_justify_left#4
char printf_number_buffer::format_justify_left#5
char printf_number_buffer::format_justify_left#6
char printf_number_buffer::format_justify_left#7
char printf_number_buffer::format_justify_left#8
char printf_number_buffer::format_justify_left#9
char printf_number_buffer::format_min_length
char printf_number_buffer::format_min_length#0
char printf_number_buffer::format_min_length#1
char printf_number_buffer::format_min_length#2
char printf_number_buffer::format_min_length#3
char printf_number_buffer::format_min_length#4
char printf_number_buffer::format_min_length#5
char printf_number_buffer::format_min_length#6
char printf_number_buffer::format_min_length#7
char printf_number_buffer::format_radix
char printf_number_buffer::format_radix#0
char printf_number_buffer::format_radix#1
char printf_number_buffer::format_radix#2
char printf_number_buffer::format_sign_always
char printf_number_buffer::format_sign_always#0
char printf_number_buffer::format_sign_always#1
char printf_number_buffer::format_sign_always#2
char printf_number_buffer::format_upper_case
char printf_number_buffer::format_upper_case#0
char printf_number_buffer::format_upper_case#1
char printf_number_buffer::format_upper_case#10
char printf_number_buffer::format_upper_case#11
char printf_number_buffer::format_upper_case#12
char printf_number_buffer::format_upper_case#13
char printf_number_buffer::format_upper_case#14
char printf_number_buffer::format_upper_case#15
char printf_number_buffer::format_upper_case#16
char printf_number_buffer::format_upper_case#17
char printf_number_buffer::format_upper_case#2
char printf_number_buffer::format_upper_case#3
char printf_number_buffer::format_upper_case#4
char printf_number_buffer::format_upper_case#5
char printf_number_buffer::format_upper_case#6
char printf_number_buffer::format_upper_case#7
char printf_number_buffer::format_upper_case#8
char printf_number_buffer::format_upper_case#9
char printf_number_buffer::format_zero_padding
char printf_number_buffer::format_zero_padding#0
char printf_number_buffer::format_zero_padding#1
char printf_number_buffer::format_zero_padding#10
char printf_number_buffer::format_zero_padding#11
char printf_number_buffer::format_zero_padding#12
char printf_number_buffer::format_zero_padding#13
char printf_number_buffer::format_zero_padding#14
char printf_number_buffer::format_zero_padding#15
char printf_number_buffer::format_zero_padding#16
char printf_number_buffer::format_zero_padding#17
char printf_number_buffer::format_zero_padding#18
char printf_number_buffer::format_zero_padding#19
char printf_number_buffer::format_zero_padding#2
char printf_number_buffer::format_zero_padding#20
char printf_number_buffer::format_zero_padding#21
char printf_number_buffer::format_zero_padding#3
char printf_number_buffer::format_zero_padding#4
char printf_number_buffer::format_zero_padding#5
char printf_number_buffer::format_zero_padding#6
char printf_number_buffer::format_zero_padding#7
char printf_number_buffer::format_zero_padding#8
char printf_number_buffer::format_zero_padding#9
signed char printf_number_buffer::len
signed char printf_number_buffer::len#0
signed char printf_number_buffer::len#1
signed char printf_number_buffer::len#2
signed char printf_number_buffer::len#3
signed char printf_number_buffer::padding
signed char printf_number_buffer::padding#0
signed char printf_number_buffer::padding#1
signed char printf_number_buffer::padding#10
signed char printf_number_buffer::padding#11
signed char printf_number_buffer::padding#12
signed char printf_number_buffer::padding#13
signed char printf_number_buffer::padding#14
signed char printf_number_buffer::padding#15
signed char printf_number_buffer::padding#16
signed char printf_number_buffer::padding#2
signed char printf_number_buffer::padding#3
signed char printf_number_buffer::padding#4
signed char printf_number_buffer::padding#5
signed char printf_number_buffer::padding#6
signed char printf_number_buffer::padding#7
signed char printf_number_buffer::padding#8
signed char printf_number_buffer::padding#9
void (*printf_number_buffer::putc)(char)
void (*printf_number_buffer::putc#0)(char)
void (*printf_number_buffer::putc#1)(char)
void (*printf_number_buffer::putc#10)(char)
void (*printf_number_buffer::putc#11)(char)
void (*printf_number_buffer::putc#12)(char)
void (*printf_number_buffer::putc#13)(char)
void (*printf_number_buffer::putc#14)(char)
void (*printf_number_buffer::putc#15)(char)
void (*printf_number_buffer::putc#16)(char)
void (*printf_number_buffer::putc#17)(char)
void (*printf_number_buffer::putc#18)(char)
void (*printf_number_buffer::putc#19)(char)
void (*printf_number_buffer::putc#2)(char)
void (*printf_number_buffer::putc#20)(char)
void (*printf_number_buffer::putc#21)(char)
void (*printf_number_buffer::putc#22)(char)
void (*printf_number_buffer::putc#3)(char)
void (*printf_number_buffer::putc#4)(char)
void (*printf_number_buffer::putc#5)(char)
void (*printf_number_buffer::putc#6)(char)
void (*printf_number_buffer::putc#7)(char)
void (*printf_number_buffer::putc#8)(char)
void (*printf_number_buffer::putc#9)(char)
void printf_padding(void (*putc)(char) , char pad , char length)
bool printf_padding::$0
char printf_padding::i
char printf_padding::i#0
char printf_padding::i#1
char printf_padding::i#2
char printf_padding::i#3
char printf_padding::i#4
char printf_padding::length
char printf_padding::length#0
char printf_padding::length#1
char printf_padding::length#2
char printf_padding::length#3
char printf_padding::length#4
char printf_padding::length#5
char printf_padding::length#6
char printf_padding::length#7
char printf_padding::length#8
char printf_padding::pad
char printf_padding::pad#0
char printf_padding::pad#1
char printf_padding::pad#2
char printf_padding::pad#3
char printf_padding::pad#4
char printf_padding::pad#5
char printf_padding::pad#6
char printf_padding::pad#7
char printf_padding::pad#8
void (*printf_padding::putc)(char)
void (*printf_padding::putc#0)(char)
void (*printf_padding::putc#1)(char)
void (*printf_padding::putc#2)(char)
void (*printf_padding::putc#3)(char)
void (*printf_padding::putc#4)(char)
void (*printf_padding::putc#5)(char)
void (*printf_padding::putc#6)(char)
void (*printf_padding::putc#7)(char)
void (*printf_padding::putc#8)(char)
void printf_sint(void (*putc)(char) , int value , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix)
bool printf_sint::$0
bool printf_sint::$3
int printf_sint::$4
bool printf_sint::$5
struct printf_format_number printf_sint::format
char printf_sint::format_justify_left
char printf_sint::format_justify_left#0
char printf_sint::format_justify_left#1
char printf_sint::format_justify_left#2
char printf_sint::format_justify_left#3
char printf_sint::format_justify_left#4
char printf_sint::format_justify_left#5
char printf_sint::format_justify_left#6
char printf_sint::format_min_length
char printf_sint::format_min_length#0
char printf_sint::format_min_length#1
char printf_sint::format_min_length#2
char printf_sint::format_min_length#3
char printf_sint::format_min_length#4
char printf_sint::format_min_length#5
char printf_sint::format_min_length#6
char printf_sint::format_radix
char printf_sint::format_radix#0
char printf_sint::format_radix#1
char printf_sint::format_radix#2
char printf_sint::format_radix#3
char printf_sint::format_radix#4
char printf_sint::format_radix#5
char printf_sint::format_radix#6
char printf_sint::format_sign_always
char printf_sint::format_sign_always#0
char printf_sint::format_sign_always#1
char printf_sint::format_sign_always#2
char printf_sint::format_sign_always#3
char printf_sint::format_sign_always#4
char printf_sint::format_sign_always#5
char printf_sint::format_sign_always#6
char printf_sint::format_upper_case
char printf_sint::format_upper_case#0
char printf_sint::format_upper_case#1
char printf_sint::format_upper_case#2
char printf_sint::format_upper_case#3
char printf_sint::format_upper_case#4
char printf_sint::format_upper_case#5
char printf_sint::format_upper_case#6
char printf_sint::format_zero_padding
char printf_sint::format_zero_padding#0
char printf_sint::format_zero_padding#1
char printf_sint::format_zero_padding#2
char printf_sint::format_zero_padding#3
char printf_sint::format_zero_padding#4
char printf_sint::format_zero_padding#5
char printf_sint::format_zero_padding#6
void (*printf_sint::putc)(char)
void (*printf_sint::putc#0)(char)
void (*printf_sint::putc#1)(char)
void (*printf_sint::putc#2)(char)
void (*printf_sint::putc#3)(char)
void (*printf_sint::putc#4)(char)
void (*printf_sint::putc#5)(char)
void (*printf_sint::putc#6)(char)
unsigned int printf_sint::uvalue
unsigned int printf_sint::uvalue#0
int printf_sint::value
int printf_sint::value#0
int printf_sint::value#1
int printf_sint::value#2
int printf_sint::value#3
int printf_sint::value#4
int printf_sint::value#5
int printf_sint::value#6
void printf_slong(void (*putc)(char) , long value , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix)
bool printf_slong::$0
bool printf_slong::$3
long printf_slong::$4
bool printf_slong::$5
struct printf_format_number printf_slong::format
char printf_slong::format_justify_left
char printf_slong::format_justify_left#0
char printf_slong::format_justify_left#1
char printf_slong::format_justify_left#2
char printf_slong::format_justify_left#3
char printf_slong::format_justify_left#4
char printf_slong::format_justify_left#5
char printf_slong::format_justify_left#6
char printf_slong::format_min_length
char printf_slong::format_min_length#0
char printf_slong::format_min_length#1
char printf_slong::format_min_length#2
char printf_slong::format_min_length#3
char printf_slong::format_min_length#4
char printf_slong::format_min_length#5
char printf_slong::format_min_length#6
char printf_slong::format_radix
char printf_slong::format_radix#0
char printf_slong::format_radix#1
char printf_slong::format_radix#2
char printf_slong::format_radix#3
char printf_slong::format_radix#4
char printf_slong::format_radix#5
char printf_slong::format_radix#6
char printf_slong::format_sign_always
char printf_slong::format_sign_always#0
char printf_slong::format_sign_always#1
char printf_slong::format_sign_always#2
char printf_slong::format_sign_always#3
char printf_slong::format_sign_always#4
char printf_slong::format_sign_always#5
char printf_slong::format_sign_always#6
char printf_slong::format_upper_case
char printf_slong::format_upper_case#0
char printf_slong::format_upper_case#1
char printf_slong::format_upper_case#2
char printf_slong::format_upper_case#3
char printf_slong::format_upper_case#4
char printf_slong::format_upper_case#5
char printf_slong::format_upper_case#6
char printf_slong::format_zero_padding
char printf_slong::format_zero_padding#0
char printf_slong::format_zero_padding#1
char printf_slong::format_zero_padding#2
char printf_slong::format_zero_padding#3
char printf_slong::format_zero_padding#4
char printf_slong::format_zero_padding#5
char printf_slong::format_zero_padding#6
void (*printf_slong::putc)(char)
void (*printf_slong::putc#0)(char)
void (*printf_slong::putc#1)(char)
void (*printf_slong::putc#2)(char)
void (*printf_slong::putc#3)(char)
void (*printf_slong::putc#4)(char)
void (*printf_slong::putc#5)(char)
void (*printf_slong::putc#6)(char)
unsigned long printf_slong::uvalue
unsigned long printf_slong::uvalue#0
long printf_slong::value
long printf_slong::value#0
long printf_slong::value#1
long printf_slong::value#2
long printf_slong::value#3
long printf_slong::value#4
long printf_slong::value#5
long printf_slong::value#6
void printf_str(void (*putc)(char) , const char *s)
char printf_str::$0
bool printf_str::$2
char printf_str::c
char printf_str::c#0
char printf_str::c#1
char printf_str::c#2
void (*printf_str::putc)(char)
void (*printf_str::putc#0)(char)
void (*printf_str::putc#1)(char)
void (*printf_str::putc#10)(char)
void (*printf_str::putc#11)(char)
void (*printf_str::putc#12)(char)
void (*printf_str::putc#2)(char)
void (*printf_str::putc#3)(char)
void (*printf_str::putc#4)(char)
void (*printf_str::putc#5)(char)
void (*printf_str::putc#6)(char)
void (*printf_str::putc#7)(char)
void (*printf_str::putc#8)(char)
void (*printf_str::putc#9)(char)
const char *printf_str::s
const char *printf_str::s#0
const char *printf_str::s#1
const char *printf_str::s#10
const char *printf_str::s#11
const char *printf_str::s#12
const char *printf_str::s#13
const char *printf_str::s#2
const char *printf_str::s#3
const char *printf_str::s#4
const char *printf_str::s#5
const char *printf_str::s#6
const char *printf_str::s#7
const char *printf_str::s#8
const char *printf_str::s#9
void printf_string(void (*putc)(char) , char *str , char format_min_length , char format_justify_left)
bool printf_string::$0
bool printf_string::$1
signed char printf_string::$10
bool printf_string::$11
bool printf_string::$12
signed char printf_string::$13
bool printf_string::$14
bool printf_string::$15
bool printf_string::$2
bool printf_string::$3
bool printf_string::$6
bool printf_string::$7
unsigned int printf_string::$9
struct printf_format_string printf_string::format
char printf_string::format_justify_left
char printf_string::format_justify_left#0
char printf_string::format_justify_left#1
char printf_string::format_justify_left#2
char printf_string::format_justify_left#3
char printf_string::format_justify_left#4
char printf_string::format_justify_left#5
char printf_string::format_justify_left#6
char printf_string::format_justify_left#7
char printf_string::format_justify_left#8
char printf_string::format_justify_left#9
char printf_string::format_min_length
char printf_string::format_min_length#0
char printf_string::format_min_length#1
char printf_string::format_min_length#2
char printf_string::format_min_length#3
signed char printf_string::len
signed char printf_string::len#0
signed char printf_string::padding
signed char printf_string::padding#0
signed char printf_string::padding#1
signed char printf_string::padding#2
signed char printf_string::padding#3
signed char printf_string::padding#4
signed char printf_string::padding#5
signed char printf_string::padding#6
signed char printf_string::padding#7
signed char printf_string::padding#8
void (*printf_string::putc)(char)
void (*printf_string::putc#0)(char)
void (*printf_string::putc#1)(char)
void (*printf_string::putc#10)(char)
void (*printf_string::putc#2)(char)
void (*printf_string::putc#3)(char)
void (*printf_string::putc#4)(char)
void (*printf_string::putc#5)(char)
void (*printf_string::putc#6)(char)
void (*printf_string::putc#7)(char)
void (*printf_string::putc#8)(char)
void (*printf_string::putc#9)(char)
char *printf_string::str
char *printf_string::str#0
char *printf_string::str#1
char *printf_string::str#2
char *printf_string::str#3
char *printf_string::str#4
char *printf_string::str#5
char *printf_string::str#6
char *printf_string::str#7
char *printf_string::str#8
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)
number printf_uint::$0
char printf_uint::$1
number printf_uint::$2
bool printf_uint::$5
struct printf_format_number printf_uint::format
char printf_uint::format_justify_left
char printf_uint::format_justify_left#0
char printf_uint::format_justify_left#1
char printf_uint::format_justify_left#2
char printf_uint::format_justify_left#3
char printf_uint::format_justify_left#4
char printf_uint::format_justify_left#5
char printf_uint::format_min_length
char printf_uint::format_min_length#0
char printf_uint::format_min_length#1
char printf_uint::format_min_length#2
char printf_uint::format_min_length#3
char printf_uint::format_min_length#4
char printf_uint::format_min_length#5
char printf_uint::format_radix
char printf_uint::format_radix#0
char printf_uint::format_radix#1
char printf_uint::format_radix#2
char printf_uint::format_radix#3
char printf_uint::format_radix#4
char printf_uint::format_radix#5
char printf_uint::format_sign_always
char printf_uint::format_sign_always#0
char printf_uint::format_sign_always#1
char printf_uint::format_sign_always#2
char printf_uint::format_sign_always#3
char printf_uint::format_sign_always#4
char printf_uint::format_sign_always#5
char printf_uint::format_upper_case
char printf_uint::format_upper_case#0
char printf_uint::format_upper_case#1
char printf_uint::format_upper_case#2
char printf_uint::format_upper_case#3
char printf_uint::format_upper_case#4
char printf_uint::format_upper_case#5
char printf_uint::format_zero_padding
char printf_uint::format_zero_padding#0
char printf_uint::format_zero_padding#1
char printf_uint::format_zero_padding#2
char printf_uint::format_zero_padding#3
char printf_uint::format_zero_padding#4
char printf_uint::format_zero_padding#5
void (*printf_uint::putc)(char)
void (*printf_uint::putc#0)(char)
void (*printf_uint::putc#1)(char)
void (*printf_uint::putc#2)(char)
void (*printf_uint::putc#3)(char)
void (*printf_uint::putc#4)(char)
void (*printf_uint::putc#5)(char)
unsigned int printf_uint::uvalue
unsigned int printf_uint::uvalue#0
unsigned int printf_uint::uvalue#1
unsigned int printf_uint::uvalue#2
unsigned int printf_uint::uvalue#3
unsigned int printf_uint::uvalue#4
char *screen
char *screen#0
char *screen#1
char *screen#10
char *screen#11
char *screen#12
char *screen#13
char *screen#14
char *screen#15
char *screen#16
char *screen#17
char *screen#18
char *screen#19
char *screen#2
char *screen#20
char *screen#21
char *screen#22
char *screen#23
char *screen#24
char *screen#25
char *screen#26
char *screen#27
char *screen#28
char *screen#29
char *screen#3
char *screen#30
char *screen#31
char *screen#32
char *screen#33
char *screen#34
char *screen#35
char *screen#36
char *screen#37
char *screen#38
char *screen#39
char *screen#4
char *screen#5
char *screen#6
char *screen#7
char *screen#8
char *screen#9
void snprintf_init(char *s , unsigned int n)
unsigned int snprintf_init::n
unsigned int snprintf_init::n#0
unsigned int snprintf_init::n#1
unsigned int snprintf_init::n#2
unsigned int snprintf_init::n#3
unsigned int snprintf_init::n#4
char *snprintf_init::s
char *snprintf_init::s#0
char *snprintf_init::s#1
char *snprintf_init::s#2
char *snprintf_init::s#3
char *snprintf_init::s#4
__stackcall void snputc(char c)
bool snputc::$0
bool snputc::$1
bool snputc::$2
bool snputc::$3
__constant char snputc::OFFSET_STACK_C = 0
char snputc::c
char snputc::c#0
char snputc::c#1
char snputc::c#2
char snputc::c#3
unsigned int strlen(char *str)
bool strlen::$0
unsigned int strlen::len
unsigned int strlen::len#0
unsigned int strlen::len#1
unsigned int strlen::len#2
unsigned int strlen::len#3
unsigned int strlen::len#4
unsigned int strlen::return
unsigned int strlen::return#0
unsigned int strlen::return#1
unsigned int strlen::return#2
unsigned int strlen::return#3
unsigned int strlen::return#4
unsigned int strlen::return#5
unsigned int strlen::return#6
char *strlen::str
char *strlen::str#0
char *strlen::str#1
char *strlen::str#2
char *strlen::str#3
char *strlen::str#4
char *strlen::str#5
char * strupr(char *str)
char strupr::$0
bool strupr::$1
char *strupr::return
char *strupr::return#0
char *strupr::return#1
char *strupr::return#2
char *strupr::return#3
char *strupr::src
char *strupr::src#0
char *strupr::src#1
char *strupr::src#2
char *strupr::src#3
char *strupr::src#4
char *strupr::str
char *strupr::str#0
char *strupr::str#1
char *strupr::str#2
char *strupr::str#3
char *strupr::str#4
char *strupr::str#5
char toupper(char ch)
bool toupper::$0
bool toupper::$1
bool toupper::$2
char toupper::$3
char toupper::ch
char toupper::ch#0
char toupper::ch#1
char toupper::ch#2
char toupper::ch#3
char toupper::return
char toupper::return#0
char toupper::return#1
char toupper::return#2
char toupper::return#3
char toupper::return#4
char toupper::return#5
void ultoa(unsigned long value , char *buffer , char radix)
bool ultoa::$0
bool ultoa::$1
char ultoa::$10
char ultoa::$11
bool ultoa::$2
bool ultoa::$3
number ultoa::$4
bool ultoa::$5
bool ultoa::$6
bool ultoa::$7
bool ultoa::$8
unsigned long ultoa::$9
char *ultoa::buffer
char *ultoa::buffer#0
char *ultoa::buffer#1
char *ultoa::buffer#10
char *ultoa::buffer#11
char *ultoa::buffer#12
char *ultoa::buffer#13
char *ultoa::buffer#14
char *ultoa::buffer#15
char *ultoa::buffer#16
char *ultoa::buffer#17
char *ultoa::buffer#18
char *ultoa::buffer#19
char *ultoa::buffer#2
char *ultoa::buffer#20
char *ultoa::buffer#21
char *ultoa::buffer#3
char *ultoa::buffer#4
char *ultoa::buffer#5
char *ultoa::buffer#6
char *ultoa::buffer#7
char *ultoa::buffer#8
char *ultoa::buffer#9
char ultoa::digit
char ultoa::digit#0
char ultoa::digit#1
char ultoa::digit#2
char ultoa::digit#3
char ultoa::digit#4
char ultoa::digit#5
char ultoa::digit#6
unsigned long ultoa::digit_value
unsigned long ultoa::digit_value#0
unsigned long ultoa::digit_value#1
unsigned long *ultoa::digit_values
unsigned long *ultoa::digit_values#0
unsigned long *ultoa::digit_values#1
unsigned long *ultoa::digit_values#10
unsigned long *ultoa::digit_values#2
unsigned long *ultoa::digit_values#3
unsigned long *ultoa::digit_values#4
unsigned long *ultoa::digit_values#5
unsigned long *ultoa::digit_values#6
unsigned long *ultoa::digit_values#7
unsigned long *ultoa::digit_values#8
unsigned long *ultoa::digit_values#9
char ultoa::max_digits
char ultoa::max_digits#0
char ultoa::max_digits#1
char ultoa::max_digits#10
char ultoa::max_digits#2
char ultoa::max_digits#3
char ultoa::max_digits#4
char ultoa::max_digits#5
char ultoa::max_digits#6
char ultoa::max_digits#7
char ultoa::max_digits#8
char ultoa::max_digits#9
char ultoa::radix
char ultoa::radix#0
char ultoa::radix#1
char ultoa::radix#2
char ultoa::radix#3
char ultoa::radix#4
char ultoa::started
char ultoa::started#0
char ultoa::started#1
char ultoa::started#2
char ultoa::started#3
char ultoa::started#4
unsigned long ultoa::value
unsigned long ultoa::value#0
unsigned long ultoa::value#1
unsigned long ultoa::value#10
unsigned long ultoa::value#11
unsigned long ultoa::value#12
unsigned long ultoa::value#13
unsigned long ultoa::value#14
unsigned long ultoa::value#15
unsigned long ultoa::value#2
unsigned long ultoa::value#3
unsigned long ultoa::value#4
unsigned long ultoa::value#5
unsigned long ultoa::value#6
unsigned long ultoa::value#7
unsigned long ultoa::value#8
unsigned long ultoa::value#9
unsigned long ultoa_append(char *buffer , unsigned long value , unsigned long sub)
bool ultoa_append::$0
char *ultoa_append::buffer
char *ultoa_append::buffer#0
char *ultoa_append::buffer#1
char *ultoa_append::buffer#2
char *ultoa_append::buffer#3
char *ultoa_append::buffer#4
char ultoa_append::digit
char ultoa_append::digit#0
char ultoa_append::digit#1
char ultoa_append::digit#2
char ultoa_append::digit#3
char ultoa_append::digit#4
unsigned long ultoa_append::return
unsigned long ultoa_append::return#0
unsigned long ultoa_append::return#1
unsigned long ultoa_append::return#2
unsigned long ultoa_append::return#3
unsigned long ultoa_append::return#4
unsigned long ultoa_append::sub
unsigned long ultoa_append::sub#0
unsigned long ultoa_append::sub#1
unsigned long ultoa_append::sub#2
unsigned long ultoa_append::sub#3
unsigned long ultoa_append::value
unsigned long ultoa_append::value#0
unsigned long ultoa_append::value#1
unsigned long ultoa_append::value#2
unsigned long ultoa_append::value#3
unsigned long ultoa_append::value#4
unsigned long ultoa_append::value#5
void utoa(unsigned int value , char *buffer , char radix)
bool utoa::$0
bool utoa::$1
char utoa::$10
char utoa::$11
bool utoa::$2
bool utoa::$3
number utoa::$4
bool utoa::$5
bool utoa::$6
bool utoa::$7
bool utoa::$8
unsigned int utoa::$9
char *utoa::buffer
char *utoa::buffer#0
char *utoa::buffer#1
char *utoa::buffer#10
char *utoa::buffer#11
char *utoa::buffer#12
char *utoa::buffer#13
char *utoa::buffer#14
char *utoa::buffer#15
char *utoa::buffer#16
char *utoa::buffer#17
char *utoa::buffer#18
char *utoa::buffer#19
char *utoa::buffer#2
char *utoa::buffer#20
char *utoa::buffer#21
char *utoa::buffer#22
char *utoa::buffer#3
char *utoa::buffer#4
char *utoa::buffer#5
char *utoa::buffer#6
char *utoa::buffer#7
char *utoa::buffer#8
char *utoa::buffer#9
char utoa::digit
char utoa::digit#0
char utoa::digit#1
char utoa::digit#2
char utoa::digit#3
char utoa::digit#4
char utoa::digit#5
char utoa::digit#6
unsigned int utoa::digit_value
unsigned int utoa::digit_value#0
unsigned int utoa::digit_value#1
unsigned int *utoa::digit_values
unsigned int *utoa::digit_values#0
unsigned int *utoa::digit_values#1
unsigned int *utoa::digit_values#10
unsigned int *utoa::digit_values#2
unsigned int *utoa::digit_values#3
unsigned int *utoa::digit_values#4
unsigned int *utoa::digit_values#5
unsigned int *utoa::digit_values#6
unsigned int *utoa::digit_values#7
unsigned int *utoa::digit_values#8
unsigned int *utoa::digit_values#9
char utoa::max_digits
char utoa::max_digits#0
char utoa::max_digits#1
char utoa::max_digits#10
char utoa::max_digits#2
char utoa::max_digits#3
char utoa::max_digits#4
char utoa::max_digits#5
char utoa::max_digits#6
char utoa::max_digits#7
char utoa::max_digits#8
char utoa::max_digits#9
char utoa::radix
char utoa::radix#0
char utoa::radix#1
char utoa::radix#2
char utoa::radix#3
char utoa::radix#4
char utoa::radix#5
char utoa::started
char utoa::started#0
char utoa::started#1
char utoa::started#2
char utoa::started#3
char utoa::started#4
unsigned int utoa::value
unsigned int utoa::value#0
unsigned int utoa::value#1
unsigned int utoa::value#10
unsigned int utoa::value#11
unsigned int utoa::value#12
unsigned int utoa::value#13
unsigned int utoa::value#14
unsigned int utoa::value#15
unsigned int utoa::value#16
unsigned int utoa::value#2
unsigned int utoa::value#3
unsigned int utoa::value#4
unsigned int utoa::value#5
unsigned int utoa::value#6
unsigned int utoa::value#7
unsigned int utoa::value#8
unsigned int utoa::value#9
unsigned int utoa_append(char *buffer , unsigned int value , unsigned int sub)
bool utoa_append::$0
char *utoa_append::buffer
char *utoa_append::buffer#0
char *utoa_append::buffer#1
char *utoa_append::buffer#2
char *utoa_append::buffer#3
char *utoa_append::buffer#4
char utoa_append::digit
char utoa_append::digit#0
char utoa_append::digit#1
char utoa_append::digit#2
char utoa_append::digit#3
char utoa_append::digit#4
unsigned int utoa_append::return
unsigned int utoa_append::return#0
unsigned int utoa_append::return#1
unsigned int utoa_append::return#2
unsigned int utoa_append::return#3
unsigned int utoa_append::return#4
unsigned int utoa_append::sub
unsigned int utoa_append::sub#0
unsigned int utoa_append::sub#1
unsigned int utoa_append::sub#2
unsigned int utoa_append::sub#3
unsigned int utoa_append::value
unsigned int utoa_append::value#0
unsigned int utoa_append::value#1
unsigned int utoa_append::value#2
unsigned int utoa_append::value#3
unsigned int utoa_append::value#4
unsigned int utoa_append::value#5

Adding number conversion cast (unumber) 0 in strlen::$0 = 0 != *strlen::str#3
Adding number conversion cast (unumber) 0 in strupr::$1 = 0 != *strupr::src#2
Adding number conversion cast (unumber) 5 in utoa::max_digits#1 = 5
Adding number conversion cast (unumber) 4 in utoa::max_digits#2 = 4
Adding number conversion cast (unumber) 6 in utoa::max_digits#3 = 6
Adding number conversion cast (unumber) $10 in utoa::max_digits#4 = $10
Adding number conversion cast (unumber) 0 in *utoa::buffer#2 = 0
Adding number conversion cast (unumber) 1 in utoa::$4 = utoa::max_digits#5 - 1
Adding number conversion cast (unumber) utoa::$4 in utoa::$4 = utoa::max_digits#5 - (unumber)1
Adding number conversion cast (unumber) 0 in *utoa::buffer#3 = 0
Adding number conversion cast (unumber) 1 in utoa::started#1 = 1
Adding number conversion cast (unumber) $a in ultoa::max_digits#1 = $a
Adding number conversion cast (unumber) 8 in ultoa::max_digits#2 = 8
Adding number conversion cast (unumber) $b in ultoa::max_digits#3 = $b
Adding number conversion cast (unumber) $20 in ultoa::max_digits#4 = $20
Adding number conversion cast (unumber) 0 in *ultoa::buffer#2 = 0
Adding number conversion cast (unumber) 1 in ultoa::$4 = ultoa::max_digits#5 - 1
Adding number conversion cast (unumber) ultoa::$4 in ultoa::$4 = ultoa::max_digits#5 - (unumber)1
Adding number conversion cast (unumber) 0 in *ultoa::buffer#3 = 0
Adding number conversion cast (unumber) 1 in ultoa::started#1 = 1
Adding number conversion cast (unumber) $19 in gotoxy::$0 = gotoxy::y#2 > $19
Adding number conversion cast (unumber) $28 in gotoxy::$2 = gotoxy::x#2 >= $28
Adding number conversion cast (unumber) 0 in gotoxy::y#0 = 0
Adding number conversion cast (unumber) 0 in gotoxy::x#0 = 0
Adding number conversion cast (unumber) $19 in conio_c64_init::$0 = conio_c64_init::line#0 >= $19
Adding number conversion cast (unumber) 0 in gotoxy::x#1 = 0
Adding number conversion cast (unumber) $19-1 in conio_c64_init::line#1 = $19-1
Adding number conversion cast (unumber) 0 in printf_str::$2 = 0 != printf_str::$0
Adding number conversion cast (unumber) 0 in *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) = 0
Adding number conversion cast (snumber) 0 in printf_slong::$0 = printf_slong::value#2 < 0
Adding number conversion cast (unumber) 0 in printf_slong::$5 = 0 != printf_slong::format_sign_always#1
Adding number conversion cast (unumber) 0 in *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) = 0
Adding number conversion cast (snumber) 0 in printf_sint::$0 = printf_sint::value#2 < 0
Adding number conversion cast (unumber) 0 in printf_sint::$5 = 0 != printf_sint::format_sign_always#1
Adding number conversion cast (unumber) 0 in printf_uint::$5 = 0 != printf_uint::format_sign_always#1
Adding number conversion cast (unumber) printf_uint::$2 in printf_uint::format_upper_case#2 = phi( printf_uint::@1/printf_uint::format_upper_case#3, printf_uint::@2/printf_uint::format_upper_case#4 )
  printf_uint::format_zero_padding#2 = phi( printf_uint::@1/printf_uint::format_zero_padding#3, printf_uint::@2/printf_uint::format_zero_padding#4 )
  printf_uint::format_sign_always#3 = phi( printf_uint::@1/printf_uint::format_sign_always#4, printf_uint::@2/printf_uint::format_sign_always#5 )
  printf_uint::format_justify_left#2 = phi( printf_uint::@1/printf_uint::format_justify_left#3, printf_uint::@2/printf_uint::format_justify_left#4 )
  printf_uint::format_min_length#2 = phi( printf_uint::@1/printf_uint::format_min_length#3, printf_uint::@2/printf_uint::format_min_length#4 )
  printf_uint::putc#2 = phi( printf_uint::@1/printf_uint::putc#3, printf_uint::@2/printf_uint::putc#4 )
  printf_uint::format_radix#1 = phi( printf_uint::@1/printf_uint::format_radix#3, printf_uint::@2/printf_uint::format_radix#4 )
  printf_uint::uvalue#1 = phi( printf_uint::@1/printf_uint::uvalue#2, printf_uint::@2/printf_uint::uvalue#3 )
  printf_uint::$2 = phi( printf_uint::@1/printf_uint::$1, printf_uint::@2/printf_uint::$0 )
Adding number conversion cast (unumber) printf_uint::$0 in printf_uint::format_upper_case#2 = phi( printf_uint::@1/printf_uint::format_upper_case#3, printf_uint::@2/printf_uint::format_upper_case#4 )
  printf_uint::format_zero_padding#2 = phi( printf_uint::@1/printf_uint::format_zero_padding#3, printf_uint::@2/printf_uint::format_zero_padding#4 )
  printf_uint::format_sign_always#3 = phi( printf_uint::@1/printf_uint::format_sign_always#4, printf_uint::@2/printf_uint::format_sign_always#5 )
  printf_uint::format_justify_left#2 = phi( printf_uint::@1/printf_uint::format_justify_left#3, printf_uint::@2/printf_uint::format_justify_left#4 )
  printf_uint::format_min_length#2 = phi( printf_uint::@1/printf_uint::format_min_length#3, printf_uint::@2/printf_uint::format_min_length#4 )
  printf_uint::putc#2 = phi( printf_uint::@1/printf_uint::putc#3, printf_uint::@2/printf_uint::putc#4 )
  printf_uint::format_radix#1 = phi( printf_uint::@1/printf_uint::format_radix#3, printf_uint::@2/printf_uint::format_radix#4 )
  printf_uint::uvalue#1 = phi( printf_uint::@1/printf_uint::uvalue#2, printf_uint::@2/printf_uint::uvalue#3 )
  printf_uint::$2 = phi( printf_uint::@1/printf_uint::$1, printf_uint::@2/printf_uint::$0 )
Adding number conversion cast (unumber) 0 in printf_number_buffer::$26 = 0 != printf_number_buffer::format_min_length#3
Adding number conversion cast (unumber) 0 in printf_number_buffer::$27 = 0 != printf_number_buffer::format_justify_left#3
Adding number conversion cast (unumber) 0 in printf_number_buffer::$28 = 0 != printf_number_buffer::format_zero_padding#3
Adding number conversion cast (unumber) 0 in printf_number_buffer::$29 = 0 != printf_number_buffer::buffer_sign#3
Adding number conversion cast (snumber) 0 in printf_number_buffer::$22 = printf_number_buffer::padding#1 < 0
Adding number conversion cast (snumber) 0 in printf_number_buffer::padding#2 = 0
Adding number conversion cast (unumber) 0 in printf_number_buffer::$30 = 0 != printf_number_buffer::buffer_sign#4
Adding number conversion cast (unumber) 0 in printf_number_buffer::$31 = 0 != printf_number_buffer::format_upper_case#3
Adding number conversion cast (unumber) 0 in printf_number_buffer::$32 = 0 != printf_number_buffer::format_zero_padding#5
Adding number conversion cast (unumber) 0 in printf_string::$14 = 0 != printf_string::format_min_length#1
Adding number conversion cast (unumber) 0 in printf_string::$15 = 0 != printf_string::format_justify_left#1
Adding number conversion cast (snumber) 0 in printf_string::$11 = printf_string::padding#1 < 0
Adding number conversion cast (snumber) 0 in printf_string::padding#2 = 0
Adding number conversion cast (unumber) 0 in __snprintf_size = 0
Adding number conversion cast (unumber) 0 in snputc::c#1 = 0
Adding number conversion cast (unumber) 0 in print::$0 = 0 != *print::msg#5
Adding number conversion cast (snumber) 3 in printf_sint::value#1 = 3
Adding number conversion cast (unumber) $b in printf_uint::uvalue#0 = $b
Successful SSA optimization PassNAddNumberTypeConversions
Adding number conversion cast (unumber) 0 in printf_uint::$0 = 0
Successful SSA optimization PassNAddNumberTypeConversions
Inlining cast utoa::max_digits#1 = (unumber)5
Inlining cast utoa::max_digits#2 = (unumber)4
Inlining cast utoa::max_digits#3 = (unumber)6
Inlining cast utoa::max_digits#4 = (unumber)$10
Inlining cast *utoa::buffer#2 = (unumber)0
Inlining cast *utoa::buffer#3 = (unumber)0
Inlining cast utoa::started#1 = (unumber)1
Inlining cast ultoa::max_digits#1 = (unumber)$a
Inlining cast ultoa::max_digits#2 = (unumber)8
Inlining cast ultoa::max_digits#3 = (unumber)$b
Inlining cast ultoa::max_digits#4 = (unumber)$20
Inlining cast *ultoa::buffer#2 = (unumber)0
Inlining cast *ultoa::buffer#3 = (unumber)0
Inlining cast ultoa::started#1 = (unumber)1
Inlining cast gotoxy::y#0 = (unumber)0
Inlining cast gotoxy::x#0 = (unumber)0
Inlining cast gotoxy::x#1 = (unumber)0
Inlining cast conio_c64_init::line#1 = (unumber)$19-1
Inlining cast *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) = (unumber)0
Inlining cast *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) = (unumber)0
Inlining cast printf_uint::$0 = (unumber)0
Inlining cast printf_number_buffer::padding#2 = (snumber)0
Inlining cast printf_string::padding#2 = (snumber)0
Inlining cast __snprintf_size = (unumber)0
Inlining cast snputc::c#1 = (unumber)0
Inlining cast printf_sint::value#1 = (snumber)3
Inlining cast printf_uint::uvalue#0 = (unumber)$b
Successful SSA optimization Pass2InlineCast
Simplifying constant pointer cast (char *) 214
Simplifying constant integer cast 0
Simplifying constant integer cast 0
Simplifying constant integer cast 5
Simplifying constant integer cast 4
Simplifying constant integer cast 6
Simplifying constant integer cast $10
Simplifying constant integer cast 0
Simplifying constant integer cast 1
Simplifying constant integer cast 0
Simplifying constant integer cast 1
Simplifying constant integer cast $a
Simplifying constant integer cast 8
Simplifying constant integer cast $b
Simplifying constant integer cast $20
Simplifying constant integer cast 0
Simplifying constant integer cast 1
Simplifying constant integer cast 0
Simplifying constant integer cast 1
Simplifying constant integer cast $19
Simplifying constant integer cast $28
Simplifying constant integer cast 0
Simplifying constant integer cast 0
Simplifying constant integer cast $19
Simplifying constant integer cast 0
Simplifying constant integer cast 0
Simplifying constant integer cast 0
Simplifying constant integer cast 0
Simplifying constant integer cast 0
Simplifying constant integer cast 0
Simplifying constant integer cast 0
Simplifying constant integer cast 0
Simplifying constant integer cast 0
Simplifying constant integer cast 0
Simplifying constant integer cast 0
Simplifying constant integer cast 0
Simplifying constant integer cast 0
Simplifying constant integer cast 0
Simplifying constant integer cast 0
Simplifying constant integer cast 0
Simplifying constant integer cast 0
Simplifying constant integer cast 0
Simplifying constant integer cast 0
Simplifying constant integer cast 0
Simplifying constant integer cast 0
Simplifying constant integer cast 0
Simplifying constant integer cast 0
Simplifying constant integer cast 0
Simplifying constant integer cast 0
Simplifying constant integer cast 0
Simplifying constant integer cast 3
Simplifying constant integer cast $b
Simplifying constant pointer cast (char *) 1024
Successful SSA optimization PassNCastSimplification
Finalized unsigned number type (char) 0
Finalized unsigned number type (char) 0
Finalized unsigned number type (char) 5
Finalized unsigned number type (char) 4
Finalized unsigned number type (char) 6
Finalized unsigned number type (char) $10
Finalized unsigned number type (char) 0
Finalized unsigned number type (char) 1
Finalized unsigned number type (char) 0
Finalized unsigned number type (char) 1
Finalized unsigned number type (char) $a
Finalized unsigned number type (char) 8
Finalized unsigned number type (char) $b
Finalized unsigned number type (char) $20
Finalized unsigned number type (char) 0
Finalized unsigned number type (char) 1
Finalized unsigned number type (char) 0
Finalized unsigned number type (char) 1
Finalized unsigned number type (char) $19
Finalized unsigned number type (char) $28
Finalized unsigned number type (char) 0
Finalized unsigned number type (char) 0
Finalized unsigned number type (char) $19
Finalized unsigned number type (char) 0
Finalized unsigned number type (char) 0
Finalized unsigned number type (char) 0
Finalized signed number type (signed char) 0
Finalized unsigned number type (char) 0
Finalized unsigned number type (char) 0
Finalized signed number type (signed char) 0
Finalized unsigned number type (char) 0
Finalized unsigned number type (char) 0
Finalized unsigned number type (char) 0
Finalized unsigned number type (char) 0
Finalized unsigned number type (char) 0
Finalized unsigned number type (char) 0
Finalized unsigned number type (char) 0
Finalized signed number type (signed char) 0
Finalized signed number type (signed char) 0
Finalized unsigned number type (char) 0
Finalized unsigned number type (char) 0
Finalized unsigned number type (char) 0
Finalized unsigned number type (char) 0
Finalized unsigned number type (char) 0
Finalized signed number type (signed char) 0
Finalized signed number type (signed char) 0
Finalized unsigned number type (char) 0
Finalized unsigned number type (char) 0
Finalized unsigned number type (char) 0
Finalized signed number type (signed char) 3
Finalized unsigned number type (char) $b
Successful SSA optimization PassNFinalizeNumberTypeConversions
Inferred type updated to char in utoa::$4 = utoa::max_digits#5 - 1
Inferred type updated to char in ultoa::$4 = ultoa::max_digits#5 - 1
Inferred type updated to char in printf_uint::$0 = 0
Inferred type updated to char for printf_uint::$2
Inversing boolean not [208] gotoxy::$1 = gotoxy::y#2 <= $19 from [207] gotoxy::$0 = gotoxy::y#2 > $19
Inversing boolean not [212] gotoxy::$3 = gotoxy::x#2 < $28 from [211] gotoxy::$2 = gotoxy::x#2 >= $28
Inversing boolean not [220] conio_c64_init::$1 = conio_c64_init::line#0 < $19 from [219] conio_c64_init::$0 = conio_c64_init::line#0 >= $19
Inversing boolean not [263] printf_slong::$3 = 0 == printf_slong::format_sign_always#1 from [262] printf_slong::$5 = 0 != printf_slong::format_sign_always#1
Inversing boolean not [295] printf_sint::$3 = 0 == printf_sint::format_sign_always#1 from [294] printf_sint::$5 = 0 != printf_sint::format_sign_always#1
Inversing boolean not [345] printf_number_buffer::$0 = 0 == printf_number_buffer::format_min_length#3 from [344] printf_number_buffer::$26 = 0 != printf_number_buffer::format_min_length#3
Inversing boolean not [349] printf_number_buffer::$1 = 0 == printf_number_buffer::format_justify_left#3 from [348] printf_number_buffer::$27 = 0 != printf_number_buffer::format_justify_left#3
Inversing boolean not [351] printf_number_buffer::$2 = 0 == printf_number_buffer::format_zero_padding#3 from [350] printf_number_buffer::$28 = 0 != printf_number_buffer::format_zero_padding#3
Inversing boolean not [364] printf_number_buffer::$20 = 0 == printf_number_buffer::buffer_sign#3 from [363] printf_number_buffer::$29 = 0 != printf_number_buffer::buffer_sign#3
Inversing boolean not [371] printf_number_buffer::$23 = printf_number_buffer::padding#1 >= 0 from [370] printf_number_buffer::$22 = printf_number_buffer::padding#1 < 0
Inversing boolean not [379] printf_number_buffer::$7 = 0 == printf_number_buffer::buffer_sign#4 from [378] printf_number_buffer::$30 = 0 != printf_number_buffer::buffer_sign#4
Inversing boolean not [397] printf_number_buffer::$12 = 0 == printf_number_buffer::format_upper_case#3 from [396] printf_number_buffer::$31 = 0 != printf_number_buffer::format_upper_case#3
Inversing boolean not [411] printf_number_buffer::$14 = 0 == printf_number_buffer::format_zero_padding#5 from [410] printf_number_buffer::$32 = 0 != printf_number_buffer::format_zero_padding#5
Inversing boolean not [430] printf_string::$0 = 0 == printf_string::format_min_length#1 from [429] printf_string::$14 = 0 != printf_string::format_min_length#1
Inversing boolean not [434] printf_string::$1 = 0 == printf_string::format_justify_left#1 from [433] printf_string::$15 = 0 != printf_string::format_justify_left#1
Inversing boolean not [449] printf_string::$12 = printf_string::padding#1 >= 0 from [448] printf_string::$11 = printf_string::padding#1 < 0
Inversing boolean not [481] snputc::$1 = __snprintf_size <= __snprintf_capacity from [480] snputc::$0 = __snprintf_size > __snprintf_capacity
Inversing boolean not [485] snputc::$3 = __snprintf_size != __snprintf_capacity from [484] snputc::$2 = __snprintf_size == __snprintf_capacity
Successful SSA optimization Pass2UnaryNotSimplification
Alias strlen::len#2 = strlen::len#4 strlen::len#3 strlen::return#0 strlen::return#4 strlen::return#1 
Alias strlen::str#3 = strlen::str#4 
Alias toupper::ch#1 = toupper::ch#2 toupper::ch#3 toupper::return#1 
Alias toupper::return#0 = toupper::$3 
Alias toupper::return#2 = toupper::return#4 
Alias strupr::src#0 = strupr::str#1 
Alias strupr::src#2 = strupr::src#3 strupr::src#4 
Alias strupr::str#2 = strupr::str#5 strupr::str#3 strupr::str#4 strupr::return#0 strupr::return#3 strupr::return#1 
Alias toupper::return#3 = toupper::return#5 
Alias utoa::value#10 = utoa::value#9 utoa::value#13 utoa::value#14 utoa::value#15 utoa::value#11 utoa::value#16 utoa::value#12 
Alias utoa::buffer#11 = utoa::buffer#18 utoa::buffer#22 utoa::buffer#17 utoa::buffer#19 utoa::buffer#14 utoa::buffer#20 utoa::buffer#21 utoa::buffer#7 
Alias utoa::radix#2 = utoa::radix#3 utoa::radix#4 utoa::radix#5 
Alias utoa::digit#2 = utoa::digit#3 utoa::digit#6 utoa::digit#5 
Alias utoa::digit_values#10 = utoa::digit_values#5 utoa::digit_values#6 utoa::digit_values#9 
Alias utoa::value#3 = utoa::value#6 utoa::value#4 utoa::value#5 
Alias utoa::started#2 = utoa::started#3 
Alias utoa::buffer#10 = utoa::buffer#13 utoa::buffer#12 utoa::buffer#8 utoa::buffer#9 
Alias utoa::max_digits#10 = utoa::max_digits#8 utoa::max_digits#5 utoa::max_digits#9 
Alias utoa::digit_value#0 = utoa::digit_value#1 
Alias utoa_append::return#0 = utoa_append::return#3 
Alias utoa::value#0 = utoa::$9 
Alias ultoa::value#10 = ultoa::value#8 ultoa::value#12 ultoa::value#13 ultoa::value#9 ultoa::value#14 ultoa::value#15 ultoa::value#11 
Alias ultoa::buffer#10 = ultoa::buffer#17 ultoa::buffer#21 ultoa::buffer#16 ultoa::buffer#18 ultoa::buffer#13 ultoa::buffer#19 ultoa::buffer#20 ultoa::buffer#6 
Alias ultoa::radix#1 = ultoa::radix#2 ultoa::radix#3 ultoa::radix#4 
Alias ultoa::digit#2 = ultoa::digit#3 ultoa::digit#6 ultoa::digit#5 
Alias ultoa::digit_values#10 = ultoa::digit_values#5 ultoa::digit_values#6 ultoa::digit_values#9 
Alias ultoa::value#2 = ultoa::value#5 ultoa::value#3 ultoa::value#4 
Alias ultoa::started#2 = ultoa::started#3 
Alias ultoa::buffer#11 = ultoa::buffer#12 ultoa::buffer#7 ultoa::buffer#8 ultoa::buffer#9 
Alias ultoa::max_digits#10 = ultoa::max_digits#8 ultoa::max_digits#5 ultoa::max_digits#9 
Alias ultoa::digit_value#0 = ultoa::digit_value#1 
Alias ultoa_append::return#0 = ultoa_append::return#3 
Alias ultoa::value#0 = ultoa::$9 
Alias utoa_append::digit#2 = utoa_append::digit#4 utoa_append::digit#3 
Alias utoa_append::value#2 = utoa_append::value#3 utoa_append::value#4 utoa_append::return#1 utoa_append::return#4 utoa_append::return#2 
Alias utoa_append::sub#1 = utoa_append::sub#2 
Alias utoa_append::buffer#1 = utoa_append::buffer#4 utoa_append::buffer#2 
Alias ultoa_append::digit#2 = ultoa_append::digit#4 ultoa_append::digit#3 
Alias ultoa_append::value#2 = ultoa_append::value#3 ultoa_append::value#4 ultoa_append::return#1 ultoa_append::return#4 ultoa_append::return#2 
Alias ultoa_append::sub#1 = ultoa_append::sub#2 
Alias ultoa_append::buffer#1 = ultoa_append::buffer#4 ultoa_append::buffer#2 
Alias gotoxy::x#3 = gotoxy::x#4 
Alias printf_str::c#1 = printf_str::$0 printf_str::c#2 
Alias printf_str::putc#10 = printf_str::putc#11 
Alias printf_str::s#0 = printf_str::s#13 
Alias printf_padding::pad#5 = printf_padding::pad#6 printf_padding::pad#8 
Alias printf_padding::putc#5 = printf_padding::putc#6 printf_padding::putc#8 
Alias printf_padding::i#2 = printf_padding::i#4 printf_padding::i#3 
Alias printf_padding::length#5 = printf_padding::length#8 printf_padding::length#7 
Alias printf_slong::value#2 = printf_slong::value#3 printf_slong::value#5 printf_slong::value#6 
Alias printf_slong::format_radix#3 = printf_slong::format_radix#6 printf_slong::format_radix#4 printf_slong::format_radix#5 
Alias printf_slong::putc#3 = printf_slong::putc#6 printf_slong::putc#4 printf_slong::putc#5 
Alias printf_slong::format_min_length#3 = printf_slong::format_min_length#6 printf_slong::format_min_length#4 printf_slong::format_min_length#5 
Alias printf_slong::format_justify_left#3 = printf_slong::format_justify_left#6 printf_slong::format_justify_left#4 printf_slong::format_justify_left#5 
Alias printf_slong::format_sign_always#1 = printf_slong::format_sign_always#5 printf_slong::format_sign_always#3 printf_slong::format_sign_always#6 
Alias printf_slong::format_zero_padding#3 = printf_slong::format_zero_padding#6 printf_slong::format_zero_padding#4 printf_slong::format_zero_padding#5 
Alias printf_slong::format_upper_case#3 = printf_slong::format_upper_case#6 printf_slong::format_upper_case#4 printf_slong::format_upper_case#5 
Alias printf_slong::value#0 = printf_slong::$4 
Alias printf_slong::putc#1 = printf_slong::putc#2 
Alias printf_slong::format_min_length#1 = printf_slong::format_min_length#2 
Alias printf_slong::format_justify_left#1 = printf_slong::format_justify_left#2 
Alias printf_slong::format_sign_always#2 = printf_slong::format_sign_always#4 
Alias printf_slong::format_zero_padding#1 = printf_slong::format_zero_padding#2 
Alias printf_slong::format_upper_case#1 = printf_slong::format_upper_case#2 
Alias printf_slong::format_radix#1 = printf_slong::format_radix#2 
Alias printf_sint::value#2 = printf_sint::value#3 printf_sint::value#5 printf_sint::value#6 
Alias printf_sint::format_radix#3 = printf_sint::format_radix#6 printf_sint::format_radix#4 printf_sint::format_radix#5 
Alias printf_sint::putc#3 = printf_sint::putc#6 printf_sint::putc#4 printf_sint::putc#5 
Alias printf_sint::format_min_length#3 = printf_sint::format_min_length#6 printf_sint::format_min_length#4 printf_sint::format_min_length#5 
Alias printf_sint::format_justify_left#3 = printf_sint::format_justify_left#6 printf_sint::format_justify_left#4 printf_sint::format_justify_left#5 
Alias printf_sint::format_sign_always#1 = printf_sint::format_sign_always#5 printf_sint::format_sign_always#3 printf_sint::format_sign_always#6 
Alias printf_sint::format_zero_padding#3 = printf_sint::format_zero_padding#6 printf_sint::format_zero_padding#4 printf_sint::format_zero_padding#5 
Alias printf_sint::format_upper_case#3 = printf_sint::format_upper_case#6 printf_sint::format_upper_case#4 printf_sint::format_upper_case#5 
Alias printf_sint::value#0 = printf_sint::$4 
Alias printf_sint::putc#1 = printf_sint::putc#2 
Alias printf_sint::format_min_length#1 = printf_sint::format_min_length#2 
Alias printf_sint::format_justify_left#1 = printf_sint::format_justify_left#2 
Alias printf_sint::format_sign_always#2 = printf_sint::format_sign_always#4 
Alias printf_sint::format_zero_padding#1 = printf_sint::format_zero_padding#2 
Alias printf_sint::format_upper_case#1 = printf_sint::format_upper_case#2 
Alias printf_sint::format_radix#1 = printf_sint::format_radix#2 
Alias printf_uint::uvalue#2 = printf_uint::uvalue#4 printf_uint::uvalue#3 
Alias printf_uint::format_radix#3 = printf_uint::format_radix#5 printf_uint::format_radix#4 
Alias printf_uint::putc#3 = printf_uint::putc#5 printf_uint::putc#4 
Alias printf_uint::format_min_length#3 = printf_uint::format_min_length#5 printf_uint::format_min_length#4 
Alias printf_uint::format_justify_left#3 = printf_uint::format_justify_left#5 printf_uint::format_justify_left#4 
Alias printf_uint::format_sign_always#1 = printf_uint::format_sign_always#4 printf_uint::format_sign_always#5 
Alias printf_uint::format_zero_padding#3 = printf_uint::format_zero_padding#5 printf_uint::format_zero_padding#4 
Alias printf_uint::format_upper_case#3 = printf_uint::format_upper_case#5 printf_uint::format_upper_case#4 
Alias printf_uint::putc#1 = printf_uint::putc#2 
Alias printf_uint::format_min_length#1 = printf_uint::format_min_length#2 
Alias printf_uint::format_justify_left#1 = printf_uint::format_justify_left#2 
Alias printf_uint::format_sign_always#2 = printf_uint::format_sign_always#3 
Alias printf_uint::format_zero_padding#1 = printf_uint::format_zero_padding#2 
Alias printf_uint::format_upper_case#1 = printf_uint::format_upper_case#2 
Alias printf_uint::format_radix#1 = printf_uint::format_radix#2 
Alias printf_number_buffer::buffer_digits#19 = printf_number_buffer::buffer_digits#3 printf_number_buffer::buffer_digits#6 printf_number_buffer::buffer_digits#20 
Alias printf_number_buffer::buffer_sign#13 = printf_number_buffer::buffer_sign#6 printf_number_buffer::buffer_sign#9 printf_number_buffer::buffer_sign#3 
Alias printf_number_buffer::format_min_length#3 = printf_number_buffer::format_min_length#7 printf_number_buffer::format_min_length#5 printf_number_buffer::format_min_length#6 
Alias printf_number_buffer::format_justify_left#10 = printf_number_buffer::format_justify_left#13 printf_number_buffer::format_justify_left#5 printf_number_buffer::format_justify_left#9 
Alias printf_number_buffer::format_zero_padding#12 = printf_number_buffer::format_zero_padding#17 printf_number_buffer::format_zero_padding#6 printf_number_buffer::format_zero_padding#13 
Alias printf_number_buffer::putc#14 = printf_number_buffer::putc#22 printf_number_buffer::putc#20 printf_number_buffer::putc#21 
Alias printf_number_buffer::format_upper_case#11 = printf_number_buffer::format_upper_case#17 printf_number_buffer::format_upper_case#15 printf_number_buffer::format_upper_case#16 
Alias strlen::return#2 = strlen::return#5 
Alias printf_number_buffer::padding#1 = printf_number_buffer::$21 
Alias printf_number_buffer::len#0 = printf_number_buffer::len#3 
Alias printf_number_buffer::format_justify_left#6 = printf_number_buffer::format_justify_left#7 
Alias printf_number_buffer::format_zero_padding#7 = printf_number_buffer::format_zero_padding#8 
Alias printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#11 
Alias printf_number_buffer::putc#15 = printf_number_buffer::putc#16 
Alias printf_number_buffer::format_upper_case#12 = printf_number_buffer::format_upper_case#13 
Alias printf_number_buffer::buffer_digits#16 = printf_number_buffer::buffer_digits#17 
Alias printf_number_buffer::putc#17 = printf_number_buffer::putc#3 printf_number_buffer::putc#8 
Alias printf_number_buffer::padding#12 = printf_number_buffer::padding#4 printf_number_buffer::padding#3 
Alias printf_number_buffer::buffer_sign#12 = printf_number_buffer::buffer_sign#7 printf_number_buffer::buffer_sign#8 
Alias printf_number_buffer::format_zero_padding#14 = printf_number_buffer::format_zero_padding#18 printf_number_buffer::format_zero_padding#3 
Alias printf_number_buffer::format_upper_case#10 = printf_number_buffer::format_upper_case#14 printf_number_buffer::format_upper_case#9 
Alias printf_number_buffer::buffer_digits#14 = printf_number_buffer::buffer_digits#18 printf_number_buffer::buffer_digits#15 
Alias printf_number_buffer::format_justify_left#20 = printf_number_buffer::format_justify_left#21 printf_number_buffer::format_justify_left#3 
Alias printf_number_buffer::buffer_sign#4 = printf_number_buffer::buffer_sign#5 
Alias printf_number_buffer::putc#4 = printf_number_buffer::putc#9 
Alias printf_number_buffer::format_zero_padding#10 = printf_number_buffer::format_zero_padding#9 
Alias printf_number_buffer::padding#10 = printf_number_buffer::padding#9 
Alias printf_number_buffer::format_upper_case#6 = printf_number_buffer::format_upper_case#7 
Alias printf_number_buffer::buffer_digits#11 = printf_number_buffer::buffer_digits#12 
Alias printf_number_buffer::format_justify_left#17 = printf_number_buffer::format_justify_left#18 
Alias printf_number_buffer::putc#10 = printf_number_buffer::putc#5 printf_number_buffer::putc#18 
Alias printf_number_buffer::padding#15 = printf_number_buffer::padding#6 printf_number_buffer::padding#5 
Alias printf_number_buffer::format_upper_case#4 = printf_number_buffer::format_upper_case#8 printf_number_buffer::format_upper_case#5 
Alias printf_number_buffer::buffer_digits#10 = printf_number_buffer::buffer_digits#13 printf_number_buffer::buffer_digits#9 
Alias printf_number_buffer::format_zero_padding#19 = printf_number_buffer::format_zero_padding#21 printf_number_buffer::format_zero_padding#4 
Alias printf_number_buffer::format_justify_left#14 = printf_number_buffer::format_justify_left#19 printf_number_buffer::format_justify_left#15 
Alias printf_number_buffer::format_zero_padding#11 = printf_number_buffer::format_zero_padding#5 
Alias printf_number_buffer::format_justify_left#4 = printf_number_buffer::format_justify_left#8 
Alias printf_number_buffer::padding#11 = printf_number_buffer::padding#7 printf_number_buffer::padding#8 
Alias printf_number_buffer::putc#13 = printf_number_buffer::putc#6 printf_number_buffer::putc#7 
Alias printf_number_buffer::buffer_digits#5 = printf_number_buffer::buffer_digits#8 printf_number_buffer::buffer_digits#7 
Alias printf_number_buffer::putc#11 = printf_number_buffer::putc#19 printf_number_buffer::putc#12 
Alias printf_number_buffer::format_zero_padding#15 = printf_number_buffer::format_zero_padding#20 printf_number_buffer::format_zero_padding#16 
Alias printf_number_buffer::format_justify_left#11 = printf_number_buffer::format_justify_left#16 printf_number_buffer::format_justify_left#12 
Alias printf_number_buffer::padding#13 = printf_number_buffer::padding#16 printf_number_buffer::padding#14 
Alias printf_string::str#1 = printf_string::str#3 printf_string::str#7 printf_string::str#6 
Alias printf_string::format_min_length#1 = printf_string::format_min_length#3 printf_string::format_min_length#2 
Alias printf_string::format_justify_left#3 = printf_string::format_justify_left#7 printf_string::format_justify_left#5 printf_string::format_justify_left#4 
Alias printf_string::putc#10 = printf_string::putc#7 printf_string::putc#9 printf_string::putc#8 
Alias strlen::return#3 = strlen::return#6 
Alias printf_string::padding#1 = printf_string::$10 
Alias printf_string::format_justify_left#2 = printf_string::format_justify_left#6 
Alias printf_string::padding#4 = printf_string::padding#7 printf_string::padding#6 
Alias printf_string::putc#1 = printf_string::putc#6 printf_string::putc#3 
Alias printf_string::putc#2 = printf_string::putc#4 printf_string::putc#5 
Alias printf_string::padding#3 = printf_string::padding#5 printf_string::padding#8 
Alias printf_string::str#4 = printf_string::str#8 printf_string::str#5 
Alias printf_string::format_justify_left#1 = printf_string::format_justify_left#9 printf_string::format_justify_left#8 
Alias snputc::c#0 = snputc::c#3 
Alias print::msg#5 = print::msg#6 
Alias screen#1 = screen#10 screen#19 screen#11 
Alias screen#20 = screen#26 screen#31 
Alias screen#12 = screen#2 screen#35 screen#32 screen#27 screen#21 
Alias screen#13 = screen#3 screen#39 screen#38 screen#36 screen#33 screen#28 screen#22 
Alias screen#14 = screen#4 screen#37 screen#34 screen#29 screen#23 
Alias screen#15 = screen#5 screen#16 screen#6 
Alias screen#24 = screen#30 screen#7 
Alias screen#17 = screen#8 screen#18 screen#9 
Successful SSA optimization Pass2AliasElimination
Alias utoa::value#10 = utoa::value#8 
Alias utoa::buffer#11 = utoa::buffer#16 
Alias utoa::digit#2 = utoa::digit#4 
Alias utoa::max_digits#10 = utoa::max_digits#6 
Alias utoa::digit_values#10 = utoa::digit_values#7 
Alias ultoa::value#10 = ultoa::value#7 
Alias ultoa::buffer#10 = ultoa::buffer#15 
Alias ultoa::digit#2 = ultoa::digit#4 
Alias ultoa::max_digits#10 = ultoa::max_digits#6 
Alias ultoa::digit_values#10 = ultoa::digit_values#7 
Alias gotoxy::x#2 = gotoxy::x#3 
Alias printf_slong::format_radix#1 = printf_slong::format_radix#3 
Alias printf_slong::putc#1 = printf_slong::putc#3 
Alias printf_slong::format_min_length#1 = printf_slong::format_min_length#3 
Alias printf_slong::format_justify_left#1 = printf_slong::format_justify_left#3 
Alias printf_slong::format_sign_always#1 = printf_slong::format_sign_always#2 
Alias printf_slong::format_zero_padding#1 = printf_slong::format_zero_padding#3 
Alias printf_slong::format_upper_case#1 = printf_slong::format_upper_case#3 
Alias printf_sint::format_radix#1 = printf_sint::format_radix#3 
Alias printf_sint::putc#1 = printf_sint::putc#3 
Alias printf_sint::format_min_length#1 = printf_sint::format_min_length#3 
Alias printf_sint::format_justify_left#1 = printf_sint::format_justify_left#3 
Alias printf_sint::format_sign_always#1 = printf_sint::format_sign_always#2 
Alias printf_sint::format_zero_padding#1 = printf_sint::format_zero_padding#3 
Alias printf_sint::format_upper_case#1 = printf_sint::format_upper_case#3 
Alias printf_uint::uvalue#1 = printf_uint::uvalue#2 
Alias printf_uint::format_radix#1 = printf_uint::format_radix#3 
Alias printf_uint::putc#1 = printf_uint::putc#3 
Alias printf_uint::format_min_length#1 = printf_uint::format_min_length#3 
Alias printf_uint::format_justify_left#1 = printf_uint::format_justify_left#3 
Alias printf_uint::format_sign_always#1 = printf_uint::format_sign_always#2 
Alias printf_uint::format_zero_padding#1 = printf_uint::format_zero_padding#3 
Alias printf_uint::format_upper_case#1 = printf_uint::format_upper_case#3 
Alias printf_number_buffer::format_min_length#3 = printf_number_buffer::format_min_length#4 
Alias printf_number_buffer::format_justify_left#10 = printf_number_buffer::format_justify_left#6 
Alias printf_number_buffer::format_zero_padding#12 = printf_number_buffer::format_zero_padding#7 
Alias printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#13 
Alias printf_number_buffer::putc#14 = printf_number_buffer::putc#15 
Alias printf_number_buffer::format_upper_case#11 = printf_number_buffer::format_upper_case#12 
Alias printf_number_buffer::buffer_digits#16 = printf_number_buffer::buffer_digits#19 
Alias printf_number_buffer::buffer_sign#12 = printf_number_buffer::buffer_sign#4 
Alias printf_number_buffer::format_zero_padding#10 = printf_number_buffer::format_zero_padding#14 printf_number_buffer::format_zero_padding#19 printf_number_buffer::format_zero_padding#15 printf_number_buffer::format_zero_padding#11 
Alias printf_number_buffer::padding#10 = printf_number_buffer::padding#12 printf_number_buffer::padding#15 printf_number_buffer::padding#13 printf_number_buffer::padding#11 
Alias printf_number_buffer::putc#10 = printf_number_buffer::putc#4 printf_number_buffer::putc#17 printf_number_buffer::putc#11 printf_number_buffer::putc#13 
Alias printf_number_buffer::format_upper_case#10 = printf_number_buffer::format_upper_case#6 printf_number_buffer::format_upper_case#4 printf_number_buffer::format_upper_case#3 
Alias printf_number_buffer::buffer_digits#10 = printf_number_buffer::buffer_digits#11 printf_number_buffer::buffer_digits#14 printf_number_buffer::buffer_digits#5 printf_number_buffer::buffer_digits#4 
Alias printf_number_buffer::format_justify_left#11 = printf_number_buffer::format_justify_left#17 printf_number_buffer::format_justify_left#20 printf_number_buffer::format_justify_left#14 printf_number_buffer::format_justify_left#4 
Alias printf_string::format_justify_left#1 = printf_string::format_justify_left#3 printf_string::format_justify_left#2 
Alias printf_string::putc#1 = printf_string::putc#2 printf_string::putc#10 
Alias printf_string::str#1 = printf_string::str#4 printf_string::str#2 
Alias printf_string::padding#3 = printf_string::padding#4 
Successful SSA optimization Pass2AliasElimination
Alias printf_number_buffer::format_justify_left#10 = printf_number_buffer::format_justify_left#11 
Alias printf_number_buffer::format_zero_padding#10 = printf_number_buffer::format_zero_padding#12 
Alias printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#12 
Alias printf_number_buffer::putc#10 = printf_number_buffer::putc#14 
Alias printf_number_buffer::format_upper_case#10 = printf_number_buffer::format_upper_case#11 
Alias printf_number_buffer::buffer_digits#10 = printf_number_buffer::buffer_digits#16 
Successful SSA optimization Pass2AliasElimination
Identical Phi Values toupper::ch#1 toupper::ch#0
Identical Phi Values strupr::src#0 strupr::str#0
Identical Phi Values strupr::str#2 strupr::src#0
Identical Phi Values utoa::max_digits#10 utoa::max_digits#7
Identical Phi Values utoa::digit_values#10 utoa::digit_values#8
Identical Phi Values ultoa::radix#1 ultoa::radix#0
Identical Phi Values ultoa::value#10 ultoa::value#1
Identical Phi Values ultoa::buffer#10 ultoa::buffer#5
Identical Phi Values ultoa::max_digits#10 ultoa::max_digits#7
Identical Phi Values ultoa::digit_values#10 ultoa::digit_values#8
Identical Phi Values utoa_append::value#5 utoa_append::value#0
Identical Phi Values utoa_append::sub#3 utoa_append::sub#0
Identical Phi Values utoa_append::buffer#3 utoa_append::buffer#0
Identical Phi Values utoa_append::sub#1 utoa_append::sub#3
Identical Phi Values utoa_append::buffer#1 utoa_append::buffer#3
Identical Phi Values ultoa_append::value#5 ultoa_append::value#0
Identical Phi Values ultoa_append::sub#3 ultoa_append::sub#0
Identical Phi Values ultoa_append::buffer#3 ultoa_append::buffer#0
Identical Phi Values ultoa_append::sub#1 ultoa_append::sub#3
Identical Phi Values ultoa_append::buffer#1 ultoa_append::buffer#3
Identical Phi Values gotoxy::y#2 gotoxy::y#1
Identical Phi Values gotoxy::x#2 gotoxy::x#1
Identical Phi Values printf_str::putc#10 printf_str::putc#12
Identical Phi Values printf_padding::length#5 printf_padding::length#6
Identical Phi Values printf_padding::pad#5 printf_padding::pad#7
Identical Phi Values printf_padding::putc#5 printf_padding::putc#7
Identical Phi Values printf_slong::value#2 printf_slong::value#1
Identical Phi Values printf_slong::format_sign_always#1 printf_slong::format_sign_always#0
Identical Phi Values printf_slong::format_radix#1 printf_slong::format_radix#0
Identical Phi Values printf_slong::putc#1 printf_slong::putc#0
Identical Phi Values printf_slong::format_min_length#1 printf_slong::format_min_length#0
Identical Phi Values printf_slong::format_justify_left#1 printf_slong::format_justify_left#0
Identical Phi Values printf_slong::format_zero_padding#1 printf_slong::format_zero_padding#0
Identical Phi Values printf_slong::format_upper_case#1 printf_slong::format_upper_case#0
Identical Phi Values printf_sint::value#2 printf_sint::value#1
Identical Phi Values printf_sint::format_sign_always#1 printf_sint::format_sign_always#0
Identical Phi Values printf_sint::format_radix#1 printf_sint::format_radix#0
Identical Phi Values printf_sint::putc#1 printf_sint::putc#0
Identical Phi Values printf_sint::format_min_length#1 printf_sint::format_min_length#0
Identical Phi Values printf_sint::format_justify_left#1 printf_sint::format_justify_left#0
Identical Phi Values printf_sint::format_zero_padding#1 printf_sint::format_zero_padding#0
Identical Phi Values printf_sint::format_upper_case#1 printf_sint::format_upper_case#0
Identical Phi Values printf_uint::format_sign_always#1 printf_uint::format_sign_always#0
Identical Phi Values printf_uint::uvalue#1 printf_uint::uvalue#0
Identical Phi Values printf_uint::format_radix#1 printf_uint::format_radix#0
Identical Phi Values printf_uint::putc#1 printf_uint::putc#0
Identical Phi Values printf_uint::format_min_length#1 printf_uint::format_min_length#0
Identical Phi Values printf_uint::format_justify_left#1 printf_uint::format_justify_left#0
Identical Phi Values printf_uint::format_zero_padding#1 printf_uint::format_zero_padding#0
Identical Phi Values printf_uint::format_upper_case#1 printf_uint::format_upper_case#0
Identical Phi Values printf_string::format_min_length#1 printf_string::format_min_length#0
Identical Phi Values printf_string::format_justify_left#1 printf_string::format_justify_left#0
Identical Phi Values printf_string::str#1 printf_string::str#0
Identical Phi Values printf_string::putc#1 printf_string::putc#0
Identical Phi Values screen#20 screen#24
Identical Phi Values screen#12 screen#1
Identical Phi Values screen#13 screen#1
Identical Phi Values screen#14 screen#1
Identical Phi Values screen#15 screen#1
Identical Phi Values screen#17 screen#15
Successful SSA optimization Pass2IdenticalPhiElimination
Simple Condition strlen::$0 [4] if(0!=*strlen::str#3) goto strlen::@2
Simple Condition strupr::$1 [19] if(0!=*strupr::src#2) goto strupr::@2
Simple Condition utoa::$0 [31] if(utoa::radix#2==DECIMAL) goto utoa::@1
Simple Condition utoa::$1 [35] if(utoa::radix#2==HEXADECIMAL) goto utoa::@2
Simple Condition utoa::$2 [39] if(utoa::radix#2==OCTAL) goto utoa::@3
Simple Condition utoa::$3 [43] if(utoa::radix#2==BINARY) goto utoa::@4
Simple Condition utoa::$5 [60] if(utoa::digit#2<utoa::$4) goto utoa::@11
Simple Condition ultoa::$0 [85] if(ultoa::radix#0==DECIMAL) goto ultoa::@1
Simple Condition ultoa::$1 [89] if(ultoa::radix#0==HEXADECIMAL) goto ultoa::@2
Simple Condition ultoa::$2 [93] if(ultoa::radix#0==OCTAL) goto ultoa::@3
Simple Condition ultoa::$3 [97] if(ultoa::radix#0==BINARY) goto ultoa::@4
Simple Condition ultoa::$5 [114] if(ultoa::digit#2<ultoa::$4) goto ultoa::@11
Simple Condition utoa_append::$0 [139] if(utoa_append::value#2>=utoa_append::sub#0) goto utoa_append::@2
Simple Condition ultoa_append::$0 [148] if(ultoa_append::value#2>=ultoa_append::sub#0) goto ultoa_append::@2
Simple Condition gotoxy::$1 [155] if(gotoxy::y#1<=$19) goto gotoxy::@1
Simple Condition gotoxy::$3 [157] if(gotoxy::x#1<$28) goto gotoxy::@return
Simple Condition conio_c64_init::$1 [163] if(conio_c64_init::line#0<$19) goto conio_c64_init::@1
Simple Condition printf_str::$2 [176] if(0!=printf_str::c#1) goto printf_str::@2
Simple Condition printf_padding::$0 [185] if(printf_padding::i#2<printf_padding::length#6) goto printf_padding::@2
Simple Condition printf_slong::$0 [194] if(printf_slong::value#1<0) goto printf_slong::@1
Simple Condition printf_slong::$3 [198] if(0==printf_slong::format_sign_always#0) goto printf_slong::@2
Simple Condition printf_sint::$0 [220] if(printf_sint::value#1<0) goto printf_sint::@1
Simple Condition printf_sint::$3 [224] if(0==printf_sint::format_sign_always#0) goto printf_sint::@2
Simple Condition printf_uint::$5 [245] if(0!=printf_uint::format_sign_always#0) goto printf_uint::@1
Simple Condition printf_number_buffer::$0 [268] if(0==printf_number_buffer::format_min_length#3) goto printf_number_buffer::@1
Simple Condition printf_number_buffer::$20 [282] if(0==printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@13
Simple Condition printf_number_buffer::$23 [287] if(printf_number_buffer::padding#1>=0) goto printf_number_buffer::@1
Simple Condition printf_number_buffer::$7 [291] if(0==printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@3
Simple Condition printf_number_buffer::$12 [303] if(0==printf_number_buffer::format_upper_case#10) goto printf_number_buffer::@5
Simple Condition printf_string::$0 [327] if(0==printf_string::format_min_length#0) goto printf_string::@1
Simple Condition printf_string::$12 [341] if(printf_string::padding#1>=0) goto printf_string::@1
Simple Condition snputc::$1 [366] if(__snprintf_size<=__snprintf_capacity) goto snputc::@1
Simple Condition snputc::$3 [368] if(__snprintf_size!=__snprintf_capacity) goto snputc::@2
Simple Condition print::$0 [377] if(0!=*print::msg#5) goto print::@2
Successful SSA optimization Pass2ConditionalJumpSimplification
Rewriting && if()-condition to two if()s [11] toupper::$2 = toupper::$0 && toupper::$1
Rewriting ! if()-condition to reversed if() [65] utoa::$8 = ! utoa::$7
Rewriting || if()-condition to two if()s [64] utoa::$7 = utoa::started#2 || utoa::$6
Rewriting ! if()-condition to reversed if() [119] ultoa::$8 = ! ultoa::$7
Rewriting || if()-condition to two if()s [118] ultoa::$7 = ultoa::started#2 || ultoa::$6
Rewriting ! if()-condition to reversed if() [274] printf_number_buffer::$5 = ! printf_number_buffer::$4
Rewriting && if()-condition to two if()s [273] printf_number_buffer::$4 = printf_number_buffer::$3 && printf_number_buffer::padding#10
Rewriting && if()-condition to two if()s [272] printf_number_buffer::$3 = printf_number_buffer::$1 && printf_number_buffer::$2
Rewriting ! if()-condition to reversed if() [297] printf_number_buffer::$10 = ! printf_number_buffer::$9
Rewriting && if()-condition to two if()s [296] printf_number_buffer::$9 = printf_number_buffer::format_zero_padding#10 && printf_number_buffer::padding#10
Rewriting ! if()-condition to reversed if() [314] printf_number_buffer::$17 = ! printf_number_buffer::$16
Rewriting && if()-condition to two if()s [313] printf_number_buffer::$16 = printf_number_buffer::$15 && printf_number_buffer::padding#10
Rewriting && if()-condition to two if()s [312] printf_number_buffer::$15 = printf_number_buffer::format_justify_left#10 && printf_number_buffer::$14
Rewriting ! if()-condition to reversed if() [331] printf_string::$3 = ! printf_string::$2
Rewriting && if()-condition to two if()s [330] printf_string::$2 = printf_string::$1 && printf_string::padding#3
Rewriting ! if()-condition to reversed if() [347] printf_string::$7 = ! printf_string::$6
Rewriting && if()-condition to two if()s [346] printf_string::$6 = printf_string::format_justify_left#0 && printf_string::padding#3
Successful SSA optimization Pass2ConditionalAndOrRewriting
Warning! Adding boolean cast to non-boolean condition utoa::started#2
Warning! Adding boolean cast to non-boolean condition ultoa::started#2
Warning! Adding boolean cast to non-boolean condition printf_number_buffer::format_zero_padding#10
Warning! Adding boolean cast to non-boolean condition printf_number_buffer::format_justify_left#10
Warning! Adding boolean cast to non-boolean condition printf_string::format_justify_left#0
Warning! Adding boolean cast to non-boolean condition printf_number_buffer::padding#10
Warning! Adding boolean cast to non-boolean condition printf_number_buffer::padding#10
Warning! Adding boolean cast to non-boolean condition printf_number_buffer::padding#10
Warning! Adding boolean cast to non-boolean condition printf_string::padding#3
Warning! Adding boolean cast to non-boolean condition printf_string::padding#3
Constant right-side identified [168] conio_c64_init::line#1 = (unumber)$19-1
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant strlen::len#0 = 0
Constant utoa::max_digits#0 = 0
Constant utoa::digit_values#0 = (unsigned int *) 0
Constant utoa::max_digits#1 = 5
Constant utoa::digit_values#1 = RADIX_DECIMAL_VALUES
Constant utoa::max_digits#2 = 4
Constant utoa::digit_values#2 = RADIX_HEXADECIMAL_VALUES
Constant utoa::max_digits#3 = 6
Constant utoa::digit_values#3 = RADIX_OCTAL_VALUES
Constant utoa::max_digits#4 = $10
Constant utoa::digit_values#4 = RADIX_BINARY_VALUES
Constant utoa::started#0 = 0
Constant utoa::digit#0 = 0
Constant utoa::started#1 = 1
Constant ultoa::max_digits#0 = 0
Constant ultoa::digit_values#0 = (unsigned long *) 0
Constant ultoa::max_digits#1 = $a
Constant ultoa::digit_values#1 = RADIX_DECIMAL_VALUES_LONG
Constant ultoa::max_digits#2 = 8
Constant ultoa::digit_values#2 = RADIX_HEXADECIMAL_VALUES_LONG
Constant ultoa::max_digits#3 = $b
Constant ultoa::digit_values#3 = RADIX_OCTAL_VALUES_LONG
Constant ultoa::max_digits#4 = $20
Constant ultoa::digit_values#4 = RADIX_BINARY_VALUES_LONG
Constant ultoa::started#0 = 0
Constant ultoa::digit#0 = 0
Constant ultoa::started#1 = 1
Constant utoa_append::digit#0 = 0
Constant ultoa_append::digit#0 = 0
Constant gotoxy::y#0 = 0
Constant gotoxy::x#0 = 0
Constant gotoxy::x#1 = 0
Constant conio_c64_init::line#1 = (unumber)$19-1
Constant printf_str::c#0 = 0
Constant printf_padding::i#0 = 0
Constant ultoa::buffer#5 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
Constant printf_number_buffer::buffer_digits#0 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
Constant utoa::buffer#5 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
Constant printf_number_buffer::buffer_digits#1 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
Constant printf_uint::$1 = '+'
Constant printf_uint::$0 = 0
Constant utoa::buffer#6 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
Constant printf_number_buffer::buffer_digits#2 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
Constant printf_number_buffer::padding#0 = 0
Constant printf_number_buffer::padding#2 = 0
Constant printf_padding::pad#0 = ' '
Constant printf_padding::pad#1 = '0'
Constant printf_padding::pad#2 = ' '
Constant printf_string::padding#0 = 0
Constant printf_string::padding#2 = 0
Constant printf_padding::pad#3 = ' '
Constant printf_padding::pad#4 = ' '
Constant snputc::c#1 = 0
Constant snprintf_init::s#0 = BUF
Constant snprintf_init::n#0 = $ffff
Constant printf_str::putc#2 = &snputc
Constant printf_str::s#3 = main::s
Constant print::msg#1 = BUF
Constant snprintf_init::s#1 = BUF
Constant snprintf_init::n#1 = $ffff
Constant printf_str::putc#3 = &snputc
Constant printf_str::s#4 = main::s1
Constant printf_string::putc#0 = &snputc
Constant printf_string::str#0 = main::str
Constant printf_string::format_min_length#0 = 0
Constant printf_string::format_justify_left#0 = 0
Constant printf_str::putc#4 = &snputc
Constant printf_str::s#5 = main::s2
Constant print::msg#2 = BUF
Constant snprintf_init::s#2 = BUF
Constant snprintf_init::n#2 = $ffff
Constant printf_str::putc#5 = &snputc
Constant printf_str::s#6 = main::s3
Constant printf_sint::putc#0 = &snputc
Constant printf_sint::value#1 = 3
Constant printf_sint::format_min_length#0 = 0
Constant printf_sint::format_justify_left#0 = 0
Constant printf_sint::format_sign_always#0 = 0
Constant printf_sint::format_zero_padding#0 = 0
Constant printf_sint::format_upper_case#0 = 0
Constant printf_sint::format_radix#0 = DECIMAL
Constant printf_str::putc#6 = &snputc
Constant printf_str::s#7 = main::s4
Constant printf_uint::putc#0 = &snputc
Constant printf_uint::uvalue#0 = $b
Constant printf_uint::format_min_length#0 = 0
Constant printf_uint::format_justify_left#0 = 0
Constant printf_uint::format_sign_always#0 = 0
Constant printf_uint::format_zero_padding#0 = 0
Constant printf_uint::format_upper_case#0 = 0
Constant printf_uint::format_radix#0 = HEXADECIMAL
Constant printf_str::putc#7 = &snputc
Constant printf_str::s#8 = main::s5
Constant print::msg#3 = BUF
Constant snprintf_init::s#3 = BUF
Constant snprintf_init::n#3 = $ffff
Constant printf_str::putc#8 = &snputc
Constant printf_str::s#9 = main::s6
Constant printf_slong::putc#0 = &snputc
Constant printf_slong::value#1 = $153158e
Constant printf_slong::format_min_length#0 = 0
Constant printf_slong::format_justify_left#0 = 0
Constant printf_slong::format_sign_always#0 = 0
Constant printf_slong::format_zero_padding#0 = 0
Constant printf_slong::format_upper_case#0 = 0
Constant printf_slong::format_radix#0 = DECIMAL
Constant printf_str::putc#9 = &snputc
Constant printf_str::s#10 = main::s7
Constant print::msg#4 = BUF
Constant screen#24 = (char *) 1024
Successful SSA optimization Pass2ConstantIdentification
Constant ultoa::radix#0 = printf_slong::format_radix#0
Constant printf_number_buffer::putc#0 = printf_slong::putc#0
Constant printf_number_buffer::format_min_length#0 = printf_slong::format_min_length#0
Constant printf_number_buffer::format_justify_left#0 = printf_slong::format_justify_left#0
Constant printf_number_buffer::format_sign_always#0 = printf_slong::format_sign_always#0
Constant printf_number_buffer::format_zero_padding#0 = printf_slong::format_zero_padding#0
Constant printf_number_buffer::format_upper_case#0 = printf_slong::format_upper_case#0
Constant printf_number_buffer::format_radix#0 = printf_slong::format_radix#0
Constant utoa::radix#0 = printf_sint::format_radix#0
Constant printf_number_buffer::putc#1 = printf_sint::putc#0
Constant printf_number_buffer::format_min_length#1 = printf_sint::format_min_length#0
Constant printf_number_buffer::format_justify_left#1 = printf_sint::format_justify_left#0
Constant printf_number_buffer::format_sign_always#1 = printf_sint::format_sign_always#0
Constant printf_number_buffer::format_zero_padding#1 = printf_sint::format_zero_padding#0
Constant printf_number_buffer::format_upper_case#1 = printf_sint::format_upper_case#0
Constant printf_number_buffer::format_radix#1 = printf_sint::format_radix#0
Constant utoa::value#2 = printf_uint::uvalue#0
Constant utoa::radix#1 = printf_uint::format_radix#0
Constant printf_number_buffer::putc#2 = printf_uint::putc#0
Constant printf_number_buffer::format_min_length#2 = printf_uint::format_min_length#0
Constant printf_number_buffer::format_justify_left#2 = printf_uint::format_justify_left#0
Constant printf_number_buffer::format_sign_always#2 = printf_uint::format_sign_always#0
Constant printf_number_buffer::format_zero_padding#2 = printf_uint::format_zero_padding#0
Constant printf_number_buffer::format_upper_case#2 = printf_uint::format_upper_case#0
Constant printf_number_buffer::format_radix#2 = printf_uint::format_radix#0
Constant strlen::str#2 = printf_string::str#0
Constant printf_string::$13 = (signed char)printf_string::format_min_length#0
Constant printf_str::putc#1 = printf_string::putc#0
Constant printf_str::s#2 = printf_string::str#0
Constant printf_padding::putc#3 = printf_string::putc#0
Constant printf_padding::putc#4 = printf_string::putc#0
Successful SSA optimization Pass2ConstantIdentification
if() condition always true - replacing block destination [85] if(ultoa::radix#0==DECIMAL) goto ultoa::@1
if() condition always false - eliminating [89] if(ultoa::radix#0==HEXADECIMAL) goto ultoa::@2
if() condition always false - eliminating [93] if(ultoa::radix#0==OCTAL) goto ultoa::@3
if() condition always false - eliminating [97] if(ultoa::radix#0==BINARY) goto ultoa::@4
if() condition always true - replacing block destination [157] if(gotoxy::x#1<$28) goto gotoxy::@return
if() condition always false - eliminating [194] if(printf_slong::value#1<0) goto printf_slong::@1
if() condition always true - replacing block destination [198] if(0==printf_slong::format_sign_always#0) goto printf_slong::@2
if() condition always false - eliminating [220] if(printf_sint::value#1<0) goto printf_sint::@1
if() condition always true - replacing block destination [224] if(0==printf_sint::format_sign_always#0) goto printf_sint::@2
if() condition always false - eliminating [245] if(0!=printf_uint::format_sign_always#0) goto printf_uint::@1
if() condition always true - replacing block destination [327] if(0==printf_string::format_min_length#0) goto printf_string::@1
Successful SSA optimization Pass2ConstantIfs
Consolidated constant strings into main::s1
Consolidated constant strings into main::s5
Successful SSA optimization Pass2ConstantStringConsolidation
Rewriting conditional comparison [155] if(gotoxy::y#1<=$19) goto gotoxy::@1
Simplifying constant evaluating to zero (signed char)printf_string::format_min_length#0 in 
Successful SSA optimization PassNSimplifyConstantZero
Simplifying expression containing zero (char *)&printf_buffer in [192] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) = 0
Simplifying expression containing zero (char *)&printf_buffer in [196] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) = '-'
Simplifying expression containing zero (char *)&printf_buffer in [199] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) = '+'
Simplifying expression containing zero (char *)&printf_buffer in [207] printf_number_buffer::buffer_sign#0 = *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN)
Simplifying expression containing zero (char *)&printf_buffer in [218] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) = 0
Simplifying expression containing zero (char *)&printf_buffer in [222] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) = '-'
Simplifying expression containing zero (char *)&printf_buffer in [225] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) = '+'
Simplifying expression containing zero (char *)&printf_buffer in [233] printf_number_buffer::buffer_sign#1 = *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN)
Simplifying expression containing zero (char *)&printf_buffer in [249] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) = printf_uint::$2
Simplifying expression containing zero (char *)&printf_buffer in [255] printf_number_buffer::buffer_sign#2 = *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN)
Simplifying expression containing zero printf_string::len#0 in [339] printf_string::padding#1 = printf_string::$13 - printf_string::len#0
Successful SSA optimization PassNSimplifyExpressionWithZero
Removing call to empty/unused procedure [483] call conio_c64_init
Successful SSA optimization PassNEliminateUnusedConstructors
Eliminating variable ultoa::buffer#0 from unused block ultoa::@9
Eliminating variable ultoa::buffer#1 from unused block ultoa::@9
Eliminating variable ultoa::buffer#2 from unused block ultoa::@9
Eliminating variable conio_c64_init::line#0 from unused block conio_c64_init
Eliminating variable conio_c64_init::line#2 from unused block conio_c64_init::@1
Eliminating variable gotoxy::y#1 from unused block conio_c64_init::@1
Eliminating variable printf_slong::value#0 from unused block printf_slong::@1
Eliminating variable printf_sint::value#0 from unused block printf_sint::@1
Eliminating variable strlen::return#3 from unused block printf_string::@3
Eliminating variable printf_string::$9 from unused block printf_string::@7
Eliminating variable printf_string::len#0 from unused block printf_string::@7
Eliminating variable printf_string::padding#1 from unused block printf_string::@7
Removing unused block ultoa::@6
Removing PHI-reference to removed block (ultoa::@2) in block ultoa::@5
Removing PHI-reference to removed block (ultoa::@2) in block ultoa::@5
Removing unused block ultoa::@2
Removing unused block ultoa::@7
Removing PHI-reference to removed block (ultoa::@3) in block ultoa::@5
Removing PHI-reference to removed block (ultoa::@3) in block ultoa::@5
Removing unused block ultoa::@3
Removing unused block ultoa::@8
Removing PHI-reference to removed block (ultoa::@4) in block ultoa::@5
Removing PHI-reference to removed block (ultoa::@4) in block ultoa::@5
Removing unused block ultoa::@4
Removing unused block ultoa::@9
Removing unused procedure gotoxy
Removing unused procedure block gotoxy
Removing unused procedure block gotoxy::@1
Removing unused procedure block gotoxy::@2
Removing unused procedure block gotoxy::@3
Removing unused procedure block gotoxy::@return
Removing unused procedure conio_c64_init
Removing unused procedure block conio_c64_init
Removing PHI-reference to removed block (conio_c64_init) in block conio_c64_init::@1
Removing unused procedure block conio_c64_init::@1
Removing unused procedure block conio_c64_init::@3
Removing unused procedure block conio_c64_init::@2
Removing unused procedure block conio_c64_init::@return
Removing PHI-reference to removed block (printf_slong::@1) in block printf_slong::@2
Removing unused block printf_slong::@1
Removing PHI-reference to removed block (printf_slong::@4) in block printf_slong::@2
Removing unused block printf_slong::@4
Removing PHI-reference to removed block (printf_sint::@1) in block printf_sint::@2
Removing unused block printf_sint::@1
Removing PHI-reference to removed block (printf_sint::@4) in block printf_sint::@2
Removing unused block printf_sint::@4
Removing PHI-reference to removed block (printf_uint::@1) in block printf_uint::@3
Removing unused block printf_uint::@1
Removing PHI-reference to removed block (printf_string::@3) in block strlen
Removing unused block printf_string::@3
Removing PHI-reference to removed block (printf_string::@7) in block printf_string::@1
Removing unused block printf_string::@7
Removing PHI-reference to removed block (printf_string::@4) in block printf_string::@1
Removing unused block printf_string::@4
Successful SSA optimization Pass2EliminateUnusedBlocks
Eliminating unused variable strupr::return#2 and assignment [168] strupr::return#2 = strupr::str#0
Eliminating unused constant strlen::str#2
Eliminating unused constant utoa::max_digits#0
Eliminating unused constant utoa::digit_values#0
Eliminating unused constant ultoa::max_digits#0
Eliminating unused constant ultoa::digit_values#0
Eliminating unused constant ultoa::max_digits#2
Eliminating unused constant ultoa::digit_values#2
Eliminating unused constant ultoa::max_digits#3
Eliminating unused constant ultoa::digit_values#3
Eliminating unused constant ultoa::max_digits#4
Eliminating unused constant ultoa::digit_values#4
Eliminating unused constant ultoa::radix#0
Eliminating unused constant printf_str::c#0
Eliminating unused constant printf_uint::$1
Eliminating unused constant printf_number_buffer::format_sign_always#0
Eliminating unused constant printf_number_buffer::format_radix#0
Eliminating unused constant printf_number_buffer::format_sign_always#1
Eliminating unused constant printf_number_buffer::format_radix#1
Eliminating unused constant printf_number_buffer::format_sign_always#2
Eliminating unused constant printf_number_buffer::format_radix#2
Eliminating unused constant printf_string::padding#2
Eliminating unused constant printf_string::format_min_length#0
Eliminating unused constant printf_string::$13
Eliminating unused constant OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN
Successful SSA optimization PassNEliminateUnusedVars
Eliminating unused constant RADIX_BINARY_VALUES_LONG
Eliminating unused constant RADIX_OCTAL_VALUES_LONG
Eliminating unused constant RADIX_HEXADECIMAL_VALUES_LONG
Eliminating unused constant printf_slong::format_sign_always#0
Eliminating unused constant printf_slong::format_radix#0
Eliminating unused constant printf_sint::format_sign_always#0
Eliminating unused constant printf_uint::format_sign_always#0
Successful SSA optimization PassNEliminateUnusedVars
Adding number conversion cast (unumber) 0 in utoa::$12 = 0 != utoa::started#2
Adding number conversion cast (unumber) 0 in ultoa::$12 = 0 != ultoa::started#2
Adding number conversion cast (unumber) 0 in printf_number_buffer::$33 = 0 != printf_number_buffer::format_zero_padding#10
Adding number conversion cast (unumber) 0 in printf_number_buffer::$34 = 0 != printf_number_buffer::format_justify_left#10
Adding number conversion cast (unumber) 0 in printf_string::$16 = 0 != printf_string::format_justify_left#0
Adding number conversion cast (snumber) 0 in printf_number_buffer::$35 = 0 != printf_number_buffer::padding#10
Adding number conversion cast (snumber) 0 in printf_number_buffer::$36 = 0 != printf_number_buffer::padding#10
Adding number conversion cast (snumber) 0 in printf_number_buffer::$37 = 0 != printf_number_buffer::padding#10
Adding number conversion cast (snumber) 0 in printf_string::$17 = 0 != printf_string::padding#3
Adding number conversion cast (snumber) 0 in printf_string::$18 = 0 != printf_string::padding#3
Successful SSA optimization PassNAddNumberTypeConversions
Simplifying constant integer cast 0
Simplifying constant integer cast 0
Simplifying constant integer cast 0
Simplifying constant integer cast 0
Simplifying constant integer cast 0
Simplifying constant integer cast 0
Simplifying constant integer cast 0
Simplifying constant integer cast 0
Simplifying constant integer cast 0
Simplifying constant integer cast 0
Successful SSA optimization PassNCastSimplification
Finalized unsigned number type (char) 0
Finalized unsigned number type (char) 0
Finalized unsigned number type (char) 0
Finalized unsigned number type (char) 0
Finalized unsigned number type (char) 0
Finalized signed number type (signed char) 0
Finalized signed number type (signed char) 0
Finalized signed number type (signed char) 0
Finalized signed number type (signed char) 0
Finalized signed number type (signed char) 0
Successful SSA optimization PassNFinalizeNumberTypeConversions
Identical Phi Values strlen::str#5 strlen::str#1
Identical Phi Values ultoa::max_digits#7 ultoa::max_digits#1
Identical Phi Values ultoa::digit_values#8 ultoa::digit_values#1
Identical Phi Values printf_slong::value#4 printf_slong::value#1
Identical Phi Values printf_sint::value#4 printf_sint::value#1
Identical Phi Values printf_uint::$2 printf_uint::$0
Identical Phi Values printf_string::padding#3 printf_string::padding#0
Successful SSA optimization Pass2IdenticalPhiElimination
Simple Condition toupper::$0 [8] if(toupper::ch#0>='a') goto toupper::@3
Simple Condition utoa::$12 [42] if(0!=utoa::started#2) goto utoa::@14
Simple Condition ultoa::$12 [65] if(0!=ultoa::started#2) goto ultoa::@14
Simple Condition printf_number_buffer::$1 [135] if(0==printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@22
Simple Condition printf_number_buffer::$33 [152] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@23
Simple Condition printf_number_buffer::$34 [165] if(0!=printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@25
Simple Condition printf_string::$1 [174] if(0==printf_string::format_justify_left#0) goto printf_string::@11
Simple Condition printf_string::$16 [177] if(0!=printf_string::format_justify_left#0) goto printf_string::@12
Simple Condition toupper::$1 [244] if(toupper::ch#0<='z') goto toupper::@1
Simple Condition utoa::$6 [245] if(utoa::value#3>=utoa::digit_value#0) goto utoa::@14
Simple Condition ultoa::$6 [246] if(ultoa::value#2>=ultoa::digit_value#0) goto ultoa::@14
Simple Condition printf_number_buffer::$35 [248] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@8
Simple Condition printf_number_buffer::$2 [249] if(0==printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@21
Simple Condition printf_number_buffer::$36 [251] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@10
Simple Condition printf_number_buffer::$37 [253] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@12
Simple Condition printf_number_buffer::$14 [254] if(0==printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@24
Simple Condition printf_string::$17 [256] if(0!=printf_string::padding#0) goto printf_string::@5
Simple Condition printf_string::$18 [258] if(0!=printf_string::padding#0) goto printf_string::@6
Successful SSA optimization Pass2ConditionalJumpSimplification
Negating conditional jump and destination [8] if(toupper::ch#0<'a') goto toupper::@2
Negating conditional jump and destination [135] if(0!=printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@2
Negating conditional jump and destination [152] if(0==printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@4
Negating conditional jump and destination [165] if(0==printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@return
Negating conditional jump and destination [174] if(0!=printf_string::format_justify_left#0) goto printf_string::@2
Negating conditional jump and destination [177] if(0==printf_string::format_justify_left#0) goto printf_string::@return
Negating conditional jump and destination [249] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@2
Negating conditional jump and destination [254] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@return
Successful SSA optimization Pass2ConditionalJumpSequenceImprovement
Constant right-side identified [59] ultoa::$4 = ultoa::max_digits#1 - 1
Constant right-side identified [110] printf_slong::uvalue#0 = (unsigned long)printf_slong::value#1
Constant right-side identified [118] printf_sint::uvalue#0 = (unsigned int)printf_sint::value#1
Constant right-side identified [178] printf_padding::length#3 = (char)printf_string::padding#0
Constant right-side identified [180] printf_padding::length#4 = (char)printf_string::padding#0
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant ultoa::$4 = ultoa::max_digits#1-1
Constant printf_slong::uvalue#0 = (unsigned long)printf_slong::value#1
Constant printf_sint::uvalue#0 = (unsigned int)printf_sint::value#1
Constant printf_padding::length#3 = (char)printf_string::padding#0
Constant printf_padding::length#4 = (char)printf_string::padding#0
Successful SSA optimization Pass2ConstantIdentification
Constant ultoa::value#1 = printf_slong::uvalue#0
Constant utoa::value#1 = printf_sint::uvalue#0
Successful SSA optimization Pass2ConstantIdentification
if() condition always false - eliminating [174] if(0!=printf_string::format_justify_left#0) goto printf_string::@2
if() condition always true - replacing block destination [177] if(0==printf_string::format_justify_left#0) goto printf_string::@return
if() condition always false - eliminating [256] if(0!=printf_string::padding#0) goto printf_string::@5
if() condition always false - eliminating [258] if(0!=printf_string::padding#0) goto printf_string::@6
Successful SSA optimization Pass2ConstantIfs
Simplifying constant evaluating to zero (char)printf_string::padding#0 in 
Simplifying constant evaluating to zero (char)printf_string::padding#0 in 
Successful SSA optimization PassNSimplifyConstantZero
Removing PHI-reference to removed block (printf_string::@5) in block printf_padding
Removing PHI-reference to removed block (printf_string::@5) in block printf_padding
Removing PHI-reference to removed block (printf_string::@5) in block printf_padding
Removing unused block printf_string::@5
Removing unused block printf_string::@9
Removing PHI-reference to removed block (printf_string::@6) in block printf_padding
Removing PHI-reference to removed block (printf_string::@6) in block printf_padding
Removing PHI-reference to removed block (printf_string::@6) in block printf_padding
Removing unused block printf_string::@6
Removing unused block printf_string::@10
Removing unused block printf_string::@12
Successful SSA optimization Pass2EliminateUnusedBlocks
Eliminating unused constant printf_padding::pad#3
Eliminating unused constant printf_padding::pad#4
Eliminating unused constant printf_padding::putc#3
Eliminating unused constant printf_padding::putc#4
Eliminating unused constant printf_padding::length#3
Eliminating unused constant printf_padding::length#4
Eliminating unused constant printf_string::padding#0
Eliminating unused constant printf_string::format_justify_left#0
Successful SSA optimization PassNEliminateUnusedVars
Inlining Noop Cast [125] printf_number_buffer::$25 = (signed char)printf_number_buffer::format_min_length#3 keeping printf_number_buffer::format_min_length#3
Successful SSA optimization Pass2NopCastInlining
Rewriting multiplication to use shift [35] utoa::$10 = utoa::digit#2 * SIZEOF_UNSIGNED_INT
Rewriting multiplication to use shift [54] ultoa::$10 = ultoa::digit#2 * SIZEOF_UNSIGNED_LONG
Successful SSA optimization Pass2MultiplyToShiftRewriting
Inlining constant with var siblings strlen::len#0
Inlining constant with var siblings utoa::max_digits#1
Inlining constant with var siblings utoa::digit_values#1
Inlining constant with var siblings utoa::max_digits#2
Inlining constant with var siblings utoa::digit_values#2
Inlining constant with var siblings utoa::max_digits#3
Inlining constant with var siblings utoa::digit_values#3
Inlining constant with var siblings utoa::max_digits#4
Inlining constant with var siblings utoa::digit_values#4
Inlining constant with var siblings utoa::started#0
Inlining constant with var siblings utoa::digit#0
Inlining constant with var siblings utoa::started#1
Inlining constant with var siblings utoa::buffer#5
Inlining constant with var siblings utoa::buffer#6
Inlining constant with var siblings utoa::radix#0
Inlining constant with var siblings utoa::value#2
Inlining constant with var siblings utoa::radix#1
Inlining constant with var siblings utoa::value#1
Inlining constant with var siblings ultoa::started#0
Inlining constant with var siblings ultoa::digit#0
Inlining constant with var siblings ultoa::started#1
Inlining constant with var siblings ultoa::buffer#5
Inlining constant with var siblings ultoa::value#1
Inlining constant with var siblings utoa_append::digit#0
Inlining constant with var siblings ultoa_append::digit#0
Inlining constant with var siblings printf_str::putc#2
Inlining constant with var siblings printf_str::s#3
Inlining constant with var siblings printf_str::putc#3
Inlining constant with var siblings printf_str::s#4
Inlining constant with var siblings printf_str::putc#4
Inlining constant with var siblings printf_str::s#5
Inlining constant with var siblings printf_str::putc#5
Inlining constant with var siblings printf_str::s#6
Inlining constant with var siblings printf_str::putc#6
Inlining constant with var siblings printf_str::s#7
Inlining constant with var siblings printf_str::putc#7
Inlining constant with var siblings printf_str::s#8
Inlining constant with var siblings printf_str::putc#8
Inlining constant with var siblings printf_str::s#9
Inlining constant with var siblings printf_str::putc#9
Inlining constant with var siblings printf_str::s#10
Inlining constant with var siblings printf_str::putc#1
Inlining constant with var siblings printf_str::s#2
Inlining constant with var siblings printf_padding::i#0
Inlining constant with var siblings printf_padding::pad#0
Inlining constant with var siblings printf_padding::pad#1
Inlining constant with var siblings printf_padding::pad#2
Inlining constant with var siblings printf_number_buffer::buffer_digits#0
Inlining constant with var siblings printf_number_buffer::buffer_digits#1
Inlining constant with var siblings printf_number_buffer::buffer_digits#2
Inlining constant with var siblings printf_number_buffer::padding#0
Inlining constant with var siblings printf_number_buffer::padding#2
Inlining constant with var siblings printf_number_buffer::putc#0
Inlining constant with var siblings printf_number_buffer::format_min_length#0
Inlining constant with var siblings printf_number_buffer::format_justify_left#0
Inlining constant with var siblings printf_number_buffer::format_zero_padding#0
Inlining constant with var siblings printf_number_buffer::format_upper_case#0
Inlining constant with var siblings printf_number_buffer::putc#1
Inlining constant with var siblings printf_number_buffer::format_min_length#1
Inlining constant with var siblings printf_number_buffer::format_justify_left#1
Inlining constant with var siblings printf_number_buffer::format_zero_padding#1
Inlining constant with var siblings printf_number_buffer::format_upper_case#1
Inlining constant with var siblings printf_number_buffer::putc#2
Inlining constant with var siblings printf_number_buffer::format_min_length#2
Inlining constant with var siblings printf_number_buffer::format_justify_left#2
Inlining constant with var siblings printf_number_buffer::format_zero_padding#2
Inlining constant with var siblings printf_number_buffer::format_upper_case#2
Inlining constant with var siblings snprintf_init::s#0
Inlining constant with var siblings snprintf_init::n#0
Inlining constant with var siblings snprintf_init::s#1
Inlining constant with var siblings snprintf_init::n#1
Inlining constant with var siblings snprintf_init::s#2
Inlining constant with var siblings snprintf_init::n#2
Inlining constant with var siblings snprintf_init::s#3
Inlining constant with var siblings snprintf_init::n#3
Inlining constant with var siblings snputc::c#1
Inlining constant with var siblings print::msg#1
Inlining constant with var siblings print::msg#2
Inlining constant with var siblings print::msg#3
Inlining constant with var siblings print::msg#4
Inlining constant with var siblings screen#24
Constant inlined utoa::digit_values#1 = RADIX_DECIMAL_VALUES
Constant inlined utoa::radix#0 = DECIMAL
Constant inlined printf_number_buffer::format_justify_left#0 = printf_slong::format_justify_left#0
Constant inlined printf_number_buffer::buffer_digits#0 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
Constant inlined utoa::radix#1 = HEXADECIMAL
Constant inlined ultoa::value#1 = printf_slong::uvalue#0
Constant inlined printf_number_buffer::buffer_digits#1 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
Constant inlined utoa::digit_values#4 = RADIX_BINARY_VALUES
Constant inlined printf_number_buffer::format_justify_left#2 = printf_uint::format_justify_left#0
Constant inlined printf_number_buffer::buffer_digits#2 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
Constant inlined printf_number_buffer::format_justify_left#1 = printf_sint::format_justify_left#0
Constant inlined utoa::digit_values#2 = RADIX_HEXADECIMAL_VALUES
Constant inlined utoa::digit_values#3 = RADIX_OCTAL_VALUES
Constant inlined printf_str::putc#1 = printf_string::putc#0
Constant inlined printf_str::putc#2 = &snputc
Constant inlined printf_str::putc#3 = &snputc
Constant inlined strlen::len#0 = 0
Constant inlined printf_str::s#9 = main::s6
Constant inlined printf_str::putc#8 = &snputc
Constant inlined printf_str::putc#9 = &snputc
Constant inlined printf_str::s#7 = main::s4
Constant inlined printf_str::s#8 = main::s5
Constant inlined printf_str::s#5 = main::s2
Constant inlined printf_str::putc#4 = &snputc
Constant inlined printf_str::s#6 = main::s1
Constant inlined printf_str::putc#5 = &snputc
Constant inlined printf_str::s#3 = main::s
Constant inlined printf_str::putc#6 = &snputc
Constant inlined snputc::c#1 = 0
Constant inlined printf_str::s#4 = main::s1
Constant inlined printf_str::putc#7 = &snputc
Constant inlined printf_str::s#2 = main::str
Constant inlined printf_number_buffer::padding#2 = 0
Constant inlined printf_sint::format_radix#0 = DECIMAL
Constant inlined ultoa::started#1 = 1
Constant inlined printf_str::s#10 = main::s5
Constant inlined snprintf_init::n#0 = $ffff
Constant inlined snprintf_init::n#1 = $ffff
Constant inlined utoa::buffer#6 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
Constant inlined snprintf_init::n#2 = $ffff
Constant inlined snprintf_init::n#3 = $ffff
Constant inlined utoa::buffer#5 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
Constant inlined ultoa::digit#0 = 0
Constant inlined utoa::max_digits#1 = 5
Constant inlined printf_uint::format_radix#0 = HEXADECIMAL
Constant inlined utoa::max_digits#2 = 4
Constant inlined utoa::max_digits#3 = 6
Constant inlined utoa::max_digits#4 = $10
Constant inlined printf_number_buffer::padding#0 = 0
Constant inlined utoa_append::digit#0 = 0
Constant inlined screen#24 = (char *) 1024
Constant inlined print::msg#4 = BUF
Constant inlined printf_number_buffer::format_upper_case#2 = printf_uint::format_upper_case#0
Constant inlined print::msg#3 = BUF
Constant inlined ultoa::buffer#5 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
Constant inlined printf_number_buffer::format_upper_case#1 = printf_sint::format_upper_case#0
Constant inlined printf_string::str#0 = main::str
Constant inlined print::msg#2 = BUF
Constant inlined ultoa::started#0 = 0
Constant inlined printf_number_buffer::format_upper_case#0 = printf_slong::format_upper_case#0
Constant inlined print::msg#1 = BUF
Constant inlined utoa::digit#0 = 0
Constant inlined printf_number_buffer::format_min_length#0 = printf_slong::format_min_length#0
Constant inlined printf_number_buffer::format_zero_padding#0 = printf_slong::format_zero_padding#0
Constant inlined printf_number_buffer::format_min_length#1 = printf_sint::format_min_length#0
Constant inlined printf_number_buffer::format_min_length#2 = printf_uint::format_min_length#0
Constant inlined printf_padding::pad#0 = ' '
Constant inlined printf_number_buffer::format_zero_padding#1 = printf_sint::format_zero_padding#0
Constant inlined printf_padding::i#0 = 0
Constant inlined printf_padding::pad#1 = '0'
Constant inlined printf_number_buffer::format_zero_padding#2 = printf_uint::format_zero_padding#0
Constant inlined printf_padding::pad#2 = ' '
Constant inlined printf_uint::$0 = 0
Constant inlined printf_number_buffer::putc#1 = printf_sint::putc#0
Constant inlined printf_number_buffer::putc#2 = printf_uint::putc#0
Constant inlined utoa::started#1 = 1
Constant inlined utoa::started#0 = 0
Constant inlined printf_number_buffer::putc#0 = printf_slong::putc#0
Constant inlined main::s3 = main::s1
Constant inlined ultoa::$4 = ultoa::max_digits#1-1
Constant inlined main::s7 = main::s5
Constant inlined snprintf_init::s#0 = BUF
Constant inlined snprintf_init::s#1 = BUF
Constant inlined snprintf_init::s#2 = BUF
Constant inlined snprintf_init::s#3 = BUF
Constant inlined ultoa_append::digit#0 = 0
Constant inlined ultoa::digit_values#1 = RADIX_DECIMAL_VALUES_LONG
Constant inlined utoa::value#2 = printf_uint::uvalue#0
Constant inlined utoa::value#1 = printf_sint::uvalue#0
Successful SSA optimization Pass2ConstantInlining
Identical Phi Values utoa::buffer#11 (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
Identical Phi Values printf_number_buffer::buffer_digits#10 (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
Identical Phi Values snprintf_init::n#4 $ffff
Identical Phi Values snprintf_init::s#4 BUF
Identical Phi Values print::msg#7 BUF
Successful SSA optimization Pass2IdenticalPhiElimination
Constant right-side identified [24] utoa::buffer#0 = ++ (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant utoa::buffer#0 = ++(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
Constant strlen::str#1 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
Constant printf_str::s#1 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
Constant strupr::str#0 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
Successful SSA optimization Pass2ConstantIdentification
Eliminating unused constant SIZEOF_UNSIGNED_INT
Eliminating unused constant SIZEOF_UNSIGNED_LONG
Successful SSA optimization PassNEliminateUnusedVars
Inlining constant with var siblings strlen::str#1
Inlining constant with var siblings utoa::buffer#0
Inlining constant with var siblings printf_str::s#1
Constant inlined utoa::buffer#0 = ++(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
Constant inlined printf_str::s#1 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
Constant inlined strlen::str#1 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
Successful SSA optimization Pass2ConstantInlining
Simplifying constant integer increment ++(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
Simplifying constant integer increment ++(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
Successful SSA optimization Pass2ConstantSimplification
Adding number conversion cast (unumber) 1 in [24] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1) = 'r'
Adding number conversion cast (unumber) 1 in [25] utoa::buffer#1 = ++ (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1
Successful SSA optimization PassNAddNumberTypeConversions
Simplifying constant integer cast 1
Simplifying constant integer cast 1
Successful SSA optimization PassNCastSimplification
Finalized unsigned number type (char) 1
Finalized unsigned number type (char) 1
Successful SSA optimization PassNFinalizeNumberTypeConversions
Constant right-side identified [25] utoa::buffer#1 = ++ (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant utoa::buffer#1 = ++(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1
Successful SSA optimization Pass2ConstantIdentification
Inlining constant with var siblings utoa::buffer#1
Constant inlined utoa::buffer#1 = ++(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1
Successful SSA optimization Pass2ConstantInlining
Simplifying constant integer increment ++(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1
Simplifying constant integer increment ++(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1
Successful SSA optimization Pass2ConstantSimplification
Constant right-side identified [26] utoa::buffer#2 = ++ (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+2
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant utoa::buffer#2 = ++(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+2
Successful SSA optimization Pass2ConstantIdentification
Inlining constant with var siblings utoa::buffer#2
Constant inlined utoa::buffer#2 = ++(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+2
Successful SSA optimization Pass2ConstantInlining
Simplifying constant integer increment ++(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+2
Successful SSA optimization Pass2ConstantSimplification
Finalized unsigned number type (char) 2
Finalized unsigned number type (char) 8
Finalized unsigned number type (char) $a
Finalized unsigned number type (char) $10
Finalized unsigned number type (char) 2
Finalized unsigned number type (char) 8
Finalized unsigned number type (char) $a
Finalized unsigned number type (char) $10
Finalized unsigned number type (char) $b
Finalized unsigned number type (char) $b
Finalized unsigned number type (char) $14
Finalized unsigned number type (char) $14
Finalized unsigned number type (char) 1
Finalized unsigned number type (char) 1
Finalized unsigned number type (char) 1
Finalized unsigned number type (char) 1
Finalized unsigned number type (char) 1
Finalized unsigned number type (char) 1
Finalized unsigned number type (char) 1
Finalized unsigned number type (char) 1
Successful SSA optimization PassNFinalizeNumberTypeConversions
Added new block during phi lifting utoa::@17(between utoa::@16 and utoa::@13)
Added new block during phi lifting ultoa::@17(between ultoa::@16 and ultoa::@13)
Added new block during phi lifting printf_number_buffer::@26(between printf_number_buffer::@13 and printf_number_buffer::@1)
Added new block during phi lifting printf_number_buffer::@27(between printf_number_buffer::@15 and printf_number_buffer::@13)
Added new block during phi lifting snputc::@4(between snputc::@1 and snputc::@2)
Adding NOP phi() at start of __start
Adding NOP phi() at start of __start::@2
Adding NOP phi() at start of __start::@1
Adding NOP phi() at start of __start::@3
Adding NOP phi() at start of snputc::@3
Adding NOP phi() at start of main
Adding NOP phi() at start of main::@1
Adding NOP phi() at start of main::@3
Adding NOP phi() at start of main::@4
Adding NOP phi() at start of main::@5
Adding NOP phi() at start of main::@8
Adding NOP phi() at start of main::@9
Adding NOP phi() at start of main::@10
Adding NOP phi() at start of main::@11
Adding NOP phi() at start of main::@12
Adding NOP phi() at start of main::@13
Adding NOP phi() at start of main::@15
Adding NOP phi() at start of main::@16
Adding NOP phi() at start of main::@17
Adding NOP phi() at start of main::@18
Adding NOP phi() at start of main::@20
Adding NOP phi() at start of printf_string
Adding NOP phi() at start of printf_string::@1
Adding NOP phi() at start of printf_string::@11
Adding NOP phi() at start of printf_string::@2
Adding NOP phi() at start of printf_string::@8
Adding NOP phi() at start of printf_sint::@3
Adding NOP phi() at start of printf_sint::@2
Adding NOP phi() at start of printf_sint::@6
Adding NOP phi() at start of printf_uint
Adding NOP phi() at start of printf_uint::@2
Adding NOP phi() at start of printf_uint::@5
Adding NOP phi() at start of printf_slong::@3
Adding NOP phi() at start of printf_slong::@2
Adding NOP phi() at start of printf_slong::@6
Adding NOP phi() at start of utoa::@4
Adding NOP phi() at start of utoa::@3
Adding NOP phi() at start of utoa::@2
Adding NOP phi() at start of utoa::@1
Adding NOP phi() at start of printf_number_buffer::@6
Adding NOP phi() at start of printf_number_buffer::@14
Adding NOP phi() at start of printf_number_buffer::@11
Adding NOP phi() at start of printf_number_buffer::@19
Adding NOP phi() at start of printf_number_buffer::@20
Adding NOP phi() at start of printf_number_buffer::@17
Adding NOP phi() at start of printf_number_buffer::@16
Adding NOP phi() at start of ultoa
Adding NOP phi() at start of ultoa::@1
Adding NOP phi() at start of ultoa::@5
Adding NOP phi() at start of strlen
Adding NOP phi() at start of strlen::@3
Adding NOP phi() at start of strupr
Adding NOP phi() at start of strupr::@3
CALL GRAPH
Calls in [__start] to main:6 
Calls in [main] to snprintf_init:20 printf_str:22 snputc:24 print:26 snprintf_init:28 printf_str:30 printf_string:32 snputc:34 printf_str:36 snputc:39 print:41 snprintf_init:43 printf_str:45 printf_sint:47 printf_str:49 printf_uint:51 printf_str:53 snputc:56 print:58 snprintf_init:60 printf_str:62 printf_slong:64 printf_str:66 snputc:69 print:71 
Calls in [printf_str] to null:86 
Calls in [printf_string] to printf_str:103 
Calls in [printf_sint] to utoa:109 printf_number_buffer:112 
Calls in [printf_uint] to utoa:118 printf_number_buffer:121 
Calls in [printf_slong] to ultoa:127 printf_number_buffer:130 
Calls in [utoa] to utoa_append:169 
Calls in [printf_number_buffer] to strlen:181 null:198 strupr:204 printf_str:208 printf_padding:217 printf_padding:223 printf_padding:229 
Calls in [ultoa] to ultoa_append:259 
Calls in [strupr] to toupper:289 
Calls in [printf_padding] to null:300 

Created 45 initial phi equivalence classes
Coalesced [18] snputc::c#4 = snputc::c#0
Coalesced [38] screen#42 = screen#1
Coalesced (already) [55] screen#40 = screen#1
Coalesced (already) [68] screen#41 = screen#1
Coalesced [79] printf_str::s#14 = printf_str::s#12
Coalesced [88] printf_str::s#15 = printf_str::s#0
Coalesced (already) [90] screen#43 = screen#25
Coalesced [97] print::msg#8 = print::msg#0
Coalesced [98] screen#44 = screen#0
Coalesced [111] printf_number_buffer::buffer_sign#14 = printf_number_buffer::buffer_sign#1
Coalesced [120] printf_number_buffer::buffer_sign#16 = printf_number_buffer::buffer_sign#2
Coalesced [129] printf_number_buffer::buffer_sign#15 = printf_number_buffer::buffer_sign#0
Coalesced [145] utoa::value#18 = utoa::value#10
Coalesced [157] utoa::value#19 = utoa::value#3
Coalesced [158] utoa::started#6 = utoa::started#2
Coalesced [159] utoa::buffer#24 = utoa::buffer#10
Coalesced [162] utoa::digit#7 = utoa::digit#1
Coalesced (already) [163] utoa::value#17 = utoa::value#7
Coalesced (already) [164] utoa::started#5 = utoa::started#4
Coalesced (already) [165] utoa::buffer#23 = utoa::buffer#15
Coalesced [173] utoa::value#20 = utoa::value#0
Coalesced [174] utoa::buffer#25 = utoa::buffer#4
Coalesced [187] printf_number_buffer::len#5 = printf_number_buffer::len#1
Coalesced [207] printf_str::putc#13 = printf_str::putc#0
Coalesced [215] printf_padding::length#10 = printf_padding::length#2
Coalesced [216] printf_padding::putc#10 = printf_padding::putc#2
Coalesced [221] printf_padding::length#9 = printf_padding::length#1
Coalesced [222] printf_padding::putc#9 = printf_padding::putc#1
Coalesced [227] printf_padding::length#11 = printf_padding::length#0
Coalesced [228] printf_padding::putc#11 = printf_padding::putc#0
Coalesced [231] printf_number_buffer::padding#17 = printf_number_buffer::padding#1
Coalesced [232] printf_number_buffer::len#4 = printf_number_buffer::len#0
Coalesced [247] ultoa::value#17 = ultoa::value#2
Coalesced [248] ultoa::started#6 = ultoa::started#2
Coalesced [249] ultoa::buffer#23 = ultoa::buffer#11
Coalesced [252] ultoa::digit#7 = ultoa::digit#1
Coalesced (already) [253] ultoa::value#16 = ultoa::value#6
Coalesced (already) [254] ultoa::started#5 = ultoa::started#4
Coalesced (already) [255] ultoa::buffer#22 = ultoa::buffer#14
Coalesced [263] ultoa::value#18 = ultoa::value#0
Coalesced [264] ultoa::buffer#24 = ultoa::buffer#4
Coalesced [265] utoa_append::value#6 = utoa_append::value#0
Coalesced [272] utoa_append::value#7 = utoa_append::value#1
Coalesced [273] utoa_append::digit#5 = utoa_append::digit#1
Coalesced [281] strlen::str#6 = strlen::str#0
Coalesced [282] strlen::len#5 = strlen::len#1
Coalesced [294] strupr::src#5 = strupr::src#1
Coalesced [303] printf_padding::i#5 = printf_padding::i#1
Coalesced [304] ultoa_append::value#6 = ultoa_append::value#0
Coalesced [311] ultoa_append::value#7 = ultoa_append::value#1
Coalesced [312] ultoa_append::digit#5 = ultoa_append::digit#1
Coalesced [315] toupper::return#7 = toupper::ch#0
Coalesced [319] toupper::return#6 = toupper::return#0
Coalesced down to 36 phi equivalence classes
Culled Empty Block label __start::@2
Culled Empty Block label __start::@3
Culled Empty Block label snputc::@3
Culled Empty Block label main::@20
Culled Empty Block label printf_string::@1
Culled Empty Block label printf_string::@11
Culled Empty Block label printf_string::@8
Culled Empty Block label printf_sint::@3
Culled Empty Block label printf_sint::@6
Culled Empty Block label printf_uint::@2
Culled Empty Block label printf_uint::@5
Culled Empty Block label printf_slong::@3
Culled Empty Block label printf_slong::@6
Culled Empty Block label utoa::@4
Culled Empty Block label utoa::@17
Culled Empty Block label utoa::@3
Culled Empty Block label utoa::@2
Culled Empty Block label utoa::@1
Culled Empty Block label printf_number_buffer::@14
Culled Empty Block label printf_number_buffer::@19
Culled Empty Block label printf_number_buffer::@20
Culled Empty Block label printf_number_buffer::@17
Culled Empty Block label printf_number_buffer::@16
Culled Empty Block label printf_number_buffer::@27
Culled Empty Block label ultoa::@1
Culled Empty Block label ultoa::@5
Culled Empty Block label ultoa::@17
Culled Empty Block label strlen::@3
Culled Empty Block label strupr::@3
Culled Empty Block label toupper::@2
Renumbering block toupper::@3 to toupper::@2
Renumbering block strupr::@4 to strupr::@3
Renumbering block utoa::@5 to utoa::@1
Renumbering block utoa::@6 to utoa::@2
Renumbering block utoa::@7 to utoa::@3
Renumbering block utoa::@8 to utoa::@4
Renumbering block utoa::@9 to utoa::@5
Renumbering block utoa::@10 to utoa::@6
Renumbering block utoa::@11 to utoa::@7
Renumbering block utoa::@12 to utoa::@8
Renumbering block utoa::@13 to utoa::@9
Renumbering block utoa::@14 to utoa::@10
Renumbering block utoa::@15 to utoa::@11
Renumbering block utoa::@16 to utoa::@12
Renumbering block ultoa::@10 to ultoa::@1
Renumbering block ultoa::@11 to ultoa::@2
Renumbering block ultoa::@12 to ultoa::@3
Renumbering block ultoa::@13 to ultoa::@4
Renumbering block ultoa::@14 to ultoa::@5
Renumbering block ultoa::@15 to ultoa::@6
Renumbering block ultoa::@16 to ultoa::@7
Renumbering block printf_slong::@2 to printf_slong::@1
Renumbering block printf_slong::@5 to printf_slong::@2
Renumbering block printf_sint::@2 to printf_sint::@1
Renumbering block printf_sint::@5 to printf_sint::@2
Renumbering block printf_uint::@3 to printf_uint::@1
Renumbering block printf_uint::@4 to printf_uint::@2
Renumbering block printf_number_buffer::@15 to printf_number_buffer::@14
Renumbering block printf_number_buffer::@18 to printf_number_buffer::@15
Renumbering block printf_number_buffer::@21 to printf_number_buffer::@16
Renumbering block printf_number_buffer::@22 to printf_number_buffer::@17
Renumbering block printf_number_buffer::@23 to printf_number_buffer::@18
Renumbering block printf_number_buffer::@24 to printf_number_buffer::@19
Renumbering block printf_number_buffer::@25 to printf_number_buffer::@20
Renumbering block printf_number_buffer::@26 to printf_number_buffer::@21
Renumbering block printf_string::@2 to printf_string::@1
Renumbering block snputc::@4 to snputc::@3
Adding NOP phi() at start of __start
Adding NOP phi() at start of __start::@1
Adding NOP phi() at start of snputc::@3
Adding NOP phi() at start of main
Adding NOP phi() at start of main::@1
Adding NOP phi() at start of main::@3
Adding NOP phi() at start of main::@4
Adding NOP phi() at start of main::@5
Adding NOP phi() at start of main::@8
Adding NOP phi() at start of main::@9
Adding NOP phi() at start of main::@10
Adding NOP phi() at start of main::@11
Adding NOP phi() at start of main::@12
Adding NOP phi() at start of main::@13
Adding NOP phi() at start of main::@15
Adding NOP phi() at start of main::@16
Adding NOP phi() at start of main::@17
Adding NOP phi() at start of main::@18
Adding NOP phi() at start of printf_string
Adding NOP phi() at start of printf_string::@1
Adding NOP phi() at start of printf_sint::@1
Adding NOP phi() at start of printf_uint
Adding NOP phi() at start of printf_slong::@1
Adding NOP phi() at start of printf_number_buffer::@6
Adding NOP phi() at start of printf_number_buffer::@21
Adding NOP phi() at start of printf_number_buffer::@11
Adding NOP phi() at start of ultoa
Adding NOP phi() at start of utoa_append
Adding NOP phi() at start of strlen
Adding NOP phi() at start of strupr
Adding NOP phi() at start of ultoa_append

FINAL CONTROL FLOW GRAPH

void __start()
__start: scope:[__start]  from
  [0] phi()
  to:__start::__init1
__start::__init1: scope:[__start]  from __start
  [1] __snprintf_capacity = 0
  [2] __snprintf_size = 0
  [3] __snprintf_buffer = (char *) 0
  to:__start::@1
__start::@1: scope:[__start]  from __start::__init1
  [4] phi()
  [5] call main
  to:__start::@return
__start::@return: scope:[__start]  from __start::@1
  [6] return 
  to:@return

__stackcall void snputc(char c)
snputc: scope:[snputc]  from
  [7] snputc::c#0 = stackidx(char,snputc::OFFSET_STACK_C)
  [8] __snprintf_size = ++ __snprintf_size
  [9] if(__snprintf_size<=__snprintf_capacity) goto snputc::@1
  to:snputc::@return
snputc::@return: scope:[snputc]  from snputc snputc::@2
  [10] return 
  to:@return
snputc::@1: scope:[snputc]  from snputc
  [11] if(__snprintf_size!=__snprintf_capacity) goto snputc::@3
  to:snputc::@2
snputc::@3: scope:[snputc]  from snputc::@1
  [12] phi()
  to:snputc::@2
snputc::@2: scope:[snputc]  from snputc::@1 snputc::@3
  [13] snputc::c#2 = phi( snputc::@3/snputc::c#0, snputc::@1/0 )
  [14] *__snprintf_buffer = snputc::c#2
  [15] __snprintf_buffer = ++ __snprintf_buffer
  to:snputc::@return

void main()
main: scope:[main]  from __start::@1
  [16] phi()
  [17] call snprintf_init
  to:main::@1
main::@1: scope:[main]  from main
  [18] phi()
  [19] call printf_str
  to:main::@2
main::@2: scope:[main]  from main::@1
  [20] stackpush(char) = 0
  [21] callexecute snputc 
  sideeffect stackpullbytes(1)
  [23] call print
  to:main::@3
main::@3: scope:[main]  from main::@2
  [24] phi()
  [25] call snprintf_init
  to:main::@4
main::@4: scope:[main]  from main::@3
  [26] phi()
  [27] call printf_str
  to:main::@5
main::@5: scope:[main]  from main::@4
  [28] phi()
  [29] call printf_string
  to:main::@6
main::@6: scope:[main]  from main::@5
  [30] stackpush(char) = '!'
  [31] callexecute snputc 
  sideeffect stackpullbytes(1)
  [33] call printf_str
  to:main::@7
main::@7: scope:[main]  from main::@6
  [34] stackpush(char) = 0
  [35] callexecute snputc 
  sideeffect stackpullbytes(1)
  [37] call print
  to:main::@8
main::@8: scope:[main]  from main::@7
  [38] phi()
  [39] call snprintf_init
  to:main::@9
main::@9: scope:[main]  from main::@8
  [40] phi()
  [41] call printf_str
  to:main::@10
main::@10: scope:[main]  from main::@9
  [42] phi()
  [43] call printf_sint
  to:main::@11
main::@11: scope:[main]  from main::@10
  [44] phi()
  [45] call printf_str
  to:main::@12
main::@12: scope:[main]  from main::@11
  [46] phi()
  [47] call printf_uint
  to:main::@13
main::@13: scope:[main]  from main::@12
  [48] phi()
  [49] call printf_str
  to:main::@14
main::@14: scope:[main]  from main::@13
  [50] stackpush(char) = 0
  [51] callexecute snputc 
  sideeffect stackpullbytes(1)
  [53] call print
  to:main::@15
main::@15: scope:[main]  from main::@14
  [54] phi()
  [55] call snprintf_init
  to:main::@16
main::@16: scope:[main]  from main::@15
  [56] phi()
  [57] call printf_str
  to:main::@17
main::@17: scope:[main]  from main::@16
  [58] phi()
  [59] call printf_slong
  to:main::@18
main::@18: scope:[main]  from main::@17
  [60] phi()
  [61] call printf_str
  to:main::@19
main::@19: scope:[main]  from main::@18
  [62] stackpush(char) = 0
  [63] callexecute snputc 
  sideeffect stackpullbytes(1)
  [65] call print
  to:main::@return
main::@return: scope:[main]  from main::@19
  [66] return 
  to:@return

void snprintf_init(char *s , unsigned int n)
snprintf_init: scope:[snprintf_init]  from main main::@15 main::@3 main::@8
  [67] __snprintf_capacity = $ffff
  [68] __snprintf_size = 0
  [69] __snprintf_buffer = BUF
  to:snprintf_init::@return
snprintf_init::@return: scope:[snprintf_init]  from snprintf_init
  [70] return 
  to:@return

void printf_str(void (*putc)(char) , const char *s)
printf_str: scope:[printf_str]  from main::@1 main::@11 main::@13 main::@16 main::@18 main::@4 main::@6 main::@9 printf_number_buffer::@5 printf_string::@1
  [71] printf_str::putc#12 = phi( main::@1/&snputc, main::@11/&snputc, main::@13/&snputc, main::@16/&snputc, main::@18/&snputc, main::@4/&snputc, main::@6/&snputc, main::@9/&snputc, printf_number_buffer::@5/printf_str::putc#0, printf_string::@1/printf_string::putc#0 )
  [71] printf_str::s#12 = phi( main::@1/main::s, main::@11/main::s4, main::@13/main::s5, main::@16/main::s6, main::@18/main::s5, main::@4/main::s1, main::@6/main::s2, main::@9/main::s1, printf_number_buffer::@5/(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS, printf_string::@1/main::str )
  to:printf_str::@1
printf_str::@1: scope:[printf_str]  from printf_str printf_str::@2
  [72] printf_str::s#11 = phi( printf_str/printf_str::s#12, printf_str::@2/printf_str::s#0 )
  [73] printf_str::c#1 = *printf_str::s#11
  [74] printf_str::s#0 = ++ printf_str::s#11
  [75] if(0!=printf_str::c#1) goto printf_str::@2
  to:printf_str::@return
printf_str::@return: scope:[printf_str]  from printf_str::@1
  [76] return 
  to:@return
printf_str::@2: scope:[printf_str]  from printf_str::@1
  [77] stackpush(char) = printf_str::c#1
  [78] callexecute *printf_str::putc#12 
  sideeffect stackpullbytes(1)
  to:printf_str::@1

void print(char *msg)
print: scope:[print]  from main::@14 main::@19 main::@2 main::@7
  [80] screen#25 = phi( main::@14/screen#1, main::@19/screen#1, main::@2/(char *) 1024, main::@7/screen#1 )
  to:print::@1
print::@1: scope:[print]  from print print::@2
  [81] screen#1 = phi( print/screen#25, print::@2/screen#0 )
  [81] print::msg#5 = phi( print/BUF, print::@2/print::msg#0 )
  [82] if(0!=*print::msg#5) goto print::@2
  to:print::@return
print::@return: scope:[print]  from print::@1
  [83] return 
  to:@return
print::@2: scope:[print]  from print::@1
  [84] *screen#1 = *print::msg#5
  [85] screen#0 = ++ screen#1
  [86] print::msg#0 = ++ print::msg#5
  to:print::@1

void printf_string(void (*putc)(char) , char *str , char format_min_length , char format_justify_left)
printf_string: scope:[printf_string]  from main::@5
  [87] phi()
  to:printf_string::@1
printf_string::@1: scope:[printf_string]  from printf_string
  [88] phi()
  [89] call printf_str
  to:printf_string::@return
printf_string::@return: scope:[printf_string]  from printf_string::@1
  [90] return 
  to:@return

void printf_sint(void (*putc)(char) , int 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_sint: scope:[printf_sint]  from main::@10
  [91] *((char *)&printf_buffer) = 0
  to:printf_sint::@1
printf_sint::@1: scope:[printf_sint]  from printf_sint
  [92] phi()
  [93] call utoa
  to:printf_sint::@2
printf_sint::@2: scope:[printf_sint]  from printf_sint::@1
  [94] printf_number_buffer::buffer_sign#1 = *((char *)&printf_buffer)
  [95] call printf_number_buffer
  to:printf_sint::@return
printf_sint::@return: scope:[printf_sint]  from printf_sint::@2
  [96] 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 main::@12
  [97] phi()
  to:printf_uint::@1
printf_uint::@1: scope:[printf_uint]  from printf_uint
  [98] *((char *)&printf_buffer) = 0
  [99] call utoa
  to:printf_uint::@2
printf_uint::@2: scope:[printf_uint]  from printf_uint::@1
  [100] printf_number_buffer::buffer_sign#2 = *((char *)&printf_buffer)
  [101] call printf_number_buffer
  to:printf_uint::@return
printf_uint::@return: scope:[printf_uint]  from printf_uint::@2
  [102] return 
  to:@return

void printf_slong(void (*putc)(char) , long 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_slong: scope:[printf_slong]  from main::@17
  [103] *((char *)&printf_buffer) = 0
  to:printf_slong::@1
printf_slong::@1: scope:[printf_slong]  from printf_slong
  [104] phi()
  [105] call ultoa
  to:printf_slong::@2
printf_slong::@2: scope:[printf_slong]  from printf_slong::@1
  [106] printf_number_buffer::buffer_sign#0 = *((char *)&printf_buffer)
  [107] call printf_number_buffer
  to:printf_slong::@return
printf_slong::@return: scope:[printf_slong]  from printf_slong::@2
  [108] return 
  to:@return

void utoa(unsigned int value , char *buffer , char radix)
utoa: scope:[utoa]  from printf_sint::@1 printf_uint::@1
  [109] utoa::value#10 = phi( printf_sint::@1/printf_sint::uvalue#0, printf_uint::@1/printf_uint::uvalue#0 )
  [109] utoa::radix#2 = phi( printf_sint::@1/DECIMAL, printf_uint::@1/HEXADECIMAL )
  [110] if(utoa::radix#2==DECIMAL) goto utoa::@1
  to:utoa::@2
utoa::@2: scope:[utoa]  from utoa
  [111] if(utoa::radix#2==HEXADECIMAL) goto utoa::@1
  to:utoa::@3
utoa::@3: scope:[utoa]  from utoa::@2
  [112] if(utoa::radix#2==OCTAL) goto utoa::@1
  to:utoa::@4
utoa::@4: scope:[utoa]  from utoa::@3
  [113] if(utoa::radix#2==BINARY) goto utoa::@1
  to:utoa::@5
utoa::@5: scope:[utoa]  from utoa::@4
  [114] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS) = 'e'
  [115] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1) = 'r'
  [116] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+2) = 'r'
  [117] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+3) = 0
  to:utoa::@return
utoa::@return: scope:[utoa]  from utoa::@5 utoa::@8
  [118] return 
  to:@return
utoa::@1: scope:[utoa]  from utoa utoa::@2 utoa::@3 utoa::@4
  [119] utoa::digit_values#8 = phi( utoa/RADIX_DECIMAL_VALUES, utoa::@2/RADIX_HEXADECIMAL_VALUES, utoa::@3/RADIX_OCTAL_VALUES, utoa::@4/RADIX_BINARY_VALUES )
  [119] 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
  [120] utoa::buffer#10 = phi( utoa::@9/utoa::buffer#15, utoa::@1/(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS )
  [120] utoa::started#2 = phi( utoa::@9/utoa::started#4, utoa::@1/0 )
  [120] utoa::value#3 = phi( utoa::@9/utoa::value#7, utoa::@1/utoa::value#10 )
  [120] utoa::digit#2 = phi( utoa::@9/utoa::digit#1, utoa::@1/0 )
  [121] utoa::$4 = utoa::max_digits#7 - 1
  [122] if(utoa::digit#2<utoa::$4) goto utoa::@7
  to:utoa::@8
utoa::@8: scope:[utoa]  from utoa::@6
  [123] utoa::$11 = (char)utoa::value#3
  [124] *utoa::buffer#10 = DIGITS[utoa::$11]
  [125] utoa::buffer#3 = ++ utoa::buffer#10
  [126] *utoa::buffer#3 = 0
  to:utoa::@return
utoa::@7: scope:[utoa]  from utoa::@6
  [127] utoa::$10 = utoa::digit#2 << 1
  [128] utoa::digit_value#0 = utoa::digit_values#8[utoa::$10]
  [129] if(0!=utoa::started#2) goto utoa::@10
  to:utoa::@12
utoa::@12: scope:[utoa]  from utoa::@7
  [130] if(utoa::value#3>=utoa::digit_value#0) goto utoa::@10
  to:utoa::@9
utoa::@9: scope:[utoa]  from utoa::@11 utoa::@12
  [131] utoa::buffer#15 = phi( utoa::@12/utoa::buffer#10, utoa::@11/utoa::buffer#4 )
  [131] utoa::started#4 = phi( utoa::@12/utoa::started#2, utoa::@11/1 )
  [131] utoa::value#7 = phi( utoa::@12/utoa::value#3, utoa::@11/utoa::value#0 )
  [132] utoa::digit#1 = ++ utoa::digit#2
  to:utoa::@6
utoa::@10: scope:[utoa]  from utoa::@12 utoa::@7
  [133] utoa_append::buffer#0 = utoa::buffer#10
  [134] utoa_append::value#0 = utoa::value#3
  [135] utoa_append::sub#0 = utoa::digit_value#0
  [136] call utoa_append
  [137] utoa_append::return#0 = utoa_append::value#2
  to:utoa::@11
utoa::@11: scope:[utoa]  from utoa::@10
  [138] utoa::value#0 = utoa_append::return#0
  [139] utoa::buffer#4 = ++ utoa::buffer#10
  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_sint::@2 printf_slong::@2 printf_uint::@2
  [140] printf_number_buffer::format_upper_case#10 = phi( printf_sint::@2/printf_sint::format_upper_case#0, printf_slong::@2/printf_slong::format_upper_case#0, printf_uint::@2/printf_uint::format_upper_case#0 )
  [140] printf_number_buffer::putc#10 = phi( printf_sint::@2/printf_sint::putc#0, printf_slong::@2/printf_slong::putc#0, printf_uint::@2/printf_uint::putc#0 )
  [140] printf_number_buffer::buffer_sign#10 = phi( printf_sint::@2/printf_number_buffer::buffer_sign#1, printf_slong::@2/printf_number_buffer::buffer_sign#0, printf_uint::@2/printf_number_buffer::buffer_sign#2 )
  [140] printf_number_buffer::format_zero_padding#10 = phi( printf_sint::@2/printf_sint::format_zero_padding#0, printf_slong::@2/printf_slong::format_zero_padding#0, printf_uint::@2/printf_uint::format_zero_padding#0 )
  [140] printf_number_buffer::format_justify_left#10 = phi( printf_sint::@2/printf_sint::format_justify_left#0, printf_slong::@2/printf_slong::format_justify_left#0, printf_uint::@2/printf_uint::format_justify_left#0 )
  [140] printf_number_buffer::format_min_length#3 = phi( printf_sint::@2/printf_sint::format_min_length#0, printf_slong::@2/printf_slong::format_min_length#0, printf_uint::@2/printf_uint::format_min_length#0 )
  [141] if(0==printf_number_buffer::format_min_length#3) goto printf_number_buffer::@1
  to:printf_number_buffer::@6
printf_number_buffer::@6: scope:[printf_number_buffer]  from printf_number_buffer
  [142] phi()
  [143] call strlen
  [144] strlen::return#2 = strlen::len#2
  to:printf_number_buffer::@14
printf_number_buffer::@14: scope:[printf_number_buffer]  from printf_number_buffer::@6
  [145] printf_number_buffer::$19 = strlen::return#2
  [146] printf_number_buffer::len#0 = (signed char)printf_number_buffer::$19
  [147] if(0==printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@13
  to:printf_number_buffer::@7
printf_number_buffer::@7: scope:[printf_number_buffer]  from printf_number_buffer::@14
  [148] printf_number_buffer::len#1 = ++ printf_number_buffer::len#0
  to:printf_number_buffer::@13
printf_number_buffer::@13: scope:[printf_number_buffer]  from printf_number_buffer::@14 printf_number_buffer::@7
  [149] printf_number_buffer::len#2 = phi( printf_number_buffer::@14/printf_number_buffer::len#0, printf_number_buffer::@7/printf_number_buffer::len#1 )
  [150] printf_number_buffer::padding#1 = (signed char)printf_number_buffer::format_min_length#3 - printf_number_buffer::len#2
  [151] if(printf_number_buffer::padding#1>=0) goto printf_number_buffer::@21
  to:printf_number_buffer::@1
printf_number_buffer::@21: scope:[printf_number_buffer]  from printf_number_buffer::@13
  [152] phi()
  to:printf_number_buffer::@1
printf_number_buffer::@1: scope:[printf_number_buffer]  from printf_number_buffer printf_number_buffer::@13 printf_number_buffer::@21
  [153] printf_number_buffer::padding#10 = phi( printf_number_buffer/0, printf_number_buffer::@21/printf_number_buffer::padding#1, printf_number_buffer::@13/0 )
  [154] if(0!=printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@2
  to:printf_number_buffer::@17
printf_number_buffer::@17: scope:[printf_number_buffer]  from printf_number_buffer::@1
  [155] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@2
  to:printf_number_buffer::@16
printf_number_buffer::@16: scope:[printf_number_buffer]  from printf_number_buffer::@17
  [156] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@8
  to:printf_number_buffer::@2
printf_number_buffer::@8: scope:[printf_number_buffer]  from printf_number_buffer::@16
  [157] printf_padding::putc#0 = printf_number_buffer::putc#10
  [158] printf_padding::length#0 = (char)printf_number_buffer::padding#10
  [159] call printf_padding
  to:printf_number_buffer::@2
printf_number_buffer::@2: scope:[printf_number_buffer]  from printf_number_buffer::@1 printf_number_buffer::@16 printf_number_buffer::@17 printf_number_buffer::@8
  [160] if(0==printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@3
  to:printf_number_buffer::@9
printf_number_buffer::@9: scope:[printf_number_buffer]  from printf_number_buffer::@2
  [161] stackpush(char) = printf_number_buffer::buffer_sign#10
  [162] callexecute *printf_number_buffer::putc#10 
  sideeffect stackpullbytes(1)
  to:printf_number_buffer::@3
printf_number_buffer::@3: scope:[printf_number_buffer]  from printf_number_buffer::@2 printf_number_buffer::@9
  [164] if(0==printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@4
  to:printf_number_buffer::@18
printf_number_buffer::@18: scope:[printf_number_buffer]  from printf_number_buffer::@3
  [165] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@10
  to:printf_number_buffer::@4
printf_number_buffer::@10: scope:[printf_number_buffer]  from printf_number_buffer::@18
  [166] printf_padding::putc#1 = printf_number_buffer::putc#10
  [167] printf_padding::length#1 = (char)printf_number_buffer::padding#10
  [168] call printf_padding
  to:printf_number_buffer::@4
printf_number_buffer::@4: scope:[printf_number_buffer]  from printf_number_buffer::@10 printf_number_buffer::@18 printf_number_buffer::@3
  [169] if(0==printf_number_buffer::format_upper_case#10) goto printf_number_buffer::@5
  to:printf_number_buffer::@11
printf_number_buffer::@11: scope:[printf_number_buffer]  from printf_number_buffer::@4
  [170] phi()
  [171] call strupr
  to:printf_number_buffer::@5
printf_number_buffer::@5: scope:[printf_number_buffer]  from printf_number_buffer::@11 printf_number_buffer::@4
  [172] printf_str::putc#0 = printf_number_buffer::putc#10
  [173] call printf_str
  to:printf_number_buffer::@15
printf_number_buffer::@15: scope:[printf_number_buffer]  from printf_number_buffer::@5
  [174] if(0==printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@return
  to:printf_number_buffer::@20
printf_number_buffer::@20: scope:[printf_number_buffer]  from printf_number_buffer::@15
  [175] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@return
  to:printf_number_buffer::@19
printf_number_buffer::@19: scope:[printf_number_buffer]  from printf_number_buffer::@20
  [176] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@12
  to:printf_number_buffer::@return
printf_number_buffer::@12: scope:[printf_number_buffer]  from printf_number_buffer::@19
  [177] printf_padding::putc#2 = printf_number_buffer::putc#10
  [178] printf_padding::length#2 = (char)printf_number_buffer::padding#10
  [179] call printf_padding
  to:printf_number_buffer::@return
printf_number_buffer::@return: scope:[printf_number_buffer]  from printf_number_buffer::@12 printf_number_buffer::@15 printf_number_buffer::@19 printf_number_buffer::@20
  [180] return 
  to:@return

void ultoa(unsigned long value , char *buffer , char radix)
ultoa: scope:[ultoa]  from printf_slong::@1
  [181] phi()
  to:ultoa::@1
ultoa::@1: scope:[ultoa]  from ultoa ultoa::@4
  [182] ultoa::buffer#11 = phi( ultoa::@4/ultoa::buffer#14, ultoa/(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS )
  [182] ultoa::started#2 = phi( ultoa::@4/ultoa::started#4, ultoa/0 )
  [182] ultoa::value#2 = phi( ultoa::@4/ultoa::value#6, ultoa/printf_slong::uvalue#0 )
  [182] ultoa::digit#2 = phi( ultoa::@4/ultoa::digit#1, ultoa/0 )
  [183] if(ultoa::digit#2<ultoa::max_digits#1-1) goto ultoa::@2
  to:ultoa::@3
ultoa::@3: scope:[ultoa]  from ultoa::@1
  [184] ultoa::$11 = (char)ultoa::value#2
  [185] *ultoa::buffer#11 = DIGITS[ultoa::$11]
  [186] ultoa::buffer#3 = ++ ultoa::buffer#11
  [187] *ultoa::buffer#3 = 0
  to:ultoa::@return
ultoa::@return: scope:[ultoa]  from ultoa::@3
  [188] return 
  to:@return
ultoa::@2: scope:[ultoa]  from ultoa::@1
  [189] ultoa::$10 = ultoa::digit#2 << 2
  [190] ultoa::digit_value#0 = RADIX_DECIMAL_VALUES_LONG[ultoa::$10]
  [191] if(0!=ultoa::started#2) goto ultoa::@5
  to:ultoa::@7
ultoa::@7: scope:[ultoa]  from ultoa::@2
  [192] if(ultoa::value#2>=ultoa::digit_value#0) goto ultoa::@5
  to:ultoa::@4
ultoa::@4: scope:[ultoa]  from ultoa::@6 ultoa::@7
  [193] ultoa::buffer#14 = phi( ultoa::@7/ultoa::buffer#11, ultoa::@6/ultoa::buffer#4 )
  [193] ultoa::started#4 = phi( ultoa::@7/ultoa::started#2, ultoa::@6/1 )
  [193] ultoa::value#6 = phi( ultoa::@7/ultoa::value#2, ultoa::@6/ultoa::value#0 )
  [194] ultoa::digit#1 = ++ ultoa::digit#2
  to:ultoa::@1
ultoa::@5: scope:[ultoa]  from ultoa::@2 ultoa::@7
  [195] ultoa_append::buffer#0 = ultoa::buffer#11
  [196] ultoa_append::value#0 = ultoa::value#2
  [197] ultoa_append::sub#0 = ultoa::digit_value#0
  [198] call ultoa_append
  [199] ultoa_append::return#0 = ultoa_append::value#2
  to:ultoa::@6
ultoa::@6: scope:[ultoa]  from ultoa::@5
  [200] ultoa::value#0 = ultoa_append::return#0
  [201] ultoa::buffer#4 = ++ ultoa::buffer#11
  to:ultoa::@4

unsigned int utoa_append(char *buffer , unsigned int value , unsigned int sub)
utoa_append: scope:[utoa_append]  from utoa::@10
  [202] phi()
  to:utoa_append::@1
utoa_append::@1: scope:[utoa_append]  from utoa_append utoa_append::@2
  [203] utoa_append::digit#2 = phi( utoa_append/0, utoa_append::@2/utoa_append::digit#1 )
  [203] utoa_append::value#2 = phi( utoa_append/utoa_append::value#0, utoa_append::@2/utoa_append::value#1 )
  [204] 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
  [205] *utoa_append::buffer#0 = DIGITS[utoa_append::digit#2]
  to:utoa_append::@return
utoa_append::@return: scope:[utoa_append]  from utoa_append::@3
  [206] return 
  to:@return
utoa_append::@2: scope:[utoa_append]  from utoa_append::@1
  [207] utoa_append::digit#1 = ++ utoa_append::digit#2
  [208] utoa_append::value#1 = utoa_append::value#2 - utoa_append::sub#0
  to:utoa_append::@1

unsigned int strlen(char *str)
strlen: scope:[strlen]  from printf_number_buffer::@6
  [209] phi()
  to:strlen::@1
strlen::@1: scope:[strlen]  from strlen strlen::@2
  [210] strlen::len#2 = phi( strlen/0, strlen::@2/strlen::len#1 )
  [210] strlen::str#3 = phi( strlen/(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS, strlen::@2/strlen::str#0 )
  [211] if(0!=*strlen::str#3) goto strlen::@2
  to:strlen::@return
strlen::@return: scope:[strlen]  from strlen::@1
  [212] return 
  to:@return
strlen::@2: scope:[strlen]  from strlen::@1
  [213] strlen::len#1 = ++ strlen::len#2
  [214] strlen::str#0 = ++ strlen::str#3
  to:strlen::@1

void printf_padding(void (*putc)(char) , char pad , char length)
printf_padding: scope:[printf_padding]  from printf_number_buffer::@10 printf_number_buffer::@12 printf_number_buffer::@8
  [215] printf_padding::putc#7 = phi( printf_number_buffer::@10/printf_padding::putc#1, printf_number_buffer::@12/printf_padding::putc#2, printf_number_buffer::@8/printf_padding::putc#0 )
  [215] printf_padding::pad#7 = phi( printf_number_buffer::@10/'0', printf_number_buffer::@12/' ', printf_number_buffer::@8/' ' )
  [215] printf_padding::length#6 = phi( printf_number_buffer::@10/printf_padding::length#1, printf_number_buffer::@12/printf_padding::length#2, printf_number_buffer::@8/printf_padding::length#0 )
  to:printf_padding::@1
printf_padding::@1: scope:[printf_padding]  from printf_padding printf_padding::@3
  [216] printf_padding::i#2 = phi( printf_padding/0, printf_padding::@3/printf_padding::i#1 )
  [217] if(printf_padding::i#2<printf_padding::length#6) goto printf_padding::@2
  to:printf_padding::@return
printf_padding::@return: scope:[printf_padding]  from printf_padding::@1
  [218] return 
  to:@return
printf_padding::@2: scope:[printf_padding]  from printf_padding::@1
  [219] stackpush(char) = printf_padding::pad#7
  [220] callexecute *printf_padding::putc#7 
  sideeffect stackpullbytes(1)
  to:printf_padding::@3
printf_padding::@3: scope:[printf_padding]  from printf_padding::@2
  [222] printf_padding::i#1 = ++ printf_padding::i#2
  to:printf_padding::@1

char * strupr(char *str)
strupr: scope:[strupr]  from printf_number_buffer::@11
  [223] phi()
  to:strupr::@1
strupr::@1: scope:[strupr]  from strupr strupr::@3
  [224] strupr::src#2 = phi( strupr/strupr::str#0, strupr::@3/strupr::src#1 )
  [225] if(0!=*strupr::src#2) goto strupr::@2
  to:strupr::@return
strupr::@return: scope:[strupr]  from strupr::@1
  [226] return 
  to:@return
strupr::@2: scope:[strupr]  from strupr::@1
  [227] toupper::ch#0 = *strupr::src#2
  [228] call toupper
  [229] toupper::return#3 = toupper::return#2
  to:strupr::@3
strupr::@3: scope:[strupr]  from strupr::@2
  [230] strupr::$0 = toupper::return#3
  [231] *strupr::src#2 = strupr::$0
  [232] strupr::src#1 = ++ strupr::src#2
  to:strupr::@1

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

char toupper(char ch)
toupper: scope:[toupper]  from strupr::@2
  [240] if(toupper::ch#0<'a') goto toupper::@return
  to:toupper::@2
toupper::@2: scope:[toupper]  from toupper
  [241] if(toupper::ch#0<='z') goto toupper::@1
  to:toupper::@return
toupper::@1: scope:[toupper]  from toupper::@2
  [242] toupper::return#0 = toupper::ch#0 + 'A'-'a'
  to:toupper::@return
toupper::@return: scope:[toupper]  from toupper toupper::@1 toupper::@2
  [243] toupper::return#2 = phi( toupper::@1/toupper::return#0, toupper/toupper::ch#0, toupper::@2/toupper::ch#0 )
  [244] return 
  to:@return


VARIABLE REGISTER WEIGHTS
__loadstore char *__snprintf_buffer // 9.022222222222222
__loadstore volatile unsigned int __snprintf_capacity // 6.48936170212766
__loadstore volatile unsigned int __snprintf_size // 11.021739130434781
void __start()
void main()
void print(char *msg)
char *print::msg
char *print::msg#0 // 2002.0
char *print::msg#5 // 1001.0
__loadstore struct printf_buffer_number printf_buffer = {}
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)
unsigned int printf_number_buffer::$19 // 1001.0
struct printf_buffer_number printf_number_buffer::buffer
char *printf_number_buffer::buffer_digits
char printf_number_buffer::buffer_sign
char printf_number_buffer::buffer_sign#0 // 202.0
char printf_number_buffer::buffer_sign#1 // 202.0
char printf_number_buffer::buffer_sign#10 // 157.42857142857142
char printf_number_buffer::buffer_sign#2 // 202.0
struct printf_format_number printf_number_buffer::format
char printf_number_buffer::format_justify_left
char printf_number_buffer::format_justify_left#10 // 60.666666666666664
char printf_number_buffer::format_min_length
char printf_number_buffer::format_min_length#3 // 100.1
char printf_number_buffer::format_radix
char printf_number_buffer::format_sign_always
char printf_number_buffer::format_upper_case
char printf_number_buffer::format_upper_case#10 // 35.75
char printf_number_buffer::format_zero_padding
char printf_number_buffer::format_zero_padding#10 // 88.32352941176471
signed char printf_number_buffer::len
signed char printf_number_buffer::len#0 // 1501.5
signed char printf_number_buffer::len#1 // 2002.0
signed char printf_number_buffer::len#2 // 3003.0
signed char printf_number_buffer::padding
signed char printf_number_buffer::padding#1 // 1001.0
signed char printf_number_buffer::padding#10 // 166.83333333333334
void (*printf_number_buffer::putc)(char)
void (*printf_number_buffer::putc#10)(char) // 111.22222222222223
void printf_padding(void (*putc)(char) , char pad , char length)
char printf_padding::i
char printf_padding::i#1 // 200002.0
char printf_padding::i#2 // 100001.0
char printf_padding::length
char printf_padding::length#0 // 2002.0
char printf_padding::length#1 // 2002.0
char printf_padding::length#2 // 2002.0
char printf_padding::length#6 // 20600.8
char printf_padding::pad
char printf_padding::pad#7 // 16666.833333333332
void (*printf_padding::putc)(char)
void (*printf_padding::putc#0)(char) // 1001.0
void (*printf_padding::putc#1)(char) // 1001.0
void (*printf_padding::putc#2)(char) // 1001.0
void (*printf_padding::putc#7)(char) // 30030.0
void printf_sint(void (*putc)(char) , int value , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix)
struct printf_format_number printf_sint::format
char printf_sint::format_justify_left
char printf_sint::format_min_length
char printf_sint::format_radix
char printf_sint::format_sign_always
char printf_sint::format_upper_case
char printf_sint::format_zero_padding
void (*printf_sint::putc)(char)
unsigned int printf_sint::uvalue
int printf_sint::value
void printf_slong(void (*putc)(char) , long value , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix)
struct printf_format_number printf_slong::format
char printf_slong::format_justify_left
char printf_slong::format_min_length
char printf_slong::format_radix
char printf_slong::format_sign_always
char printf_slong::format_upper_case
char printf_slong::format_zero_padding
void (*printf_slong::putc)(char)
unsigned long printf_slong::uvalue
long printf_slong::value
void printf_str(void (*putc)(char) , const char *s)
char printf_str::c
char printf_str::c#1 // 100001.0
void (*printf_str::putc)(char)
void (*printf_str::putc#0)(char) // 2002.0
void (*printf_str::putc#12)(char) // 10010.0
const char *printf_str::s
const char *printf_str::s#0 // 100001.0
const char *printf_str::s#11 // 155002.0
const char *printf_str::s#12 // 10001.0
void printf_string(void (*putc)(char) , char *str , char format_min_length , char format_justify_left)
struct printf_format_string printf_string::format
char printf_string::format_justify_left
char printf_string::format_min_length
signed char printf_string::len
signed char printf_string::padding
void (*printf_string::putc)(char)
char *printf_string::str
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)
struct printf_format_number printf_uint::format
char printf_uint::format_justify_left
char printf_uint::format_min_length
char printf_uint::format_radix
char printf_uint::format_sign_always
char printf_uint::format_upper_case
char printf_uint::format_zero_padding
void (*printf_uint::putc)(char)
unsigned int printf_uint::uvalue
char *screen
char *screen#0 // 1001.0
char *screen#1 // 68.19565217391305
char *screen#25 // 134.0
void snprintf_init(char *s , unsigned int n)
unsigned int snprintf_init::n
char *snprintf_init::s
__stackcall void snputc(char c)
char snputc::c
char snputc::c#0 // 40.4
char snputc::c#2 // 202.0
unsigned int strlen(char *str)
unsigned int strlen::len
unsigned int strlen::len#1 // 100001.0
unsigned int strlen::len#2 // 50250.75
unsigned int strlen::return
unsigned int strlen::return#2 // 2002.0
char *strlen::str
char *strlen::str#0 // 200002.0
char *strlen::str#3 // 100001.0
char * strupr(char *str)
char strupr::$0 // 200002.0
char *strupr::return
char *strupr::src
char *strupr::src#1 // 200002.0
char *strupr::src#2 // 71429.28571428571
char *strupr::str
char toupper(char ch)
char toupper::ch
char toupper::ch#0 // 1700002.0000000002
char toupper::return
char toupper::return#0 // 2000002.0
char toupper::return#2 // 1033334.6666666667
char toupper::return#3 // 200002.0
void ultoa(unsigned long value , char *buffer , char radix)
char ultoa::$10 // 20002.0
char ultoa::$11 // 2002.0
char *ultoa::buffer
char *ultoa::buffer#11 // 3000.4285714285716
char *ultoa::buffer#14 // 15001.5
char *ultoa::buffer#3 // 2002.0
char *ultoa::buffer#4 // 20002.0
char ultoa::digit
char ultoa::digit#1 // 20002.0
char ultoa::digit#2 // 2857.4285714285716
unsigned long ultoa::digit_value
unsigned long ultoa::digit_value#0 // 6000.6
unsigned long *ultoa::digit_values
char ultoa::max_digits
char ultoa::radix
char ultoa::started
char ultoa::started#2 // 5000.5
char ultoa::started#4 // 10001.0
unsigned long ultoa::value
unsigned long ultoa::value#0 // 10001.0
unsigned long ultoa::value#2 // 5714.857142857143
unsigned long ultoa::value#6 // 15001.5
unsigned long ultoa_append(char *buffer , unsigned long value , unsigned long sub)
char *ultoa_append::buffer
char *ultoa_append::buffer#0 // 13750.25
char ultoa_append::digit
char ultoa_append::digit#1 // 1.0000001E7
char ultoa_append::digit#2 // 1.00500015E7
unsigned long ultoa_append::return
unsigned long ultoa_append::return#0 // 20002.0
unsigned long ultoa_append::sub
unsigned long ultoa_append::sub#0 // 3335000.5
unsigned long ultoa_append::value
unsigned long ultoa_append::value#0 // 36667.33333333333
unsigned long ultoa_append::value#1 // 2.0000002E7
unsigned long ultoa_append::value#2 // 5018334.166666666
void utoa(unsigned int value , char *buffer , char radix)
char utoa::$10 // 20002.0
char utoa::$11 // 2002.0
char utoa::$4 // 20002.0
char *utoa::buffer
char *utoa::buffer#10 // 2800.4000000000005
char *utoa::buffer#15 // 15001.5
char *utoa::buffer#3 // 2002.0
char *utoa::buffer#4 // 20002.0
char utoa::digit
char utoa::digit#1 // 20002.0
char utoa::digit#2 // 2666.9333333333334
unsigned int utoa::digit_value
unsigned int utoa::digit_value#0 // 6000.6
unsigned int *utoa::digit_values
unsigned int *utoa::digit_values#8 // 588.2941176470588
char utoa::max_digits
char utoa::max_digits#7 // 588.2941176470588
char utoa::radix
char utoa::radix#2 // 1001.0
char utoa::started
char utoa::started#2 // 4286.142857142857
char utoa::started#4 // 10001.0
unsigned int utoa::value
unsigned int utoa::value#0 // 10001.0
unsigned int utoa::value#10 // 166.83333333333334
unsigned int utoa::value#3 // 5125.625
unsigned int utoa::value#7 // 15001.5
unsigned int utoa_append(char *buffer , unsigned int value , unsigned int sub)
char *utoa_append::buffer
char *utoa_append::buffer#0 // 13750.25
char utoa_append::digit
char utoa_append::digit#1 // 1.0000001E7
char utoa_append::digit#2 // 1.00500015E7
unsigned int utoa_append::return
unsigned int utoa_append::return#0 // 20002.0
unsigned int utoa_append::sub
unsigned int utoa_append::sub#0 // 3335000.5
unsigned int utoa_append::value
unsigned int utoa_append::value#0 // 36667.33333333333
unsigned int utoa_append::value#1 // 2.0000002E7
unsigned int utoa_append::value#2 // 5018334.166666666

Initial phi equivalence classes
[ snputc::c#2 snputc::c#0 ]
[ printf_str::putc#12 printf_str::putc#0 ]
[ printf_str::s#11 printf_str::s#12 printf_str::s#0 ]
[ screen#25 screen#1 screen#0 ]
[ print::msg#5 print::msg#0 ]
[ utoa::radix#2 ]
[ utoa::max_digits#7 ]
[ utoa::digit_values#8 ]
[ utoa::digit#2 utoa::digit#1 ]
[ utoa::value#3 utoa::value#7 utoa::value#10 utoa::value#0 ]
[ utoa::started#2 utoa::started#4 ]
[ utoa::buffer#10 utoa::buffer#15 utoa::buffer#4 ]
[ printf_number_buffer::format_min_length#3 ]
[ printf_number_buffer::format_justify_left#10 ]
[ printf_number_buffer::format_zero_padding#10 ]
[ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 printf_number_buffer::buffer_sign#2 ]
[ printf_number_buffer::putc#10 ]
[ printf_number_buffer::format_upper_case#10 ]
[ printf_number_buffer::len#2 printf_number_buffer::len#0 printf_number_buffer::len#1 ]
[ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ]
[ ultoa::digit#2 ultoa::digit#1 ]
[ ultoa::value#2 ultoa::value#6 ultoa::value#0 ]
[ ultoa::started#2 ultoa::started#4 ]
[ ultoa::buffer#11 ultoa::buffer#14 ultoa::buffer#4 ]
[ utoa_append::value#2 utoa_append::value#0 utoa_append::value#1 ]
[ utoa_append::digit#2 utoa_append::digit#1 ]
[ strlen::str#3 strlen::str#0 ]
[ strlen::len#2 strlen::len#1 ]
[ printf_padding::length#6 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ]
[ printf_padding::pad#7 ]
[ printf_padding::putc#7 printf_padding::putc#1 printf_padding::putc#2 printf_padding::putc#0 ]
[ printf_padding::i#2 printf_padding::i#1 ]
[ strupr::src#2 strupr::src#1 ]
[ ultoa_append::value#2 ultoa_append::value#0 ultoa_append::value#1 ]
[ ultoa_append::digit#2 ultoa_append::digit#1 ]
[ toupper::return#2 toupper::return#0 toupper::ch#0 ]
Added variable __snprintf_capacity to live range equivalence class [ __snprintf_capacity ]
Added variable __snprintf_size to live range equivalence class [ __snprintf_size ]
Added variable __snprintf_buffer to live range equivalence class [ __snprintf_buffer ]
Added variable printf_str::c#1 to live range equivalence class [ printf_str::c#1 ]
Added variable utoa::$4 to live range equivalence class [ utoa::$4 ]
Added variable utoa::$11 to live range equivalence class [ utoa::$11 ]
Added variable utoa::buffer#3 to live range equivalence class [ utoa::buffer#3 ]
Added variable utoa::$10 to live range equivalence class [ utoa::$10 ]
Added variable utoa::digit_value#0 to live range equivalence class [ utoa::digit_value#0 ]
Added variable utoa_append::buffer#0 to live range equivalence class [ utoa_append::buffer#0 ]
Added variable utoa_append::sub#0 to live range equivalence class [ utoa_append::sub#0 ]
Added variable utoa_append::return#0 to live range equivalence class [ utoa_append::return#0 ]
Added variable strlen::return#2 to live range equivalence class [ strlen::return#2 ]
Added variable printf_number_buffer::$19 to live range equivalence class [ printf_number_buffer::$19 ]
Added variable ultoa::$11 to live range equivalence class [ ultoa::$11 ]
Added variable ultoa::buffer#3 to live range equivalence class [ ultoa::buffer#3 ]
Added variable ultoa::$10 to live range equivalence class [ ultoa::$10 ]
Added variable ultoa::digit_value#0 to live range equivalence class [ ultoa::digit_value#0 ]
Added variable ultoa_append::buffer#0 to live range equivalence class [ ultoa_append::buffer#0 ]
Added variable ultoa_append::sub#0 to live range equivalence class [ ultoa_append::sub#0 ]
Added variable ultoa_append::return#0 to live range equivalence class [ ultoa_append::return#0 ]
Added variable toupper::return#3 to live range equivalence class [ toupper::return#3 ]
Added variable strupr::$0 to live range equivalence class [ strupr::$0 ]
Added variable printf_buffer to live range equivalence class [ printf_buffer ]
Complete equivalence classes
[ snputc::c#2 snputc::c#0 ]
[ printf_str::putc#12 printf_str::putc#0 ]
[ printf_str::s#11 printf_str::s#12 printf_str::s#0 ]
[ screen#25 screen#1 screen#0 ]
[ print::msg#5 print::msg#0 ]
[ utoa::radix#2 ]
[ utoa::max_digits#7 ]
[ utoa::digit_values#8 ]
[ utoa::digit#2 utoa::digit#1 ]
[ utoa::value#3 utoa::value#7 utoa::value#10 utoa::value#0 ]
[ utoa::started#2 utoa::started#4 ]
[ utoa::buffer#10 utoa::buffer#15 utoa::buffer#4 ]
[ printf_number_buffer::format_min_length#3 ]
[ printf_number_buffer::format_justify_left#10 ]
[ printf_number_buffer::format_zero_padding#10 ]
[ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 printf_number_buffer::buffer_sign#2 ]
[ printf_number_buffer::putc#10 ]
[ printf_number_buffer::format_upper_case#10 ]
[ printf_number_buffer::len#2 printf_number_buffer::len#0 printf_number_buffer::len#1 ]
[ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ]
[ ultoa::digit#2 ultoa::digit#1 ]
[ ultoa::value#2 ultoa::value#6 ultoa::value#0 ]
[ ultoa::started#2 ultoa::started#4 ]
[ ultoa::buffer#11 ultoa::buffer#14 ultoa::buffer#4 ]
[ utoa_append::value#2 utoa_append::value#0 utoa_append::value#1 ]
[ utoa_append::digit#2 utoa_append::digit#1 ]
[ strlen::str#3 strlen::str#0 ]
[ strlen::len#2 strlen::len#1 ]
[ printf_padding::length#6 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ]
[ printf_padding::pad#7 ]
[ printf_padding::putc#7 printf_padding::putc#1 printf_padding::putc#2 printf_padding::putc#0 ]
[ printf_padding::i#2 printf_padding::i#1 ]
[ strupr::src#2 strupr::src#1 ]
[ ultoa_append::value#2 ultoa_append::value#0 ultoa_append::value#1 ]
[ ultoa_append::digit#2 ultoa_append::digit#1 ]
[ toupper::return#2 toupper::return#0 toupper::ch#0 ]
[ __snprintf_capacity ]
[ __snprintf_size ]
[ __snprintf_buffer ]
[ printf_str::c#1 ]
[ utoa::$4 ]
[ utoa::$11 ]
[ utoa::buffer#3 ]
[ utoa::$10 ]
[ utoa::digit_value#0 ]
[ utoa_append::buffer#0 ]
[ utoa_append::sub#0 ]
[ utoa_append::return#0 ]
[ strlen::return#2 ]
[ printf_number_buffer::$19 ]
[ ultoa::$11 ]
[ ultoa::buffer#3 ]
[ ultoa::$10 ]
[ ultoa::digit_value#0 ]
[ ultoa_append::buffer#0 ]
[ ultoa_append::sub#0 ]
[ ultoa_append::return#0 ]
[ toupper::return#3 ]
[ strupr::$0 ]
[ printf_buffer ]
Allocated zp[2]:2 [ utoa_append::value#2 utoa_append::value#0 utoa_append::value#1 ]
Allocated zp[4]:4 [ ultoa_append::value#2 ultoa_append::value#0 ultoa_append::value#1 ]
Allocated zp[1]:8 [ utoa_append::digit#2 utoa_append::digit#1 ]
Allocated zp[1]:9 [ ultoa_append::digit#2 ultoa_append::digit#1 ]
Allocated zp[1]:10 [ toupper::return#2 toupper::return#0 toupper::ch#0 ]
Allocated zp[2]:11 [ utoa_append::sub#0 ]
Allocated zp[4]:13 [ ultoa_append::sub#0 ]
Allocated zp[2]:17 [ strlen::str#3 strlen::str#0 ]
Allocated zp[1]:19 [ printf_padding::i#2 printf_padding::i#1 ]
Allocated zp[2]:20 [ strupr::src#2 strupr::src#1 ]
Allocated zp[2]:22 [ printf_str::s#11 printf_str::s#12 printf_str::s#0 ]
Allocated zp[1]:24 [ toupper::return#3 ]
Allocated zp[1]:25 [ strupr::$0 ]
Allocated zp[2]:26 [ strlen::len#2 strlen::len#1 ]
Allocated zp[1]:28 [ printf_str::c#1 ]
Allocated zp[2]:29 [ ultoa::buffer#11 ultoa::buffer#14 ultoa::buffer#4 ]
Allocated zp[2]:31 [ utoa::buffer#10 utoa::buffer#15 utoa::buffer#4 ]
Allocated zp[2]:33 [ printf_padding::putc#7 printf_padding::putc#1 printf_padding::putc#2 printf_padding::putc#0 ]
Allocated zp[4]:35 [ ultoa::value#2 ultoa::value#6 ultoa::value#0 ]
Allocated zp[2]:39 [ utoa::value#3 utoa::value#7 utoa::value#10 utoa::value#0 ]
Allocated zp[1]:41 [ printf_padding::length#6 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ]
Allocated zp[1]:42 [ ultoa::digit#2 ultoa::digit#1 ]
Allocated zp[1]:43 [ utoa::digit#2 utoa::digit#1 ]
Allocated zp[1]:44 [ utoa::$4 ]
Allocated zp[1]:45 [ utoa::$10 ]
Allocated zp[2]:46 [ utoa_append::return#0 ]
Allocated zp[1]:48 [ ultoa::$10 ]
Allocated zp[4]:49 [ ultoa_append::return#0 ]
Allocated zp[1]:53 [ printf_padding::pad#7 ]
Allocated zp[1]:54 [ ultoa::started#2 ultoa::started#4 ]
Allocated zp[1]:55 [ utoa::started#2 utoa::started#4 ]
Allocated zp[2]:56 [ utoa_append::buffer#0 ]
Allocated zp[2]:58 [ ultoa_append::buffer#0 ]
Allocated zp[2]:60 [ printf_str::putc#12 printf_str::putc#0 ]
Allocated zp[1]:62 [ printf_number_buffer::len#2 printf_number_buffer::len#0 printf_number_buffer::len#1 ]
Allocated zp[2]:63 [ utoa::digit_value#0 ]
Allocated zp[4]:65 [ ultoa::digit_value#0 ]
Allocated zp[2]:69 [ print::msg#5 print::msg#0 ]
Allocated zp[1]:71 [ utoa::$11 ]
Allocated zp[2]:72 [ utoa::buffer#3 ]
Allocated zp[2]:74 [ strlen::return#2 ]
Allocated zp[1]:76 [ ultoa::$11 ]
Allocated zp[2]:77 [ ultoa::buffer#3 ]
Allocated zp[2]:79 [ screen#25 screen#1 screen#0 ]
Allocated zp[1]:81 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ]
Allocated zp[1]:82 [ utoa::radix#2 ]
Allocated zp[2]:83 [ printf_number_buffer::$19 ]
Allocated zp[1]:85 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 printf_number_buffer::buffer_sign#2 ]
Allocated zp[1]:86 [ utoa::max_digits#7 ]
Allocated zp[2]:87 [ utoa::digit_values#8 ]
Allocated zp[1]:89 [ snputc::c#2 snputc::c#0 ]
Allocated zp[2]:90 [ printf_number_buffer::putc#10 ]
Allocated zp[1]:92 [ printf_number_buffer::format_min_length#3 ]
Allocated zp[1]:93 [ printf_number_buffer::format_zero_padding#10 ]
Allocated zp[1]:94 [ printf_number_buffer::format_justify_left#10 ]
Allocated zp[1]:95 [ printf_number_buffer::format_upper_case#10 ]
Allocated zp[2]:96 [ __snprintf_size ]
Allocated zp[2]:98 [ __snprintf_buffer ]
Allocated zp[2]:100 [ __snprintf_capacity ]
Allocated mem[12] [ printf_buffer ]
REGISTER UPLIFT POTENTIAL REGISTERS
Statement [1] __snprintf_capacity = 0 [ printf_buffer ] (  [ printf_buffer ] { }  ) always clobbers reg byte a 
Statement [2] __snprintf_size = 0 [ printf_buffer ] (  [ printf_buffer ] { }  ) always clobbers reg byte a 
Statement [3] __snprintf_buffer = (char *) 0 [ printf_buffer ] (  [ printf_buffer ] { }  ) always clobbers reg byte a 
Statement [7] snputc::c#0 = stackidx(char,snputc::OFFSET_STACK_C) [ __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] (  [ __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { }  main:5::snputc:21 [ printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { }  main:5::snputc:31 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { }  main:5::snputc:35 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { }  main:5::snputc:51 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { }  main:5::snputc:63 [ screen#1 __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { }  ) always clobbers reg byte a reg byte x 
Statement [9] if(__snprintf_size<=__snprintf_capacity) goto snputc::@1 [ __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] (  [ __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { }  main:5::snputc:21 [ printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { }  main:5::snputc:31 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { }  main:5::snputc:35 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { }  main:5::snputc:51 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { }  main:5::snputc:63 [ screen#1 __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { }  ) always clobbers reg byte a 
Removing always clobbered register reg byte a as potential for zp[1]:89 [ snputc::c#2 snputc::c#0 ]
Statement [11] if(__snprintf_size!=__snprintf_capacity) goto snputc::@3 [ __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] (  [ __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { }  main:5::snputc:21 [ printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { }  main:5::snputc:31 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { }  main:5::snputc:35 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { }  main:5::snputc:51 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { }  main:5::snputc:63 [ screen#1 __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { }  ) always clobbers reg byte a 
Statement [14] *__snprintf_buffer = snputc::c#2 [ __snprintf_capacity __snprintf_size __snprintf_buffer ] (  [ __snprintf_capacity __snprintf_size __snprintf_buffer ] { }  main:5::snputc:21 [ printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer ] { }  main:5::snputc:31 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer ] { }  main:5::snputc:35 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer ] { }  main:5::snputc:51 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer ] { }  main:5::snputc:63 [ screen#1 __snprintf_capacity __snprintf_size __snprintf_buffer ] { }  ) always clobbers reg byte a reg byte y 
Statement [20] stackpush(char) = 0 [ __snprintf_capacity __snprintf_size __snprintf_buffer printf_buffer ] ( main:5 [ __snprintf_capacity __snprintf_size __snprintf_buffer printf_buffer ] { }  ) always clobbers reg byte a 
Statement sideeffect stackpullbytes(1) always clobbers reg byte a 
Statement [30] stackpush(char) = '!' [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] ( main:5 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { }  ) always clobbers reg byte a 
Statement sideeffect stackpullbytes(1) always clobbers reg byte a 
Statement [34] stackpush(char) = 0 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] ( main:5 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { { screen#1 = screen#25 } }  ) always clobbers reg byte a 
Statement sideeffect stackpullbytes(1) always clobbers reg byte a 
Statement [50] stackpush(char) = 0 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] ( main:5 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { { screen#1 = screen#25 } }  ) always clobbers reg byte a 
Statement sideeffect stackpullbytes(1) always clobbers reg byte a 
Statement [62] stackpush(char) = 0 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 ] ( main:5 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 ] { { screen#1 = screen#25 } }  ) always clobbers reg byte a 
Statement sideeffect stackpullbytes(1) always clobbers reg byte a 
Statement [67] __snprintf_capacity = $ffff [ __snprintf_capacity ] ( main:5::snprintf_init:17 [ printf_buffer __snprintf_capacity ] { }  main:5::snprintf_init:25 [ screen#1 printf_buffer __snprintf_capacity ] { }  main:5::snprintf_init:39 [ screen#1 printf_buffer __snprintf_capacity ] { }  main:5::snprintf_init:55 [ screen#1 printf_buffer __snprintf_capacity ] { }  ) always clobbers reg byte a 
Statement [68] __snprintf_size = 0 [ __snprintf_capacity __snprintf_size ] ( main:5::snprintf_init:17 [ printf_buffer __snprintf_capacity __snprintf_size ] { }  main:5::snprintf_init:25 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size ] { }  main:5::snprintf_init:39 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size ] { }  main:5::snprintf_init:55 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size ] { }  ) always clobbers reg byte a 
Statement [69] __snprintf_buffer = BUF [ __snprintf_capacity __snprintf_size __snprintf_buffer ] ( main:5::snprintf_init:17 [ printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer ] { }  main:5::snprintf_init:25 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer ] { }  main:5::snprintf_init:39 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer ] { }  main:5::snprintf_init:55 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer ] { }  ) always clobbers reg byte a 
Statement [73] printf_str::c#1 = *printf_str::s#11 [ printf_str::s#11 printf_str::c#1 printf_buffer ] ( main:5::printf_str:19 [ __snprintf_capacity __snprintf_size __snprintf_buffer printf_str::s#11 printf_str::c#1 printf_buffer ] { }  main:5::printf_str:27 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { }  main:5::printf_str:33 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { }  main:5::printf_str:41 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { }  main:5::printf_str:45 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { }  main:5::printf_str:49 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { }  main:5::printf_str:57 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { }  main:5::printf_str:61 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { }  main:5::printf_string:29::printf_str:89 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { }  main:5::printf_sint:43::printf_number_buffer:95::printf_str:173 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 printf_str::s#11 printf_str::c#1 printf_buffer ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } }  main:5::printf_uint:47::printf_number_buffer:101::printf_str:173 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 printf_str::s#11 printf_str::c#1 printf_buffer ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } }  main:5::printf_slong:59::printf_number_buffer:107::printf_str:173 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 printf_str::s#11 printf_str::c#1 printf_buffer ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } }  ) always clobbers reg byte a reg byte y 
Removing always clobbered register reg byte a as potential for zp[1]:94 [ printf_number_buffer::format_justify_left#10 ]
Removing always clobbered register reg byte y as potential for zp[1]:94 [ printf_number_buffer::format_justify_left#10 ]
Removing always clobbered register reg byte a as potential for zp[1]:93 [ printf_number_buffer::format_zero_padding#10 ]
Removing always clobbered register reg byte y as potential for zp[1]:93 [ printf_number_buffer::format_zero_padding#10 ]
Removing always clobbered register reg byte a as potential for zp[1]:81 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ]
Removing always clobbered register reg byte y as potential for zp[1]:81 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ]
Statement [78] callexecute *printf_str::putc#12  [ printf_str::s#0 printf_buffer ] ( main:5::printf_str:19 [ __snprintf_capacity __snprintf_size __snprintf_buffer printf_str::s#0 printf_buffer ] { }  main:5::printf_str:27 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#0 printf_buffer ] { }  main:5::printf_str:33 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#0 printf_buffer ] { }  main:5::printf_str:41 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#0 printf_buffer ] { }  main:5::printf_str:45 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#0 printf_buffer ] { }  main:5::printf_str:49 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#0 printf_buffer ] { }  main:5::printf_str:57 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#0 printf_buffer ] { }  main:5::printf_str:61 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#0 printf_buffer ] { }  main:5::printf_string:29::printf_str:89 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#0 printf_buffer ] { }  main:5::printf_sint:43::printf_number_buffer:95::printf_str:173 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 printf_str::s#0 printf_buffer ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } }  main:5::printf_uint:47::printf_number_buffer:101::printf_str:173 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 printf_str::s#0 printf_buffer ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } }  main:5::printf_slong:59::printf_number_buffer:107::printf_str:173 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 printf_str::s#0 printf_buffer ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } }  ) always clobbers reg byte a reg byte x reg byte y 
Removing always clobbered register reg byte x as potential for zp[1]:94 [ printf_number_buffer::format_justify_left#10 ]
Removing always clobbered register reg byte x as potential for zp[1]:93 [ printf_number_buffer::format_zero_padding#10 ]
Removing always clobbered register reg byte x as potential for zp[1]:81 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ]
Statement sideeffect stackpullbytes(1) always clobbers reg byte a 
Statement [82] if(0!=*print::msg#5) goto print::@2 [ screen#1 print::msg#5 ] ( main:5::print:23 [ printf_buffer screen#1 print::msg#5 ] { }  main:5::print:37 [ printf_buffer screen#1 print::msg#5 ] { { screen#1 = screen#25 } }  main:5::print:53 [ printf_buffer screen#1 print::msg#5 ] { { screen#1 = screen#25 } }  main:5::print:65 [ screen#1 print::msg#5 ] { { screen#1 = screen#25 } }  ) always clobbers reg byte a reg byte y 
Statement [84] *screen#1 = *print::msg#5 [ screen#1 print::msg#5 ] ( main:5::print:23 [ printf_buffer screen#1 print::msg#5 ] { }  main:5::print:37 [ printf_buffer screen#1 print::msg#5 ] { { screen#1 = screen#25 } }  main:5::print:53 [ printf_buffer screen#1 print::msg#5 ] { { screen#1 = screen#25 } }  main:5::print:65 [ screen#1 print::msg#5 ] { { screen#1 = screen#25 } }  ) always clobbers reg byte a reg byte y 
Statement [91] *((char *)&printf_buffer) = 0 [ printf_buffer ] ( main:5::printf_sint:43 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { }  ) always clobbers reg byte a 
Statement [98] *((char *)&printf_buffer) = 0 [ printf_buffer ] ( main:5::printf_uint:47 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { }  ) always clobbers reg byte a 
Statement [103] *((char *)&printf_buffer) = 0 [ printf_buffer ] ( main:5::printf_slong:59 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { }  ) always clobbers reg byte a 
Statement [114] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS) = 'e' [ printf_buffer ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { }  main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { }  ) always clobbers reg byte a 
Statement [115] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1) = 'r' [ printf_buffer ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { }  main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { }  ) always clobbers reg byte a 
Statement [116] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+2) = 'r' [ printf_buffer ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { }  main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { }  ) always clobbers reg byte a 
Statement [117] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+3) = 0 [ printf_buffer ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { }  main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { }  ) always clobbers reg byte a 
Statement [124] *utoa::buffer#10 = DIGITS[utoa::$11] [ printf_buffer utoa::buffer#10 ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::buffer#10 ] { }  main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::buffer#10 ] { }  ) always clobbers reg byte a reg byte y 
Statement [125] utoa::buffer#3 = ++ utoa::buffer#10 [ printf_buffer utoa::buffer#3 ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::buffer#3 ] { }  main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::buffer#3 ] { }  ) always clobbers reg byte a 
Statement [126] *utoa::buffer#3 = 0 [ printf_buffer ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { }  main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { }  ) always clobbers reg byte a reg byte y 
Statement [127] utoa::$10 = utoa::digit#2 << 1 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::$10 ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::$10 ] { }  main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::$10 ] { }  ) always clobbers reg byte a 
Removing always clobbered register reg byte a as potential for zp[1]:86 [ utoa::max_digits#7 ]
Removing always clobbered register reg byte a as potential for zp[1]:43 [ utoa::digit#2 utoa::digit#1 ]
Removing always clobbered register reg byte a as potential for zp[1]:55 [ utoa::started#2 utoa::started#4 ]
Statement [128] utoa::digit_value#0 = utoa::digit_values#8[utoa::$10] [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] { }  main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] { }  ) always clobbers reg byte a reg byte y 
Removing always clobbered register reg byte y as potential for zp[1]:86 [ utoa::max_digits#7 ]
Removing always clobbered register reg byte y as potential for zp[1]:43 [ utoa::digit#2 utoa::digit#1 ]
Removing always clobbered register reg byte y as potential for zp[1]:55 [ utoa::started#2 utoa::started#4 ]
Statement [130] if(utoa::value#3>=utoa::digit_value#0) goto utoa::@10 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] { }  main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] { }  ) always clobbers reg byte a 
Statement [133] utoa_append::buffer#0 = utoa::buffer#10 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } }  main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } }  ) always clobbers reg byte a 
Statement [134] utoa_append::value#0 = utoa::value#3 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 utoa_append::value#0 ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 utoa_append::value#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } }  main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 utoa_append::value#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } }  ) always clobbers reg byte a 
Statement [135] utoa_append::sub#0 = utoa::digit_value#0 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::value#0 utoa_append::sub#0 ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::value#0 utoa_append::sub#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } }  main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::value#0 utoa_append::sub#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } }  ) always clobbers reg byte a 
Statement [137] utoa_append::return#0 = utoa_append::value#2 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::return#0 ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::return#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } }  main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::return#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } }  ) always clobbers reg byte a 
Statement [138] utoa::value#0 = utoa_append::return#0 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::value#0 ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::value#0 ] { }  main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::value#0 ] { }  ) always clobbers reg byte a 
Statement [144] strlen::return#2 = strlen::len#2 [ printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } }  main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strlen::return#2 = strlen::len#2 } }  main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } }  ) always clobbers reg byte a 
Removing always clobbered register reg byte a as potential for zp[1]:92 [ printf_number_buffer::format_min_length#3 ]
Removing always clobbered register reg byte a as potential for zp[1]:85 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 printf_number_buffer::buffer_sign#2 ]
Removing always clobbered register reg byte a as potential for zp[1]:95 [ printf_number_buffer::format_upper_case#10 ]
Statement [145] printf_number_buffer::$19 = strlen::return#2 [ printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } }  main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } }  main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } }  ) always clobbers reg byte a 
Statement [150] printf_number_buffer::padding#1 = (signed char)printf_number_buffer::format_min_length#3 - printf_number_buffer::len#2 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } }  main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } }  main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } }  ) always clobbers reg byte a 
Statement [151] if(printf_number_buffer::padding#1>=0) goto printf_number_buffer::@21 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } }  main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } }  main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } }  ) always clobbers reg byte a 
Statement [154] if(0!=printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@2 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } }  main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } }  main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } }  ) always clobbers reg byte a 
Statement [155] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@2 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } }  main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } }  main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } }  ) always clobbers reg byte a 
Statement [156] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@8 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } }  main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } }  main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } }  ) always clobbers reg byte a 
Statement [157] printf_padding::putc#0 = printf_number_buffer::putc#10 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  ) always clobbers reg byte a 
Statement [161] stackpush(char) = printf_number_buffer::buffer_sign#10 [ ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } }  main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } }  main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } }  ) always clobbers reg byte a 
Statement [162] callexecute *printf_number_buffer::putc#10  [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } }  main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } }  main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } }  ) always clobbers reg byte a reg byte x reg byte y 
Removing always clobbered register reg byte x as potential for zp[1]:95 [ printf_number_buffer::format_upper_case#10 ]
Removing always clobbered register reg byte y as potential for zp[1]:95 [ printf_number_buffer::format_upper_case#10 ]
Statement sideeffect stackpullbytes(1) always clobbers reg byte a 
Statement [164] if(0==printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@4 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } }  main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } }  main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } }  ) always clobbers reg byte a 
Statement [165] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@10 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } }  main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } }  main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } }  ) always clobbers reg byte a 
Statement [166] printf_padding::putc#1 = printf_number_buffer::putc#10 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#1 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_padding::putc#1 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#1 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_padding::putc#1 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_padding::putc#1 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  ) always clobbers reg byte a 
Statement [169] if(0==printf_number_buffer::format_upper_case#10) goto printf_number_buffer::@5 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } }  main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } }  main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } }  ) always clobbers reg byte a 
Statement [172] printf_str::putc#0 = printf_number_buffer::putc#10 [ printf_str::putc#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::putc#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } }  main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::putc#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } }  main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::putc#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } }  ) always clobbers reg byte a 
Statement [174] if(0==printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@return [ printf_buffer printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } }  main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } }  main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } }  ) always clobbers reg byte a 
Statement [175] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@return [ printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } }  main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } }  main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } }  ) always clobbers reg byte a 
Statement [176] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@12 [ printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } }  main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } }  main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } }  ) always clobbers reg byte a 
Statement [177] printf_padding::putc#2 = printf_number_buffer::putc#10 [ printf_buffer printf_number_buffer::padding#10 printf_padding::putc#2 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::padding#10 printf_padding::putc#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_padding::putc#2 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::padding#10 printf_padding::putc#2 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_padding::putc#2 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::padding#10 printf_padding::putc#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_padding::putc#2 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  ) always clobbers reg byte a 
Statement [184] ultoa::$11 = (char)ultoa::value#2 [ printf_buffer ultoa::buffer#11 ultoa::$11 ] ( main:5::printf_slong:59::ultoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ultoa::buffer#11 ultoa::$11 ] { }  ) always clobbers reg byte a 
Statement [185] *ultoa::buffer#11 = DIGITS[ultoa::$11] [ printf_buffer ultoa::buffer#11 ] ( main:5::printf_slong:59::ultoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ultoa::buffer#11 ] { }  ) always clobbers reg byte a reg byte y 
Statement [186] ultoa::buffer#3 = ++ ultoa::buffer#11 [ printf_buffer ultoa::buffer#3 ] ( main:5::printf_slong:59::ultoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ultoa::buffer#3 ] { }  ) always clobbers reg byte a 
Statement [187] *ultoa::buffer#3 = 0 [ printf_buffer ] ( main:5::printf_slong:59::ultoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { }  ) always clobbers reg byte a reg byte y 
Statement [189] ultoa::$10 = ultoa::digit#2 << 2 [ printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::$10 ] ( main:5::printf_slong:59::ultoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::$10 ] { }  ) always clobbers reg byte a 
Removing always clobbered register reg byte a as potential for zp[1]:42 [ ultoa::digit#2 ultoa::digit#1 ]
Removing always clobbered register reg byte a as potential for zp[1]:54 [ ultoa::started#2 ultoa::started#4 ]
Statement [190] ultoa::digit_value#0 = RADIX_DECIMAL_VALUES_LONG[ultoa::$10] [ printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::digit_value#0 ] ( main:5::printf_slong:59::ultoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::digit_value#0 ] { }  ) always clobbers reg byte a 
Statement [192] if(ultoa::value#2>=ultoa::digit_value#0) goto ultoa::@5 [ printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::digit_value#0 ] ( main:5::printf_slong:59::ultoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::digit_value#0 ] { }  ) always clobbers reg byte a 
Statement [195] ultoa_append::buffer#0 = ultoa::buffer#11 [ printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::buffer#11 ultoa::digit_value#0 ultoa_append::buffer#0 ] ( main:5::printf_slong:59::ultoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::buffer#11 ultoa::digit_value#0 ultoa_append::buffer#0 ] { { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } }  ) always clobbers reg byte a 
Statement [196] ultoa_append::value#0 = ultoa::value#2 [ printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa::digit_value#0 ultoa_append::buffer#0 ultoa_append::value#0 ] ( main:5::printf_slong:59::ultoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa::digit_value#0 ultoa_append::buffer#0 ultoa_append::value#0 ] { { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } }  ) always clobbers reg byte a 
Statement [197] ultoa_append::sub#0 = ultoa::digit_value#0 [ printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::value#0 ultoa_append::sub#0 ] ( main:5::printf_slong:59::ultoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::value#0 ultoa_append::sub#0 ] { { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } }  ) always clobbers reg byte a 
Statement [199] ultoa_append::return#0 = ultoa_append::value#2 [ printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::return#0 ] ( main:5::printf_slong:59::ultoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::return#0 ] { { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } }  ) always clobbers reg byte a 
Statement [200] ultoa::value#0 = ultoa_append::return#0 [ printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa::value#0 ] ( main:5::printf_slong:59::ultoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa::value#0 ] { }  ) always clobbers reg byte a 
Statement [204] if(utoa_append::value#2>=utoa_append::sub#0) goto utoa_append::@2 [ utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#2 utoa_append::digit#2 ] ( main:5::printf_sint:43::utoa:93::utoa_append:136 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#2 utoa_append::digit#2 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } }  main:5::printf_uint:47::utoa:99::utoa_append:136 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#2 utoa_append::digit#2 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } }  ) always clobbers reg byte a 
Removing always clobbered register reg byte a as potential for zp[1]:8 [ utoa_append::digit#2 utoa_append::digit#1 ]
Statement [205] *utoa_append::buffer#0 = DIGITS[utoa_append::digit#2] [ utoa_append::value#2 ] ( main:5::printf_sint:43::utoa:93::utoa_append:136 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::value#2 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } }  main:5::printf_uint:47::utoa:99::utoa_append:136 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::value#2 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } }  ) always clobbers reg byte a reg byte y 
Statement [208] utoa_append::value#1 = utoa_append::value#2 - utoa_append::sub#0 [ utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#1 utoa_append::digit#1 ] ( main:5::printf_sint:43::utoa:93::utoa_append:136 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#1 utoa_append::digit#1 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } }  main:5::printf_uint:47::utoa:99::utoa_append:136 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#1 utoa_append::digit#1 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } }  ) always clobbers reg byte a 
Statement [211] if(0!=*strlen::str#3) goto strlen::@2 [ printf_buffer strlen::len#2 strlen::str#3 ] ( main:5::printf_sint:43::printf_number_buffer:95::strlen:143 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_buffer strlen::len#2 strlen::str#3 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } }  main:5::printf_uint:47::printf_number_buffer:101::strlen:143 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_buffer strlen::len#2 strlen::str#3 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strlen::return#2 = strlen::len#2 } }  main:5::printf_slong:59::printf_number_buffer:107::strlen:143 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_buffer strlen::len#2 strlen::str#3 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } }  ) always clobbers reg byte a reg byte y 
Removing always clobbered register reg byte y as potential for zp[1]:92 [ printf_number_buffer::format_min_length#3 ]
Removing always clobbered register reg byte y as potential for zp[1]:85 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 printf_number_buffer::buffer_sign#2 ]
Statement [220] callexecute *printf_padding::putc#7  [ printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 ] ( main:5::printf_sint:43::printf_number_buffer:95::printf_padding:159 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_uint:47::printf_number_buffer:101::printf_padding:159 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_slong:59::printf_number_buffer:107::printf_padding:159 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_sint:43::printf_number_buffer:95::printf_padding:168 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_padding::putc#1 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_uint:47::printf_number_buffer:101::printf_padding:168 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_padding::putc#1 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_slong:59::printf_number_buffer:107::printf_padding:168 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_padding::putc#1 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_sint:43::printf_number_buffer:95::printf_padding:179 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_padding::putc#2 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_uint:47::printf_number_buffer:101::printf_padding:179 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_padding::putc#2 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_slong:59::printf_number_buffer:107::printf_padding:179 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_padding::putc#2 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  ) always clobbers reg byte a reg byte x reg byte y 
Removing always clobbered register reg byte x as potential for zp[1]:85 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 printf_number_buffer::buffer_sign#2 ]
Removing always clobbered register reg byte a as potential for zp[1]:41 [ printf_padding::length#6 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ]
Removing always clobbered register reg byte x as potential for zp[1]:41 [ printf_padding::length#6 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ]
Removing always clobbered register reg byte y as potential for zp[1]:41 [ printf_padding::length#6 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ]
Removing always clobbered register reg byte a as potential for zp[1]:53 [ printf_padding::pad#7 ]
Removing always clobbered register reg byte x as potential for zp[1]:53 [ printf_padding::pad#7 ]
Removing always clobbered register reg byte y as potential for zp[1]:53 [ printf_padding::pad#7 ]
Removing always clobbered register reg byte a as potential for zp[1]:19 [ printf_padding::i#2 printf_padding::i#1 ]
Removing always clobbered register reg byte x as potential for zp[1]:19 [ printf_padding::i#2 printf_padding::i#1 ]
Removing always clobbered register reg byte y as potential for zp[1]:19 [ printf_padding::i#2 printf_padding::i#1 ]
Statement sideeffect stackpullbytes(1) always clobbers reg byte a 
Statement [225] if(0!=*strupr::src#2) goto strupr::@2 [ strupr::src#2 ] ( main:5::printf_sint:43::printf_number_buffer:95::strupr:171 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } }  main:5::printf_uint:47::printf_number_buffer:101::strupr:171 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } }  main:5::printf_slong:59::printf_number_buffer:107::strupr:171 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } }  ) always clobbers reg byte a reg byte y 
Statement [227] toupper::ch#0 = *strupr::src#2 [ strupr::src#2 toupper::ch#0 ] ( main:5::printf_sint:43::printf_number_buffer:95::strupr:171 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 toupper::ch#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { toupper::return#2 = toupper::return#3 } }  main:5::printf_uint:47::printf_number_buffer:101::strupr:171 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 toupper::ch#0 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { toupper::return#2 = toupper::return#3 } }  main:5::printf_slong:59::printf_number_buffer:107::strupr:171 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 toupper::ch#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { toupper::return#2 = toupper::return#3 } }  ) always clobbers reg byte a reg byte y 
Statement [231] *strupr::src#2 = strupr::$0 [ strupr::src#2 ] ( main:5::printf_sint:43::printf_number_buffer:95::strupr:171 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } }  main:5::printf_uint:47::printf_number_buffer:101::strupr:171 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } }  main:5::printf_slong:59::printf_number_buffer:107::strupr:171 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } }  ) always clobbers reg byte y 
Statement [235] if(ultoa_append::value#2>=ultoa_append::sub#0) goto ultoa_append::@2 [ ultoa_append::buffer#0 ultoa_append::sub#0 ultoa_append::value#2 ultoa_append::digit#2 ] ( main:5::printf_slong:59::ultoa:105::ultoa_append:198 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::sub#0 ultoa_append::value#2 ultoa_append::digit#2 ] { { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } }  ) always clobbers reg byte a 
Removing always clobbered register reg byte a as potential for zp[1]:9 [ ultoa_append::digit#2 ultoa_append::digit#1 ]
Statement [236] *ultoa_append::buffer#0 = DIGITS[ultoa_append::digit#2] [ ultoa_append::value#2 ] ( main:5::printf_slong:59::ultoa:105::ultoa_append:198 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::value#2 ] { { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } }  ) always clobbers reg byte a reg byte y 
Removing always clobbered register reg byte y as potential for zp[1]:42 [ ultoa::digit#2 ultoa::digit#1 ]
Statement [239] ultoa_append::value#1 = ultoa_append::value#2 - ultoa_append::sub#0 [ ultoa_append::buffer#0 ultoa_append::sub#0 ultoa_append::value#1 ultoa_append::digit#1 ] ( main:5::printf_slong:59::ultoa:105::ultoa_append:198 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::sub#0 ultoa_append::value#1 ultoa_append::digit#1 ] { { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } }  ) always clobbers reg byte a 
Statement [242] toupper::return#0 = toupper::ch#0 + 'A'-'a' [ toupper::return#0 ] ( main:5::printf_sint:43::printf_number_buffer:95::strupr:171::toupper:228 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 toupper::return#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { toupper::return#2 = toupper::return#3 } }  main:5::printf_uint:47::printf_number_buffer:101::strupr:171::toupper:228 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 toupper::return#0 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { toupper::return#2 = toupper::return#3 } }  main:5::printf_slong:59::printf_number_buffer:107::strupr:171::toupper:228 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 toupper::return#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { toupper::return#2 = toupper::return#3 } }  ) always clobbers reg byte a 
Statement [1] __snprintf_capacity = 0 [ printf_buffer ] (  [ printf_buffer ] { }  ) always clobbers reg byte a 
Statement [2] __snprintf_size = 0 [ printf_buffer ] (  [ printf_buffer ] { }  ) always clobbers reg byte a 
Statement [3] __snprintf_buffer = (char *) 0 [ printf_buffer ] (  [ printf_buffer ] { }  ) always clobbers reg byte a 
Statement [7] snputc::c#0 = stackidx(char,snputc::OFFSET_STACK_C) [ __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] (  [ __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { }  main:5::snputc:21 [ printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { }  main:5::snputc:31 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { }  main:5::snputc:35 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { }  main:5::snputc:51 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { }  main:5::snputc:63 [ screen#1 __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { }  ) always clobbers reg byte a reg byte x 
Statement [9] if(__snprintf_size<=__snprintf_capacity) goto snputc::@1 [ __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] (  [ __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { }  main:5::snputc:21 [ printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { }  main:5::snputc:31 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { }  main:5::snputc:35 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { }  main:5::snputc:51 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { }  main:5::snputc:63 [ screen#1 __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { }  ) always clobbers reg byte a 
Statement [11] if(__snprintf_size!=__snprintf_capacity) goto snputc::@3 [ __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] (  [ __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { }  main:5::snputc:21 [ printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { }  main:5::snputc:31 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { }  main:5::snputc:35 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { }  main:5::snputc:51 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { }  main:5::snputc:63 [ screen#1 __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { }  ) always clobbers reg byte a 
Statement [14] *__snprintf_buffer = snputc::c#2 [ __snprintf_capacity __snprintf_size __snprintf_buffer ] (  [ __snprintf_capacity __snprintf_size __snprintf_buffer ] { }  main:5::snputc:21 [ printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer ] { }  main:5::snputc:31 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer ] { }  main:5::snputc:35 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer ] { }  main:5::snputc:51 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer ] { }  main:5::snputc:63 [ screen#1 __snprintf_capacity __snprintf_size __snprintf_buffer ] { }  ) always clobbers reg byte a reg byte y 
Statement [20] stackpush(char) = 0 [ __snprintf_capacity __snprintf_size __snprintf_buffer printf_buffer ] ( main:5 [ __snprintf_capacity __snprintf_size __snprintf_buffer printf_buffer ] { }  ) always clobbers reg byte a 
Statement sideeffect stackpullbytes(1) always clobbers reg byte a 
Statement [30] stackpush(char) = '!' [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] ( main:5 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { }  ) always clobbers reg byte a 
Statement sideeffect stackpullbytes(1) always clobbers reg byte a 
Statement [34] stackpush(char) = 0 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] ( main:5 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { { screen#1 = screen#25 } }  ) always clobbers reg byte a 
Statement sideeffect stackpullbytes(1) always clobbers reg byte a 
Statement [50] stackpush(char) = 0 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] ( main:5 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { { screen#1 = screen#25 } }  ) always clobbers reg byte a 
Statement sideeffect stackpullbytes(1) always clobbers reg byte a 
Statement [62] stackpush(char) = 0 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 ] ( main:5 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 ] { { screen#1 = screen#25 } }  ) always clobbers reg byte a 
Statement sideeffect stackpullbytes(1) always clobbers reg byte a 
Statement [67] __snprintf_capacity = $ffff [ __snprintf_capacity ] ( main:5::snprintf_init:17 [ printf_buffer __snprintf_capacity ] { }  main:5::snprintf_init:25 [ screen#1 printf_buffer __snprintf_capacity ] { }  main:5::snprintf_init:39 [ screen#1 printf_buffer __snprintf_capacity ] { }  main:5::snprintf_init:55 [ screen#1 printf_buffer __snprintf_capacity ] { }  ) always clobbers reg byte a 
Statement [68] __snprintf_size = 0 [ __snprintf_capacity __snprintf_size ] ( main:5::snprintf_init:17 [ printf_buffer __snprintf_capacity __snprintf_size ] { }  main:5::snprintf_init:25 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size ] { }  main:5::snprintf_init:39 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size ] { }  main:5::snprintf_init:55 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size ] { }  ) always clobbers reg byte a 
Statement [69] __snprintf_buffer = BUF [ __snprintf_capacity __snprintf_size __snprintf_buffer ] ( main:5::snprintf_init:17 [ printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer ] { }  main:5::snprintf_init:25 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer ] { }  main:5::snprintf_init:39 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer ] { }  main:5::snprintf_init:55 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer ] { }  ) always clobbers reg byte a 
Statement [73] printf_str::c#1 = *printf_str::s#11 [ printf_str::s#11 printf_str::c#1 printf_buffer ] ( main:5::printf_str:19 [ __snprintf_capacity __snprintf_size __snprintf_buffer printf_str::s#11 printf_str::c#1 printf_buffer ] { }  main:5::printf_str:27 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { }  main:5::printf_str:33 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { }  main:5::printf_str:41 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { }  main:5::printf_str:45 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { }  main:5::printf_str:49 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { }  main:5::printf_str:57 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { }  main:5::printf_str:61 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { }  main:5::printf_string:29::printf_str:89 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { }  main:5::printf_sint:43::printf_number_buffer:95::printf_str:173 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 printf_str::s#11 printf_str::c#1 printf_buffer ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } }  main:5::printf_uint:47::printf_number_buffer:101::printf_str:173 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 printf_str::s#11 printf_str::c#1 printf_buffer ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } }  main:5::printf_slong:59::printf_number_buffer:107::printf_str:173 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 printf_str::s#11 printf_str::c#1 printf_buffer ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } }  ) always clobbers reg byte a reg byte y 
Statement [78] callexecute *printf_str::putc#12  [ printf_str::s#0 printf_buffer ] ( main:5::printf_str:19 [ __snprintf_capacity __snprintf_size __snprintf_buffer printf_str::s#0 printf_buffer ] { }  main:5::printf_str:27 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#0 printf_buffer ] { }  main:5::printf_str:33 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#0 printf_buffer ] { }  main:5::printf_str:41 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#0 printf_buffer ] { }  main:5::printf_str:45 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#0 printf_buffer ] { }  main:5::printf_str:49 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#0 printf_buffer ] { }  main:5::printf_str:57 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#0 printf_buffer ] { }  main:5::printf_str:61 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#0 printf_buffer ] { }  main:5::printf_string:29::printf_str:89 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#0 printf_buffer ] { }  main:5::printf_sint:43::printf_number_buffer:95::printf_str:173 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 printf_str::s#0 printf_buffer ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } }  main:5::printf_uint:47::printf_number_buffer:101::printf_str:173 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 printf_str::s#0 printf_buffer ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } }  main:5::printf_slong:59::printf_number_buffer:107::printf_str:173 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 printf_str::s#0 printf_buffer ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } }  ) always clobbers reg byte a reg byte x reg byte y 
Statement sideeffect stackpullbytes(1) always clobbers reg byte a 
Statement [82] if(0!=*print::msg#5) goto print::@2 [ screen#1 print::msg#5 ] ( main:5::print:23 [ printf_buffer screen#1 print::msg#5 ] { }  main:5::print:37 [ printf_buffer screen#1 print::msg#5 ] { { screen#1 = screen#25 } }  main:5::print:53 [ printf_buffer screen#1 print::msg#5 ] { { screen#1 = screen#25 } }  main:5::print:65 [ screen#1 print::msg#5 ] { { screen#1 = screen#25 } }  ) always clobbers reg byte a reg byte y 
Statement [84] *screen#1 = *print::msg#5 [ screen#1 print::msg#5 ] ( main:5::print:23 [ printf_buffer screen#1 print::msg#5 ] { }  main:5::print:37 [ printf_buffer screen#1 print::msg#5 ] { { screen#1 = screen#25 } }  main:5::print:53 [ printf_buffer screen#1 print::msg#5 ] { { screen#1 = screen#25 } }  main:5::print:65 [ screen#1 print::msg#5 ] { { screen#1 = screen#25 } }  ) always clobbers reg byte a reg byte y 
Statement [91] *((char *)&printf_buffer) = 0 [ printf_buffer ] ( main:5::printf_sint:43 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { }  ) always clobbers reg byte a 
Statement [94] printf_number_buffer::buffer_sign#1 = *((char *)&printf_buffer) [ printf_buffer printf_number_buffer::buffer_sign#1 ] ( main:5::printf_sint:43 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::buffer_sign#1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } }  ) always clobbers reg byte a 
Statement [98] *((char *)&printf_buffer) = 0 [ printf_buffer ] ( main:5::printf_uint:47 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { }  ) always clobbers reg byte a 
Statement [100] printf_number_buffer::buffer_sign#2 = *((char *)&printf_buffer) [ printf_buffer printf_number_buffer::buffer_sign#2 ] ( main:5::printf_uint:47 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::buffer_sign#2 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } }  ) always clobbers reg byte a 
Statement [103] *((char *)&printf_buffer) = 0 [ printf_buffer ] ( main:5::printf_slong:59 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { }  ) always clobbers reg byte a 
Statement [106] printf_number_buffer::buffer_sign#0 = *((char *)&printf_buffer) [ printf_buffer printf_number_buffer::buffer_sign#0 ] ( main:5::printf_slong:59 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::buffer_sign#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } }  ) always clobbers reg byte a 
Statement [114] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS) = 'e' [ printf_buffer ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { }  main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { }  ) always clobbers reg byte a 
Statement [115] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1) = 'r' [ printf_buffer ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { }  main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { }  ) always clobbers reg byte a 
Statement [116] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+2) = 'r' [ printf_buffer ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { }  main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { }  ) always clobbers reg byte a 
Statement [117] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+3) = 0 [ printf_buffer ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { }  main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { }  ) always clobbers reg byte a 
Statement [124] *utoa::buffer#10 = DIGITS[utoa::$11] [ printf_buffer utoa::buffer#10 ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::buffer#10 ] { }  main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::buffer#10 ] { }  ) always clobbers reg byte a reg byte y 
Statement [125] utoa::buffer#3 = ++ utoa::buffer#10 [ printf_buffer utoa::buffer#3 ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::buffer#3 ] { }  main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::buffer#3 ] { }  ) always clobbers reg byte a 
Statement [126] *utoa::buffer#3 = 0 [ printf_buffer ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { }  main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { }  ) always clobbers reg byte a reg byte y 
Statement [127] utoa::$10 = utoa::digit#2 << 1 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::$10 ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::$10 ] { }  main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::$10 ] { }  ) always clobbers reg byte a 
Statement [128] utoa::digit_value#0 = utoa::digit_values#8[utoa::$10] [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] { }  main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] { }  ) always clobbers reg byte a reg byte y 
Statement [130] if(utoa::value#3>=utoa::digit_value#0) goto utoa::@10 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] { }  main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] { }  ) always clobbers reg byte a 
Statement [133] utoa_append::buffer#0 = utoa::buffer#10 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } }  main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } }  ) always clobbers reg byte a 
Statement [134] utoa_append::value#0 = utoa::value#3 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 utoa_append::value#0 ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 utoa_append::value#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } }  main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 utoa_append::value#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } }  ) always clobbers reg byte a 
Statement [135] utoa_append::sub#0 = utoa::digit_value#0 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::value#0 utoa_append::sub#0 ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::value#0 utoa_append::sub#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } }  main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::value#0 utoa_append::sub#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } }  ) always clobbers reg byte a 
Statement [137] utoa_append::return#0 = utoa_append::value#2 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::return#0 ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::return#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } }  main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::return#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } }  ) always clobbers reg byte a 
Statement [138] utoa::value#0 = utoa_append::return#0 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::value#0 ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::value#0 ] { }  main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::value#0 ] { }  ) always clobbers reg byte a 
Statement [144] strlen::return#2 = strlen::len#2 [ printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } }  main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strlen::return#2 = strlen::len#2 } }  main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } }  ) always clobbers reg byte a 
Statement [145] printf_number_buffer::$19 = strlen::return#2 [ printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } }  main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } }  main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } }  ) always clobbers reg byte a 
Statement [147] if(0==printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@13 [ printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } }  main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } }  main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } }  ) always clobbers reg byte a 
Removing always clobbered register reg byte a as potential for zp[1]:62 [ printf_number_buffer::len#2 printf_number_buffer::len#0 printf_number_buffer::len#1 ]
Statement [150] printf_number_buffer::padding#1 = (signed char)printf_number_buffer::format_min_length#3 - printf_number_buffer::len#2 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } }  main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } }  main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } }  ) always clobbers reg byte a 
Statement [151] if(printf_number_buffer::padding#1>=0) goto printf_number_buffer::@21 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } }  main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } }  main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } }  ) always clobbers reg byte a 
Statement [154] if(0!=printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@2 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } }  main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } }  main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } }  ) always clobbers reg byte a 
Statement [155] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@2 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } }  main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } }  main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } }  ) always clobbers reg byte a 
Statement [156] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@8 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } }  main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } }  main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } }  ) always clobbers reg byte a 
Statement [157] printf_padding::putc#0 = printf_number_buffer::putc#10 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  ) always clobbers reg byte a 
Statement [158] printf_padding::length#0 = (char)printf_number_buffer::padding#10 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 printf_padding::length#0 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 printf_padding::length#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 printf_padding::length#0 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 printf_padding::length#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  ) always clobbers reg byte a 
Statement [160] if(0==printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@3 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } }  main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } }  main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } }  ) always clobbers reg byte a 
Statement [161] stackpush(char) = printf_number_buffer::buffer_sign#10 [ ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } }  main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } }  main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } }  ) always clobbers reg byte a 
Statement [162] callexecute *printf_number_buffer::putc#10  [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } }  main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } }  main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } }  ) always clobbers reg byte a reg byte x reg byte y 
Statement sideeffect stackpullbytes(1) always clobbers reg byte a 
Statement [164] if(0==printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@4 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } }  main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } }  main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } }  ) always clobbers reg byte a 
Statement [165] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@10 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } }  main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } }  main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } }  ) always clobbers reg byte a 
Statement [166] printf_padding::putc#1 = printf_number_buffer::putc#10 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#1 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_padding::putc#1 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#1 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_padding::putc#1 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_padding::putc#1 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  ) always clobbers reg byte a 
Statement [167] printf_padding::length#1 = (char)printf_number_buffer::padding#10 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#1 printf_padding::length#1 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#1 printf_padding::length#1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_padding::putc#1 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#1 printf_padding::length#1 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_padding::putc#1 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#1 printf_padding::length#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_padding::putc#1 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  ) always clobbers reg byte a 
Statement [169] if(0==printf_number_buffer::format_upper_case#10) goto printf_number_buffer::@5 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } }  main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } }  main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } }  ) always clobbers reg byte a 
Statement [172] printf_str::putc#0 = printf_number_buffer::putc#10 [ printf_str::putc#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::putc#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } }  main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::putc#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } }  main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::putc#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } }  ) always clobbers reg byte a 
Statement [174] if(0==printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@return [ printf_buffer printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } }  main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } }  main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } }  ) always clobbers reg byte a 
Statement [175] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@return [ printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } }  main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } }  main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } }  ) always clobbers reg byte a 
Statement [176] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@12 [ printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } }  main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } }  main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } }  ) always clobbers reg byte a 
Statement [177] printf_padding::putc#2 = printf_number_buffer::putc#10 [ printf_buffer printf_number_buffer::padding#10 printf_padding::putc#2 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::padding#10 printf_padding::putc#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_padding::putc#2 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::padding#10 printf_padding::putc#2 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_padding::putc#2 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::padding#10 printf_padding::putc#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_padding::putc#2 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  ) always clobbers reg byte a 
Statement [178] printf_padding::length#2 = (char)printf_number_buffer::padding#10 [ printf_buffer printf_padding::putc#2 printf_padding::length#2 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_padding::putc#2 printf_padding::length#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_padding::putc#2 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_padding::putc#2 printf_padding::length#2 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_padding::putc#2 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_padding::putc#2 printf_padding::length#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_padding::putc#2 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  ) always clobbers reg byte a 
Statement [184] ultoa::$11 = (char)ultoa::value#2 [ printf_buffer ultoa::buffer#11 ultoa::$11 ] ( main:5::printf_slong:59::ultoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ultoa::buffer#11 ultoa::$11 ] { }  ) always clobbers reg byte a 
Statement [185] *ultoa::buffer#11 = DIGITS[ultoa::$11] [ printf_buffer ultoa::buffer#11 ] ( main:5::printf_slong:59::ultoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ultoa::buffer#11 ] { }  ) always clobbers reg byte a reg byte y 
Statement [186] ultoa::buffer#3 = ++ ultoa::buffer#11 [ printf_buffer ultoa::buffer#3 ] ( main:5::printf_slong:59::ultoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ultoa::buffer#3 ] { }  ) always clobbers reg byte a 
Statement [187] *ultoa::buffer#3 = 0 [ printf_buffer ] ( main:5::printf_slong:59::ultoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { }  ) always clobbers reg byte a reg byte y 
Statement [189] ultoa::$10 = ultoa::digit#2 << 2 [ printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::$10 ] ( main:5::printf_slong:59::ultoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::$10 ] { }  ) always clobbers reg byte a 
Statement [190] ultoa::digit_value#0 = RADIX_DECIMAL_VALUES_LONG[ultoa::$10] [ printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::digit_value#0 ] ( main:5::printf_slong:59::ultoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::digit_value#0 ] { }  ) always clobbers reg byte a 
Statement [192] if(ultoa::value#2>=ultoa::digit_value#0) goto ultoa::@5 [ printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::digit_value#0 ] ( main:5::printf_slong:59::ultoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::digit_value#0 ] { }  ) always clobbers reg byte a 
Statement [195] ultoa_append::buffer#0 = ultoa::buffer#11 [ printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::buffer#11 ultoa::digit_value#0 ultoa_append::buffer#0 ] ( main:5::printf_slong:59::ultoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::buffer#11 ultoa::digit_value#0 ultoa_append::buffer#0 ] { { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } }  ) always clobbers reg byte a 
Statement [196] ultoa_append::value#0 = ultoa::value#2 [ printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa::digit_value#0 ultoa_append::buffer#0 ultoa_append::value#0 ] ( main:5::printf_slong:59::ultoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa::digit_value#0 ultoa_append::buffer#0 ultoa_append::value#0 ] { { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } }  ) always clobbers reg byte a 
Statement [197] ultoa_append::sub#0 = ultoa::digit_value#0 [ printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::value#0 ultoa_append::sub#0 ] ( main:5::printf_slong:59::ultoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::value#0 ultoa_append::sub#0 ] { { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } }  ) always clobbers reg byte a 
Statement [199] ultoa_append::return#0 = ultoa_append::value#2 [ printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::return#0 ] ( main:5::printf_slong:59::ultoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::return#0 ] { { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } }  ) always clobbers reg byte a 
Statement [200] ultoa::value#0 = ultoa_append::return#0 [ printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa::value#0 ] ( main:5::printf_slong:59::ultoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa::value#0 ] { }  ) always clobbers reg byte a 
Statement [204] if(utoa_append::value#2>=utoa_append::sub#0) goto utoa_append::@2 [ utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#2 utoa_append::digit#2 ] ( main:5::printf_sint:43::utoa:93::utoa_append:136 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#2 utoa_append::digit#2 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } }  main:5::printf_uint:47::utoa:99::utoa_append:136 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#2 utoa_append::digit#2 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } }  ) always clobbers reg byte a 
Statement [205] *utoa_append::buffer#0 = DIGITS[utoa_append::digit#2] [ utoa_append::value#2 ] ( main:5::printf_sint:43::utoa:93::utoa_append:136 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::value#2 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } }  main:5::printf_uint:47::utoa:99::utoa_append:136 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::value#2 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } }  ) always clobbers reg byte a reg byte y 
Statement [208] utoa_append::value#1 = utoa_append::value#2 - utoa_append::sub#0 [ utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#1 utoa_append::digit#1 ] ( main:5::printf_sint:43::utoa:93::utoa_append:136 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#1 utoa_append::digit#1 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } }  main:5::printf_uint:47::utoa:99::utoa_append:136 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#1 utoa_append::digit#1 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } }  ) always clobbers reg byte a 
Statement [211] if(0!=*strlen::str#3) goto strlen::@2 [ printf_buffer strlen::len#2 strlen::str#3 ] ( main:5::printf_sint:43::printf_number_buffer:95::strlen:143 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_buffer strlen::len#2 strlen::str#3 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } }  main:5::printf_uint:47::printf_number_buffer:101::strlen:143 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_buffer strlen::len#2 strlen::str#3 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strlen::return#2 = strlen::len#2 } }  main:5::printf_slong:59::printf_number_buffer:107::strlen:143 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_buffer strlen::len#2 strlen::str#3 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } }  ) always clobbers reg byte a reg byte y 
Statement [217] if(printf_padding::i#2<printf_padding::length#6) goto printf_padding::@2 [ printf_padding::pad#7 ] ( main:5::printf_sint:43::printf_number_buffer:95::printf_padding:159 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::pad#7 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_uint:47::printf_number_buffer:101::printf_padding:159 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::pad#7 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_slong:59::printf_number_buffer:107::printf_padding:159 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::pad#7 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_sint:43::printf_number_buffer:95::printf_padding:168 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::pad#7 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_padding::putc#1 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_uint:47::printf_number_buffer:101::printf_padding:168 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::pad#7 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_padding::putc#1 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_slong:59::printf_number_buffer:107::printf_padding:168 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::pad#7 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_padding::putc#1 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_sint:43::printf_number_buffer:95::printf_padding:179 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_padding::pad#7 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_padding::putc#2 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_uint:47::printf_number_buffer:101::printf_padding:179 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_padding::pad#7 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_padding::putc#2 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_slong:59::printf_number_buffer:107::printf_padding:179 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_padding::pad#7 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_padding::putc#2 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  ) always clobbers reg byte a 
Statement [219] stackpush(char) = printf_padding::pad#7 [ ] ( main:5::printf_sint:43::printf_number_buffer:95::printf_padding:159 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_uint:47::printf_number_buffer:101::printf_padding:159 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_slong:59::printf_number_buffer:107::printf_padding:159 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_sint:43::printf_number_buffer:95::printf_padding:168 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_padding::putc#1 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_uint:47::printf_number_buffer:101::printf_padding:168 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_padding::putc#1 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_slong:59::printf_number_buffer:107::printf_padding:168 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_padding::putc#1 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_sint:43::printf_number_buffer:95::printf_padding:179 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_padding::putc#2 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_uint:47::printf_number_buffer:101::printf_padding:179 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_padding::putc#2 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_slong:59::printf_number_buffer:107::printf_padding:179 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_padding::putc#2 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  ) always clobbers reg byte a 
Statement [220] callexecute *printf_padding::putc#7  [ printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 ] ( main:5::printf_sint:43::printf_number_buffer:95::printf_padding:159 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_uint:47::printf_number_buffer:101::printf_padding:159 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_slong:59::printf_number_buffer:107::printf_padding:159 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_sint:43::printf_number_buffer:95::printf_padding:168 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_padding::putc#1 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_uint:47::printf_number_buffer:101::printf_padding:168 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_padding::putc#1 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_slong:59::printf_number_buffer:107::printf_padding:168 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_padding::putc#1 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_sint:43::printf_number_buffer:95::printf_padding:179 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_padding::putc#2 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_uint:47::printf_number_buffer:101::printf_padding:179 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_padding::putc#2 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_slong:59::printf_number_buffer:107::printf_padding:179 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_padding::putc#2 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  ) always clobbers reg byte a reg byte x reg byte y 
Statement sideeffect stackpullbytes(1) always clobbers reg byte a 
Statement [225] if(0!=*strupr::src#2) goto strupr::@2 [ strupr::src#2 ] ( main:5::printf_sint:43::printf_number_buffer:95::strupr:171 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } }  main:5::printf_uint:47::printf_number_buffer:101::strupr:171 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } }  main:5::printf_slong:59::printf_number_buffer:107::strupr:171 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } }  ) always clobbers reg byte a reg byte y 
Statement [227] toupper::ch#0 = *strupr::src#2 [ strupr::src#2 toupper::ch#0 ] ( main:5::printf_sint:43::printf_number_buffer:95::strupr:171 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 toupper::ch#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { toupper::return#2 = toupper::return#3 } }  main:5::printf_uint:47::printf_number_buffer:101::strupr:171 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 toupper::ch#0 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { toupper::return#2 = toupper::return#3 } }  main:5::printf_slong:59::printf_number_buffer:107::strupr:171 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 toupper::ch#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { toupper::return#2 = toupper::return#3 } }  ) always clobbers reg byte a reg byte y 
Statement [231] *strupr::src#2 = strupr::$0 [ strupr::src#2 ] ( main:5::printf_sint:43::printf_number_buffer:95::strupr:171 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } }  main:5::printf_uint:47::printf_number_buffer:101::strupr:171 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } }  main:5::printf_slong:59::printf_number_buffer:107::strupr:171 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } }  ) always clobbers reg byte y 
Statement [235] if(ultoa_append::value#2>=ultoa_append::sub#0) goto ultoa_append::@2 [ ultoa_append::buffer#0 ultoa_append::sub#0 ultoa_append::value#2 ultoa_append::digit#2 ] ( main:5::printf_slong:59::ultoa:105::ultoa_append:198 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::sub#0 ultoa_append::value#2 ultoa_append::digit#2 ] { { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } }  ) always clobbers reg byte a 
Statement [236] *ultoa_append::buffer#0 = DIGITS[ultoa_append::digit#2] [ ultoa_append::value#2 ] ( main:5::printf_slong:59::ultoa:105::ultoa_append:198 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::value#2 ] { { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } }  ) always clobbers reg byte a reg byte y 
Statement [239] ultoa_append::value#1 = ultoa_append::value#2 - ultoa_append::sub#0 [ ultoa_append::buffer#0 ultoa_append::sub#0 ultoa_append::value#1 ultoa_append::digit#1 ] ( main:5::printf_slong:59::ultoa:105::ultoa_append:198 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::sub#0 ultoa_append::value#1 ultoa_append::digit#1 ] { { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } }  ) always clobbers reg byte a 
Statement [242] toupper::return#0 = toupper::ch#0 + 'A'-'a' [ toupper::return#0 ] ( main:5::printf_sint:43::printf_number_buffer:95::strupr:171::toupper:228 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 toupper::return#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { toupper::return#2 = toupper::return#3 } }  main:5::printf_uint:47::printf_number_buffer:101::strupr:171::toupper:228 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 toupper::return#0 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { toupper::return#2 = toupper::return#3 } }  main:5::printf_slong:59::printf_number_buffer:107::strupr:171::toupper:228 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 toupper::return#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { toupper::return#2 = toupper::return#3 } }  ) always clobbers reg byte a 
Statement [1] __snprintf_capacity = 0 [ printf_buffer ] (  [ printf_buffer ] { }  ) always clobbers reg byte a 
Statement [2] __snprintf_size = 0 [ printf_buffer ] (  [ printf_buffer ] { }  ) always clobbers reg byte a 
Statement [3] __snprintf_buffer = (char *) 0 [ printf_buffer ] (  [ printf_buffer ] { }  ) always clobbers reg byte a 
Statement [7] snputc::c#0 = stackidx(char,snputc::OFFSET_STACK_C) [ __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] (  [ __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { }  main:5::snputc:21 [ printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { }  main:5::snputc:31 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { }  main:5::snputc:35 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { }  main:5::snputc:51 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { }  main:5::snputc:63 [ screen#1 __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { }  ) always clobbers reg byte a reg byte x 
Statement [9] if(__snprintf_size<=__snprintf_capacity) goto snputc::@1 [ __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] (  [ __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { }  main:5::snputc:21 [ printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { }  main:5::snputc:31 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { }  main:5::snputc:35 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { }  main:5::snputc:51 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { }  main:5::snputc:63 [ screen#1 __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { }  ) always clobbers reg byte a 
Statement [11] if(__snprintf_size!=__snprintf_capacity) goto snputc::@3 [ __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] (  [ __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { }  main:5::snputc:21 [ printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { }  main:5::snputc:31 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { }  main:5::snputc:35 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { }  main:5::snputc:51 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { }  main:5::snputc:63 [ screen#1 __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { }  ) always clobbers reg byte a 
Statement [14] *__snprintf_buffer = snputc::c#2 [ __snprintf_capacity __snprintf_size __snprintf_buffer ] (  [ __snprintf_capacity __snprintf_size __snprintf_buffer ] { }  main:5::snputc:21 [ printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer ] { }  main:5::snputc:31 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer ] { }  main:5::snputc:35 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer ] { }  main:5::snputc:51 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer ] { }  main:5::snputc:63 [ screen#1 __snprintf_capacity __snprintf_size __snprintf_buffer ] { }  ) always clobbers reg byte a reg byte y 
Statement [20] stackpush(char) = 0 [ __snprintf_capacity __snprintf_size __snprintf_buffer printf_buffer ] ( main:5 [ __snprintf_capacity __snprintf_size __snprintf_buffer printf_buffer ] { }  ) always clobbers reg byte a 
Statement sideeffect stackpullbytes(1) always clobbers reg byte a 
Statement [30] stackpush(char) = '!' [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] ( main:5 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { }  ) always clobbers reg byte a 
Statement sideeffect stackpullbytes(1) always clobbers reg byte a 
Statement [34] stackpush(char) = 0 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] ( main:5 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { { screen#1 = screen#25 } }  ) always clobbers reg byte a 
Statement sideeffect stackpullbytes(1) always clobbers reg byte a 
Statement [50] stackpush(char) = 0 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] ( main:5 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { { screen#1 = screen#25 } }  ) always clobbers reg byte a 
Statement sideeffect stackpullbytes(1) always clobbers reg byte a 
Statement [62] stackpush(char) = 0 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 ] ( main:5 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 ] { { screen#1 = screen#25 } }  ) always clobbers reg byte a 
Statement sideeffect stackpullbytes(1) always clobbers reg byte a 
Statement [67] __snprintf_capacity = $ffff [ __snprintf_capacity ] ( main:5::snprintf_init:17 [ printf_buffer __snprintf_capacity ] { }  main:5::snprintf_init:25 [ screen#1 printf_buffer __snprintf_capacity ] { }  main:5::snprintf_init:39 [ screen#1 printf_buffer __snprintf_capacity ] { }  main:5::snprintf_init:55 [ screen#1 printf_buffer __snprintf_capacity ] { }  ) always clobbers reg byte a 
Statement [68] __snprintf_size = 0 [ __snprintf_capacity __snprintf_size ] ( main:5::snprintf_init:17 [ printf_buffer __snprintf_capacity __snprintf_size ] { }  main:5::snprintf_init:25 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size ] { }  main:5::snprintf_init:39 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size ] { }  main:5::snprintf_init:55 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size ] { }  ) always clobbers reg byte a 
Statement [69] __snprintf_buffer = BUF [ __snprintf_capacity __snprintf_size __snprintf_buffer ] ( main:5::snprintf_init:17 [ printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer ] { }  main:5::snprintf_init:25 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer ] { }  main:5::snprintf_init:39 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer ] { }  main:5::snprintf_init:55 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer ] { }  ) always clobbers reg byte a 
Statement [73] printf_str::c#1 = *printf_str::s#11 [ printf_str::s#11 printf_str::c#1 printf_buffer ] ( main:5::printf_str:19 [ __snprintf_capacity __snprintf_size __snprintf_buffer printf_str::s#11 printf_str::c#1 printf_buffer ] { }  main:5::printf_str:27 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { }  main:5::printf_str:33 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { }  main:5::printf_str:41 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { }  main:5::printf_str:45 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { }  main:5::printf_str:49 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { }  main:5::printf_str:57 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { }  main:5::printf_str:61 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { }  main:5::printf_string:29::printf_str:89 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { }  main:5::printf_sint:43::printf_number_buffer:95::printf_str:173 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 printf_str::s#11 printf_str::c#1 printf_buffer ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } }  main:5::printf_uint:47::printf_number_buffer:101::printf_str:173 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 printf_str::s#11 printf_str::c#1 printf_buffer ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } }  main:5::printf_slong:59::printf_number_buffer:107::printf_str:173 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 printf_str::s#11 printf_str::c#1 printf_buffer ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } }  ) always clobbers reg byte a reg byte y 
Statement [78] callexecute *printf_str::putc#12  [ printf_str::s#0 printf_buffer ] ( main:5::printf_str:19 [ __snprintf_capacity __snprintf_size __snprintf_buffer printf_str::s#0 printf_buffer ] { }  main:5::printf_str:27 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#0 printf_buffer ] { }  main:5::printf_str:33 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#0 printf_buffer ] { }  main:5::printf_str:41 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#0 printf_buffer ] { }  main:5::printf_str:45 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#0 printf_buffer ] { }  main:5::printf_str:49 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#0 printf_buffer ] { }  main:5::printf_str:57 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#0 printf_buffer ] { }  main:5::printf_str:61 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#0 printf_buffer ] { }  main:5::printf_string:29::printf_str:89 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#0 printf_buffer ] { }  main:5::printf_sint:43::printf_number_buffer:95::printf_str:173 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 printf_str::s#0 printf_buffer ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } }  main:5::printf_uint:47::printf_number_buffer:101::printf_str:173 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 printf_str::s#0 printf_buffer ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } }  main:5::printf_slong:59::printf_number_buffer:107::printf_str:173 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 printf_str::s#0 printf_buffer ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } }  ) always clobbers reg byte a reg byte x reg byte y 
Statement sideeffect stackpullbytes(1) always clobbers reg byte a 
Statement [82] if(0!=*print::msg#5) goto print::@2 [ screen#1 print::msg#5 ] ( main:5::print:23 [ printf_buffer screen#1 print::msg#5 ] { }  main:5::print:37 [ printf_buffer screen#1 print::msg#5 ] { { screen#1 = screen#25 } }  main:5::print:53 [ printf_buffer screen#1 print::msg#5 ] { { screen#1 = screen#25 } }  main:5::print:65 [ screen#1 print::msg#5 ] { { screen#1 = screen#25 } }  ) always clobbers reg byte a reg byte y 
Statement [84] *screen#1 = *print::msg#5 [ screen#1 print::msg#5 ] ( main:5::print:23 [ printf_buffer screen#1 print::msg#5 ] { }  main:5::print:37 [ printf_buffer screen#1 print::msg#5 ] { { screen#1 = screen#25 } }  main:5::print:53 [ printf_buffer screen#1 print::msg#5 ] { { screen#1 = screen#25 } }  main:5::print:65 [ screen#1 print::msg#5 ] { { screen#1 = screen#25 } }  ) always clobbers reg byte a reg byte y 
Statement [91] *((char *)&printf_buffer) = 0 [ printf_buffer ] ( main:5::printf_sint:43 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { }  ) always clobbers reg byte a 
Statement [94] printf_number_buffer::buffer_sign#1 = *((char *)&printf_buffer) [ printf_buffer printf_number_buffer::buffer_sign#1 ] ( main:5::printf_sint:43 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::buffer_sign#1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } }  ) always clobbers reg byte a 
Statement [98] *((char *)&printf_buffer) = 0 [ printf_buffer ] ( main:5::printf_uint:47 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { }  ) always clobbers reg byte a 
Statement [100] printf_number_buffer::buffer_sign#2 = *((char *)&printf_buffer) [ printf_buffer printf_number_buffer::buffer_sign#2 ] ( main:5::printf_uint:47 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::buffer_sign#2 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } }  ) always clobbers reg byte a 
Statement [103] *((char *)&printf_buffer) = 0 [ printf_buffer ] ( main:5::printf_slong:59 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { }  ) always clobbers reg byte a 
Statement [106] printf_number_buffer::buffer_sign#0 = *((char *)&printf_buffer) [ printf_buffer printf_number_buffer::buffer_sign#0 ] ( main:5::printf_slong:59 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::buffer_sign#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } }  ) always clobbers reg byte a 
Statement [114] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS) = 'e' [ printf_buffer ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { }  main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { }  ) always clobbers reg byte a 
Statement [115] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1) = 'r' [ printf_buffer ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { }  main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { }  ) always clobbers reg byte a 
Statement [116] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+2) = 'r' [ printf_buffer ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { }  main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { }  ) always clobbers reg byte a 
Statement [117] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+3) = 0 [ printf_buffer ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { }  main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { }  ) always clobbers reg byte a 
Statement [124] *utoa::buffer#10 = DIGITS[utoa::$11] [ printf_buffer utoa::buffer#10 ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::buffer#10 ] { }  main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::buffer#10 ] { }  ) always clobbers reg byte a reg byte y 
Statement [125] utoa::buffer#3 = ++ utoa::buffer#10 [ printf_buffer utoa::buffer#3 ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::buffer#3 ] { }  main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::buffer#3 ] { }  ) always clobbers reg byte a 
Statement [126] *utoa::buffer#3 = 0 [ printf_buffer ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { }  main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { }  ) always clobbers reg byte a reg byte y 
Statement [127] utoa::$10 = utoa::digit#2 << 1 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::$10 ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::$10 ] { }  main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::$10 ] { }  ) always clobbers reg byte a 
Statement [128] utoa::digit_value#0 = utoa::digit_values#8[utoa::$10] [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] { }  main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] { }  ) always clobbers reg byte a reg byte y 
Statement [130] if(utoa::value#3>=utoa::digit_value#0) goto utoa::@10 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] { }  main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] { }  ) always clobbers reg byte a 
Statement [133] utoa_append::buffer#0 = utoa::buffer#10 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } }  main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } }  ) always clobbers reg byte a 
Statement [134] utoa_append::value#0 = utoa::value#3 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 utoa_append::value#0 ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 utoa_append::value#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } }  main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 utoa_append::value#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } }  ) always clobbers reg byte a 
Statement [135] utoa_append::sub#0 = utoa::digit_value#0 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::value#0 utoa_append::sub#0 ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::value#0 utoa_append::sub#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } }  main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::value#0 utoa_append::sub#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } }  ) always clobbers reg byte a 
Statement [137] utoa_append::return#0 = utoa_append::value#2 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::return#0 ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::return#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } }  main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::return#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } }  ) always clobbers reg byte a 
Statement [138] utoa::value#0 = utoa_append::return#0 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::value#0 ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::value#0 ] { }  main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::value#0 ] { }  ) always clobbers reg byte a 
Statement [144] strlen::return#2 = strlen::len#2 [ printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } }  main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strlen::return#2 = strlen::len#2 } }  main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } }  ) always clobbers reg byte a 
Statement [145] printf_number_buffer::$19 = strlen::return#2 [ printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } }  main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } }  main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } }  ) always clobbers reg byte a 
Statement [147] if(0==printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@13 [ printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } }  main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } }  main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } }  ) always clobbers reg byte a 
Statement [150] printf_number_buffer::padding#1 = (signed char)printf_number_buffer::format_min_length#3 - printf_number_buffer::len#2 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } }  main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } }  main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } }  ) always clobbers reg byte a 
Statement [151] if(printf_number_buffer::padding#1>=0) goto printf_number_buffer::@21 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } }  main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } }  main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } }  ) always clobbers reg byte a 
Statement [154] if(0!=printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@2 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } }  main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } }  main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } }  ) always clobbers reg byte a 
Statement [155] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@2 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } }  main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } }  main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } }  ) always clobbers reg byte a 
Statement [156] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@8 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } }  main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } }  main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } }  ) always clobbers reg byte a 
Statement [157] printf_padding::putc#0 = printf_number_buffer::putc#10 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  ) always clobbers reg byte a 
Statement [158] printf_padding::length#0 = (char)printf_number_buffer::padding#10 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 printf_padding::length#0 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 printf_padding::length#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 printf_padding::length#0 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 printf_padding::length#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  ) always clobbers reg byte a 
Statement [160] if(0==printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@3 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } }  main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } }  main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } }  ) always clobbers reg byte a 
Statement [161] stackpush(char) = printf_number_buffer::buffer_sign#10 [ ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } }  main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } }  main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } }  ) always clobbers reg byte a 
Statement [162] callexecute *printf_number_buffer::putc#10  [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } }  main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } }  main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } }  ) always clobbers reg byte a reg byte x reg byte y 
Statement sideeffect stackpullbytes(1) always clobbers reg byte a 
Statement [164] if(0==printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@4 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } }  main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } }  main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } }  ) always clobbers reg byte a 
Statement [165] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@10 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } }  main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } }  main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } }  ) always clobbers reg byte a 
Statement [166] printf_padding::putc#1 = printf_number_buffer::putc#10 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#1 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_padding::putc#1 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#1 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_padding::putc#1 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_padding::putc#1 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  ) always clobbers reg byte a 
Statement [167] printf_padding::length#1 = (char)printf_number_buffer::padding#10 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#1 printf_padding::length#1 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#1 printf_padding::length#1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_padding::putc#1 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#1 printf_padding::length#1 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_padding::putc#1 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#1 printf_padding::length#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_padding::putc#1 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  ) always clobbers reg byte a 
Statement [169] if(0==printf_number_buffer::format_upper_case#10) goto printf_number_buffer::@5 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } }  main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } }  main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } }  ) always clobbers reg byte a 
Statement [172] printf_str::putc#0 = printf_number_buffer::putc#10 [ printf_str::putc#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::putc#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } }  main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::putc#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } }  main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::putc#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } }  ) always clobbers reg byte a 
Statement [174] if(0==printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@return [ printf_buffer printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } }  main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } }  main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } }  ) always clobbers reg byte a 
Statement [175] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@return [ printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } }  main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } }  main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } }  ) always clobbers reg byte a 
Statement [176] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@12 [ printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } }  main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } }  main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } }  ) always clobbers reg byte a 
Statement [177] printf_padding::putc#2 = printf_number_buffer::putc#10 [ printf_buffer printf_number_buffer::padding#10 printf_padding::putc#2 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::padding#10 printf_padding::putc#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_padding::putc#2 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::padding#10 printf_padding::putc#2 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_padding::putc#2 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::padding#10 printf_padding::putc#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_padding::putc#2 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  ) always clobbers reg byte a 
Statement [178] printf_padding::length#2 = (char)printf_number_buffer::padding#10 [ printf_buffer printf_padding::putc#2 printf_padding::length#2 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_padding::putc#2 printf_padding::length#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_padding::putc#2 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_padding::putc#2 printf_padding::length#2 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_padding::putc#2 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_padding::putc#2 printf_padding::length#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_padding::putc#2 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  ) always clobbers reg byte a 
Statement [184] ultoa::$11 = (char)ultoa::value#2 [ printf_buffer ultoa::buffer#11 ultoa::$11 ] ( main:5::printf_slong:59::ultoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ultoa::buffer#11 ultoa::$11 ] { }  ) always clobbers reg byte a 
Statement [185] *ultoa::buffer#11 = DIGITS[ultoa::$11] [ printf_buffer ultoa::buffer#11 ] ( main:5::printf_slong:59::ultoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ultoa::buffer#11 ] { }  ) always clobbers reg byte a reg byte y 
Statement [186] ultoa::buffer#3 = ++ ultoa::buffer#11 [ printf_buffer ultoa::buffer#3 ] ( main:5::printf_slong:59::ultoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ultoa::buffer#3 ] { }  ) always clobbers reg byte a 
Statement [187] *ultoa::buffer#3 = 0 [ printf_buffer ] ( main:5::printf_slong:59::ultoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { }  ) always clobbers reg byte a reg byte y 
Statement [189] ultoa::$10 = ultoa::digit#2 << 2 [ printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::$10 ] ( main:5::printf_slong:59::ultoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::$10 ] { }  ) always clobbers reg byte a 
Statement [190] ultoa::digit_value#0 = RADIX_DECIMAL_VALUES_LONG[ultoa::$10] [ printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::digit_value#0 ] ( main:5::printf_slong:59::ultoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::digit_value#0 ] { }  ) always clobbers reg byte a 
Statement [192] if(ultoa::value#2>=ultoa::digit_value#0) goto ultoa::@5 [ printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::digit_value#0 ] ( main:5::printf_slong:59::ultoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::digit_value#0 ] { }  ) always clobbers reg byte a 
Statement [195] ultoa_append::buffer#0 = ultoa::buffer#11 [ printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::buffer#11 ultoa::digit_value#0 ultoa_append::buffer#0 ] ( main:5::printf_slong:59::ultoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::buffer#11 ultoa::digit_value#0 ultoa_append::buffer#0 ] { { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } }  ) always clobbers reg byte a 
Statement [196] ultoa_append::value#0 = ultoa::value#2 [ printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa::digit_value#0 ultoa_append::buffer#0 ultoa_append::value#0 ] ( main:5::printf_slong:59::ultoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa::digit_value#0 ultoa_append::buffer#0 ultoa_append::value#0 ] { { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } }  ) always clobbers reg byte a 
Statement [197] ultoa_append::sub#0 = ultoa::digit_value#0 [ printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::value#0 ultoa_append::sub#0 ] ( main:5::printf_slong:59::ultoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::value#0 ultoa_append::sub#0 ] { { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } }  ) always clobbers reg byte a 
Statement [199] ultoa_append::return#0 = ultoa_append::value#2 [ printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::return#0 ] ( main:5::printf_slong:59::ultoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::return#0 ] { { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } }  ) always clobbers reg byte a 
Statement [200] ultoa::value#0 = ultoa_append::return#0 [ printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa::value#0 ] ( main:5::printf_slong:59::ultoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa::value#0 ] { }  ) always clobbers reg byte a 
Statement [204] if(utoa_append::value#2>=utoa_append::sub#0) goto utoa_append::@2 [ utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#2 utoa_append::digit#2 ] ( main:5::printf_sint:43::utoa:93::utoa_append:136 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#2 utoa_append::digit#2 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } }  main:5::printf_uint:47::utoa:99::utoa_append:136 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#2 utoa_append::digit#2 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } }  ) always clobbers reg byte a 
Statement [205] *utoa_append::buffer#0 = DIGITS[utoa_append::digit#2] [ utoa_append::value#2 ] ( main:5::printf_sint:43::utoa:93::utoa_append:136 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::value#2 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } }  main:5::printf_uint:47::utoa:99::utoa_append:136 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::value#2 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } }  ) always clobbers reg byte a reg byte y 
Statement [208] utoa_append::value#1 = utoa_append::value#2 - utoa_append::sub#0 [ utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#1 utoa_append::digit#1 ] ( main:5::printf_sint:43::utoa:93::utoa_append:136 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#1 utoa_append::digit#1 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } }  main:5::printf_uint:47::utoa:99::utoa_append:136 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#1 utoa_append::digit#1 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } }  ) always clobbers reg byte a 
Statement [211] if(0!=*strlen::str#3) goto strlen::@2 [ printf_buffer strlen::len#2 strlen::str#3 ] ( main:5::printf_sint:43::printf_number_buffer:95::strlen:143 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_buffer strlen::len#2 strlen::str#3 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } }  main:5::printf_uint:47::printf_number_buffer:101::strlen:143 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_buffer strlen::len#2 strlen::str#3 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strlen::return#2 = strlen::len#2 } }  main:5::printf_slong:59::printf_number_buffer:107::strlen:143 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_buffer strlen::len#2 strlen::str#3 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } }  ) always clobbers reg byte a reg byte y 
Statement [217] if(printf_padding::i#2<printf_padding::length#6) goto printf_padding::@2 [ printf_padding::pad#7 ] ( main:5::printf_sint:43::printf_number_buffer:95::printf_padding:159 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::pad#7 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_uint:47::printf_number_buffer:101::printf_padding:159 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::pad#7 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_slong:59::printf_number_buffer:107::printf_padding:159 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::pad#7 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_sint:43::printf_number_buffer:95::printf_padding:168 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::pad#7 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_padding::putc#1 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_uint:47::printf_number_buffer:101::printf_padding:168 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::pad#7 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_padding::putc#1 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_slong:59::printf_number_buffer:107::printf_padding:168 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::pad#7 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_padding::putc#1 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_sint:43::printf_number_buffer:95::printf_padding:179 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_padding::pad#7 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_padding::putc#2 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_uint:47::printf_number_buffer:101::printf_padding:179 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_padding::pad#7 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_padding::putc#2 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_slong:59::printf_number_buffer:107::printf_padding:179 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_padding::pad#7 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_padding::putc#2 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  ) always clobbers reg byte a 
Statement [219] stackpush(char) = printf_padding::pad#7 [ ] ( main:5::printf_sint:43::printf_number_buffer:95::printf_padding:159 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_uint:47::printf_number_buffer:101::printf_padding:159 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_slong:59::printf_number_buffer:107::printf_padding:159 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_sint:43::printf_number_buffer:95::printf_padding:168 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_padding::putc#1 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_uint:47::printf_number_buffer:101::printf_padding:168 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_padding::putc#1 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_slong:59::printf_number_buffer:107::printf_padding:168 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_padding::putc#1 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_sint:43::printf_number_buffer:95::printf_padding:179 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_padding::putc#2 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_uint:47::printf_number_buffer:101::printf_padding:179 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_padding::putc#2 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_slong:59::printf_number_buffer:107::printf_padding:179 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_padding::putc#2 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  ) always clobbers reg byte a 
Statement [220] callexecute *printf_padding::putc#7  [ printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 ] ( main:5::printf_sint:43::printf_number_buffer:95::printf_padding:159 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_uint:47::printf_number_buffer:101::printf_padding:159 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_slong:59::printf_number_buffer:107::printf_padding:159 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_sint:43::printf_number_buffer:95::printf_padding:168 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_padding::putc#1 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_uint:47::printf_number_buffer:101::printf_padding:168 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_padding::putc#1 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_slong:59::printf_number_buffer:107::printf_padding:168 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_padding::putc#1 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_sint:43::printf_number_buffer:95::printf_padding:179 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_padding::putc#2 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_uint:47::printf_number_buffer:101::printf_padding:179 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_padding::putc#2 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  main:5::printf_slong:59::printf_number_buffer:107::printf_padding:179 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_padding::putc#2 = printf_padding::putc#7 printf_number_buffer::putc#10 } }  ) always clobbers reg byte a reg byte x reg byte y 
Statement sideeffect stackpullbytes(1) always clobbers reg byte a 
Statement [225] if(0!=*strupr::src#2) goto strupr::@2 [ strupr::src#2 ] ( main:5::printf_sint:43::printf_number_buffer:95::strupr:171 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } }  main:5::printf_uint:47::printf_number_buffer:101::strupr:171 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } }  main:5::printf_slong:59::printf_number_buffer:107::strupr:171 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } }  ) always clobbers reg byte a reg byte y 
Statement [227] toupper::ch#0 = *strupr::src#2 [ strupr::src#2 toupper::ch#0 ] ( main:5::printf_sint:43::printf_number_buffer:95::strupr:171 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 toupper::ch#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { toupper::return#2 = toupper::return#3 } }  main:5::printf_uint:47::printf_number_buffer:101::strupr:171 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 toupper::ch#0 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { toupper::return#2 = toupper::return#3 } }  main:5::printf_slong:59::printf_number_buffer:107::strupr:171 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 toupper::ch#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { toupper::return#2 = toupper::return#3 } }  ) always clobbers reg byte a reg byte y 
Statement [231] *strupr::src#2 = strupr::$0 [ strupr::src#2 ] ( main:5::printf_sint:43::printf_number_buffer:95::strupr:171 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } }  main:5::printf_uint:47::printf_number_buffer:101::strupr:171 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } }  main:5::printf_slong:59::printf_number_buffer:107::strupr:171 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } }  ) always clobbers reg byte y 
Statement [235] if(ultoa_append::value#2>=ultoa_append::sub#0) goto ultoa_append::@2 [ ultoa_append::buffer#0 ultoa_append::sub#0 ultoa_append::value#2 ultoa_append::digit#2 ] ( main:5::printf_slong:59::ultoa:105::ultoa_append:198 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::sub#0 ultoa_append::value#2 ultoa_append::digit#2 ] { { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } }  ) always clobbers reg byte a 
Statement [236] *ultoa_append::buffer#0 = DIGITS[ultoa_append::digit#2] [ ultoa_append::value#2 ] ( main:5::printf_slong:59::ultoa:105::ultoa_append:198 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::value#2 ] { { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } }  ) always clobbers reg byte a reg byte y 
Statement [239] ultoa_append::value#1 = ultoa_append::value#2 - ultoa_append::sub#0 [ ultoa_append::buffer#0 ultoa_append::sub#0 ultoa_append::value#1 ultoa_append::digit#1 ] ( main:5::printf_slong:59::ultoa:105::ultoa_append:198 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::sub#0 ultoa_append::value#1 ultoa_append::digit#1 ] { { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } }  ) always clobbers reg byte a 
Statement [242] toupper::return#0 = toupper::ch#0 + 'A'-'a' [ toupper::return#0 ] ( main:5::printf_sint:43::printf_number_buffer:95::strupr:171::toupper:228 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 toupper::return#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { toupper::return#2 = toupper::return#3 } }  main:5::printf_uint:47::printf_number_buffer:101::strupr:171::toupper:228 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 toupper::return#0 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { toupper::return#2 = toupper::return#3 } }  main:5::printf_slong:59::printf_number_buffer:107::strupr:171::toupper:228 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 toupper::return#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { toupper::return#2 = toupper::return#3 } }  ) always clobbers reg byte a 
Potential registers zp[1]:89 [ snputc::c#2 snputc::c#0 ] : zp[1]:89 , reg byte x , reg byte y , 
Potential registers zp[2]:60 [ printf_str::putc#12 printf_str::putc#0 ] : zp[2]:60 , 
Potential registers zp[2]:22 [ printf_str::s#11 printf_str::s#12 printf_str::s#0 ] : zp[2]:22 , 
Potential registers zp[2]:79 [ screen#25 screen#1 screen#0 ] : zp[2]:79 , 
Potential registers zp[2]:69 [ print::msg#5 print::msg#0 ] : zp[2]:69 , 
Potential registers zp[1]:82 [ utoa::radix#2 ] : zp[1]:82 , reg byte a , reg byte x , reg byte y , 
Potential registers zp[1]:86 [ utoa::max_digits#7 ] : zp[1]:86 , reg byte x , 
Potential registers zp[2]:87 [ utoa::digit_values#8 ] : zp[2]:87 , 
Potential registers zp[1]:43 [ utoa::digit#2 utoa::digit#1 ] : zp[1]:43 , reg byte x , 
Potential registers zp[2]:39 [ utoa::value#3 utoa::value#7 utoa::value#10 utoa::value#0 ] : zp[2]:39 , 
Potential registers zp[1]:55 [ utoa::started#2 utoa::started#4 ] : zp[1]:55 , reg byte x , 
Potential registers zp[2]:31 [ utoa::buffer#10 utoa::buffer#15 utoa::buffer#4 ] : zp[2]:31 , 
Potential registers zp[1]:92 [ printf_number_buffer::format_min_length#3 ] : zp[1]:92 , reg byte x , 
Potential registers zp[1]:94 [ printf_number_buffer::format_justify_left#10 ] : zp[1]:94 , 
Potential registers zp[1]:93 [ printf_number_buffer::format_zero_padding#10 ] : zp[1]:93 , 
Potential registers zp[1]:85 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 printf_number_buffer::buffer_sign#2 ] : zp[1]:85 , 
Potential registers zp[2]:90 [ printf_number_buffer::putc#10 ] : zp[2]:90 , 
Potential registers zp[1]:95 [ printf_number_buffer::format_upper_case#10 ] : zp[1]:95 , 
Potential registers zp[1]:62 [ printf_number_buffer::len#2 printf_number_buffer::len#0 printf_number_buffer::len#1 ] : zp[1]:62 , reg byte x , reg byte y , 
Potential registers zp[1]:81 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] : zp[1]:81 , 
Potential registers zp[1]:42 [ ultoa::digit#2 ultoa::digit#1 ] : zp[1]:42 , reg byte x , 
Potential registers zp[4]:35 [ ultoa::value#2 ultoa::value#6 ultoa::value#0 ] : zp[4]:35 , 
Potential registers zp[1]:54 [ ultoa::started#2 ultoa::started#4 ] : zp[1]:54 , reg byte x , reg byte y , 
Potential registers zp[2]:29 [ ultoa::buffer#11 ultoa::buffer#14 ultoa::buffer#4 ] : zp[2]:29 , 
Potential registers zp[2]:2 [ utoa_append::value#2 utoa_append::value#0 utoa_append::value#1 ] : zp[2]:2 , 
Potential registers zp[1]:8 [ utoa_append::digit#2 utoa_append::digit#1 ] : zp[1]:8 , reg byte x , reg byte y , 
Potential registers zp[2]:17 [ strlen::str#3 strlen::str#0 ] : zp[2]:17 , 
Potential registers zp[2]:26 [ strlen::len#2 strlen::len#1 ] : zp[2]:26 , 
Potential registers zp[1]:41 [ printf_padding::length#6 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ] : zp[1]:41 , 
Potential registers zp[1]:53 [ printf_padding::pad#7 ] : zp[1]:53 , 
Potential registers zp[2]:33 [ printf_padding::putc#7 printf_padding::putc#1 printf_padding::putc#2 printf_padding::putc#0 ] : zp[2]:33 , 
Potential registers zp[1]:19 [ printf_padding::i#2 printf_padding::i#1 ] : zp[1]:19 , 
Potential registers zp[2]:20 [ strupr::src#2 strupr::src#1 ] : zp[2]:20 , 
Potential registers zp[4]:4 [ ultoa_append::value#2 ultoa_append::value#0 ultoa_append::value#1 ] : zp[4]:4 , 
Potential registers zp[1]:9 [ ultoa_append::digit#2 ultoa_append::digit#1 ] : zp[1]:9 , reg byte x , reg byte y , 
Potential registers zp[1]:10 [ toupper::return#2 toupper::return#0 toupper::ch#0 ] : zp[1]:10 , reg byte a , reg byte x , reg byte y , 
Potential registers zp[2]:100 [ __snprintf_capacity ] : zp[2]:100 , 
Potential registers zp[2]:96 [ __snprintf_size ] : zp[2]:96 , 
Potential registers zp[2]:98 [ __snprintf_buffer ] : zp[2]:98 , 
Potential registers zp[1]:28 [ printf_str::c#1 ] : zp[1]:28 , reg byte a , reg byte x , reg byte y , 
Potential registers zp[1]:44 [ utoa::$4 ] : zp[1]:44 , reg byte a , reg byte x , reg byte y , 
Potential registers zp[1]:71 [ utoa::$11 ] : zp[1]:71 , reg byte a , reg byte x , reg byte y , 
Potential registers zp[2]:72 [ utoa::buffer#3 ] : zp[2]:72 , 
Potential registers zp[1]:45 [ utoa::$10 ] : zp[1]:45 , reg byte a , reg byte x , reg byte y , 
Potential registers zp[2]:63 [ utoa::digit_value#0 ] : zp[2]:63 , 
Potential registers zp[2]:56 [ utoa_append::buffer#0 ] : zp[2]:56 , 
Potential registers zp[2]:11 [ utoa_append::sub#0 ] : zp[2]:11 , 
Potential registers zp[2]:46 [ utoa_append::return#0 ] : zp[2]:46 , 
Potential registers zp[2]:74 [ strlen::return#2 ] : zp[2]:74 , 
Potential registers zp[2]:83 [ printf_number_buffer::$19 ] : zp[2]:83 , 
Potential registers zp[1]:76 [ ultoa::$11 ] : zp[1]:76 , reg byte a , reg byte x , reg byte y , 
Potential registers zp[2]:77 [ ultoa::buffer#3 ] : zp[2]:77 , 
Potential registers zp[1]:48 [ ultoa::$10 ] : zp[1]:48 , reg byte a , reg byte x , reg byte y , 
Potential registers zp[4]:65 [ ultoa::digit_value#0 ] : zp[4]:65 , 
Potential registers zp[2]:58 [ ultoa_append::buffer#0 ] : zp[2]:58 , 
Potential registers zp[4]:13 [ ultoa_append::sub#0 ] : zp[4]:13 , 
Potential registers zp[4]:49 [ ultoa_append::return#0 ] : zp[4]:49 , 
Potential registers zp[1]:24 [ toupper::return#3 ] : zp[1]:24 , reg byte a , reg byte x , reg byte y , 
Potential registers zp[1]:25 [ strupr::$0 ] : zp[1]:25 , reg byte a , reg byte x , reg byte y , 
Potential registers mem[12] [ printf_buffer ] : mem[12] , 

REGISTER UPLIFT SCOPES
Uplift Scope [utoa_append] 25,055,003.5: zp[2]:2 [ utoa_append::value#2 utoa_append::value#0 utoa_append::value#1 ] 20,050,002.5: zp[1]:8 [ utoa_append::digit#2 utoa_append::digit#1 ] 3,335,000.5: zp[2]:11 [ utoa_append::sub#0 ] 20,002: zp[2]:46 [ utoa_append::return#0 ] 13,750.25: zp[2]:56 [ utoa_append::buffer#0 ] 
Uplift Scope [ultoa_append] 25,055,003.5: zp[4]:4 [ ultoa_append::value#2 ultoa_append::value#0 ultoa_append::value#1 ] 20,050,002.5: zp[1]:9 [ ultoa_append::digit#2 ultoa_append::digit#1 ] 3,335,000.5: zp[4]:13 [ ultoa_append::sub#0 ] 20,002: zp[4]:49 [ ultoa_append::return#0 ] 13,750.25: zp[2]:58 [ ultoa_append::buffer#0 ] 
Uplift Scope [toupper] 4,733,338.67: zp[1]:10 [ toupper::return#2 toupper::return#0 toupper::ch#0 ] 200,002: zp[1]:24 [ toupper::return#3 ] 
Uplift Scope [strupr] 271,431.29: zp[2]:20 [ strupr::src#2 strupr::src#1 ] 200,002: zp[1]:25 [ strupr::$0 ] 
Uplift Scope [strlen] 300,003: zp[2]:17 [ strlen::str#3 strlen::str#0 ] 150,251.75: zp[2]:26 [ strlen::len#2 strlen::len#1 ] 2,002: zp[2]:74 [ strlen::return#2 ] 
Uplift Scope [printf_str] 265,004: zp[2]:22 [ printf_str::s#11 printf_str::s#12 printf_str::s#0 ] 100,001: zp[1]:28 [ printf_str::c#1 ] 12,012: zp[2]:60 [ printf_str::putc#12 printf_str::putc#0 ] 
Uplift Scope [printf_padding] 300,003: zp[1]:19 [ printf_padding::i#2 printf_padding::i#1 ] 33,033: zp[2]:33 [ printf_padding::putc#7 printf_padding::putc#1 printf_padding::putc#2 printf_padding::putc#0 ] 26,606.8: zp[1]:41 [ printf_padding::length#6 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ] 16,666.83: zp[1]:53 [ printf_padding::pad#7 ] 
Uplift Scope [utoa] 37,803.9: zp[2]:31 [ utoa::buffer#10 utoa::buffer#15 utoa::buffer#4 ] 30,294.96: zp[2]:39 [ utoa::value#3 utoa::value#7 utoa::value#10 utoa::value#0 ] 22,668.93: zp[1]:43 [ utoa::digit#2 utoa::digit#1 ] 20,002: zp[1]:44 [ utoa::$4 ] 20,002: zp[1]:45 [ utoa::$10 ] 14,287.14: zp[1]:55 [ utoa::started#2 utoa::started#4 ] 6,000.6: zp[2]:63 [ utoa::digit_value#0 ] 2,002: zp[1]:71 [ utoa::$11 ] 2,002: zp[2]:72 [ utoa::buffer#3 ] 1,001: zp[1]:82 [ utoa::radix#2 ] 588.29: zp[1]:86 [ utoa::max_digits#7 ] 588.29: zp[2]:87 [ utoa::digit_values#8 ] 
Uplift Scope [ultoa] 38,003.93: zp[2]:29 [ ultoa::buffer#11 ultoa::buffer#14 ultoa::buffer#4 ] 30,717.36: zp[4]:35 [ ultoa::value#2 ultoa::value#6 ultoa::value#0 ] 22,859.43: zp[1]:42 [ ultoa::digit#2 ultoa::digit#1 ] 20,002: zp[1]:48 [ ultoa::$10 ] 15,001.5: zp[1]:54 [ ultoa::started#2 ultoa::started#4 ] 6,000.6: zp[4]:65 [ ultoa::digit_value#0 ] 2,002: zp[1]:76 [ ultoa::$11 ] 2,002: zp[2]:77 [ ultoa::buffer#3 ] 
Uplift Scope [printf_number_buffer] 6,506.5: zp[1]:62 [ printf_number_buffer::len#2 printf_number_buffer::len#0 printf_number_buffer::len#1 ] 1,167.83: zp[1]:81 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] 1,001: zp[2]:83 [ printf_number_buffer::$19 ] 763.43: zp[1]:85 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 printf_number_buffer::buffer_sign#2 ] 111.22: zp[2]:90 [ printf_number_buffer::putc#10 ] 100.1: zp[1]:92 [ printf_number_buffer::format_min_length#3 ] 88.32: zp[1]:93 [ printf_number_buffer::format_zero_padding#10 ] 60.67: zp[1]:94 [ printf_number_buffer::format_justify_left#10 ] 35.75: zp[1]:95 [ printf_number_buffer::format_upper_case#10 ] 
Uplift Scope [print] 3,003: zp[2]:69 [ print::msg#5 print::msg#0 ] 
Uplift Scope [] 1,203.2: zp[2]:79 [ screen#25 screen#1 screen#0 ] 11.02: zp[2]:96 [ __snprintf_size ] 9.02: zp[2]:98 [ __snprintf_buffer ] 6.49: zp[2]:100 [ __snprintf_capacity ] 0: mem[12] [ printf_buffer ] 
Uplift Scope [snputc] 242.4: zp[1]:89 [ snputc::c#2 snputc::c#0 ] 
Uplift Scope [RADIX] 
Uplift Scope [MOS6526_CIA] 
Uplift Scope [MOS6569_VICII] 
Uplift Scope [MOS6581_SID] 
Uplift Scope [printf_format_number] 
Uplift Scope [printf_buffer_number] 
Uplift Scope [printf_slong] 
Uplift Scope [printf_sint] 
Uplift Scope [printf_uint] 
Uplift Scope [printf_format_string] 
Uplift Scope [printf_string] 
Uplift Scope [snprintf_init] 
Uplift Scope [main] 
Uplift Scope [__start] 

Uplifting [utoa_append] best 25005 combination zp[2]:2 [ utoa_append::value#2 utoa_append::value#0 utoa_append::value#1 ] reg byte x [ utoa_append::digit#2 utoa_append::digit#1 ] zp[2]:11 [ utoa_append::sub#0 ] zp[2]:46 [ utoa_append::return#0 ] zp[2]:56 [ utoa_append::buffer#0 ] 
Uplifting [ultoa_append] best 24402 combination zp[4]:4 [ ultoa_append::value#2 ultoa_append::value#0 ultoa_append::value#1 ] reg byte x [ ultoa_append::digit#2 ultoa_append::digit#1 ] zp[4]:13 [ ultoa_append::sub#0 ] zp[4]:49 [ ultoa_append::return#0 ] zp[2]:58 [ ultoa_append::buffer#0 ] 
Uplifting [toupper] best 24275 combination reg byte a [ toupper::return#2 toupper::return#0 toupper::ch#0 ] reg byte a [ toupper::return#3 ] 
Uplifting [strupr] best 24215 combination zp[2]:20 [ strupr::src#2 strupr::src#1 ] reg byte a [ strupr::$0 ] 
Uplifting [strlen] best 24215 combination zp[2]:17 [ strlen::str#3 strlen::str#0 ] zp[2]:26 [ strlen::len#2 strlen::len#1 ] zp[2]:74 [ strlen::return#2 ] 
Uplifting [printf_str] best 24145 combination zp[2]:22 [ printf_str::s#11 printf_str::s#12 printf_str::s#0 ] reg byte a [ printf_str::c#1 ] zp[2]:60 [ printf_str::putc#12 printf_str::putc#0 ] 
Uplifting [printf_padding] best 24145 combination zp[1]:19 [ printf_padding::i#2 printf_padding::i#1 ] zp[2]:33 [ printf_padding::putc#7 printf_padding::putc#1 printf_padding::putc#2 printf_padding::putc#0 ] zp[1]:41 [ printf_padding::length#6 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ] zp[1]:53 [ printf_padding::pad#7 ] 
Uplifting [utoa] best 24020 combination zp[2]:31 [ utoa::buffer#10 utoa::buffer#15 utoa::buffer#4 ] zp[2]:39 [ utoa::value#3 utoa::value#7 utoa::value#10 utoa::value#0 ] zp[1]:43 [ utoa::digit#2 utoa::digit#1 ] reg byte a [ utoa::$4 ] reg byte a [ utoa::$10 ] reg byte x [ utoa::started#2 utoa::started#4 ] zp[2]:63 [ utoa::digit_value#0 ] zp[1]:71 [ utoa::$11 ] zp[2]:72 [ utoa::buffer#3 ] zp[1]:82 [ utoa::radix#2 ] zp[1]:86 [ utoa::max_digits#7 ] zp[2]:87 [ utoa::digit_values#8 ] 
Limited combination testing to 100 combinations of 2048 possible.
Uplifting [ultoa] best 23906 combination zp[2]:29 [ ultoa::buffer#11 ultoa::buffer#14 ultoa::buffer#4 ] zp[4]:35 [ ultoa::value#2 ultoa::value#6 ultoa::value#0 ] zp[1]:42 [ ultoa::digit#2 ultoa::digit#1 ] reg byte a [ ultoa::$10 ] reg byte x [ ultoa::started#2 ultoa::started#4 ] zp[4]:65 [ ultoa::digit_value#0 ] reg byte a [ ultoa::$11 ] zp[2]:77 [ ultoa::buffer#3 ] 
Uplifting [printf_number_buffer] best 23892 combination reg byte y [ printf_number_buffer::len#2 printf_number_buffer::len#0 printf_number_buffer::len#1 ] zp[1]:81 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] zp[2]:83 [ printf_number_buffer::$19 ] zp[1]:85 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 printf_number_buffer::buffer_sign#2 ] zp[2]:90 [ printf_number_buffer::putc#10 ] reg byte x [ printf_number_buffer::format_min_length#3 ] zp[1]:93 [ printf_number_buffer::format_zero_padding#10 ] zp[1]:94 [ printf_number_buffer::format_justify_left#10 ] zp[1]:95 [ printf_number_buffer::format_upper_case#10 ] 
Uplifting [print] best 23892 combination zp[2]:69 [ print::msg#5 print::msg#0 ] 
Uplifting [] best 23892 combination zp[2]:79 [ screen#25 screen#1 screen#0 ] zp[2]:96 [ __snprintf_size ] zp[2]:98 [ __snprintf_buffer ] zp[2]:100 [ __snprintf_capacity ] mem[12] [ printf_buffer ] 
Uplifting [snputc] best 23887 combination reg byte x [ snputc::c#2 snputc::c#0 ] 
Uplifting [RADIX] best 23887 combination 
Uplifting [MOS6526_CIA] best 23887 combination 
Uplifting [MOS6569_VICII] best 23887 combination 
Uplifting [MOS6581_SID] best 23887 combination 
Uplifting [printf_format_number] best 23887 combination 
Uplifting [printf_buffer_number] best 23887 combination 
Uplifting [printf_slong] best 23887 combination 
Uplifting [printf_sint] best 23887 combination 
Uplifting [printf_uint] best 23887 combination 
Uplifting [printf_format_string] best 23887 combination 
Uplifting [printf_string] best 23887 combination 
Uplifting [snprintf_init] best 23887 combination 
Uplifting [main] best 23887 combination 
Uplifting [__start] best 23887 combination 
Attempting to uplift remaining variables inzp[1]:19 [ printf_padding::i#2 printf_padding::i#1 ]
Uplifting [printf_padding] best 23887 combination zp[1]:19 [ printf_padding::i#2 printf_padding::i#1 ] 
Attempting to uplift remaining variables inzp[1]:41 [ printf_padding::length#6 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ]
Uplifting [printf_padding] best 23887 combination zp[1]:41 [ printf_padding::length#6 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ] 
Attempting to uplift remaining variables inzp[1]:42 [ ultoa::digit#2 ultoa::digit#1 ]
Uplifting [ultoa] best 23887 combination zp[1]:42 [ ultoa::digit#2 ultoa::digit#1 ] 
Attempting to uplift remaining variables inzp[1]:43 [ utoa::digit#2 utoa::digit#1 ]
Uplifting [utoa] best 23887 combination zp[1]:43 [ utoa::digit#2 utoa::digit#1 ] 
Attempting to uplift remaining variables inzp[1]:53 [ printf_padding::pad#7 ]
Uplifting [printf_padding] best 23887 combination zp[1]:53 [ printf_padding::pad#7 ] 
Attempting to uplift remaining variables inzp[1]:71 [ utoa::$11 ]
Uplifting [utoa] best 23881 combination reg byte x [ utoa::$11 ] 
Attempting to uplift remaining variables inzp[1]:81 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ]
Uplifting [printf_number_buffer] best 23881 combination zp[1]:81 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] 
Attempting to uplift remaining variables inzp[1]:82 [ utoa::radix#2 ]
Uplifting [utoa] best 23863 combination reg byte x [ utoa::radix#2 ] 
Attempting to uplift remaining variables inzp[1]:85 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 printf_number_buffer::buffer_sign#2 ]
Uplifting [printf_number_buffer] best 23863 combination zp[1]:85 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 printf_number_buffer::buffer_sign#2 ] 
Attempting to uplift remaining variables inzp[1]:86 [ utoa::max_digits#7 ]
Uplifting [utoa] best 23863 combination zp[1]:86 [ utoa::max_digits#7 ] 
Attempting to uplift remaining variables inzp[1]:93 [ printf_number_buffer::format_zero_padding#10 ]
Uplifting [printf_number_buffer] best 23863 combination zp[1]:93 [ printf_number_buffer::format_zero_padding#10 ] 
Attempting to uplift remaining variables inzp[1]:94 [ printf_number_buffer::format_justify_left#10 ]
Uplifting [printf_number_buffer] best 23863 combination zp[1]:94 [ printf_number_buffer::format_justify_left#10 ] 
Attempting to uplift remaining variables inzp[1]:95 [ printf_number_buffer::format_upper_case#10 ]
Uplifting [printf_number_buffer] best 23863 combination zp[1]:95 [ printf_number_buffer::format_upper_case#10 ] 
Coalescing zero page register [ zp[2]:90 [ printf_number_buffer::putc#10 ] ] with [ zp[2]:33 [ printf_padding::putc#7 printf_padding::putc#1 printf_padding::putc#2 printf_padding::putc#0 ] ] - score: 3
Coalescing zero page register [ zp[2]:60 [ printf_str::putc#12 printf_str::putc#0 ] ] with [ zp[2]:90 [ printf_number_buffer::putc#10 printf_padding::putc#7 printf_padding::putc#1 printf_padding::putc#2 printf_padding::putc#0 ] ] - score: 1
Coalescing zero page register [ zp[2]:39 [ utoa::value#3 utoa::value#7 utoa::value#10 utoa::value#0 ] ] with [ zp[2]:2 [ utoa_append::value#2 utoa_append::value#0 utoa_append::value#1 ] ] - score: 1
Coalescing zero page register [ zp[2]:39 [ utoa::value#3 utoa::value#7 utoa::value#10 utoa::value#0 utoa_append::value#2 utoa_append::value#0 utoa_append::value#1 ] ] with [ zp[2]:46 [ utoa_append::return#0 ] ] - score: 1
Coalescing zero page register [ zp[2]:31 [ utoa::buffer#10 utoa::buffer#15 utoa::buffer#4 ] ] with [ zp[2]:72 [ utoa::buffer#3 ] ] - score: 1
Coalescing zero page register [ zp[2]:31 [ utoa::buffer#10 utoa::buffer#15 utoa::buffer#4 utoa::buffer#3 ] ] with [ zp[2]:56 [ utoa_append::buffer#0 ] ] - score: 1
Coalescing zero page register [ zp[4]:35 [ ultoa::value#2 ultoa::value#6 ultoa::value#0 ] ] with [ zp[4]:4 [ ultoa_append::value#2 ultoa_append::value#0 ultoa_append::value#1 ] ] - score: 1
Coalescing zero page register [ zp[4]:35 [ ultoa::value#2 ultoa::value#6 ultoa::value#0 ultoa_append::value#2 ultoa_append::value#0 ultoa_append::value#1 ] ] with [ zp[4]:49 [ ultoa_append::return#0 ] ] - score: 1
Coalescing zero page register [ zp[2]:29 [ ultoa::buffer#11 ultoa::buffer#14 ultoa::buffer#4 ] ] with [ zp[2]:77 [ ultoa::buffer#3 ] ] - score: 1
Coalescing zero page register [ zp[2]:29 [ ultoa::buffer#11 ultoa::buffer#14 ultoa::buffer#4 ultoa::buffer#3 ] ] with [ zp[2]:58 [ ultoa_append::buffer#0 ] ] - score: 1
Coalescing zero page register [ zp[2]:26 [ strlen::len#2 strlen::len#1 ] ] with [ zp[2]:74 [ strlen::return#2 ] ] - score: 1
Coalescing zero page register [ zp[2]:63 [ utoa::digit_value#0 ] ] with [ zp[2]:11 [ utoa_append::sub#0 ] ] - score: 1
Coalescing zero page register [ zp[4]:65 [ ultoa::digit_value#0 ] ] with [ zp[4]:13 [ ultoa_append::sub#0 ] ] - score: 1
Coalescing zero page register [ zp[2]:26 [ strlen::len#2 strlen::len#1 strlen::return#2 ] ] with [ zp[2]:83 [ printf_number_buffer::$19 ] ] - score: 1
Coalescing zero page register [ zp[2]:69 [ print::msg#5 print::msg#0 ] ] with [ zp[2]:60 [ printf_str::putc#12 printf_str::putc#0 printf_number_buffer::putc#10 printf_padding::putc#7 printf_padding::putc#1 printf_padding::putc#2 printf_padding::putc#0 ] ]
Coalescing zero page register [ zp[2]:87 [ utoa::digit_values#8 ] ] with [ zp[2]:22 [ printf_str::s#11 printf_str::s#12 printf_str::s#0 ] ]
Coalescing zero page register [ zp[1]:94 [ printf_number_buffer::format_justify_left#10 ] ] with [ zp[1]:86 [ utoa::max_digits#7 ] ]
Coalescing zero page register [ zp[1]:93 [ printf_number_buffer::format_zero_padding#10 ] ] with [ zp[1]:43 [ utoa::digit#2 utoa::digit#1 ] ]
Coalescing zero page register [ zp[1]:42 [ ultoa::digit#2 ultoa::digit#1 ] ] with [ zp[1]:85 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 printf_number_buffer::buffer_sign#2 ] ]
Coalescing zero page register [ zp[2]:29 [ ultoa::buffer#11 ultoa::buffer#14 ultoa::buffer#4 ultoa::buffer#3 ultoa_append::buffer#0 ] ] with [ zp[2]:39 [ utoa::value#3 utoa::value#7 utoa::value#10 utoa::value#0 utoa_append::value#2 utoa_append::value#0 utoa_append::value#1 utoa_append::return#0 ] ]
Coalescing zero page register [ zp[2]:17 [ strlen::str#3 strlen::str#0 ] ] with [ zp[2]:31 [ utoa::buffer#10 utoa::buffer#15 utoa::buffer#4 utoa::buffer#3 utoa_append::buffer#0 ] ]
Coalescing zero page register [ zp[2]:63 [ utoa::digit_value#0 utoa_append::sub#0 ] ] with [ zp[2]:26 [ strlen::len#2 strlen::len#1 strlen::return#2 printf_number_buffer::$19 ] ]
Coalescing zero page register [ zp[2]:29 [ ultoa::buffer#11 ultoa::buffer#14 ultoa::buffer#4 ultoa::buffer#3 ultoa_append::buffer#0 utoa::value#3 utoa::value#7 utoa::value#10 utoa::value#0 utoa_append::value#2 utoa_append::value#0 utoa_append::value#1 utoa_append::return#0 ] ] with [ zp[2]:69 [ print::msg#5 print::msg#0 printf_str::putc#12 printf_str::putc#0 printf_number_buffer::putc#10 printf_padding::putc#7 printf_padding::putc#1 printf_padding::putc#2 printf_padding::putc#0 ] ]
Coalescing zero page register [ zp[2]:20 [ strupr::src#2 strupr::src#1 ] ] with [ zp[2]:87 [ utoa::digit_values#8 printf_str::s#11 printf_str::s#12 printf_str::s#0 ] ]
Allocated (was zp[2]:29) zp[2]:2 [ ultoa::buffer#11 ultoa::buffer#14 ultoa::buffer#4 ultoa::buffer#3 ultoa_append::buffer#0 utoa::value#3 utoa::value#7 utoa::value#10 utoa::value#0 utoa_append::value#2 utoa_append::value#0 utoa_append::value#1 utoa_append::return#0 print::msg#5 print::msg#0 printf_str::putc#12 printf_str::putc#0 printf_number_buffer::putc#10 printf_padding::putc#7 printf_padding::putc#1 printf_padding::putc#2 printf_padding::putc#0 ]
Allocated (was zp[4]:35) zp[4]:4 [ ultoa::value#2 ultoa::value#6 ultoa::value#0 ultoa_append::value#2 ultoa_append::value#0 ultoa_append::value#1 ultoa_append::return#0 ]
Allocated (was zp[2]:63) zp[2]:8 [ utoa::digit_value#0 utoa_append::sub#0 strlen::len#2 strlen::len#1 strlen::return#2 printf_number_buffer::$19 ]
Allocated (was zp[4]:65) zp[4]:10 [ ultoa::digit_value#0 ultoa_append::sub#0 ]
Allocated (was zp[2]:20) zp[2]:14 [ strupr::src#2 strupr::src#1 utoa::digit_values#8 printf_str::s#11 printf_str::s#12 printf_str::s#0 ]
Allocated (was zp[2]:17) zp[2]:16 [ strlen::str#3 strlen::str#0 utoa::buffer#10 utoa::buffer#15 utoa::buffer#4 utoa::buffer#3 utoa_append::buffer#0 ]
Allocated (was zp[1]:19) zp[1]:18 [ printf_padding::i#2 printf_padding::i#1 ]
Allocated (was zp[1]:41) zp[1]:19 [ printf_padding::length#6 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ]
Allocated (was zp[1]:42) zp[1]:20 [ ultoa::digit#2 ultoa::digit#1 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 printf_number_buffer::buffer_sign#2 ]
Allocated (was zp[1]:93) zp[1]:21 [ printf_number_buffer::format_zero_padding#10 utoa::digit#2 utoa::digit#1 ]
Allocated (was zp[1]:53) zp[1]:22 [ printf_padding::pad#7 ]
Allocated (was zp[2]:79) zp[2]:23 [ screen#25 screen#1 screen#0 ]
Allocated (was zp[1]:81) zp[1]:25 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ]
Allocated (was zp[1]:94) zp[1]:26 [ printf_number_buffer::format_justify_left#10 utoa::max_digits#7 ]
Allocated (was zp[1]:95) zp[1]:27 [ printf_number_buffer::format_upper_case#10 ]
Allocated (was zp[2]:96) zp[2]:28 [ __snprintf_size ]
Allocated (was zp[2]:98) zp[2]:30 [ __snprintf_buffer ]
Allocated (was zp[2]:100) zp[2]:32 [ __snprintf_capacity ]

ASSEMBLER BEFORE OPTIMIZATION
  // File Comments
// Tests sprintf function call rewriting
// Test simple formats
  // Upstart
  // Commodore 64 PRG executable file
.file [name="printf-19.prg", type="prg", segments="Program"]
.segmentdef Program [segments="Basic, Code, Data"]
.segmentdef Basic [start=$0801]
.segmentdef Code [start=$80d]
.segmentdef Data [startAfter="Code"]
.segment Basic
:BasicUpstart(__start)
  // Global Constants & labels
  .const BINARY = 2
  .const OCTAL = 8
  .const DECIMAL = $a
  .const HEXADECIMAL = $10
  .const OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = 1
  .const STACK_BASE = $103
  .const SIZEOF_STRUCT_PRINTF_BUFFER_NUMBER = $c
  /// The capacity of the buffer (n passed to snprintf())
  /// Used to hold state while printing
  .label __snprintf_capacity = $20
  // The number of chars that would have been filled when printing without capacity. Grows even after size>capacity.
  /// Used to hold state while printing
  .label __snprintf_size = $1c
  /// Current position in the buffer being filled ( initially *s passed to snprintf()
  /// Used to hold state while printing
  .label __snprintf_buffer = $1e
  .label screen = $17
.segment Code
  // __start
__start: {
    jmp __init1
    // __start::__init1
  __init1:
    // [1] __snprintf_capacity = 0 -- vwuz1=vwuc1 
    lda #<0
    sta.z __snprintf_capacity
    lda #>0
    sta.z __snprintf_capacity+1
    // [2] __snprintf_size = 0 -- vwuz1=vwuc1 
    lda #<0
    sta.z __snprintf_size
    lda #>0
    sta.z __snprintf_size+1
    // [3] __snprintf_buffer = (char *) 0 -- pbuz1=pbuc1 
    lda #<0
    sta.z __snprintf_buffer
    lda #>0
    sta.z __snprintf_buffer+1
    // [4] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1]
  __b1_from___init1:
    jmp __b1
    // __start::@1
  __b1:
    // [5] call main
    // [16] phi from __start::@1 to main [phi:__start::@1->main]
  main_from___b1:
    jsr main
    jmp __breturn
    // __start::@return
  __breturn:
    // [6] return 
    rts
}
  // snputc
/// Print a character into snprintf buffer
/// Used by snprintf()
/// @param c The character to print
// void snputc(__register(X) char c)
snputc: {
    .const OFFSET_STACK_C = 0
    // [7] snputc::c#0 = stackidx(char,snputc::OFFSET_STACK_C) -- vbuxx=_stackidxbyte_vbuc1 
    tsx
    lda STACK_BASE+OFFSET_STACK_C,x
    tax
    // [8] __snprintf_size = ++ __snprintf_size -- vwuz1=_inc_vwuz1 
    inc.z __snprintf_size
    bne !+
    inc.z __snprintf_size+1
  !:
    // [9] if(__snprintf_size<=__snprintf_capacity) goto snputc::@1 -- vwuz1_le_vwuz2_then_la1 
    lda.z __snprintf_size+1
    cmp.z __snprintf_capacity+1
    bne !+
    lda.z __snprintf_size
    cmp.z __snprintf_capacity
    beq __b1
  !:
    bcc __b1
    jmp __breturn
    // snputc::@return
  __breturn:
    // [10] return 
    rts
    // snputc::@1
  __b1:
    // [11] if(__snprintf_size!=__snprintf_capacity) goto snputc::@3 -- vwuz1_neq_vwuz2_then_la1 
    lda.z __snprintf_size+1
    cmp.z __snprintf_capacity+1
    bne __b3_from___b1
    lda.z __snprintf_size
    cmp.z __snprintf_capacity
    bne __b3_from___b1
    // [13] phi from snputc::@1 to snputc::@2 [phi:snputc::@1->snputc::@2]
  __b2_from___b1:
    // [13] phi snputc::c#2 = 0 [phi:snputc::@1->snputc::@2#0] -- vbuxx=vbuc1 
    ldx #0
    jmp __b2
    // [12] phi from snputc::@1 to snputc::@3 [phi:snputc::@1->snputc::@3]
  __b3_from___b1:
    jmp __b3
    // snputc::@3
  __b3:
    // [13] phi from snputc::@3 to snputc::@2 [phi:snputc::@3->snputc::@2]
  __b2_from___b3:
    // [13] phi snputc::c#2 = snputc::c#0 [phi:snputc::@3->snputc::@2#0] -- register_copy 
    jmp __b2
    // snputc::@2
  __b2:
    // [14] *__snprintf_buffer = snputc::c#2 -- _deref_pbuz1=vbuxx 
    // Append char
    txa
    ldy #0
    sta (__snprintf_buffer),y
    // [15] __snprintf_buffer = ++ __snprintf_buffer -- pbuz1=_inc_pbuz1 
    inc.z __snprintf_buffer
    bne !+
    inc.z __snprintf_buffer+1
  !:
    jmp __breturn
}
  // main
main: {
    // [17] call snprintf_init
    jsr snprintf_init
    // [18] phi from main to main::@1 [phi:main->main::@1]
  __b1_from_main:
    jmp __b1
    // main::@1
  __b1:
    // [19] call printf_str
    // [71] phi from main::@1 to printf_str [phi:main::@1->printf_str]
  printf_str_from___b1:
    // [71] phi printf_str::putc#12 = &snputc [phi:main::@1->printf_str#0] -- pprz1=pprc1 
    lda #<snputc
    sta.z printf_str.putc
    lda #>snputc
    sta.z printf_str.putc+1
    // [71] phi printf_str::s#12 = main::s [phi:main::@1->printf_str#1] -- pbuz1=pbuc1 
    lda #<s
    sta.z printf_str.s
    lda #>s
    sta.z printf_str.s+1
    jsr printf_str
    jmp __b2
    // main::@2
  __b2:
    // [20] stackpush(char) = 0 -- _stackpushbyte_=vbuc1 
    lda #0
    pha
    // [21] callexecute snputc  -- call_vprc1 
    jsr snputc
    // sideeffect stackpullbytes(1) -- _stackpullbyte_1 
    pla
    // [23] call print
    // [80] phi from main::@2 to print [phi:main::@2->print]
  print_from___b2:
    // [80] phi screen#25 = (char *) 1024 [phi:main::@2->print#0] -- pbuz1=pbuc1 
    lda #<$400
    sta.z screen
    lda #>$400
    sta.z screen+1
    jsr print
    // [24] phi from main::@2 to main::@3 [phi:main::@2->main::@3]
  __b3_from___b2:
    jmp __b3
    // main::@3
  __b3:
    // [25] call snprintf_init
    jsr snprintf_init
    // [26] phi from main::@3 to main::@4 [phi:main::@3->main::@4]
  __b4_from___b3:
    jmp __b4
    // main::@4
  __b4:
    // [27] call printf_str
    // [71] phi from main::@4 to printf_str [phi:main::@4->printf_str]
  printf_str_from___b4:
    // [71] phi printf_str::putc#12 = &snputc [phi:main::@4->printf_str#0] -- pprz1=pprc1 
    lda #<snputc
    sta.z printf_str.putc
    lda #>snputc
    sta.z printf_str.putc+1
    // [71] phi printf_str::s#12 = main::s1 [phi:main::@4->printf_str#1] -- pbuz1=pbuc1 
    lda #<s1
    sta.z printf_str.s
    lda #>s1
    sta.z printf_str.s+1
    jsr printf_str
    // [28] phi from main::@4 to main::@5 [phi:main::@4->main::@5]
  __b5_from___b4:
    jmp __b5
    // main::@5
  __b5:
    // [29] call printf_string
    // [87] phi from main::@5 to printf_string [phi:main::@5->printf_string]
  printf_string_from___b5:
    jsr printf_string
    jmp __b6
    // main::@6
  __b6:
    // [30] stackpush(char) = '!' -- _stackpushbyte_=vbuc1 
    lda #'!'
    pha
    // [31] callexecute snputc  -- call_vprc1 
    jsr snputc
    // sideeffect stackpullbytes(1) -- _stackpullbyte_1 
    pla
    // [33] call printf_str
    // [71] phi from main::@6 to printf_str [phi:main::@6->printf_str]
  printf_str_from___b6:
    // [71] phi printf_str::putc#12 = &snputc [phi:main::@6->printf_str#0] -- pprz1=pprc1 
    lda #<snputc
    sta.z printf_str.putc
    lda #>snputc
    sta.z printf_str.putc+1
    // [71] phi printf_str::s#12 = main::s2 [phi:main::@6->printf_str#1] -- pbuz1=pbuc1 
    lda #<s2
    sta.z printf_str.s
    lda #>s2
    sta.z printf_str.s+1
    jsr printf_str
    jmp __b7
    // main::@7
  __b7:
    // [34] stackpush(char) = 0 -- _stackpushbyte_=vbuc1 
    lda #0
    pha
    // [35] callexecute snputc  -- call_vprc1 
    jsr snputc
    // sideeffect stackpullbytes(1) -- _stackpullbyte_1 
    pla
    // [37] call print
    // [80] phi from main::@7 to print [phi:main::@7->print]
  print_from___b7:
    // [80] phi screen#25 = screen#1 [phi:main::@7->print#0] -- register_copy 
    jsr print
    // [38] phi from main::@7 to main::@8 [phi:main::@7->main::@8]
  __b8_from___b7:
    jmp __b8
    // main::@8
  __b8:
    // [39] call snprintf_init
    jsr snprintf_init
    // [40] phi from main::@8 to main::@9 [phi:main::@8->main::@9]
  __b9_from___b8:
    jmp __b9
    // main::@9
  __b9:
    // [41] call printf_str
    // [71] phi from main::@9 to printf_str [phi:main::@9->printf_str]
  printf_str_from___b9:
    // [71] phi printf_str::putc#12 = &snputc [phi:main::@9->printf_str#0] -- pprz1=pprc1 
    lda #<snputc
    sta.z printf_str.putc
    lda #>snputc
    sta.z printf_str.putc+1
    // [71] phi printf_str::s#12 = main::s1 [phi:main::@9->printf_str#1] -- pbuz1=pbuc1 
    lda #<s1
    sta.z printf_str.s
    lda #>s1
    sta.z printf_str.s+1
    jsr printf_str
    // [42] phi from main::@9 to main::@10 [phi:main::@9->main::@10]
  __b10_from___b9:
    jmp __b10
    // main::@10
  __b10:
    // [43] call printf_sint
    jsr printf_sint
    // [44] phi from main::@10 to main::@11 [phi:main::@10->main::@11]
  __b11_from___b10:
    jmp __b11
    // main::@11
  __b11:
    // [45] call printf_str
    // [71] phi from main::@11 to printf_str [phi:main::@11->printf_str]
  printf_str_from___b11:
    // [71] phi printf_str::putc#12 = &snputc [phi:main::@11->printf_str#0] -- pprz1=pprc1 
    lda #<snputc
    sta.z printf_str.putc
    lda #>snputc
    sta.z printf_str.putc+1
    // [71] phi printf_str::s#12 = main::s4 [phi:main::@11->printf_str#1] -- pbuz1=pbuc1 
    lda #<s4
    sta.z printf_str.s
    lda #>s4
    sta.z printf_str.s+1
    jsr printf_str
    // [46] phi from main::@11 to main::@12 [phi:main::@11->main::@12]
  __b12_from___b11:
    jmp __b12
    // main::@12
  __b12:
    // [47] call printf_uint
    // [97] phi from main::@12 to printf_uint [phi:main::@12->printf_uint]
  printf_uint_from___b12:
    jsr printf_uint
    // [48] phi from main::@12 to main::@13 [phi:main::@12->main::@13]
  __b13_from___b12:
    jmp __b13
    // main::@13
  __b13:
    // [49] call printf_str
    // [71] phi from main::@13 to printf_str [phi:main::@13->printf_str]
  printf_str_from___b13:
    // [71] phi printf_str::putc#12 = &snputc [phi:main::@13->printf_str#0] -- pprz1=pprc1 
    lda #<snputc
    sta.z printf_str.putc
    lda #>snputc
    sta.z printf_str.putc+1
    // [71] phi printf_str::s#12 = main::s5 [phi:main::@13->printf_str#1] -- pbuz1=pbuc1 
    lda #<s5
    sta.z printf_str.s
    lda #>s5
    sta.z printf_str.s+1
    jsr printf_str
    jmp __b14
    // main::@14
  __b14:
    // [50] stackpush(char) = 0 -- _stackpushbyte_=vbuc1 
    lda #0
    pha
    // [51] callexecute snputc  -- call_vprc1 
    jsr snputc
    // sideeffect stackpullbytes(1) -- _stackpullbyte_1 
    pla
    // [53] call print
    // [80] phi from main::@14 to print [phi:main::@14->print]
  print_from___b14:
    // [80] phi screen#25 = screen#1 [phi:main::@14->print#0] -- register_copy 
    jsr print
    // [54] phi from main::@14 to main::@15 [phi:main::@14->main::@15]
  __b15_from___b14:
    jmp __b15
    // main::@15
  __b15:
    // [55] call snprintf_init
    jsr snprintf_init
    // [56] phi from main::@15 to main::@16 [phi:main::@15->main::@16]
  __b16_from___b15:
    jmp __b16
    // main::@16
  __b16:
    // [57] call printf_str
    // [71] phi from main::@16 to printf_str [phi:main::@16->printf_str]
  printf_str_from___b16:
    // [71] phi printf_str::putc#12 = &snputc [phi:main::@16->printf_str#0] -- pprz1=pprc1 
    lda #<snputc
    sta.z printf_str.putc
    lda #>snputc
    sta.z printf_str.putc+1
    // [71] phi printf_str::s#12 = main::s6 [phi:main::@16->printf_str#1] -- pbuz1=pbuc1 
    lda #<s6
    sta.z printf_str.s
    lda #>s6
    sta.z printf_str.s+1
    jsr printf_str
    // [58] phi from main::@16 to main::@17 [phi:main::@16->main::@17]
  __b17_from___b16:
    jmp __b17
    // main::@17
  __b17:
    // [59] call printf_slong
    jsr printf_slong
    // [60] phi from main::@17 to main::@18 [phi:main::@17->main::@18]
  __b18_from___b17:
    jmp __b18
    // main::@18
  __b18:
    // [61] call printf_str
    // [71] phi from main::@18 to printf_str [phi:main::@18->printf_str]
  printf_str_from___b18:
    // [71] phi printf_str::putc#12 = &snputc [phi:main::@18->printf_str#0] -- pprz1=pprc1 
    lda #<snputc
    sta.z printf_str.putc
    lda #>snputc
    sta.z printf_str.putc+1
    // [71] phi printf_str::s#12 = main::s5 [phi:main::@18->printf_str#1] -- pbuz1=pbuc1 
    lda #<s5
    sta.z printf_str.s
    lda #>s5
    sta.z printf_str.s+1
    jsr printf_str
    jmp __b19
    // main::@19
  __b19:
    // [62] stackpush(char) = 0 -- _stackpushbyte_=vbuc1 
    lda #0
    pha
    // [63] callexecute snputc  -- call_vprc1 
    jsr snputc
    // sideeffect stackpullbytes(1) -- _stackpullbyte_1 
    pla
    // [65] call print
    // [80] phi from main::@19 to print [phi:main::@19->print]
  print_from___b19:
    // [80] phi screen#25 = screen#1 [phi:main::@19->print#0] -- register_copy 
    jsr print
    jmp __breturn
    // main::@return
  __breturn:
    // [66] return 
    rts
  .segment Data
    s: .text "hello world! "
    .byte 0
    s1: .text "hello "
    .byte 0
    str: .text "world"
    .byte 0
    s2: .text " "
    .byte 0
    s4: .text "+"
    .byte 0
    s5: .text "! "
    .byte 0
    s6: .text "hi "
    .byte 0
}
.segment Code
  // snprintf_init
/// Initialize the snprintf() state
// void snprintf_init(char *s, unsigned int n)
snprintf_init: {
    // [67] __snprintf_capacity = $ffff -- vwuz1=vwuc1 
    lda #<$ffff
    sta.z __snprintf_capacity
    lda #>$ffff
    sta.z __snprintf_capacity+1
    // [68] __snprintf_size = 0 -- vwuz1=vbuc1 
    lda #<0
    sta.z __snprintf_size
    lda #>0
    sta.z __snprintf_size+1
    // [69] __snprintf_buffer = BUF -- pbuz1=pbuc1 
    lda #<BUF
    sta.z __snprintf_buffer
    lda #>BUF
    sta.z __snprintf_buffer+1
    jmp __breturn
    // snprintf_init::@return
  __breturn:
    // [70] return 
    rts
}
  // printf_str
/// Print a NUL-terminated string
// void printf_str(__zp(2) void (*putc)(char), __zp($e) const char *s)
printf_str: {
    .label s = $e
    .label putc = 2
    // [72] phi from printf_str printf_str::@2 to printf_str::@1 [phi:printf_str/printf_str::@2->printf_str::@1]
  __b1_from_printf_str:
  __b1_from___b2:
    // [72] phi printf_str::s#11 = printf_str::s#12 [phi:printf_str/printf_str::@2->printf_str::@1#0] -- register_copy 
    jmp __b1
    // printf_str::@1
  __b1:
    // [73] printf_str::c#1 = *printf_str::s#11 -- vbuaa=_deref_pbuz1 
    ldy #0
    lda (s),y
    // [74] printf_str::s#0 = ++ printf_str::s#11 -- pbuz1=_inc_pbuz1 
    inc.z s
    bne !+
    inc.z s+1
  !:
    // [75] if(0!=printf_str::c#1) goto printf_str::@2 -- 0_neq_vbuaa_then_la1 
    cmp #0
    bne __b2
    jmp __breturn
    // printf_str::@return
  __breturn:
    // [76] return 
    rts
    // printf_str::@2
  __b2:
    // [77] stackpush(char) = printf_str::c#1 -- _stackpushbyte_=vbuaa 
    pha
    // [78] callexecute *printf_str::putc#12  -- call__deref_pprz1 
    jsr icall6
    // sideeffect stackpullbytes(1) -- _stackpullbyte_1 
    pla
    jmp __b1_from___b2
    // Outside Flow
  icall6:
    jmp (putc)
}
  // print
// void print(__zp(2) char *msg)
print: {
    .label msg = 2
    // [81] phi from print to print::@1 [phi:print->print::@1]
  __b1_from_print:
    // [81] phi screen#1 = screen#25 [phi:print->print::@1#0] -- register_copy 
    // [81] phi print::msg#5 = BUF [phi:print->print::@1#1] -- pbuz1=pbuc1 
    lda #<BUF
    sta.z msg
    lda #>BUF
    sta.z msg+1
    jmp __b1
    // print::@1
  __b1:
    // [82] if(0!=*print::msg#5) goto print::@2 -- 0_neq__deref_pbuz1_then_la1 
    ldy #0
    lda (msg),y
    cmp #0
    bne __b2
    jmp __breturn
    // print::@return
  __breturn:
    // [83] return 
    rts
    // print::@2
  __b2:
    // [84] *screen#1 = *print::msg#5 -- _deref_pbuz1=_deref_pbuz2 
    ldy #0
    lda (msg),y
    ldy #0
    sta (screen),y
    // [85] screen#0 = ++ screen#1 -- pbuz1=_inc_pbuz1 
    inc.z screen
    bne !+
    inc.z screen+1
  !:
    // [86] print::msg#0 = ++ print::msg#5 -- pbuz1=_inc_pbuz1 
    inc.z msg
    bne !+
    inc.z msg+1
  !:
    // [81] phi from print::@2 to print::@1 [phi:print::@2->print::@1]
  __b1_from___b2:
    // [81] phi screen#1 = screen#0 [phi:print::@2->print::@1#0] -- register_copy 
    // [81] phi print::msg#5 = print::msg#0 [phi:print::@2->print::@1#1] -- register_copy 
    jmp __b1
}
  // printf_string
// Print a string value using a specific format
// Handles justification and min length 
// void printf_string(void (*putc)(char), char *str, char format_min_length, char format_justify_left)
printf_string: {
    .label putc = snputc
    // [88] phi from printf_string to printf_string::@1 [phi:printf_string->printf_string::@1]
  __b1_from_printf_string:
    jmp __b1
    // printf_string::@1
  __b1:
    // [89] call printf_str
    // [71] phi from printf_string::@1 to printf_str [phi:printf_string::@1->printf_str]
  printf_str_from___b1:
    // [71] phi printf_str::putc#12 = printf_string::putc#0 [phi:printf_string::@1->printf_str#0] -- pprz1=pprc1 
    lda #<putc
    sta.z printf_str.putc
    lda #>putc
    sta.z printf_str.putc+1
    // [71] phi printf_str::s#12 = main::str [phi:printf_string::@1->printf_str#1] -- pbuz1=pbuc1 
    lda #<main.str
    sta.z printf_str.s
    lda #>main.str
    sta.z printf_str.s+1
    jsr printf_str
    jmp __breturn
    // printf_string::@return
  __breturn:
    // [90] return 
    rts
}
  // printf_sint
// Print a signed integer using a specific format
// void printf_sint(void (*putc)(char), int 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_sint: {
    .const value = 3
    .const format_min_length = 0
    .const format_justify_left = 0
    .const format_zero_padding = 0
    .const format_upper_case = 0
    // Format number into buffer
    .const uvalue = value
    .label putc = snputc
    // [91] *((char *)&printf_buffer) = 0 -- _deref_pbuc1=vbuc2 
    // Handle any sign
    lda #0
    sta printf_buffer
    // [92] phi from printf_sint to printf_sint::@1 [phi:printf_sint->printf_sint::@1]
  __b1_from_printf_sint:
    jmp __b1
    // printf_sint::@1
  __b1:
    // [93] call utoa
    // [109] phi from printf_sint::@1 to utoa [phi:printf_sint::@1->utoa]
  utoa_from___b1:
    // [109] phi utoa::value#10 = printf_sint::uvalue#0 [phi:printf_sint::@1->utoa#0] -- vwuz1=vwuc1 
    lda #<uvalue
    sta.z utoa.value
    lda #>uvalue
    sta.z utoa.value+1
    // [109] phi utoa::radix#2 = DECIMAL [phi:printf_sint::@1->utoa#1] -- vbuxx=vbuc1 
    ldx #DECIMAL
    jsr utoa
    jmp __b2
    // printf_sint::@2
  __b2:
    // [94] printf_number_buffer::buffer_sign#1 = *((char *)&printf_buffer) -- vbuz1=_deref_pbuc1 
    lda printf_buffer
    sta.z printf_number_buffer.buffer_sign
    // [95] call printf_number_buffer
  // Print using format
    // [140] phi from printf_sint::@2 to printf_number_buffer [phi:printf_sint::@2->printf_number_buffer]
  printf_number_buffer_from___b2:
    // [140] phi printf_number_buffer::format_upper_case#10 = printf_sint::format_upper_case#0 [phi:printf_sint::@2->printf_number_buffer#0] -- vbuz1=vbuc1 
    lda #format_upper_case
    sta.z printf_number_buffer.format_upper_case
    // [140] phi printf_number_buffer::putc#10 = printf_sint::putc#0 [phi:printf_sint::@2->printf_number_buffer#1] -- pprz1=pprc1 
    lda #<putc
    sta.z printf_number_buffer.putc
    lda #>putc
    sta.z printf_number_buffer.putc+1
    // [140] phi printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#1 [phi:printf_sint::@2->printf_number_buffer#2] -- register_copy 
    // [140] phi printf_number_buffer::format_zero_padding#10 = printf_sint::format_zero_padding#0 [phi:printf_sint::@2->printf_number_buffer#3] -- vbuz1=vbuc1 
    lda #format_zero_padding
    sta.z printf_number_buffer.format_zero_padding
    // [140] phi printf_number_buffer::format_justify_left#10 = printf_sint::format_justify_left#0 [phi:printf_sint::@2->printf_number_buffer#4] -- vbuz1=vbuc1 
    lda #format_justify_left
    sta.z printf_number_buffer.format_justify_left
    // [140] phi printf_number_buffer::format_min_length#3 = printf_sint::format_min_length#0 [phi:printf_sint::@2->printf_number_buffer#5] -- vbuxx=vbuc1 
    ldx #format_min_length
    jsr printf_number_buffer
    jmp __breturn
    // printf_sint::@return
  __breturn:
    // [96] return 
    rts
}
  // printf_uint
// Print an unsigned int using a specific format
// 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: {
    .const uvalue = $b
    .const format_min_length = 0
    .const format_justify_left = 0
    .const format_zero_padding = 0
    .const format_upper_case = 0
    .label putc = snputc
    jmp __b1
    // printf_uint::@1
  __b1:
    // [98] *((char *)&printf_buffer) = 0 -- _deref_pbuc1=vbuc2 
    // Handle any sign
    lda #0
    sta printf_buffer
    // [99] call utoa
  // Format number into buffer
    // [109] phi from printf_uint::@1 to utoa [phi:printf_uint::@1->utoa]
  utoa_from___b1:
    // [109] phi utoa::value#10 = printf_uint::uvalue#0 [phi:printf_uint::@1->utoa#0] -- vwuz1=vwuc1 
    lda #<uvalue
    sta.z utoa.value
    lda #>uvalue
    sta.z utoa.value+1
    // [109] phi utoa::radix#2 = HEXADECIMAL [phi:printf_uint::@1->utoa#1] -- vbuxx=vbuc1 
    ldx #HEXADECIMAL
    jsr utoa
    jmp __b2
    // printf_uint::@2
  __b2:
    // [100] printf_number_buffer::buffer_sign#2 = *((char *)&printf_buffer) -- vbuz1=_deref_pbuc1 
    lda printf_buffer
    sta.z printf_number_buffer.buffer_sign
    // [101] call printf_number_buffer
  // Print using format
    // [140] phi from printf_uint::@2 to printf_number_buffer [phi:printf_uint::@2->printf_number_buffer]
  printf_number_buffer_from___b2:
    // [140] phi printf_number_buffer::format_upper_case#10 = printf_uint::format_upper_case#0 [phi:printf_uint::@2->printf_number_buffer#0] -- vbuz1=vbuc1 
    lda #format_upper_case
    sta.z printf_number_buffer.format_upper_case
    // [140] phi printf_number_buffer::putc#10 = printf_uint::putc#0 [phi:printf_uint::@2->printf_number_buffer#1] -- pprz1=pprc1 
    lda #<putc
    sta.z printf_number_buffer.putc
    lda #>putc
    sta.z printf_number_buffer.putc+1
    // [140] phi printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 [phi:printf_uint::@2->printf_number_buffer#2] -- register_copy 
    // [140] phi printf_number_buffer::format_zero_padding#10 = printf_uint::format_zero_padding#0 [phi:printf_uint::@2->printf_number_buffer#3] -- vbuz1=vbuc1 
    lda #format_zero_padding
    sta.z printf_number_buffer.format_zero_padding
    // [140] phi printf_number_buffer::format_justify_left#10 = printf_uint::format_justify_left#0 [phi:printf_uint::@2->printf_number_buffer#4] -- vbuz1=vbuc1 
    lda #format_justify_left
    sta.z printf_number_buffer.format_justify_left
    // [140] phi printf_number_buffer::format_min_length#3 = printf_uint::format_min_length#0 [phi:printf_uint::@2->printf_number_buffer#5] -- vbuxx=vbuc1 
    ldx #format_min_length
    jsr printf_number_buffer
    jmp __breturn
    // printf_uint::@return
  __breturn:
    // [102] return 
    rts
}
  // printf_slong
// Print a signed long using a specific format
// void printf_slong(void (*putc)(char), long 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_slong: {
    .const value = $153158e
    .const format_min_length = 0
    .const format_justify_left = 0
    .const format_zero_padding = 0
    .const format_upper_case = 0
    .label putc = snputc
    // Format number into buffer
    .label uvalue = value
    // [103] *((char *)&printf_buffer) = 0 -- _deref_pbuc1=vbuc2 
    // Handle any sign
    lda #0
    sta printf_buffer
    // [104] phi from printf_slong to printf_slong::@1 [phi:printf_slong->printf_slong::@1]
  __b1_from_printf_slong:
    jmp __b1
    // printf_slong::@1
  __b1:
    // [105] call ultoa
    // [181] phi from printf_slong::@1 to ultoa [phi:printf_slong::@1->ultoa]
  ultoa_from___b1:
    jsr ultoa
    jmp __b2
    // printf_slong::@2
  __b2:
    // [106] printf_number_buffer::buffer_sign#0 = *((char *)&printf_buffer) -- vbuz1=_deref_pbuc1 
    lda printf_buffer
    sta.z printf_number_buffer.buffer_sign
    // [107] call printf_number_buffer
  // Print using format
    // [140] phi from printf_slong::@2 to printf_number_buffer [phi:printf_slong::@2->printf_number_buffer]
  printf_number_buffer_from___b2:
    // [140] phi printf_number_buffer::format_upper_case#10 = printf_slong::format_upper_case#0 [phi:printf_slong::@2->printf_number_buffer#0] -- vbuz1=vbuc1 
    lda #format_upper_case
    sta.z printf_number_buffer.format_upper_case
    // [140] phi printf_number_buffer::putc#10 = printf_slong::putc#0 [phi:printf_slong::@2->printf_number_buffer#1] -- pprz1=pprc1 
    lda #<putc
    sta.z printf_number_buffer.putc
    lda #>putc
    sta.z printf_number_buffer.putc+1
    // [140] phi printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#0 [phi:printf_slong::@2->printf_number_buffer#2] -- register_copy 
    // [140] phi printf_number_buffer::format_zero_padding#10 = printf_slong::format_zero_padding#0 [phi:printf_slong::@2->printf_number_buffer#3] -- vbuz1=vbuc1 
    lda #format_zero_padding
    sta.z printf_number_buffer.format_zero_padding
    // [140] phi printf_number_buffer::format_justify_left#10 = printf_slong::format_justify_left#0 [phi:printf_slong::@2->printf_number_buffer#4] -- vbuz1=vbuc1 
    lda #format_justify_left
    sta.z printf_number_buffer.format_justify_left
    // [140] phi printf_number_buffer::format_min_length#3 = printf_slong::format_min_length#0 [phi:printf_slong::@2->printf_number_buffer#5] -- vbuxx=vbuc1 
    ldx #format_min_length
    jsr printf_number_buffer
    jmp __breturn
    // printf_slong::@return
  __breturn:
    // [108] return 
    rts
}
  // utoa
// Converts unsigned number value to a string representing it in RADIX format.
// If the leading digits are zero they are not included in the string.
// - value : The number to be converted to RADIX
// - buffer : receives the string representing the number and zero-termination.
// - radix : The radix to convert the number to (from the enum RADIX)
// void utoa(__zp(2) unsigned int value, __zp($10) char *buffer, __register(X) char radix)
utoa: {
    .label digit_value = 8
    .label buffer = $10
    .label digit = $15
    .label value = 2
    .label max_digits = $1a
    .label digit_values = $e
    // [110] if(utoa::radix#2==DECIMAL) goto utoa::@1 -- vbuxx_eq_vbuc1_then_la1 
    cpx #DECIMAL
    beq __b1_from_utoa
    jmp __b2
    // utoa::@2
  __b2:
    // [111] if(utoa::radix#2==HEXADECIMAL) goto utoa::@1 -- vbuxx_eq_vbuc1_then_la1 
    cpx #HEXADECIMAL
    beq __b1_from___b2
    jmp __b3
    // utoa::@3
  __b3:
    // [112] if(utoa::radix#2==OCTAL) goto utoa::@1 -- vbuxx_eq_vbuc1_then_la1 
    cpx #OCTAL
    beq __b1_from___b3
    jmp __b4
    // utoa::@4
  __b4:
    // [113] if(utoa::radix#2==BINARY) goto utoa::@1 -- vbuxx_eq_vbuc1_then_la1 
    cpx #BINARY
    beq __b1_from___b4
    jmp __b5
    // utoa::@5
  __b5:
    // [114] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS) = 'e' -- _deref_pbuc1=vbuc2 
    // Unknown radix
    lda #'e'
    sta printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
    // [115] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1) = 'r' -- _deref_pbuc1=vbuc2 
    lda #'r'
    sta printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1
    // [116] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+2) = 'r' -- _deref_pbuc1=vbuc2 
    lda #'r'
    sta printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+2
    // [117] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+3) = 0 -- _deref_pbuc1=vbuc2 
    lda #0
    sta printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+3
    jmp __breturn
    // utoa::@return
  __breturn:
    // [118] return 
    rts
    // [119] phi from utoa to utoa::@1 [phi:utoa->utoa::@1]
  __b1_from_utoa:
    // [119] phi utoa::digit_values#8 = RADIX_DECIMAL_VALUES [phi:utoa->utoa::@1#0] -- pwuz1=pwuc1 
    lda #<RADIX_DECIMAL_VALUES
    sta.z digit_values
    lda #>RADIX_DECIMAL_VALUES
    sta.z digit_values+1
    // [119] phi utoa::max_digits#7 = 5 [phi:utoa->utoa::@1#1] -- vbuz1=vbuc1 
    lda #5
    sta.z max_digits
    jmp __b1
    // [119] phi from utoa::@2 to utoa::@1 [phi:utoa::@2->utoa::@1]
  __b1_from___b2:
    // [119] phi utoa::digit_values#8 = RADIX_HEXADECIMAL_VALUES [phi:utoa::@2->utoa::@1#0] -- pwuz1=pwuc1 
    lda #<RADIX_HEXADECIMAL_VALUES
    sta.z digit_values
    lda #>RADIX_HEXADECIMAL_VALUES
    sta.z digit_values+1
    // [119] phi utoa::max_digits#7 = 4 [phi:utoa::@2->utoa::@1#1] -- vbuz1=vbuc1 
    lda #4
    sta.z max_digits
    jmp __b1
    // [119] phi from utoa::@3 to utoa::@1 [phi:utoa::@3->utoa::@1]
  __b1_from___b3:
    // [119] phi utoa::digit_values#8 = RADIX_OCTAL_VALUES [phi:utoa::@3->utoa::@1#0] -- pwuz1=pwuc1 
    lda #<RADIX_OCTAL_VALUES
    sta.z digit_values
    lda #>RADIX_OCTAL_VALUES
    sta.z digit_values+1
    // [119] phi utoa::max_digits#7 = 6 [phi:utoa::@3->utoa::@1#1] -- vbuz1=vbuc1 
    lda #6
    sta.z max_digits
    jmp __b1
    // [119] phi from utoa::@4 to utoa::@1 [phi:utoa::@4->utoa::@1]
  __b1_from___b4:
    // [119] phi utoa::digit_values#8 = RADIX_BINARY_VALUES [phi:utoa::@4->utoa::@1#0] -- pwuz1=pwuc1 
    lda #<RADIX_BINARY_VALUES
    sta.z digit_values
    lda #>RADIX_BINARY_VALUES
    sta.z digit_values+1
    // [119] phi utoa::max_digits#7 = $10 [phi:utoa::@4->utoa::@1#1] -- vbuz1=vbuc1 
    lda #$10
    sta.z max_digits
    jmp __b1
    // utoa::@1
  __b1:
    // [120] phi from utoa::@1 to utoa::@6 [phi:utoa::@1->utoa::@6]
  __b6_from___b1:
    // [120] phi utoa::buffer#10 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:utoa::@1->utoa::@6#0] -- pbuz1=pbuc1 
    lda #<printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
    sta.z buffer
    lda #>printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
    sta.z buffer+1
    // [120] phi utoa::started#2 = 0 [phi:utoa::@1->utoa::@6#1] -- vbuxx=vbuc1 
    ldx #0
    // [120] phi utoa::value#3 = utoa::value#10 [phi:utoa::@1->utoa::@6#2] -- register_copy 
    // [120] phi utoa::digit#2 = 0 [phi:utoa::@1->utoa::@6#3] -- vbuz1=vbuc1 
    lda #0
    sta.z digit
    jmp __b6
    // utoa::@6
  __b6:
    // [121] utoa::$4 = utoa::max_digits#7 - 1 -- vbuaa=vbuz1_minus_1 
    lda.z max_digits
    sec
    sbc #1
    // [122] if(utoa::digit#2<utoa::$4) goto utoa::@7 -- vbuz1_lt_vbuaa_then_la1 
    cmp.z digit
    beq !+
    bcs __b7
  !:
    jmp __b8
    // utoa::@8
  __b8:
    // [123] utoa::$11 = (char)utoa::value#3 -- vbuxx=_byte_vwuz1 
    ldx.z value
    // [124] *utoa::buffer#10 = DIGITS[utoa::$11] -- _deref_pbuz1=pbuc1_derefidx_vbuxx 
    lda DIGITS,x
    ldy #0
    sta (buffer),y
    // [125] utoa::buffer#3 = ++ utoa::buffer#10 -- pbuz1=_inc_pbuz1 
    inc.z buffer
    bne !+
    inc.z buffer+1
  !:
    // [126] *utoa::buffer#3 = 0 -- _deref_pbuz1=vbuc1 
    lda #0
    ldy #0
    sta (buffer),y
    jmp __breturn
    // utoa::@7
  __b7:
    // [127] utoa::$10 = utoa::digit#2 << 1 -- vbuaa=vbuz1_rol_1 
    lda.z digit
    asl
    // [128] utoa::digit_value#0 = utoa::digit_values#8[utoa::$10] -- vwuz1=pwuz2_derefidx_vbuaa 
    tay
    lda (digit_values),y
    sta.z digit_value
    iny
    lda (digit_values),y
    sta.z digit_value+1
    // [129] if(0!=utoa::started#2) goto utoa::@10 -- 0_neq_vbuxx_then_la1 
    cpx #0
    bne __b10
    jmp __b12
    // utoa::@12
  __b12:
    // [130] if(utoa::value#3>=utoa::digit_value#0) goto utoa::@10 -- vwuz1_ge_vwuz2_then_la1 
    lda.z digit_value+1
    cmp.z value+1
    bne !+
    lda.z digit_value
    cmp.z value
    beq __b10
  !:
    bcc __b10
    // [131] phi from utoa::@12 to utoa::@9 [phi:utoa::@12->utoa::@9]
  __b9_from___b12:
    // [131] phi utoa::buffer#15 = utoa::buffer#10 [phi:utoa::@12->utoa::@9#0] -- register_copy 
    // [131] phi utoa::started#4 = utoa::started#2 [phi:utoa::@12->utoa::@9#1] -- register_copy 
    // [131] phi utoa::value#7 = utoa::value#3 [phi:utoa::@12->utoa::@9#2] -- register_copy 
    jmp __b9
    // utoa::@9
  __b9:
    // [132] utoa::digit#1 = ++ utoa::digit#2 -- vbuz1=_inc_vbuz1 
    inc.z digit
    // [120] phi from utoa::@9 to utoa::@6 [phi:utoa::@9->utoa::@6]
  __b6_from___b9:
    // [120] phi utoa::buffer#10 = utoa::buffer#15 [phi:utoa::@9->utoa::@6#0] -- register_copy 
    // [120] phi utoa::started#2 = utoa::started#4 [phi:utoa::@9->utoa::@6#1] -- register_copy 
    // [120] phi utoa::value#3 = utoa::value#7 [phi:utoa::@9->utoa::@6#2] -- register_copy 
    // [120] phi utoa::digit#2 = utoa::digit#1 [phi:utoa::@9->utoa::@6#3] -- register_copy 
    jmp __b6
    // utoa::@10
  __b10:
    // [133] utoa_append::buffer#0 = utoa::buffer#10
    // [134] utoa_append::value#0 = utoa::value#3
    // [135] utoa_append::sub#0 = utoa::digit_value#0
    // [136] call utoa_append
    // [202] phi from utoa::@10 to utoa_append [phi:utoa::@10->utoa_append]
  utoa_append_from___b10:
    jsr utoa_append
    // [137] utoa_append::return#0 = utoa_append::value#2
    jmp __b11
    // utoa::@11
  __b11:
    // [138] utoa::value#0 = utoa_append::return#0
    // [139] utoa::buffer#4 = ++ utoa::buffer#10 -- pbuz1=_inc_pbuz1 
    inc.z buffer
    bne !+
    inc.z buffer+1
  !:
    // [131] phi from utoa::@11 to utoa::@9 [phi:utoa::@11->utoa::@9]
  __b9_from___b11:
    // [131] phi utoa::buffer#15 = utoa::buffer#4 [phi:utoa::@11->utoa::@9#0] -- register_copy 
    // [131] phi utoa::started#4 = 1 [phi:utoa::@11->utoa::@9#1] -- vbuxx=vbuc1 
    ldx #1
    // [131] phi utoa::value#7 = utoa::value#0 [phi:utoa::@11->utoa::@9#2] -- register_copy 
    jmp __b9
}
  // printf_number_buffer
// Print the contents of the number buffer using a specific format.
// This handles minimum length, zero-filling, and left/right justification from the format
// void printf_number_buffer(__zp(2) void (*putc)(char), __zp($14) char buffer_sign, char *buffer_digits, __register(X) char format_min_length, __zp($1a) char format_justify_left, char format_sign_always, __zp($15) char format_zero_padding, __zp($1b) char format_upper_case, char format_radix)
printf_number_buffer: {
    .label __19 = 8
    .label buffer_sign = $14
    .label padding = $19
    .label format_zero_padding = $15
    .label putc = 2
    .label format_justify_left = $1a
    .label format_upper_case = $1b
    // [141] if(0==printf_number_buffer::format_min_length#3) goto printf_number_buffer::@1 -- 0_eq_vbuxx_then_la1 
    cpx #0
    beq __b1_from_printf_number_buffer
    // [142] phi from printf_number_buffer to printf_number_buffer::@6 [phi:printf_number_buffer->printf_number_buffer::@6]
  __b6_from_printf_number_buffer:
    jmp __b6
    // printf_number_buffer::@6
  __b6:
    // [143] call strlen
    // [209] phi from printf_number_buffer::@6 to strlen [phi:printf_number_buffer::@6->strlen]
  strlen_from___b6:
    jsr strlen
    // [144] strlen::return#2 = strlen::len#2
    jmp __b14
    // printf_number_buffer::@14
  __b14:
    // [145] printf_number_buffer::$19 = strlen::return#2
    // [146] printf_number_buffer::len#0 = (signed char)printf_number_buffer::$19 -- vbsyy=_sbyte_vwuz1 
    // There is a minimum length - work out the padding
    ldy.z __19
    // [147] if(0==printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@13 -- 0_eq_vbuz1_then_la1 
    lda.z buffer_sign
    beq __b13_from___b14
    jmp __b7
    // printf_number_buffer::@7
  __b7:
    // [148] printf_number_buffer::len#1 = ++ printf_number_buffer::len#0 -- vbsyy=_inc_vbsyy 
    iny
    // [149] phi from printf_number_buffer::@14 printf_number_buffer::@7 to printf_number_buffer::@13 [phi:printf_number_buffer::@14/printf_number_buffer::@7->printf_number_buffer::@13]
  __b13_from___b14:
  __b13_from___b7:
    // [149] phi printf_number_buffer::len#2 = printf_number_buffer::len#0 [phi:printf_number_buffer::@14/printf_number_buffer::@7->printf_number_buffer::@13#0] -- register_copy 
    jmp __b13
    // printf_number_buffer::@13
  __b13:
    // [150] printf_number_buffer::padding#1 = (signed char)printf_number_buffer::format_min_length#3 - printf_number_buffer::len#2 -- vbsz1=vbsxx_minus_vbsyy 
    txa
    sty.z $ff
    sec
    sbc.z $ff
    sta.z padding
    // [151] if(printf_number_buffer::padding#1>=0) goto printf_number_buffer::@21 -- vbsz1_ge_0_then_la1 
    lda.z padding
    cmp #0
    bpl __b21_from___b13
    // [153] phi from printf_number_buffer printf_number_buffer::@13 to printf_number_buffer::@1 [phi:printf_number_buffer/printf_number_buffer::@13->printf_number_buffer::@1]
  __b1_from_printf_number_buffer:
  __b1_from___b13:
    // [153] phi printf_number_buffer::padding#10 = 0 [phi:printf_number_buffer/printf_number_buffer::@13->printf_number_buffer::@1#0] -- vbsz1=vbsc1 
    lda #0
    sta.z padding
    jmp __b1
    // [152] phi from printf_number_buffer::@13 to printf_number_buffer::@21 [phi:printf_number_buffer::@13->printf_number_buffer::@21]
  __b21_from___b13:
    jmp __b21
    // printf_number_buffer::@21
  __b21:
    // [153] phi from printf_number_buffer::@21 to printf_number_buffer::@1 [phi:printf_number_buffer::@21->printf_number_buffer::@1]
  __b1_from___b21:
    // [153] phi printf_number_buffer::padding#10 = printf_number_buffer::padding#1 [phi:printf_number_buffer::@21->printf_number_buffer::@1#0] -- register_copy 
    jmp __b1
    // printf_number_buffer::@1
  __b1:
    // [154] if(0!=printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@2 -- 0_neq_vbuz1_then_la1 
    lda.z format_justify_left
    bne __b2
    jmp __b17
    // printf_number_buffer::@17
  __b17:
    // [155] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@2 -- 0_neq_vbuz1_then_la1 
    lda.z format_zero_padding
    bne __b2
    jmp __b16
    // printf_number_buffer::@16
  __b16:
    // [156] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@8 -- 0_neq_vbsz1_then_la1 
    lda.z padding
    cmp #0
    bne __b8
    jmp __b2
    // printf_number_buffer::@8
  __b8:
    // [157] printf_padding::putc#0 = printf_number_buffer::putc#10
    // [158] printf_padding::length#0 = (char)printf_number_buffer::padding#10 -- vbuz1=vbuz2 
    lda.z padding
    sta.z printf_padding.length
    // [159] call printf_padding
    // [215] phi from printf_number_buffer::@8 to printf_padding [phi:printf_number_buffer::@8->printf_padding]
  printf_padding_from___b8:
    // [215] phi printf_padding::putc#7 = printf_padding::putc#0 [phi:printf_number_buffer::@8->printf_padding#0] -- register_copy 
    // [215] phi printf_padding::pad#7 = ' ' [phi:printf_number_buffer::@8->printf_padding#1] -- vbuz1=vbuc1 
    lda #' '
    sta.z printf_padding.pad
    // [215] phi printf_padding::length#6 = printf_padding::length#0 [phi:printf_number_buffer::@8->printf_padding#2] -- register_copy 
    jsr printf_padding
    jmp __b2
    // printf_number_buffer::@2
  __b2:
    // [160] if(0==printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@3 -- 0_eq_vbuz1_then_la1 
    lda.z buffer_sign
    beq __b3
    jmp __b9
    // printf_number_buffer::@9
  __b9:
    // [161] stackpush(char) = printf_number_buffer::buffer_sign#10 -- _stackpushbyte_=vbuz1 
    lda.z buffer_sign
    pha
    // [162] callexecute *printf_number_buffer::putc#10  -- call__deref_pprz1 
    jsr icall7
    // sideeffect stackpullbytes(1) -- _stackpullbyte_1 
    pla
    jmp __b3
    // printf_number_buffer::@3
  __b3:
    // [164] if(0==printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@4 -- 0_eq_vbuz1_then_la1 
    lda.z format_zero_padding
    beq __b4
    jmp __b18
    // printf_number_buffer::@18
  __b18:
    // [165] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@10 -- 0_neq_vbsz1_then_la1 
    lda.z padding
    cmp #0
    bne __b10
    jmp __b4
    // printf_number_buffer::@10
  __b10:
    // [166] printf_padding::putc#1 = printf_number_buffer::putc#10
    // [167] printf_padding::length#1 = (char)printf_number_buffer::padding#10 -- vbuz1=vbuz2 
    lda.z padding
    sta.z printf_padding.length
    // [168] call printf_padding
    // [215] phi from printf_number_buffer::@10 to printf_padding [phi:printf_number_buffer::@10->printf_padding]
  printf_padding_from___b10:
    // [215] phi printf_padding::putc#7 = printf_padding::putc#1 [phi:printf_number_buffer::@10->printf_padding#0] -- register_copy 
    // [215] phi printf_padding::pad#7 = '0' [phi:printf_number_buffer::@10->printf_padding#1] -- vbuz1=vbuc1 
    lda #'0'
    sta.z printf_padding.pad
    // [215] phi printf_padding::length#6 = printf_padding::length#1 [phi:printf_number_buffer::@10->printf_padding#2] -- register_copy 
    jsr printf_padding
    jmp __b4
    // printf_number_buffer::@4
  __b4:
    // [169] if(0==printf_number_buffer::format_upper_case#10) goto printf_number_buffer::@5 -- 0_eq_vbuz1_then_la1 
    lda.z format_upper_case
    beq __b5
    // [170] phi from printf_number_buffer::@4 to printf_number_buffer::@11 [phi:printf_number_buffer::@4->printf_number_buffer::@11]
  __b11_from___b4:
    jmp __b11
    // printf_number_buffer::@11
  __b11:
    // [171] call strupr
    // [223] phi from printf_number_buffer::@11 to strupr [phi:printf_number_buffer::@11->strupr]
  strupr_from___b11:
    jsr strupr
    jmp __b5
    // printf_number_buffer::@5
  __b5:
    // [172] printf_str::putc#0 = printf_number_buffer::putc#10
    // [173] call printf_str
    // [71] phi from printf_number_buffer::@5 to printf_str [phi:printf_number_buffer::@5->printf_str]
  printf_str_from___b5:
    // [71] phi printf_str::putc#12 = printf_str::putc#0 [phi:printf_number_buffer::@5->printf_str#0] -- register_copy 
    // [71] phi printf_str::s#12 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:printf_number_buffer::@5->printf_str#1] -- pbuz1=pbuc1 
    lda #<printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
    sta.z printf_str.s
    lda #>printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
    sta.z printf_str.s+1
    jsr printf_str
    jmp __b15
    // printf_number_buffer::@15
  __b15:
    // [174] if(0==printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@return -- 0_eq_vbuz1_then_la1 
    lda.z format_justify_left
    beq __breturn
    jmp __b20
    // printf_number_buffer::@20
  __b20:
    // [175] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@return -- 0_neq_vbuz1_then_la1 
    lda.z format_zero_padding
    bne __breturn
    jmp __b19
    // printf_number_buffer::@19
  __b19:
    // [176] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@12 -- 0_neq_vbsz1_then_la1 
    lda.z padding
    cmp #0
    bne __b12
    jmp __breturn
    // printf_number_buffer::@12
  __b12:
    // [177] printf_padding::putc#2 = printf_number_buffer::putc#10
    // [178] printf_padding::length#2 = (char)printf_number_buffer::padding#10 -- vbuz1=vbuz2 
    lda.z padding
    sta.z printf_padding.length
    // [179] call printf_padding
    // [215] phi from printf_number_buffer::@12 to printf_padding [phi:printf_number_buffer::@12->printf_padding]
  printf_padding_from___b12:
    // [215] phi printf_padding::putc#7 = printf_padding::putc#2 [phi:printf_number_buffer::@12->printf_padding#0] -- register_copy 
    // [215] phi printf_padding::pad#7 = ' ' [phi:printf_number_buffer::@12->printf_padding#1] -- vbuz1=vbuc1 
    lda #' '
    sta.z printf_padding.pad
    // [215] phi printf_padding::length#6 = printf_padding::length#2 [phi:printf_number_buffer::@12->printf_padding#2] -- register_copy 
    jsr printf_padding
    jmp __breturn
    // printf_number_buffer::@return
  __breturn:
    // [180] return 
    rts
    // Outside Flow
  icall7:
    jmp (putc)
}
  // ultoa
// Converts unsigned number value to a string representing it in RADIX format.
// If the leading digits are zero they are not included in the string.
// - value : The number to be converted to RADIX
// - buffer : receives the string representing the number and zero-termination.
// - radix : The radix to convert the number to (from the enum RADIX)
// void ultoa(__zp(4) unsigned long value, __zp(2) char *buffer, char radix)
ultoa: {
    .const max_digits = $a
    .label digit_value = $a
    .label buffer = 2
    .label digit = $14
    .label value = 4
    // [182] phi from ultoa to ultoa::@1 [phi:ultoa->ultoa::@1]
  __b1_from_ultoa:
    // [182] phi ultoa::buffer#11 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:ultoa->ultoa::@1#0] -- pbuz1=pbuc1 
    lda #<printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
    sta.z buffer
    lda #>printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
    sta.z buffer+1
    // [182] phi ultoa::started#2 = 0 [phi:ultoa->ultoa::@1#1] -- vbuxx=vbuc1 
    ldx #0
    // [182] phi ultoa::value#2 = printf_slong::uvalue#0 [phi:ultoa->ultoa::@1#2] -- vduz1=vduc1 
    lda #<printf_slong.uvalue
    sta.z value
    lda #>printf_slong.uvalue
    sta.z value+1
    lda #<printf_slong.uvalue>>$10
    sta.z value+2
    lda #>printf_slong.uvalue>>$10
    sta.z value+3
    // [182] phi ultoa::digit#2 = 0 [phi:ultoa->ultoa::@1#3] -- vbuz1=vbuc1 
    lda #0
    sta.z digit
    jmp __b1
    // ultoa::@1
  __b1:
    // [183] if(ultoa::digit#2<ultoa::max_digits#1-1) goto ultoa::@2 -- vbuz1_lt_vbuc1_then_la1 
    lda.z digit
    cmp #max_digits-1
    bcc __b2
    jmp __b3
    // ultoa::@3
  __b3:
    // [184] ultoa::$11 = (char)ultoa::value#2 -- vbuaa=_byte_vduz1 
    lda.z value
    // [185] *ultoa::buffer#11 = DIGITS[ultoa::$11] -- _deref_pbuz1=pbuc1_derefidx_vbuaa 
    tay
    lda DIGITS,y
    ldy #0
    sta (buffer),y
    // [186] ultoa::buffer#3 = ++ ultoa::buffer#11 -- pbuz1=_inc_pbuz1 
    inc.z buffer
    bne !+
    inc.z buffer+1
  !:
    // [187] *ultoa::buffer#3 = 0 -- _deref_pbuz1=vbuc1 
    lda #0
    ldy #0
    sta (buffer),y
    jmp __breturn
    // ultoa::@return
  __breturn:
    // [188] return 
    rts
    // ultoa::@2
  __b2:
    // [189] ultoa::$10 = ultoa::digit#2 << 2 -- vbuaa=vbuz1_rol_2 
    lda.z digit
    asl
    asl
    // [190] ultoa::digit_value#0 = RADIX_DECIMAL_VALUES_LONG[ultoa::$10] -- vduz1=pduc1_derefidx_vbuaa 
    tay
    lda RADIX_DECIMAL_VALUES_LONG,y
    sta.z digit_value
    lda RADIX_DECIMAL_VALUES_LONG+1,y
    sta.z digit_value+1
    lda RADIX_DECIMAL_VALUES_LONG+2,y
    sta.z digit_value+2
    lda RADIX_DECIMAL_VALUES_LONG+3,y
    sta.z digit_value+3
    // [191] if(0!=ultoa::started#2) goto ultoa::@5 -- 0_neq_vbuxx_then_la1 
    cpx #0
    bne __b5
    jmp __b7
    // ultoa::@7
  __b7:
    // [192] if(ultoa::value#2>=ultoa::digit_value#0) goto ultoa::@5 -- vduz1_ge_vduz2_then_la1 
    lda.z value+3
    cmp.z digit_value+3
    bcc !+
    bne __b5
    lda.z value+2
    cmp.z digit_value+2
    bcc !+
    bne __b5
    lda.z value+1
    cmp.z digit_value+1
    bcc !+
    bne __b5
    lda.z value
    cmp.z digit_value
    bcs __b5
  !:
    // [193] phi from ultoa::@7 to ultoa::@4 [phi:ultoa::@7->ultoa::@4]
  __b4_from___b7:
    // [193] phi ultoa::buffer#14 = ultoa::buffer#11 [phi:ultoa::@7->ultoa::@4#0] -- register_copy 
    // [193] phi ultoa::started#4 = ultoa::started#2 [phi:ultoa::@7->ultoa::@4#1] -- register_copy 
    // [193] phi ultoa::value#6 = ultoa::value#2 [phi:ultoa::@7->ultoa::@4#2] -- register_copy 
    jmp __b4
    // ultoa::@4
  __b4:
    // [194] ultoa::digit#1 = ++ ultoa::digit#2 -- vbuz1=_inc_vbuz1 
    inc.z digit
    // [182] phi from ultoa::@4 to ultoa::@1 [phi:ultoa::@4->ultoa::@1]
  __b1_from___b4:
    // [182] phi ultoa::buffer#11 = ultoa::buffer#14 [phi:ultoa::@4->ultoa::@1#0] -- register_copy 
    // [182] phi ultoa::started#2 = ultoa::started#4 [phi:ultoa::@4->ultoa::@1#1] -- register_copy 
    // [182] phi ultoa::value#2 = ultoa::value#6 [phi:ultoa::@4->ultoa::@1#2] -- register_copy 
    // [182] phi ultoa::digit#2 = ultoa::digit#1 [phi:ultoa::@4->ultoa::@1#3] -- register_copy 
    jmp __b1
    // ultoa::@5
  __b5:
    // [195] ultoa_append::buffer#0 = ultoa::buffer#11
    // [196] ultoa_append::value#0 = ultoa::value#2
    // [197] ultoa_append::sub#0 = ultoa::digit_value#0
    // [198] call ultoa_append
    // [233] phi from ultoa::@5 to ultoa_append [phi:ultoa::@5->ultoa_append]
  ultoa_append_from___b5:
    jsr ultoa_append
    // [199] ultoa_append::return#0 = ultoa_append::value#2
    jmp __b6
    // ultoa::@6
  __b6:
    // [200] ultoa::value#0 = ultoa_append::return#0
    // [201] ultoa::buffer#4 = ++ ultoa::buffer#11 -- pbuz1=_inc_pbuz1 
    inc.z buffer
    bne !+
    inc.z buffer+1
  !:
    // [193] phi from ultoa::@6 to ultoa::@4 [phi:ultoa::@6->ultoa::@4]
  __b4_from___b6:
    // [193] phi ultoa::buffer#14 = ultoa::buffer#4 [phi:ultoa::@6->ultoa::@4#0] -- register_copy 
    // [193] phi ultoa::started#4 = 1 [phi:ultoa::@6->ultoa::@4#1] -- vbuxx=vbuc1 
    ldx #1
    // [193] phi ultoa::value#6 = ultoa::value#0 [phi:ultoa::@6->ultoa::@4#2] -- register_copy 
    jmp __b4
}
  // utoa_append
// Used to convert a single digit of an unsigned number value to a string representation
// Counts a single digit up from '0' as long as the value is larger than sub.
// Each time the digit is increased sub is subtracted from value.
// - buffer : pointer to the char that receives the digit
// - value : The value where the digit will be derived from
// - sub : the value of a '1' in the digit. Subtracted continually while the digit is increased.
//        (For decimal the subs used are 10000, 1000, 100, 10, 1)
// returns : the value reduced by sub * digit so that it is less than sub.
// __zp(2) unsigned int utoa_append(__zp($10) char *buffer, __zp(2) unsigned int value, __zp(8) unsigned int sub)
utoa_append: {
    .label buffer = $10
    .label value = 2
    .label sub = 8
    .label return = 2
    // [203] phi from utoa_append to utoa_append::@1 [phi:utoa_append->utoa_append::@1]
  __b1_from_utoa_append:
    // [203] phi utoa_append::digit#2 = 0 [phi:utoa_append->utoa_append::@1#0] -- vbuxx=vbuc1 
    ldx #0
    // [203] phi utoa_append::value#2 = utoa_append::value#0 [phi:utoa_append->utoa_append::@1#1] -- register_copy 
    jmp __b1
    // utoa_append::@1
  __b1:
    // [204] if(utoa_append::value#2>=utoa_append::sub#0) goto utoa_append::@2 -- vwuz1_ge_vwuz2_then_la1 
    lda.z sub+1
    cmp.z value+1
    bne !+
    lda.z sub
    cmp.z value
    beq __b2
  !:
    bcc __b2
    jmp __b3
    // utoa_append::@3
  __b3:
    // [205] *utoa_append::buffer#0 = DIGITS[utoa_append::digit#2] -- _deref_pbuz1=pbuc1_derefidx_vbuxx 
    lda DIGITS,x
    ldy #0
    sta (buffer),y
    jmp __breturn
    // utoa_append::@return
  __breturn:
    // [206] return 
    rts
    // utoa_append::@2
  __b2:
    // [207] utoa_append::digit#1 = ++ utoa_append::digit#2 -- vbuxx=_inc_vbuxx 
    inx
    // [208] utoa_append::value#1 = utoa_append::value#2 - utoa_append::sub#0 -- vwuz1=vwuz1_minus_vwuz2 
    lda.z value
    sec
    sbc.z sub
    sta.z value
    lda.z value+1
    sbc.z sub+1
    sta.z value+1
    // [203] phi from utoa_append::@2 to utoa_append::@1 [phi:utoa_append::@2->utoa_append::@1]
  __b1_from___b2:
    // [203] phi utoa_append::digit#2 = utoa_append::digit#1 [phi:utoa_append::@2->utoa_append::@1#0] -- register_copy 
    // [203] phi utoa_append::value#2 = utoa_append::value#1 [phi:utoa_append::@2->utoa_append::@1#1] -- register_copy 
    jmp __b1
}
  // strlen
// Computes the length of the string str up to but not including the terminating null character.
// __zp(8) unsigned int strlen(__zp($10) char *str)
strlen: {
    .label len = 8
    .label str = $10
    .label return = 8
    // [210] phi from strlen to strlen::@1 [phi:strlen->strlen::@1]
  __b1_from_strlen:
    // [210] phi strlen::len#2 = 0 [phi:strlen->strlen::@1#0] -- vwuz1=vwuc1 
    lda #<0
    sta.z len
    lda #>0
    sta.z len+1
    // [210] phi strlen::str#3 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:strlen->strlen::@1#1] -- pbuz1=pbuc1 
    lda #<printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
    sta.z str
    lda #>printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
    sta.z str+1
    jmp __b1
    // strlen::@1
  __b1:
    // [211] if(0!=*strlen::str#3) goto strlen::@2 -- 0_neq__deref_pbuz1_then_la1 
    ldy #0
    lda (str),y
    cmp #0
    bne __b2
    jmp __breturn
    // strlen::@return
  __breturn:
    // [212] return 
    rts
    // strlen::@2
  __b2:
    // [213] strlen::len#1 = ++ strlen::len#2 -- vwuz1=_inc_vwuz1 
    inc.z len
    bne !+
    inc.z len+1
  !:
    // [214] strlen::str#0 = ++ strlen::str#3 -- pbuz1=_inc_pbuz1 
    inc.z str
    bne !+
    inc.z str+1
  !:
    // [210] phi from strlen::@2 to strlen::@1 [phi:strlen::@2->strlen::@1]
  __b1_from___b2:
    // [210] phi strlen::len#2 = strlen::len#1 [phi:strlen::@2->strlen::@1#0] -- register_copy 
    // [210] phi strlen::str#3 = strlen::str#0 [phi:strlen::@2->strlen::@1#1] -- register_copy 
    jmp __b1
}
  // printf_padding
// Print a padding char a number of times
// void printf_padding(__zp(2) void (*putc)(char), __zp($16) char pad, __zp($13) char length)
printf_padding: {
    .label i = $12
    .label putc = 2
    .label length = $13
    .label pad = $16
    // [216] phi from printf_padding to printf_padding::@1 [phi:printf_padding->printf_padding::@1]
  __b1_from_printf_padding:
    // [216] phi printf_padding::i#2 = 0 [phi:printf_padding->printf_padding::@1#0] -- vbuz1=vbuc1 
    lda #0
    sta.z i
    jmp __b1
    // printf_padding::@1
  __b1:
    // [217] if(printf_padding::i#2<printf_padding::length#6) goto printf_padding::@2 -- vbuz1_lt_vbuz2_then_la1 
    lda.z i
    cmp.z length
    bcc __b2
    jmp __breturn
    // printf_padding::@return
  __breturn:
    // [218] return 
    rts
    // printf_padding::@2
  __b2:
    // [219] stackpush(char) = printf_padding::pad#7 -- _stackpushbyte_=vbuz1 
    lda.z pad
    pha
    // [220] callexecute *printf_padding::putc#7  -- call__deref_pprz1 
    jsr icall8
    // sideeffect stackpullbytes(1) -- _stackpullbyte_1 
    pla
    jmp __b3
    // printf_padding::@3
  __b3:
    // [222] printf_padding::i#1 = ++ printf_padding::i#2 -- vbuz1=_inc_vbuz1 
    inc.z i
    // [216] phi from printf_padding::@3 to printf_padding::@1 [phi:printf_padding::@3->printf_padding::@1]
  __b1_from___b3:
    // [216] phi printf_padding::i#2 = printf_padding::i#1 [phi:printf_padding::@3->printf_padding::@1#0] -- register_copy 
    jmp __b1
    // Outside Flow
  icall8:
    jmp (putc)
}
  // strupr
// Converts a string to uppercase.
// char * strupr(char *str)
strupr: {
    .label str = printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
    .label src = $e
    // [224] phi from strupr to strupr::@1 [phi:strupr->strupr::@1]
  __b1_from_strupr:
    // [224] phi strupr::src#2 = strupr::str#0 [phi:strupr->strupr::@1#0] -- pbuz1=pbuc1 
    lda #<str
    sta.z src
    lda #>str
    sta.z src+1
    jmp __b1
    // strupr::@1
  __b1:
    // [225] if(0!=*strupr::src#2) goto strupr::@2 -- 0_neq__deref_pbuz1_then_la1 
    ldy #0
    lda (src),y
    cmp #0
    bne __b2
    jmp __breturn
    // strupr::@return
  __breturn:
    // [226] return 
    rts
    // strupr::@2
  __b2:
    // [227] toupper::ch#0 = *strupr::src#2 -- vbuaa=_deref_pbuz1 
    ldy #0
    lda (src),y
    // [228] call toupper
    jsr toupper
    // [229] toupper::return#3 = toupper::return#2
    jmp __b3
    // strupr::@3
  __b3:
    // [230] strupr::$0 = toupper::return#3
    // [231] *strupr::src#2 = strupr::$0 -- _deref_pbuz1=vbuaa 
    ldy #0
    sta (src),y
    // [232] strupr::src#1 = ++ strupr::src#2 -- pbuz1=_inc_pbuz1 
    inc.z src
    bne !+
    inc.z src+1
  !:
    // [224] phi from strupr::@3 to strupr::@1 [phi:strupr::@3->strupr::@1]
  __b1_from___b3:
    // [224] phi strupr::src#2 = strupr::src#1 [phi:strupr::@3->strupr::@1#0] -- register_copy 
    jmp __b1
}
  // ultoa_append
// Used to convert a single digit of an unsigned number value to a string representation
// Counts a single digit up from '0' as long as the value is larger than sub.
// Each time the digit is increased sub is subtracted from value.
// - buffer : pointer to the char that receives the digit
// - value : The value where the digit will be derived from
// - sub : the value of a '1' in the digit. Subtracted continually while the digit is increased.
//        (For decimal the subs used are 10000, 1000, 100, 10, 1)
// returns : the value reduced by sub * digit so that it is less than sub.
// __zp(4) unsigned long ultoa_append(__zp(2) char *buffer, __zp(4) unsigned long value, __zp($a) unsigned long sub)
ultoa_append: {
    .label buffer = 2
    .label value = 4
    .label sub = $a
    .label return = 4
    // [234] phi from ultoa_append to ultoa_append::@1 [phi:ultoa_append->ultoa_append::@1]
  __b1_from_ultoa_append:
    // [234] phi ultoa_append::digit#2 = 0 [phi:ultoa_append->ultoa_append::@1#0] -- vbuxx=vbuc1 
    ldx #0
    // [234] phi ultoa_append::value#2 = ultoa_append::value#0 [phi:ultoa_append->ultoa_append::@1#1] -- register_copy 
    jmp __b1
    // ultoa_append::@1
  __b1:
    // [235] if(ultoa_append::value#2>=ultoa_append::sub#0) goto ultoa_append::@2 -- vduz1_ge_vduz2_then_la1 
    lda.z value+3
    cmp.z sub+3
    bcc !+
    bne __b2
    lda.z value+2
    cmp.z sub+2
    bcc !+
    bne __b2
    lda.z value+1
    cmp.z sub+1
    bcc !+
    bne __b2
    lda.z value
    cmp.z sub
    bcs __b2
  !:
    jmp __b3
    // ultoa_append::@3
  __b3:
    // [236] *ultoa_append::buffer#0 = DIGITS[ultoa_append::digit#2] -- _deref_pbuz1=pbuc1_derefidx_vbuxx 
    lda DIGITS,x
    ldy #0
    sta (buffer),y
    jmp __breturn
    // ultoa_append::@return
  __breturn:
    // [237] return 
    rts
    // ultoa_append::@2
  __b2:
    // [238] ultoa_append::digit#1 = ++ ultoa_append::digit#2 -- vbuxx=_inc_vbuxx 
    inx
    // [239] ultoa_append::value#1 = ultoa_append::value#2 - ultoa_append::sub#0 -- vduz1=vduz1_minus_vduz2 
    lda.z value
    sec
    sbc.z sub
    sta.z value
    lda.z value+1
    sbc.z sub+1
    sta.z value+1
    lda.z value+2
    sbc.z sub+2
    sta.z value+2
    lda.z value+3
    sbc.z sub+3
    sta.z value+3
    // [234] phi from ultoa_append::@2 to ultoa_append::@1 [phi:ultoa_append::@2->ultoa_append::@1]
  __b1_from___b2:
    // [234] phi ultoa_append::digit#2 = ultoa_append::digit#1 [phi:ultoa_append::@2->ultoa_append::@1#0] -- register_copy 
    // [234] phi ultoa_append::value#2 = ultoa_append::value#1 [phi:ultoa_append::@2->ultoa_append::@1#1] -- register_copy 
    jmp __b1
}
  // toupper
// Convert lowercase alphabet to uppercase
// Returns uppercase equivalent to c, if such value exists, else c remains unchanged
// __register(A) char toupper(__register(A) char ch)
toupper: {
    // [240] if(toupper::ch#0<'a') goto toupper::@return -- vbuaa_lt_vbuc1_then_la1 
    cmp #'a'
    bcc __breturn_from_toupper
    jmp __b2
    // toupper::@2
  __b2:
    // [241] if(toupper::ch#0<='z') goto toupper::@1 -- vbuaa_le_vbuc1_then_la1 
    cmp #'z'
    bcc __b1
    beq __b1
    // [243] phi from toupper toupper::@1 toupper::@2 to toupper::@return [phi:toupper/toupper::@1/toupper::@2->toupper::@return]
  __breturn_from_toupper:
  __breturn_from___b1:
  __breturn_from___b2:
    // [243] phi toupper::return#2 = toupper::ch#0 [phi:toupper/toupper::@1/toupper::@2->toupper::@return#0] -- register_copy 
    jmp __breturn
    // toupper::@1
  __b1:
    // [242] toupper::return#0 = toupper::ch#0 + 'A'-'a' -- vbuaa=vbuaa_plus_vbuc1 
    clc
    adc #'A'-'a'
    jmp __breturn_from___b1
    // toupper::@return
  __breturn:
    // [244] return 
    rts
}
  // File Data
.segment Data
  // The digits used for numbers
  DIGITS: .text "0123456789abcdef"
  // Values of binary digits
  RADIX_BINARY_VALUES: .word $8000, $4000, $2000, $1000, $800, $400, $200, $100, $80, $40, $20, $10, 8, 4, 2
  // Values of octal digits
  RADIX_OCTAL_VALUES: .word $8000, $1000, $200, $40, 8
  // Values of decimal digits
  RADIX_DECIMAL_VALUES: .word $2710, $3e8, $64, $a
  // Values of hexadecimal digits
  RADIX_HEXADECIMAL_VALUES: .word $1000, $100, $10
  // Values of decimal digits
  RADIX_DECIMAL_VALUES_LONG: .dword $3b9aca00, $5f5e100, $989680, $f4240, $186a0, $2710, $3e8, $64, $a
  BUF: .fill $14, 0
  // Buffer used for stringified number being printed
  printf_buffer: .fill SIZEOF_STRUCT_PRINTF_BUFFER_NUMBER, 0

ASSEMBLER OPTIMIZATIONS
Removing instruction jmp __init1
Removing instruction jmp __b1
Removing instruction jmp __breturn
Removing instruction jmp __breturn
Removing instruction jmp __b3
Removing instruction jmp __b2
Removing instruction jmp __b1
Removing instruction jmp __b2
Removing instruction jmp __b3
Removing instruction jmp __b4
Removing instruction jmp __b5
Removing instruction jmp __b6
Removing instruction jmp __b7
Removing instruction jmp __b8
Removing instruction jmp __b9
Removing instruction jmp __b10
Removing instruction jmp __b11
Removing instruction jmp __b12
Removing instruction jmp __b13
Removing instruction jmp __b14
Removing instruction jmp __b15
Removing instruction jmp __b16
Removing instruction jmp __b17
Removing instruction jmp __b18
Removing instruction jmp __b19
Removing instruction jmp __breturn
Removing instruction jmp __breturn
Removing instruction jmp __b1
Removing instruction jmp __breturn
Removing instruction jmp __b1
Removing instruction jmp __breturn
Removing instruction jmp __b1
Removing instruction jmp __breturn
Removing instruction jmp __b1
Removing instruction jmp __b2
Removing instruction jmp __breturn
Removing instruction jmp __b1
Removing instruction jmp __b2
Removing instruction jmp __breturn
Removing instruction jmp __b1
Removing instruction jmp __b2
Removing instruction jmp __breturn
Removing instruction jmp __b2
Removing instruction jmp __b3
Removing instruction jmp __b4
Removing instruction jmp __b5
Removing instruction jmp __breturn
Removing instruction jmp __b1
Removing instruction jmp __b6
Removing instruction jmp __b8
Removing instruction jmp __b12
Removing instruction jmp __b9
Removing instruction jmp __b11
Removing instruction jmp __b6
Removing instruction jmp __b14
Removing instruction jmp __b7
Removing instruction jmp __b13
Removing instruction jmp __b21
Removing instruction jmp __b1
Removing instruction jmp __b17
Removing instruction jmp __b16
Removing instruction jmp __b2
Removing instruction jmp __b9
Removing instruction jmp __b3
Removing instruction jmp __b18
Removing instruction jmp __b4
Removing instruction jmp __b11
Removing instruction jmp __b5
Removing instruction jmp __b15
Removing instruction jmp __b20
Removing instruction jmp __b19
Removing instruction jmp __breturn
Removing instruction jmp __b1
Removing instruction jmp __b3
Removing instruction jmp __breturn
Removing instruction jmp __b7
Removing instruction jmp __b4
Removing instruction jmp __b6
Removing instruction jmp __b1
Removing instruction jmp __b3
Removing instruction jmp __breturn
Removing instruction jmp __b1
Removing instruction jmp __breturn
Removing instruction jmp __b1
Removing instruction jmp __breturn
Removing instruction jmp __b3
Removing instruction jmp __b1
Removing instruction jmp __breturn
Removing instruction jmp __b3
Removing instruction jmp __b1
Removing instruction jmp __b3
Removing instruction jmp __breturn
Removing instruction jmp __b2
Succesful ASM optimization Pass5NextJumpElimination
Removing instruction lda #>0
Removing instruction lda #<0
Removing instruction lda #>0
Removing instruction lda #<0
Removing instruction lda #>0
Removing instruction lda #>0
Removing instruction ldy #0
Removing instruction lda #'r'
Replacing instruction lda #0 with TXA
Replacing instruction ldy #0 with TAY
Removing instruction lda.z padding
Replacing instruction lda #0 with TXA
Replacing instruction ldy #0 with TAY
Removing instruction lda #>0
Succesful ASM optimization Pass5UnnecesaryLoadElimination
Replacing label __b3_from___b1 with __b2
Replacing label __b3_from___b1 with __b2
Replacing label __b1_from___b2 with __b1
Replacing label __b1_from_printf_number_buffer with __b1_from___b13
Replacing label __b13_from___b14 with __b13
Replacing label __b21_from___b13 with __b1
Replacing label __breturn_from_toupper with __breturn_from___b2
Replacing label __breturn_from___b1 with __breturn_from___b2
Removing instruction __b1_from___init1:
Removing instruction main_from___b1:
Removing instruction __b3_from___b1:
Removing instruction __b3:
Removing instruction __b2_from___b3:
Removing instruction __b1_from_main:
Removing instruction printf_str_from___b1:
Removing instruction __b3_from___b2:
Removing instruction __b4_from___b3:
Removing instruction printf_str_from___b4:
Removing instruction __b5_from___b4:
Removing instruction printf_string_from___b5:
Removing instruction __b8_from___b7:
Removing instruction __b9_from___b8:
Removing instruction printf_str_from___b9:
Removing instruction __b10_from___b9:
Removing instruction __b11_from___b10:
Removing instruction printf_str_from___b11:
Removing instruction __b12_from___b11:
Removing instruction printf_uint_from___b12:
Removing instruction __b13_from___b12:
Removing instruction printf_str_from___b13:
Removing instruction __b15_from___b14:
Removing instruction __b16_from___b15:
Removing instruction printf_str_from___b16:
Removing instruction __b17_from___b16:
Removing instruction __b18_from___b17:
Removing instruction printf_str_from___b18:
Removing instruction __b1_from_printf_str:
Removing instruction __b1_from___b2:
Removing instruction __b1_from_printf_string:
Removing instruction printf_str_from___b1:
Removing instruction __b1_from_printf_sint:
Removing instruction utoa_from___b1:
Removing instruction __b1_from_printf_slong:
Removing instruction ultoa_from___b1:
Removing instruction __b6_from___b1:
Removing instruction __b9_from___b12:
Removing instruction utoa_append_from___b10:
Removing instruction __b6_from_printf_number_buffer:
Removing instruction strlen_from___b6:
Removing instruction __b13_from___b14:
Removing instruction __b13_from___b7:
Removing instruction __b1_from_printf_number_buffer:
Removing instruction __b21_from___b13:
Removing instruction __b21:
Removing instruction __b1_from___b21:
Removing instruction __b11_from___b4:
Removing instruction strupr_from___b11:
Removing instruction printf_str_from___b5:
Removing instruction __b4_from___b7:
Removing instruction ultoa_append_from___b5:
Removing instruction __breturn_from_toupper:
Removing instruction __breturn_from___b1:
Succesful ASM optimization Pass5RedundantLabelElimination
Removing instruction __init1:
Removing instruction __b1:
Removing instruction __breturn:
Removing instruction __b2_from___b1:
Removing instruction __b1:
Removing instruction __b2:
Removing instruction print_from___b2:
Removing instruction __b3:
Removing instruction __b4:
Removing instruction __b5:
Removing instruction __b6:
Removing instruction printf_str_from___b6:
Removing instruction __b7:
Removing instruction print_from___b7:
Removing instruction __b8:
Removing instruction __b9:
Removing instruction __b10:
Removing instruction __b11:
Removing instruction __b12:
Removing instruction __b13:
Removing instruction __b14:
Removing instruction print_from___b14:
Removing instruction __b15:
Removing instruction __b16:
Removing instruction __b17:
Removing instruction __b18:
Removing instruction __b19:
Removing instruction print_from___b19:
Removing instruction __breturn:
Removing instruction __breturn:
Removing instruction __breturn:
Removing instruction __b1_from_print:
Removing instruction __breturn:
Removing instruction __b1_from___b2:
Removing instruction __b1:
Removing instruction __breturn:
Removing instruction __b1:
Removing instruction __b2:
Removing instruction printf_number_buffer_from___b2:
Removing instruction __breturn:
Removing instruction __b1:
Removing instruction utoa_from___b1:
Removing instruction __b2:
Removing instruction printf_number_buffer_from___b2:
Removing instruction __breturn:
Removing instruction __b1:
Removing instruction __b2:
Removing instruction printf_number_buffer_from___b2:
Removing instruction __breturn:
Removing instruction __b2:
Removing instruction __b3:
Removing instruction __b4:
Removing instruction __b5:
Removing instruction __b8:
Removing instruction __b12:
Removing instruction __b6_from___b9:
Removing instruction __b11:
Removing instruction __b9_from___b11:
Removing instruction __b6:
Removing instruction __b14:
Removing instruction __b7:
Removing instruction __b17:
Removing instruction __b16:
Removing instruction printf_padding_from___b8:
Removing instruction __b9:
Removing instruction __b18:
Removing instruction printf_padding_from___b10:
Removing instruction __b11:
Removing instruction __b15:
Removing instruction __b20:
Removing instruction __b19:
Removing instruction printf_padding_from___b12:
Removing instruction __b1_from_ultoa:
Removing instruction __b3:
Removing instruction __breturn:
Removing instruction __b7:
Removing instruction __b1_from___b4:
Removing instruction __b6:
Removing instruction __b4_from___b6:
Removing instruction __b1_from_utoa_append:
Removing instruction __b3:
Removing instruction __breturn:
Removing instruction __b1_from___b2:
Removing instruction __b1_from_strlen:
Removing instruction __breturn:
Removing instruction __b1_from___b2:
Removing instruction __b1_from_printf_padding:
Removing instruction __breturn:
Removing instruction __b3:
Removing instruction __b1_from___b3:
Removing instruction __b1_from_strupr:
Removing instruction __breturn:
Removing instruction __b3:
Removing instruction __b1_from___b3:
Removing instruction __b1_from_ultoa_append:
Removing instruction __b3:
Removing instruction __breturn:
Removing instruction __b1_from___b2:
Removing instruction __b2:
Succesful ASM optimization Pass5UnusedLabelElimination
Replacing jump to rts with rts in jmp __breturn
Replacing jump to rts with rts in jmp __breturn
Replacing jump to rts with rts in jmp __breturn
Skipping double jump to __breturn in bcc __breturn_from___b2
Replacing jump to rts with rts in jmp __breturn
Skipping double jump to __breturn in jmp __breturn_from___b2
Succesful ASM optimization Pass5DoubleJumpElimination
Relabelling long label __b1_from_utoa to __b2
Relabelling long label __b1_from___b2 to __b3
Relabelling long label __b1_from___b3 to __b4
Relabelling long label __b1_from___b4 to __b5
Relabelling long label __b1_from___b13 to __b6
Relabelling long label __breturn_from___b2 to __b2
Succesful ASM optimization Pass5RelabelLongLabels
Removing instruction jmp __b2
Removing instruction jmp __b1
Removing instruction jmp __breturn
Succesful ASM optimization Pass5NextJumpElimination
Removing instruction lda.z digit_value+1
Removing instruction lda.z buffer_sign
Succesful ASM optimization Pass5UnnecesaryLoadElimination
Removing instruction __breturn:
Removing instruction __breturn:
Removing instruction __b2:
Succesful ASM optimization Pass5UnusedLabelElimination

FINAL SYMBOL TABLE
__constant char BINARY = 2
__constant char BUF[$14] = { fill( $14, 0) }
__constant char DECIMAL = $a
__constant char DIGITS[] = "0123456789abcdef"z
__constant char HEXADECIMAL = $10
__constant char OCTAL = 8
__constant char OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = 1
__constant char RADIX::BINARY = 2
__constant char RADIX::DECIMAL = $a
__constant char RADIX::HEXADECIMAL = $10
__constant char RADIX::OCTAL = 8
__constant unsigned int RADIX_BINARY_VALUES[] = { $8000, $4000, $2000, $1000, $800, $400, $200, $100, $80, $40, $20, $10, 8, 4, 2 }
__constant unsigned int RADIX_DECIMAL_VALUES[] = { $2710, $3e8, $64, $a }
__constant unsigned long RADIX_DECIMAL_VALUES_LONG[] = { $3b9aca00, $5f5e100, $989680, $f4240, $186a0, $2710, $3e8, $64, $a }
__constant unsigned int RADIX_HEXADECIMAL_VALUES[] = { $1000, $100, $10 }
__constant unsigned int RADIX_OCTAL_VALUES[] = { $8000, $1000, $200, $40, 8 }
__constant char SIZEOF_STRUCT_PRINTF_BUFFER_NUMBER = $c
__constant unsigned int STACK_BASE = $103
__loadstore char *__snprintf_buffer // zp[2]:30 9.022222222222222
__loadstore volatile unsigned int __snprintf_capacity // zp[2]:32 6.48936170212766
__loadstore volatile unsigned int __snprintf_size // zp[2]:28 11.021739130434781
void __start()
void main()
__constant char main::s[$e] = "hello world! "
__constant char main::s1[7] = "hello "
__constant char main::s2[2] = " "
__constant char main::s4[2] = "+"
__constant char main::s5[3] = "! "
__constant char main::s6[4] = "hi "
__constant char main::str[6] = "world"
void print(char *msg)
char *print::msg
char *print::msg#0 // msg zp[2]:2 2002.0
char *print::msg#5 // msg zp[2]:2 1001.0
__loadstore struct printf_buffer_number printf_buffer = {} // mem[12]
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)
unsigned int printf_number_buffer::$19 // zp[2]:8 1001.0
struct printf_buffer_number printf_number_buffer::buffer
char *printf_number_buffer::buffer_digits
char printf_number_buffer::buffer_sign
char printf_number_buffer::buffer_sign#0 // buffer_sign zp[1]:20 202.0
char printf_number_buffer::buffer_sign#1 // buffer_sign zp[1]:20 202.0
char printf_number_buffer::buffer_sign#10 // buffer_sign zp[1]:20 157.42857142857142
char printf_number_buffer::buffer_sign#2 // buffer_sign zp[1]:20 202.0
struct printf_format_number printf_number_buffer::format
char printf_number_buffer::format_justify_left
char printf_number_buffer::format_justify_left#10 // format_justify_left zp[1]:26 60.666666666666664
char printf_number_buffer::format_min_length
char printf_number_buffer::format_min_length#3 // reg byte x 100.1
char printf_number_buffer::format_radix
char printf_number_buffer::format_sign_always
char printf_number_buffer::format_upper_case
char printf_number_buffer::format_upper_case#10 // format_upper_case zp[1]:27 35.75
char printf_number_buffer::format_zero_padding
char printf_number_buffer::format_zero_padding#10 // format_zero_padding zp[1]:21 88.32352941176471
signed char printf_number_buffer::len
signed char printf_number_buffer::len#0 // reg byte y 1501.5
signed char printf_number_buffer::len#1 // reg byte y 2002.0
signed char printf_number_buffer::len#2 // reg byte y 3003.0
signed char printf_number_buffer::padding
signed char printf_number_buffer::padding#1 // padding zp[1]:25 1001.0
signed char printf_number_buffer::padding#10 // padding zp[1]:25 166.83333333333334
void (*printf_number_buffer::putc)(char)
void (*printf_number_buffer::putc#10)(char) // putc zp[2]:2 111.22222222222223
void printf_padding(void (*putc)(char) , char pad , char length)
char printf_padding::i
char printf_padding::i#1 // i zp[1]:18 200002.0
char printf_padding::i#2 // i zp[1]:18 100001.0
char printf_padding::length
char printf_padding::length#0 // length zp[1]:19 2002.0
char printf_padding::length#1 // length zp[1]:19 2002.0
char printf_padding::length#2 // length zp[1]:19 2002.0
char printf_padding::length#6 // length zp[1]:19 20600.8
char printf_padding::pad
char printf_padding::pad#7 // pad zp[1]:22 16666.833333333332
void (*printf_padding::putc)(char)
void (*printf_padding::putc#0)(char) // putc zp[2]:2 1001.0
void (*printf_padding::putc#1)(char) // putc zp[2]:2 1001.0
void (*printf_padding::putc#2)(char) // putc zp[2]:2 1001.0
void (*printf_padding::putc#7)(char) // putc zp[2]:2 30030.0
void printf_sint(void (*putc)(char) , int value , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix)
struct printf_format_number printf_sint::format
char printf_sint::format_justify_left
__constant char printf_sint::format_justify_left#0 = 0 // format_justify_left
char printf_sint::format_min_length
__constant char printf_sint::format_min_length#0 = 0 // format_min_length
char printf_sint::format_radix
char printf_sint::format_sign_always
char printf_sint::format_upper_case
__constant char printf_sint::format_upper_case#0 = 0 // format_upper_case
char printf_sint::format_zero_padding
__constant char printf_sint::format_zero_padding#0 = 0 // format_zero_padding
void (*printf_sint::putc)(char)
__constant void (*printf_sint::putc#0)(char) = &snputc // putc
unsigned int printf_sint::uvalue
__constant unsigned int printf_sint::uvalue#0 = (unsigned int)printf_sint::value#1 // uvalue
int printf_sint::value
__constant int printf_sint::value#1 = 3 // value
void printf_slong(void (*putc)(char) , long value , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix)
struct printf_format_number printf_slong::format
char printf_slong::format_justify_left
__constant char printf_slong::format_justify_left#0 = 0 // format_justify_left
char printf_slong::format_min_length
__constant char printf_slong::format_min_length#0 = 0 // format_min_length
char printf_slong::format_radix
char printf_slong::format_sign_always
char printf_slong::format_upper_case
__constant char printf_slong::format_upper_case#0 = 0 // format_upper_case
char printf_slong::format_zero_padding
__constant char printf_slong::format_zero_padding#0 = 0 // format_zero_padding
void (*printf_slong::putc)(char)
__constant void (*printf_slong::putc#0)(char) = &snputc // putc
unsigned long printf_slong::uvalue
__constant unsigned long printf_slong::uvalue#0 = (unsigned long)printf_slong::value#1 // uvalue
long printf_slong::value
__constant long printf_slong::value#1 = $153158e // value
void printf_str(void (*putc)(char) , const char *s)
char printf_str::c
char printf_str::c#1 // reg byte a 100001.0
void (*printf_str::putc)(char)
void (*printf_str::putc#0)(char) // putc zp[2]:2 2002.0
void (*printf_str::putc#12)(char) // putc zp[2]:2 10010.0
const char *printf_str::s
const char *printf_str::s#0 // s zp[2]:14 100001.0
const char *printf_str::s#11 // s zp[2]:14 155002.0
const char *printf_str::s#12 // s zp[2]:14 10001.0
void printf_string(void (*putc)(char) , char *str , char format_min_length , char format_justify_left)
struct printf_format_string printf_string::format
char printf_string::format_justify_left
char printf_string::format_min_length
signed char printf_string::len
signed char printf_string::padding
void (*printf_string::putc)(char)
__constant void (*printf_string::putc#0)(char) = &snputc // putc
char *printf_string::str
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)
struct printf_format_number printf_uint::format
char printf_uint::format_justify_left
__constant char printf_uint::format_justify_left#0 = 0 // format_justify_left
char printf_uint::format_min_length
__constant char printf_uint::format_min_length#0 = 0 // format_min_length
char printf_uint::format_radix
char printf_uint::format_sign_always
char printf_uint::format_upper_case
__constant char printf_uint::format_upper_case#0 = 0 // format_upper_case
char printf_uint::format_zero_padding
__constant char printf_uint::format_zero_padding#0 = 0 // format_zero_padding
void (*printf_uint::putc)(char)
__constant void (*printf_uint::putc#0)(char) = &snputc // putc
unsigned int printf_uint::uvalue
__constant unsigned int printf_uint::uvalue#0 = $b // uvalue
char *screen
char *screen#0 // screen zp[2]:23 1001.0
char *screen#1 // screen zp[2]:23 68.19565217391305
char *screen#25 // screen zp[2]:23 134.0
void snprintf_init(char *s , unsigned int n)
unsigned int snprintf_init::n
char *snprintf_init::s
__stackcall void snputc(char c)
__constant char snputc::OFFSET_STACK_C = 0
char snputc::c
char snputc::c#0 // reg byte x 40.4
char snputc::c#2 // reg byte x 202.0
unsigned int strlen(char *str)
unsigned int strlen::len
unsigned int strlen::len#1 // len zp[2]:8 100001.0
unsigned int strlen::len#2 // len zp[2]:8 50250.75
unsigned int strlen::return
unsigned int strlen::return#2 // return zp[2]:8 2002.0
char *strlen::str
char *strlen::str#0 // str zp[2]:16 200002.0
char *strlen::str#3 // str zp[2]:16 100001.0
char * strupr(char *str)
char strupr::$0 // reg byte a 200002.0
char *strupr::return
char *strupr::src
char *strupr::src#1 // src zp[2]:14 200002.0
char *strupr::src#2 // src zp[2]:14 71429.28571428571
char *strupr::str
__constant char *strupr::str#0 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS // str
char toupper(char ch)
char toupper::ch
char toupper::ch#0 // reg byte a 1700002.0000000002
char toupper::return
char toupper::return#0 // reg byte a 2000002.0
char toupper::return#2 // reg byte a 1033334.6666666667
char toupper::return#3 // reg byte a 200002.0
void ultoa(unsigned long value , char *buffer , char radix)
char ultoa::$10 // reg byte a 20002.0
char ultoa::$11 // reg byte a 2002.0
char *ultoa::buffer
char *ultoa::buffer#11 // buffer zp[2]:2 3000.4285714285716
char *ultoa::buffer#14 // buffer zp[2]:2 15001.5
char *ultoa::buffer#3 // buffer zp[2]:2 2002.0
char *ultoa::buffer#4 // buffer zp[2]:2 20002.0
char ultoa::digit
char ultoa::digit#1 // digit zp[1]:20 20002.0
char ultoa::digit#2 // digit zp[1]:20 2857.4285714285716
unsigned long ultoa::digit_value
unsigned long ultoa::digit_value#0 // digit_value zp[4]:10 6000.6
unsigned long *ultoa::digit_values
char ultoa::max_digits
__constant char ultoa::max_digits#1 = $a // max_digits
char ultoa::radix
char ultoa::started
char ultoa::started#2 // reg byte x 5000.5
char ultoa::started#4 // reg byte x 10001.0
unsigned long ultoa::value
unsigned long ultoa::value#0 // value zp[4]:4 10001.0
unsigned long ultoa::value#2 // value zp[4]:4 5714.857142857143
unsigned long ultoa::value#6 // value zp[4]:4 15001.5
unsigned long ultoa_append(char *buffer , unsigned long value , unsigned long sub)
char *ultoa_append::buffer
char *ultoa_append::buffer#0 // buffer zp[2]:2 13750.25
char ultoa_append::digit
char ultoa_append::digit#1 // reg byte x 1.0000001E7
char ultoa_append::digit#2 // reg byte x 1.00500015E7
unsigned long ultoa_append::return
unsigned long ultoa_append::return#0 // return zp[4]:4 20002.0
unsigned long ultoa_append::sub
unsigned long ultoa_append::sub#0 // sub zp[4]:10 3335000.5
unsigned long ultoa_append::value
unsigned long ultoa_append::value#0 // value zp[4]:4 36667.33333333333
unsigned long ultoa_append::value#1 // value zp[4]:4 2.0000002E7
unsigned long ultoa_append::value#2 // value zp[4]:4 5018334.166666666
void utoa(unsigned int value , char *buffer , char radix)
char utoa::$10 // reg byte a 20002.0
char utoa::$11 // reg byte x 2002.0
char utoa::$4 // reg byte a 20002.0
char *utoa::buffer
char *utoa::buffer#10 // buffer zp[2]:16 2800.4000000000005
char *utoa::buffer#15 // buffer zp[2]:16 15001.5
char *utoa::buffer#3 // buffer zp[2]:16 2002.0
char *utoa::buffer#4 // buffer zp[2]:16 20002.0
char utoa::digit
char utoa::digit#1 // digit zp[1]:21 20002.0
char utoa::digit#2 // digit zp[1]:21 2666.9333333333334
unsigned int utoa::digit_value
unsigned int utoa::digit_value#0 // digit_value zp[2]:8 6000.6
unsigned int *utoa::digit_values
unsigned int *utoa::digit_values#8 // digit_values zp[2]:14 588.2941176470588
char utoa::max_digits
char utoa::max_digits#7 // max_digits zp[1]:26 588.2941176470588
char utoa::radix
char utoa::radix#2 // reg byte x 1001.0
char utoa::started
char utoa::started#2 // reg byte x 4286.142857142857
char utoa::started#4 // reg byte x 10001.0
unsigned int utoa::value
unsigned int utoa::value#0 // value zp[2]:2 10001.0
unsigned int utoa::value#10 // value zp[2]:2 166.83333333333334
unsigned int utoa::value#3 // value zp[2]:2 5125.625
unsigned int utoa::value#7 // value zp[2]:2 15001.5
unsigned int utoa_append(char *buffer , unsigned int value , unsigned int sub)
char *utoa_append::buffer
char *utoa_append::buffer#0 // buffer zp[2]:16 13750.25
char utoa_append::digit
char utoa_append::digit#1 // reg byte x 1.0000001E7
char utoa_append::digit#2 // reg byte x 1.00500015E7
unsigned int utoa_append::return
unsigned int utoa_append::return#0 // return zp[2]:2 20002.0
unsigned int utoa_append::sub
unsigned int utoa_append::sub#0 // sub zp[2]:8 3335000.5
unsigned int utoa_append::value
unsigned int utoa_append::value#0 // value zp[2]:2 36667.33333333333
unsigned int utoa_append::value#1 // value zp[2]:2 2.0000002E7
unsigned int utoa_append::value#2 // value zp[2]:2 5018334.166666666

reg byte x [ snputc::c#2 snputc::c#0 ]
zp[2]:23 [ screen#25 screen#1 screen#0 ]
reg byte x [ utoa::radix#2 ]
reg byte x [ utoa::started#2 utoa::started#4 ]
reg byte x [ printf_number_buffer::format_min_length#3 ]
zp[1]:26 [ printf_number_buffer::format_justify_left#10 utoa::max_digits#7 ]
zp[1]:21 [ printf_number_buffer::format_zero_padding#10 utoa::digit#2 utoa::digit#1 ]
zp[1]:27 [ printf_number_buffer::format_upper_case#10 ]
reg byte y [ printf_number_buffer::len#2 printf_number_buffer::len#0 printf_number_buffer::len#1 ]
zp[1]:25 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ]
zp[1]:20 [ ultoa::digit#2 ultoa::digit#1 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 printf_number_buffer::buffer_sign#2 ]
zp[4]:4 [ ultoa::value#2 ultoa::value#6 ultoa::value#0 ultoa_append::value#2 ultoa_append::value#0 ultoa_append::value#1 ultoa_append::return#0 ]
reg byte x [ ultoa::started#2 ultoa::started#4 ]
zp[2]:2 [ ultoa::buffer#11 ultoa::buffer#14 ultoa::buffer#4 ultoa::buffer#3 ultoa_append::buffer#0 utoa::value#3 utoa::value#7 utoa::value#10 utoa::value#0 utoa_append::value#2 utoa_append::value#0 utoa_append::value#1 utoa_append::return#0 print::msg#5 print::msg#0 printf_str::putc#12 printf_str::putc#0 printf_number_buffer::putc#10 printf_padding::putc#7 printf_padding::putc#1 printf_padding::putc#2 printf_padding::putc#0 ]
reg byte x [ utoa_append::digit#2 utoa_append::digit#1 ]
zp[2]:16 [ strlen::str#3 strlen::str#0 utoa::buffer#10 utoa::buffer#15 utoa::buffer#4 utoa::buffer#3 utoa_append::buffer#0 ]
zp[1]:19 [ printf_padding::length#6 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ]
zp[1]:22 [ printf_padding::pad#7 ]
zp[1]:18 [ printf_padding::i#2 printf_padding::i#1 ]
zp[2]:14 [ strupr::src#2 strupr::src#1 utoa::digit_values#8 printf_str::s#11 printf_str::s#12 printf_str::s#0 ]
reg byte x [ ultoa_append::digit#2 ultoa_append::digit#1 ]
reg byte a [ toupper::return#2 toupper::return#0 toupper::ch#0 ]
zp[2]:32 [ __snprintf_capacity ]
zp[2]:28 [ __snprintf_size ]
zp[2]:30 [ __snprintf_buffer ]
reg byte a [ printf_str::c#1 ]
reg byte a [ utoa::$4 ]
reg byte x [ utoa::$11 ]
reg byte a [ utoa::$10 ]
zp[2]:8 [ utoa::digit_value#0 utoa_append::sub#0 strlen::len#2 strlen::len#1 strlen::return#2 printf_number_buffer::$19 ]
reg byte a [ ultoa::$11 ]
reg byte a [ ultoa::$10 ]
zp[4]:10 [ ultoa::digit_value#0 ultoa_append::sub#0 ]
reg byte a [ toupper::return#3 ]
reg byte a [ strupr::$0 ]
mem[12] [ printf_buffer ]


FINAL ASSEMBLER
Score: 19897

  // File Comments
// Tests sprintf function call rewriting
// Test simple formats
  // Upstart
  // Commodore 64 PRG executable file
.file [name="printf-19.prg", type="prg", segments="Program"]
.segmentdef Program [segments="Basic, Code, Data"]
.segmentdef Basic [start=$0801]
.segmentdef Code [start=$80d]
.segmentdef Data [startAfter="Code"]
.segment Basic
:BasicUpstart(__start)
  // Global Constants & labels
  .const BINARY = 2
  .const OCTAL = 8
  .const DECIMAL = $a
  .const HEXADECIMAL = $10
  .const OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = 1
  .const STACK_BASE = $103
  .const SIZEOF_STRUCT_PRINTF_BUFFER_NUMBER = $c
  /// The capacity of the buffer (n passed to snprintf())
  /// Used to hold state while printing
  .label __snprintf_capacity = $20
  // The number of chars that would have been filled when printing without capacity. Grows even after size>capacity.
  /// Used to hold state while printing
  .label __snprintf_size = $1c
  /// Current position in the buffer being filled ( initially *s passed to snprintf()
  /// Used to hold state while printing
  .label __snprintf_buffer = $1e
  .label screen = $17
.segment Code
  // __start
__start: {
    // __start::__init1
    // volatile size_t __snprintf_capacity
    // [1] __snprintf_capacity = 0 -- vwuz1=vwuc1 
    lda #<0
    sta.z __snprintf_capacity
    sta.z __snprintf_capacity+1
    // volatile size_t __snprintf_size
    // [2] __snprintf_size = 0 -- vwuz1=vwuc1 
    sta.z __snprintf_size
    sta.z __snprintf_size+1
    // char * __snprintf_buffer
    // [3] __snprintf_buffer = (char *) 0 -- pbuz1=pbuc1 
    sta.z __snprintf_buffer
    sta.z __snprintf_buffer+1
    // [4] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1]
    // __start::@1
    // [5] call main
    // [16] phi from __start::@1 to main [phi:__start::@1->main]
    jsr main
    // __start::@return
    // [6] return 
    rts
}
  // snputc
/// Print a character into snprintf buffer
/// Used by snprintf()
/// @param c The character to print
// void snputc(__register(X) char c)
snputc: {
    .const OFFSET_STACK_C = 0
    // [7] snputc::c#0 = stackidx(char,snputc::OFFSET_STACK_C) -- vbuxx=_stackidxbyte_vbuc1 
    tsx
    lda STACK_BASE+OFFSET_STACK_C,x
    tax
    // ++__snprintf_size;
    // [8] __snprintf_size = ++ __snprintf_size -- vwuz1=_inc_vwuz1 
    inc.z __snprintf_size
    bne !+
    inc.z __snprintf_size+1
  !:
    // if(__snprintf_size > __snprintf_capacity)
    // [9] if(__snprintf_size<=__snprintf_capacity) goto snputc::@1 -- vwuz1_le_vwuz2_then_la1 
    lda.z __snprintf_size+1
    cmp.z __snprintf_capacity+1
    bne !+
    lda.z __snprintf_size
    cmp.z __snprintf_capacity
    beq __b1
  !:
    bcc __b1
    // snputc::@return
    // }
    // [10] return 
    rts
    // snputc::@1
  __b1:
    // if(__snprintf_size==__snprintf_capacity)
    // [11] if(__snprintf_size!=__snprintf_capacity) goto snputc::@3 -- vwuz1_neq_vwuz2_then_la1 
    lda.z __snprintf_size+1
    cmp.z __snprintf_capacity+1
    bne __b2
    lda.z __snprintf_size
    cmp.z __snprintf_capacity
    bne __b2
    // [13] phi from snputc::@1 to snputc::@2 [phi:snputc::@1->snputc::@2]
    // [13] phi snputc::c#2 = 0 [phi:snputc::@1->snputc::@2#0] -- vbuxx=vbuc1 
    ldx #0
    // [12] phi from snputc::@1 to snputc::@3 [phi:snputc::@1->snputc::@3]
    // snputc::@3
    // [13] phi from snputc::@3 to snputc::@2 [phi:snputc::@3->snputc::@2]
    // [13] phi snputc::c#2 = snputc::c#0 [phi:snputc::@3->snputc::@2#0] -- register_copy 
    // snputc::@2
  __b2:
    // *(__snprintf_buffer++) = c
    // [14] *__snprintf_buffer = snputc::c#2 -- _deref_pbuz1=vbuxx 
    // Append char
    txa
    ldy #0
    sta (__snprintf_buffer),y
    // *(__snprintf_buffer++) = c;
    // [15] __snprintf_buffer = ++ __snprintf_buffer -- pbuz1=_inc_pbuz1 
    inc.z __snprintf_buffer
    bne !+
    inc.z __snprintf_buffer+1
  !:
    rts
}
  // main
main: {
    // sprintf(BUF, "hello world! ")
    // [17] call snprintf_init
    jsr snprintf_init
    // [18] phi from main to main::@1 [phi:main->main::@1]
    // main::@1
    // sprintf(BUF, "hello world! ")
    // [19] call printf_str
    // [71] phi from main::@1 to printf_str [phi:main::@1->printf_str]
    // [71] phi printf_str::putc#12 = &snputc [phi:main::@1->printf_str#0] -- pprz1=pprc1 
    lda #<snputc
    sta.z printf_str.putc
    lda #>snputc
    sta.z printf_str.putc+1
    // [71] phi printf_str::s#12 = main::s [phi:main::@1->printf_str#1] -- pbuz1=pbuc1 
    lda #<s
    sta.z printf_str.s
    lda #>s
    sta.z printf_str.s+1
    jsr printf_str
    // main::@2
    // sprintf(BUF, "hello world! ")
    // [20] stackpush(char) = 0 -- _stackpushbyte_=vbuc1 
    lda #0
    pha
    // [21] callexecute snputc  -- call_vprc1 
    jsr snputc
    // sideeffect stackpullbytes(1) -- _stackpullbyte_1 
    pla
    // print(BUF)
    // [23] call print
    // [80] phi from main::@2 to print [phi:main::@2->print]
    // [80] phi screen#25 = (char *) 1024 [phi:main::@2->print#0] -- pbuz1=pbuc1 
    lda #<$400
    sta.z screen
    lda #>$400
    sta.z screen+1
    jsr print
    // [24] phi from main::@2 to main::@3 [phi:main::@2->main::@3]
    // main::@3
    // sprintf(BUF, "hello %s%c ", "world", '!')
    // [25] call snprintf_init
    jsr snprintf_init
    // [26] phi from main::@3 to main::@4 [phi:main::@3->main::@4]
    // main::@4
    // sprintf(BUF, "hello %s%c ", "world", '!')
    // [27] call printf_str
    // [71] phi from main::@4 to printf_str [phi:main::@4->printf_str]
    // [71] phi printf_str::putc#12 = &snputc [phi:main::@4->printf_str#0] -- pprz1=pprc1 
    lda #<snputc
    sta.z printf_str.putc
    lda #>snputc
    sta.z printf_str.putc+1
    // [71] phi printf_str::s#12 = main::s1 [phi:main::@4->printf_str#1] -- pbuz1=pbuc1 
    lda #<s1
    sta.z printf_str.s
    lda #>s1
    sta.z printf_str.s+1
    jsr printf_str
    // [28] phi from main::@4 to main::@5 [phi:main::@4->main::@5]
    // main::@5
    // sprintf(BUF, "hello %s%c ", "world", '!')
    // [29] call printf_string
    // [87] phi from main::@5 to printf_string [phi:main::@5->printf_string]
    jsr printf_string
    // main::@6
    // sprintf(BUF, "hello %s%c ", "world", '!')
    // [30] stackpush(char) = '!' -- _stackpushbyte_=vbuc1 
    lda #'!'
    pha
    // [31] callexecute snputc  -- call_vprc1 
    jsr snputc
    // sideeffect stackpullbytes(1) -- _stackpullbyte_1 
    pla
    // [33] call printf_str
    // [71] phi from main::@6 to printf_str [phi:main::@6->printf_str]
    // [71] phi printf_str::putc#12 = &snputc [phi:main::@6->printf_str#0] -- pprz1=pprc1 
    lda #<snputc
    sta.z printf_str.putc
    lda #>snputc
    sta.z printf_str.putc+1
    // [71] phi printf_str::s#12 = main::s2 [phi:main::@6->printf_str#1] -- pbuz1=pbuc1 
    lda #<s2
    sta.z printf_str.s
    lda #>s2
    sta.z printf_str.s+1
    jsr printf_str
    // main::@7
    // sprintf(BUF, "hello %s%c ", "world", '!')
    // [34] stackpush(char) = 0 -- _stackpushbyte_=vbuc1 
    lda #0
    pha
    // [35] callexecute snputc  -- call_vprc1 
    jsr snputc
    // sideeffect stackpullbytes(1) -- _stackpullbyte_1 
    pla
    // print(BUF)
    // [37] call print
    // [80] phi from main::@7 to print [phi:main::@7->print]
    // [80] phi screen#25 = screen#1 [phi:main::@7->print#0] -- register_copy 
    jsr print
    // [38] phi from main::@7 to main::@8 [phi:main::@7->main::@8]
    // main::@8
    // sprintf(BUF, "hello %d+%x! ", 3,11)
    // [39] call snprintf_init
    jsr snprintf_init
    // [40] phi from main::@8 to main::@9 [phi:main::@8->main::@9]
    // main::@9
    // sprintf(BUF, "hello %d+%x! ", 3,11)
    // [41] call printf_str
    // [71] phi from main::@9 to printf_str [phi:main::@9->printf_str]
    // [71] phi printf_str::putc#12 = &snputc [phi:main::@9->printf_str#0] -- pprz1=pprc1 
    lda #<snputc
    sta.z printf_str.putc
    lda #>snputc
    sta.z printf_str.putc+1
    // [71] phi printf_str::s#12 = main::s1 [phi:main::@9->printf_str#1] -- pbuz1=pbuc1 
    lda #<s1
    sta.z printf_str.s
    lda #>s1
    sta.z printf_str.s+1
    jsr printf_str
    // [42] phi from main::@9 to main::@10 [phi:main::@9->main::@10]
    // main::@10
    // sprintf(BUF, "hello %d+%x! ", 3,11)
    // [43] call printf_sint
    jsr printf_sint
    // [44] phi from main::@10 to main::@11 [phi:main::@10->main::@11]
    // main::@11
    // sprintf(BUF, "hello %d+%x! ", 3,11)
    // [45] call printf_str
    // [71] phi from main::@11 to printf_str [phi:main::@11->printf_str]
    // [71] phi printf_str::putc#12 = &snputc [phi:main::@11->printf_str#0] -- pprz1=pprc1 
    lda #<snputc
    sta.z printf_str.putc
    lda #>snputc
    sta.z printf_str.putc+1
    // [71] phi printf_str::s#12 = main::s4 [phi:main::@11->printf_str#1] -- pbuz1=pbuc1 
    lda #<s4
    sta.z printf_str.s
    lda #>s4
    sta.z printf_str.s+1
    jsr printf_str
    // [46] phi from main::@11 to main::@12 [phi:main::@11->main::@12]
    // main::@12
    // sprintf(BUF, "hello %d+%x! ", 3,11)
    // [47] call printf_uint
    // [97] phi from main::@12 to printf_uint [phi:main::@12->printf_uint]
    jsr printf_uint
    // [48] phi from main::@12 to main::@13 [phi:main::@12->main::@13]
    // main::@13
    // sprintf(BUF, "hello %d+%x! ", 3,11)
    // [49] call printf_str
    // [71] phi from main::@13 to printf_str [phi:main::@13->printf_str]
    // [71] phi printf_str::putc#12 = &snputc [phi:main::@13->printf_str#0] -- pprz1=pprc1 
    lda #<snputc
    sta.z printf_str.putc
    lda #>snputc
    sta.z printf_str.putc+1
    // [71] phi printf_str::s#12 = main::s5 [phi:main::@13->printf_str#1] -- pbuz1=pbuc1 
    lda #<s5
    sta.z printf_str.s
    lda #>s5
    sta.z printf_str.s+1
    jsr printf_str
    // main::@14
    // sprintf(BUF, "hello %d+%x! ", 3,11)
    // [50] stackpush(char) = 0 -- _stackpushbyte_=vbuc1 
    lda #0
    pha
    // [51] callexecute snputc  -- call_vprc1 
    jsr snputc
    // sideeffect stackpullbytes(1) -- _stackpullbyte_1 
    pla
    // print(BUF)
    // [53] call print
    // [80] phi from main::@14 to print [phi:main::@14->print]
    // [80] phi screen#25 = screen#1 [phi:main::@14->print#0] -- register_copy 
    jsr print
    // [54] phi from main::@14 to main::@15 [phi:main::@14->main::@15]
    // main::@15
    // sprintf(BUF, "hi %ld! ", 22222222l)
    // [55] call snprintf_init
    jsr snprintf_init
    // [56] phi from main::@15 to main::@16 [phi:main::@15->main::@16]
    // main::@16
    // sprintf(BUF, "hi %ld! ", 22222222l)
    // [57] call printf_str
    // [71] phi from main::@16 to printf_str [phi:main::@16->printf_str]
    // [71] phi printf_str::putc#12 = &snputc [phi:main::@16->printf_str#0] -- pprz1=pprc1 
    lda #<snputc
    sta.z printf_str.putc
    lda #>snputc
    sta.z printf_str.putc+1
    // [71] phi printf_str::s#12 = main::s6 [phi:main::@16->printf_str#1] -- pbuz1=pbuc1 
    lda #<s6
    sta.z printf_str.s
    lda #>s6
    sta.z printf_str.s+1
    jsr printf_str
    // [58] phi from main::@16 to main::@17 [phi:main::@16->main::@17]
    // main::@17
    // sprintf(BUF, "hi %ld! ", 22222222l)
    // [59] call printf_slong
    jsr printf_slong
    // [60] phi from main::@17 to main::@18 [phi:main::@17->main::@18]
    // main::@18
    // sprintf(BUF, "hi %ld! ", 22222222l)
    // [61] call printf_str
    // [71] phi from main::@18 to printf_str [phi:main::@18->printf_str]
    // [71] phi printf_str::putc#12 = &snputc [phi:main::@18->printf_str#0] -- pprz1=pprc1 
    lda #<snputc
    sta.z printf_str.putc
    lda #>snputc
    sta.z printf_str.putc+1
    // [71] phi printf_str::s#12 = main::s5 [phi:main::@18->printf_str#1] -- pbuz1=pbuc1 
    lda #<s5
    sta.z printf_str.s
    lda #>s5
    sta.z printf_str.s+1
    jsr printf_str
    // main::@19
    // sprintf(BUF, "hi %ld! ", 22222222l)
    // [62] stackpush(char) = 0 -- _stackpushbyte_=vbuc1 
    lda #0
    pha
    // [63] callexecute snputc  -- call_vprc1 
    jsr snputc
    // sideeffect stackpullbytes(1) -- _stackpullbyte_1 
    pla
    // print(BUF)
    // [65] call print
    // [80] phi from main::@19 to print [phi:main::@19->print]
    // [80] phi screen#25 = screen#1 [phi:main::@19->print#0] -- register_copy 
    jsr print
    // main::@return
    // }
    // [66] return 
    rts
  .segment Data
    s: .text "hello world! "
    .byte 0
    s1: .text "hello "
    .byte 0
    str: .text "world"
    .byte 0
    s2: .text " "
    .byte 0
    s4: .text "+"
    .byte 0
    s5: .text "! "
    .byte 0
    s6: .text "hi "
    .byte 0
}
.segment Code
  // snprintf_init
/// Initialize the snprintf() state
// void snprintf_init(char *s, unsigned int n)
snprintf_init: {
    // __snprintf_capacity = n
    // [67] __snprintf_capacity = $ffff -- vwuz1=vwuc1 
    lda #<$ffff
    sta.z __snprintf_capacity
    lda #>$ffff
    sta.z __snprintf_capacity+1
    // __snprintf_size = 0
    // [68] __snprintf_size = 0 -- vwuz1=vbuc1 
    lda #<0
    sta.z __snprintf_size
    sta.z __snprintf_size+1
    // __snprintf_buffer = s
    // [69] __snprintf_buffer = BUF -- pbuz1=pbuc1 
    lda #<BUF
    sta.z __snprintf_buffer
    lda #>BUF
    sta.z __snprintf_buffer+1
    // snprintf_init::@return
    // }
    // [70] return 
    rts
}
  // printf_str
/// Print a NUL-terminated string
// void printf_str(__zp(2) void (*putc)(char), __zp($e) const char *s)
printf_str: {
    .label s = $e
    .label putc = 2
    // [72] phi from printf_str printf_str::@2 to printf_str::@1 [phi:printf_str/printf_str::@2->printf_str::@1]
    // [72] phi printf_str::s#11 = printf_str::s#12 [phi:printf_str/printf_str::@2->printf_str::@1#0] -- register_copy 
    // printf_str::@1
  __b1:
    // while(c=*s++)
    // [73] printf_str::c#1 = *printf_str::s#11 -- vbuaa=_deref_pbuz1 
    ldy #0
    lda (s),y
    // [74] printf_str::s#0 = ++ printf_str::s#11 -- pbuz1=_inc_pbuz1 
    inc.z s
    bne !+
    inc.z s+1
  !:
    // [75] if(0!=printf_str::c#1) goto printf_str::@2 -- 0_neq_vbuaa_then_la1 
    cmp #0
    bne __b2
    // printf_str::@return
    // }
    // [76] return 
    rts
    // printf_str::@2
  __b2:
    // putc(c)
    // [77] stackpush(char) = printf_str::c#1 -- _stackpushbyte_=vbuaa 
    pha
    // [78] callexecute *printf_str::putc#12  -- call__deref_pprz1 
    jsr icall6
    // sideeffect stackpullbytes(1) -- _stackpullbyte_1 
    pla
    jmp __b1
    // Outside Flow
  icall6:
    jmp (putc)
}
  // print
// void print(__zp(2) char *msg)
print: {
    .label msg = 2
    // [81] phi from print to print::@1 [phi:print->print::@1]
    // [81] phi screen#1 = screen#25 [phi:print->print::@1#0] -- register_copy 
    // [81] phi print::msg#5 = BUF [phi:print->print::@1#1] -- pbuz1=pbuc1 
    lda #<BUF
    sta.z msg
    lda #>BUF
    sta.z msg+1
    // print::@1
  __b1:
    // while(*msg)
    // [82] if(0!=*print::msg#5) goto print::@2 -- 0_neq__deref_pbuz1_then_la1 
    ldy #0
    lda (msg),y
    cmp #0
    bne __b2
    // print::@return
    // }
    // [83] return 
    rts
    // print::@2
  __b2:
    // *(screen++) = *(msg++)
    // [84] *screen#1 = *print::msg#5 -- _deref_pbuz1=_deref_pbuz2 
    ldy #0
    lda (msg),y
    sta (screen),y
    // *(screen++) = *(msg++);
    // [85] screen#0 = ++ screen#1 -- pbuz1=_inc_pbuz1 
    inc.z screen
    bne !+
    inc.z screen+1
  !:
    // [86] print::msg#0 = ++ print::msg#5 -- pbuz1=_inc_pbuz1 
    inc.z msg
    bne !+
    inc.z msg+1
  !:
    // [81] phi from print::@2 to print::@1 [phi:print::@2->print::@1]
    // [81] phi screen#1 = screen#0 [phi:print::@2->print::@1#0] -- register_copy 
    // [81] phi print::msg#5 = print::msg#0 [phi:print::@2->print::@1#1] -- register_copy 
    jmp __b1
}
  // printf_string
// Print a string value using a specific format
// Handles justification and min length 
// void printf_string(void (*putc)(char), char *str, char format_min_length, char format_justify_left)
printf_string: {
    .label putc = snputc
    // [88] phi from printf_string to printf_string::@1 [phi:printf_string->printf_string::@1]
    // printf_string::@1
    // printf_str(putc, str)
    // [89] call printf_str
    // [71] phi from printf_string::@1 to printf_str [phi:printf_string::@1->printf_str]
    // [71] phi printf_str::putc#12 = printf_string::putc#0 [phi:printf_string::@1->printf_str#0] -- pprz1=pprc1 
    lda #<putc
    sta.z printf_str.putc
    lda #>putc
    sta.z printf_str.putc+1
    // [71] phi printf_str::s#12 = main::str [phi:printf_string::@1->printf_str#1] -- pbuz1=pbuc1 
    lda #<main.str
    sta.z printf_str.s
    lda #>main.str
    sta.z printf_str.s+1
    jsr printf_str
    // printf_string::@return
    // }
    // [90] return 
    rts
}
  // printf_sint
// Print a signed integer using a specific format
// void printf_sint(void (*putc)(char), int 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_sint: {
    .const value = 3
    .const format_min_length = 0
    .const format_justify_left = 0
    .const format_zero_padding = 0
    .const format_upper_case = 0
    // Format number into buffer
    .const uvalue = value
    .label putc = snputc
    // printf_buffer.sign = 0
    // [91] *((char *)&printf_buffer) = 0 -- _deref_pbuc1=vbuc2 
    // Handle any sign
    lda #0
    sta printf_buffer
    // [92] phi from printf_sint to printf_sint::@1 [phi:printf_sint->printf_sint::@1]
    // printf_sint::@1
    // utoa(uvalue, printf_buffer.digits, format.radix)
    // [93] call utoa
    // [109] phi from printf_sint::@1 to utoa [phi:printf_sint::@1->utoa]
    // [109] phi utoa::value#10 = printf_sint::uvalue#0 [phi:printf_sint::@1->utoa#0] -- vwuz1=vwuc1 
    lda #<uvalue
    sta.z utoa.value
    lda #>uvalue
    sta.z utoa.value+1
    // [109] phi utoa::radix#2 = DECIMAL [phi:printf_sint::@1->utoa#1] -- vbuxx=vbuc1 
    ldx #DECIMAL
    jsr utoa
    // printf_sint::@2
    // printf_number_buffer(putc, printf_buffer, format)
    // [94] printf_number_buffer::buffer_sign#1 = *((char *)&printf_buffer) -- vbuz1=_deref_pbuc1 
    lda printf_buffer
    sta.z printf_number_buffer.buffer_sign
    // [95] call printf_number_buffer
  // Print using format
    // [140] phi from printf_sint::@2 to printf_number_buffer [phi:printf_sint::@2->printf_number_buffer]
    // [140] phi printf_number_buffer::format_upper_case#10 = printf_sint::format_upper_case#0 [phi:printf_sint::@2->printf_number_buffer#0] -- vbuz1=vbuc1 
    lda #format_upper_case
    sta.z printf_number_buffer.format_upper_case
    // [140] phi printf_number_buffer::putc#10 = printf_sint::putc#0 [phi:printf_sint::@2->printf_number_buffer#1] -- pprz1=pprc1 
    lda #<putc
    sta.z printf_number_buffer.putc
    lda #>putc
    sta.z printf_number_buffer.putc+1
    // [140] phi printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#1 [phi:printf_sint::@2->printf_number_buffer#2] -- register_copy 
    // [140] phi printf_number_buffer::format_zero_padding#10 = printf_sint::format_zero_padding#0 [phi:printf_sint::@2->printf_number_buffer#3] -- vbuz1=vbuc1 
    lda #format_zero_padding
    sta.z printf_number_buffer.format_zero_padding
    // [140] phi printf_number_buffer::format_justify_left#10 = printf_sint::format_justify_left#0 [phi:printf_sint::@2->printf_number_buffer#4] -- vbuz1=vbuc1 
    lda #format_justify_left
    sta.z printf_number_buffer.format_justify_left
    // [140] phi printf_number_buffer::format_min_length#3 = printf_sint::format_min_length#0 [phi:printf_sint::@2->printf_number_buffer#5] -- vbuxx=vbuc1 
    ldx #format_min_length
    jsr printf_number_buffer
    // printf_sint::@return
    // }
    // [96] return 
    rts
}
  // printf_uint
// Print an unsigned int using a specific format
// 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: {
    .const uvalue = $b
    .const format_min_length = 0
    .const format_justify_left = 0
    .const format_zero_padding = 0
    .const format_upper_case = 0
    .label putc = snputc
    // printf_uint::@1
    // printf_buffer.sign = format.sign_always?'+':0
    // [98] *((char *)&printf_buffer) = 0 -- _deref_pbuc1=vbuc2 
    // Handle any sign
    lda #0
    sta printf_buffer
    // utoa(uvalue, printf_buffer.digits, format.radix)
    // [99] call utoa
  // Format number into buffer
    // [109] phi from printf_uint::@1 to utoa [phi:printf_uint::@1->utoa]
    // [109] phi utoa::value#10 = printf_uint::uvalue#0 [phi:printf_uint::@1->utoa#0] -- vwuz1=vwuc1 
    lda #<uvalue
    sta.z utoa.value
    lda #>uvalue
    sta.z utoa.value+1
    // [109] phi utoa::radix#2 = HEXADECIMAL [phi:printf_uint::@1->utoa#1] -- vbuxx=vbuc1 
    ldx #HEXADECIMAL
    jsr utoa
    // printf_uint::@2
    // printf_number_buffer(putc, printf_buffer, format)
    // [100] printf_number_buffer::buffer_sign#2 = *((char *)&printf_buffer) -- vbuz1=_deref_pbuc1 
    lda printf_buffer
    sta.z printf_number_buffer.buffer_sign
    // [101] call printf_number_buffer
  // Print using format
    // [140] phi from printf_uint::@2 to printf_number_buffer [phi:printf_uint::@2->printf_number_buffer]
    // [140] phi printf_number_buffer::format_upper_case#10 = printf_uint::format_upper_case#0 [phi:printf_uint::@2->printf_number_buffer#0] -- vbuz1=vbuc1 
    lda #format_upper_case
    sta.z printf_number_buffer.format_upper_case
    // [140] phi printf_number_buffer::putc#10 = printf_uint::putc#0 [phi:printf_uint::@2->printf_number_buffer#1] -- pprz1=pprc1 
    lda #<putc
    sta.z printf_number_buffer.putc
    lda #>putc
    sta.z printf_number_buffer.putc+1
    // [140] phi printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 [phi:printf_uint::@2->printf_number_buffer#2] -- register_copy 
    // [140] phi printf_number_buffer::format_zero_padding#10 = printf_uint::format_zero_padding#0 [phi:printf_uint::@2->printf_number_buffer#3] -- vbuz1=vbuc1 
    lda #format_zero_padding
    sta.z printf_number_buffer.format_zero_padding
    // [140] phi printf_number_buffer::format_justify_left#10 = printf_uint::format_justify_left#0 [phi:printf_uint::@2->printf_number_buffer#4] -- vbuz1=vbuc1 
    lda #format_justify_left
    sta.z printf_number_buffer.format_justify_left
    // [140] phi printf_number_buffer::format_min_length#3 = printf_uint::format_min_length#0 [phi:printf_uint::@2->printf_number_buffer#5] -- vbuxx=vbuc1 
    ldx #format_min_length
    jsr printf_number_buffer
    // printf_uint::@return
    // }
    // [102] return 
    rts
}
  // printf_slong
// Print a signed long using a specific format
// void printf_slong(void (*putc)(char), long 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_slong: {
    .const value = $153158e
    .const format_min_length = 0
    .const format_justify_left = 0
    .const format_zero_padding = 0
    .const format_upper_case = 0
    .label putc = snputc
    // Format number into buffer
    .label uvalue = value
    // printf_buffer.sign = 0
    // [103] *((char *)&printf_buffer) = 0 -- _deref_pbuc1=vbuc2 
    // Handle any sign
    lda #0
    sta printf_buffer
    // [104] phi from printf_slong to printf_slong::@1 [phi:printf_slong->printf_slong::@1]
    // printf_slong::@1
    // ultoa(uvalue, printf_buffer.digits, format.radix)
    // [105] call ultoa
    // [181] phi from printf_slong::@1 to ultoa [phi:printf_slong::@1->ultoa]
    jsr ultoa
    // printf_slong::@2
    // printf_number_buffer(putc, printf_buffer, format)
    // [106] printf_number_buffer::buffer_sign#0 = *((char *)&printf_buffer) -- vbuz1=_deref_pbuc1 
    lda printf_buffer
    sta.z printf_number_buffer.buffer_sign
    // [107] call printf_number_buffer
  // Print using format
    // [140] phi from printf_slong::@2 to printf_number_buffer [phi:printf_slong::@2->printf_number_buffer]
    // [140] phi printf_number_buffer::format_upper_case#10 = printf_slong::format_upper_case#0 [phi:printf_slong::@2->printf_number_buffer#0] -- vbuz1=vbuc1 
    lda #format_upper_case
    sta.z printf_number_buffer.format_upper_case
    // [140] phi printf_number_buffer::putc#10 = printf_slong::putc#0 [phi:printf_slong::@2->printf_number_buffer#1] -- pprz1=pprc1 
    lda #<putc
    sta.z printf_number_buffer.putc
    lda #>putc
    sta.z printf_number_buffer.putc+1
    // [140] phi printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#0 [phi:printf_slong::@2->printf_number_buffer#2] -- register_copy 
    // [140] phi printf_number_buffer::format_zero_padding#10 = printf_slong::format_zero_padding#0 [phi:printf_slong::@2->printf_number_buffer#3] -- vbuz1=vbuc1 
    lda #format_zero_padding
    sta.z printf_number_buffer.format_zero_padding
    // [140] phi printf_number_buffer::format_justify_left#10 = printf_slong::format_justify_left#0 [phi:printf_slong::@2->printf_number_buffer#4] -- vbuz1=vbuc1 
    lda #format_justify_left
    sta.z printf_number_buffer.format_justify_left
    // [140] phi printf_number_buffer::format_min_length#3 = printf_slong::format_min_length#0 [phi:printf_slong::@2->printf_number_buffer#5] -- vbuxx=vbuc1 
    ldx #format_min_length
    jsr printf_number_buffer
    // printf_slong::@return
    // }
    // [108] return 
    rts
}
  // utoa
// Converts unsigned number value to a string representing it in RADIX format.
// If the leading digits are zero they are not included in the string.
// - value : The number to be converted to RADIX
// - buffer : receives the string representing the number and zero-termination.
// - radix : The radix to convert the number to (from the enum RADIX)
// void utoa(__zp(2) unsigned int value, __zp($10) char *buffer, __register(X) char radix)
utoa: {
    .label digit_value = 8
    .label buffer = $10
    .label digit = $15
    .label value = 2
    .label max_digits = $1a
    .label digit_values = $e
    // if(radix==DECIMAL)
    // [110] if(utoa::radix#2==DECIMAL) goto utoa::@1 -- vbuxx_eq_vbuc1_then_la1 
    cpx #DECIMAL
    beq __b2
    // utoa::@2
    // if(radix==HEXADECIMAL)
    // [111] if(utoa::radix#2==HEXADECIMAL) goto utoa::@1 -- vbuxx_eq_vbuc1_then_la1 
    cpx #HEXADECIMAL
    beq __b3
    // utoa::@3
    // if(radix==OCTAL)
    // [112] if(utoa::radix#2==OCTAL) goto utoa::@1 -- vbuxx_eq_vbuc1_then_la1 
    cpx #OCTAL
    beq __b4
    // utoa::@4
    // if(radix==BINARY)
    // [113] if(utoa::radix#2==BINARY) goto utoa::@1 -- vbuxx_eq_vbuc1_then_la1 
    cpx #BINARY
    beq __b5
    // utoa::@5
    // *buffer++ = 'e'
    // [114] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS) = 'e' -- _deref_pbuc1=vbuc2 
    // Unknown radix
    lda #'e'
    sta printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
    // *buffer++ = 'r'
    // [115] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1) = 'r' -- _deref_pbuc1=vbuc2 
    lda #'r'
    sta printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1
    // [116] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+2) = 'r' -- _deref_pbuc1=vbuc2 
    sta printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+2
    // *buffer = 0
    // [117] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+3) = 0 -- _deref_pbuc1=vbuc2 
    lda #0
    sta printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+3
    // utoa::@return
    // }
    // [118] return 
    rts
    // [119] phi from utoa to utoa::@1 [phi:utoa->utoa::@1]
  __b2:
    // [119] phi utoa::digit_values#8 = RADIX_DECIMAL_VALUES [phi:utoa->utoa::@1#0] -- pwuz1=pwuc1 
    lda #<RADIX_DECIMAL_VALUES
    sta.z digit_values
    lda #>RADIX_DECIMAL_VALUES
    sta.z digit_values+1
    // [119] phi utoa::max_digits#7 = 5 [phi:utoa->utoa::@1#1] -- vbuz1=vbuc1 
    lda #5
    sta.z max_digits
    jmp __b1
    // [119] phi from utoa::@2 to utoa::@1 [phi:utoa::@2->utoa::@1]
  __b3:
    // [119] phi utoa::digit_values#8 = RADIX_HEXADECIMAL_VALUES [phi:utoa::@2->utoa::@1#0] -- pwuz1=pwuc1 
    lda #<RADIX_HEXADECIMAL_VALUES
    sta.z digit_values
    lda #>RADIX_HEXADECIMAL_VALUES
    sta.z digit_values+1
    // [119] phi utoa::max_digits#7 = 4 [phi:utoa::@2->utoa::@1#1] -- vbuz1=vbuc1 
    lda #4
    sta.z max_digits
    jmp __b1
    // [119] phi from utoa::@3 to utoa::@1 [phi:utoa::@3->utoa::@1]
  __b4:
    // [119] phi utoa::digit_values#8 = RADIX_OCTAL_VALUES [phi:utoa::@3->utoa::@1#0] -- pwuz1=pwuc1 
    lda #<RADIX_OCTAL_VALUES
    sta.z digit_values
    lda #>RADIX_OCTAL_VALUES
    sta.z digit_values+1
    // [119] phi utoa::max_digits#7 = 6 [phi:utoa::@3->utoa::@1#1] -- vbuz1=vbuc1 
    lda #6
    sta.z max_digits
    jmp __b1
    // [119] phi from utoa::@4 to utoa::@1 [phi:utoa::@4->utoa::@1]
  __b5:
    // [119] phi utoa::digit_values#8 = RADIX_BINARY_VALUES [phi:utoa::@4->utoa::@1#0] -- pwuz1=pwuc1 
    lda #<RADIX_BINARY_VALUES
    sta.z digit_values
    lda #>RADIX_BINARY_VALUES
    sta.z digit_values+1
    // [119] phi utoa::max_digits#7 = $10 [phi:utoa::@4->utoa::@1#1] -- vbuz1=vbuc1 
    lda #$10
    sta.z max_digits
    // utoa::@1
  __b1:
    // [120] phi from utoa::@1 to utoa::@6 [phi:utoa::@1->utoa::@6]
    // [120] phi utoa::buffer#10 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:utoa::@1->utoa::@6#0] -- pbuz1=pbuc1 
    lda #<printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
    sta.z buffer
    lda #>printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
    sta.z buffer+1
    // [120] phi utoa::started#2 = 0 [phi:utoa::@1->utoa::@6#1] -- vbuxx=vbuc1 
    ldx #0
    // [120] phi utoa::value#3 = utoa::value#10 [phi:utoa::@1->utoa::@6#2] -- register_copy 
    // [120] phi utoa::digit#2 = 0 [phi:utoa::@1->utoa::@6#3] -- vbuz1=vbuc1 
    txa
    sta.z digit
    // utoa::@6
  __b6:
    // max_digits-1
    // [121] utoa::$4 = utoa::max_digits#7 - 1 -- vbuaa=vbuz1_minus_1 
    lda.z max_digits
    sec
    sbc #1
    // for( char digit=0; digit<max_digits-1; digit++ )
    // [122] if(utoa::digit#2<utoa::$4) goto utoa::@7 -- vbuz1_lt_vbuaa_then_la1 
    cmp.z digit
    beq !+
    bcs __b7
  !:
    // utoa::@8
    // *buffer++ = DIGITS[(char)value]
    // [123] utoa::$11 = (char)utoa::value#3 -- vbuxx=_byte_vwuz1 
    ldx.z value
    // [124] *utoa::buffer#10 = DIGITS[utoa::$11] -- _deref_pbuz1=pbuc1_derefidx_vbuxx 
    lda DIGITS,x
    ldy #0
    sta (buffer),y
    // *buffer++ = DIGITS[(char)value];
    // [125] utoa::buffer#3 = ++ utoa::buffer#10 -- pbuz1=_inc_pbuz1 
    inc.z buffer
    bne !+
    inc.z buffer+1
  !:
    // *buffer = 0
    // [126] *utoa::buffer#3 = 0 -- _deref_pbuz1=vbuc1 
    lda #0
    tay
    sta (buffer),y
    rts
    // utoa::@7
  __b7:
    // unsigned int digit_value = digit_values[digit]
    // [127] utoa::$10 = utoa::digit#2 << 1 -- vbuaa=vbuz1_rol_1 
    lda.z digit
    asl
    // [128] utoa::digit_value#0 = utoa::digit_values#8[utoa::$10] -- vwuz1=pwuz2_derefidx_vbuaa 
    tay
    lda (digit_values),y
    sta.z digit_value
    iny
    lda (digit_values),y
    sta.z digit_value+1
    // if (started || value >= digit_value)
    // [129] if(0!=utoa::started#2) goto utoa::@10 -- 0_neq_vbuxx_then_la1 
    cpx #0
    bne __b10
    // utoa::@12
    // [130] if(utoa::value#3>=utoa::digit_value#0) goto utoa::@10 -- vwuz1_ge_vwuz2_then_la1 
    cmp.z value+1
    bne !+
    lda.z digit_value
    cmp.z value
    beq __b10
  !:
    bcc __b10
    // [131] phi from utoa::@12 to utoa::@9 [phi:utoa::@12->utoa::@9]
    // [131] phi utoa::buffer#15 = utoa::buffer#10 [phi:utoa::@12->utoa::@9#0] -- register_copy 
    // [131] phi utoa::started#4 = utoa::started#2 [phi:utoa::@12->utoa::@9#1] -- register_copy 
    // [131] phi utoa::value#7 = utoa::value#3 [phi:utoa::@12->utoa::@9#2] -- register_copy 
    // utoa::@9
  __b9:
    // for( char digit=0; digit<max_digits-1; digit++ )
    // [132] utoa::digit#1 = ++ utoa::digit#2 -- vbuz1=_inc_vbuz1 
    inc.z digit
    // [120] phi from utoa::@9 to utoa::@6 [phi:utoa::@9->utoa::@6]
    // [120] phi utoa::buffer#10 = utoa::buffer#15 [phi:utoa::@9->utoa::@6#0] -- register_copy 
    // [120] phi utoa::started#2 = utoa::started#4 [phi:utoa::@9->utoa::@6#1] -- register_copy 
    // [120] phi utoa::value#3 = utoa::value#7 [phi:utoa::@9->utoa::@6#2] -- register_copy 
    // [120] phi utoa::digit#2 = utoa::digit#1 [phi:utoa::@9->utoa::@6#3] -- register_copy 
    jmp __b6
    // utoa::@10
  __b10:
    // utoa_append(buffer++, value, digit_value)
    // [133] utoa_append::buffer#0 = utoa::buffer#10
    // [134] utoa_append::value#0 = utoa::value#3
    // [135] utoa_append::sub#0 = utoa::digit_value#0
    // [136] call utoa_append
    // [202] phi from utoa::@10 to utoa_append [phi:utoa::@10->utoa_append]
    jsr utoa_append
    // utoa_append(buffer++, value, digit_value)
    // [137] utoa_append::return#0 = utoa_append::value#2
    // utoa::@11
    // value = utoa_append(buffer++, value, digit_value)
    // [138] utoa::value#0 = utoa_append::return#0
    // value = utoa_append(buffer++, value, digit_value);
    // [139] utoa::buffer#4 = ++ utoa::buffer#10 -- pbuz1=_inc_pbuz1 
    inc.z buffer
    bne !+
    inc.z buffer+1
  !:
    // [131] phi from utoa::@11 to utoa::@9 [phi:utoa::@11->utoa::@9]
    // [131] phi utoa::buffer#15 = utoa::buffer#4 [phi:utoa::@11->utoa::@9#0] -- register_copy 
    // [131] phi utoa::started#4 = 1 [phi:utoa::@11->utoa::@9#1] -- vbuxx=vbuc1 
    ldx #1
    // [131] phi utoa::value#7 = utoa::value#0 [phi:utoa::@11->utoa::@9#2] -- register_copy 
    jmp __b9
}
  // printf_number_buffer
// Print the contents of the number buffer using a specific format.
// This handles minimum length, zero-filling, and left/right justification from the format
// void printf_number_buffer(__zp(2) void (*putc)(char), __zp($14) char buffer_sign, char *buffer_digits, __register(X) char format_min_length, __zp($1a) char format_justify_left, char format_sign_always, __zp($15) char format_zero_padding, __zp($1b) char format_upper_case, char format_radix)
printf_number_buffer: {
    .label __19 = 8
    .label buffer_sign = $14
    .label padding = $19
    .label format_zero_padding = $15
    .label putc = 2
    .label format_justify_left = $1a
    .label format_upper_case = $1b
    // if(format.min_length)
    // [141] if(0==printf_number_buffer::format_min_length#3) goto printf_number_buffer::@1 -- 0_eq_vbuxx_then_la1 
    cpx #0
    beq __b6
    // [142] phi from printf_number_buffer to printf_number_buffer::@6 [phi:printf_number_buffer->printf_number_buffer::@6]
    // printf_number_buffer::@6
    // strlen(buffer.digits)
    // [143] call strlen
    // [209] phi from printf_number_buffer::@6 to strlen [phi:printf_number_buffer::@6->strlen]
    jsr strlen
    // strlen(buffer.digits)
    // [144] strlen::return#2 = strlen::len#2
    // printf_number_buffer::@14
    // [145] printf_number_buffer::$19 = strlen::return#2
    // signed char len = (signed char)strlen(buffer.digits)
    // [146] printf_number_buffer::len#0 = (signed char)printf_number_buffer::$19 -- vbsyy=_sbyte_vwuz1 
    // There is a minimum length - work out the padding
    ldy.z __19
    // if(buffer.sign)
    // [147] if(0==printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@13 -- 0_eq_vbuz1_then_la1 
    lda.z buffer_sign
    beq __b13
    // printf_number_buffer::@7
    // len++;
    // [148] printf_number_buffer::len#1 = ++ printf_number_buffer::len#0 -- vbsyy=_inc_vbsyy 
    iny
    // [149] phi from printf_number_buffer::@14 printf_number_buffer::@7 to printf_number_buffer::@13 [phi:printf_number_buffer::@14/printf_number_buffer::@7->printf_number_buffer::@13]
    // [149] phi printf_number_buffer::len#2 = printf_number_buffer::len#0 [phi:printf_number_buffer::@14/printf_number_buffer::@7->printf_number_buffer::@13#0] -- register_copy 
    // printf_number_buffer::@13
  __b13:
    // padding = (signed char)format.min_length - len
    // [150] printf_number_buffer::padding#1 = (signed char)printf_number_buffer::format_min_length#3 - printf_number_buffer::len#2 -- vbsz1=vbsxx_minus_vbsyy 
    txa
    sty.z $ff
    sec
    sbc.z $ff
    sta.z padding
    // if(padding<0)
    // [151] if(printf_number_buffer::padding#1>=0) goto printf_number_buffer::@21 -- vbsz1_ge_0_then_la1 
    cmp #0
    bpl __b1
    // [153] phi from printf_number_buffer printf_number_buffer::@13 to printf_number_buffer::@1 [phi:printf_number_buffer/printf_number_buffer::@13->printf_number_buffer::@1]
  __b6:
    // [153] phi printf_number_buffer::padding#10 = 0 [phi:printf_number_buffer/printf_number_buffer::@13->printf_number_buffer::@1#0] -- vbsz1=vbsc1 
    lda #0
    sta.z padding
    // [152] phi from printf_number_buffer::@13 to printf_number_buffer::@21 [phi:printf_number_buffer::@13->printf_number_buffer::@21]
    // printf_number_buffer::@21
    // [153] phi from printf_number_buffer::@21 to printf_number_buffer::@1 [phi:printf_number_buffer::@21->printf_number_buffer::@1]
    // [153] phi printf_number_buffer::padding#10 = printf_number_buffer::padding#1 [phi:printf_number_buffer::@21->printf_number_buffer::@1#0] -- register_copy 
    // printf_number_buffer::@1
  __b1:
    // if(!format.justify_left && !format.zero_padding && padding)
    // [154] if(0!=printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@2 -- 0_neq_vbuz1_then_la1 
    lda.z format_justify_left
    bne __b2
    // printf_number_buffer::@17
    // [155] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@2 -- 0_neq_vbuz1_then_la1 
    lda.z format_zero_padding
    bne __b2
    // printf_number_buffer::@16
    // [156] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@8 -- 0_neq_vbsz1_then_la1 
    lda.z padding
    cmp #0
    bne __b8
    jmp __b2
    // printf_number_buffer::@8
  __b8:
    // printf_padding(putc, ' ',(char)padding)
    // [157] printf_padding::putc#0 = printf_number_buffer::putc#10
    // [158] printf_padding::length#0 = (char)printf_number_buffer::padding#10 -- vbuz1=vbuz2 
    lda.z padding
    sta.z printf_padding.length
    // [159] call printf_padding
    // [215] phi from printf_number_buffer::@8 to printf_padding [phi:printf_number_buffer::@8->printf_padding]
    // [215] phi printf_padding::putc#7 = printf_padding::putc#0 [phi:printf_number_buffer::@8->printf_padding#0] -- register_copy 
    // [215] phi printf_padding::pad#7 = ' ' [phi:printf_number_buffer::@8->printf_padding#1] -- vbuz1=vbuc1 
    lda #' '
    sta.z printf_padding.pad
    // [215] phi printf_padding::length#6 = printf_padding::length#0 [phi:printf_number_buffer::@8->printf_padding#2] -- register_copy 
    jsr printf_padding
    // printf_number_buffer::@2
  __b2:
    // if(buffer.sign)
    // [160] if(0==printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@3 -- 0_eq_vbuz1_then_la1 
    lda.z buffer_sign
    beq __b3
    // printf_number_buffer::@9
    // putc(buffer.sign)
    // [161] stackpush(char) = printf_number_buffer::buffer_sign#10 -- _stackpushbyte_=vbuz1 
    pha
    // [162] callexecute *printf_number_buffer::putc#10  -- call__deref_pprz1 
    jsr icall7
    // sideeffect stackpullbytes(1) -- _stackpullbyte_1 
    pla
    // printf_number_buffer::@3
  __b3:
    // if(format.zero_padding && padding)
    // [164] if(0==printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@4 -- 0_eq_vbuz1_then_la1 
    lda.z format_zero_padding
    beq __b4
    // printf_number_buffer::@18
    // [165] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@10 -- 0_neq_vbsz1_then_la1 
    lda.z padding
    cmp #0
    bne __b10
    jmp __b4
    // printf_number_buffer::@10
  __b10:
    // printf_padding(putc, '0',(char)padding)
    // [166] printf_padding::putc#1 = printf_number_buffer::putc#10
    // [167] printf_padding::length#1 = (char)printf_number_buffer::padding#10 -- vbuz1=vbuz2 
    lda.z padding
    sta.z printf_padding.length
    // [168] call printf_padding
    // [215] phi from printf_number_buffer::@10 to printf_padding [phi:printf_number_buffer::@10->printf_padding]
    // [215] phi printf_padding::putc#7 = printf_padding::putc#1 [phi:printf_number_buffer::@10->printf_padding#0] -- register_copy 
    // [215] phi printf_padding::pad#7 = '0' [phi:printf_number_buffer::@10->printf_padding#1] -- vbuz1=vbuc1 
    lda #'0'
    sta.z printf_padding.pad
    // [215] phi printf_padding::length#6 = printf_padding::length#1 [phi:printf_number_buffer::@10->printf_padding#2] -- register_copy 
    jsr printf_padding
    // printf_number_buffer::@4
  __b4:
    // if(format.upper_case)
    // [169] if(0==printf_number_buffer::format_upper_case#10) goto printf_number_buffer::@5 -- 0_eq_vbuz1_then_la1 
    lda.z format_upper_case
    beq __b5
    // [170] phi from printf_number_buffer::@4 to printf_number_buffer::@11 [phi:printf_number_buffer::@4->printf_number_buffer::@11]
    // printf_number_buffer::@11
    // strupr(buffer.digits)
    // [171] call strupr
    // [223] phi from printf_number_buffer::@11 to strupr [phi:printf_number_buffer::@11->strupr]
    jsr strupr
    // printf_number_buffer::@5
  __b5:
    // printf_str(putc, buffer.digits)
    // [172] printf_str::putc#0 = printf_number_buffer::putc#10
    // [173] call printf_str
    // [71] phi from printf_number_buffer::@5 to printf_str [phi:printf_number_buffer::@5->printf_str]
    // [71] phi printf_str::putc#12 = printf_str::putc#0 [phi:printf_number_buffer::@5->printf_str#0] -- register_copy 
    // [71] phi printf_str::s#12 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:printf_number_buffer::@5->printf_str#1] -- pbuz1=pbuc1 
    lda #<printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
    sta.z printf_str.s
    lda #>printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
    sta.z printf_str.s+1
    jsr printf_str
    // printf_number_buffer::@15
    // if(format.justify_left && !format.zero_padding && padding)
    // [174] if(0==printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@return -- 0_eq_vbuz1_then_la1 
    lda.z format_justify_left
    beq __breturn
    // printf_number_buffer::@20
    // [175] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@return -- 0_neq_vbuz1_then_la1 
    lda.z format_zero_padding
    bne __breturn
    // printf_number_buffer::@19
    // [176] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@12 -- 0_neq_vbsz1_then_la1 
    lda.z padding
    cmp #0
    bne __b12
    rts
    // printf_number_buffer::@12
  __b12:
    // printf_padding(putc, ' ',(char)padding)
    // [177] printf_padding::putc#2 = printf_number_buffer::putc#10
    // [178] printf_padding::length#2 = (char)printf_number_buffer::padding#10 -- vbuz1=vbuz2 
    lda.z padding
    sta.z printf_padding.length
    // [179] call printf_padding
    // [215] phi from printf_number_buffer::@12 to printf_padding [phi:printf_number_buffer::@12->printf_padding]
    // [215] phi printf_padding::putc#7 = printf_padding::putc#2 [phi:printf_number_buffer::@12->printf_padding#0] -- register_copy 
    // [215] phi printf_padding::pad#7 = ' ' [phi:printf_number_buffer::@12->printf_padding#1] -- vbuz1=vbuc1 
    lda #' '
    sta.z printf_padding.pad
    // [215] phi printf_padding::length#6 = printf_padding::length#2 [phi:printf_number_buffer::@12->printf_padding#2] -- register_copy 
    jsr printf_padding
    // printf_number_buffer::@return
  __breturn:
    // }
    // [180] return 
    rts
    // Outside Flow
  icall7:
    jmp (putc)
}
  // ultoa
// Converts unsigned number value to a string representing it in RADIX format.
// If the leading digits are zero they are not included in the string.
// - value : The number to be converted to RADIX
// - buffer : receives the string representing the number and zero-termination.
// - radix : The radix to convert the number to (from the enum RADIX)
// void ultoa(__zp(4) unsigned long value, __zp(2) char *buffer, char radix)
ultoa: {
    .const max_digits = $a
    .label digit_value = $a
    .label buffer = 2
    .label digit = $14
    .label value = 4
    // [182] phi from ultoa to ultoa::@1 [phi:ultoa->ultoa::@1]
    // [182] phi ultoa::buffer#11 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:ultoa->ultoa::@1#0] -- pbuz1=pbuc1 
    lda #<printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
    sta.z buffer
    lda #>printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
    sta.z buffer+1
    // [182] phi ultoa::started#2 = 0 [phi:ultoa->ultoa::@1#1] -- vbuxx=vbuc1 
    ldx #0
    // [182] phi ultoa::value#2 = printf_slong::uvalue#0 [phi:ultoa->ultoa::@1#2] -- vduz1=vduc1 
    lda #<printf_slong.uvalue
    sta.z value
    lda #>printf_slong.uvalue
    sta.z value+1
    lda #<printf_slong.uvalue>>$10
    sta.z value+2
    lda #>printf_slong.uvalue>>$10
    sta.z value+3
    // [182] phi ultoa::digit#2 = 0 [phi:ultoa->ultoa::@1#3] -- vbuz1=vbuc1 
    txa
    sta.z digit
    // ultoa::@1
  __b1:
    // for( char digit=0; digit<max_digits-1; digit++ )
    // [183] if(ultoa::digit#2<ultoa::max_digits#1-1) goto ultoa::@2 -- vbuz1_lt_vbuc1_then_la1 
    lda.z digit
    cmp #max_digits-1
    bcc __b2
    // ultoa::@3
    // *buffer++ = DIGITS[(char)value]
    // [184] ultoa::$11 = (char)ultoa::value#2 -- vbuaa=_byte_vduz1 
    lda.z value
    // [185] *ultoa::buffer#11 = DIGITS[ultoa::$11] -- _deref_pbuz1=pbuc1_derefidx_vbuaa 
    tay
    lda DIGITS,y
    ldy #0
    sta (buffer),y
    // *buffer++ = DIGITS[(char)value];
    // [186] ultoa::buffer#3 = ++ ultoa::buffer#11 -- pbuz1=_inc_pbuz1 
    inc.z buffer
    bne !+
    inc.z buffer+1
  !:
    // *buffer = 0
    // [187] *ultoa::buffer#3 = 0 -- _deref_pbuz1=vbuc1 
    lda #0
    tay
    sta (buffer),y
    // ultoa::@return
    // }
    // [188] return 
    rts
    // ultoa::@2
  __b2:
    // unsigned long digit_value = digit_values[digit]
    // [189] ultoa::$10 = ultoa::digit#2 << 2 -- vbuaa=vbuz1_rol_2 
    lda.z digit
    asl
    asl
    // [190] ultoa::digit_value#0 = RADIX_DECIMAL_VALUES_LONG[ultoa::$10] -- vduz1=pduc1_derefidx_vbuaa 
    tay
    lda RADIX_DECIMAL_VALUES_LONG,y
    sta.z digit_value
    lda RADIX_DECIMAL_VALUES_LONG+1,y
    sta.z digit_value+1
    lda RADIX_DECIMAL_VALUES_LONG+2,y
    sta.z digit_value+2
    lda RADIX_DECIMAL_VALUES_LONG+3,y
    sta.z digit_value+3
    // if (started || value >= digit_value)
    // [191] if(0!=ultoa::started#2) goto ultoa::@5 -- 0_neq_vbuxx_then_la1 
    cpx #0
    bne __b5
    // ultoa::@7
    // [192] if(ultoa::value#2>=ultoa::digit_value#0) goto ultoa::@5 -- vduz1_ge_vduz2_then_la1 
    lda.z value+3
    cmp.z digit_value+3
    bcc !+
    bne __b5
    lda.z value+2
    cmp.z digit_value+2
    bcc !+
    bne __b5
    lda.z value+1
    cmp.z digit_value+1
    bcc !+
    bne __b5
    lda.z value
    cmp.z digit_value
    bcs __b5
  !:
    // [193] phi from ultoa::@7 to ultoa::@4 [phi:ultoa::@7->ultoa::@4]
    // [193] phi ultoa::buffer#14 = ultoa::buffer#11 [phi:ultoa::@7->ultoa::@4#0] -- register_copy 
    // [193] phi ultoa::started#4 = ultoa::started#2 [phi:ultoa::@7->ultoa::@4#1] -- register_copy 
    // [193] phi ultoa::value#6 = ultoa::value#2 [phi:ultoa::@7->ultoa::@4#2] -- register_copy 
    // ultoa::@4
  __b4:
    // for( char digit=0; digit<max_digits-1; digit++ )
    // [194] ultoa::digit#1 = ++ ultoa::digit#2 -- vbuz1=_inc_vbuz1 
    inc.z digit
    // [182] phi from ultoa::@4 to ultoa::@1 [phi:ultoa::@4->ultoa::@1]
    // [182] phi ultoa::buffer#11 = ultoa::buffer#14 [phi:ultoa::@4->ultoa::@1#0] -- register_copy 
    // [182] phi ultoa::started#2 = ultoa::started#4 [phi:ultoa::@4->ultoa::@1#1] -- register_copy 
    // [182] phi ultoa::value#2 = ultoa::value#6 [phi:ultoa::@4->ultoa::@1#2] -- register_copy 
    // [182] phi ultoa::digit#2 = ultoa::digit#1 [phi:ultoa::@4->ultoa::@1#3] -- register_copy 
    jmp __b1
    // ultoa::@5
  __b5:
    // ultoa_append(buffer++, value, digit_value)
    // [195] ultoa_append::buffer#0 = ultoa::buffer#11
    // [196] ultoa_append::value#0 = ultoa::value#2
    // [197] ultoa_append::sub#0 = ultoa::digit_value#0
    // [198] call ultoa_append
    // [233] phi from ultoa::@5 to ultoa_append [phi:ultoa::@5->ultoa_append]
    jsr ultoa_append
    // ultoa_append(buffer++, value, digit_value)
    // [199] ultoa_append::return#0 = ultoa_append::value#2
    // ultoa::@6
    // value = ultoa_append(buffer++, value, digit_value)
    // [200] ultoa::value#0 = ultoa_append::return#0
    // value = ultoa_append(buffer++, value, digit_value);
    // [201] ultoa::buffer#4 = ++ ultoa::buffer#11 -- pbuz1=_inc_pbuz1 
    inc.z buffer
    bne !+
    inc.z buffer+1
  !:
    // [193] phi from ultoa::@6 to ultoa::@4 [phi:ultoa::@6->ultoa::@4]
    // [193] phi ultoa::buffer#14 = ultoa::buffer#4 [phi:ultoa::@6->ultoa::@4#0] -- register_copy 
    // [193] phi ultoa::started#4 = 1 [phi:ultoa::@6->ultoa::@4#1] -- vbuxx=vbuc1 
    ldx #1
    // [193] phi ultoa::value#6 = ultoa::value#0 [phi:ultoa::@6->ultoa::@4#2] -- register_copy 
    jmp __b4
}
  // utoa_append
// Used to convert a single digit of an unsigned number value to a string representation
// Counts a single digit up from '0' as long as the value is larger than sub.
// Each time the digit is increased sub is subtracted from value.
// - buffer : pointer to the char that receives the digit
// - value : The value where the digit will be derived from
// - sub : the value of a '1' in the digit. Subtracted continually while the digit is increased.
//        (For decimal the subs used are 10000, 1000, 100, 10, 1)
// returns : the value reduced by sub * digit so that it is less than sub.
// __zp(2) unsigned int utoa_append(__zp($10) char *buffer, __zp(2) unsigned int value, __zp(8) unsigned int sub)
utoa_append: {
    .label buffer = $10
    .label value = 2
    .label sub = 8
    .label return = 2
    // [203] phi from utoa_append to utoa_append::@1 [phi:utoa_append->utoa_append::@1]
    // [203] phi utoa_append::digit#2 = 0 [phi:utoa_append->utoa_append::@1#0] -- vbuxx=vbuc1 
    ldx #0
    // [203] phi utoa_append::value#2 = utoa_append::value#0 [phi:utoa_append->utoa_append::@1#1] -- register_copy 
    // utoa_append::@1
  __b1:
    // while (value >= sub)
    // [204] if(utoa_append::value#2>=utoa_append::sub#0) goto utoa_append::@2 -- vwuz1_ge_vwuz2_then_la1 
    lda.z sub+1
    cmp.z value+1
    bne !+
    lda.z sub
    cmp.z value
    beq __b2
  !:
    bcc __b2
    // utoa_append::@3
    // *buffer = DIGITS[digit]
    // [205] *utoa_append::buffer#0 = DIGITS[utoa_append::digit#2] -- _deref_pbuz1=pbuc1_derefidx_vbuxx 
    lda DIGITS,x
    ldy #0
    sta (buffer),y
    // utoa_append::@return
    // }
    // [206] return 
    rts
    // utoa_append::@2
  __b2:
    // digit++;
    // [207] utoa_append::digit#1 = ++ utoa_append::digit#2 -- vbuxx=_inc_vbuxx 
    inx
    // value -= sub
    // [208] utoa_append::value#1 = utoa_append::value#2 - utoa_append::sub#0 -- vwuz1=vwuz1_minus_vwuz2 
    lda.z value
    sec
    sbc.z sub
    sta.z value
    lda.z value+1
    sbc.z sub+1
    sta.z value+1
    // [203] phi from utoa_append::@2 to utoa_append::@1 [phi:utoa_append::@2->utoa_append::@1]
    // [203] phi utoa_append::digit#2 = utoa_append::digit#1 [phi:utoa_append::@2->utoa_append::@1#0] -- register_copy 
    // [203] phi utoa_append::value#2 = utoa_append::value#1 [phi:utoa_append::@2->utoa_append::@1#1] -- register_copy 
    jmp __b1
}
  // strlen
// Computes the length of the string str up to but not including the terminating null character.
// __zp(8) unsigned int strlen(__zp($10) char *str)
strlen: {
    .label len = 8
    .label str = $10
    .label return = 8
    // [210] phi from strlen to strlen::@1 [phi:strlen->strlen::@1]
    // [210] phi strlen::len#2 = 0 [phi:strlen->strlen::@1#0] -- vwuz1=vwuc1 
    lda #<0
    sta.z len
    sta.z len+1
    // [210] phi strlen::str#3 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:strlen->strlen::@1#1] -- pbuz1=pbuc1 
    lda #<printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
    sta.z str
    lda #>printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
    sta.z str+1
    // strlen::@1
  __b1:
    // while(*str)
    // [211] if(0!=*strlen::str#3) goto strlen::@2 -- 0_neq__deref_pbuz1_then_la1 
    ldy #0
    lda (str),y
    cmp #0
    bne __b2
    // strlen::@return
    // }
    // [212] return 
    rts
    // strlen::@2
  __b2:
    // len++;
    // [213] strlen::len#1 = ++ strlen::len#2 -- vwuz1=_inc_vwuz1 
    inc.z len
    bne !+
    inc.z len+1
  !:
    // str++;
    // [214] strlen::str#0 = ++ strlen::str#3 -- pbuz1=_inc_pbuz1 
    inc.z str
    bne !+
    inc.z str+1
  !:
    // [210] phi from strlen::@2 to strlen::@1 [phi:strlen::@2->strlen::@1]
    // [210] phi strlen::len#2 = strlen::len#1 [phi:strlen::@2->strlen::@1#0] -- register_copy 
    // [210] phi strlen::str#3 = strlen::str#0 [phi:strlen::@2->strlen::@1#1] -- register_copy 
    jmp __b1
}
  // printf_padding
// Print a padding char a number of times
// void printf_padding(__zp(2) void (*putc)(char), __zp($16) char pad, __zp($13) char length)
printf_padding: {
    .label i = $12
    .label putc = 2
    .label length = $13
    .label pad = $16
    // [216] phi from printf_padding to printf_padding::@1 [phi:printf_padding->printf_padding::@1]
    // [216] phi printf_padding::i#2 = 0 [phi:printf_padding->printf_padding::@1#0] -- vbuz1=vbuc1 
    lda #0
    sta.z i
    // printf_padding::@1
  __b1:
    // for(char i=0;i<length; i++)
    // [217] if(printf_padding::i#2<printf_padding::length#6) goto printf_padding::@2 -- vbuz1_lt_vbuz2_then_la1 
    lda.z i
    cmp.z length
    bcc __b2
    // printf_padding::@return
    // }
    // [218] return 
    rts
    // printf_padding::@2
  __b2:
    // putc(pad)
    // [219] stackpush(char) = printf_padding::pad#7 -- _stackpushbyte_=vbuz1 
    lda.z pad
    pha
    // [220] callexecute *printf_padding::putc#7  -- call__deref_pprz1 
    jsr icall8
    // sideeffect stackpullbytes(1) -- _stackpullbyte_1 
    pla
    // printf_padding::@3
    // for(char i=0;i<length; i++)
    // [222] printf_padding::i#1 = ++ printf_padding::i#2 -- vbuz1=_inc_vbuz1 
    inc.z i
    // [216] phi from printf_padding::@3 to printf_padding::@1 [phi:printf_padding::@3->printf_padding::@1]
    // [216] phi printf_padding::i#2 = printf_padding::i#1 [phi:printf_padding::@3->printf_padding::@1#0] -- register_copy 
    jmp __b1
    // Outside Flow
  icall8:
    jmp (putc)
}
  // strupr
// Converts a string to uppercase.
// char * strupr(char *str)
strupr: {
    .label str = printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
    .label src = $e
    // [224] phi from strupr to strupr::@1 [phi:strupr->strupr::@1]
    // [224] phi strupr::src#2 = strupr::str#0 [phi:strupr->strupr::@1#0] -- pbuz1=pbuc1 
    lda #<str
    sta.z src
    lda #>str
    sta.z src+1
    // strupr::@1
  __b1:
    // while(*src)
    // [225] if(0!=*strupr::src#2) goto strupr::@2 -- 0_neq__deref_pbuz1_then_la1 
    ldy #0
    lda (src),y
    cmp #0
    bne __b2
    // strupr::@return
    // }
    // [226] return 
    rts
    // strupr::@2
  __b2:
    // toupper(*src)
    // [227] toupper::ch#0 = *strupr::src#2 -- vbuaa=_deref_pbuz1 
    ldy #0
    lda (src),y
    // [228] call toupper
    jsr toupper
    // [229] toupper::return#3 = toupper::return#2
    // strupr::@3
    // [230] strupr::$0 = toupper::return#3
    // *src = toupper(*src)
    // [231] *strupr::src#2 = strupr::$0 -- _deref_pbuz1=vbuaa 
    ldy #0
    sta (src),y
    // src++;
    // [232] strupr::src#1 = ++ strupr::src#2 -- pbuz1=_inc_pbuz1 
    inc.z src
    bne !+
    inc.z src+1
  !:
    // [224] phi from strupr::@3 to strupr::@1 [phi:strupr::@3->strupr::@1]
    // [224] phi strupr::src#2 = strupr::src#1 [phi:strupr::@3->strupr::@1#0] -- register_copy 
    jmp __b1
}
  // ultoa_append
// Used to convert a single digit of an unsigned number value to a string representation
// Counts a single digit up from '0' as long as the value is larger than sub.
// Each time the digit is increased sub is subtracted from value.
// - buffer : pointer to the char that receives the digit
// - value : The value where the digit will be derived from
// - sub : the value of a '1' in the digit. Subtracted continually while the digit is increased.
//        (For decimal the subs used are 10000, 1000, 100, 10, 1)
// returns : the value reduced by sub * digit so that it is less than sub.
// __zp(4) unsigned long ultoa_append(__zp(2) char *buffer, __zp(4) unsigned long value, __zp($a) unsigned long sub)
ultoa_append: {
    .label buffer = 2
    .label value = 4
    .label sub = $a
    .label return = 4
    // [234] phi from ultoa_append to ultoa_append::@1 [phi:ultoa_append->ultoa_append::@1]
    // [234] phi ultoa_append::digit#2 = 0 [phi:ultoa_append->ultoa_append::@1#0] -- vbuxx=vbuc1 
    ldx #0
    // [234] phi ultoa_append::value#2 = ultoa_append::value#0 [phi:ultoa_append->ultoa_append::@1#1] -- register_copy 
    // ultoa_append::@1
  __b1:
    // while (value >= sub)
    // [235] if(ultoa_append::value#2>=ultoa_append::sub#0) goto ultoa_append::@2 -- vduz1_ge_vduz2_then_la1 
    lda.z value+3
    cmp.z sub+3
    bcc !+
    bne __b2
    lda.z value+2
    cmp.z sub+2
    bcc !+
    bne __b2
    lda.z value+1
    cmp.z sub+1
    bcc !+
    bne __b2
    lda.z value
    cmp.z sub
    bcs __b2
  !:
    // ultoa_append::@3
    // *buffer = DIGITS[digit]
    // [236] *ultoa_append::buffer#0 = DIGITS[ultoa_append::digit#2] -- _deref_pbuz1=pbuc1_derefidx_vbuxx 
    lda DIGITS,x
    ldy #0
    sta (buffer),y
    // ultoa_append::@return
    // }
    // [237] return 
    rts
    // ultoa_append::@2
  __b2:
    // digit++;
    // [238] ultoa_append::digit#1 = ++ ultoa_append::digit#2 -- vbuxx=_inc_vbuxx 
    inx
    // value -= sub
    // [239] ultoa_append::value#1 = ultoa_append::value#2 - ultoa_append::sub#0 -- vduz1=vduz1_minus_vduz2 
    lda.z value
    sec
    sbc.z sub
    sta.z value
    lda.z value+1
    sbc.z sub+1
    sta.z value+1
    lda.z value+2
    sbc.z sub+2
    sta.z value+2
    lda.z value+3
    sbc.z sub+3
    sta.z value+3
    // [234] phi from ultoa_append::@2 to ultoa_append::@1 [phi:ultoa_append::@2->ultoa_append::@1]
    // [234] phi ultoa_append::digit#2 = ultoa_append::digit#1 [phi:ultoa_append::@2->ultoa_append::@1#0] -- register_copy 
    // [234] phi ultoa_append::value#2 = ultoa_append::value#1 [phi:ultoa_append::@2->ultoa_append::@1#1] -- register_copy 
    jmp __b1
}
  // toupper
// Convert lowercase alphabet to uppercase
// Returns uppercase equivalent to c, if such value exists, else c remains unchanged
// __register(A) char toupper(__register(A) char ch)
toupper: {
    // if(ch>='a' && ch<='z')
    // [240] if(toupper::ch#0<'a') goto toupper::@return -- vbuaa_lt_vbuc1_then_la1 
    cmp #'a'
    bcc __breturn
    // toupper::@2
    // [241] if(toupper::ch#0<='z') goto toupper::@1 -- vbuaa_le_vbuc1_then_la1 
    cmp #'z'
    bcc __b1
    beq __b1
    // [243] phi from toupper toupper::@1 toupper::@2 to toupper::@return [phi:toupper/toupper::@1/toupper::@2->toupper::@return]
    // [243] phi toupper::return#2 = toupper::ch#0 [phi:toupper/toupper::@1/toupper::@2->toupper::@return#0] -- register_copy 
    rts
    // toupper::@1
  __b1:
    // return ch + ('A'-'a');
    // [242] toupper::return#0 = toupper::ch#0 + 'A'-'a' -- vbuaa=vbuaa_plus_vbuc1 
    clc
    adc #'A'-'a'
    // toupper::@return
  __breturn:
    // }
    // [244] return 
    rts
}
  // File Data
.segment Data
  // The digits used for numbers
  DIGITS: .text "0123456789abcdef"
  // Values of binary digits
  RADIX_BINARY_VALUES: .word $8000, $4000, $2000, $1000, $800, $400, $200, $100, $80, $40, $20, $10, 8, 4, 2
  // Values of octal digits
  RADIX_OCTAL_VALUES: .word $8000, $1000, $200, $40, 8
  // Values of decimal digits
  RADIX_DECIMAL_VALUES: .word $2710, $3e8, $64, $a
  // Values of hexadecimal digits
  RADIX_HEXADECIMAL_VALUES: .word $1000, $100, $10
  // Values of decimal digits
  RADIX_DECIMAL_VALUES_LONG: .dword $3b9aca00, $5f5e100, $989680, $f4240, $186a0, $2710, $3e8, $64, $a
  BUF: .fill $14, 0
  // Buffer used for stringified number being printed
  printf_buffer: .fill SIZEOF_STRUCT_PRINTF_BUFFER_NUMBER, 0

