
Marking local functions:


Marking externally visible functions: goto_reset uds_logic_interrupt uds_first_frame uds_SID_FF_NULL uds_SID_FF_dataread uds_single_frame uds_data_receve_finish uds_SID_SecurityAccess seedToKey uds_SID_TransferData uds_SID_RequestTransferExit uds_SID_RequestDownload uds_SID_RoutineControl uds_SID_CommunicationControl uds_SID_WriteDataByIdentifier uds_SID_ReadDataByIdentifier uds_SID_DiagnosticSessionControl uds_SID_StopDiagnosticSession uds_fail_check_did_length uds_single_frame_error_check uds_fail_check_no_extended uds_fail_massage uds_SID_ControlDTCSetting uds_interrupt_sid_dtc uds_logic_event uds_send_data_set uds_tx_buf_clear set_dtc_1st_frame set_wait_flow_control set_flow_control uds_table_receve_finish uds_init uds_wait clear_uds_tx_buf send_uds_tx uds_can_TxData uds_timer_interrupt uds_2ms uds_10ms avoid_empty_block


Marking externally visible variables: uds


Reclaiming functions:
Reclaiming variables:
Clearing address taken flags:
Symbol table:

WATCHDOG_HAL_SystemRest/61 (WATCHDOG_HAL_SystemRest) @06e6f2a0
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: goto_reset/43 
  Calls: 
dtc_found_and_clear/60 (dtc_found_and_clear) @06e6f700
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: uds_single_frame/38 
  Calls: 
table_did_maping_write/59 (table_did_maping_write) @06e51a80
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: uds_SID_WriteDataByIdentifier/29 
  Calls: 
table_did_maping/58 (table_did_maping) @06e51620
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: uds_SID_FF_dataread/39 uds_SID_ReadDataByIdentifier/28 
  Calls: 
is_dtc_exist/57 (is_dtc_exist) @06e178c0
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: uds_single_frame_error_check/24 
  Calls: 
dtc_count_set/56 (dtc_count_set) @06e17000
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: uds_interrupt_sid_dtc/20 
  Calls: 
EEP_ADDR_TABLE/55 (EEP_ADDR_TABLE) @06e33b88
  Type: variable
  Body removed by symtab_remove_unreachable_nodes
  Visibility: external public
  References: 
  Referring: uds_logic_event/19 (read)uds_logic_event/19 (read)uds_logic_event/19 (read)uds_logic_event/19 (read)uds_logic_event/19 (read)uds_SID_WriteDataByIdentifier/29 (read)uds_SID_WriteDataByIdentifier/29 (read)uds_SID_WriteDataByIdentifier/29 (read)uds_SID_WriteDataByIdentifier/29 (read)uds_SID_WriteDataByIdentifier/29 (read)uds_SID_FF_dataread/39 (read)uds_SID_FF_dataread/39 (read)uds_SID_FF_dataread/39 (read)uds_logic_interrupt/42 (read)uds_logic_interrupt/42 (read)
  Availability: not_available
  Varpool flags: read-only
AppVersion/54 (AppVersion) @06e33af8
  Type: variable
  Body removed by symtab_remove_unreachable_nodes
  Visibility: external public
  References: 
  Referring: uds_logic_event/19 (addr)
  Availability: not_available
  Varpool flags: read-only
table_read/53 (table_read) @06e17d20
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: uds_logic_event/19 
  Calls: 
monprintf/52 (monprintf) @06e17c40
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: goto_reset/43 goto_reset/43 goto_reset/43 uds_logic_interrupt/42 uds_SID_SecurityAccess/36 uds_SID_WriteDataByIdentifier/29 uds_logic_event/19 
  Calls: 
dtc_clear/51 (dtc_clear) @06e17b60
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: uds_logic_event/19 
  Calls: 
TABLE_DTC_SEND/50 (TABLE_DTC_SEND) @06de2bd0
  Type: variable
  Body removed by symtab_remove_unreachable_nodes
  Visibility: external public
  References: 
  Referring: set_dtc_1st_frame/16 (addr)set_dtc_1st_frame/16 (addr)uds_SID_FF_NULL/40 (addr)
  Availability: not_available
  Varpool flags:
dtc_send_table_set/49 (dtc_send_table_set) @06e17380
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: set_dtc_1st_frame/16 
  Calls: 
c_1ms.6562/48 (c_1ms) @06de23a8
  Type: variable definition analyzed
  Visibility: prevailing_def_ironly
  References: 
  Referring: uds_wait/11 (read)uds_wait/11 (write)uds_wait/11 (read)uds_wait/11 (write)
  Availability: available
  Varpool flags: initialized
OutStr/47 (OutStr) @06dd6e00
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: uds_logic_interrupt/42 uds_single_frame/38 uds_single_frame/38 uds_SID_SecurityAccess/36 uds_SID_SecurityAccess/36 uds_SID_SecurityAccess/36 uds_wait/11 
  Calls: 
can_send_txring/46 (can_send_txring) @06dd6b60
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: send_uds_tx/9 
  Calls: 
table_write/45 (table_write) @06dd6700
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: uds_logic_event/19 uds_10ms/5 
  Calls: 
dtc_control/44 (dtc_control) @06dd6620
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: uds_10ms/5 
  Calls: 
goto_reset/43 (goto_reset) @06d3fd20
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: body optimize_size
  Called by: uds_wait/11 uds_wait/11 
  Calls: monprintf/52 WATCHDOG_HAL_SystemRest/61 monprintf/52 monprintf/52 
uds_logic_interrupt/42 (uds_logic_interrupt) @06d3f7e0
  Type: function definition analyzed
  Visibility: externally_visible public
  References: uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (read)uds/3 (read)uds/3 (read)uds/3 (read)uds/3 (read)uds/3 (read)uds/3 (read)uds/3 (read)uds/3 (read)uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (read)uds/3 (read)uds/3 (read)uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (read)EEP_ADDR_TABLE/55 (read)uds/3 (write)uds/3 (read)uds/3 (read)EEP_ADDR_TABLE/55 (read)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)
  Referring: 
  Availability: available
  Function flags: body optimize_size
  Called by: 
  Calls: monprintf/52 uds_table_receve_finish/13 OutStr/47 uds_first_frame/41 uds_single_frame/38 
uds_first_frame/41 (uds_first_frame) @06d3f2a0
  Type: function definition analyzed
  Visibility: externally_visible public
  References: uds/3 (write)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (read)uds/3 (read)uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (write)
  Referring: 
  Availability: available
  Function flags: body optimize_size
  Called by: uds_logic_interrupt/42 
  Calls: uds_SID_FF_dataread/39 
uds_SID_FF_NULL/40 (uds_SID_FF_NULL) @06d3fee0
  Type: function definition analyzed
  Visibility: externally_visible public
  References: uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)TABLE_DTC_SEND/50 (addr)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)
  Referring: 
  Availability: available
  Function flags: body optimize_size
  Called by: 
  Calls: set_flow_control/14 
uds_SID_FF_dataread/39 (uds_SID_FF_dataread) @06d3fc40
  Type: function definition analyzed
  Visibility: externally_visible public
  References: uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (addr)uds/3 (write)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (addr)uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)EEP_ADDR_TABLE/55 (read)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (read)EEP_ADDR_TABLE/55 (read)uds/3 (write)uds/3 (read)EEP_ADDR_TABLE/55 (read)uds/3 (write)uds/3 (write)uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (read)
  Referring: 
  Availability: available
  Function flags: body optimize_size
  Called by: uds_first_frame/41 
  Calls: set_flow_control/14 table_did_maping/58 set_flow_control/14 
uds_single_frame/38 (uds_single_frame) @06d3f9a0
  Type: function definition analyzed
  Visibility: externally_visible public
  References: uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (read)uds/3 (read)uds/3 (read)uds/3 (read)uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (read)uds/3 (read)uds/3 (read)uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (read)uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (read)uds/3 (read)uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)
  Referring: 
  Availability: available
  Function flags: body optimize_size
  Called by: uds_logic_interrupt/42 
  Calls: avoid_empty_block/4 OutStr/47 OutStr/47 send_uds_tx/9 uds_SID_RoutineControl/31 uds_interrupt_sid_dtc/20 uds_SID_SecurityAccess/36 dtc_found_and_clear/60 uds_tx_buf_clear/17 uds_SID_CommunicationControl/30 uds_SID_WriteDataByIdentifier/29 uds_SID_ReadDataByIdentifier/28 uds_SID_ControlDTCSetting/21 uds_SID_StopDiagnosticSession/26 uds_SID_DiagnosticSessionControl/27 uds_single_frame_error_check/24 
uds_data_receve_finish/37 (uds_data_receve_finish) @06d3f700
  Type: function definition analyzed
  Visibility: externally_visible public
  References: uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)
  Referring: 
  Availability: available
  Function flags: body optimize_size
  Called by: 
  Calls: 
uds_SID_SecurityAccess/36 (uds_SID_SecurityAccess) @06d3f460
  Type: function definition analyzed
  Visibility: externally_visible public
  References: uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (read)uds/3 (read)uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (read)uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (read)uds/3 (read)uds/3 (read)uds/3 (read)uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (read)uds/3 (write)
  Referring: 
  Availability: available
  Function flags: body optimize_size
  Called by: uds_single_frame/38 
  Calls: OutStr/47 OutStr/47 OutStr/47 send_uds_tx/9 monprintf/52 seedToKey/35 seedToKey/35 
seedToKey/35 (seedToKey) @06d3f1c0
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: body optimize_size
  Called by: uds_SID_SecurityAccess/36 uds_SID_SecurityAccess/36 
  Calls: 
uds_SID_TransferData/34 (uds_SID_TransferData) @06d2fe00
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: body optimize_size
  Called by: 
  Calls: 
uds_SID_RequestTransferExit/33 (uds_SID_RequestTransferExit) @06d2f8c0
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: body optimize_size
  Called by: 
  Calls: 
uds_SID_RequestDownload/32 (uds_SID_RequestDownload) @06d2f0e0
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: body optimize_size
  Called by: 
  Calls: 
uds_SID_RoutineControl/31 (uds_SID_RoutineControl) @06d2fd20
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: body optimize_size
  Called by: uds_single_frame/38 
  Calls: 
uds_SID_CommunicationControl/30 (uds_SID_CommunicationControl) @06d2fa80
  Type: function definition analyzed
  Visibility: externally_visible public
  References: uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (read)uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (read)uds/3 (write)
  Referring: 
  Availability: available
  Function flags: body optimize_size
  Called by: uds_single_frame/38 
  Calls: 
uds_SID_WriteDataByIdentifier/29 (uds_SID_WriteDataByIdentifier) @06d2f7e0
  Type: function definition analyzed
  Visibility: externally_visible public
  References: uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (write)EEP_ADDR_TABLE/55 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (read)uds/3 (read)EEP_ADDR_TABLE/55 (read)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (read)uds/3 (read)uds/3 (read)EEP_ADDR_TABLE/55 (read)uds/3 (write)uds/3 (read)EEP_ADDR_TABLE/55 (read)uds/3 (write)uds/3 (write)uds/3 (read)uds/3 (read)uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (read)EEP_ADDR_TABLE/55 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)
  Referring: 
  Availability: available
  Function flags: body optimize_size
  Called by: uds_single_frame/38 
  Calls: uds_table_receve_finish/13 monprintf/52 table_did_maping_write/59 
uds_SID_ReadDataByIdentifier/28 (uds_SID_ReadDataByIdentifier) @06d2f540
  Type: function definition analyzed
  Visibility: externally_visible public
  References: uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (write)
  Referring: 
  Availability: available
  Function flags: body optimize_size
  Called by: uds_single_frame/38 
  Calls: table_did_maping/58 
uds_SID_DiagnosticSessionControl/27 (uds_SID_DiagnosticSessionControl) @06d2f2a0
  Type: function definition analyzed
  Visibility: externally_visible public
  References: uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)
  Referring: 
  Availability: available
  Function flags: body optimize_size
  Called by: uds_single_frame/38 
  Calls: 
uds_SID_StopDiagnosticSession/26 (uds_SID_StopDiagnosticSession) @06d2f000
  Type: function definition analyzed
  Visibility: externally_visible public
  References: uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)
  Referring: 
  Availability: available
  Function flags: body optimize_size
  Called by: uds_single_frame/38 
  Calls: 
uds_fail_check_did_length/25 (uds_fail_check_did_length) @06d18b60
  Type: function definition analyzed
  Visibility: externally_visible public
  References: uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (write)
  Referring: 
  Availability: available
  Function flags: body optimize_size
  Called by: 
  Calls: 
uds_single_frame_error_check/24 (uds_single_frame_error_check) @06d18620
  Type: function definition analyzed
  Visibility: externally_visible public
  References: uds/3 (write)uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (read)uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (read)uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (write)
  Referring: 
  Availability: available
  Function flags: body optimize_size
  Called by: uds_single_frame/38 
  Calls: is_dtc_exist/57 uds_fail_check_no_extended/23 uds_fail_check_no_extended/23 
uds_fail_check_no_extended/23 (uds_fail_check_no_extended) @06d18d20
  Type: function definition analyzed
  Visibility: externally_visible public
  References: uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (write)
  Referring: 
  Availability: available
  Function flags: body optimize_size
  Called by: uds_single_frame_error_check/24 uds_single_frame_error_check/24 
  Calls: 
uds_fail_massage/22 (uds_fail_massage) @06d18a80
  Type: function definition analyzed
  Visibility: externally_visible public
  References: uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)
  Referring: 
  Availability: available
  Function flags: body optimize_size
  Called by: 
  Calls: 
uds_SID_ControlDTCSetting/21 (uds_SID_ControlDTCSetting) @06d187e0
  Type: function definition analyzed
  Visibility: externally_visible public
  References: uds/3 (write)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (write)
  Referring: 
  Availability: available
  Function flags: body optimize_size
  Called by: uds_single_frame/38 
  Calls: uds_tx_buf_clear/17 
uds_interrupt_sid_dtc/20 (uds_interrupt_sid_dtc) @06d18540
  Type: function definition analyzed
  Visibility: externally_visible public
  References: uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)
  Referring: 
  Availability: available
  Function flags: body optimize_size
  Called by: uds_single_frame/38 
  Calls: dtc_count_set/56 uds_tx_buf_clear/17 
uds_logic_event/19 (uds_logic_event) @06d18000
  Type: function definition analyzed
  Visibility: externally_visible public
  References: uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (read)uds/3 (read)uds/3 (read)uds/3 (read)uds/3 (read)uds/3 (read)uds/3 (read)uds/3 (addr)uds/3 (read)uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (read)uds/3 (read)AppVersion/54 (addr)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (addr)uds/3 (read)uds/3 (read)EEP_ADDR_TABLE/55 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (read)EEP_ADDR_TABLE/55 (read)uds/3 (write)uds/3 (read)EEP_ADDR_TABLE/55 (read)uds/3 (write)uds/3 (write)uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (read)EEP_ADDR_TABLE/55 (read)uds/3 (write)uds/3 (read)EEP_ADDR_TABLE/55 (read)uds/3 (write)uds/3 (write)uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (read)uds/3 (read)uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (write)
  Referring: 
  Availability: available
  Function flags: body optimize_size
  Called by: uds_2ms/6 
  Calls: set_wait_flow_control/15 uds_send_data_set/18 table_read/53 table_write/45 monprintf/52 dtc_clear/51 
uds_send_data_set/18 (uds_send_data_set) @06c8eb60
  Type: function definition analyzed
  Visibility: externally_visible public
  References: uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)
  Referring: 
  Availability: available
  Function flags: body optimize_size
  Called by: uds_logic_event/19 
  Calls: set_wait_flow_control/15 
uds_tx_buf_clear/17 (uds_tx_buf_clear) @06c8e620
  Type: function definition analyzed
  Visibility: externally_visible public
  References: uds/3 (write)
  Referring: 
  Availability: available
  Function flags: body optimize_size
  Called by: uds_single_frame/38 uds_SID_ControlDTCSetting/21 uds_interrupt_sid_dtc/20 
  Calls: 
set_dtc_1st_frame/16 (set_dtc_1st_frame) @06c8e0e0
  Type: function definition analyzed
  Visibility: externally_visible public
  References: uds/3 (write)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)TABLE_DTC_SEND/50 (addr)uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)TABLE_DTC_SEND/50 (addr)uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)
  Referring: 
  Availability: available
  Function flags: body optimize_size
  Called by: uds_wait/11 
  Calls: dtc_send_table_set/49 
set_wait_flow_control/15 (set_wait_flow_control) @06c8ed20
  Type: function definition analyzed
  Visibility: externally_visible public
  References: uds/3 (write)uds/3 (write)
  Referring: 
  Availability: available
  Function flags: body optimize_size
  Called by: uds_logic_event/19 uds_send_data_set/18 
  Calls: 
set_flow_control/14 (set_flow_control) @06c8ea80
  Type: function definition analyzed
  Visibility: externally_visible public
  References: uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)
  Referring: 
  Availability: available
  Function flags: body optimize_size
  Called by: uds_SID_FF_NULL/40 uds_SID_FF_dataread/39 uds_SID_FF_dataread/39 
  Calls: 
uds_table_receve_finish/13 (uds_table_receve_finish) @06c8e7e0
  Type: function definition analyzed
  Visibility: externally_visible public
  References: uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)
  Referring: 
  Availability: available
  Function flags: body optimize_size
  Called by: uds_logic_interrupt/42 uds_SID_WriteDataByIdentifier/29 
  Calls: 
uds_init/12 (uds_init) @06c8e540
  Type: function definition analyzed
  Visibility: externally_visible public
  References: uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)
  Referring: 
  Availability: available
  Function flags: body optimize_size
  Called by: uds_wait/11 
  Calls: 
uds_wait/11 (uds_wait) @06c8e2a0
  Type: function definition analyzed
  Visibility: externally_visible public
  References: uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)c_1ms.6562/48 (read)c_1ms.6562/48 (write)c_1ms.6562/48 (read)c_1ms.6562/48 (write)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (read)uds/3 (read)
  Referring: 
  Availability: available
  Function flags: body optimize_size
  Called by: 
  Calls: goto_reset/43 goto_reset/43 uds_10ms/5 uds_2ms/6 send_uds_tx/9 set_dtc_1st_frame/16 OutStr/47 uds_init/12 
clear_uds_tx_buf/10 (clear_uds_tx_buf) @06c8e000
  Type: function definition analyzed
  Visibility: externally_visible public
  References: uds/3 (write)
  Referring: 
  Availability: available
  Function flags: body optimize_size
  Called by: 
  Calls: 
send_uds_tx/9 (send_uds_tx) @06c83b60
  Type: function definition analyzed
  Visibility: externally_visible public
  References: uds/3 (write)uds/3 (read)uds/3 (addr)uds/3 (write)
  Referring: 
  Availability: available
  Function flags: body optimize_size
  Called by: uds_single_frame/38 uds_SID_SecurityAccess/36 uds_wait/11 
  Calls: can_send_txring/46 
uds_can_TxData/8 (uds_can_TxData) @06c83620
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: body optimize_size
  Called by: 
  Calls: 
uds_timer_interrupt/7 (uds_timer_interrupt) @06c830e0
  Type: function definition analyzed
  Visibility: externally_visible public
  References: uds/3 (read)uds/3 (write)
  Referring: 
  Availability: available
  Function flags: body optimize_size
  Called by: 
  Calls: 
uds_2ms/6 (uds_2ms) @06c83d20
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: body optimize_size
  Called by: uds_wait/11 
  Calls: uds_logic_event/19 
uds_10ms/5 (uds_10ms) @06c83a80
  Type: function definition analyzed
  Visibility: externally_visible public
  References: uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (read)uds/3 (write)uds/3 (read)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)uds/3 (write)
  Referring: 
  Availability: available
  Function flags: body optimize_size
  Called by: uds_wait/11 
  Calls: table_write/45 dtc_control/44 
avoid_empty_block/4 (avoid_empty_block) @06c837e0
  Type: function definition analyzed
  Visibility: externally_visible public
  References: uds/3 (read)uds/3 (write)
  Referring: 
  Availability: available
  Function flags: body optimize_size
  Called by: uds_single_frame/38 
  Calls: 
uds/3 (uds) @06c39c18
  Type: variable definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: avoid_empty_block/4 (read)avoid_empty_block/4 (write)uds_10ms/5 (read)uds_10ms/5 (write)uds_10ms/5 (write)uds_10ms/5 (read)uds_10ms/5 (read)uds_10ms/5 (write)uds_10ms/5 (read)uds_10ms/5 (write)uds_10ms/5 (write)uds_10ms/5 (read)uds_10ms/5 (read)uds_10ms/5 (write)uds_10ms/5 (read)uds_10ms/5 (read)uds_10ms/5 (write)uds_10ms/5 (read)uds_10ms/5 (read)uds_10ms/5 (write)uds_10ms/5 (read)uds_10ms/5 (write)uds_10ms/5 (write)uds_10ms/5 (write)uds_10ms/5 (read)uds_10ms/5 (write)uds_10ms/5 (read)uds_10ms/5 (write)uds_10ms/5 (read)uds_10ms/5 (read)uds_10ms/5 (write)uds_10ms/5 (read)uds_10ms/5 (write)uds_10ms/5 (write)uds_10ms/5 (write)uds_10ms/5 (write)uds_10ms/5 (write)uds_timer_interrupt/7 (read)uds_timer_interrupt/7 (write)send_uds_tx/9 (write)send_uds_tx/9 (read)send_uds_tx/9 (addr)send_uds_tx/9 (write)clear_uds_tx_buf/10 (write)uds_wait/11 (read)uds_wait/11 (read)uds_wait/11 (write)uds_wait/11 (read)uds_wait/11 (write)uds_wait/11 (read)uds_wait/11 (write)uds_wait/11 (read)uds_wait/11 (write)uds_wait/11 (read)uds_wait/11 (write)uds_wait/11 (read)uds_wait/11 (write)uds_wait/11 (read)uds_wait/11 (write)uds_wait/11 (read)uds_wait/11 (write)uds_wait/11 (write)uds_wait/11 (read)uds_wait/11 (read)uds_init/12 (write)uds_init/12 (write)uds_init/12 (write)uds_init/12 (write)uds_init/12 (write)uds_init/12 (write)uds_init/12 (write)uds_init/12 (write)uds_init/12 (write)uds_init/12 (write)uds_init/12 (write)uds_init/12 (write)uds_init/12 (write)uds_init/12 (write)uds_init/12 (write)uds_init/12 (write)uds_init/12 (write)uds_init/12 (write)uds_init/12 (write)uds_init/12 (write)uds_init/12 (write)uds_init/12 (write)uds_init/12 (write)uds_init/12 (write)uds_init/12 (write)uds_init/12 (write)uds_init/12 (write)uds_init/12 (write)uds_init/12 (write)uds_init/12 (write)uds_init/12 (write)uds_init/12 (write)uds_init/12 (write)uds_init/12 (write)uds_init/12 (write)uds_init/12 (write)uds_init/12 (write)uds_init/12 (write)uds_init/12 (write)uds_init/12 (write)uds_init/12 (write)uds_init/12 (write)uds_init/12 (write)uds_init/12 (write)uds_init/12 (write)uds_init/12 (write)uds_init/12 (write)uds_init/12 (write)uds_init/12 (write)uds_init/12 (write)uds_init/12 (write)uds_init/12 (write)uds_init/12 (write)uds_init/12 (write)uds_init/12 (write)uds_init/12 (write)uds_init/12 (write)uds_init/12 (write)uds_init/12 (write)uds_init/12 (write)uds_table_receve_finish/13 (write)uds_table_receve_finish/13 (read)uds_table_receve_finish/13 (write)uds_table_receve_finish/13 (read)uds_table_receve_finish/13 (write)uds_table_receve_finish/13 (write)uds_table_receve_finish/13 (write)uds_table_receve_finish/13 (write)uds_table_receve_finish/13 (read)uds_table_receve_finish/13 (write)uds_table_receve_finish/13 (write)uds_table_receve_finish/13 (read)uds_table_receve_finish/13 (write)uds_table_receve_finish/13 (read)uds_table_receve_finish/13 (write)uds_table_receve_finish/13 (write)uds_table_receve_finish/13 (write)uds_table_receve_finish/13 (write)uds_table_receve_finish/13 (write)set_flow_control/14 (write)set_flow_control/14 (write)set_flow_control/14 (write)set_flow_control/14 (write)set_wait_flow_control/15 (write)set_wait_flow_control/15 (write)set_dtc_1st_frame/16 (write)set_dtc_1st_frame/16 (write)set_dtc_1st_frame/16 (read)set_dtc_1st_frame/16 (write)set_dtc_1st_frame/16 (write)set_dtc_1st_frame/16 (write)set_dtc_1st_frame/16 (write)set_dtc_1st_frame/16 (read)set_dtc_1st_frame/16 (read)set_dtc_1st_frame/16 (write)set_dtc_1st_frame/16 (read)set_dtc_1st_frame/16 (write)set_dtc_1st_frame/16 (read)set_dtc_1st_frame/16 (read)set_dtc_1st_frame/16 (write)set_dtc_1st_frame/16 (read)set_dtc_1st_frame/16 (write)set_dtc_1st_frame/16 (read)set_dtc_1st_frame/16 (read)set_dtc_1st_frame/16 (write)set_dtc_1st_frame/16 (read)set_dtc_1st_frame/16 (write)set_dtc_1st_frame/16 (read)set_dtc_1st_frame/16 (read)set_dtc_1st_frame/16 (write)set_dtc_1st_frame/16 (read)set_dtc_1st_frame/16 (write)set_dtc_1st_frame/16 (write)set_dtc_1st_frame/16 (write)set_dtc_1st_frame/16 (read)set_dtc_1st_frame/16 (write)set_dtc_1st_frame/16 (write)set_dtc_1st_frame/16 (write)set_dtc_1st_frame/16 (read)set_dtc_1st_frame/16 (write)set_dtc_1st_frame/16 (write)set_dtc_1st_frame/16 (write)set_dtc_1st_frame/16 (write)set_dtc_1st_frame/16 (read)set_dtc_1st_frame/16 (read)set_dtc_1st_frame/16 (write)set_dtc_1st_frame/16 (read)set_dtc_1st_frame/16 (write)set_dtc_1st_frame/16 (read)set_dtc_1st_frame/16 (read)set_dtc_1st_frame/16 (write)set_dtc_1st_frame/16 (read)set_dtc_1st_frame/16 (write)set_dtc_1st_frame/16 (read)set_dtc_1st_frame/16 (read)set_dtc_1st_frame/16 (write)set_dtc_1st_frame/16 (read)set_dtc_1st_frame/16 (write)set_dtc_1st_frame/16 (write)set_dtc_1st_frame/16 (write)set_dtc_1st_frame/16 (write)set_dtc_1st_frame/16 (write)uds_tx_buf_clear/17 (write)uds_send_data_set/18 (write)uds_send_data_set/18 (read)uds_send_data_set/18 (write)uds_send_data_set/18 (write)uds_send_data_set/18 (write)uds_send_data_set/18 (write)uds_send_data_set/18 (write)uds_send_data_set/18 (write)uds_send_data_set/18 (write)uds_send_data_set/18 (write)uds_send_data_set/18 (read)uds_send_data_set/18 (read)uds_send_data_set/18 (write)uds_send_data_set/18 (write)uds_send_data_set/18 (read)uds_send_data_set/18 (read)uds_send_data_set/18 (write)uds_send_data_set/18 (write)uds_send_data_set/18 (read)uds_send_data_set/18 (read)uds_send_data_set/18 (write)uds_send_data_set/18 (write)uds_send_data_set/18 (write)uds_send_data_set/18 (write)uds_logic_event/19 (read)uds_logic_event/19 (write)uds_logic_event/19 (read)uds_logic_event/19 (write)uds_logic_event/19 (read)uds_logic_event/19 (read)uds_logic_event/19 (write)uds_logic_event/19 (read)uds_logic_event/19 (write)uds_logic_event/19 (read)uds_logic_event/19 (read)uds_logic_event/19 (write)uds_logic_event/19 (write)uds_logic_event/19 (read)uds_logic_event/19 (write)uds_logic_event/19 (read)uds_logic_event/19 (write)uds_logic_event/19 (read)uds_logic_event/19 (write)uds_logic_event/19 (read)uds_logic_event/19 (read)uds_logic_event/19 (read)uds_logic_event/19 (read)uds_logic_event/19 (read)uds_logic_event/19 (read)uds_logic_event/19 (read)uds_logic_event/19 (read)uds_logic_event/19 (addr)uds_logic_event/19 (read)uds_logic_event/19 (read)uds_logic_event/19 (read)uds_logic_event/19 (write)uds_logic_event/19 (write)uds_logic_event/19 (read)uds_logic_event/19 (read)uds_logic_event/19 (write)uds_logic_event/19 (write)uds_logic_event/19 (write)uds_logic_event/19 (write)uds_logic_event/19 (write)uds_logic_event/19 (write)uds_logic_event/19 (write)uds_logic_event/19 (write)uds_logic_event/19 (write)uds_logic_event/19 (write)uds_logic_event/19 (write)uds_logic_event/19 (write)uds_logic_event/19 (write)uds_logic_event/19 (addr)uds_logic_event/19 (read)uds_logic_event/19 (read)uds_logic_event/19 (write)uds_logic_event/19 (read)uds_logic_event/19 (write)uds_logic_event/19 (write)uds_logic_event/19 (write)uds_logic_event/19 (read)uds_logic_event/19 (write)uds_logic_event/19 (read)uds_logic_event/19 (write)uds_logic_event/19 (read)uds_logic_event/19 (write)uds_logic_event/19 (read)uds_logic_event/19 (write)uds_logic_event/19 (write)uds_logic_event/19 (read)uds_logic_event/19 (read)uds_logic_event/19 (write)uds_logic_event/19 (read)uds_logic_event/19 (write)uds_logic_event/19 (read)uds_logic_event/19 (read)uds_logic_event/19 (write)uds_logic_event/19 (read)uds_logic_event/19 (write)uds_logic_event/19 (read)uds_logic_event/19 (read)uds_logic_event/19 (write)uds_logic_event/19 (read)uds_logic_event/19 (write)uds_logic_event/19 (write)uds_logic_event/19 (write)uds_logic_event/19 (write)uds_logic_event/19 (write)uds_logic_event/19 (write)uds_logic_event/19 (read)uds_logic_event/19 (write)uds_logic_event/19 (read)uds_logic_event/19 (write)uds_logic_event/19 (read)uds_logic_event/19 (write)uds_logic_event/19 (read)uds_logic_event/19 (write)uds_logic_event/19 (write)uds_logic_event/19 (read)uds_logic_event/19 (read)uds_logic_event/19 (write)uds_logic_event/19 (read)uds_logic_event/19 (write)uds_logic_event/19 (read)uds_logic_event/19 (read)uds_logic_event/19 (write)uds_logic_event/19 (read)uds_logic_event/19 (write)uds_logic_event/19 (read)uds_logic_event/19 (read)uds_logic_event/19 (write)uds_logic_event/19 (read)uds_logic_event/19 (write)uds_logic_event/19 (read)uds_logic_event/19 (read)uds_logic_event/19 (write)uds_logic_event/19 (read)uds_logic_event/19 (write)uds_logic_event/19 (write)uds_logic_event/19 (write)uds_logic_event/19 (write)uds_logic_event/19 (read)uds_logic_event/19 (read)uds_logic_event/19 (read)uds_logic_event/19 (read)uds_logic_event/19 (write)uds_logic_event/19 (read)uds_logic_event/19 (write)uds_logic_event/19 (read)uds_logic_event/19 (read)uds_logic_event/19 (write)uds_logic_event/19 (read)uds_logic_event/19 (write)uds_logic_event/19 (read)uds_logic_event/19 (read)uds_logic_event/19 (write)uds_logic_event/19 (read)uds_logic_event/19 (read)uds_logic_event/19 (write)uds_logic_event/19 (read)uds_logic_event/19 (write)uds_logic_event/19 (read)uds_logic_event/19 (read)uds_logic_event/19 (write)uds_logic_event/19 (read)uds_logic_event/19 (write)uds_logic_event/19 (read)uds_logic_event/19 (write)uds_logic_event/19 (read)uds_logic_event/19 (write)uds_logic_event/19 (write)uds_interrupt_sid_dtc/20 (read)uds_interrupt_sid_dtc/20 (write)uds_interrupt_sid_dtc/20 (read)uds_interrupt_sid_dtc/20 (write)uds_interrupt_sid_dtc/20 (read)uds_interrupt_sid_dtc/20 (write)uds_interrupt_sid_dtc/20 (read)uds_interrupt_sid_dtc/20 (write)uds_interrupt_sid_dtc/20 (read)uds_interrupt_sid_dtc/20 (write)uds_interrupt_sid_dtc/20 (write)uds_interrupt_sid_dtc/20 (read)uds_interrupt_sid_dtc/20 (write)uds_interrupt_sid_dtc/20 (read)uds_interrupt_sid_dtc/20 (write)uds_interrupt_sid_dtc/20 (write)uds_interrupt_sid_dtc/20 (write)uds_interrupt_sid_dtc/20 (read)uds_interrupt_sid_dtc/20 (write)uds_interrupt_sid_dtc/20 (write)uds_interrupt_sid_dtc/20 (read)uds_interrupt_sid_dtc/20 (write)uds_interrupt_sid_dtc/20 (write)uds_interrupt_sid_dtc/20 (write)uds_interrupt_sid_dtc/20 (write)uds_SID_ControlDTCSetting/21 (write)uds_SID_ControlDTCSetting/21 (write)uds_SID_ControlDTCSetting/21 (read)uds_SID_ControlDTCSetting/21 (write)uds_SID_ControlDTCSetting/21 (read)uds_SID_ControlDTCSetting/21 (write)uds_SID_ControlDTCSetting/21 (read)uds_SID_ControlDTCSetting/21 (write)uds_SID_ControlDTCSetting/21 (write)uds_SID_ControlDTCSetting/21 (write)uds_fail_massage/22 (write)uds_fail_massage/22 (write)uds_fail_massage/22 (write)uds_fail_massage/22 (write)uds_fail_massage/22 (write)uds_fail_check_no_extended/23 (read)uds_fail_check_no_extended/23 (read)uds_fail_check_no_extended/23 (write)uds_fail_check_no_extended/23 (write)uds_single_frame_error_check/24 (write)uds_single_frame_error_check/24 (read)uds_single_frame_error_check/24 (read)uds_single_frame_error_check/24 (write)uds_single_frame_error_check/24 (read)uds_single_frame_error_check/24 (read)uds_single_frame_error_check/24 (read)uds_single_frame_error_check/24 (write)uds_single_frame_error_check/24 (read)uds_single_frame_error_check/24 (read)uds_single_frame_error_check/24 (read)uds_single_frame_error_check/24 (write)uds_single_frame_error_check/24 (write)uds_single_frame_error_check/24 (read)uds_single_frame_error_check/24 (read)uds_single_frame_error_check/24 (write)uds_single_frame_error_check/24 (read)uds_single_frame_error_check/24 (write)uds_single_frame_error_check/24 (read)uds_single_frame_error_check/24 (read)uds_single_frame_error_check/24 (read)uds_single_frame_error_check/24 (read)uds_single_frame_error_check/24 (write)uds_single_frame_error_check/24 (read)uds_single_frame_error_check/24 (read)uds_single_frame_error_check/24 (write)uds_single_frame_error_check/24 (read)uds_single_frame_error_check/24 (read)uds_single_frame_error_check/24 (read)uds_single_frame_error_check/24 (write)uds_single_frame_error_check/24 (read)uds_single_frame_error_check/24 (read)uds_single_frame_error_check/24 (write)uds_single_frame_error_check/24 (read)uds_single_frame_error_check/24 (read)uds_single_frame_error_check/24 (write)uds_single_frame_error_check/24 (read)uds_single_frame_error_check/24 (read)uds_single_frame_error_check/24 (write)uds_single_frame_error_check/24 (read)uds_single_frame_error_check/24 (read)uds_single_frame_error_check/24 (write)uds_single_frame_error_check/24 (write)uds_single_frame_error_check/24 (read)uds_single_frame_error_check/24 (read)uds_single_frame_error_check/24 (read)uds_single_frame_error_check/24 (write)uds_single_frame_error_check/24 (read)uds_single_frame_error_check/24 (write)uds_single_frame_error_check/24 (write)uds_single_frame_error_check/24 (read)uds_single_frame_error_check/24 (write)uds_single_frame_error_check/24 (read)uds_single_frame_error_check/24 (read)uds_single_frame_error_check/24 (read)uds_single_frame_error_check/24 (write)uds_single_frame_error_check/24 (read)uds_single_frame_error_check/24 (write)uds_single_frame_error_check/24 (read)uds_single_frame_error_check/24 (write)uds_single_frame_error_check/24 (read)uds_single_frame_error_check/24 (read)uds_single_frame_error_check/24 (write)uds_single_frame_error_check/24 (read)uds_single_frame_error_check/24 (write)uds_single_frame_error_check/24 (read)uds_single_frame_error_check/24 (read)uds_single_frame_error_check/24 (write)uds_single_frame_error_check/24 (read)uds_single_frame_error_check/24 (read)uds_single_frame_error_check/24 (read)uds_single_frame_error_check/24 (write)uds_single_frame_error_check/24 (read)uds_single_frame_error_check/24 (read)uds_single_frame_error_check/24 (read)uds_single_frame_error_check/24 (write)uds_single_frame_error_check/24 (write)uds_single_frame_error_check/24 (write)uds_single_frame_error_check/24 (write)uds_single_frame_error_check/24 (read)uds_single_frame_error_check/24 (read)uds_single_frame_error_check/24 (write)uds_single_frame_error_check/24 (read)uds_single_frame_error_check/24 (write)uds_single_frame_error_check/24 (read)uds_single_frame_error_check/24 (read)uds_single_frame_error_check/24 (write)uds_single_frame_error_check/24 (read)uds_single_frame_error_check/24 (write)uds_single_frame_error_check/24 (read)uds_single_frame_error_check/24 (write)uds_single_frame_error_check/24 (write)uds_single_frame_error_check/24 (read)uds_single_frame_error_check/24 (write)uds_single_frame_error_check/24 (read)uds_single_frame_error_check/24 (write)uds_single_frame_error_check/24 (write)uds_fail_check_did_length/25 (write)uds_fail_check_did_length/25 (write)uds_fail_check_did_length/25 (write)uds_fail_check_did_length/25 (write)uds_fail_check_did_length/25 (write)uds_fail_check_did_length/25 (write)uds_fail_check_did_length/25 (read)uds_fail_check_did_length/25 (write)uds_fail_check_did_length/25 (write)uds_SID_StopDiagnosticSession/26 (read)uds_SID_StopDiagnosticSession/26 (read)uds_SID_StopDiagnosticSession/26 (write)uds_SID_StopDiagnosticSession/26 (write)uds_SID_StopDiagnosticSession/26 (write)uds_SID_StopDiagnosticSession/26 (write)uds_SID_DiagnosticSessionControl/27 (read)uds_SID_DiagnosticSessionControl/27 (read)uds_SID_DiagnosticSessionControl/27 (write)uds_SID_DiagnosticSessionControl/27 (read)uds_SID_DiagnosticSessionControl/27 (write)uds_SID_DiagnosticSessionControl/27 (write)uds_SID_DiagnosticSessionControl/27 (read)uds_SID_DiagnosticSessionControl/27 (write)uds_SID_DiagnosticSessionControl/27 (write)uds_SID_DiagnosticSessionControl/27 (write)uds_SID_DiagnosticSessionControl/27 (write)uds_SID_DiagnosticSessionControl/27 (write)uds_SID_DiagnosticSessionControl/27 (write)uds_SID_DiagnosticSessionControl/27 (read)uds_SID_DiagnosticSessionControl/27 (write)uds_SID_DiagnosticSessionControl/27 (read)uds_SID_DiagnosticSessionControl/27 (write)uds_SID_DiagnosticSessionControl/27 (write)uds_SID_DiagnosticSessionControl/27 (read)uds_SID_DiagnosticSessionControl/27 (write)uds_SID_DiagnosticSessionControl/27 (write)uds_SID_DiagnosticSessionControl/27 (read)uds_SID_DiagnosticSessionControl/27 (write)uds_SID_DiagnosticSessionControl/27 (write)uds_SID_DiagnosticSessionControl/27 (write)uds_SID_DiagnosticSessionControl/27 (write)uds_SID_ReadDataByIdentifier/28 (read)uds_SID_ReadDataByIdentifier/28 (read)uds_SID_ReadDataByIdentifier/28 (write)uds_SID_ReadDataByIdentifier/28 (write)uds_SID_ReadDataByIdentifier/28 (write)uds_SID_ReadDataByIdentifier/28 (write)uds_SID_ReadDataByIdentifier/28 (write)uds_SID_ReadDataByIdentifier/28 (read)uds_SID_ReadDataByIdentifier/28 (write)uds_SID_ReadDataByIdentifier/28 (write)uds_SID_ReadDataByIdentifier/28 (write)uds_SID_ReadDataByIdentifier/28 (write)uds_SID_ReadDataByIdentifier/28 (read)uds_SID_ReadDataByIdentifier/28 (write)uds_SID_ReadDataByIdentifier/28 (write)uds_SID_ReadDataByIdentifier/28 (read)uds_SID_ReadDataByIdentifier/28 (write)uds_SID_ReadDataByIdentifier/28 (write)uds_SID_ReadDataByIdentifier/28 (write)uds_SID_WriteDataByIdentifier/29 (write)uds_SID_WriteDataByIdentifier/29 (read)uds_SID_WriteDataByIdentifier/29 (write)uds_SID_WriteDataByIdentifier/29 (read)uds_SID_WriteDataByIdentifier/29 (write)uds_SID_WriteDataByIdentifier/29 (read)uds_SID_WriteDataByIdentifier/29 (read)uds_SID_WriteDataByIdentifier/29 (write)uds_SID_WriteDataByIdentifier/29 (read)uds_SID_WriteDataByIdentifier/29 (write)uds_SID_WriteDataByIdentifier/29 (read)uds_SID_WriteDataByIdentifier/29 (write)uds_SID_WriteDataByIdentifier/29 (write)uds_SID_WriteDataByIdentifier/29 (write)uds_SID_WriteDataByIdentifier/29 (read)uds_SID_WriteDataByIdentifier/29 (write)uds_SID_WriteDataByIdentifier/29 (write)uds_SID_WriteDataByIdentifier/29 (read)uds_SID_WriteDataByIdentifier/29 (read)uds_SID_WriteDataByIdentifier/29 (read)uds_SID_WriteDataByIdentifier/29 (write)uds_SID_WriteDataByIdentifier/29 (write)uds_SID_WriteDataByIdentifier/29 (read)uds_SID_WriteDataByIdentifier/29 (read)uds_SID_WriteDataByIdentifier/29 (read)uds_SID_WriteDataByIdentifier/29 (write)uds_SID_WriteDataByIdentifier/29 (read)uds_SID_WriteDataByIdentifier/29 (write)uds_SID_WriteDataByIdentifier/29 (write)uds_SID_WriteDataByIdentifier/29 (read)uds_SID_WriteDataByIdentifier/29 (read)uds_SID_WriteDataByIdentifier/29 (read)uds_SID_WriteDataByIdentifier/29 (read)uds_SID_WriteDataByIdentifier/29 (write)uds_SID_WriteDataByIdentifier/29 (read)uds_SID_WriteDataByIdentifier/29 (read)uds_SID_WriteDataByIdentifier/29 (write)uds_SID_WriteDataByIdentifier/29 (read)uds_SID_WriteDataByIdentifier/29 (read)uds_SID_WriteDataByIdentifier/29 (write)uds_SID_WriteDataByIdentifier/29 (read)uds_SID_WriteDataByIdentifier/29 (write)uds_SID_WriteDataByIdentifier/29 (write)uds_SID_WriteDataByIdentifier/29 (write)uds_SID_WriteDataByIdentifier/29 (write)uds_SID_WriteDataByIdentifier/29 (write)uds_SID_WriteDataByIdentifier/29 (read)uds_SID_WriteDataByIdentifier/29 (write)uds_SID_WriteDataByIdentifier/29 (write)uds_SID_WriteDataByIdentifier/29 (write)uds_SID_WriteDataByIdentifier/29 (write)uds_SID_WriteDataByIdentifier/29 (write)uds_SID_WriteDataByIdentifier/29 (read)uds_SID_WriteDataByIdentifier/29 (write)uds_SID_WriteDataByIdentifier/29 (write)uds_SID_WriteDataByIdentifier/29 (write)uds_SID_WriteDataByIdentifier/29 (write)uds_SID_CommunicationControl/30 (read)uds_SID_CommunicationControl/30 (read)uds_SID_CommunicationControl/30 (write)uds_SID_CommunicationControl/30 (read)uds_SID_CommunicationControl/30 (read)uds_SID_CommunicationControl/30 (read)uds_SID_CommunicationControl/30 (read)uds_SID_CommunicationControl/30 (write)uds_SID_CommunicationControl/30 (read)uds_SID_CommunicationControl/30 (write)uds_SID_CommunicationControl/30 (read)uds_SID_CommunicationControl/30 (write)uds_SID_CommunicationControl/30 (write)uds_SID_CommunicationControl/30 (write)uds_SID_CommunicationControl/30 (read)uds_SID_CommunicationControl/30 (write)uds_SID_CommunicationControl/30 (write)uds_SID_CommunicationControl/30 (write)uds_SID_CommunicationControl/30 (read)uds_SID_CommunicationControl/30 (write)uds_SID_CommunicationControl/30 (write)uds_SID_CommunicationControl/30 (write)uds_SID_CommunicationControl/30 (write)uds_SID_CommunicationControl/30 (write)uds_SID_CommunicationControl/30 (write)uds_SID_CommunicationControl/30 (read)uds_SID_CommunicationControl/30 (write)uds_SID_SecurityAccess/36 (read)uds_SID_SecurityAccess/36 (write)uds_SID_SecurityAccess/36 (write)uds_SID_SecurityAccess/36 (read)uds_SID_SecurityAccess/36 (write)uds_SID_SecurityAccess/36 (write)uds_SID_SecurityAccess/36 (read)uds_SID_SecurityAccess/36 (read)uds_SID_SecurityAccess/36 (write)uds_SID_SecurityAccess/36 (write)uds_SID_SecurityAccess/36 (read)uds_SID_SecurityAccess/36 (write)uds_SID_SecurityAccess/36 (read)uds_SID_SecurityAccess/36 (read)uds_SID_SecurityAccess/36 (write)uds_SID_SecurityAccess/36 (write)uds_SID_SecurityAccess/36 (write)uds_SID_SecurityAccess/36 (write)uds_SID_SecurityAccess/36 (read)uds_SID_SecurityAccess/36 (write)uds_SID_SecurityAccess/36 (read)uds_SID_SecurityAccess/36 (write)uds_SID_SecurityAccess/36 (read)uds_SID_SecurityAccess/36 (write)uds_SID_SecurityAccess/36 (read)uds_SID_SecurityAccess/36 (write)uds_SID_SecurityAccess/36 (read)uds_SID_SecurityAccess/36 (write)uds_SID_SecurityAccess/36 (read)uds_SID_SecurityAccess/36 (write)uds_SID_SecurityAccess/36 (read)uds_SID_SecurityAccess/36 (write)uds_SID_SecurityAccess/36 (read)uds_SID_SecurityAccess/36 (write)uds_SID_SecurityAccess/36 (read)uds_SID_SecurityAccess/36 (read)uds_SID_SecurityAccess/36 (read)uds_SID_SecurityAccess/36 (read)uds_SID_SecurityAccess/36 (read)uds_SID_SecurityAccess/36 (write)uds_SID_SecurityAccess/36 (write)uds_SID_SecurityAccess/36 (write)uds_SID_SecurityAccess/36 (write)uds_SID_SecurityAccess/36 (write)uds_SID_SecurityAccess/36 (read)uds_SID_SecurityAccess/36 (read)uds_SID_SecurityAccess/36 (read)uds_SID_SecurityAccess/36 (write)uds_SID_SecurityAccess/36 (write)uds_SID_SecurityAccess/36 (write)uds_SID_SecurityAccess/36 (read)uds_SID_SecurityAccess/36 (write)uds_SID_SecurityAccess/36 (write)uds_SID_SecurityAccess/36 (write)uds_SID_SecurityAccess/36 (write)uds_SID_SecurityAccess/36 (read)uds_SID_SecurityAccess/36 (read)uds_SID_SecurityAccess/36 (read)uds_SID_SecurityAccess/36 (read)uds_SID_SecurityAccess/36 (read)uds_SID_SecurityAccess/36 (read)uds_SID_SecurityAccess/36 (write)uds_SID_SecurityAccess/36 (write)uds_SID_SecurityAccess/36 (read)uds_SID_SecurityAccess/36 (write)uds_SID_SecurityAccess/36 (write)uds_SID_SecurityAccess/36 (write)uds_SID_SecurityAccess/36 (read)uds_SID_SecurityAccess/36 (write)uds_SID_SecurityAccess/36 (read)uds_SID_SecurityAccess/36 (write)uds_SID_SecurityAccess/36 (write)uds_SID_SecurityAccess/36 (read)uds_SID_SecurityAccess/36 (write)uds_SID_SecurityAccess/36 (read)uds_SID_SecurityAccess/36 (write)uds_SID_SecurityAccess/36 (write)uds_SID_SecurityAccess/36 (read)uds_SID_SecurityAccess/36 (write)uds_data_receve_finish/37 (write)uds_data_receve_finish/37 (read)uds_data_receve_finish/37 (write)uds_data_receve_finish/37 (write)uds_data_receve_finish/37 (read)uds_data_receve_finish/37 (read)uds_data_receve_finish/37 (write)uds_data_receve_finish/37 (read)uds_data_receve_finish/37 (write)uds_data_receve_finish/37 (read)uds_data_receve_finish/37 (write)uds_single_frame/38 (read)uds_single_frame/38 (write)uds_single_frame/38 (read)uds_single_frame/38 (write)uds_single_frame/38 (write)uds_single_frame/38 (read)uds_single_frame/38 (read)uds_single_frame/38 (read)uds_single_frame/38 (read)uds_single_frame/38 (read)uds_single_frame/38 (read)uds_single_frame/38 (write)uds_single_frame/38 (read)uds_single_frame/38 (read)uds_single_frame/38 (read)uds_single_frame/38 (read)uds_single_frame/38 (read)uds_single_frame/38 (read)uds_single_frame/38 (write)uds_single_frame/38 (write)uds_single_frame/38 (write)uds_single_frame/38 (read)uds_single_frame/38 (write)uds_single_frame/38 (read)uds_single_frame/38 (read)uds_single_frame/38 (read)uds_single_frame/38 (read)uds_single_frame/38 (write)uds_single_frame/38 (write)uds_single_frame/38 (read)uds_single_frame/38 (write)uds_single_frame/38 (read)uds_single_frame/38 (read)uds_single_frame/38 (read)uds_single_frame/38 (write)uds_single_frame/38 (read)uds_single_frame/38 (write)uds_single_frame/38 (write)uds_single_frame/38 (read)uds_single_frame/38 (read)uds_single_frame/38 (read)uds_single_frame/38 (read)uds_single_frame/38 (write)uds_single_frame/38 (read)uds_single_frame/38 (write)uds_single_frame/38 (write)uds_single_frame/38 (read)uds_single_frame/38 (write)uds_single_frame/38 (read)uds_single_frame/38 (read)uds_single_frame/38 (write)uds_single_frame/38 (read)uds_single_frame/38 (write)uds_single_frame/38 (read)uds_single_frame/38 (write)uds_SID_FF_dataread/39 (write)uds_SID_FF_dataread/39 (read)uds_SID_FF_dataread/39 (write)uds_SID_FF_dataread/39 (read)uds_SID_FF_dataread/39 (write)uds_SID_FF_dataread/39 (read)uds_SID_FF_dataread/39 (read)uds_SID_FF_dataread/39 (write)uds_SID_FF_dataread/39 (write)uds_SID_FF_dataread/39 (addr)uds_SID_FF_dataread/39 (write)uds_SID_FF_dataread/39 (write)uds_SID_FF_dataread/39 (read)uds_SID_FF_dataread/39 (write)uds_SID_FF_dataread/39 (write)uds_SID_FF_dataread/39 (write)uds_SID_FF_dataread/39 (addr)uds_SID_FF_dataread/39 (read)uds_SID_FF_dataread/39 (read)uds_SID_FF_dataread/39 (write)uds_SID_FF_dataread/39 (read)uds_SID_FF_dataread/39 (write)uds_SID_FF_dataread/39 (write)uds_SID_FF_dataread/39 (read)uds_SID_FF_dataread/39 (write)uds_SID_FF_dataread/39 (read)uds_SID_FF_dataread/39 (write)uds_SID_FF_dataread/39 (write)uds_SID_FF_dataread/39 (read)uds_SID_FF_dataread/39 (read)uds_SID_FF_dataread/39 (write)uds_SID_FF_dataread/39 (read)uds_SID_FF_dataread/39 (read)uds_SID_FF_dataread/39 (read)uds_SID_FF_dataread/39 (write)uds_SID_FF_dataread/39 (read)uds_SID_FF_dataread/39 (read)uds_SID_FF_dataread/39 (read)uds_SID_FF_dataread/39 (write)uds_SID_FF_dataread/39 (read)uds_SID_FF_dataread/39 (read)uds_SID_FF_dataread/39 (read)uds_SID_FF_dataread/39 (write)uds_SID_FF_dataread/39 (read)uds_SID_FF_dataread/39 (read)uds_SID_FF_dataread/39 (read)uds_SID_FF_dataread/39 (write)uds_SID_FF_dataread/39 (read)uds_SID_FF_dataread/39 (write)uds_SID_FF_dataread/39 (write)uds_SID_FF_dataread/39 (write)uds_SID_FF_dataread/39 (read)uds_SID_FF_dataread/39 (write)uds_SID_FF_dataread/39 (read)uds_SID_FF_dataread/39 (write)uds_SID_FF_dataread/39 (write)uds_SID_FF_dataread/39 (write)uds_SID_FF_dataread/39 (write)uds_SID_FF_dataread/39 (read)uds_SID_FF_dataread/39 (write)uds_SID_FF_dataread/39 (read)uds_SID_FF_dataread/39 (write)uds_SID_FF_dataread/39 (write)uds_SID_FF_dataread/39 (write)uds_SID_FF_dataread/39 (write)uds_SID_FF_dataread/39 (read)uds_SID_FF_dataread/39 (write)uds_SID_FF_dataread/39 (read)uds_SID_FF_dataread/39 (write)uds_SID_FF_dataread/39 (write)uds_SID_FF_dataread/39 (read)uds_SID_FF_dataread/39 (read)uds_SID_FF_dataread/39 (write)uds_SID_FF_dataread/39 (read)uds_SID_FF_dataread/39 (read)uds_SID_FF_dataread/39 (read)uds_SID_FF_dataread/39 (write)uds_SID_FF_dataread/39 (read)uds_SID_FF_dataread/39 (read)uds_SID_FF_dataread/39 (read)uds_SID_FF_dataread/39 (write)uds_SID_FF_dataread/39 (read)uds_SID_FF_NULL/40 (write)uds_SID_FF_NULL/40 (read)uds_SID_FF_NULL/40 (write)uds_SID_FF_NULL/40 (read)uds_SID_FF_NULL/40 (write)uds_SID_FF_NULL/40 (read)uds_SID_FF_NULL/40 (read)uds_SID_FF_NULL/40 (write)uds_SID_FF_NULL/40 (read)uds_SID_FF_NULL/40 (write)uds_SID_FF_NULL/40 (write)uds_SID_FF_NULL/40 (read)uds_SID_FF_NULL/40 (write)uds_SID_FF_NULL/40 (read)uds_SID_FF_NULL/40 (write)uds_SID_FF_NULL/40 (read)uds_SID_FF_NULL/40 (write)uds_SID_FF_NULL/40 (read)uds_SID_FF_NULL/40 (read)uds_SID_FF_NULL/40 (write)uds_SID_FF_NULL/40 (write)uds_SID_FF_NULL/40 (write)uds_SID_FF_NULL/40 (write)uds_SID_FF_NULL/40 (write)uds_SID_FF_NULL/40 (read)uds_SID_FF_NULL/40 (write)uds_SID_FF_NULL/40 (read)uds_SID_FF_NULL/40 (write)uds_first_frame/41 (write)uds_first_frame/41 (write)uds_first_frame/41 (read)uds_first_frame/41 (write)uds_first_frame/41 (write)uds_first_frame/41 (write)uds_first_frame/41 (read)uds_first_frame/41 (read)uds_first_frame/41 (read)uds_first_frame/41 (read)uds_first_frame/41 (write)uds_first_frame/41 (read)uds_first_frame/41 (read)uds_first_frame/41 (read)uds_first_frame/41 (write)uds_first_frame/41 (write)uds_first_frame/41 (write)uds_first_frame/41 (read)uds_first_frame/41 (write)uds_first_frame/41 (read)uds_first_frame/41 (write)uds_first_frame/41 (write)uds_logic_interrupt/42 (write)uds_logic_interrupt/42 (write)uds_logic_interrupt/42 (write)uds_logic_interrupt/42 (write)uds_logic_interrupt/42 (write)uds_logic_interrupt/42 (read)uds_logic_interrupt/42 (write)uds_logic_interrupt/42 (write)uds_logic_interrupt/42 (read)uds_logic_interrupt/42 (write)uds_logic_interrupt/42 (write)uds_logic_interrupt/42 (read)uds_logic_interrupt/42 (read)uds_logic_interrupt/42 (read)uds_logic_interrupt/42 (read)uds_logic_interrupt/42 (read)uds_logic_interrupt/42 (read)uds_logic_interrupt/42 (read)uds_logic_interrupt/42 (read)uds_logic_interrupt/42 (read)uds_logic_interrupt/42 (read)uds_logic_interrupt/42 (read)uds_logic_interrupt/42 (write)uds_logic_interrupt/42 (read)uds_logic_interrupt/42 (read)uds_logic_interrupt/42 (write)uds_logic_interrupt/42 (read)uds_logic_interrupt/42 (write)uds_logic_interrupt/42 (write)uds_logic_interrupt/42 (read)uds_logic_interrupt/42 (read)uds_logic_interrupt/42 (read)uds_logic_interrupt/42 (read)uds_logic_interrupt/42 (read)uds_logic_interrupt/42 (write)uds_logic_interrupt/42 (read)uds_logic_interrupt/42 (read)uds_logic_interrupt/42 (read)uds_logic_interrupt/42 (write)uds_logic_interrupt/42 (write)uds_logic_interrupt/42 (read)uds_logic_interrupt/42 (write)uds_logic_interrupt/42 (write)uds_logic_interrupt/42 (write)uds_logic_interrupt/42 (read)uds_logic_interrupt/42 (write)uds_logic_interrupt/42 (write)uds_logic_interrupt/42 (read)uds_logic_interrupt/42 (write)uds_logic_interrupt/42 (write)uds_logic_interrupt/42 (write)uds_logic_interrupt/42 (read)uds_logic_interrupt/42 (write)uds_logic_interrupt/42 (read)uds_logic_interrupt/42 (read)uds_logic_interrupt/42 (read)uds_logic_interrupt/42 (write)uds_logic_interrupt/42 (read)uds_logic_interrupt/42 (read)uds_logic_interrupt/42 (write)uds_logic_interrupt/42 (read)uds_logic_interrupt/42 (write)uds_logic_interrupt/42 (read)uds_logic_interrupt/42 (read)uds_logic_interrupt/42 (write)uds_logic_interrupt/42 (write)uds_logic_interrupt/42 (read)uds_logic_interrupt/42 (write)uds_logic_interrupt/42 (read)uds_logic_interrupt/42 (write)uds_logic_interrupt/42 (write)uds_logic_interrupt/42 (read)uds_logic_interrupt/42 (write)uds_logic_interrupt/42 (read)uds_logic_interrupt/42 (write)uds_logic_interrupt/42 (read)uds_logic_interrupt/42 (write)uds_logic_interrupt/42 (write)uds_logic_interrupt/42 (read)uds_logic_interrupt/42 (write)uds_logic_interrupt/42 (read)uds_logic_interrupt/42 (write)uds_logic_interrupt/42 (write)uds_logic_interrupt/42 (write)uds_logic_interrupt/42 (write)
  Availability: available
  Varpool flags:
goto_reset ()
{
  uint32_t i;
  uint32_t * add;
  uint8_t * p;

  <bb 2> :
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  monprintf ("goto reset\n\r");
  # DEBUG BEGIN_STMT
  __asm__ __volatile__(" cpsid i");
  # DEBUG BEGIN_STMT
  i = 1000;
  # DEBUG BEGIN_STMT
  goto <bb 4>; [INV]

  <bb 3> :
  # DEBUG BEGIN_STMT
  i = i + 4294967295;

  <bb 4> :
  # DEBUG BEGIN_STMT
  if (i != 0)
    goto <bb 3>; [INV]
  else
    goto <bb 5>; [INV]

  <bb 5> :
  # DEBUG BEGIN_STMT
  add = 536870912B;
  # DEBUG BEGIN_STMT
  *add = 1036670065;
  # DEBUG BEGIN_STMT
  _1 = add + 4;
  *_1 = 16;
  # DEBUG BEGIN_STMT
  monprintf ("WATCHDOG_HAL_SystemRest\n\r");
  # DEBUG BEGIN_STMT
  WATCHDOG_HAL_SystemRest ();

  <bb 6> :
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  monprintf ("wait Rest...\n\r");
  # DEBUG BEGIN_STMT
  goto <bb 6>; [INV]

}


uds_logic_interrupt (uint8_t * buf)
{
  uint32_t n;
  uint8_t rp;
  uint8_t k;
  uint8_t i;

  <bb 2> :
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  rp = 1;
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  uds.x2ms = 0;
  # DEBUG BEGIN_STMT
  uds.timeout = 501;
  # DEBUG BEGIN_STMT
  uds.c_timeout_session_10ms = 500;
  # DEBUG BEGIN_STMT
  k = 0;
  goto <bb 4>; [INV]

  <bb 3> :
  # DEBUG BEGIN_STMT
  _1 = (int) k;
  uds.tx.buf[_1] = 0;
  # DEBUG BEGIN_STMT
  k.30_2 = k;
  k = k.30_2 + 1;

  <bb 4> :
  # DEBUG BEGIN_STMT
  if (k <= 7)
    goto <bb 3>; [INV]
  else
    goto <bb 5>; [INV]

  <bb 5> :
  # DEBUG BEGIN_STMT
  uds.response_to_negetive = 0;
  # DEBUG BEGIN_STMT
  _3 = uds.rx.id;
  if (_3 == 2000)
    goto <bb 6>; [INV]
  else
    goto <bb 10>; [INV]

  <bb 6> :
  # DEBUG BEGIN_STMT
  i = 0;
  goto <bb 8>; [INV]

  <bb 7> :
  # DEBUG BEGIN_STMT
  _4 = (sizetype) i;
  _5 = buf + _4;
  _6 = (int) i;
  _7 = *_5;
  uds.rx.buf[_6] = _7;
  # DEBUG BEGIN_STMT
  i.31_8 = i;
  i = i.31_8 + 1;

  <bb 8> :
  # DEBUG BEGIN_STMT
  if (i <= 7)
    goto <bb 7>; [INV]
  else
    goto <bb 9>; [INV]

  <bb 9> :
  # DEBUG BEGIN_STMT
  uds.can_id = 2000;
  goto <bb 26>; [INV]

  <bb 10> :
  # DEBUG BEGIN_STMT
  _9 = uds.rx.id;
  if (_9 == 2015)
    goto <bb 11>; [INV]
  else
    goto <bb 25>; [INV]

  <bb 11> :
  # DEBUG BEGIN_STMT
  _10 = *buf;
  _11 = (int) _10;
  _12 = _11 & 240;
  if (_12 != 0)
    goto <bb 12>; [INV]
  else
    goto <bb 13>; [INV]

  <bb 12> :
  # DEBUG BEGIN_STMT
  // predicted unlikely by early return (on trees) predictor.
  goto <bb 71>; [INV]

  <bb 13> :
  # DEBUG BEGIN_STMT
  _13 = buf + 1;
  _14 = *_13;
  if (_14 == 40)
    goto <bb 21>; [INV]
  else
    goto <bb 14>; [INV]

  <bb 14> :
  _15 = buf + 1;
  _16 = *_15;
  if (_16 == 16)
    goto <bb 21>; [INV]
  else
    goto <bb 15>; [INV]

  <bb 15> :
  _17 = buf + 1;
  _18 = *_17;
  if (_18 == 20)
    goto <bb 21>; [INV]
  else
    goto <bb 16>; [INV]

  <bb 16> :
  _19 = buf + 1;
  _20 = *_19;
  if (_20 == 133)
    goto <bb 21>; [INV]
  else
    goto <bb 17>; [INV]

  <bb 17> :
  _21 = buf + 1;
  _22 = *_21;
  if (_22 == 62)
    goto <bb 21>; [INV]
  else
    goto <bb 18>; [INV]

  <bb 18> :
  _23 = buf + 1;
  _24 = *_23;
  if (_24 == 34)
    goto <bb 21>; [INV]
  else
    goto <bb 19>; [INV]

  <bb 19> :
  _25 = buf + 1;
  _26 = *_25;
  if (_26 == 17)
    goto <bb 21>; [INV]
  else
    goto <bb 20>; [INV]

  <bb 20> :
  _27 = buf + 1;
  _28 = *_27;
  if (_28 == 25)
    goto <bb 21>; [INV]
  else
    goto <bb 24>; [INV]

  <bb 21> :
  # DEBUG BEGIN_STMT
  uds.can_id = 2015;
  # DEBUG BEGIN_STMT
  i = 0;
  goto <bb 23>; [INV]

  <bb 22> :
  # DEBUG BEGIN_STMT
  _29 = (sizetype) i;
  _30 = buf + _29;
  _31 = (int) i;
  _32 = *_30;
  uds.rx.buf[_31] = _32;
  # DEBUG BEGIN_STMT
  i.32_33 = i;
  i = i.32_33 + 1;

  <bb 23> :
  # DEBUG BEGIN_STMT
  if (i <= 7)
    goto <bb 22>; [INV]
  else
    goto <bb 26>; [INV]

  <bb 24> :
  # DEBUG BEGIN_STMT
  // predicted unlikely by early return (on trees) predictor.
  goto <bb 71>; [INV]

  <bb 25> :
  # DEBUG BEGIN_STMT
  // predicted unlikely by early return (on trees) predictor.
  goto <bb 71>; [INV]

  <bb 26> :
  # DEBUG BEGIN_STMT
  _34 = uds.rx.buf[0];
  _35 = (int) _34;
  _36 = _35 & 240;
  if (_36 == 0)
    goto <bb 27>; [INV]
  else
    goto <bb 28>; [INV]

  <bb 27> :
  # DEBUG BEGIN_STMT
  rp = uds_single_frame ();
  goto <bb 66>; [INV]

  <bb 28> :
  # DEBUG BEGIN_STMT
  _37 = uds.rx.buf[0];
  _38 = (int) _37;
  _39 = _38 & 240;
  if (_39 == 16)
    goto <bb 29>; [INV]
  else
    goto <bb 30>; [INV]

  <bb 29> :
  # DEBUG BEGIN_STMT
  rp = uds_first_frame ();
  goto <bb 66>; [INV]

  <bb 30> :
  # DEBUG BEGIN_STMT
  _40 = uds.rx.buf[0];
  _41 = (int) _40;
  _42 = _41 & 240;
  if (_42 == 32)
    goto <bb 31>; [INV]
  else
    goto <bb 54>; [INV]

  <bb 31> :
  # DEBUG BEGIN_STMT
  _43 = uds.sid;
  if (_43 == 46)
    goto <bb 34>; [INV]
  else
    goto <bb 32>; [INV]

  <bb 32> :
  _44 = uds.sid;
  if (_44 == 49)
    goto <bb 34>; [INV]
  else
    goto <bb 33>; [INV]

  <bb 33> :
  _45 = uds.sid;
  if (_45 == 52)
    goto <bb 34>; [INV]
  else
    goto <bb 66>; [INV]

  <bb 34> :
  # DEBUG BEGIN_STMT
  rp = 0;
  # DEBUG BEGIN_STMT
  _46 = uds.table_seq;
  if (_46 == 3)
    goto <bb 35>; [INV]
  else
    goto <bb 66>; [INV]

  <bb 35> :
  # DEBUG BEGIN_STMT
  k = 1;
  # DEBUG BEGIN_STMT
  _47 = uds.can_length;
  if (_47 <= 7)
    goto <bb 36>; [INV]
  else
    goto <bb 38>; [INV]

  <bb 36> :
  # DEBUG BEGIN_STMT
  _48 = uds.can_length;
  _49 = (int) _48;
  _50 = _49 + -1;
  n = (uint32_t) _50;
  # DEBUG BEGIN_STMT
  _51 = uds.p_data;
  _52 = (long unsigned int) _51;
  _53 = n + _52;
  _54 = uds.tx_len;
  _55 = (long unsigned int) _54;
  if (_53 < _55)
    goto <bb 37>; [INV]
  else
    goto <bb 66>; [INV]

  <bb 37> :
  # DEBUG BEGIN_STMT
  rp = 0;
  # DEBUG BEGIN_STMT
  uds.table_seq = 0;
  goto <bb 66>; [INV]

  <bb 38> :
  # DEBUG BEGIN_STMT
  _56 = uds.consecutive_rx_num;
  _57 = uds.rx.buf[0];
  if (_56 == _57)
    goto <bb 39>; [INV]
  else
    goto <bb 40>; [INV]

  <bb 39> :
  # DEBUG BEGIN_STMT
  rp = 0;
  # DEBUG BEGIN_STMT
  uds.table_seq = 0;
  # DEBUG BEGIN_STMT
  OutStr ("#consecutive_num FAIL\n\r");
  goto <bb 66>; [INV]

  <bb 40> :
  # DEBUG BEGIN_STMT
  _58 = uds.rx.buf[0];
  uds.consecutive_rx_num = _58;
  # DEBUG BEGIN_STMT
  uds.c_wait_cf_10ms = 13;
  # DEBUG BEGIN_STMT
  i = k;
  goto <bb 53>; [INV]

  <bb 41> :
  # DEBUG BEGIN_STMT
  _59 = uds.consecutive_length_fail;
  if (_59 == 0)
    goto <bb 42>; [INV]
  else
    goto <bb 43>; [INV]

  <bb 42> :
  # DEBUG BEGIN_STMT
  _60 = (int) i;
  _61 = uds.pdata_wr;
  _62 = uds.p_data;
  _63 = (sizetype) _62;
  _64 = _61 + _63;
  _65 = uds.rx.buf[_60];
  *_64 = _65;

  <bb 43> :
  # DEBUG BEGIN_STMT
  _66 = uds.p_data;
  _67 = _66;
  _68 = _67 + 1;
  uds.p_data = _68;
  # DEBUG BEGIN_STMT
  _69 = uds.p_data;
  _70 = uds.tx_len;
  if (_69 >= _70)
    goto <bb 44>; [INV]
  else
    goto <bb 52>; [INV]

  <bb 44> :
  # DEBUG BEGIN_STMT
  _71 = uds.consecutive_length_fail;
  if (_71 == 1)
    goto <bb 45>; [INV]
  else
    goto <bb 46>; [INV]

  <bb 45> :
  # DEBUG BEGIN_STMT
  uds.tx.buf[0] = 3;
  # DEBUG BEGIN_STMT
  uds.tx.buf[1] = 127;
  # DEBUG BEGIN_STMT
  _72 = uds.sid;
  uds.tx.buf[2] = _72;
  # DEBUG BEGIN_STMT
  uds.tx.buf[3] = 19;
  # DEBUG BEGIN_STMT
  uds.response_to_negetive = 1;
  goto <bb 51>; [INV]

  <bb 46> :
  # DEBUG BEGIN_STMT
  _73 = uds.consecutive_length_fail;
  if (_73 == 2)
    goto <bb 47>; [INV]
  else
    goto <bb 48>; [INV]

  <bb 47> :
  # DEBUG BEGIN_STMT
  uds.tx.buf[0] = 3;
  # DEBUG BEGIN_STMT
  uds.tx.buf[1] = 127;
  # DEBUG BEGIN_STMT
  _74 = uds.sid;
  uds.tx.buf[2] = _74;
  # DEBUG BEGIN_STMT
  uds.tx.buf[3] = 51;
  # DEBUG BEGIN_STMT
  uds.response_to_negetive = 1;
  goto <bb 51>; [INV]

  <bb 48> :
  # DEBUG BEGIN_STMT
  uds_table_receve_finish (0);
  # DEBUG BEGIN_STMT
  _75 = uds.ntable;
  _76 = (int) _75;
  _77 = EEP_ADDR_TABLE[_76][7];
  if (_77 == 1)
    goto <bb 49>; [INV]
  else
    goto <bb 50>; [INV]

  <bb 49> :
  # DEBUG BEGIN_STMT
  uds.xreq_eep_write_did = 1;

  <bb 50> :
  # DEBUG BEGIN_STMT
  _78 = uds.response_to_negetive;
  _79 = (int) _78;
  _80 = uds.ntable;
  _81 = (int) _80;
  _82 = EEP_ADDR_TABLE[_81][7];
  _83 = uds.xreq_eep_write_did;
  _84 = (int) _83;
  monprintf ("CS end %d,%d,%d\n\r", _79, _82, _84);
  # DEBUG BEGIN_STMT
  rp = 1;

  <bb 51> :
  # DEBUG BEGIN_STMT
  uds.consecutive_length_fail = 0;
  # DEBUG BEGIN_STMT
  rp = 1;
  # DEBUG BEGIN_STMT
  goto <bb 66>; [INV]

  <bb 52> :
  # DEBUG BEGIN_STMT
  i.33_85 = i;
  i = i.33_85 + 1;

  <bb 53> :
  # DEBUG BEGIN_STMT
  if (i <= 7)
    goto <bb 41>; [INV]
  else
    goto <bb 66>; [INV]

  <bb 54> :
  # DEBUG BEGIN_STMT
  _86 = uds.rx.buf[0];
  _87 = (int) _86;
  _88 = _87 & 240;
  if (_88 == 48)
    goto <bb 55>; [INV]
  else
    goto <bb 65>; [INV]

  <bb 55> :
  # DEBUG BEGIN_STMT
  _89 = uds.can_length;
  if (_89 <= 2)
    goto <bb 56>; [INV]
  else
    goto <bb 57>; [INV]

  <bb 56> :
  # DEBUG BEGIN_STMT
  uds.table_seq = 0;
  goto <bb 64>; [INV]

  <bb 57> :
  # DEBUG BEGIN_STMT
  _90 = uds.rx.buf[0];
  if (_90 == 49)
    goto <bb 58>; [INV]
  else
    goto <bb 59>; [INV]

  <bb 58> :
  # DEBUG BEGIN_STMT
  uds.c_wait_flowcontrol_10ms = 11;
  goto <bb 64>; [INV]

  <bb 59> :
  # DEBUG BEGIN_STMT
  _91 = uds.wait_flowcontrol;
  if (_91 == 0)
    goto <bb 60>; [INV]
  else
    goto <bb 62>; [INV]

  <bb 60> :
  _92 = uds.rx.buf[0];
  if (_92 == 50)
    goto <bb 61>; [INV]
  else
    goto <bb 62>; [INV]

  <bb 61> :
  # DEBUG BEGIN_STMT
  uds.tx.buf[0] = 3;
  # DEBUG BEGIN_STMT
  uds.tx.buf[1] = 98;
  # DEBUG BEGIN_STMT
  _93 = uds.ntable_did;
  _94 = _93 >> 8;
  _95 = (unsigned char) _94;
  uds.tx.buf[2] = _95;
  # DEBUG BEGIN_STMT
  _96 = uds.ntable_did;
  _97 = (unsigned char) _96;
  uds.tx.buf[3] = _97;
  # DEBUG BEGIN_STMT
  // predicted unlikely by early return (on trees) predictor.
  goto <bb 71>; [INV]

  <bb 62> :
  # DEBUG BEGIN_STMT
  uds.wait_flowcontrol = 0;
  # DEBUG BEGIN_STMT
  _98 = uds.rx.buf[2];
  uds.flow_control_ms = _98;
  # DEBUG BEGIN_STMT
  _99 = uds.flow_control_ms;
  _100 = _99 + 3;
  uds.flow_control_ms = _100;
  # DEBUG BEGIN_STMT
  _101 = uds.flow_control_ms;
  uds.c_flow_control_ms = _101;
  # DEBUG BEGIN_STMT
  uds.c_wait_flowcontrol_10ms = 0;
  # DEBUG BEGIN_STMT
  _102 = uds.rx.buf[0];
  if (_102 > 49)
    goto <bb 63>; [INV]
  else
    goto <bb 64>; [INV]

  <bb 63> :
  # DEBUG BEGIN_STMT
  uds.table_seq = 0;

  <bb 64> :
  # DEBUG BEGIN_STMT
  rp = 0;
  goto <bb 66>; [INV]

  <bb 65> :
  # DEBUG BEGIN_STMT
  rp = 0;

  <bb 66> :
  # DEBUG BEGIN_STMT
  if (rp != 0)
    goto <bb 67>; [INV]
  else
    goto <bb 70>; [INV]

  <bb 67> :
  # DEBUG BEGIN_STMT
  _103 = uds.response_to_negetive;
  if (_103 == 1)
    goto <bb 68>; [INV]
  else
    goto <bb 69>; [INV]

  <bb 68> :
  # DEBUG BEGIN_STMT
  uds.tx.buf[1] = 127;

  <bb 69> :
  # DEBUG BEGIN_STMT
  uds.tx.xreq_send = 1;

  <bb 70> :
  # DEBUG BEGIN_STMT
  uds.response_to_negetive = 0;
  # DEBUG BEGIN_STMT
  uds.x2ms = 0;

  <bb 71> :
  return;

}


uds_first_frame ()
{
  uint8_t rp;
  uint16_t k;
  uint8_t D.7306;

  <bb 2> :
  # DEBUG BEGIN_STMT
  k = 0;
  # DEBUG BEGIN_STMT
  rp = 1;
  # DEBUG BEGIN_STMT
  uds.nrc = 0;
  # DEBUG BEGIN_STMT
  uds.response_to_negetive = 0;
  # DEBUG BEGIN_STMT
  _1 = uds.rx.buf[2];
  uds.sid = _1;
  # DEBUG BEGIN_STMT
  uds.response_to_negetive = 0;
  # DEBUG BEGIN_STMT
  uds.nrc = 0;
  # DEBUG BEGIN_STMT
  _2 = uds.sid;
  if (_2 == 49)
    goto <bb 6>; [INV]
  else
    goto <bb 3>; [INV]

  <bb 3> :
  _3 = uds.sid;
  if (_3 == 52)
    goto <bb 6>; [INV]
  else
    goto <bb 4>; [INV]

  <bb 4> :
  _4 = uds.sid;
  if (_4 == 46)
    goto <bb 6>; [INV]
  else
    goto <bb 5>; [INV]

  <bb 5> :
  _5 = uds.sid;
  if (_5 == 54)
    goto <bb 6>; [INV]
  else
    goto <bb 11>; [INV]

  <bb 6> :
  # DEBUG BEGIN_STMT
  uds.consecutive_length_fail = 0;
  # DEBUG BEGIN_STMT
  _6 = uds.sid;
  if (_6 == 46)
    goto <bb 7>; [INV]
  else
    goto <bb 10>; [INV]

  <bb 7> :
  _7 = uds.session;
  if (_7 <= 1)
    goto <bb 9>; [INV]
  else
    goto <bb 8>; [INV]

  <bb 8> :
  _8 = uds.rom_access_level;
  if (_8 == 0)
    goto <bb 9>; [INV]
  else
    goto <bb 10>; [INV]

  <bb 9> :
  # DEBUG BEGIN_STMT
  uds.nrc = 126;
  # DEBUG BEGIN_STMT
  uds.tx.buf[0] = 3;
  # DEBUG BEGIN_STMT
  uds.tx.buf[1] = 127;
  # DEBUG BEGIN_STMT
  _9 = uds.sid;
  uds.tx.buf[2] = _9;
  # DEBUG BEGIN_STMT
  _10 = uds.nrc;
  uds.tx.buf[3] = _10;
  # DEBUG BEGIN_STMT
  uds.response_to_negetive = 1;
  goto <bb 11>; [INV]

  <bb 10> :
  # DEBUG BEGIN_STMT
  _11 = (unsigned char) k;
  rp = uds_SID_FF_dataread (_11);

  <bb 11> :
  # DEBUG BEGIN_STMT
  D.7306 = rp;
  return D.7306;

}


uds_SID_FF_NULL (uint8_t k)
{
  uint8_t rp;
  uint8_t i;
  uint8_t D.7294;

  <bb 2> :
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  rp = 1;
  # DEBUG BEGIN_STMT
  uds.write_data_type = 0;
  # DEBUG BEGIN_STMT
  _1 = uds.rx.buf[0];
  _2 = (short unsigned int) _1;
  _3 = _2 & 15;
  uds.tx_len = _3;
  # DEBUG BEGIN_STMT
  _4 = uds.tx_len;
  _5 = _4 << 8;
  uds.tx_len = _5;
  # DEBUG BEGIN_STMT
  _6 = uds.tx_len;
  _7 = uds.rx.buf[1];
  _8 = (short unsigned int) _7;
  _9 = _6 + _8;
  uds.tx_len = _9;
  # DEBUG BEGIN_STMT
  _10 = uds.tx_len;
  if (_10 > 200)
    goto <bb 3>; [INV]
  else
    goto <bb 4>; [INV]

  <bb 3> :
  # DEBUG BEGIN_STMT
  uds.tx_len = 200;

  <bb 4> :
  # DEBUG BEGIN_STMT
  uds.ntable = 0;
  # DEBUG BEGIN_STMT
  _11 = uds.rx.buf[2];
  uds.table_control = _11;
  # DEBUG BEGIN_STMT
  _12 = uds.rx.buf[3];
  _13 = (short unsigned int) _12;
  uds.ntable_did = _13;
  # DEBUG BEGIN_STMT
  _14 = uds.ntable_did;
  _15 = _14 << 8;
  uds.ntable_did = _15;
  # DEBUG BEGIN_STMT
  _16 = uds.ntable_did;
  _17 = uds.rx.buf[4];
  _18 = (short unsigned int) _17;
  _19 = _16 + _18;
  uds.ntable_did = _19;
  # DEBUG BEGIN_STMT
  uds.table_seq = 3;
  # DEBUG BEGIN_STMT
  uds.consecutive_rx_num = 32;
  # DEBUG BEGIN_STMT
  uds.pdata_wr = &TABLE_DTC_SEND;
  # DEBUG BEGIN_STMT
  uds.p_data = 0;
  # DEBUG BEGIN_STMT
  i = 3;
  goto <bb 6>; [INV]

  <bb 5> :
  # DEBUG BEGIN_STMT
  _20 = (int) i;
  _21 = uds.p_data;
  _22 = _21;
  _23 = _22 + 1;
  uds.p_data = _23;
  _24 = (int) _22;
  _25 = uds.rx.buf[_20];
  uds.data[_24] = _25;
  # DEBUG BEGIN_STMT
  i.29_26 = i;
  i = i.29_26 + 1;

  <bb 6> :
  # DEBUG BEGIN_STMT
  if (i <= 7)
    goto <bb 5>; [INV]
  else
    goto <bb 7>; [INV]

  <bb 7> :
  # DEBUG BEGIN_STMT
  set_flow_control ();
  # DEBUG BEGIN_STMT
  D.7294 = rp;
  return D.7294;

}


uds_SID_FF_dataread (uint8_t k)
{
  uint8_t rp;
  uint16_t nt;
  uint16_t n;
  uint8_t D.7290;

  <bb 2> :
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  rp = 1;
  # DEBUG BEGIN_STMT
  uds.write_data_type = 15;
  # DEBUG BEGIN_STMT
  _1 = uds.rx.buf[0];
  _2 = (short unsigned int) _1;
  _3 = _2 & 15;
  uds.tx_len = _3;
  # DEBUG BEGIN_STMT
  _4 = uds.tx_len;
  _5 = _4 << 8;
  uds.tx_len = _5;
  # DEBUG BEGIN_STMT
  _6 = uds.tx_len;
  _7 = uds.rx.buf[1];
  _8 = (short unsigned int) _7;
  _9 = _6 + _8;
  uds.tx_len = _9;
  # DEBUG BEGIN_STMT
  uds.pdata_wr = &uds.data;
  # DEBUG BEGIN_STMT
  uds.table_seq = 3;
  # DEBUG BEGIN_STMT
  uds.consecutive_rx_num = 32;
  # DEBUG BEGIN_STMT
  _10 = uds.sid;
  if (_10 == 47)
    goto <bb 3>; [INV]
  else
    goto <bb 4>; [INV]

  <bb 3> :
  # DEBUG BEGIN_STMT
  uds.table_control = 46;
  # DEBUG BEGIN_STMT
  uds.table_seq = 3;
  # DEBUG BEGIN_STMT
  uds.pdata_wr = &uds.io_control_parameter[0];
  # DEBUG BEGIN_STMT
  _11 = uds.rx.buf[3];
  n = (uint16_t) _11;
  # DEBUG BEGIN_STMT
  n = n << 8;
  # DEBUG BEGIN_STMT
  _12 = uds.rx.buf[4];
  _13 = (short unsigned int) _12;
  n = n + _13;
  # DEBUG BEGIN_STMT
  uds.io_control_did = n;
  # DEBUG BEGIN_STMT
  _14 = uds.rx.buf[5];
  uds.io_control_parm = _14;
  # DEBUG BEGIN_STMT
  uds.ntable_did = n;
  # DEBUG BEGIN_STMT
  _15 = uds.tx_len;
  _16 = _15 + 65533;
  uds.tx_len = _16;
  # DEBUG BEGIN_STMT
  _17 = uds.tx_len;
  _18 = (unsigned char) _17;
  uds.io_control_parameter_len = _18;
  # DEBUG BEGIN_STMT
  uds.p_data = 0;
  # DEBUG BEGIN_STMT
  _19 = uds.pdata_wr;
  _20 = uds.p_data;
  _21 = _20;
  _22 = _21 + 1;
  uds.p_data = _22;
  _23 = (sizetype) _21;
  _24 = _19 + _23;
  _25 = uds.rx.buf[4];
  *_24 = _25;
  # DEBUG BEGIN_STMT
  _26 = uds.pdata_wr;
  _27 = uds.p_data;
  _28 = _27;
  _29 = _28 + 1;
  uds.p_data = _29;
  _30 = (sizetype) _28;
  _31 = _26 + _30;
  _32 = uds.rx.buf[5];
  *_31 = _32;
  # DEBUG BEGIN_STMT
  _33 = uds.pdata_wr;
  _34 = uds.p_data;
  _35 = _34;
  _36 = _35 + 1;
  uds.p_data = _36;
  _37 = (sizetype) _35;
  _38 = _33 + _37;
  _39 = uds.rx.buf[6];
  *_38 = _39;
  # DEBUG BEGIN_STMT
  _40 = uds.pdata_wr;
  _41 = uds.p_data;
  _42 = _41;
  _43 = _42 + 1;
  uds.p_data = _43;
  _44 = (sizetype) _42;
  _45 = _40 + _44;
  _46 = uds.rx.buf[7];
  *_45 = _46;
  # DEBUG BEGIN_STMT
  set_flow_control ();
  goto <bb 9>; [INV]

  <bb 4> :
  # DEBUG BEGIN_STMT
  _47 = uds.rx.buf[3];
  n = (uint16_t) _47;
  # DEBUG BEGIN_STMT
  n = n << 8;
  # DEBUG BEGIN_STMT
  _48 = uds.rx.buf[4];
  _49 = (short unsigned int) _48;
  n = n + _49;
  # DEBUG BEGIN_STMT
  uds.ntable_did = n;
  # DEBUG BEGIN_STMT
  _50 = uds.ntable_did;
  nt = table_did_maping (_50);
  # DEBUG BEGIN_STMT
  if (nt == 65535)
    goto <bb 5>; [INV]
  else
    goto <bb 6>; [INV]

  <bb 5> :
  # DEBUG BEGIN_STMT
  uds.nrc = 49;
  # DEBUG BEGIN_STMT
  uds.tx.buf[0] = 3;
  # DEBUG BEGIN_STMT
  uds.tx.buf[1] = 127;
  # DEBUG BEGIN_STMT
  _51 = uds.sid;
  uds.tx.buf[2] = _51;
  # DEBUG BEGIN_STMT
  _52 = uds.nrc;
  uds.tx.buf[3] = _52;
  goto <bb 9>; [INV]

  <bb 6> :
  # DEBUG BEGIN_STMT
  _53 = (int) nt;
  _54 = EEP_ADDR_TABLE[_53][7];
  if (_54 == 0)
    goto <bb 7>; [INV]
  else
    goto <bb 8>; [INV]

  <bb 7> :
  # DEBUG BEGIN_STMT
  uds.nrc = 49;
  # DEBUG BEGIN_STMT
  uds.tx.buf[0] = 3;
  # DEBUG BEGIN_STMT
  uds.tx.buf[1] = 127;
  # DEBUG BEGIN_STMT
  _55 = uds.sid;
  uds.tx.buf[2] = _55;
  # DEBUG BEGIN_STMT
  _56 = uds.nrc;
  uds.tx.buf[3] = _56;
  goto <bb 9>; [INV]

  <bb 8> :
  # DEBUG BEGIN_STMT
  uds.ntable = nt;
  # DEBUG BEGIN_STMT
  uds.table_control = 46;
  # DEBUG BEGIN_STMT
  uds.table_seq = 3;
  # DEBUG BEGIN_STMT
  _57 = uds.ntable;
  _58 = (int) _57;
  _59 = EEP_ADDR_TABLE[_58][3];
  _60 = (uint8_t *) _59;
  uds.pdata_wr = _60;
  # DEBUG BEGIN_STMT
  _61 = uds.ntable;
  _62 = (int) _61;
  _63 = EEP_ADDR_TABLE[_62][2];
  _64 = (short unsigned int) _63;
  uds.tx_len = _64;
  # DEBUG BEGIN_STMT
  uds.p_data = 0;
  # DEBUG BEGIN_STMT
  _65 = uds.pdata_wr;
  _66 = uds.p_data;
  _67 = _66;
  _68 = _67 + 1;
  uds.p_data = _68;
  _69 = (sizetype) _67;
  _70 = _65 + _69;
  _71 = uds.rx.buf[5];
  *_70 = _71;
  # DEBUG BEGIN_STMT
  _72 = uds.pdata_wr;
  _73 = uds.p_data;
  _74 = _73;
  _75 = _74 + 1;
  uds.p_data = _75;
  _76 = (sizetype) _74;
  _77 = _72 + _76;
  _78 = uds.rx.buf[6];
  *_77 = _78;
  # DEBUG BEGIN_STMT
  _79 = uds.pdata_wr;
  _80 = uds.p_data;
  _81 = _80;
  _82 = _81 + 1;
  uds.p_data = _82;
  _83 = (sizetype) _81;
  _84 = _79 + _83;
  _85 = uds.rx.buf[7];
  *_84 = _85;
  # DEBUG BEGIN_STMT
  set_flow_control ();

  <bb 9> :
  # DEBUG BEGIN_STMT
  D.7290 = rp;
  return D.7290;

}


uds_single_frame ()
{
  uint8_t rp;
  uint8_t k;
  uint8_t i;
  uint8_t D.7222;

  <bb 2> :
  # DEBUG BEGIN_STMT
  rp = 1;
  # DEBUG BEGIN_STMT
  _1 = uds.rx.buf[1];
  uds.sid = _1;
  # DEBUG BEGIN_STMT
  _2 = uds.rx.buf[0];
  uds.length = _2;
  # DEBUG BEGIN_STMT
  uds.response_to_negetive = 0;
  # DEBUG BEGIN_STMT
  _3 = uds.can_length;
  _4 = uds.length;
  if (_3 <= _4)
    goto <bb 3>; [INV]
  else
    goto <bb 4>; [INV]

  <bb 3> :
  # DEBUG BEGIN_STMT
  rp = 0;
  # DEBUG BEGIN_STMT
  D.7222 = rp;
  // predicted unlikely by early return (on trees) predictor.
  goto <bb 52>; [INV]

  <bb 4> :
  # DEBUG BEGIN_STMT
  _5 = uds.length;
  _6 = _5 + 255;
  if (_6 > 6)
    goto <bb 5>; [INV]
  else
    goto <bb 6>; [INV]

  <bb 5> :
  # DEBUG BEGIN_STMT
  rp = 0;
  # DEBUG BEGIN_STMT
  D.7222 = rp;
  // predicted unlikely by early return (on trees) predictor.
  goto <bb 52>; [INV]

  <bb 6> :
  # DEBUG BEGIN_STMT
  uds_single_frame_error_check ();
  # DEBUG BEGIN_STMT
  _7 = uds.response_to_negetive;
  if (_7 == 1)
    goto <bb 7>; [INV]
  else
    goto <bb 11>; [INV]

  <bb 7> :
  # DEBUG BEGIN_STMT
  _8 = uds.can_id;
  if (_8 == 2015)
    goto <bb 8>; [INV]
  else
    goto <bb 10>; [INV]

  <bb 8> :
  _9 = uds.nrc;
  _10 = _9 + 239;
  if (_10 <= 1)
    goto <bb 9>; [INV]
  else
    goto <bb 10>; [INV]

  <bb 9> :
  # DEBUG BEGIN_STMT
  uds.response_to_negetive = 0;
  # DEBUG BEGIN_STMT
  rp = 0;

  <bb 10> :
  # DEBUG BEGIN_STMT
  D.7222 = rp;
  // predicted unlikely by early return (on trees) predictor.
  goto <bb 52>; [INV]

  <bb 11> :
  # DEBUG BEGIN_STMT
  _11 = uds.sid;
  k = _11 | 64;
  # DEBUG BEGIN_STMT
  _12 = uds.rx.buf[1];
  if (_12 == 16)
    goto <bb 12>; [INV]
  else
    goto <bb 13>; [INV]

  <bb 12> :
  # DEBUG BEGIN_STMT
  rp = uds_SID_DiagnosticSessionControl (k);
  goto <bb 51>; [INV]

  <bb 13> :
  # DEBUG BEGIN_STMT
  _13 = uds.rx.buf[1];
  if (_13 == 32)
    goto <bb 14>; [INV]
  else
    goto <bb 15>; [INV]

  <bb 14> :
  # DEBUG BEGIN_STMT
  rp = uds_SID_StopDiagnosticSession (k);
  goto <bb 51>; [INV]

  <bb 15> :
  # DEBUG BEGIN_STMT
  _14 = uds.rx.buf[1];
  if (_14 == 133)
    goto <bb 16>; [INV]
  else
    goto <bb 17>; [INV]

  <bb 16> :
  # DEBUG BEGIN_STMT
  rp = uds_SID_ControlDTCSetting (k);
  goto <bb 51>; [INV]

  <bb 17> :
  # DEBUG BEGIN_STMT
  _15 = uds.sid;
  if (_15 == 42)
    goto <bb 18>; [INV]
  else
    goto <bb 19>; [INV]

  <bb 18> :
  # DEBUG BEGIN_STMT
  _16 = uds.rx.buf[3];
  uds.ReadDataByPeriodicIdentifier_10ms = _16;
  # DEBUG BEGIN_STMT
  uds.tx.buf[0] = 2;
  # DEBUG BEGIN_STMT
  uds.tx.buf[1] = 106;
  # DEBUG BEGIN_STMT
  _17 = uds.rx.buf[2];
  uds.tx.buf[2] = _17;
  goto <bb 51>; [INV]

  <bb 19> :
  # DEBUG BEGIN_STMT
  _18 = uds.sid;
  if (_18 == 34)
    goto <bb 20>; [INV]
  else
    goto <bb 21>; [INV]

  <bb 20> :
  # DEBUG BEGIN_STMT
  rp = uds_SID_ReadDataByIdentifier (k);
  goto <bb 51>; [INV]

  <bb 21> :
  # DEBUG BEGIN_STMT
  _19 = uds.sid;
  if (_19 == 46)
    goto <bb 22>; [INV]
  else
    goto <bb 23>; [INV]

  <bb 22> :
  # DEBUG BEGIN_STMT
  rp = uds_SID_WriteDataByIdentifier (k);
  goto <bb 51>; [INV]

  <bb 23> :
  # DEBUG BEGIN_STMT
  _20 = uds.sid;
  if (_20 == 40)
    goto <bb 24>; [INV]
  else
    goto <bb 25>; [INV]

  <bb 24> :
  # DEBUG BEGIN_STMT
  rp = uds_SID_CommunicationControl (k);
  goto <bb 51>; [INV]

  <bb 25> :
  # DEBUG BEGIN_STMT
  _21 = uds.sid;
  if (_21 == 47)
    goto <bb 26>; [INV]
  else
    goto <bb 29>; [INV]

  <bb 26> :
  # DEBUG BEGIN_STMT
  uds.tx.buf[0] = 6;
  # DEBUG BEGIN_STMT
  uds.tx.buf[1] = 111;
  # DEBUG BEGIN_STMT
  i = 0;
  goto <bb 28>; [INV]

  <bb 27> :
  # DEBUG BEGIN_STMT
  _22 = (unsigned int) i;
  _23 = _22 + 2;
  _24 = (unsigned int) i;
  _25 = _24 + 2;
  _26 = uds.rx.buf[_23];
  uds.tx.buf[_25] = _26;
  # DEBUG BEGIN_STMT
  i.27_27 = i;
  i = i.27_27 + 1;

  <bb 28> :
  # DEBUG BEGIN_STMT
  if (i <= 5)
    goto <bb 27>; [INV]
  else
    goto <bb 51>; [INV]

  <bb 29> :
  # DEBUG BEGIN_STMT
  _28 = uds.sid;
  if (_28 == 20)
    goto <bb 30>; [INV]
  else
    goto <bb 35>; [INV]

  <bb 30> :
  # DEBUG BEGIN_STMT
  uds_tx_buf_clear ();
  # DEBUG BEGIN_STMT
  _29 = uds.group_of_dtc;
  if (_29 == 16777215)
    goto <bb 32>; [INV]
  else
    goto <bb 31>; [INV]

  <bb 31> :
  _30 = uds.group_of_dtc;
  if (_30 == 4194559)
    goto <bb 32>; [INV]
  else
    goto <bb 33>; [INV]

  <bb 32> :
  # DEBUG BEGIN_STMT
  uds.xreq_dtc_clear = 1;
  goto <bb 34>; [INV]

  <bb 33> :
  # DEBUG BEGIN_STMT
  _31 = uds.group_of_dtc;
  dtc_found_and_clear (_31);

  <bb 34> :
  # DEBUG BEGIN_STMT
  uds.tx.buf[0] = 1;
  # DEBUG BEGIN_STMT
  uds.tx.buf[1] = 84;
  goto <bb 51>; [INV]

  <bb 35> :
  # DEBUG BEGIN_STMT
  _32 = uds.sid;
  if (_32 == 39)
    goto <bb 36>; [INV]
  else
    goto <bb 37>; [INV]

  <bb 36> :
  # DEBUG BEGIN_STMT
  rp = uds_SID_SecurityAccess (k);
  goto <bb 51>; [INV]

  <bb 37> :
  # DEBUG BEGIN_STMT
  _33 = uds.sid;
  if (_33 == 25)
    goto <bb 38>; [INV]
  else
    goto <bb 39>; [INV]

  <bb 38> :
  # DEBUG BEGIN_STMT
  rp = uds_interrupt_sid_dtc ();
  goto <bb 51>; [INV]

  <bb 39> :
  # DEBUG BEGIN_STMT
  _34 = uds.sid;
  if (_34 == 49)
    goto <bb 40>; [INV]
  else
    goto <bb 44>; [INV]

  <bb 40> :
  # DEBUG BEGIN_STMT
  i = 0;
  goto <bb 42>; [INV]

  <bb 41> :
  # DEBUG BEGIN_STMT
  _35 = (int) i;
  _36 = _35 + 1;
  _37 = (int) i;
  _38 = uds.rx.buf[_36];
  uds.data[_37] = _38;
  # DEBUG BEGIN_STMT
  i.28_39 = i;
  i = i.28_39 + 1;

  <bb 42> :
  # DEBUG BEGIN_STMT
  if (i <= 6)
    goto <bb 41>; [INV]
  else
    goto <bb 43>; [INV]

  <bb 43> :
  # DEBUG BEGIN_STMT
  rp = uds_SID_RoutineControl (k);
  goto <bb 51>; [INV]

  <bb 44> :
  # DEBUG BEGIN_STMT
  _40 = uds.sid;
  if (_40 == 17)
    goto <bb 45>; [INV]
  else
    goto <bb 46>; [INV]

  <bb 45> :
  # DEBUG BEGIN_STMT
  uds.tx.buf[0] = 2;
  # DEBUG BEGIN_STMT
  uds.tx.buf[1] = k;
  # DEBUG BEGIN_STMT
  _41 = uds.rx.buf[2];
  uds.tx.buf[2] = _41;
  # DEBUG BEGIN_STMT
  send_uds_tx ();
  # DEBUG BEGIN_STMT
  OutStr ("SID_ECUReset:reset\n\r");
  # DEBUG BEGIN_STMT
  OutStr ("APP JUMP FAIL\n\r");
  goto <bb 51>; [INV]

  <bb 46> :
  # DEBUG BEGIN_STMT
  _42 = uds.sid;
  if (_42 == 62)
    goto <bb 47>; [INV]
  else
    goto <bb 50>; [INV]

  <bb 47> :
  # DEBUG BEGIN_STMT
  _43 = uds.rx.buf[2];
  _44 = (signed char) _43;
  if (_44 < 0)
    goto <bb 48>; [INV]
  else
    goto <bb 49>; [INV]

  <bb 48> :
  # DEBUG BEGIN_STMT
  rp = 0;
  goto <bb 51>; [INV]

  <bb 49> :
  # DEBUG BEGIN_STMT
  uds.tx.buf[0] = 2;
  # DEBUG BEGIN_STMT
  _45 = uds.rx.buf[1];
  _46 = _45 | 64;
  uds.tx.buf[1] = _46;
  # DEBUG BEGIN_STMT
  _47 = uds.rx.buf[2];
  uds.tx.buf[2] = _47;
  # DEBUG BEGIN_STMT
  rp = 1;
  goto <bb 51>; [INV]

  <bb 50> :
  # DEBUG BEGIN_STMT
  rp = 0;
  # DEBUG BEGIN_STMT
  avoid_empty_block ();

  <bb 51> :
  # DEBUG BEGIN_STMT
  D.7222 = rp;

  <bb 52> :
  return D.7222;

}


uds_data_receve_finish (uint8_t print)
{
  uint8_t rp;
  uint8_t D.7218;

  <bb 2> :
  # DEBUG BEGIN_STMT
  rp = 1;
  # DEBUG BEGIN_STMT
  uds.nrc = 0;
  # DEBUG BEGIN_STMT
  _1 = uds.response_to_negetive;
  if (_1 == 1)
    goto <bb 3>; [INV]
  else
    goto <bb 4>; [INV]

  <bb 3> :
  # DEBUG BEGIN_STMT
  uds.tx.buf[1] = 127;
  # DEBUG BEGIN_STMT
  uds.response_to_negetive = 0;

  <bb 4> :
  # DEBUG BEGIN_STMT
  _2 = uds.sid;
  if (_2 == 49)
    goto <bb 5>; [INV]
  else
    goto <bb 9>; [INV]

  <bb 5> :
  # DEBUG BEGIN_STMT
  _3 = uds.length;
  if (_3 > 6)
    goto <bb 6>; [INV]
  else
    goto <bb 7>; [INV]

  <bb 6> :
  # DEBUG BEGIN_STMT
  uds.nrc = 19;
  goto <bb 11>; [INV]

  <bb 7> :
  # DEBUG BEGIN_STMT
  _4 = uds.rx.buf[2];
  _5 = _4 + 255;
  if (_5 > 2)
    goto <bb 8>; [INV]
  else
    goto <bb 11>; [INV]

  <bb 8> :
  # DEBUG BEGIN_STMT
  uds.nrc = 49;
  goto <bb 11>; [INV]

  <bb 9> :
  # DEBUG BEGIN_STMT
  _6 = uds.sid;
  if (_6 == 52)
    goto <bb 10>; [INV]
  else
    goto <bb 11>; [INV]

  <bb 10> :
  # DEBUG BEGIN_STMT
  uds.nrc = 18;

  <bb 11> :
  # DEBUG BEGIN_STMT
  D.7218 = rp;
  return D.7218;

}


uds_SID_SecurityAccess (uint8_t k)
{
  uint8_t * p;
  uint8_t rp;
  uint32_t add;
  uint8_t D.7188;

  <bb 2> :
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  rp = 1;
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = uds.session;
  if (_1 <= 1)
    goto <bb 3>; [INV]
  else
    goto <bb 4>; [INV]

  <bb 3> :
  # DEBUG BEGIN_STMT
  uds.tx.buf[0] = 3;
  # DEBUG BEGIN_STMT
  uds.tx.buf[1] = 127;
  # DEBUG BEGIN_STMT
  _2 = uds.rx.buf[1];
  uds.tx.buf[2] = _2;
  # DEBUG BEGIN_STMT
  uds.tx.buf[3] = 127;
  goto <bb 30>; [INV]

  <bb 4> :
  # DEBUG BEGIN_STMT
  _3 = uds.rx.buf[2];
  if (_3 == 1)
    goto <bb 6>; [INV]
  else
    goto <bb 5>; [INV]

  <bb 5> :
  _4 = uds.rx.buf[2];
  if (_4 == 5)
    goto <bb 6>; [INV]
  else
    goto <bb 14>; [INV]

  <bb 6> :
  # DEBUG BEGIN_STMT
  uds.tx.buf[0] = 6;
  # DEBUG BEGIN_STMT
  uds.tx.buf[1] = k;
  # DEBUG BEGIN_STMT
  _5 = uds.rx.buf[2];
  uds.tx.buf[2] = _5;
  # DEBUG BEGIN_STMT
  _6 = uds.rom_access_level;
  if (_6 == 1)
    goto <bb 7>; [INV]
  else
    goto <bb 9>; [INV]

  <bb 7> :
  _7 = uds.rx.buf[2];
  if (_7 == 1)
    goto <bb 8>; [INV]
  else
    goto <bb 9>; [INV]

  <bb 8> :
  # DEBUG BEGIN_STMT
  uds.seed[0] = 0;
  # DEBUG BEGIN_STMT
  uds.seed[1] = 0;
  # DEBUG BEGIN_STMT
  uds.seed[2] = 0;
  # DEBUG BEGIN_STMT
  uds.seed[3] = 0;
  goto <bb 10>; [INV]

  <bb 9> :
  # DEBUG BEGIN_STMT
  _8 = uds.r_seed;
  uds.seed[0] = _8;
  # DEBUG BEGIN_STMT
  _9 = uds.r_seed;
  _10 = _9 + 17;
  uds.seed[1] = _10;
  # DEBUG BEGIN_STMT
  _11 = uds.r_seed;
  _12 = _11 + 34;
  uds.seed[2] = _12;
  # DEBUG BEGIN_STMT
  _13 = uds.r_seed;
  _14 = _13 + 52;
  uds.seed[3] = _14;

  <bb 10> :
  # DEBUG BEGIN_STMT
  _15 = uds.seed[0];
  uds.tx.buf[3] = _15;
  # DEBUG BEGIN_STMT
  _16 = uds.seed[1];
  uds.tx.buf[4] = _16;
  # DEBUG BEGIN_STMT
  _17 = uds.seed[2];
  uds.tx.buf[5] = _17;
  # DEBUG BEGIN_STMT
  _18 = uds.seed[3];
  uds.tx.buf[6] = _18;
  # DEBUG BEGIN_STMT
  _19 = uds.seed[0];
  add = (uint32_t) _19;
  # DEBUG BEGIN_STMT
  add = add << 8;
  # DEBUG BEGIN_STMT
  _20 = uds.seed[1];
  _21 = (long unsigned int) _20;
  add = add + _21;
  # DEBUG BEGIN_STMT
  add = add << 8;
  # DEBUG BEGIN_STMT
  _22 = uds.seed[2];
  _23 = (long unsigned int) _22;
  add = add + _23;
  # DEBUG BEGIN_STMT
  add = add << 8;
  # DEBUG BEGIN_STMT
  _24 = uds.seed[3];
  _25 = (long unsigned int) _24;
  add = add + _25;
  # DEBUG BEGIN_STMT
  _26 = uds.rx.buf[2];
  if (_26 == 1)
    goto <bb 11>; [INV]
  else
    goto <bb 12>; [INV]

  <bb 11> :
  # DEBUG BEGIN_STMT
  add = seedToKey (add, 1);
  goto <bb 13>; [INV]

  <bb 12> :
  # DEBUG BEGIN_STMT
  add = seedToKey (add, 2);

  <bb 13> :
  # DEBUG BEGIN_STMT
  _27 = add >> 24;
  _28 = (unsigned char) _27;
  uds.seed[0] = _28;
  # DEBUG BEGIN_STMT
  _29 = add >> 16;
  _30 = (unsigned char) _29;
  uds.seed[1] = _30;
  # DEBUG BEGIN_STMT
  _31 = add >> 8;
  _32 = (unsigned char) _31;
  uds.seed[2] = _32;
  # DEBUG BEGIN_STMT
  _33 = (unsigned char) add;
  uds.seed[3] = _33;
  # DEBUG BEGIN_STMT
  uds.wait_key = 1;
  goto <bb 30>; [INV]

  <bb 14> :
  # DEBUG BEGIN_STMT
  _34 = uds.rx.buf[2];
  if (_34 == 2)
    goto <bb 16>; [INV]
  else
    goto <bb 15>; [INV]

  <bb 15> :
  _35 = uds.rx.buf[2];
  if (_35 == 6)
    goto <bb 16>; [INV]
  else
    goto <bb 30>; [INV]

  <bb 16> :
  # DEBUG BEGIN_STMT
  _36 = uds.wait_key;
  if (_36 != 1)
    goto <bb 17>; [INV]
  else
    goto <bb 18>; [INV]

  <bb 17> :
  # DEBUG BEGIN_STMT
  uds.wait_key = 0;
  # DEBUG BEGIN_STMT
  uds.tx.buf[0] = 3;
  # DEBUG BEGIN_STMT
  uds.tx.buf[1] = 127;
  # DEBUG BEGIN_STMT
  _37 = uds.sid;
  uds.tx.buf[2] = _37;
  # DEBUG BEGIN_STMT
  uds.tx.buf[3] = 36;
  # DEBUG BEGIN_STMT
  uds.response_to_negetive = 1;
  # DEBUG BEGIN_STMT
  D.7188 = rp;
  // predicted unlikely by early return (on trees) predictor.
  goto <bb 31>; [INV]

  <bb 18> :
  # DEBUG BEGIN_STMT
  uds.wait_key = 0;
  # DEBUG BEGIN_STMT
  _38 = uds.rx.buf[3];
  _39 = uds.seed[0];
  if (_38 == _39)
    goto <bb 19>; [INV]
  else
    goto <bb 21>; [INV]

  <bb 19> :
  _40 = uds.rx.buf[4];
  _41 = uds.seed[1];
  if (_40 == _41)
    goto <bb 20>; [INV]
  else
    goto <bb 21>; [INV]

  <bb 20> :
  _42 = BIT_FIELD_REF <MEM[(void *)&uds], 16, 104>;
  _43 = (unsigned int) _42;
  _44 = (short unsigned int) _43;
  _45 = _44;
  _46 = BIT_FIELD_REF <MEM[(void *)&uds], 16, 3392>;
  _47 = _46;
  if (_45 == _47)
    goto <bb 22>; [INV]
  else
    goto <bb 21>; [INV]

  <bb 21> :
  # DEBUG BEGIN_STMT
  uds.tx.buf[0] = 3;
  # DEBUG BEGIN_STMT
  uds.tx.buf[1] = 127;
  # DEBUG BEGIN_STMT
  _48 = uds.sid;
  uds.tx.buf[2] = _48;
  # DEBUG BEGIN_STMT
  uds.tx.buf[3] = 53;
  # DEBUG BEGIN_STMT
  uds.response_to_negetive = 1;

  <bb 22> :
  # DEBUG BEGIN_STMT
  _49 = uds.rx.buf[2];
  if (_49 == 6)
    goto <bb 23>; [INV]
  else
    goto <bb 25>; [INV]

  <bb 23> :
  # DEBUG BEGIN_STMT
  p = 4198432B;
  # DEBUG BEGIN_STMT
  _50 = *p;
  if (_50 != 66)
    goto <bb 24>; [INV]
  else
    goto <bb 25>; [INV]

  <bb 24> :
  # DEBUG BEGIN_STMT
  uds.response_to_negetive = 1;
  # DEBUG BEGIN_STMT
  monprintf ("No boot\n\r");

  <bb 25> :
  # DEBUG BEGIN_STMT
  _51 = uds.response_to_negetive;
  if (_51 == 0)
    goto <bb 26>; [INV]
  else
    goto <bb 30>; [INV]

  <bb 26> :
  # DEBUG BEGIN_STMT
  uds.tx.buf[0] = 2;
  # DEBUG BEGIN_STMT
  uds.tx.buf[1] = k;
  # DEBUG BEGIN_STMT
  _52 = uds.rx.buf[2];
  uds.tx.buf[2] = _52;
  # DEBUG BEGIN_STMT
  rp = 0;
  # DEBUG BEGIN_STMT
  send_uds_tx ();
  # DEBUG BEGIN_STMT
  _53 = uds.rx.buf[2];
  if (_53 == 6)
    goto <bb 27>; [INV]
  else
    goto <bb 28>; [INV]

  <bb 27> :
  # DEBUG BEGIN_STMT
  uds.rom_access_level = 2;
  # DEBUG BEGIN_STMT
  uds.XREQ_UDS_RESET = 1;
  # DEBUG BEGIN_STMT
  OutStr ("reset\n\r");
  # DEBUG BEGIN_STMT
  OutStr ("reset\n\r");
  # DEBUG BEGIN_STMT
  OutStr ("reset\n\r");
  goto <bb 30>; [INV]

  <bb 28> :
  # DEBUG BEGIN_STMT
  _54 = uds.session;
  _55 = _54 + 254;
  if (_55 <= 1)
    goto <bb 29>; [INV]
  else
    goto <bb 30>; [INV]

  <bb 29> :
  # DEBUG BEGIN_STMT
  uds.rom_access_level = 1;

  <bb 30> :
  # DEBUG BEGIN_STMT
  D.7188 = rp;

  <bb 31> :
  return D.7188;

}


seedToKey (uint32_t seed, uint8_t level)
{
  uint32_t MASK;
  uint16_t i;
  uint32_t key;
  uint32_t D.7167;

  <bb 2> :
  # DEBUG BEGIN_STMT
  key = 0;
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  MASK = 1819044201;
  # DEBUG BEGIN_STMT
  if (seed != 0)
    goto <bb 3>; [INV]
  else
    goto <bb 10>; [INV]

  <bb 3> :
  # DEBUG BEGIN_STMT
  i = 0;
  goto <bb 8>; [INV]

  <bb 4> :
  # DEBUG BEGIN_STMT
  seed.25_1 = (signed int) seed;
  if (seed.25_1 < 0)
    goto <bb 5>; [INV]
  else
    goto <bb 6>; [INV]

  <bb 5> :
  # DEBUG BEGIN_STMT
  seed = seed << 1;
  # DEBUG BEGIN_STMT
  seed = seed ^ MASK;
  goto <bb 7>; [INV]

  <bb 6> :
  # DEBUG BEGIN_STMT
  seed = seed << 1;

  <bb 7> :
  # DEBUG BEGIN_STMT
  i.26_2 = i;
  i = i.26_2 + 1;

  <bb 8> :
  # DEBUG BEGIN_STMT
  if (i <= 34)
    goto <bb 4>; [INV]
  else
    goto <bb 9>; [INV]

  <bb 9> :
  # DEBUG BEGIN_STMT
  key = seed;

  <bb 10> :
  # DEBUG BEGIN_STMT
  D.7167 = key;
  return D.7167;

}


uds_SID_TransferData (uint8_t k)
{
  uint8_t D.7160;

  <bb 2> :
  # DEBUG BEGIN_STMT
  D.7160 = k;
  return D.7160;

}


uds_SID_RequestTransferExit (uint8_t k)
{
  uint8_t D.7158;

  <bb 2> :
  # DEBUG BEGIN_STMT
  D.7158 = k;
  return D.7158;

}


uds_SID_RequestDownload (uint8_t k)
{
  uint8_t D.7156;

  <bb 2> :
  # DEBUG BEGIN_STMT
  D.7156 = k;
  return D.7156;

}


uds_SID_RoutineControl (uint8_t k)
{
  uint8_t D.7154;

  <bb 2> :
  # DEBUG BEGIN_STMT
  D.7154 = k;
  return D.7154;

}


uds_SID_CommunicationControl (uint8_t k)
{
  uint8_t rp;
  uint8_t D.7152;

  <bb 2> :
  # DEBUG BEGIN_STMT
  rp = 1;
  # DEBUG BEGIN_STMT
  _1 = uds.rx.buf[2];
  _2 = (signed char) _1;
  if (_2 < 0)
    goto <bb 3>; [INV]
  else
    goto <bb 4>; [INV]

  <bb 3> :
  # DEBUG BEGIN_STMT
  rp = 0;
  # DEBUG BEGIN_STMT
  _3 = uds.rx.buf[2];
  _4 = _3 & 127;
  uds.rx.buf[2] = _4;

  <bb 4> :
  # DEBUG BEGIN_STMT
  _5 = uds.rx.buf[3];
  if (_5 == 1)
    goto <bb 6>; [INV]
  else
    goto <bb 5>; [INV]

  <bb 5> :
  _6 = uds.rx.buf[3];
  if (_6 == 3)
    goto <bb 6>; [INV]
  else
    goto <bb 14>; [INV]

  <bb 6> :
  # DEBUG BEGIN_STMT
  _7 = uds.rx.buf[2];
  if (_7 == 3)
    goto <bb 8>; [INV]
  else
    goto <bb 7>; [INV]

  <bb 7> :
  _8 = uds.rx.buf[2];
  if (_8 == 1)
    goto <bb 8>; [INV]
  else
    goto <bb 9>; [INV]

  <bb 8> :
  # DEBUG BEGIN_STMT
  uds.disable_rx_tx = 1;
  goto <bb 16>; [INV]

  <bb 9> :
  # DEBUG BEGIN_STMT
  _9 = uds.rx.buf[2];
  if (_9 == 0)
    goto <bb 10>; [INV]
  else
    goto <bb 11>; [INV]

  <bb 10> :
  # DEBUG BEGIN_STMT
  uds.disable_rx_tx = 0;
  goto <bb 16>; [INV]

  <bb 11> :
  # DEBUG BEGIN_STMT
  _10 = uds.rx.buf[2];
  if (_10 == 2)
    goto <bb 12>; [INV]
  else
    goto <bb 13>; [INV]

  <bb 12> :
  # DEBUG BEGIN_STMT
  uds.disable_rx_tx = 1;
  # DEBUG BEGIN_STMT
  rp = 0;
  goto <bb 16>; [INV]

  <bb 13> :
  # DEBUG BEGIN_STMT
  uds.response_to_negetive = 1;
  # DEBUG BEGIN_STMT
  uds.tx.buf[0] = 2;
  goto <bb 16>; [INV]

  <bb 14> :
  # DEBUG BEGIN_STMT
  _11 = uds.rx.buf[3];
  if (_11 == 2)
    goto <bb 16>; [INV]
  else
    goto <bb 15>; [INV]

  <bb 15> :
  # DEBUG BEGIN_STMT
  uds.tx.buf[0] = 2;
  # DEBUG BEGIN_STMT
  uds.rx.buf[1] = 127;
  # DEBUG BEGIN_STMT
  uds.rx.buf[2] = 18;

  <bb 16> :
  # DEBUG BEGIN_STMT
  _12 = uds.session;
  if (_12 <= 1)
    goto <bb 17>; [INV]
  else
    goto <bb 18>; [INV]

  <bb 17> :
  # DEBUG BEGIN_STMT
  uds.tx.buf[0] = 2;
  # DEBUG BEGIN_STMT
  uds.rx.buf[1] = 127;
  # DEBUG BEGIN_STMT
  uds.rx.buf[2] = 34;
  # DEBUG BEGIN_STMT
  uds.disable_rx_tx = 0;
  goto <bb 19>; [INV]

  <bb 18> :
  # DEBUG BEGIN_STMT
  uds.tx.buf[0] = 2;
  # DEBUG BEGIN_STMT
  uds.tx.buf[1] = k;
  # DEBUG BEGIN_STMT
  _13 = uds.rx.buf[2];
  uds.tx.buf[2] = _13;

  <bb 19> :
  # DEBUG BEGIN_STMT
  D.7152 = rp;
  return D.7152;

}


uds_SID_WriteDataByIdentifier (uint8_t k)
{
  uint8_t rp;
  uint8_t len;
  uint8_t i;
  uint16_t nt;
  uint16_t n;
  uint8_t D.7128;

  <bb 2> :
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  rp = 1;
  # DEBUG BEGIN_STMT
  uds.table_control = 46;
  # DEBUG BEGIN_STMT
  _1 = uds.rx.buf[2];
  n = (uint16_t) _1;
  # DEBUG BEGIN_STMT
  n = n >> 4;
  # DEBUG BEGIN_STMT
  _2 = (unsigned char) n;
  uds.write_data_type = _2;
  # DEBUG BEGIN_STMT
  _3 = uds.rx.buf[4];
  uds.table_write_to = _3;
  # DEBUG BEGIN_STMT
  _4 = uds.rx.buf[2];
  n = (uint16_t) _4;
  # DEBUG BEGIN_STMT
  n = n << 8;
  # DEBUG BEGIN_STMT
  _5 = uds.rx.buf[3];
  _6 = (short unsigned int) _5;
  n = n + _6;
  # DEBUG BEGIN_STMT
  uds.ntable_did = n;
  # DEBUG BEGIN_STMT
  _7 = uds.write_data_type;
  if (_7 == 14)
    goto <bb 3>; [INV]
  else
    goto <bb 4>; [INV]

  <bb 3> :
  # DEBUG BEGIN_STMT
  rp = 0;
  # DEBUG BEGIN_STMT
  uds.table_seq = 1;
  goto <bb 20>; [INV]

  <bb 4> :
  # DEBUG BEGIN_STMT
  if (n > 61439)
    goto <bb 5>; [INV]
  else
    goto <bb 20>; [INV]

  <bb 5> :
  # DEBUG BEGIN_STMT
  _8 = uds.ntable_did;
  nt = table_did_maping_write (_8);
  # DEBUG BEGIN_STMT
  uds.ntable = nt;
  # DEBUG BEGIN_STMT
  uds.write_data_type = 15;
  # DEBUG BEGIN_STMT
  if (nt == 65535)
    goto <bb 7>; [INV]
  else
    goto <bb 6>; [INV]

  <bb 6> :
  _9 = (int) nt;
  _10 = EEP_ADDR_TABLE[_9][7];
  if (_10 == 0)
    goto <bb 7>; [INV]
  else
    goto <bb 8>; [INV]

  <bb 7> :
  # DEBUG BEGIN_STMT
  uds.consecutive_length_fail = 3;
  goto <bb 20>; [INV]

  <bb 8> :
  # DEBUG BEGIN_STMT
  _11 = uds.rom_access_level;
  if (_11 != 1)
    goto <bb 9>; [INV]
  else
    goto <bb 10>; [INV]

  <bb 9> :
  # DEBUG BEGIN_STMT
  uds.consecutive_length_fail = 2;
  goto <bb 20>; [INV]

  <bb 10> :
  # DEBUG BEGIN_STMT
  uds.response_to_negetive = 0;
  # DEBUG BEGIN_STMT
  _12 = uds.consecutive_length_fail;
  if (_12 == 0)
    goto <bb 11>; [INV]
  else
    goto <bb 20>; [INV]

  <bb 11> :
  # DEBUG BEGIN_STMT
  _13 = uds.ntable;
  _14 = (int) _13;
  _15 = EEP_ADDR_TABLE[_14][2];
  _16 = (unsigned char) _15;
  len = _16 + 3;
  # DEBUG BEGIN_STMT
  _17 = uds.length;
  if (len != _17)
    goto <bb 12>; [INV]
  else
    goto <bb 13>; [INV]

  <bb 12> :
  # DEBUG BEGIN_STMT
  uds.nrc = 19;
  # DEBUG BEGIN_STMT
  uds.consecutive_length_fail = 1;
  # DEBUG BEGIN_STMT
  _18 = uds.consecutive_length_fail;
  _19 = (int) _18;
  _20 = uds.ntable;
  _21 = (int) _20;
  monprintf ("length FAIL=%d,%d\n\r", _19, _21);

  <bb 13> :
  # DEBUG BEGIN_STMT
  _22 = uds.ntable;
  _23 = (int) _22;
  _24 = EEP_ADDR_TABLE[_23][3];
  _25 = (uint8_t *) _24;
  uds.pdata_wr = _25;
  # DEBUG BEGIN_STMT
  _26 = uds.ntable;
  _27 = (int) _26;
  _28 = EEP_ADDR_TABLE[_27][2];
  _29 = (short unsigned int) _28;
  uds.tx_len = _29;
  # DEBUG BEGIN_STMT
  uds.p_data = 0;
  # DEBUG BEGIN_STMT
  i = 4;
  goto <bb 19>; [INV]

  <bb 14> :
  # DEBUG BEGIN_STMT
  _30 = (int) i;
  _31 = uds.pdata_wr;
  _32 = uds.p_data;
  _33 = (sizetype) _32;
  _34 = _31 + _33;
  _35 = uds.rx.buf[_30];
  *_34 = _35;
  # DEBUG BEGIN_STMT
  _36 = uds.p_data;
  _37 = _36;
  _38 = _37 + 1;
  uds.p_data = _38;
  # DEBUG BEGIN_STMT
  _39 = uds.p_data;
  _40 = uds.tx_len;
  if (_39 >= _40)
    goto <bb 20>; [INV]
  else
    goto <bb 15>; [INV]

  <bb 15> :
  # DEBUG BEGIN_STMT
  uds_table_receve_finish (0);
  # DEBUG BEGIN_STMT
  uds.consecutive_length_fail = 0;
  # DEBUG BEGIN_STMT
  _41 = uds.response_to_negetive;
  if (_41 == 0)
    goto <bb 16>; [INV]
  else
    goto <bb 18>; [INV]

  <bb 16> :
  # DEBUG BEGIN_STMT
  _42 = uds.ntable;
  _43 = (int) _42;
  _44 = EEP_ADDR_TABLE[_43][7];
  if (_44 == 1)
    goto <bb 17>; [INV]
  else
    goto <bb 18>; [INV]

  <bb 17> :
  # DEBUG BEGIN_STMT
  uds.xreq_eep_write_did = 1;

  <bb 18> :
  # DEBUG BEGIN_STMT
  i.24_45 = i;
  i = i.24_45 + 1;

  <bb 19> :
  # DEBUG BEGIN_STMT
  if (i <= 7)
    goto <bb 14>; [INV]
  else
    goto <bb 20>; [INV]

  <bb 20> :
FINISH:
  # DEBUG BEGIN_STMT
  _46 = uds.consecutive_length_fail;
  if (_46 == 1)
    goto <bb 21>; [INV]
  else
    goto <bb 22>; [INV]

  <bb 21> :
  # DEBUG BEGIN_STMT
  uds.tx.buf[0] = 3;
  # DEBUG BEGIN_STMT
  uds.tx.buf[1] = 127;
  # DEBUG BEGIN_STMT
  uds.tx.buf[2] = 46;
  # DEBUG BEGIN_STMT
  uds.tx.buf[3] = 19;
  # DEBUG BEGIN_STMT
  uds.response_to_negetive = 1;
  goto <bb 26>; [INV]

  <bb 22> :
  # DEBUG BEGIN_STMT
  _47 = uds.consecutive_length_fail;
  if (_47 == 2)
    goto <bb 23>; [INV]
  else
    goto <bb 24>; [INV]

  <bb 23> :
  # DEBUG BEGIN_STMT
  uds.tx.buf[0] = 3;
  # DEBUG BEGIN_STMT
  uds.tx.buf[1] = 127;
  # DEBUG BEGIN_STMT
  uds.tx.buf[2] = 46;
  # DEBUG BEGIN_STMT
  uds.tx.buf[3] = 51;
  # DEBUG BEGIN_STMT
  uds.response_to_negetive = 1;
  goto <bb 26>; [INV]

  <bb 24> :
  # DEBUG BEGIN_STMT
  _48 = uds.consecutive_length_fail;
  if (_48 == 3)
    goto <bb 25>; [INV]
  else
    goto <bb 26>; [INV]

  <bb 25> :
  # DEBUG BEGIN_STMT
  uds.tx.buf[0] = 3;
  # DEBUG BEGIN_STMT
  uds.tx.buf[1] = 127;
  # DEBUG BEGIN_STMT
  uds.tx.buf[2] = 46;
  # DEBUG BEGIN_STMT
  uds.tx.buf[3] = 49;

  <bb 26> :
  # DEBUG BEGIN_STMT
  D.7128 = rp;
  return D.7128;

}


uds_SID_ReadDataByIdentifier (uint8_t k)
{
  uint8_t rp;
  uint16_t nt;
  uint16_t n;
  uint8_t D.7097;

  <bb 2> :
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  rp = 1;
  # DEBUG BEGIN_STMT
  _1 = uds.rx.buf[2];
  n = (uint16_t) _1;
  # DEBUG BEGIN_STMT
  n = n << 8;
  # DEBUG BEGIN_STMT
  _2 = uds.rx.buf[3];
  _3 = (short unsigned int) _2;
  n = n + _3;
  # DEBUG BEGIN_STMT
  uds.ntable_did = n;
  # DEBUG BEGIN_STMT
  if (n == 62720)
    goto <bb 3>; [INV]
  else
    goto <bb 4>; [INV]

  <bb 3> :
  # DEBUG BEGIN_STMT
  n = n & 4095;
  # DEBUG BEGIN_STMT
  uds.ntable = n;
  # DEBUG BEGIN_STMT
  uds.table_seq = 1;
  # DEBUG BEGIN_STMT
  uds.table_control = 34;
  # DEBUG BEGIN_STMT
  rp = 0;
  goto <bb 11>; [INV]

  <bb 4> :
  # DEBUG BEGIN_STMT
  if (n > 61439)
    goto <bb 5>; [INV]
  else
    goto <bb 8>; [INV]

  <bb 5> :
  # DEBUG BEGIN_STMT
  nt = table_did_maping (n);
  # DEBUG BEGIN_STMT
  if (nt == 65535)
    goto <bb 6>; [INV]
  else
    goto <bb 7>; [INV]

  <bb 6> :
  # DEBUG BEGIN_STMT
  uds.tx.buf[0] = 2;
  # DEBUG BEGIN_STMT
  _4 = uds.rx.buf[1];
  _5 = _4 | 64;
  uds.tx.buf[1] = _5;
  goto <bb 11>; [INV]

  <bb 7> :
  # DEBUG BEGIN_STMT
  uds.ntable = nt;
  # DEBUG BEGIN_STMT
  uds.table_seq = 1;
  # DEBUG BEGIN_STMT
  uds.table_control = 34;
  # DEBUG BEGIN_STMT
  rp = 0;
  goto <bb 11>; [INV]

  <bb 8> :
  # DEBUG BEGIN_STMT
  _6 = uds.can_id;
  if (_6 == 2015)
    goto <bb 9>; [INV]
  else
    goto <bb 10>; [INV]

  <bb 9> :
  # DEBUG BEGIN_STMT
  rp = 0;

  <bb 10> :
  # DEBUG BEGIN_STMT
  uds.tx.buf[0] = 3;
  # DEBUG BEGIN_STMT
  uds.tx.buf[1] = 127;
  # DEBUG BEGIN_STMT
  _7 = uds.sid;
  uds.tx.buf[2] = _7;
  # DEBUG BEGIN_STMT
  uds.tx.buf[3] = 49;
  # DEBUG BEGIN_STMT
  uds.response_to_negetive = 1;

  <bb 11> :
  # DEBUG BEGIN_STMT
  D.7097 = rp;
  return D.7097;

}


uds_SID_DiagnosticSessionControl (uint8_t k)
{
  uint8_t rp;
  uint8_t * p;
  uint8_t D.7084;

  <bb 2> :
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  rp = 1;
  # DEBUG BEGIN_STMT
  _1 = uds.rx.buf[2];
  _2 = (signed char) _1;
  if (_2 < 0)
    goto <bb 3>; [INV]
  else
    goto <bb 4>; [INV]

  <bb 3> :
  # DEBUG BEGIN_STMT
  rp = 0;
  # DEBUG BEGIN_STMT
  _3 = uds.rx.buf[2];
  _4 = _3 & 127;
  uds.rx.buf[2] = _4;

  <bb 4> :
  # DEBUG BEGIN_STMT
  _5 = uds.rx.buf[2];
  _6 = _5 + 255;
  if (_6 <= 2)
    goto <bb 5>; [INV]
  else
    goto <bb 11>; [INV]

  <bb 5> :
  # DEBUG BEGIN_STMT
  uds.tx.buf[0] = 6;
  # DEBUG BEGIN_STMT
  uds.tx.buf[1] = k;
  # DEBUG BEGIN_STMT
  _7 = uds.rx.buf[2];
  uds.tx.buf[2] = _7;
  # DEBUG BEGIN_STMT
  uds.tx.buf[3] = 0;
  # DEBUG BEGIN_STMT
  uds.tx.buf[4] = 50;
  # DEBUG BEGIN_STMT
  uds.tx.buf[5] = 1;
  # DEBUG BEGIN_STMT
  uds.tx.buf[6] = 244;
  # DEBUG BEGIN_STMT
  uds.c_timeout_session_10ms = 500;
  # DEBUG BEGIN_STMT
  _8 = uds.rx.buf[2];
  uds.session = _8;
  # DEBUG BEGIN_STMT
  _9 = uds.session;
  if (_9 == 2)
    goto <bb 6>; [INV]
  else
    goto <bb 10>; [INV]

  <bb 6> :
  # DEBUG BEGIN_STMT
  p = 4198432B;
  # DEBUG BEGIN_STMT
  _10 = *p;
  if (_10 != 66)
    goto <bb 8>; [INV]
  else
    goto <bb 7>; [INV]

  <bb 7> :
  _11 = p + 1;
  _12 = *_11;
  if (_12 != 79)
    goto <bb 8>; [INV]
  else
    goto <bb 9>; [INV]

  <bb 8> :
  # DEBUG BEGIN_STMT
  uds.response_to_negetive = 1;
  goto <bb 12>; [INV]

  <bb 9> :
  # DEBUG BEGIN_STMT
  uds.XREQ_UDS_RESET = 1;
  # DEBUG BEGIN_STMT
  rp = 0;
  goto <bb 12>; [INV]

  <bb 10> :
  # DEBUG BEGIN_STMT
  _13 = uds.session;
  goto <bb 12>; [INV]

  <bb 11> :
  # DEBUG BEGIN_STMT
  uds.tx.buf[0] = 3;
  # DEBUG BEGIN_STMT
  uds.tx.buf[1] = 127;
  # DEBUG BEGIN_STMT
  _14 = uds.sid;
  uds.tx.buf[2] = _14;
  # DEBUG BEGIN_STMT
  uds.tx.buf[3] = 18;
  # DEBUG BEGIN_STMT
  uds.response_to_negetive = 1;

  <bb 12> :
  # DEBUG BEGIN_STMT
  uds.rom_access_level = 0;
  # DEBUG BEGIN_STMT
  D.7084 = rp;
  return D.7084;

}


uds_SID_StopDiagnosticSession (uint8_t k)
{
  uint8_t rp;
  uint8_t D.7068;

  <bb 2> :
  # DEBUG BEGIN_STMT
  rp = 1;
  # DEBUG BEGIN_STMT
  _1 = uds.rx.buf[2];
  _2 = (signed char) _1;
  if (_2 < 0)
    goto <bb 3>; [INV]
  else
    goto <bb 4>; [INV]

  <bb 3> :
  # DEBUG BEGIN_STMT
  rp = 0;
  # DEBUG BEGIN_STMT
  _3 = uds.rx.buf[2];
  _4 = _3 & 127;
  uds.rx.buf[2] = _4;
  goto <bb 5>; [INV]

  <bb 4> :
  # DEBUG BEGIN_STMT
  uds.tx.buf[0] = 1;
  # DEBUG BEGIN_STMT
  uds.tx.buf[1] = k;

  <bb 5> :
  # DEBUG BEGIN_STMT
  uds.session = 1;
  # DEBUG BEGIN_STMT
  D.7068 = rp;
  return D.7068;

}


uds_fail_check_did_length (uint16_t did, uint8_t len)
{
  <bb 2> :
  # DEBUG BEGIN_STMT
  uds.nrc = 0;
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  if (did == 61831)
    goto <bb 3>; [INV]
  else
    goto <bb 5>; [INV]

  <bb 3> :
  # DEBUG BEGIN_STMT
  if (len != 10)
    goto <bb 4>; [INV]
  else
    goto <bb 17>; [INV]

  <bb 4> :
  # DEBUG BEGIN_STMT
  uds.nrc = 19;
  goto <bb 17>; [INV]

  <bb 5> :
  # DEBUG BEGIN_STMT
  if (did == 61835)
    goto <bb 6>; [INV]
  else
    goto <bb 8>; [INV]

  <bb 6> :
  # DEBUG BEGIN_STMT
  if (len != 4)
    goto <bb 7>; [INV]
  else
    goto <bb 17>; [INV]

  <bb 7> :
  # DEBUG BEGIN_STMT
  uds.nrc = 19;
  goto <bb 17>; [INV]

  <bb 8> :
  # DEBUG BEGIN_STMT
  if (did == 61845)
    goto <bb 9>; [INV]
  else
    goto <bb 11>; [INV]

  <bb 9> :
  # DEBUG BEGIN_STMT
  if (len != 3)
    goto <bb 10>; [INV]
  else
    goto <bb 17>; [INV]

  <bb 10> :
  # DEBUG BEGIN_STMT
  uds.nrc = 19;
  goto <bb 17>; [INV]

  <bb 11> :
  # DEBUG BEGIN_STMT
  if (did == 61843)
    goto <bb 12>; [INV]
  else
    goto <bb 14>; [INV]

  <bb 12> :
  # DEBUG BEGIN_STMT
  if (len != 3)
    goto <bb 13>; [INV]
  else
    goto <bb 17>; [INV]

  <bb 13> :
  # DEBUG BEGIN_STMT
  uds.nrc = 19;
  goto <bb 17>; [INV]

  <bb 14> :
  # DEBUG BEGIN_STMT
  if (did == 61836)
    goto <bb 15>; [INV]
  else
    goto <bb 17>; [INV]

  <bb 15> :
  # DEBUG BEGIN_STMT
  if (len != 7)
    goto <bb 16>; [INV]
  else
    goto <bb 17>; [INV]

  <bb 16> :
  # DEBUG BEGIN_STMT
  uds.nrc = 19;

  <bb 17> :
  # DEBUG BEGIN_STMT
  _1 = uds.nrc;
  if (_1 != 0)
    goto <bb 18>; [INV]
  else
    goto <bb 19>; [INV]

  <bb 18> :
  # DEBUG BEGIN_STMT
  uds.consecutive_length_fail = 1;
  goto <bb 20>; [INV]

  <bb 19> :
  # DEBUG BEGIN_STMT
  uds.consecutive_length_fail = 0;

  <bb 20> :
  return;

}


uds_single_frame_error_check ()
{
  uint8_t c;
  int iftmp.23;
  int iftmp.22;

  <bb 2> :
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  uds.nrc = 0;
  # DEBUG BEGIN_STMT
  _1 = uds.sid;
  if (_1 == 34)
    goto <bb 3>; [INV]
  else
    goto <bb 6>; [INV]

  <bb 3> :
  # DEBUG BEGIN_STMT
  _2 = uds.length;
  if (_2 != 3)
    goto <bb 4>; [INV]
  else
    goto <bb 5>; [INV]

  <bb 4> :
  # DEBUG BEGIN_STMT
  uds.nrc = 19;

  <bb 5> :
  # DEBUG BEGIN_STMT
  _3 = uds.nrc;
  # DEBUG BEGIN_STMT
  goto <bb 88>; [INV]

  <bb 6> :
  # DEBUG BEGIN_STMT
  _4 = uds.sid;
  if (_4 == 32)
    goto <bb 7>; [INV]
  else
    goto <bb 9>; [INV]

  <bb 7> :
  # DEBUG BEGIN_STMT
  _5 = uds.length;
  if (_5 > 2)
    goto <bb 8>; [INV]
  else
    goto <bb 88>; [INV]

  <bb 8> :
  # DEBUG BEGIN_STMT
  uds.nrc = 19;
  goto <bb 88>; [INV]

  <bb 9> :
  # DEBUG BEGIN_STMT
  _6 = uds.sid;
  if (_6 == 16)
    goto <bb 10>; [INV]
  else
    goto <bb 14>; [INV]

  <bb 10> :
  # DEBUG BEGIN_STMT
  c = uds.rx.buf[2];
  # DEBUG BEGIN_STMT
  c = c & 127;
  # DEBUG BEGIN_STMT
  _7 = uds.length;
  if (_7 != 2)
    goto <bb 11>; [INV]
  else
    goto <bb 12>; [INV]

  <bb 11> :
  # DEBUG BEGIN_STMT
  uds.nrc = 19;
  goto <bb 88>; [INV]

  <bb 12> :
  # DEBUG BEGIN_STMT
  _8 = c + 255;
  if (_8 > 2)
    goto <bb 13>; [INV]
  else
    goto <bb 88>; [INV]

  <bb 13> :
  # DEBUG BEGIN_STMT
  uds.nrc = 18;
  goto <bb 88>; [INV]

  <bb 14> :
  # DEBUG BEGIN_STMT
  _9 = uds.sid;
  if (_9 == 133)
    goto <bb 15>; [INV]
  else
    goto <bb 20>; [INV]

  <bb 15> :
  # DEBUG BEGIN_STMT
  c = uds.rx.buf[2];
  # DEBUG BEGIN_STMT
  _10 = c + 255;
  if (_10 > 1)
    goto <bb 16>; [INV]
  else
    goto <bb 17>; [INV]

  <bb 16> :
  # DEBUG BEGIN_STMT
  uds.nrc = 18;

  <bb 17> :
  # DEBUG BEGIN_STMT
  _11 = uds.length;
  if (_11 != 2)
    goto <bb 18>; [INV]
  else
    goto <bb 19>; [INV]

  <bb 18> :
  # DEBUG BEGIN_STMT
  uds.nrc = 19;

  <bb 19> :
  # DEBUG BEGIN_STMT
  _12 = uds.nrc;
  uds_fail_check_no_extended (_12);
  goto <bb 88>; [INV]

  <bb 20> :
  # DEBUG BEGIN_STMT
  _13 = uds.sid;
  if (_13 == 39)
    goto <bb 21>; [INV]
  else
    goto <bb 27>; [INV]

  <bb 21> :
  # DEBUG BEGIN_STMT
  _14 = uds.length;
  if (_14 == 2)
    goto <bb 23>; [INV]
  else
    goto <bb 22>; [INV]

  <bb 22> :
  _15 = uds.length;
  if (_15 == 6)
    goto <bb 23>; [INV]
  else
    goto <bb 24>; [INV]

  <bb 23> :
  iftmp.22 = 1;
  goto <bb 25>; [INV]

  <bb 24> :
  iftmp.22 = 0;

  <bb 25> :
  if (iftmp.22 == 0)
    goto <bb 26>; [INV]
  else
    goto <bb 88>; [INV]

  <bb 26> :
  # DEBUG BEGIN_STMT
  uds.nrc = 19;
  goto <bb 88>; [INV]

  <bb 27> :
  # DEBUG BEGIN_STMT
  _16 = uds.sid;
  if (_16 == 25)
    goto <bb 28>; [INV]
  else
    goto <bb 50>; [INV]

  <bb 28> :
  # DEBUG BEGIN_STMT
  _17 = uds.length;
  if (_17 == 1)
    goto <bb 29>; [INV]
  else
    goto <bb 30>; [INV]

  <bb 29> :
  # DEBUG BEGIN_STMT
  uds.nrc = 19;
  goto <bb 88>; [INV]

  <bb 30> :
  # DEBUG BEGIN_STMT
  _18 = uds.rx.buf[2];
  if (_18 == 10)
    goto <bb 32>; [INV]
  else
    goto <bb 31>; [INV]

  <bb 31> :
  _19 = uds.rx.buf[2];
  if (_19 == 3)
    goto <bb 32>; [INV]
  else
    goto <bb 34>; [INV]

  <bb 32> :
  # DEBUG BEGIN_STMT
  _20 = uds.length;
  if (_20 != 2)
    goto <bb 33>; [INV]
  else
    goto <bb 88>; [INV]

  <bb 33> :
  # DEBUG BEGIN_STMT
  uds.nrc = 19;
  goto <bb 88>; [INV]

  <bb 34> :
  # DEBUG BEGIN_STMT
  _21 = uds.rx.buf[2];
  if (_21 == 2)
    goto <bb 35>; [INV]
  else
    goto <bb 37>; [INV]

  <bb 35> :
  # DEBUG BEGIN_STMT
  _22 = uds.length;
  if (_22 != 3)
    goto <bb 36>; [INV]
  else
    goto <bb 88>; [INV]

  <bb 36> :
  # DEBUG BEGIN_STMT
  uds.nrc = 19;
  goto <bb 88>; [INV]

  <bb 37> :
  # DEBUG BEGIN_STMT
  _23 = uds.rx.buf[2];
  if (_23 == 4)
    goto <bb 38>; [INV]
  else
    goto <bb 46>; [INV]

  <bb 38> :
  # DEBUG BEGIN_STMT
  _24 = uds.length;
  if (_24 != 6)
    goto <bb 39>; [INV]
  else
    goto <bb 40>; [INV]

  <bb 39> :
  # DEBUG BEGIN_STMT
  uds.nrc = 19;
  goto <bb 88>; [INV]

  <bb 40> :
  # DEBUG BEGIN_STMT
  _25 = uds.rx.buf[6];
  if (_25 == 1)
    goto <bb 42>; [INV]
  else
    goto <bb 41>; [INV]

  <bb 41> :
  _26 = uds.rx.buf[6];
  if (_26 == 255)
    goto <bb 42>; [INV]
  else
    goto <bb 43>; [INV]

  <bb 42> :
  iftmp.23 = 1;
  goto <bb 44>; [INV]

  <bb 43> :
  iftmp.23 = 0;

  <bb 44> :
  if (iftmp.23 == 0)
    goto <bb 45>; [INV]
  else
    goto <bb 88>; [INV]

  <bb 45> :
  # DEBUG BEGIN_STMT
  uds.nrc = 49;
  goto <bb 88>; [INV]

  <bb 46> :
  # DEBUG BEGIN_STMT
  _27 = uds.rx.buf[2];
  if (_27 == 1)
    goto <bb 47>; [INV]
  else
    goto <bb 49>; [INV]

  <bb 47> :
  # DEBUG BEGIN_STMT
  _28 = uds.length;
  if (_28 != 3)
    goto <bb 48>; [INV]
  else
    goto <bb 88>; [INV]

  <bb 48> :
  # DEBUG BEGIN_STMT
  uds.nrc = 19;
  goto <bb 88>; [INV]

  <bb 49> :
  # DEBUG BEGIN_STMT
  uds.nrc = 18;
  goto <bb 88>; [INV]

  <bb 50> :
  # DEBUG BEGIN_STMT
  _29 = uds.sid;
  if (_29 == 40)
    goto <bb 51>; [INV]
  else
    goto <bb 65>; [INV]

  <bb 51> :
  # DEBUG BEGIN_STMT
  _30 = uds.rx.buf[2];
  c = _30 & 127;
  # DEBUG BEGIN_STMT
  _31 = uds.length;
  if (_31 != 3)
    goto <bb 52>; [INV]
  else
    goto <bb 55>; [INV]

  <bb 52> :
  if (c == 0)
    goto <bb 54>; [INV]
  else
    goto <bb 53>; [INV]

  <bb 53> :
  if (c == 3)
    goto <bb 54>; [INV]
  else
    goto <bb 55>; [INV]

  <bb 54> :
  # DEBUG BEGIN_STMT
  uds.nrc = 19;
  goto <bb 64>; [INV]

  <bb 55> :
  # DEBUG BEGIN_STMT
  _32 = uds.length;
  if (_32 != 2)
    goto <bb 56>; [INV]
  else
    goto <bb 58>; [INV]

  <bb 56> :
  _33 = c + 255;
  if (_33 <= 1)
    goto <bb 57>; [INV]
  else
    goto <bb 58>; [INV]

  <bb 57> :
  # DEBUG BEGIN_STMT
  uds.nrc = 19;
  goto <bb 64>; [INV]

  <bb 58> :
  # DEBUG BEGIN_STMT
  if (c > 3)
    goto <bb 59>; [INV]
  else
    goto <bb 60>; [INV]

  <bb 59> :
  # DEBUG BEGIN_STMT
  uds.nrc = 18;
  goto <bb 64>; [INV]

  <bb 60> :
  # DEBUG BEGIN_STMT
  _34 = uds.rx.buf[3];
  _35 = _34 + 255;
  if (_35 > 2)
    goto <bb 61>; [INV]
  else
    goto <bb 64>; [INV]

  <bb 61> :
  if (c == 0)
    goto <bb 63>; [INV]
  else
    goto <bb 62>; [INV]

  <bb 62> :
  if (c == 3)
    goto <bb 63>; [INV]
  else
    goto <bb 64>; [INV]

  <bb 63> :
  # DEBUG BEGIN_STMT
  uds.nrc = 49;

  <bb 64> :
  # DEBUG BEGIN_STMT
  _36 = uds.nrc;
  uds_fail_check_no_extended (_36);
  goto <bb 88>; [INV]

  <bb 65> :
  # DEBUG BEGIN_STMT
  _37 = uds.sid;
  if (_37 == 20)
    goto <bb 66>; [INV]
  else
    goto <bb 72>; [INV]

  <bb 66> :
  # DEBUG BEGIN_STMT
  _38 = uds.length;
  if (_38 != 4)
    goto <bb 67>; [INV]
  else
    goto <bb 68>; [INV]

  <bb 67> :
  # DEBUG BEGIN_STMT
  uds.nrc = 19;
  goto <bb 88>; [INV]

  <bb 68> :
  # DEBUG BEGIN_STMT
  _39 = uds.rx.buf[2];
  _40 = (long unsigned int) _39;
  uds.group_of_dtc = _40;
  # DEBUG BEGIN_STMT
  _41 = uds.group_of_dtc;
  _42 = _41 << 8;
  uds.group_of_dtc = _42;
  # DEBUG BEGIN_STMT
  _43 = uds.group_of_dtc;
  _44 = uds.rx.buf[3];
  _45 = (long unsigned int) _44;
  _46 = _43 + _45;
  uds.group_of_dtc = _46;
  # DEBUG BEGIN_STMT
  _47 = uds.group_of_dtc;
  _48 = _47 << 8;
  uds.group_of_dtc = _48;
  # DEBUG BEGIN_STMT
  _49 = uds.group_of_dtc;
  _50 = uds.rx.buf[4];
  _51 = (long unsigned int) _50;
  _52 = _49 + _51;
  uds.group_of_dtc = _52;
  # DEBUG BEGIN_STMT
  _53 = uds.group_of_dtc;
  if (_53 != 16777215)
    goto <bb 69>; [INV]
  else
    goto <bb 88>; [INV]

  <bb 69> :
  _54 = uds.group_of_dtc;
  if (_54 != 4194559)
    goto <bb 70>; [INV]
  else
    goto <bb 88>; [INV]

  <bb 70> :
  # DEBUG BEGIN_STMT
  _55 = uds.group_of_dtc;
  _56 = is_dtc_exist (_55);
  if (_56 == 255)
    goto <bb 71>; [INV]
  else
    goto <bb 88>; [INV]

  <bb 71> :
  # DEBUG BEGIN_STMT
  uds.nrc = 49;
  goto <bb 88>; [INV]

  <bb 72> :
  # DEBUG BEGIN_STMT
  _57 = uds.sid;
  if (_57 == 62)
    goto <bb 73>; [INV]
  else
    goto <bb 78>; [INV]

  <bb 73> :
  # DEBUG BEGIN_STMT
  _58 = uds.rx.buf[2];
  c = _58 & 127;
  # DEBUG BEGIN_STMT
  _59 = uds.length;
  if (_59 != 2)
    goto <bb 74>; [INV]
  else
    goto <bb 75>; [INV]

  <bb 74> :
  # DEBUG BEGIN_STMT
  uds.nrc = 19;
  goto <bb 88>; [INV]

  <bb 75> :
  # DEBUG BEGIN_STMT
  if (c != 0)
    goto <bb 76>; [INV]
  else
    goto <bb 77>; [INV]

  <bb 76> :
  # DEBUG BEGIN_STMT
  uds.nrc = 18;
  # DEBUG BEGIN_STMT
  uds.c_timeout_session_10ms = 500;
  goto <bb 88>; [INV]

  <bb 77> :
  # DEBUG BEGIN_STMT
  uds.c_timeout_session_10ms = 500;
  goto <bb 88>; [INV]

  <bb 78> :
  # DEBUG BEGIN_STMT
  _60 = uds.sid;
  if (_60 == 49)
    goto <bb 79>; [INV]
  else
    goto <bb 83>; [INV]

  <bb 79> :
  # DEBUG BEGIN_STMT
  _61 = uds.length;
  if (_61 > 6)
    goto <bb 80>; [INV]
  else
    goto <bb 81>; [INV]

  <bb 80> :
  # DEBUG BEGIN_STMT
  uds.nrc = 19;
  goto <bb 88>; [INV]

  <bb 81> :
  # DEBUG BEGIN_STMT
  _62 = uds.rx.buf[2];
  _63 = _62 + 255;
  if (_63 > 2)
    goto <bb 82>; [INV]
  else
    goto <bb 88>; [INV]

  <bb 82> :
  # DEBUG BEGIN_STMT
  uds.nrc = 49;
  goto <bb 88>; [INV]

  <bb 83> :
  # DEBUG BEGIN_STMT
  _64 = uds.sid;
  if (_64 == 46)
    goto <bb 84>; [INV]
  else
    goto <bb 86>; [INV]

  <bb 84> :
  # DEBUG BEGIN_STMT
  _65 = uds.length;
  if (_65 <= 2)
    goto <bb 85>; [INV]
  else
    goto <bb 88>; [INV]

  <bb 85> :
  # DEBUG BEGIN_STMT
  uds.nrc = 19;
  goto <bb 88>; [INV]

  <bb 86> :
  # DEBUG BEGIN_STMT
  _66 = uds.sid;
  if (_66 <= 15)
    goto <bb 87>; [INV]
  else
    goto <bb 88>; [INV]

  <bb 87> :
  # DEBUG BEGIN_STMT
  uds.nrc = 17;

  <bb 88> :
  # DEBUG BEGIN_STMT
  _67 = uds.nrc;
  if (_67 != 0)
    goto <bb 89>; [INV]
  else
    goto <bb 90>; [INV]

  <bb 89> :
  # DEBUG BEGIN_STMT
  uds.tx.buf[0] = 3;
  # DEBUG BEGIN_STMT
  uds.tx.buf[1] = 127;
  # DEBUG BEGIN_STMT
  _68 = uds.sid;
  uds.tx.buf[2] = _68;
  # DEBUG BEGIN_STMT
  _69 = uds.nrc;
  uds.tx.buf[3] = _69;
  # DEBUG BEGIN_STMT
  uds.response_to_negetive = 1;

  <bb 90> :
  return;

}


uds_fail_check_no_extended (uint8_t error_code)
{
  <bb 2> :
  # DEBUG BEGIN_STMT
  _1 = uds.nrc;
  if (_1 != 19)
    goto <bb 3>; [INV]
  else
    goto <bb 5>; [INV]

  <bb 3> :
  # DEBUG BEGIN_STMT
  _2 = uds.session;
  if (_2 != 3)
    goto <bb 4>; [INV]
  else
    goto <bb 5>; [INV]

  <bb 4> :
  # DEBUG BEGIN_STMT
  uds.nrc = 127;
  # DEBUG BEGIN_STMT
  uds.response_to_negetive = 1;

  <bb 5> :
  return;

}


uds_fail_massage (uint8_t sid, uint8_t fail_code)
{
  <bb 2> :
  # DEBUG BEGIN_STMT
  uds.tx.buf[0] = 3;
  # DEBUG BEGIN_STMT
  uds.tx.buf[1] = 127;
  # DEBUG BEGIN_STMT
  uds.tx.buf[2] = sid;
  # DEBUG BEGIN_STMT
  uds.tx.buf[3] = fail_code;
  # DEBUG BEGIN_STMT
  uds.response_to_negetive = 1;
  return;

}


uds_SID_ControlDTCSetting (uint8_t k)
{
  uint8_t rp;
  uint8_t D.6900;

  <bb 2> :
  # DEBUG BEGIN_STMT
  rp = 1;
  # DEBUG BEGIN_STMT
  uds_tx_buf_clear ();
  # DEBUG BEGIN_STMT
  uds.tx.buf[0] = 2;
  # DEBUG BEGIN_STMT
  uds.tx.buf[1] = 197;
  # DEBUG BEGIN_STMT
  _1 = uds.rx.buf[2];
  uds.tx.buf[2] = _1;
  # DEBUG BEGIN_STMT
  _2 = uds.rx.buf[2];
  if (_2 == 1)
    goto <bb 3>; [INV]
  else
    goto <bb 4>; [INV]

  <bb 3> :
  # DEBUG BEGIN_STMT
  uds.dtc_check_inhibit = 0;
  goto <bb 7>; [INV]

  <bb 4> :
  # DEBUG BEGIN_STMT
  _3 = uds.rx.buf[2];
  if (_3 == 2)
    goto <bb 5>; [INV]
  else
    goto <bb 6>; [INV]

  <bb 5> :
  # DEBUG BEGIN_STMT
  uds.dtc_check_inhibit = 1;
  goto <bb 7>; [INV]

  <bb 6> :
  # DEBUG BEGIN_STMT
  uds.tx.buf[0] = 2;
  # DEBUG BEGIN_STMT
  uds.tx.buf[1] = 127;

  <bb 7> :
  # DEBUG BEGIN_STMT
  D.6900 = rp;
  return D.6900;

}


uds_interrupt_sid_dtc ()
{
  uint16_t k;
  uint8_t rp;
  uint8_t D.6892;

  <bb 2> :
  # DEBUG BEGIN_STMT
  rp = 1;
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = uds.rx.buf[2];
  uds.dtc_type = _1;
  # DEBUG BEGIN_STMT
  _2 = uds.rx.buf[3];
  uds.dtc_mask = _2;
  # DEBUG BEGIN_STMT
  uds_tx_buf_clear ();
  # DEBUG BEGIN_STMT
  _3 = uds.dtc_type;
  if (_3 == 2)
    goto <bb 3>; [INV]
  else
    goto <bb 4>; [INV]

  <bb 3> :
  # DEBUG BEGIN_STMT
  uds.req_dtc_1st_frame = 1;
  # DEBUG BEGIN_STMT
  rp = 0;
  goto <bb 11>; [INV]

  <bb 4> :
  # DEBUG BEGIN_STMT
  _4 = uds.dtc_type;
  if (_4 == 10)
    goto <bb 5>; [INV]
  else
    goto <bb 6>; [INV]

  <bb 5> :
  # DEBUG BEGIN_STMT
  uds.req_dtc_1st_frame = 1;
  # DEBUG BEGIN_STMT
  rp = 0;
  goto <bb 11>; [INV]

  <bb 6> :
  # DEBUG BEGIN_STMT
  _5 = uds.dtc_type;
  if (_5 == 1)
    goto <bb 7>; [INV]
  else
    goto <bb 8>; [INV]

  <bb 7> :
  # DEBUG BEGIN_STMT
  uds.tx.buf[0] = 6;
  # DEBUG BEGIN_STMT
  uds.tx.buf[1] = 89;
  # DEBUG BEGIN_STMT
  _6 = uds.dtc_type;
  uds.tx.buf[2] = _6;
  # DEBUG BEGIN_STMT
  _7 = uds.dtc_mask;
  uds.tx.buf[3] = _7;
  # DEBUG BEGIN_STMT
  k = dtc_count_set ();
  # DEBUG BEGIN_STMT
  _8 = k >> 8;
  _9 = (unsigned char) _8;
  uds.tx.buf[4] = _9;
  # DEBUG BEGIN_STMT
  _10 = (unsigned char) k;
  uds.tx.buf[5] = _10;
  goto <bb 11>; [INV]

  <bb 8> :
  # DEBUG BEGIN_STMT
  _11 = uds.dtc_type;
  if (_11 == 3)
    goto <bb 9>; [INV]
  else
    goto <bb 10>; [INV]

  <bb 9> :
  # DEBUG BEGIN_STMT
  uds.tx.buf[0] = 2;
  # DEBUG BEGIN_STMT
  uds.tx.buf[1] = 89;
  # DEBUG BEGIN_STMT
  _12 = uds.dtc_type;
  uds.tx.buf[2] = _12;
  goto <bb 11>; [INV]

  <bb 10> :
  # DEBUG BEGIN_STMT
  uds.tx.buf[0] = 2;
  # DEBUG BEGIN_STMT
  uds.tx.buf[1] = 127;
  # DEBUG BEGIN_STMT
  uds.tx.buf[2] = 18;

  <bb 11> :
  # DEBUG BEGIN_STMT
  D.6892 = rp;
  return D.6892;

}


uds_logic_event ()
{
  uint8_t * p;
  uint32_t add;
  uint8_t rp;
  uint8_t i;
  uint16_t n;

  <bb 2> :
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  rp = 1;
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = uds.r_seed;
  _2 = _1;
  _3 = _2 + 1;
  uds.r_seed = _3;
  # DEBUG BEGIN_STMT
  _4 = uds.r_seed;
  _5 = (signed char) _4;
  if (_5 < 0)
    goto <bb 3>; [INV]
  else
    goto <bb 4>; [INV]

  <bb 3> :
  # DEBUG BEGIN_STMT
  uds.r_seed = 0;

  <bb 4> :
  # DEBUG BEGIN_STMT
  _6 = uds.c_inhibut_10ms;
  if (_6 != 0)
    goto <bb 5>; [INV]
  else
    goto <bb 6>; [INV]

  <bb 5> :
  # DEBUG BEGIN_STMT
  _7 = uds.c_inhibut_10ms;
  _8 = _7;
  _9 = _8 + 65535;
  uds.c_inhibut_10ms = _9;

  <bb 6> :
  # DEBUG BEGIN_STMT
  _10 = uds.xreq_dtc_clear;
  if (_10 != 0)
    goto <bb 7>; [INV]
  else
    goto <bb 8>; [INV]

  <bb 7> :
  # DEBUG BEGIN_STMT
  uds.xreq_dtc_clear = 0;
  # DEBUG BEGIN_STMT
  dtc_clear ();

  <bb 8> :
  # DEBUG BEGIN_STMT
  _11 = uds.table_seq;
  if (_11 == 1)
    goto <bb 9>; [INV]
  else
    goto <bb 40>; [INV]

  <bb 9> :
  # DEBUG BEGIN_STMT
  _12 = uds.table_control;
  if (_12 == 46)
    goto <bb 10>; [INV]
  else
    goto <bb 20>; [INV]

  <bb 10> :
  # DEBUG BEGIN_STMT
  uds.tx.buf[0] = 3;
  # DEBUG BEGIN_STMT
  uds.tx.buf[1] = 110;
  # DEBUG BEGIN_STMT
  _13 = uds.rx.buf[2];
  uds.tx.buf[2] = _13;
  # DEBUG BEGIN_STMT
  _14 = uds.rx.buf[3];
  uds.tx.buf[3] = _14;
  # DEBUG BEGIN_STMT
  _15 = uds.write_data_type;
  if (_15 == 13)
    goto <bb 11>; [INV]
  else
    goto <bb 12>; [INV]

  <bb 11> :
  # DEBUG BEGIN_STMT
  uds.table_seq = 0;
  goto <bb 62>; [INV]

  <bb 12> :
  # DEBUG BEGIN_STMT
  _16 = uds.write_data_type;
  if (_16 == 14)
    goto <bb 13>; [INV]
  else
    goto <bb 62>; [INV]

  <bb 13> :
  # DEBUG BEGIN_STMT
  _17 = uds.table_seq;
  _18 = (int) _17;
  _19 = uds.ntable;
  _20 = (int) _19;
  _21 = uds.table_control;
  _22 = (int) _21;
  _23 = uds.wait_flowcontrol;
  _24 = (int) _23;
  _25 = uds.write_data_type;
  _26 = (int) _25;
  _27 = uds.p_data;
  _28 = (int) _27;
  _29 = uds.table_write_to;
  _30 = (int) _29;
  monprintf ("useq=%d,tbl=%d,tcon=%02x,fc=%d,wrtype=%d,pdata=%d,uds.pdata_rd=%08x,writeto=%d\n\r", _18, _20, _22, _24, _26, _28, &uds.pdata_rd, _30);
  # DEBUG BEGIN_STMT
  _31 = uds.table_write_to;
  if (_31 == 1)
    goto <bb 14>; [INV]
  else
    goto <bb 15>; [INV]

  <bb 14> :
  # DEBUG BEGIN_STMT
  table_write (0);
  goto <bb 19>; [INV]

  <bb 15> :
  # DEBUG BEGIN_STMT
  _32 = uds.table_write_to;
  if (_32 == 2)
    goto <bb 16>; [INV]
  else
    goto <bb 17>; [INV]

  <bb 16> :
  # DEBUG BEGIN_STMT
  table_read (0);
  goto <bb 19>; [INV]

  <bb 17> :
  # DEBUG BEGIN_STMT
  _33 = uds.table_write_to;
  if (_33 == 255)
    goto <bb 18>; [INV]
  else
    goto <bb 19>; [INV]

  <bb 18> :
  # DEBUG BEGIN_STMT
  uds.XREQ_RESET = 1;

  <bb 19> :
  # DEBUG BEGIN_STMT
  uds.table_seq = 0;
  goto <bb 62>; [INV]

  <bb 20> :
  # DEBUG BEGIN_STMT
  _34 = uds.table_control;
  if (_34 == 34)
    goto <bb 21>; [INV]
  else
    goto <bb 39>; [INV]

  <bb 21> :
  # DEBUG BEGIN_STMT
  _35 = uds.ntable;
  if (_35 == 1280)
    goto <bb 22>; [INV]
  else
    goto <bb 33>; [INV]

  <bb 22> :
  # DEBUG BEGIN_STMT
  p = &AppVersion;
  # DEBUG BEGIN_STMT
  n = 0;
  # DEBUG BEGIN_STMT
  i = 0;
  goto <bb 25>; [INV]

  <bb 23> :
  # DEBUG BEGIN_STMT
  _36 = (sizetype) i;
  _37 = p + _36;
  _38 = *_37;
  if (_38 <= 31)
    goto <bb 26>; [INV]
  else
    goto <bb 24>; [INV]

  <bb 24> :
  # DEBUG BEGIN_STMT
  _39 = (sizetype) i;
  _40 = p + _39;
  n.5_41 = n;
  n = n.5_41 + 1;
  _42 = (int) n.5_41;
  _43 = *_40;
  uds.data[_42] = _43;
  # DEBUG BEGIN_STMT
  i.6_44 = i;
  i = i.6_44 + 1;

  <bb 25> :
  # DEBUG BEGIN_STMT
  if (i <= 49)
    goto <bb 23>; [INV]
  else
    goto <bb 26>; [INV]

  <bb 26> :
  # DEBUG BEGIN_STMT
  n.7_45 = n;
  n = n.7_45 + 1;
  _46 = (int) n.7_45;
  uds.data[_46] = 44;
  # DEBUG BEGIN_STMT
  n.8_47 = n;
  n = n.8_47 + 1;
  _48 = (int) n.8_47;
  uds.data[_48] = 66;
  # DEBUG BEGIN_STMT
  n.9_49 = n;
  n = n.9_49 + 1;
  _50 = (int) n.9_49;
  uds.data[_50] = 79;
  # DEBUG BEGIN_STMT
  n.10_51 = n;
  n = n.10_51 + 1;
  _52 = (int) n.10_51;
  uds.data[_52] = 79;
  # DEBUG BEGIN_STMT
  n.11_53 = n;
  n = n.11_53 + 1;
  _54 = (int) n.11_53;
  uds.data[_54] = 84;
  # DEBUG BEGIN_STMT
  n.12_55 = n;
  n = n.12_55 + 1;
  _56 = (int) n.12_55;
  uds.data[_56] = 86;
  # DEBUG BEGIN_STMT
  n.13_57 = n;
  n = n.13_57 + 1;
  _58 = (int) n.13_57;
  uds.data[_58] = 58;
  # DEBUG BEGIN_STMT
  p = 4198432B;
  # DEBUG BEGIN_STMT
  i = 0;
  # DEBUG BEGIN_STMT
  _59 = *p;
  if (_59 != 66)
    goto <bb 27>; [INV]
  else
    goto <bb 28>; [INV]

  <bb 27> :
  # DEBUG BEGIN_STMT
  n.14_60 = n;
  n = n.14_60 + 1;
  _61 = (int) n.14_60;
  uds.data[_61] = 78;
  # DEBUG BEGIN_STMT
  n.15_62 = n;
  n = n.15_62 + 1;
  _63 = (int) n.15_62;
  uds.data[_63] = 48;
  # DEBUG BEGIN_STMT
  n.16_64 = n;
  n = n.16_64 + 1;
  _65 = (int) n.16_64;
  uds.data[_65] = 32;
  goto <bb 32>; [INV]

  <bb 28> :
  # DEBUG BEGIN_STMT
  i = 0;
  goto <bb 31>; [INV]

  <bb 29> :
  # DEBUG BEGIN_STMT
  _66 = (sizetype) i;
  _67 = p + _66;
  _68 = *_67;
  if (_68 <= 31)
    goto <bb 32>; [INV]
  else
    goto <bb 30>; [INV]

  <bb 30> :
  # DEBUG BEGIN_STMT
  _69 = (sizetype) i;
  _70 = p + _69;
  n.17_71 = n;
  n = n.17_71 + 1;
  _72 = (int) n.17_71;
  _73 = *_70;
  uds.data[_72] = _73;
  # DEBUG BEGIN_STMT
  i.18_74 = i;
  i = i.18_74 + 1;

  <bb 31> :
  # DEBUG BEGIN_STMT
  if (i <= 24)
    goto <bb 29>; [INV]
  else
    goto <bb 32>; [INV]

  <bb 32> :
  # DEBUG BEGIN_STMT
  n.19_75 = n;
  n = n.19_75 + 1;
  _76 = (int) n.19_75;
  uds.data[_76] = 0;
  # DEBUG BEGIN_STMT
  add = (uint32_t) &uds.data[0];
  # DEBUG BEGIN_STMT
  _77 = uds.ntable;
  uds_send_data_set (_77, n, add);
  goto <bb 62>; [INV]

  <bb 33> :
  # DEBUG BEGIN_STMT
  _78 = uds.ntable;
  _79 = (int) _78;
  _80 = EEP_ADDR_TABLE[_79][2];
  n = (uint16_t) _80;
  # DEBUG BEGIN_STMT
  n = n + 3;
  # DEBUG BEGIN_STMT
  if (n > 7)
    goto <bb 34>; [INV]
  else
    goto <bb 35>; [INV]

  <bb 34> :
  # DEBUG BEGIN_STMT
  _81 = n >> 8;
  _82 = (unsigned char) _81;
  _83 = _82 & 15;
  uds.tx.buf[0] = _83;
  # DEBUG BEGIN_STMT
  _84 = uds.tx.buf[0];
  _85 = _84 | 16;
  uds.tx.buf[0] = _85;
  # DEBUG BEGIN_STMT
  _86 = (unsigned char) n;
  uds.tx.buf[1] = _86;
  # DEBUG BEGIN_STMT
  uds.tx.buf[2] = 98;
  # DEBUG BEGIN_STMT
  _87 = uds.ntable_did;
  _88 = _87 >> 8;
  _89 = (unsigned char) _88;
  uds.tx.buf[3] = _89;
  # DEBUG BEGIN_STMT
  _90 = uds.ntable_did;
  _91 = (unsigned char) _90;
  uds.tx.buf[4] = _91;
  # DEBUG BEGIN_STMT
  _92 = uds.ntable;
  _93 = (int) _92;
  _94 = EEP_ADDR_TABLE[_93][3];
  _95 = (uint8_t *) _94;
  uds.pdata_rd = _95;
  # DEBUG BEGIN_STMT
  _96 = uds.ntable;
  _97 = (int) _96;
  _98 = EEP_ADDR_TABLE[_97][2];
  _99 = (short unsigned int) _98;
  uds.tx_len = _99;
  # DEBUG BEGIN_STMT
  uds.p_data = 0;
  # DEBUG BEGIN_STMT
  _100 = uds.pdata_rd;
  _101 = uds.p_data;
  _102 = (sizetype) _101;
  _103 = _100 + _102;
  _104 = *_103;
  uds.tx.buf[5] = _104;
  # DEBUG BEGIN_STMT
  _105 = uds.p_data;
  _106 = _105;
  _107 = _106 + 1;
  uds.p_data = _107;
  # DEBUG BEGIN_STMT
  _108 = uds.pdata_rd;
  _109 = uds.p_data;
  _110 = (sizetype) _109;
  _111 = _108 + _110;
  _112 = *_111;
  uds.tx.buf[6] = _112;
  # DEBUG BEGIN_STMT
  _113 = uds.p_data;
  _114 = _113;
  _115 = _114 + 1;
  uds.p_data = _115;
  # DEBUG BEGIN_STMT
  _116 = uds.pdata_rd;
  _117 = uds.p_data;
  _118 = (sizetype) _117;
  _119 = _116 + _118;
  _120 = *_119;
  uds.tx.buf[7] = _120;
  # DEBUG BEGIN_STMT
  _121 = uds.p_data;
  _122 = _121;
  _123 = _122 + 1;
  uds.p_data = _123;
  # DEBUG BEGIN_STMT
  set_wait_flow_control ();
  # DEBUG BEGIN_STMT
  uds.c_wait_flowcontrol_10ms = 50;
  # DEBUG BEGIN_STMT
  uds.table_seq = 2;
  # DEBUG BEGIN_STMT
  uds.data_send_seq = 33;
  goto <bb 62>; [INV]

  <bb 35> :
  # DEBUG BEGIN_STMT
  _124 = (unsigned char) n;
  uds.tx.buf[0] = _124;
  # DEBUG BEGIN_STMT
  uds.tx.buf[1] = 98;
  # DEBUG BEGIN_STMT
  _125 = uds.ntable_did;
  _126 = _125 >> 8;
  _127 = (unsigned char) _126;
  uds.tx.buf[2] = _127;
  # DEBUG BEGIN_STMT
  _128 = uds.ntable_did;
  _129 = (unsigned char) _128;
  uds.tx.buf[3] = _129;
  # DEBUG BEGIN_STMT
  _130 = uds.ntable;
  _131 = (int) _130;
  _132 = EEP_ADDR_TABLE[_131][3];
  _133 = (uint8_t *) _132;
  uds.pdata_rd = _133;
  # DEBUG BEGIN_STMT
  _134 = uds.ntable;
  _135 = (int) _134;
  _136 = EEP_ADDR_TABLE[_135][2];
  _137 = (short unsigned int) _136;
  uds.tx_len = _137;
  # DEBUG BEGIN_STMT
  uds.p_data = 0;
  # DEBUG BEGIN_STMT
  _138 = uds.pdata_rd;
  _139 = uds.p_data;
  _140 = (sizetype) _139;
  _141 = _138 + _140;
  _142 = *_141;
  uds.tx.buf[4] = _142;
  # DEBUG BEGIN_STMT
  _143 = uds.p_data;
  _144 = _143;
  _145 = _144 + 1;
  uds.p_data = _145;
  # DEBUG BEGIN_STMT
  _146 = uds.pdata_rd;
  _147 = uds.p_data;
  _148 = (sizetype) _147;
  _149 = _146 + _148;
  _150 = *_149;
  uds.tx.buf[5] = _150;
  # DEBUG BEGIN_STMT
  _151 = uds.p_data;
  _152 = _151;
  _153 = _152 + 1;
  uds.p_data = _153;
  # DEBUG BEGIN_STMT
  _154 = uds.pdata_rd;
  _155 = uds.p_data;
  _156 = (sizetype) _155;
  _157 = _154 + _156;
  _158 = *_157;
  uds.tx.buf[6] = _158;
  # DEBUG BEGIN_STMT
  _159 = uds.p_data;
  _160 = _159;
  _161 = _160 + 1;
  uds.p_data = _161;
  # DEBUG BEGIN_STMT
  _162 = uds.pdata_rd;
  _163 = uds.p_data;
  _164 = (sizetype) _163;
  _165 = _162 + _164;
  _166 = *_165;
  uds.tx.buf[7] = _166;
  # DEBUG BEGIN_STMT
  _167 = uds.p_data;
  _168 = _167;
  _169 = _168 + 1;
  uds.p_data = _169;
  # DEBUG BEGIN_STMT
  _170 = (unsigned char) n;
  i = _170 + 1;
  goto <bb 37>; [INV]

  <bb 36> :
  # DEBUG BEGIN_STMT
  _171 = (int) i;
  uds.tx.buf[_171] = 0;
  # DEBUG BEGIN_STMT
  i.20_172 = i;
  i = i.20_172 + 1;

  <bb 37> :
  # DEBUG BEGIN_STMT
  if (i <= 7)
    goto <bb 36>; [INV]
  else
    goto <bb 38>; [INV]

  <bb 38> :
  # DEBUG BEGIN_STMT
  uds.table_seq = 0;
  goto <bb 62>; [INV]

  <bb 39> :
  # DEBUG BEGIN_STMT
  uds.table_seq = 0;
  goto <bb 62>; [INV]

  <bb 40> :
  # DEBUG BEGIN_STMT
  _173 = uds.table_seq;
  if (_173 == 2)
    goto <bb 41>; [INV]
  else
    goto <bb 59>; [INV]

  <bb 41> :
  # DEBUG BEGIN_STMT
  _174 = uds.wait_flowcontrol;
  if (_174 != 0)
    goto <bb 42>; [INV]
  else
    goto <bb 43>; [INV]

  <bb 42> :
  # DEBUG BEGIN_STMT
  // predicted unlikely by early return (on trees) predictor.
  goto <bb 64>; [INV]

  <bb 43> :
  # DEBUG BEGIN_STMT
  _175 = uds.table_control;
  if (_175 == 34)
    goto <bb 44>; [INV]
  else
    goto <bb 62>; [INV]

  <bb 44> :
  # DEBUG BEGIN_STMT
  _176 = uds.c_flow_control_ms;
  if (_176 <= 1)
    goto <bb 45>; [INV]
  else
    goto <bb 46>; [INV]

  <bb 45> :
  # DEBUG BEGIN_STMT
  uds.c_flow_control_ms = 0;
  goto <bb 47>; [INV]

  <bb 46> :
  # DEBUG BEGIN_STMT
  _177 = uds.c_flow_control_ms;
  _178 = _177 + 254;
  uds.c_flow_control_ms = _178;

  <bb 47> :
  # DEBUG BEGIN_STMT
  _179 = uds.c_flow_control_ms;
  if (_179 != 0)
    goto <bb 48>; [INV]
  else
    goto <bb 49>; [INV]

  <bb 48> :
  # DEBUG BEGIN_STMT
  // predicted unlikely by early return (on trees) predictor.
  goto <bb 64>; [INV]

  <bb 49> :
  # DEBUG BEGIN_STMT
  _180 = uds.flow_control_ms;
  uds.c_flow_control_ms = _180;
  # DEBUG BEGIN_STMT
  _181 = uds.data_send_seq;
  uds.tx.buf[0] = _181;
  # DEBUG BEGIN_STMT
  i = 1;
  goto <bb 54>; [INV]

  <bb 50> :
  # DEBUG BEGIN_STMT
  _182 = uds.p_data;
  _183 = uds.tx_len;
  if (_182 >= _183)
    goto <bb 51>; [INV]
  else
    goto <bb 52>; [INV]

  <bb 51> :
  # DEBUG BEGIN_STMT
  _184 = (int) i;
  uds.tx.buf[_184] = 46;
  goto <bb 53>; [INV]

  <bb 52> :
  # DEBUG BEGIN_STMT
  _185 = uds.pdata_rd;
  _186 = uds.p_data;
  _187 = (sizetype) _186;
  _188 = _185 + _187;
  _189 = (int) i;
  _190 = *_188;
  uds.tx.buf[_189] = _190;

  <bb 53> :
  # DEBUG BEGIN_STMT
  _191 = uds.p_data;
  _192 = _191;
  _193 = _192 + 1;
  uds.p_data = _193;
  # DEBUG BEGIN_STMT
  i.21_194 = i;
  i = i.21_194 + 1;

  <bb 54> :
  # DEBUG BEGIN_STMT
  if (i <= 7)
    goto <bb 50>; [INV]
  else
    goto <bb 55>; [INV]

  <bb 55> :
  # DEBUG BEGIN_STMT
  _195 = uds.p_data;
  _196 = uds.tx_len;
  if (_195 >= _196)
    goto <bb 56>; [INV]
  else
    goto <bb 57>; [INV]

  <bb 56> :
  # DEBUG BEGIN_STMT
  uds.table_seq = 0;

  <bb 57> :
  # DEBUG BEGIN_STMT
  _197 = uds.data_send_seq;
  _198 = _197;
  _199 = _198 + 1;
  uds.data_send_seq = _199;
  # DEBUG BEGIN_STMT
  _200 = uds.data_send_seq;
  if (_200 > 47)
    goto <bb 58>; [INV]
  else
    goto <bb 62>; [INV]

  <bb 58> :
  # DEBUG BEGIN_STMT
  uds.data_send_seq = 33;
  goto <bb 62>; [INV]

  <bb 59> :
  # DEBUG BEGIN_STMT
  _201 = uds.table_seq;
  if (_201 == 3)
    goto <bb 60>; [INV]
  else
    goto <bb 61>; [INV]

  <bb 60> :
  # DEBUG BEGIN_STMT
  rp = 0;
  goto <bb 62>; [INV]

  <bb 61> :
  # DEBUG BEGIN_STMT
  rp = 0;

  <bb 62> :
  # DEBUG BEGIN_STMT
  if (rp != 0)
    goto <bb 63>; [INV]
  else
    goto <bb 64>; [INV]

  <bb 63> :
  # DEBUG BEGIN_STMT
  uds.tx.xreq_send = 1;
  # DEBUG BEGIN_STMT
  uds.timeout = 501;

  <bb 64> :
  return;

}


uds_send_data_set (uint16_t did, uint16_t size, uint32_t address)
{
  uint16_t n;

  <bb 2> :
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  n = size;
  # DEBUG BEGIN_STMT
  n = n + 3;
  # DEBUG BEGIN_STMT
  if (n > 4095)
    goto <bb 3>; [INV]
  else
    goto <bb 4>; [INV]

  <bb 3> :
  # DEBUG BEGIN_STMT
  n = 4095;

  <bb 4> :
  # DEBUG BEGIN_STMT
  _1 = n >> 8;
  _2 = (unsigned char) _1;
  uds.tx.buf[0] = _2;
  # DEBUG BEGIN_STMT
  _3 = uds.tx.buf[0];
  _4 = _3 | 16;
  uds.tx.buf[0] = _4;
  # DEBUG BEGIN_STMT
  _5 = (unsigned char) n;
  uds.tx.buf[1] = _5;
  # DEBUG BEGIN_STMT
  uds.tx.buf[2] = 98;
  # DEBUG BEGIN_STMT
  _6 = did >> 8;
  _7 = (unsigned char) _6;
  _8 = _7 | 240;
  uds.tx.buf[3] = _8;
  # DEBUG BEGIN_STMT
  _9 = (unsigned char) did;
  uds.tx.buf[4] = _9;
  # DEBUG BEGIN_STMT
  address.4_10 = (uint8_t *) address;
  uds.pdata_rd = address.4_10;
  # DEBUG BEGIN_STMT
  uds.tx_len = size;
  # DEBUG BEGIN_STMT
  uds.p_data = 0;
  # DEBUG BEGIN_STMT
  _11 = uds.pdata_rd;
  _12 = uds.p_data;
  _13 = _12;
  _14 = _13 + 1;
  uds.p_data = _14;
  _15 = (sizetype) _13;
  _16 = _11 + _15;
  _17 = *_16;
  uds.tx.buf[5] = _17;
  # DEBUG BEGIN_STMT
  _18 = uds.pdata_rd;
  _19 = uds.p_data;
  _20 = _19;
  _21 = _20 + 1;
  uds.p_data = _21;
  _22 = (sizetype) _20;
  _23 = _18 + _22;
  _24 = *_23;
  uds.tx.buf[6] = _24;
  # DEBUG BEGIN_STMT
  _25 = uds.pdata_rd;
  _26 = uds.p_data;
  _27 = _26;
  _28 = _27 + 1;
  uds.p_data = _28;
  _29 = (sizetype) _27;
  _30 = _25 + _29;
  _31 = *_30;
  uds.tx.buf[7] = _31;
  # DEBUG BEGIN_STMT
  set_wait_flow_control ();
  # DEBUG BEGIN_STMT
  uds.table_seq = 2;
  # DEBUG BEGIN_STMT
  uds.data_send_seq = 33;
  return;

}


uds_tx_buf_clear ()
{
  uint8_t i;

  <bb 2> :
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  i = 0;
  goto <bb 4>; [INV]

  <bb 3> :
  # DEBUG BEGIN_STMT
  uds.tx.buf[0] = 0;
  # DEBUG BEGIN_STMT
  i.3_1 = i;
  i = i.3_1 + 1;

  <bb 4> :
  # DEBUG BEGIN_STMT
  if (i <= 7)
    goto <bb 3>; [INV]
  else
    goto <bb 5>; [INV]

  <bb 5> :
  return;

}


set_dtc_1st_frame (uint8_t type)
{
  uint16_t len;

  <bb 2> :
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  len = dtc_send_table_set (type);
  # DEBUG BEGIN_STMT
  len = len + 3;
  # DEBUG BEGIN_STMT
  if (len <= 7)
    goto <bb 3>; [INV]
  else
    goto <bb 4>; [INV]

  <bb 3> :
  # DEBUG BEGIN_STMT
  _1 = (unsigned char) len;
  uds.tx.buf[0] = _1;
  # DEBUG BEGIN_STMT
  uds.tx.buf[1] = 89;
  # DEBUG BEGIN_STMT
  _2 = uds.dtc_type;
  uds.tx.buf[2] = _2;
  # DEBUG BEGIN_STMT
  uds.tx.buf[3] = 255;
  # DEBUG BEGIN_STMT
  uds.p_data = 0;
  # DEBUG BEGIN_STMT
  uds.pdata_rd = &TABLE_DTC_SEND;
  # DEBUG BEGIN_STMT
  _3 = uds.pdata_rd;
  _4 = uds.p_data;
  _5 = (sizetype) _4;
  _6 = _3 + _5;
  _7 = *_6;
  uds.tx.buf[4] = _7;
  # DEBUG BEGIN_STMT
  _8 = uds.p_data;
  _9 = _8;
  _10 = _9 + 1;
  uds.p_data = _10;
  # DEBUG BEGIN_STMT
  _11 = uds.pdata_rd;
  _12 = uds.p_data;
  _13 = (sizetype) _12;
  _14 = _11 + _13;
  _15 = *_14;
  uds.tx.buf[5] = _15;
  # DEBUG BEGIN_STMT
  _16 = uds.p_data;
  _17 = _16;
  _18 = _17 + 1;
  uds.p_data = _18;
  # DEBUG BEGIN_STMT
  _19 = uds.pdata_rd;
  _20 = uds.p_data;
  _21 = (sizetype) _20;
  _22 = _19 + _21;
  _23 = *_22;
  uds.tx.buf[6] = _23;
  # DEBUG BEGIN_STMT
  _24 = uds.p_data;
  _25 = _24;
  _26 = _25 + 1;
  uds.p_data = _26;
  # DEBUG BEGIN_STMT
  _27 = uds.pdata_rd;
  _28 = uds.p_data;
  _29 = (sizetype) _28;
  _30 = _27 + _29;
  _31 = *_30;
  uds.tx.buf[7] = _31;
  # DEBUG BEGIN_STMT
  _32 = uds.p_data;
  _33 = _32;
  _34 = _33 + 1;
  uds.p_data = _34;
  goto <bb 5>; [INV]

  <bb 4> :
  # DEBUG BEGIN_STMT
  uds.tx_len = len;
  # DEBUG BEGIN_STMT
  _35 = len >> 8;
  _36 = (unsigned char) _35;
  uds.tx.buf[0] = _36;
  # DEBUG BEGIN_STMT
  _37 = uds.tx.buf[0];
  _38 = _37 | 16;
  uds.tx.buf[0] = _38;
  # DEBUG BEGIN_STMT
  _39 = (unsigned char) len;
  uds.tx.buf[1] = _39;
  # DEBUG BEGIN_STMT
  uds.tx.buf[2] = 89;
  # DEBUG BEGIN_STMT
  _40 = uds.dtc_type;
  uds.tx.buf[3] = _40;
  # DEBUG BEGIN_STMT
  uds.tx.buf[4] = 255;
  # DEBUG BEGIN_STMT
  uds.p_data = 0;
  # DEBUG BEGIN_STMT
  uds.pdata_rd = &TABLE_DTC_SEND;
  # DEBUG BEGIN_STMT
  _41 = uds.pdata_rd;
  _42 = uds.p_data;
  _43 = (sizetype) _42;
  _44 = _41 + _43;
  _45 = *_44;
  uds.tx.buf[5] = _45;
  # DEBUG BEGIN_STMT
  _46 = uds.p_data;
  _47 = _46;
  _48 = _47 + 1;
  uds.p_data = _48;
  # DEBUG BEGIN_STMT
  _49 = uds.pdata_rd;
  _50 = uds.p_data;
  _51 = (sizetype) _50;
  _52 = _49 + _51;
  _53 = *_52;
  uds.tx.buf[6] = _53;
  # DEBUG BEGIN_STMT
  _54 = uds.p_data;
  _55 = _54;
  _56 = _55 + 1;
  uds.p_data = _56;
  # DEBUG BEGIN_STMT
  _57 = uds.pdata_rd;
  _58 = uds.p_data;
  _59 = (sizetype) _58;
  _60 = _57 + _59;
  _61 = *_60;
  uds.tx.buf[7] = _61;
  # DEBUG BEGIN_STMT
  _62 = uds.p_data;
  _63 = _62;
  _64 = _63 + 1;
  uds.p_data = _64;
  # DEBUG BEGIN_STMT
  uds.wait_flowcontrol = 1;
  # DEBUG BEGIN_STMT
  uds.table_seq = 2;
  # DEBUG BEGIN_STMT
  uds.data_send_seq = 33;
  # DEBUG BEGIN_STMT
  uds.table_control = 34;

  <bb 5> :
  return;

}


set_wait_flow_control ()
{
  <bb 2> :
  # DEBUG BEGIN_STMT
  uds.wait_flowcontrol = 1;
  # DEBUG BEGIN_STMT
  uds.c_wait_flowcontrol_10ms = 11;
  return;

}


set_flow_control ()
{
  <bb 2> :
  # DEBUG BEGIN_STMT
  uds.tx.buf[0] = 48;
  # DEBUG BEGIN_STMT
  uds.tx.buf[1] = 0;
  # DEBUG BEGIN_STMT
  uds.tx.buf[2] = 10;
  # DEBUG BEGIN_STMT
  uds.c_wait_cf_10ms = 13;
  return;

}


uds_table_receve_finish (uint8_t print)
{
  <bb 2> :
  # DEBUG BEGIN_STMT
  uds.table_seq = 0;
  # DEBUG BEGIN_STMT
  _1 = uds.write_data_type;
  if (_1 == 0)
    goto <bb 3>; [INV]
  else
    goto <bb 4>; [INV]

  <bb 3> :
  # DEBUG BEGIN_STMT
  uds.tx.buf[0] = 3;
  # DEBUG BEGIN_STMT
  _2 = uds.table_control;
  _3 = _2 | 64;
  uds.tx.buf[1] = _3;
  # DEBUG BEGIN_STMT
  uds.ntable_did = 0;
  goto <bb 5>; [INV]

  <bb 4> :
  # DEBUG BEGIN_STMT
  uds.tx.buf[0] = 3;
  # DEBUG BEGIN_STMT
  uds.tx.buf[1] = 110;

  <bb 5> :
  # DEBUG BEGIN_STMT
  _4 = uds.response_to_negetive;
  if (_4 == 1)
    goto <bb 6>; [INV]
  else
    goto <bb 7>; [INV]

  <bb 6> :
  # DEBUG BEGIN_STMT
  uds.tx.buf[1] = 127;
  # DEBUG BEGIN_STMT
  uds.response_to_negetive = 0;

  <bb 7> :
  # DEBUG BEGIN_STMT
  _5 = uds.ntable_did;
  _6 = _5 >> 8;
  _7 = (unsigned char) _6;
  uds.tx.buf[2] = _7;
  # DEBUG BEGIN_STMT
  _8 = uds.ntable_did;
  _9 = (unsigned char) _8;
  uds.tx.buf[3] = _9;
  # DEBUG BEGIN_STMT
  uds.tx.buf[4] = 0;
  # DEBUG BEGIN_STMT
  uds.tx.buf[5] = 0;
  # DEBUG BEGIN_STMT
  uds.tx.buf[6] = 0;
  # DEBUG BEGIN_STMT
  uds.tx.buf[7] = 0;
  return;

}


uds_init ()
{
  <bb 2> :
  # DEBUG BEGIN_STMT
  uds.x2ms = 0;
  # DEBUG BEGIN_STMT
  uds.c_10ms = 0;
  # DEBUG BEGIN_STMT
  uds.ndata = 0;
  # DEBUG BEGIN_STMT
  uds.address = 0;
  # DEBUG BEGIN_STMT
  uds.start_address = 0;
  # DEBUG BEGIN_STMT
  uds.ndata_pre_packet = 0;
  # DEBUG BEGIN_STMT
  uds.timeout = 0;
  # DEBUG BEGIN_STMT
  uds.flow_control_ms = 0;
  # DEBUG BEGIN_STMT
  uds.c_flow_control_ms = 0;
  # DEBUG BEGIN_STMT
  uds.wait_flowcontrol = 0;
  # DEBUG BEGIN_STMT
  uds.c_wait_flowcontrol_10ms = 0;
  # DEBUG BEGIN_STMT
  uds.c_wait_cf_10ms = 0;
  # DEBUG BEGIN_STMT
  uds.seq = 0;
  # DEBUG BEGIN_STMT
  uds.frame_len = 0;
  # DEBUG BEGIN_STMT
  uds.ntable = 0;
  # DEBUG BEGIN_STMT
  uds.ntable_did = 0;
  # DEBUG BEGIN_STMT
  uds.p_data = 0;
  # DEBUG BEGIN_STMT
  uds.tx_len = 0;
  # DEBUG BEGIN_STMT
  uds.table_control = 0;
  # DEBUG BEGIN_STMT
  uds.table_write_to = 0;
  # DEBUG BEGIN_STMT
  uds.table_seq = 0;
  # DEBUG BEGIN_STMT
  uds.consecutive_rx_num = 0;
  # DEBUG BEGIN_STMT
  uds.data_send_seq = 0;
  # DEBUG BEGIN_STMT
  uds.response_to_negetive = 0;
  # DEBUG BEGIN_STMT
  uds.xreq_dtc_clear = 0;
  # DEBUG BEGIN_STMT
  uds.xreq_eep_write_did = 0;
  # DEBUG BEGIN_STMT
  uds.xreq_table_snap_short_write = 0;
  # DEBUG BEGIN_STMT
  uds.bootloader_update = 0;
  # DEBUG BEGIN_STMT
  uds.wait_key = 0;
  # DEBUG BEGIN_STMT
  uds.ReadDataByPeriodicIdentifier_10ms = 0;
  # DEBUG BEGIN_STMT
  uds.c_ReadDataByPeriodicIdentifier_10ms = 0;
  # DEBUG BEGIN_STMT
  uds.c_inhibut_10ms = 0;
  # DEBUG BEGIN_STMT
  uds.XUPDTE_FLASH = 0;
  # DEBUG BEGIN_STMT
  uds.XREQ_UDS_RESET = 0;
  # DEBUG BEGIN_STMT
  uds.XREQ_RESET = 0;
  # DEBUG BEGIN_STMT
  uds.XINIT_TABLE = 0;
  # DEBUG BEGIN_STMT
  uds.c_log_send = 0;
  # DEBUG BEGIN_STMT
  uds.eep_status = 0;
  # DEBUG BEGIN_STMT
  uds.rom_access_level = 0;
  # DEBUG BEGIN_STMT
  uds.group_of_dtc = 0;
  # DEBUG BEGIN_STMT
  uds.dtc_check_inhibit = 0;
  # DEBUG BEGIN_STMT
  uds.nrc = 0;
  # DEBUG BEGIN_STMT
  uds.consecutive_length_fail = 0;
  # DEBUG BEGIN_STMT
  uds.disable_rx_tx = 0;
  # DEBUG BEGIN_STMT
  uds.c_timeout_session_10ms = 0;
  # DEBUG BEGIN_STMT
  uds.c_dtc_event = 0;
  # DEBUG BEGIN_STMT
  uds.monitor_mode = 0;
  # DEBUG BEGIN_STMT
  uds.session = 1;
  # DEBUG BEGIN_STMT
  uds.program_type = 0;
  # DEBUG BEGIN_STMT
  uds.tx.id = 2008;
  # DEBUG BEGIN_STMT
  uds.rx.id = 2000;
  # DEBUG BEGIN_STMT
  uds.tx.length = 8;
  # DEBUG BEGIN_STMT
  uds.init = 1;
  # DEBUG BEGIN_STMT
  uds.r_seed = 35;
  # DEBUG BEGIN_STMT
  uds.session = 1;
  # DEBUG BEGIN_STMT
  uds.c_inhibut_10ms = 0;
  # DEBUG BEGIN_STMT
  uds.timeout = 0;
  # DEBUG BEGIN_STMT
  uds.tx_id = 2008;
  # DEBUG BEGIN_STMT
  uds.rx_id = 2000;
  # DEBUG BEGIN_STMT
  uds.init = 1;
  return;

}


uds_wait ()
{
  static uint8_t c_1ms = 0;

  <bb 2> :
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = uds.init;
  if (_1 == 0)
    goto <bb 3>; [INV]
  else
    goto <bb 4>; [INV]

  <bb 3> :
  # DEBUG BEGIN_STMT
  uds_init ();
  # DEBUG BEGIN_STMT
  OutStr ("uds_init\n\r");
  # DEBUG BEGIN_STMT
  // predicted unlikely by early return (on trees) predictor.
  goto <bb 18>; [INV]

  <bb 4> :
  # DEBUG BEGIN_STMT
  _2 = uds.x2ms;
  if (_2 != 0)
    goto <bb 5>; [INV]
  else
    goto <bb 14>; [INV]

  <bb 5> :
  # DEBUG BEGIN_STMT
  uds.x2ms = 0;
  # DEBUG BEGIN_STMT
  _3 = uds.req_dtc_1st_frame;
  if (_3 != 0)
    goto <bb 6>; [INV]
  else
    goto <bb 7>; [INV]

  <bb 6> :
  # DEBUG BEGIN_STMT
  uds.req_dtc_1st_frame = 0;
  # DEBUG BEGIN_STMT
  _4 = uds.dtc_type;
  set_dtc_1st_frame (_4);
  # DEBUG BEGIN_STMT
  uds.tx.xreq_send = 1;

  <bb 7> :
  # DEBUG BEGIN_STMT
  _5 = uds.tx.xreq_send;
  if (_5 != 0)
    goto <bb 8>; [INV]
  else
    goto <bb 9>; [INV]

  <bb 8> :
  # DEBUG BEGIN_STMT
  uds.timeout = 501;
  # DEBUG BEGIN_STMT
  send_uds_tx ();
  # DEBUG BEGIN_STMT
  // predicted unlikely by early return (on trees) predictor.
  goto <bb 18>; [INV]

  <bb 9> :
  # DEBUG BEGIN_STMT
  c_1ms.1_6 = c_1ms;
  _7 = c_1ms.1_6 + 1;
  c_1ms = _7;
  c_1ms.2_8 = c_1ms;
  if (c_1ms.2_8 > 2)
    goto <bb 10>; [INV]
  else
    goto <bb 11>; [INV]

  <bb 10> :
  # DEBUG BEGIN_STMT
  c_1ms = 0;
  # DEBUG BEGIN_STMT
  uds_2ms ();
  # DEBUG BEGIN_STMT
  _9 = uds.c_10ms;
  _10 = _9;
  _11 = _10 + 1;
  uds.c_10ms = _11;
  # DEBUG BEGIN_STMT
  _12 = uds.r_seed;
  _13 = _12;
  _14 = _13 + 1;
  uds.r_seed = _14;
  # DEBUG BEGIN_STMT
  _15 = uds.c_10ms;
  if (_15 > 4)
    goto <bb 12>; [INV]
  else
    goto <bb 14>; [INV]

  <bb 11> :
  # DEBUG BEGIN_STMT
  // predicted unlikely by early return (on trees) predictor.
  goto <bb 18>; [INV]

  <bb 12> :
  # DEBUG BEGIN_STMT
  uds.c_10ms = 0;
  # DEBUG BEGIN_STMT
  uds_10ms ();
  # DEBUG BEGIN_STMT
  _16 = uds.c_test;
  _17 = _16;
  _18 = _17 + 1;
  uds.c_test = _18;
  if (_17 > 199)
    goto <bb 13>; [INV]
  else
    goto <bb 14>; [INV]

  <bb 13> :
  # DEBUG BEGIN_STMT
  uds.c_test = 0;

  <bb 14> :
  # DEBUG BEGIN_STMT
  _19 = uds.XREQ_UDS_RESET;
  if (_19 != 0)
    goto <bb 15>; [INV]
  else
    goto <bb 16>; [INV]

  <bb 15> :
  # DEBUG BEGIN_STMT
  goto_reset ();

  <bb 16> :
  # DEBUG BEGIN_STMT
  _20 = uds.XREQ_RESET;
  if (_20 != 0)
    goto <bb 17>; [INV]
  else
    goto <bb 18>; [INV]

  <bb 17> :
  # DEBUG BEGIN_STMT
  goto_reset ();

  <bb 18> :
  return;

}


clear_uds_tx_buf ()
{
  uint8_t i;

  <bb 2> :
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  i = 0;
  goto <bb 4>; [INV]

  <bb 3> :
  # DEBUG BEGIN_STMT
  _1 = (int) i;
  uds.tx.buf[_1] = 0;
  # DEBUG BEGIN_STMT
  i.0_2 = i;
  i = i.0_2 + 1;

  <bb 4> :
  # DEBUG BEGIN_STMT
  if (i <= 7)
    goto <bb 3>; [INV]
  else
    goto <bb 5>; [INV]

  <bb 5> :
  return;

}


send_uds_tx ()
{
  <bb 2> :
  # DEBUG BEGIN_STMT
  uds.c_monitor_inhibit_10ms = 3;
  # DEBUG BEGIN_STMT
  _1 = uds.tx.id;
  can_send_txring (0, _1, &uds.tx.buf, 8);
  # DEBUG BEGIN_STMT
  uds.tx.xreq_send = 0;
  return;

}


uds_can_TxData (uint32_t index, uint32_t id, uint8_t ide, uint8_t dlc, uint8_t * data)
{
  <bb 2> :
  # DEBUG BEGIN_STMT
  return;

}


uds_timer_interrupt ()
{
  <bb 2> :
  # DEBUG BEGIN_STMT
  _1 = uds.x2ms;
  _2 = _1;
  _3 = _2 + 1;
  uds.x2ms = _3;
  return;

}


uds_2ms ()
{
  <bb 2> :
  # DEBUG BEGIN_STMT
  uds_logic_event ();
  return;

}


uds_10ms ()
{
  <bb 2> :
  # DEBUG BEGIN_STMT
  _1 = uds.c_1000ms;
  _2 = _1;
  _3 = _2 + 1;
  uds.c_1000ms = _3;
  if (_2 > 100)
    goto <bb 3>; [INV]
  else
    goto <bb 4>; [INV]

  <bb 3> :
  # DEBUG BEGIN_STMT
  uds.c_1000ms = 0;

  <bb 4> :
  # DEBUG BEGIN_STMT
  _4 = uds.c_wait_flowcontrol_10ms;
  if (_4 != 0)
    goto <bb 5>; [INV]
  else
    goto <bb 7>; [INV]

  <bb 5> :
  # DEBUG BEGIN_STMT
  _5 = uds.c_wait_flowcontrol_10ms;
  _6 = _5;
  _7 = _6 + 255;
  uds.c_wait_flowcontrol_10ms = _7;
  # DEBUG BEGIN_STMT
  _8 = uds.c_wait_flowcontrol_10ms;
  if (_8 == 0)
    goto <bb 6>; [INV]
  else
    goto <bb 7>; [INV]

  <bb 6> :
  # DEBUG BEGIN_STMT
  uds.wait_flowcontrol = 0;
  # DEBUG BEGIN_STMT
  uds.table_seq = 0;

  <bb 7> :
  # DEBUG BEGIN_STMT
  _9 = uds.c_wait_cf_10ms;
  if (_9 != 0)
    goto <bb 8>; [INV]
  else
    goto <bb 11>; [INV]

  <bb 8> :
  # DEBUG BEGIN_STMT
  _10 = uds.c_wait_cf_10ms;
  _11 = _10;
  _12 = _11 + 255;
  uds.c_wait_cf_10ms = _12;
  # DEBUG BEGIN_STMT
  _13 = uds.c_wait_cf_10ms;
  if (_13 == 0)
    goto <bb 9>; [INV]
  else
    goto <bb 11>; [INV]

  <bb 9> :
  # DEBUG BEGIN_STMT
  _14 = uds.table_seq;
  if (_14 == 3)
    goto <bb 10>; [INV]
  else
    goto <bb 11>; [INV]

  <bb 10> :
  # DEBUG BEGIN_STMT
  uds.table_seq = 0;

  <bb 11> :
  # DEBUG BEGIN_STMT
  _15 = uds.c_timeout_session_10ms;
  if (_15 != 0)
    goto <bb 12>; [INV]
  else
    goto <bb 14>; [INV]

  <bb 12> :
  # DEBUG BEGIN_STMT
  _16 = uds.c_timeout_session_10ms;
  _17 = _16;
  _18 = _17 + 65535;
  uds.c_timeout_session_10ms = _18;
  # DEBUG BEGIN_STMT
  _19 = uds.c_timeout_session_10ms;
  if (_19 == 0)
    goto <bb 13>; [INV]
  else
    goto <bb 14>; [INV]

  <bb 13> :
  # DEBUG BEGIN_STMT
  uds.session = 1;
  # DEBUG BEGIN_STMT
  uds.rom_access_level = 0;
  # DEBUG BEGIN_STMT
  uds.wait_key = 0;

  <bb 14> :
  # DEBUG BEGIN_STMT
  _20 = uds.r_seed;
  _21 = _20;
  _22 = _21 + 1;
  uds.r_seed = _22;
  # DEBUG BEGIN_STMT
  dtc_control ();
  # DEBUG BEGIN_STMT
  _23 = uds.xreq_eep_write_did;
  if (_23 != 0)
    goto <bb 15>; [INV]
  else
    goto <bb 16>; [INV]

  <bb 15> :
  # DEBUG BEGIN_STMT
  uds.xreq_eep_write_did = 0;
  # DEBUG BEGIN_STMT
  table_write (0);

  <bb 16> :
  # DEBUG BEGIN_STMT
  _24 = uds.timeout;
  if (_24 != 0)
    goto <bb 17>; [INV]
  else
    goto <bb 19>; [INV]

  <bb 17> :
  # DEBUG BEGIN_STMT
  _25 = uds.timeout;
  _26 = _25;
  _27 = _26 + 65535;
  uds.timeout = _27;
  # DEBUG BEGIN_STMT
  _28 = uds.timeout;
  if (_28 == 0)
    goto <bb 18>; [INV]
  else
    goto <bb 19>; [INV]

  <bb 18> :
  # DEBUG BEGIN_STMT
  uds.table_seq = 0;
  # DEBUG BEGIN_STMT
  uds.wait_flowcontrol = 0;
  # DEBUG BEGIN_STMT
  uds.bootloader_update = 0;
  # DEBUG BEGIN_STMT
  uds.wait_key = 0;
  # DEBUG BEGIN_STMT
  uds.disable_rx_tx = 0;

  <bb 19> :
  return;

}


avoid_empty_block ()
{
  <bb 2> :
  # DEBUG BEGIN_STMT
  _1 = uds.avoid_empty;
  _2 = _1;
  _3 = _2 + 1;
  uds.avoid_empty = _3;
  return;

}


