@begin: scope:[]  from
  [0] phi()
  to:@1
@1: scope:[]  from @begin
  [1] phi()
  [2] call main 
  to:@end
@end: scope:[]  from @1
  [3] phi()
main: scope:[main]  from @1
  [4] *((const byte*) VICBANK#0) ← (byte) $17
  [5] *((const byte*) zp1#0) ← (byte) 0
  to:main::@1
main::@1: scope:[main]  from main main::@14
  [6] (word) main::v#12 ← phi( main/(word) 0 main::@14/(word) main::v#11 )
  [6] (word) main::u#15 ← phi( main/(word) $6e85 main::@14/(word) main::u#3 )
  [7] if(*((const byte*) zp1#0)<(byte) $a) goto main::@2
  to:main::@3
main::@3: scope:[main]  from main::@1
  [8] *((const byte*) zp1#0) ← (byte) 0
  to:main::@7
main::@7: scope:[main]  from main::@17 main::@3
  [9] (word) main::v#10 ← phi( main::@3/(word) main::v#12 main::@17/(word) main::v#13 )
  [9] (word) main::u#17 ← phi( main::@3/(word) $6e85 main::@17/(word) main::u#4 )
  [10] if(*((const byte*) zp1#0)<(byte) $a) goto main::@8
  to:main::@return
main::@return: scope:[main]  from main::@7
  [11] return 
  to:@return
main::@8: scope:[main]  from main::@7
  [12] *((const byte*) TIMEHI#0) ← (byte) 0
  [13] *((const byte*) TIMELO#0) ← (byte) 0
  [14] *((const byte*) zp2#0) ← (byte) 0
  to:main::@9
main::@9: scope:[main]  from main::@15 main::@8
  [15] (word) main::v#13 ← phi( main::@8/(word) main::v#10 main::@15/(word) main::v#2 )
  [16] if(*((const byte*) zp2#0)<(byte) $c8) goto main::@10
  to:main::@11
main::@11: scope:[main]  from main::@9
  [17] (word~) main::$12 ← (word)*((const byte*) TIMEHI#0)
  [18] (word~) main::$13 ← (word~) main::$12 << (byte) 8
  [19] (word~) main::$14 ← (word)*((const byte*) TIMELO#0)
  [20] (word) myprintf::w3#1 ← (word~) main::$13 + (word~) main::$14
  [21] (word) myprintf::w1#1 ← (word) main::u#17
  [22] (word) myprintf::w2#1 ← (word) main::v#13
  [23] call myprintf 
  to:main::@16
main::@16: scope:[main]  from main::@11
  [24] phi()
  [25] call Print 
  to:main::@17
main::@17: scope:[main]  from main::@16
  [26] (word) main::u#4 ← (word) main::u#17 - (word) $4d2
  [27] *((const byte*) zp1#0) ← ++ *((const byte*) zp1#0)
  to:main::@7
main::@10: scope:[main]  from main::@9
  [28] (word) div10::val#4 ← (word) main::u#17
  [29] call div10 
  [30] (word) div10::return#2 ← (word) div10::return#0
  to:main::@15
main::@15: scope:[main]  from main::@10
  [31] (word) main::v#2 ← (word) div10::return#2
  [32] *((const byte*) zp2#0) ← ++ *((const byte*) zp2#0)
  to:main::@9
main::@2: scope:[main]  from main::@1
  [33] *((const byte*) TIMEHI#0) ← (byte) 0
  [34] *((const byte*) TIMELO#0) ← (byte) 0
  [35] *((const byte*) zp2#0) ← (byte) 0
  to:main::@4
main::@4: scope:[main]  from main::@12 main::@2
  [36] (word) main::v#11 ← phi( main::@2/(word) main::v#12 main::@12/(word) main::v#1 )
  [37] if(*((const byte*) zp2#0)<(byte) $c8) goto main::@5
  to:main::@6
main::@6: scope:[main]  from main::@4
  [38] (word~) main::$3 ← (word)*((const byte*) TIMEHI#0)
  [39] (word~) main::$4 ← (word~) main::$3 << (byte) 8
  [40] (word~) main::$5 ← (word)*((const byte*) TIMELO#0)
  [41] (word) myprintf::w3#0 ← (word~) main::$4 + (word~) main::$5
  [42] (word) myprintf::w1#0 ← (word) main::u#15
  [43] (word) myprintf::w2#0 ← (word) main::v#11
  [44] call myprintf 
  to:main::@13
main::@13: scope:[main]  from main::@6
  [45] phi()
  [46] call Print 
  to:main::@14
main::@14: scope:[main]  from main::@13
  [47] (word) main::u#3 ← (word) main::u#15 - (word) $4d2
  [48] *((const byte*) zp1#0) ← ++ *((const byte*) zp1#0)
  to:main::@1
main::@5: scope:[main]  from main::@4
  [49] (word) div16u::dividend#0 ← (word) main::u#15
  [50] call div16u 
  [51] (word) div16u::return#2 ← (word) div16u::return#0
  to:main::@12
main::@12: scope:[main]  from main::@5
  [52] (word) main::v#1 ← (word) div16u::return#2
  [53] *((const byte*) zp2#0) ← ++ *((const byte*) zp2#0)
  to:main::@4
div16u: scope:[div16u]  from main::@5
  [54] (word) divr16u::dividend#1 ← (word) div16u::dividend#0
  [55] call divr16u 
  [56] (word) divr16u::return#2 ← (word) divr16u::return#0
  to:div16u::@1
div16u::@1: scope:[div16u]  from div16u
  [57] (word) div16u::return#0 ← (word) divr16u::return#2
  to:div16u::@return
div16u::@return: scope:[div16u]  from div16u::@1
  [58] return 
  to:@return
divr16u: scope:[divr16u]  from div16u
  [59] phi()
  to:divr16u::@1
divr16u::@1: scope:[divr16u]  from divr16u divr16u::@3
  [60] (byte) divr16u::i#2 ← phi( divr16u/(byte) 0 divr16u::@3/(byte) divr16u::i#1 )
  [60] (word) divr16u::quotient#3 ← phi( divr16u/(byte) 0 divr16u::@3/(word) divr16u::return#0 )
  [60] (word) divr16u::dividend#2 ← phi( divr16u/(word) divr16u::dividend#1 divr16u::@3/(word) divr16u::dividend#0 )
  [60] (word) divr16u::rem#4 ← phi( divr16u/(byte) 0 divr16u::@3/(word) divr16u::rem#9 )
  [61] (word) divr16u::rem#0 ← (word) divr16u::rem#4 << (byte) 1
  [62] (byte~) divr16u::$1 ← > (word) divr16u::dividend#2
  [63] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte) $80
  [64] if((byte~) divr16u::$2==(byte) 0) goto divr16u::@2
  to:divr16u::@4
divr16u::@4: scope:[divr16u]  from divr16u::@1
  [65] (word) divr16u::rem#1 ← (word) divr16u::rem#0 | (byte) 1
  to:divr16u::@2
divr16u::@2: scope:[divr16u]  from divr16u::@1 divr16u::@4
  [66] (word) divr16u::rem#5 ← phi( divr16u::@1/(word) divr16u::rem#0 divr16u::@4/(word) divr16u::rem#1 )
  [67] (word) divr16u::dividend#0 ← (word) divr16u::dividend#2 << (byte) 1
  [68] (word) divr16u::quotient#1 ← (word) divr16u::quotient#3 << (byte) 1
  [69] if((word) divr16u::rem#5<(const word) div16u::divisor#0) goto divr16u::@3
  to:divr16u::@5
divr16u::@5: scope:[divr16u]  from divr16u::@2
  [70] (word) divr16u::quotient#2 ← ++ (word) divr16u::quotient#1
  [71] (word) divr16u::rem#2 ← (word) divr16u::rem#5 - (const word) div16u::divisor#0
  to:divr16u::@3
divr16u::@3: scope:[divr16u]  from divr16u::@2 divr16u::@5
  [72] (word) divr16u::return#0 ← phi( divr16u::@2/(word) divr16u::quotient#1 divr16u::@5/(word) divr16u::quotient#2 )
  [72] (word) divr16u::rem#9 ← phi( divr16u::@2/(word) divr16u::rem#5 divr16u::@5/(word) divr16u::rem#2 )
  [73] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2
  [74] if((byte) divr16u::i#1!=(byte) $10) goto divr16u::@1
  to:divr16u::@return
divr16u::@return: scope:[divr16u]  from divr16u::@3
  [75] return 
  to:@return
Print: scope:[Print]  from main::@13 main::@16
  asm { ldy#0 loop: ldastrTemp,y beqdone jsr$FFD2 iny jmploop done:  }
  to:Print::@return
Print::@return: scope:[Print]  from Print
  [77] return 
  to:@return
myprintf: scope:[myprintf]  from main::@11 main::@6
  [78] (word) myprintf::w3#8 ← phi( main::@11/(word) myprintf::w3#1 main::@6/(word) myprintf::w3#0 )
  [78] (word) myprintf::w2#8 ← phi( main::@11/(word) myprintf::w2#1 main::@6/(word) myprintf::w2#0 )
  [78] (word) myprintf::w1#7 ← phi( main::@11/(word) myprintf::w1#1 main::@6/(word) myprintf::w1#0 )
  [78] (byte*) myprintf::str#6 ← phi( main::@11/(const string) main::str1 main::@6/(const string) main::str )
  to:myprintf::@1
myprintf::@1: scope:[myprintf]  from myprintf myprintf::@32
  [79] (byte) myprintf::bLeadZero#11 ← phi( myprintf/(byte) 0 myprintf::@32/(byte) myprintf::bLeadZero#20 )
  [79] (byte) myprintf::bDigits#16 ← phi( myprintf/(byte) 0 myprintf::@32/(byte) myprintf::bDigits#28 )
  [79] (byte) myprintf::bTrailing#11 ← phi( myprintf/(byte) 0 myprintf::@32/(byte) myprintf::bTrailing#24 )
  [79] (word) myprintf::w#10 ← phi( myprintf/(word) 0 myprintf::@32/(word) myprintf::w#18 )
  [79] (byte) myprintf::bArg#10 ← phi( myprintf/(byte) 0 myprintf::@32/(byte) myprintf::bArg#11 )
  [79] (byte) myprintf::bLen#10 ← phi( myprintf/(byte) 0 myprintf::@32/(byte) myprintf::bLen#28 )
  [79] (byte) myprintf::bFormat#10 ← phi( myprintf/(byte) 0 myprintf::@32/(byte) myprintf::bFormat#5 )
  [79] (byte*) myprintf::str#10 ← phi( myprintf/(byte*) myprintf::str#6 myprintf::@32/(byte*) myprintf::str#0 )
  [80] if(*((byte*) myprintf::str#10)!=(byte) 0) goto myprintf::@2
  to:myprintf::@3
myprintf::@3: scope:[myprintf]  from myprintf::@1
  [81] *((const byte[$64]) strTemp#0 + (byte) myprintf::bLen#10) ← (byte) 0
  to:myprintf::@return
myprintf::@return: scope:[myprintf]  from myprintf::@3
  [82] return 
  to:@return
myprintf::@2: scope:[myprintf]  from myprintf::@1
  [83] (byte) myprintf::b#1 ← *((byte*) myprintf::str#10)
  [84] if((byte) myprintf::bFormat#10==(byte) 0) goto myprintf::@4
  to:myprintf::@38
myprintf::@38: scope:[myprintf]  from myprintf::@2
  [85] if((byte) myprintf::b#1!=(byte) '0') goto myprintf::@5
  to:myprintf::@32
myprintf::@32: scope:[myprintf]  from myprintf::@27 myprintf::@28 myprintf::@36 myprintf::@37 myprintf::@38 myprintf::@6
  [86] (byte) myprintf::bLeadZero#20 ← phi( myprintf::@27/(byte) myprintf::bLeadZero#11 myprintf::@28/(byte) myprintf::bLeadZero#11 myprintf::@6/(byte) myprintf::bLeadZero#11 myprintf::@36/(byte) 0 myprintf::@37/(byte) myprintf::bLeadZero#11 myprintf::@38/(byte) 1 )
  [86] (byte) myprintf::bDigits#28 ← phi( myprintf::@27/(byte) myprintf::bDigits#29 myprintf::@28/(byte) myprintf::bDigits#1 myprintf::@6/(byte) myprintf::bDigits#16 myprintf::@36/(byte) 1 myprintf::@37/(byte) myprintf::bDigits#16 myprintf::@38/(byte) myprintf::bDigits#16 )
  [86] (byte) myprintf::bTrailing#24 ← phi( myprintf::@27/(byte) myprintf::bTrailing#11 myprintf::@28/(byte) myprintf::bTrailing#11 myprintf::@6/(byte) 1 myprintf::@36/(byte) 0 myprintf::@37/(byte) myprintf::bTrailing#11 myprintf::@38/(byte) myprintf::bTrailing#11 )
  [86] (word) myprintf::w#18 ← phi( myprintf::@27/(word) myprintf::w#10 myprintf::@28/(word) myprintf::w#10 myprintf::@6/(word) myprintf::w#10 myprintf::@36/(word) myprintf::w#22 myprintf::@37/(word) myprintf::w#10 myprintf::@38/(word) myprintf::w#10 )
  [86] (byte) myprintf::bArg#11 ← phi( myprintf::@27/(byte) myprintf::bArg#10 myprintf::@28/(byte) myprintf::bArg#10 myprintf::@6/(byte) myprintf::bArg#10 myprintf::@36/(byte) myprintf::bArg#1 myprintf::@37/(byte) myprintf::bArg#10 myprintf::@38/(byte) myprintf::bArg#10 )
  [86] (byte) myprintf::bLen#28 ← phi( myprintf::@27/(byte) myprintf::bLen#36 myprintf::@28/(byte) myprintf::bLen#10 myprintf::@6/(byte) myprintf::bLen#10 myprintf::@36/(byte) myprintf::bLen#10 myprintf::@37/(byte) myprintf::bLen#7 myprintf::@38/(byte) myprintf::bLen#10 )
  [86] (byte) myprintf::bFormat#5 ← phi( myprintf::@27/(byte) 0 myprintf::@28/(byte) myprintf::bFormat#10 myprintf::@6/(byte) myprintf::bFormat#10 myprintf::@36/(byte) 1 myprintf::@37/(byte) myprintf::bFormat#10 myprintf::@38/(byte) myprintf::bFormat#10 )
  [87] (byte*) myprintf::str#0 ← ++ (byte*) myprintf::str#10
  to:myprintf::@1
myprintf::@5: scope:[myprintf]  from myprintf::@38
  [88] if((byte) myprintf::b#1<(byte) '1') goto myprintf::@6
  to:myprintf::@43
myprintf::@43: scope:[myprintf]  from myprintf::@5
  [89] if((byte) myprintf::b#1<=(byte) '9') goto myprintf::@28
  to:myprintf::@6
myprintf::@6: scope:[myprintf]  from myprintf::@43 myprintf::@5
  [90] if((byte) myprintf::b#1!=(byte) '-') goto myprintf::@7
  to:myprintf::@32
myprintf::@7: scope:[myprintf]  from myprintf::@6
  [91] if((byte) myprintf::b#1==(byte) 'c') goto myprintf::@8
  to:myprintf::@29
myprintf::@29: scope:[myprintf]  from myprintf::@7
  [92] if((byte) myprintf::b#1==(byte) 'd') goto myprintf::@9
  to:myprintf::@30
myprintf::@30: scope:[myprintf]  from myprintf::@29
  [93] if((byte) myprintf::b#1==(byte) 'x') goto myprintf::@31
  to:myprintf::@44
myprintf::@44: scope:[myprintf]  from myprintf::@30
  [94] if((byte) myprintf::b#1==(byte) 'X') goto myprintf::@31
  to:myprintf::@27
myprintf::@27: scope:[myprintf]  from myprintf::@13 myprintf::@24 myprintf::@25 myprintf::@44 myprintf::@46 myprintf::@8
  [95] (byte) myprintf::bDigits#29 ← phi( myprintf::@13/(byte) myprintf::bDigits#16 myprintf::@24/(byte) myprintf::bDigits#18 myprintf::@25/(byte) myprintf::bDigits#10 myprintf::@44/(byte) myprintf::bDigits#16 myprintf::@8/(byte) myprintf::bDigits#16 )
  [95] (byte) myprintf::bLen#36 ← phi( myprintf::@13/(byte) myprintf::bLen#3 myprintf::@24/(byte) myprintf::bLen#13 myprintf::@25/(byte) myprintf::bLen#14 myprintf::@44/(byte) myprintf::bLen#10 myprintf::@8/(byte) myprintf::bLen#1 )
  to:myprintf::@32
myprintf::@31: scope:[myprintf]  from myprintf::@30 myprintf::@44
  [96] (byte~) myprintf::$18 ← (byte)(word) myprintf::w#10
  [97] (byte~) myprintf::$19 ← (byte~) myprintf::$18 >> (byte) 4
  [98] (byte) myprintf::b#15 ← (byte~) myprintf::$19 & (byte) $f
  [99] if((byte) myprintf::b#15<(byte) $a) goto myprintf::@10
  to:myprintf::@11
myprintf::@10: scope:[myprintf]  from myprintf::@31
  [100] phi()
  to:myprintf::@11
myprintf::@11: scope:[myprintf]  from myprintf::@10 myprintf::@31
  [101] (byte~) myprintf::$24 ← phi( myprintf::@10/(byte) '0' myprintf::@31/(byte) $57 )
  [102] (byte~) myprintf::$25 ← (byte~) myprintf::$24 + (byte) myprintf::b#15
  [103] *((const byte[$64]) strTemp#0 + (byte) myprintf::bLen#10) ← (byte~) myprintf::$25
  [104] (byte) myprintf::bLen#11 ← ++ (byte) myprintf::bLen#10
  [105] (byte~) myprintf::$26 ← (byte)(word) myprintf::w#10
  [106] (byte) myprintf::b#16 ← (byte~) myprintf::$26 & (byte) $f
  [107] if((byte) myprintf::b#16<(byte) $a) goto myprintf::@12
  to:myprintf::@13
myprintf::@12: scope:[myprintf]  from myprintf::@11
  [108] phi()
  to:myprintf::@13
myprintf::@13: scope:[myprintf]  from myprintf::@11 myprintf::@12
  [109] (byte~) myprintf::$31 ← phi( myprintf::@12/(byte) '0' myprintf::@11/(byte) $57 )
  [110] (byte~) myprintf::$32 ← (byte~) myprintf::$31 + (byte) myprintf::b#16
  [111] *((const byte[$64]) strTemp#0 + (byte) myprintf::bLen#11) ← (byte~) myprintf::$32
  [112] (byte) myprintf::bLen#3 ← ++ (byte) myprintf::bLen#11
  to:myprintf::@27
myprintf::@9: scope:[myprintf]  from myprintf::@29
  [113] (word) utoa::value#4 ← (word) myprintf::w#10
  [114] call utoa 
  to:myprintf::@14
myprintf::@14: scope:[myprintf]  from myprintf::@15 myprintf::@9
  [115] (byte) myprintf::b#17 ← phi( myprintf::@15/(byte) myprintf::b#5 myprintf::@9/(byte) 1 )
  [116] if(*((const byte[6]) myprintf::buf6#0 + (byte) myprintf::b#17)!=(byte) 0) goto myprintf::@15
  to:myprintf::@16
myprintf::@16: scope:[myprintf]  from myprintf::@14
  [117] if((byte) myprintf::bTrailing#11!=(byte) 0) goto myprintf::@17
  to:myprintf::@45
myprintf::@45: scope:[myprintf]  from myprintf::@16
  [118] if((byte) myprintf::bDigits#16<=(byte) myprintf::b#17) goto myprintf::@17
  to:myprintf::@18
myprintf::@18: scope:[myprintf]  from myprintf::@21 myprintf::@45
  [119] (byte) myprintf::bLen#12 ← phi( myprintf::@45/(byte) myprintf::bLen#10 myprintf::@21/(byte) myprintf::bLen#4 )
  [119] (byte) myprintf::bDigits#12 ← phi( myprintf::@45/(byte) myprintf::bDigits#16 myprintf::@21/(byte) myprintf::bDigits#2 )
  [120] if((byte) myprintf::bDigits#12>(byte) myprintf::b#17) goto myprintf::@19
  to:myprintf::@17
myprintf::@17: scope:[myprintf]  from myprintf::@16 myprintf::@18 myprintf::@45
  [121] (byte) myprintf::bDigits#18 ← phi( myprintf::@16/(byte) myprintf::bDigits#16 myprintf::@18/(byte) myprintf::bDigits#12 )
  [121] (byte) myprintf::bLen#32 ← phi( myprintf::@16/(byte) myprintf::bLen#10 myprintf::@18/(byte) myprintf::bLen#12 )
  to:myprintf::@22
myprintf::@22: scope:[myprintf]  from myprintf::@17 myprintf::@23
  [122] (byte) myprintf::bLen#13 ← phi( myprintf::@17/(byte) myprintf::bLen#32 myprintf::@23/(byte) myprintf::bLen#5 )
  [122] (byte) myprintf::digit#3 ← phi( myprintf::@17/(byte) 0 myprintf::@23/(byte) myprintf::digit#2 )
  [123] if((byte) myprintf::digit#3<(byte) myprintf::b#17) goto myprintf::@23
  to:myprintf::@24
myprintf::@24: scope:[myprintf]  from myprintf::@22
  [124] if((byte) myprintf::bTrailing#11==(byte) 0) goto myprintf::@27
  to:myprintf::@46
myprintf::@46: scope:[myprintf]  from myprintf::@24
  [125] if((byte) myprintf::bDigits#18<=(byte) myprintf::b#17) goto myprintf::@27
  to:myprintf::@25
myprintf::@25: scope:[myprintf]  from myprintf::@26 myprintf::@46
  [126] (byte) myprintf::bLen#14 ← phi( myprintf::@46/(byte) myprintf::bLen#13 myprintf::@26/(byte) myprintf::bLen#6 )
  [126] (byte) myprintf::bDigits#10 ← phi( myprintf::@46/(byte) myprintf::bDigits#18 myprintf::@26/(byte) myprintf::bDigits#3 )
  [127] if((byte) myprintf::bDigits#10>(byte) myprintf::b#17) goto myprintf::@26
  to:myprintf::@27
myprintf::@26: scope:[myprintf]  from myprintf::@25
  [128] *((const byte[$64]) strTemp#0 + (byte) myprintf::bLen#14) ← (byte) ' '
  [129] (byte) myprintf::bLen#6 ← ++ (byte) myprintf::bLen#14
  [130] (byte) myprintf::bDigits#3 ← -- (byte) myprintf::bDigits#10
  to:myprintf::@25
myprintf::@23: scope:[myprintf]  from myprintf::@22
  [131] *((const byte[$64]) strTemp#0 + (byte) myprintf::bLen#13) ← *((const byte[6]) myprintf::buf6#0 + (byte) myprintf::digit#3)
  [132] (byte) myprintf::bLen#5 ← ++ (byte) myprintf::bLen#13
  [133] (byte) myprintf::digit#2 ← ++ (byte) myprintf::digit#3
  to:myprintf::@22
myprintf::@19: scope:[myprintf]  from myprintf::@18
  [134] if((byte) myprintf::bLeadZero#11==(byte) 0) goto myprintf::@20
  to:myprintf::@21
myprintf::@20: scope:[myprintf]  from myprintf::@19
  [135] phi()
  to:myprintf::@21
myprintf::@21: scope:[myprintf]  from myprintf::@19 myprintf::@20
  [136] (byte~) myprintf::$43 ← phi( myprintf::@20/(byte) ' ' myprintf::@19/(byte) '0' )
  [137] *((const byte[$64]) strTemp#0 + (byte) myprintf::bLen#12) ← (byte~) myprintf::$43
  [138] (byte) myprintf::bLen#4 ← ++ (byte) myprintf::bLen#12
  [139] (byte) myprintf::bDigits#2 ← -- (byte) myprintf::bDigits#12
  to:myprintf::@18
myprintf::@15: scope:[myprintf]  from myprintf::@14
  [140] (byte) myprintf::b#5 ← ++ (byte) myprintf::b#17
  to:myprintf::@14
myprintf::@8: scope:[myprintf]  from myprintf::@7
  [141] (byte~) myprintf::$50 ← (byte)(word) myprintf::w#10
  [142] *((const byte[$64]) strTemp#0 + (byte) myprintf::bLen#10) ← (byte~) myprintf::$50
  [143] (byte) myprintf::bLen#1 ← ++ (byte) myprintf::bLen#10
  to:myprintf::@27
myprintf::@28: scope:[myprintf]  from myprintf::@43
  [144] (byte) myprintf::bDigits#1 ← (byte) myprintf::b#1 - (byte) '0'
  to:myprintf::@32
myprintf::@4: scope:[myprintf]  from myprintf::@2
  [145] if((byte) myprintf::b#1!=(byte) '%') goto myprintf::@33
  to:myprintf::@39
myprintf::@39: scope:[myprintf]  from myprintf::@4
  [146] if((byte) myprintf::bArg#10==(byte) 0) goto myprintf::@34
  to:myprintf::@40
myprintf::@40: scope:[myprintf]  from myprintf::@39
  [147] if((byte) myprintf::bArg#10==(byte) 1) goto myprintf::@35
  to:myprintf::@41
myprintf::@41: scope:[myprintf]  from myprintf::@40
  [148] (word~) myprintf::w#55 ← (word) myprintf::w3#8
  to:myprintf::@36
myprintf::@36: scope:[myprintf]  from myprintf::@34 myprintf::@35 myprintf::@41
  [149] (word) myprintf::w#22 ← phi( myprintf::@34/(word~) myprintf::w#53 myprintf::@35/(word~) myprintf::w#54 myprintf::@41/(word~) myprintf::w#55 )
  [150] (byte) myprintf::bArg#1 ← ++ (byte) myprintf::bArg#10
  to:myprintf::@32
myprintf::@35: scope:[myprintf]  from myprintf::@40
  [151] (word~) myprintf::w#54 ← (word) myprintf::w2#8
  to:myprintf::@36
myprintf::@34: scope:[myprintf]  from myprintf::@39
  [152] (word~) myprintf::w#53 ← (word) myprintf::w1#7
  to:myprintf::@36
myprintf::@33: scope:[myprintf]  from myprintf::@4
  [153] if((byte) myprintf::b#1<(byte) $41) goto myprintf::@37
  to:myprintf::@47
myprintf::@47: scope:[myprintf]  from myprintf::@33
  [154] if((byte) myprintf::b#1>=(byte) $5a+(byte) 1) goto myprintf::@37
  to:myprintf::@42
myprintf::@42: scope:[myprintf]  from myprintf::@47
  [155] (byte) myprintf::b#6 ← (byte) myprintf::b#1 + (byte) $20
  to:myprintf::@37
myprintf::@37: scope:[myprintf]  from myprintf::@33 myprintf::@42 myprintf::@47
  [156] (byte) myprintf::b#25 ← phi( myprintf::@33/(byte) myprintf::b#1 myprintf::@42/(byte) myprintf::b#6 )
  [157] *((const byte[$64]) strTemp#0 + (byte) myprintf::bLen#10) ← (byte) myprintf::b#25
  [158] (byte) myprintf::bLen#7 ← ++ (byte) myprintf::bLen#10
  to:myprintf::@32
utoa: scope:[utoa]  from myprintf::@9
  [159] phi()
  to:utoa::@13
utoa::@13: scope:[utoa]  from utoa
  [160] if((word) utoa::value#4>=(word) $2710) goto utoa::@5
  to:utoa::@1
utoa::@1: scope:[utoa]  from utoa::@13 utoa::@9
  [161] (byte*) utoa::dst#16 ← phi( utoa::@13/(const byte[6]) myprintf::buf6#0 utoa::@9/++(const byte[6]) myprintf::buf6#0 )
  [161] (word) utoa::value#6 ← phi( utoa::@13/(word) utoa::value#4 utoa::@9/(word) utoa::value#0 )
  [161] (byte) utoa::bStarted#5 ← phi( utoa::@13/(byte) 0 utoa::@9/(byte) 1 )
  [162] if((byte) utoa::bStarted#5==(byte) 1) goto utoa::@6
  to:utoa::@14
utoa::@14: scope:[utoa]  from utoa::@1
  [163] if((word) utoa::value#6>=(word) $3e8) goto utoa::@6
  to:utoa::@2
utoa::@2: scope:[utoa]  from utoa::@10 utoa::@14
  [164] (byte*) utoa::dst#10 ← phi( utoa::@14/(byte*) utoa::dst#16 utoa::@10/(byte*) utoa::dst#1 )
  [164] (word) utoa::value#11 ← phi( utoa::@14/(word) utoa::value#6 utoa::@10/(word) utoa::value#1 )
  [164] (byte) utoa::bStarted#6 ← phi( utoa::@14/(byte) utoa::bStarted#5 utoa::@10/(byte) 1 )
  [165] if((byte) utoa::bStarted#6==(byte) 1) goto utoa::@7
  to:utoa::@15
utoa::@15: scope:[utoa]  from utoa::@2
  [166] if((word) utoa::value#11>=(byte) $64) goto utoa::@7
  to:utoa::@3
utoa::@3: scope:[utoa]  from utoa::@11 utoa::@15
  [167] (byte*) utoa::dst#13 ← phi( utoa::@11/(byte*) utoa::dst#2 utoa::@15/(byte*) utoa::dst#10 )
  [167] (word) utoa::value#10 ← phi( utoa::@11/(word) utoa::value#2 utoa::@15/(word) utoa::value#11 )
  [167] (byte) utoa::bStarted#7 ← phi( utoa::@11/(byte) 1 utoa::@15/(byte) utoa::bStarted#6 )
  [168] if((byte) utoa::bStarted#7==(byte) 1) goto utoa::@8
  to:utoa::@16
utoa::@16: scope:[utoa]  from utoa::@3
  [169] if((word) utoa::value#10>=(byte) $a) goto utoa::@8
  to:utoa::@4
utoa::@4: scope:[utoa]  from utoa::@12 utoa::@16
  [170] (byte*) utoa::dst#12 ← phi( utoa::@12/(byte*) utoa::dst#4 utoa::@16/(byte*) utoa::dst#13 )
  [170] (word) utoa::value#12 ← phi( utoa::@12/(word) utoa::value#3 utoa::@16/(word) utoa::value#10 )
  [171] (byte~) utoa::$16 ← (byte)(word) utoa::value#12
  [172] (byte~) utoa::$17 ← (byte) '0' + (byte~) utoa::$16
  [173] *((byte*) utoa::dst#12) ← (byte~) utoa::$17
  [174] (byte*) utoa::dst#3 ← ++ (byte*) utoa::dst#12
  [175] *((byte*) utoa::dst#3) ← (byte) 0
  to:utoa::@return
utoa::@return: scope:[utoa]  from utoa::@4
  [176] return 
  to:@return
utoa::@8: scope:[utoa]  from utoa::@16 utoa::@3
  [177] (byte*) append::dst#3 ← (byte*) utoa::dst#13
  [178] (word) append::value#4 ← (word) utoa::value#10
  [179] call append 
  [180] (word) append::return#10 ← (word) append::value#5
  to:utoa::@12
utoa::@12: scope:[utoa]  from utoa::@8
  [181] (word) utoa::value#3 ← (word) append::return#10
  [182] (byte*) utoa::dst#4 ← ++ (byte*) utoa::dst#13
  to:utoa::@4
utoa::@7: scope:[utoa]  from utoa::@15 utoa::@2
  [183] (byte*) append::dst#2 ← (byte*) utoa::dst#10
  [184] (word) append::value#3 ← (word) utoa::value#11
  [185] call append 
  [186] (word) append::return#4 ← (word) append::value#5
  to:utoa::@11
utoa::@11: scope:[utoa]  from utoa::@7
  [187] (word) utoa::value#2 ← (word) append::return#4
  [188] (byte*) utoa::dst#2 ← ++ (byte*) utoa::dst#10
  to:utoa::@3
utoa::@6: scope:[utoa]  from utoa::@1 utoa::@14
  [189] (byte*) append::dst#1 ← (byte*) utoa::dst#16
  [190] (word) append::value#2 ← (word) utoa::value#6
  [191] call append 
  [192] (word) append::return#3 ← (word) append::value#5
  to:utoa::@10
utoa::@10: scope:[utoa]  from utoa::@6
  [193] (word) utoa::value#1 ← (word) append::return#3
  [194] (byte*) utoa::dst#1 ← ++ (byte*) utoa::dst#16
  to:utoa::@2
utoa::@5: scope:[utoa]  from utoa::@13
  [195] (word) append::value#1 ← (word) utoa::value#4
  [196] call append 
  [197] (word) append::return#2 ← (word) append::value#5
  to:utoa::@9
utoa::@9: scope:[utoa]  from utoa::@5
  [198] (word) utoa::value#0 ← (word) append::return#2
  to:utoa::@1
append: scope:[append]  from utoa::@5 utoa::@6 utoa::@7 utoa::@8
  [199] (word) append::sub#6 ← phi( utoa::@5/(word) $2710 utoa::@6/(word) $3e8 utoa::@7/(byte) $64 utoa::@8/(byte) $a )
  [199] (word) append::value#8 ← phi( utoa::@5/(word) append::value#1 utoa::@6/(word) append::value#2 utoa::@7/(word) append::value#3 utoa::@8/(word) append::value#4 )
  [199] (byte*) append::dst#4 ← phi( utoa::@5/(const byte[6]) myprintf::buf6#0 utoa::@6/(byte*) append::dst#1 utoa::@7/(byte*) append::dst#2 utoa::@8/(byte*) append::dst#3 )
  [200] *((byte*) append::dst#4) ← (byte) '0'
  to:append::@1
append::@1: scope:[append]  from append append::@2
  [201] (word) append::value#5 ← phi( append/(word) append::value#8 append::@2/(word) append::value#0 )
  [202] if((word) append::value#5>=(word) append::sub#6) goto append::@2
  to:append::@return
append::@return: scope:[append]  from append::@1
  [203] return 
  to:@return
append::@2: scope:[append]  from append::@1
  [204] *((byte*) append::dst#4) ← ++ *((byte*) append::dst#4)
  [205] (word) append::value#0 ← (word) append::value#5 - (word) append::sub#6
  to:append::@1
div10: scope:[div10]  from main::@10
  [206] (word~) div10::$0 ← (word) div10::val#4 >> (byte) 1
  [207] (word) div10::val#0 ← (word~) div10::$0 + (byte) 1
  [208] (word~) div10::$2 ← (word) div10::val#0 << (byte) 1
  [209] (word) div10::val#1 ← (word) div10::val#0 + (word~) div10::$2
  [210] (word~) div10::$3 ← (word) div10::val#1 >> (byte) 4
  [211] (word) div10::val#2 ← (word) div10::val#1 + (word~) div10::$3
  [212] (word~) div10::$4 ← (word) div10::val#2 >> (byte) 8
  [213] (word) div10::val#3 ← (word) div10::val#2 + (word~) div10::$4
  [214] (word) div10::return#0 ← (word) div10::val#3 >> (byte) 4
  to:div10::@return
div10::@return: scope:[div10]  from div10
  [215] return 
  to:@return
