

 local analysis of programDword_data_flash
   scanning: return ret_1(D);
Function is locally const.


 local analysis of string_to_int
   scanning: _1 = buf_17(D) + n_14;
  scanning: _2 = *_1;
    Indirect ref read is not const
  scanning: _3 = (int) _2;
  scanning: switch (_2) <default: <L17> [33.33%], case 48 ... 57: <L1> [33.33%], case 65 ... 70: <L11> [33.33%]>
  scanning: <L1>:
  scanning: _15 = _2 & 15;
  scanning: k_20 = (uint32_t) _15;
  scanning: p_21 = p_13 + 1;
  scanning: <L11>:
  scanning: _5 = _3 + -55;
  scanning: k_18 = (uint32_t) _5;
  scanning: p_19 = p_13 + 1;
  scanning: <L17>:
  scanning: if (j_10 != 0)
  scanning: if (p_13 != 0)
  scanning: if (i_7 != 8)
  scanning: _6 = j_10 << 4;
  scanning: j_22 = _6 + k_11;
  scanning: n_23 = n_14 + 1;
  scanning: i_24 = i_7 + 1;
  scanning: if (i_8 <= 7)
  scanning: return j_4;
;; 2 loops found
;;
;; Loop 0
;;  header 0, latch 1
;;  depth 0, outer -1
;;  nodes: 0 1 2 3 4 5 6 7 8 9 10 11 12 13
;;
;; Loop 1
;;  header 12, latch 11
;;  depth 1, outer 0
;;  nodes: 12 11 9 10 4 5 8 7 6 3
;; 2 succs { 12 }
;; 3 succs { 6 4 5 }
;; 4 succs { 9 }
;; 5 succs { 9 }
;; 6 succs { 8 7 }
;; 7 succs { 8 9 }
;; 8 succs { 9 }
;; 9 succs { 10 11 }
;; 10 succs { 11 }
;; 11 succs { 12 }
;; 12 succs { 3 13 }
;; 13 succs { 1 }
Function is locally pure.


 local analysis of put_charp
   scanning: i_4 = a_3(D) >> 4;
  scanning: _1 = D2C (i_4);
  scanning: OutDev0 (_1);
  scanning: i_7 = a_3(D) & 15;
  scanning: _2 = D2C (i_7);
  scanning: OutDev0 (_2);
  scanning: OutDev0 (44);
  scanning: return;
Function is locally const.


 local analysis of put_cr
   scanning: OutDev0 (13);
  scanning: OutDev0 (10);
  scanning: return;
Function is locally const.


 local analysis of monprintf
   scanning: __builtin_va_start (&argptr, 0);
  scanning: vsprintf (&str, msg_3(D), argptr);
  scanning: __builtin_va_end (&argptr);
  scanning: str[253] = 0;
  scanning: str[254] = 0;
  scanning: OutStr (&str);
  scanning: return;
Function is locally const.
Function can locally free.


 local analysis of OutStr
   scanning: text_6 = text_2 + 1;
  scanning: OutDev0 (_1);
  scanning: _1 = *text_2;
    Indirect ref read is not const
  scanning: if (_1 != 0)
  scanning: return;
;; 2 loops found
;;
;; Loop 0
;;  header 0, latch 1
;;  depth 0, outer -1
;;  nodes: 0 1 2 3 4 5
;;
;; Loop 1
;;  header 4, latch 3
;;  depth 1, outer 0
;;  nodes: 4 3
;; 2 succs { 4 }
;; 3 succs { 4 }
;; 4 succs { 3 5 }
;; 5 succs { 1 }
    cannot prove finiteness of loop 1
Function is locally looping.
Function is locally pure.


 local analysis of OutDev0
   scanning: Lpuart_Uart_Ip_SyncSend (0, &c, 1);
  scanning: return;
Function is locally const.


 local analysis of D2C
   scanning: if (c_2(D) <= 9)
  scanning: _4 = c_2(D) + 48;
  scanning: _3 = c_2(D) + 55;
  scanning: return _1;
Function is locally const.


 local analysis of delayN
   scanning: return;
Function is locally const.
callgraph:

__builtin_va_end/40 (__builtin_va_end) @073b51c0
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: monprintf/32 (1073741824 (estimated locally),1.00 per call) 
  Calls: 
vsprintf/39 (vsprintf) @073b50e0
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: monprintf/32 (1073741824 (estimated locally),1.00 per call) 
  Calls: 
__builtin_va_start/38 (__builtin_va_start) @073b5000
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: monprintf/32 (1073741824 (estimated locally),1.00 per call) 
  Calls: 
Lpuart_Uart_Ip_SyncSend/37 (Lpuart_Uart_Ip_SyncSend) @06c8ad20
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: OutDev0/30 (1073741824 (estimated locally),1.00 per call) 
  Calls: 
programDword_data_flash/36 (programDword_data_flash) @06c8a700
  Type: function definition analyzed
  Visibility: externally_visible public
  Aux: @06ce96a8
  References: 
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: 
string_to_int/35 (string_to_int) @06c8a460
  Type: function definition analyzed
  Visibility: externally_visible public
  Aux: @06ce95a8
  References: 
  Referring: 
  Availability: available
  Function flags: count:118207164 (estimated locally) body optimize_size
  Called by: 
  Calls: 
put_charp/34 (put_charp) @06c8a1c0
  Type: function definition analyzed
  Visibility: externally_visible public
  Aux: @06ce9548
  References: 
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: OutDev0/30 (1073741824 (estimated locally),1.00 per call) OutDev0/30 (1073741824 (estimated locally),1.00 per call) D2C/29 (1073741824 (estimated locally),1.00 per call) OutDev0/30 (1073741824 (estimated locally),1.00 per call) D2C/29 (1073741824 (estimated locally),1.00 per call) 
put_cr/33 (put_cr) @06c86ee0
  Type: function definition analyzed
  Visibility: externally_visible public
  Aux: @06ce9628
  References: 
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: OutDev0/30 (1073741824 (estimated locally),1.00 per call) OutDev0/30 (1073741824 (estimated locally),1.00 per call) 
monprintf/32 (monprintf) @06c86700
  Type: function definition analyzed
  Visibility: externally_visible public
  Aux: @06ce9668
  References: 
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: OutStr/31 (1073741824 (estimated locally),1.00 per call) __builtin_va_end/40 (1073741824 (estimated locally),1.00 per call) vsprintf/39 (1073741824 (estimated locally),1.00 per call) __builtin_va_start/38 (1073741824 (estimated locally),1.00 per call) 
OutStr/31 (OutStr) @06c86e00
  Type: function definition analyzed
  Visibility: externally_visible public
  Aux: @06ce9688
  References: 
  Referring: 
  Availability: available
  Function flags: count:118111600 (estimated locally) body optimize_size
  Called by: monprintf/32 (1073741824 (estimated locally),1.00 per call) 
  Calls: OutDev0/30 (955630223 (estimated locally),8.09 per call) 
OutDev0/30 (OutDev0) @06c86b60
  Type: function definition analyzed
  Visibility: externally_visible public
  Aux: @06ce9608
  References: 
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: put_charp/34 (1073741824 (estimated locally),1.00 per call) put_charp/34 (1073741824 (estimated locally),1.00 per call) put_charp/34 (1073741824 (estimated locally),1.00 per call) put_cr/33 (1073741824 (estimated locally),1.00 per call) put_cr/33 (1073741824 (estimated locally),1.00 per call) OutStr/31 (955630223 (estimated locally),8.09 per call) 
  Calls: Lpuart_Uart_Ip_SyncSend/37 (1073741824 (estimated locally),1.00 per call) 
D2C/29 (D2C) @06c868c0
  Type: function definition analyzed
  Visibility: externally_visible public
  Aux: @06ce9448
  References: 
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: put_charp/34 (1073741824 (estimated locally),1.00 per call) put_charp/34 (1073741824 (estimated locally),1.00 per call) 
  Calls: 
delayN/28 (delayN) @06c86620
  Type: function definition analyzed
  Visibility: externally_visible public
  Aux: @06ce96c8
  References: 
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: 


 ordered call graph: reduced for nothrow
programDword_data_flash/36 (programDword_data_flash) @06c8a700
  Type: function definition analyzed
  Visibility: externally_visible public
  Aux: @06ce96a8
  References: 
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: 
string_to_int/35 (string_to_int) @06c8a460
  Type: function definition analyzed
  Visibility: externally_visible public
  Aux: @06ce95a8
  References: 
  Referring: 
  Availability: available
  Function flags: count:118207164 (estimated locally) body optimize_size
  Called by: 
  Calls: 
put_charp/34 (put_charp) @06c8a1c0
  Type: function definition analyzed
  Visibility: externally_visible public
  Aux: @06ce9548
  References: 
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: OutDev0/30 (1073741824 (estimated locally),1.00 per call) OutDev0/30 (1073741824 (estimated locally),1.00 per call) D2C/29 (1073741824 (estimated locally),1.00 per call) OutDev0/30 (1073741824 (estimated locally),1.00 per call) D2C/29 (1073741824 (estimated locally),1.00 per call) 
put_cr/33 (put_cr) @06c86ee0
  Type: function definition analyzed
  Visibility: externally_visible public
  Aux: @06ce9628
  References: 
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: OutDev0/30 (1073741824 (estimated locally),1.00 per call) OutDev0/30 (1073741824 (estimated locally),1.00 per call) 
monprintf/32 (monprintf) @06c86700
  Type: function definition analyzed
  Visibility: externally_visible public
  Aux: @06ce9668
  References: 
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: OutStr/31 (1073741824 (estimated locally),1.00 per call) __builtin_va_end/40 (1073741824 (estimated locally),1.00 per call) vsprintf/39 (1073741824 (estimated locally),1.00 per call) __builtin_va_start/38 (1073741824 (estimated locally),1.00 per call) 
OutStr/31 (OutStr) @06c86e00
  Type: function definition analyzed
  Visibility: externally_visible public
  Aux: @06ce9688
  References: 
  Referring: 
  Availability: available
  Function flags: count:118111600 (estimated locally) body optimize_size
  Called by: monprintf/32 (1073741824 (estimated locally),1.00 per call) 
  Calls: OutDev0/30 (955630223 (estimated locally),8.09 per call) 
OutDev0/30 (OutDev0) @06c86b60
  Type: function definition analyzed
  Visibility: externally_visible public
  Aux: @06ce9608
  References: 
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: put_charp/34 (1073741824 (estimated locally),1.00 per call) put_charp/34 (1073741824 (estimated locally),1.00 per call) put_charp/34 (1073741824 (estimated locally),1.00 per call) put_cr/33 (1073741824 (estimated locally),1.00 per call) put_cr/33 (1073741824 (estimated locally),1.00 per call) OutStr/31 (955630223 (estimated locally),8.09 per call) 
  Calls: Lpuart_Uart_Ip_SyncSend/37 (1073741824 (estimated locally),1.00 per call) 
D2C/29 (D2C) @06c868c0
  Type: function definition analyzed
  Visibility: externally_visible public
  Aux: @06ce9448
  References: 
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: put_charp/34 (1073741824 (estimated locally),1.00 per call) put_charp/34 (1073741824 (estimated locally),1.00 per call) 
  Calls: 
delayN/28 (delayN) @06c86620
  Type: function definition analyzed
  Visibility: externally_visible public
  Aux: @06ce96c8
  References: 
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: 



MALLOC LATTICE Initial:
programDword_data_flash: malloc_bottom
string_to_int: malloc_bottom
put_charp: malloc_bottom
put_cr: malloc_bottom
monprintf: malloc_bottom
OutStr: malloc_bottom
OutDev0: malloc_bottom
D2C: malloc_bottom
delayN: malloc_bottom


MALLOC LATTICE after propagation:
programDword_data_flash: malloc_bottom
string_to_int: malloc_bottom
put_charp: malloc_bottom
put_cr: malloc_bottom
monprintf: malloc_bottom
OutStr: malloc_bottom
OutDev0: malloc_bottom
D2C: malloc_bottom
delayN: malloc_bottom
callgraph:

__builtin_va_end/40 (__builtin_va_end) @073b51c0
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: monprintf/32 (1073741824 (estimated locally),1.00 per call) 
  Calls: 
vsprintf/39 (vsprintf) @073b50e0
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: monprintf/32 (1073741824 (estimated locally),1.00 per call) 
  Calls: 
__builtin_va_start/38 (__builtin_va_start) @073b5000
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: monprintf/32 (1073741824 (estimated locally),1.00 per call) 
  Calls: 
Lpuart_Uart_Ip_SyncSend/37 (Lpuart_Uart_Ip_SyncSend) @06c8ad20
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: OutDev0/30 (1073741824 (estimated locally),1.00 per call) 
  Calls: 
programDword_data_flash/36 (programDword_data_flash) @06c8a700
  Type: function definition analyzed
  Visibility: externally_visible public
  Aux: @06ce9588
  References: 
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: 
string_to_int/35 (string_to_int) @06c8a460
  Type: function definition analyzed
  Visibility: externally_visible public
  Aux: @06ce95a8
  References: 
  Referring: 
  Availability: available
  Function flags: count:118207164 (estimated locally) body optimize_size
  Called by: 
  Calls: 
put_charp/34 (put_charp) @06c8a1c0
  Type: function definition analyzed
  Visibility: externally_visible public
  Aux: @06ce9728
  References: 
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: OutDev0/30 (1073741824 (estimated locally),1.00 per call) OutDev0/30 (1073741824 (estimated locally),1.00 per call) D2C/29 (1073741824 (estimated locally),1.00 per call) OutDev0/30 (1073741824 (estimated locally),1.00 per call) D2C/29 (1073741824 (estimated locally),1.00 per call) 
put_cr/33 (put_cr) @06c86ee0
  Type: function definition analyzed
  Visibility: externally_visible public
  Aux: @06ce9668
  References: 
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: OutDev0/30 (1073741824 (estimated locally),1.00 per call) OutDev0/30 (1073741824 (estimated locally),1.00 per call) 
monprintf/32 (monprintf) @06c86700
  Type: function definition analyzed
  Visibility: externally_visible public
  Aux: @06ce95c8
  References: 
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: OutStr/31 (1073741824 (estimated locally),1.00 per call) __builtin_va_end/40 (1073741824 (estimated locally),1.00 per call) vsprintf/39 (1073741824 (estimated locally),1.00 per call) __builtin_va_start/38 (1073741824 (estimated locally),1.00 per call) 
OutStr/31 (OutStr) @06c86e00
  Type: function definition analyzed
  Visibility: externally_visible public
  Aux: @06ce9688
  References: 
  Referring: 
  Availability: available
  Function flags: count:118111600 (estimated locally) body optimize_size
  Called by: monprintf/32 (1073741824 (estimated locally),1.00 per call) 
  Calls: OutDev0/30 (955630223 (estimated locally),8.09 per call) 
OutDev0/30 (OutDev0) @06c86b60
  Type: function definition analyzed
  Visibility: externally_visible public
  Aux: @06ce9768
  References: 
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: put_charp/34 (1073741824 (estimated locally),1.00 per call) put_charp/34 (1073741824 (estimated locally),1.00 per call) put_charp/34 (1073741824 (estimated locally),1.00 per call) put_cr/33 (1073741824 (estimated locally),1.00 per call) put_cr/33 (1073741824 (estimated locally),1.00 per call) OutStr/31 (955630223 (estimated locally),8.09 per call) 
  Calls: Lpuart_Uart_Ip_SyncSend/37 (1073741824 (estimated locally),1.00 per call) 
D2C/29 (D2C) @06c868c0
  Type: function definition analyzed
  Visibility: externally_visible public
  Aux: @06ce96a8
  References: 
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: put_charp/34 (1073741824 (estimated locally),1.00 per call) put_charp/34 (1073741824 (estimated locally),1.00 per call) 
  Calls: 
delayN/28 (delayN) @06c86620
  Type: function definition analyzed
  Visibility: externally_visible public
  Aux: @06ce9608
  References: 
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: 


 ordered call graph: reduced
programDword_data_flash/36 (programDword_data_flash) @06c8a700
  Type: function definition analyzed
  Visibility: externally_visible public
  Aux: @06ce9588
  References: 
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: 
string_to_int/35 (string_to_int) @06c8a460
  Type: function definition analyzed
  Visibility: externally_visible public
  Aux: @06ce95a8
  References: 
  Referring: 
  Availability: available
  Function flags: count:118207164 (estimated locally) body optimize_size
  Called by: 
  Calls: 
put_charp/34 (put_charp) @06c8a1c0
  Type: function definition analyzed
  Visibility: externally_visible public
  Aux: @06ce9728
  References: 
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: OutDev0/30 (1073741824 (estimated locally),1.00 per call) OutDev0/30 (1073741824 (estimated locally),1.00 per call) D2C/29 (1073741824 (estimated locally),1.00 per call) OutDev0/30 (1073741824 (estimated locally),1.00 per call) D2C/29 (1073741824 (estimated locally),1.00 per call) 
put_cr/33 (put_cr) @06c86ee0
  Type: function definition analyzed
  Visibility: externally_visible public
  Aux: @06ce9668
  References: 
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: OutDev0/30 (1073741824 (estimated locally),1.00 per call) OutDev0/30 (1073741824 (estimated locally),1.00 per call) 
monprintf/32 (monprintf) @06c86700
  Type: function definition analyzed
  Visibility: externally_visible public
  Aux: @06ce95c8
  References: 
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: OutStr/31 (1073741824 (estimated locally),1.00 per call) __builtin_va_end/40 (1073741824 (estimated locally),1.00 per call) vsprintf/39 (1073741824 (estimated locally),1.00 per call) __builtin_va_start/38 (1073741824 (estimated locally),1.00 per call) 
OutStr/31 (OutStr) @06c86e00
  Type: function definition analyzed
  Visibility: externally_visible public
  Aux: @06ce9688
  References: 
  Referring: 
  Availability: available
  Function flags: count:118111600 (estimated locally) body optimize_size
  Called by: monprintf/32 (1073741824 (estimated locally),1.00 per call) 
  Calls: OutDev0/30 (955630223 (estimated locally),8.09 per call) 
OutDev0/30 (OutDev0) @06c86b60
  Type: function definition analyzed
  Visibility: externally_visible public
  Aux: @06ce9768
  References: 
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: put_charp/34 (1073741824 (estimated locally),1.00 per call) put_charp/34 (1073741824 (estimated locally),1.00 per call) put_charp/34 (1073741824 (estimated locally),1.00 per call) put_cr/33 (1073741824 (estimated locally),1.00 per call) put_cr/33 (1073741824 (estimated locally),1.00 per call) OutStr/31 (955630223 (estimated locally),8.09 per call) 
  Calls: Lpuart_Uart_Ip_SyncSend/37 (1073741824 (estimated locally),1.00 per call) 
D2C/29 (D2C) @06c868c0
  Type: function definition analyzed
  Visibility: externally_visible public
  Aux: @06ce96a8
  References: 
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: put_charp/34 (1073741824 (estimated locally),1.00 per call) put_charp/34 (1073741824 (estimated locally),1.00 per call) 
  Calls: 
delayN/28 (delayN) @06c86620
  Type: function definition analyzed
  Visibility: externally_visible public
  Aux: @06ce9608
  References: 
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: 

Function found not to call free: delayN
Function found not to call free: D2C
Function found not to call free: string_to_int
Function found not to call free: programDword_data_flash
programDword_data_flash (uint32_t address, uint32_t * data)
{
  uint16_t ret;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG size => 8
  # DEBUG BEGIN_STMT
  return ret_1(D);

}


string_to_int (uint8_t * buf)
{
  uint32_t n;
  uint32_t p;
  uint32_t k;
  uint32_t j;
  uint32_t i;
  uint8_t * _1;
  unsigned char _2;
  int _3;
  int _5;
  long unsigned int _6;
  unsigned char _15;

  <bb 2> [local count: 118207164]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG j => 0
  # DEBUG BEGIN_STMT
  # DEBUG p => 0
  # DEBUG BEGIN_STMT
  # DEBUG n => 0
  # DEBUG BEGIN_STMT
  # DEBUG i => 0
  goto <bb 12>; [100.00%]

  <bb 3> [local count: 955630225]:
  # DEBUG BEGIN_STMT
  # DEBUG k => 0
  # DEBUG BEGIN_STMT
  _1 = buf_17(D) + n_14;
  _2 = *_1;
  _3 = (int) _2;
  switch (_2) <default: <L17> [33.33%], case 48 ... 57: <L1> [33.33%], case 65 ... 70: <L11> [33.33%]>

  <bb 4> [local count: 318511554]:
<L1>:
  # DEBUG BEGIN_STMT
  _15 = _2 & 15;
  k_20 = (uint32_t) _15;
  # DEBUG k => k_20
  # DEBUG BEGIN_STMT
  p_21 = p_13 + 1;
  # DEBUG p => p_21
  # DEBUG BEGIN_STMT
  goto <bb 9>; [100.00%]

  <bb 5> [local count: 318511554]:
<L11>:
  # DEBUG BEGIN_STMT
  _5 = _3 + -55;
  k_18 = (uint32_t) _5;
  # DEBUG k => k_18
  # DEBUG BEGIN_STMT
  p_19 = p_13 + 1;
  # DEBUG p => p_19
  # DEBUG BEGIN_STMT
  goto <bb 9>; [100.00%]

  <bb 6> [local count: 318511554]:
<L17>:
  # DEBUG BEGIN_STMT
  if (j_10 != 0)
    goto <bb 8>; [50.00%]
  else
    goto <bb 7>; [50.00%]

  <bb 7> [local count: 159255777]:
  if (p_13 != 0)
    goto <bb 8>; [50.00%]
  else
    goto <bb 9>; [50.00%]

  <bb 8> [local count: 238883666]:
  # DEBUG BEGIN_STMT
  # DEBUG i => 8

  <bb 9> [local count: 955534663]:
  # i_7 = PHI <i_8(4), i_8(5), 8(8), i_8(7)>
  # k_11 = PHI <k_20(4), k_18(5), 0(8), 0(7)>
  # p_12 = PHI <p_21(4), p_19(5), p_13(8), p_13(7)>
  # DEBUG p => p_12
  # DEBUG k => k_11
  # DEBUG i => i_7
  # DEBUG BEGIN_STMT
  if (i_7 != 8)
    goto <bb 10>; [66.00%]
  else
    goto <bb 11>; [34.00%]

  <bb 10> [local count: 630652877]:
  # DEBUG BEGIN_STMT
  _6 = j_10 << 4;
  j_22 = _6 + k_11;
  # DEBUG j => j_22

  <bb 11> [local count: 955534663]:
  # j_9 = PHI <j_10(9), j_22(10)>
  # DEBUG j => j_9
  # DEBUG BEGIN_STMT
  n_23 = n_14 + 1;
  # DEBUG n => n_23
  # DEBUG BEGIN_STMT
  i_24 = i_7 + 1;
  # DEBUG i => i_24

  <bb 12> [local count: 1073741824]:
  # i_8 = PHI <0(2), i_24(11)>
  # j_10 = PHI <0(2), j_9(11)>
  # p_13 = PHI <0(2), p_12(11)>
  # n_14 = PHI <0(2), n_23(11)>
  # DEBUG n => n_14
  # DEBUG p => p_13
  # DEBUG j => j_10
  # DEBUG i => i_8
  # DEBUG BEGIN_STMT
  if (i_8 <= 7)
    goto <bb 3>; [89.00%]
  else
    goto <bb 13>; [11.00%]

  <bb 13> [local count: 118111601]:
  # j_4 = PHI <j_10(12)>
  # DEBUG BEGIN_STMT
  return j_4;

}


put_charp (unsigned char a)
{
  unsigned char i;
  unsigned char _1;
  unsigned char _2;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  i_4 = a_3(D) >> 4;
  # DEBUG i => i_4
  # DEBUG BEGIN_STMT
  # DEBUG i => i_4
  # DEBUG BEGIN_STMT
  _1 = D2C (i_4);
  OutDev0 (_1);
  # DEBUG BEGIN_STMT
  i_7 = a_3(D) & 15;
  # DEBUG i => i_7
  # DEBUG BEGIN_STMT
  _2 = D2C (i_7);
  OutDev0 (_2);
  # DEBUG BEGIN_STMT
  OutDev0 (44);
  return;

}


put_cr ()
{
  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  OutDev0 (13);
  # DEBUG BEGIN_STMT
  OutDev0 (10);
  return;

}


monprintf (char * msg)
{
  struct va_list argptr;
  char str[256];

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  __builtin_va_start (&argptr, 0);
  # DEBUG BEGIN_STMT
  vsprintf (&str, msg_3(D), argptr);
  # DEBUG BEGIN_STMT
  __builtin_va_end (&argptr);
  # DEBUG BEGIN_STMT
  str[253] = 0;
  # DEBUG BEGIN_STMT
  str[254] = 0;
  # DEBUG BEGIN_STMT
  OutStr (&str);
  str ={v} {CLOBBER};
  argptr ={v} {CLOBBER};
  return;

}


OutStr (const char * text)
{
  char _1;

  <bb 2> [local count: 118111600]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  goto <bb 4>; [100.00%]

  <bb 3> [local count: 955630223]:
  # DEBUG BEGIN_STMT
  text_6 = text_2 + 1;
  # DEBUG text => text_6
  OutDev0 (_1);

  <bb 4> [local count: 1073741824]:
  # text_2 = PHI <text_4(D)(2), text_6(3)>
  # DEBUG text => text_2
  # DEBUG BEGIN_STMT
  _1 = *text_2;
  if (_1 != 0)
    goto <bb 3>; [89.00%]
  else
    goto <bb 5>; [11.00%]

  <bb 5> [local count: 118111601]:
  return;

}


OutDev0 (char c)
{
  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  Lpuart_Uart_Ip_SyncSend (0, &c, 1);
  return;

}


D2C (uint8_t c)
{
  uint8_t _1;
  uint8_t _3;
  uint8_t _4;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  if (c_2(D) <= 9)
    goto <bb 3>; [34.00%]
  else
    goto <bb 4>; [66.00%]

  <bb 3> [local count: 365072220]:
  # DEBUG BEGIN_STMT
  _4 = c_2(D) + 48;
  goto <bb 5>; [100.00%]

  <bb 4> [local count: 708669605]:
  # DEBUG BEGIN_STMT
  _3 = c_2(D) + 55;

  <bb 5> [local count: 1073741824]:
  # _1 = PHI <_4(3), _3(4)>
  return _1;

}


delayN (uint32_t n)
{
  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG n => NULL
  # DEBUG BEGIN_STMT
  return;

}


